Заполнитель и 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";

Это явно не требуется в приведенной выше строке, так как аргументы включены в порядке их предоставления. Однако в некоторых языках они могут быть в другом порядке, и вот как это делается.

Другие вопросы по тегам