Для этого создана тонна инфраструктуры. По сути, API-интерфейсы NSBundle имеют концепцию локализации и прозрачно перенаправляют все, что проходит через них, на соответствующим образом локализованную версию, если она доступна. Если вы когда-либо видели «.lproj» в своем комплекте, это для локализации.
Итак, вопрос в том, как вы это настроили? С nibs это легко, вы просто помещаете несколько копий пера в свое приложение, по одной в каждый lproj. Со строками немного сложнее: вы создаете файл Strings.localizable, а затем всякий раз, когда вам нужна строка, вы получаете ее, вызывая NSLocalizedString(), который будет искать строку в файле Localized.strings вашего текущий язык.
В Xcode есть несколько встроенных способов быстрой настройки. Вы можете выбрать любой ресурс и открыть окно «Информация», там будет кнопка «Сделать локализуемым». После того, как вы нажмете, появится еще одна кнопка «Добавить локализации», которая позволяет добавить в проект определенные локализации. На этом этапе рядом с вашим ресурсом появится треугольник раскрытия, который позволит вам редактировать ресурс в каждой конкретной локали.
Существует несколько различных способов справиться с некоторыми из этих вещей, в зависимости от вашего приложения, и есть инструменты, которые Apple предоставляет, чтобы упростить эту задачу. Это достойный пост в блоге о том, как локализовать вещи.
Вы должны помнить, что если вы просматриваете локализацию и вручную решаете, какие ресурсы использовать на ее основе, вы, вероятно, делаете это неправильно. В большинстве случаев вы просто хотите определить место, которое требует локализации, и запросить у системы ресурс через API, который обрабатывает это за вас (NSLocalizedString(), -[NSBundle pathForResource:ofType:] и т. д.).
person
Louis Gerbarg
schedule
17.07.2009