Локализуемая строка iOS со значениями по умолчанию

Я хочу понять, как локализуемая базовая строка работает в iOS. Например, в Android, если у меня есть локализуемые строки файлов по умолчанию (базовая локализация на iOS), например:

"title_app" = "Title"
"Copy" = "Copy";
"Edit = "Edit;"

А потом у меня есть файл с возможностью локализации на испанский язык, например:

"Copy" = "Copiar";
"Edit" = "Editar";

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

Иногда есть слова, которые не нуждаются в переводе. Или иногда у меня есть 10 языков, и, может быть, на один язык нужен перевод непереводимого слова. Например, «title_app» = «Мое приложение». То же будет на английском, французском, итальянском, испанском ... но на китайском нет. Неэффективно записывать ключ на 10 файлов, повторяя ... представьте 10, 20 или 50 слов.

Всегда Apple / iOS сильно отстает в вопросах перевода / локализации по сравнению с Android ...: S

Кстати о переводе; извините, мой плохой английский.


person jlmg5564    schedule 20.05.2015    source источник
comment
Посмотрите здесь: daveoncode.com/2010/05/15/ iphone-applications-localization, он должен работать в зависимости от ваших предпочтительных настроек языка.   -  person TheEye    schedule 20.05.2015


Ответы (1)


Макрос NSLocalizedString принимает два параметра: ключ и комментарий. Ключ будет найден в Localizable.strings файле, который представляет собой простую коллекцию пар "ключ-значение".

Как отметил @TheEye в комментариях по ссылке в блоге, вы можете осуществлять больший контроль и явно включать значение по умолчанию, используя макрос NSLocalizedStringWithDefaultValue.

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

Обратите внимание, это уже обсуждалось здесь: Резервный язык iOS (с неполной локализуемой .strings файл)

person Michael Teper    schedule 20.05.2015