Каков второй параметр 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"; 

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

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

Например, ключ Hello_World_Key может принимать разные значения на заданном языке, в зависимости от того, как формальная или неформальная фраза Hello World должна быть на этом языке («What’s Up World», «Yo World», «Good Day World» и т. Д. .).

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

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

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

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

  • MVC 4 игнорирует DefaultModelBinder.ResourceClassKey
  • Личные имена в глобальном приложении: что хранить
  • Как установить и изменить культуру в WPF
  • Получить текущий язык в устройстве
  • Правильная локализация приложения WinForms
  • Как преобразовать String в Double в Java, используя определенную локаль?
  • WPF XAML Bindings и CurrentCulture Display
  • Что обычно лучше всего использовать - StringComparison.OrdinalIgnoreCase или StringComparison.InvariantCultureIgnoreCase?
  • Android context.getResources.updateConfiguration () устарел
  • Как изменить язык приложения, когда пользователь выбирает язык?
  • Проблемы с локализацией строки StringFormat в wpf
  • Давайте будем гением компьютера.