интернационализация приложения для iPhone - PullRequest
0 голосов
/ 20 декабря 2011

Я новичок в разработке приложений для iPhone (я использую XCode 4.2), и мне было интересно, есть ли способ перевести все строки, заголовки и т. Д. Внутри, без необходимости переводить их по одной.

Идея, которую я имею в виду, состоит в том, чтобы использовать NSUserDefaults, чтобы сохранить язык как глобальную переменную и перевести все соответственно

Другой вариант - создать справочную таблицу (возможно ли это даже в Objective-C?)

Спасибо

Ответы [ 4 ]

1 голос
/ 25 января 2013

Вы можете прочитать пошаговое руководство по процессу здесь:

Учебник по локализации iPhone

Вот краткий обзор основ (подробности в вышеприведенном уроке):

1) Измените все свои закодированные строки на вызов: NSLocalizedString(@"My text", @"Context for the translator")

2) Экспортируйте все свои строки, используя команду genstrings Terminal.

3) При этом создается текстовый файл Localizable.strings со всеми вашими английскими (исходными) строками. Это выглядит так:

/* Context for the translator */
"My text" = "My text";

Вы отправляете этот файл переводчикам. Они переведут правую сторону так: "My text" = "Mi texto";

4) Каждый переведенный файл Localizable.strings помещается в соответствующую языковую папку: en.lproj , fr.lproj , es.lproj и т. Д. .

Когда ваше приложение загружается на iPhone, оно проверит языковые настройки пользователя. Если пользователь выбрал французский в качестве системного языка, будет загружен файл Localizable.strings в вашем файле папки fr.lproj . Если есть какие-либо непереведенные строки, для них по умолчанию используется английский (или любой другой язык).

Стоит следовать всему уроку и учтите, что имена файлов / папок должны быть точными!

1 голос
/ 20 декабря 2011

Вы можете использовать NSLocalizedString(@"<#key#>", @"<#comment#>") и один файл (с именем Localizable.strings (для языка. Если вы используете вышеупомянутую функцию, вы можете использовать App Linguan (доступно в Mac App Store) для генерации файлов Localizable.strings.

Существует также инструмент командной строки под названием genstrings, который создаст файл для вас, но поверьте мне, приложение Linguan окупит себя за несколько минут.

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

0 голосов
/ 20 декабря 2011

Все, что вам нужно будет создать - это файлы с парами ключ-значение для каждого языка, который вы хотите перевести, и присвоить им соответствующие имена, т. Е. _En, _fr и т. Д.

Тогда все, что вам нужно сделать, это отправить сообщение этому методу:

NSLocalizedString(@"myKey", nil)

И это вернет локализованную строку, на любом языке, текущая конфигурация iPhone.

0 голосов
/ 20 декабря 2011

Посмотрите документацию для NSLocalizedString. И как локализовать ваши файлы .xib (вы делаете локализованные копии на английском языке.lproj, de.lproj, fr.lproj и т. Д.).

...