Каков второй параметр NSLocalizedString ()? - PullRequest
118 голосов
/ 18 сентября 2009

Что такое параметр *comment в:

NSString *NSLocalizedString(NSString *key, NSString *comment)

Если я сделаю это:

NSLocalizedString(@"Hello_World_Key", @"Hello World")

и имеют две версии Localizable.strings (на английском и испанском языках), нужна ли каждая запись:

English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World";

Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo";

Разве английский не лишний?

Ответы [ 3 ]

266 голосов
/ 18 сентября 2009

Второй параметр - это комментарий, который автоматически появится в файле строк, если вы используете утилиту командной строки genstrings , которая может создать файл строк для вас путем сканирования исходного кода.

Комментарий полезен для ваших локализаторов. Например:

NSLocalizedString(@"Save",@"Title of the Save button in the theme saving dialog");

Когда вы запускаете genstrings, это приведет к записи в файле Localizable.strings, например:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";
66 голосов
/ 18 сентября 2009

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

Например, клавиша Hello_World_Key может принимать разные значения на данном языке, в зависимости от того, насколько формальной или неформальной должна быть фраза Hello World на этом языке («Что случилось, мир», «Мир йо», Мир доброго дня "и др.).

Вы можете добавить строку в поле комментария, чтобы подсказать это использование переводчику, который (как можно предположить) сможет лучше локализовать ваше приложение.

0 голосов
/ 27 июля 2012

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

Параметр комментария позволяет разработчику понять, что представляет собой ключ ...

...