Заполнитель и NSLocalizedString
Я пытаюсь перевести свою заявку, и мне трудно ее перевести, когда есть половина заполнителя. Мне нужно найти следующий код:
[textView1 insertText:[NSString stringWithFormat:@"%@ è il %i/%i/%i. Il giorno delle settimana è %@. La Festa è compresa nel calcolo. \n", nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];
Я положил в файл localizable.string (английский):
"festaCompresa" = @"%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n";
Затем я отредактировал кусок кода:
[textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaW, @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];
Это не работает.
2 ответа
Вы скопировали и вставили код? Или ты набрал его заново? Потому что, если вы скопируете его, проблема будет в следующем:
[textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaW, @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];
Я полагаю, это должно быть
[textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];
Так что в основном "
вместо W
,
Кроме того, в Localizable.strings вы не помещаете @
перед цитатами, так что это:
"festaCompresa" = @"%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n";
должно быть так:
"festaCompresa" = "%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n";
Надеюсь, поможет
В вашем файле строк есть небольшая ошибка, вы включили @
как будто строка как NSString
константа - формат файла использует строки в кавычках:
"festaCompresa" = "%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n";
Кстати: при создании строк формата для локализации вам может понадобиться использовать позиционные форматы, где каждая спецификация формата включает в себя номер аргумента. Например:
"festaCompresa" = "%1$@ is the %2$i/%3$i/%4$i. the day of the week is %@. The holidays is included in the calculation. \n";
Это явно не требуется в приведенной выше строке, так как аргументы включены в порядке их предоставления. Однако в некоторых языках они могут быть в другом порядке, и вот как это делается.