2012-04-30 4 views
6

Я пытаюсь перевести свое приложение, и мне трудно перевести его, когда есть половина заполнителя. Мне нужно, чтобы найти следующий код:Заполнитель и 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]]; 

It не работает.

+0

Как точно это не работает? – hamstergene

+0

Неверный экран, потому что слово compare: festaCompresaW – Andrea

+0

Также есть ошибка в файле. string: Ошибка проверки: данные не могли быть прочитаны, поскольку они были повреждены. – Andrea

ответ

4

Вы скопировали код? Или вы перепечатали его? Потому что, если вы копируете вставили его проблема есть:

[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"; 

Надеется, что это помогает

6

Ваш файл строки имеет незначительные ошибки, вы включили @ как будто струны в качестве NSString константы - формат файла использует строки в кавычках:

"festaCompresa" = "%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n"; 

КСТАТИ: при создании строки форматирования для локализации вам может потребоваться использовать positional, где каждая спецификация формата включает в себя номер аргумента. Например:

"festaCompresa" = "%[email protected] is the %2$i/%3$i/%4$i. the day of the week is %@. The holidays is included in the calculation. \n"; 

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

Смежные вопросы