изменить язык - PullRequest
       12

изменить язык

0 голосов
/ 17 июля 2009

как поменять язык в приложении iPhone?.

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

  1. чтение из файла свойств

  2. создать один статический класс в проекте со строковой переменной.

или возможно любое изменение в файле свойств.

Пожалуйста, помогите мне ... Спасибо и всем привет

1 Ответ

4 голосов
/ 17 июля 2009

Существует тонна встроенной инфраструктуры для этого. По сути, API-интерфейсы NSBundle имеют концепцию локализации и прозрачно перенаправляют все, что проходит через них, в соответствующим образом локализованную версию, если она доступна. Если вы когда-либо видели «.lproj» в вашем комплекте, это для локализации.

Итак, вопрос в том, как вы это настраиваете? С nibs это легко, вы просто помещаете несколько копий nib в свое приложение, по одной в каждом lproj. Строки немного сложнее, то, что вы делаете, это создаете файл Strings.localizable, тогда всякий раз, когда вам нужна строка, вы получаете ее, вызывая NSLocalizedString () , которая ищет строку в файле Localized.strings вашего текущего языка.

В Xcode есть несколько встроенных способов быстрой настройки. Вы можете выбрать любой ресурс и открыть окно «Информация», там будет кнопка «Сделать локализуемым». После того, как вы нажмете, появится еще одна кнопка «Добавить локализации», которая позволит добавить определенные локализации в проект. На этом этапе рядом с вашим ресурсом будет треугольник раскрытия, который позволит вам редактировать ресурс в каждой конкретной локали.

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

Следует помнить, что если вы просматриваете локализацию и вручную решаете, какие ресурсы использовать на ее основе, вы, вероятно, делаете это неправильно. В большинстве случаев вам просто нужно определить место, которое требует локализации, и запросить у системы ресурс через API, который его обрабатывает (NSLocalizedString (), - [NSBundle pathForResource: ofType:] и т. Д.).

...