Який другий параметр NSLocalizedString ()?


123

Який *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";

Хіба англійська мова не є зайвою?

Відповіді:


72

Рядок коментарів програма ігнорує. Він використовується для переваги перекладача, щоб додати значення контекстному використанню ключа, де він знаходиться у вашій програмі.

Наприклад, Hello_World_Keyключ може приймати різні значення в даній мові, залежно від того, наскільки формальною чи неофіційною Hello Worldфразою має бути ця мова ("Що таке у світі", "Йо світ", "Світ доброго дня" тощо).

Ви можете додати рядок у поле коментарів, щоб натякнути на це використання перекладачеві, який (можна вважати) зможе краще локалізувати вашу програму.


277

Другий параметр - це коментар, який автоматично з’явиться у файлі рядків, якщо ви використовуєте утиліту командного рядка 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";

@JuandelaTorre: Це питання вже кілька років, можливо, 4thSpace (людина, яка поставила це запитання) не подивилася на його питання, оскільки прийняла одну з відповідей.
Манні

Це також буде використано, якщо файл рядків не містить записи, яка відповідає вказаному вами ідентифікатору.
Оскар

4
Ні, в цьому випадку використовується ключ, а не коментар.
Нік Локвуд

який сенс? так, це корисно для короткого id ( "id" - "word";як у вашому прикладі "Save" = "Save";), але вам потрібно вручну додати щось довше"id" - "word 1 word 2 word 3";
user924

Коментар (другий параметр) призначений для локалізаторів. Хтось, хто додає рядки для вашої програми іншою мовою, потребує контексту, щоб знати, який переклад застосувати. Перший параметр просто вказує ключ у файлі рядків локалізації, файл рядків - це те, що фактично зберігає текст для відображення в інтерфейсі користувача.
Роб Кенігер

0

Це лише для розуміння розробником перекладу, тобто ви даєте ключ, щоб отримати відповідний рядок із відповідного файлу рядків.

Параметр коментаря дозволяє розробнику зрозуміти, що являє собою ключ ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.