Каков второй параметр NSLocalizedString()?

Что такое параметр *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";

Не является ли английский избыточным?

Ответ 1

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

Например, клавиша Hello_World_Key может принимать разные значения на заданном языке, в зависимости от того, как формальная или неформальная фраза Hello World должна быть на этом языке ( "What up World", "Yo World", Good Day World "и т.д.).

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

Ответ 2

Второй параметр - это комментарий, который будет автоматически отображаться в файле строк, если вы используете утилиту командной строки 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";

Ответ 3

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

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

Ответ 4

Это просто для разработчика, чтобы сделать код более понятным и понятным.

Как подсказка или комментарий к легкому обзору после этого.