2015-05-20 1 views
0

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

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

А потом я получил испанский локализуемый файл как:

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

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

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

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

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

+1

Посмотрите здесь: http://www.daveoncode.com/2010/05/15/iphone-applications-localization/, он должен работать в зависимости от ваши предпочтительные настройки языка. – TheEye

ответ

0

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

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

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

Заметим, что это уже обсуждалось здесь: Fallback language iOS (with incomplete Localizable.strings file)

+0

Спасибо, я не ищу правильные ключевые слова – jlmg5564