Главная » Учебники » Руководство по локализации приложений для iPhone

Руководство по локализации приложений для iPhone

Руководство по локализации приложений для iPhone

Это руководство покажет вам, как преобразовать одноязычное приложение для iPhone, построенное на Xcode, в многоязычное.

Содержание:

  1. Создание ресурсов, локализуемых в Xcode
  2. Локализация файлов Interface Builder
  3. Сбор встроенных текстов в файлы ресурсов
  4. Перевод файлов ресурсов
  5. Импорт перевода в приложение для iPhone
  6. Тестирование перевода на устройстве iPhone

Нужен перевод вашего приложения для iPhone?

ICanLocalize предоставляет профессиональный перевод приложений для iPhone.

Загрузите файл ресурсов и получите итоговую расценку прямо сейчас.

Файл ресурсов для iPhone:

Формат файла:

С языка:

На язык:

У вас уже есть переводчики?

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

Бесплатная система перевода для мобильных приложений »

Ознакомление

Процесс локализации приложения для iPhone включает следующие этапы:

  1. Подготовка файлов ресурсов к локализации.
  2. Сбор всех текстов, используемых в приложении, в файлы ресурсов.
  3. Перевод файлов ресурсов.
  4. Интеграция файлов ресурсов обратно в приложение.

Так как устройства iPhone изначально являются многоязычными, после того как ваше приложение будет доступно на нескольких языках, телефон уже будет знать, что делать. Он будет отображать GUI-тексты на нужном языке, согласно параметрам языка телефона.

Все iPhone-приложения строятся с использованием Юникод-текстов, кодированных в UTF-16. Симулятор iPhone поддерживает этот формат и позволит вам просматривать переведенные приложения.

1. Создание ресурсов, локализуемых в Xcode

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

Самый простой способ сделать файл локализуемым с Xcode является простое удаление файла из проекта и перемещение его в каталог локализованных в Finder. Убедитесь, что вы нажали на «Удалить ссылки», а не на «Также переместить в корзину», при удалении файла из проекта, так чтобы сам файл не был удален, но была удалена только ссылка на него в проекте.

Если ваши исходные файлы ресурсов на английском языке, то необходимо создать новую папку с именем en.lproj в папке вашего проекта. Если исходные файлы ресурсов на другом языке, замените двухбуквенный код en.

Переместите файл ресурсов в новый каталог локализации, а затем перетащите ресурс в проект Xcode. Теперь Xcode распознает ресурс как локализованный на этом языке. Повторите эти действия для всех других файлов ресурсов, которые необходимо локализовать.

2. Локализация файлов Interface Builder

Извлечение строк

Чтобы извлечь строки из файлов ресурсов Interface Builder, необходимо запустить ibtool, включенный в установку стандартного комплекта разработчика.

Чтобы извлечь файлы, откройте Terminal в каталоге проекта и выполните команду:
ibtool --generate-strings-file Example.strings en.lpoj/Example.xib
Это действие создаст файл Example.strings. Откройте его, и вы увидите много комбинаций значений объекта строк.

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

Обработка повторяющихся строк

Файл ресурсов может содержать повторяющиеся строки, например, некоторые из названий кнопок в разных странах.

Некоторые повторяющиеся строки могут быть переведены лишь единожды, тогда как другие повторяющиеся строки имеют разные переводы. Одно и то же название кнопки в разных странах должно иметь строго одинаковый перевод. Однако, строки могут быть где-то существительными, а где-то — глаголами.

Вы можете удалить лишние повторяющиеся строки (которые должны иметь тот же перевод) из файла ресурсов или оставить их там и поручить переводчику обработать их как повторяющиеся строки.

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

3. Сбор встроенных текстов в файлы ресурсов

Как правило, приложения для iPhone содержат два вида текстов. Есть интерфейс приложения (управляемый Interface Builder) и встроенные строки, которые появляются непосредственно в самом коде.

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

Встроенная строка будет выглядеть следующим образом:

@"Hello World!"

Нам нужно редактировать исходные файлы и изменять все встроенные строки для следующего вида:

NSLocalizedString(@"Hello World", @"hello message")

Теперь «Привет мир!» является маркером. Функция NSLocalizedString будет производить строку, которая будет выводиться. Она вернет локализованную строку согласно языку приложения. NSLocalizedString будет считывать файл Localizable.strings из каталога локализации.

Пройдитесь по всему коду и определите, какие строки выходят на пользователя и должны быть локализованы. Не локализуйте строки, которые пользователь никогда не увидит, например, ключи в NSDictionary (если, конечно, вы не отобразите эти ключи).

Добавление комментариев

Вы заметили то сообщение «hello» (второй аргумент)?

Это комментарий, который будет включен в файл ресурсов и также будет видимым для переводчика. Очень важно добавлять комментарии в местах, где текст не говорит сам за себя. Таким образом, переводчик вашего приложения будет знать, для чего используется текст и как его нужно перевести.

Создание файла Localizable.strings

genstrings соберет все строки, которые должны быть переведены, из исходных файлов и создаст файл Localizable.strings. Для его запуска, откройте Terminal, перейдите в каталог проекта и выполните:

genstrings -o en.lproj *.m

Это выведет все ключи из вызовов NSLocalizedString и скомпилирует их в один файл Localizable.strings в папке локализации en.lproj. Если ваши файлы классов находятся в другом каталоге, убедитесь, что вы включите их в конце этой команды (например, Classes/*.m).

4. Перевод файлов ресурсов

Теперь у вас должно быть два файла ресурсов. Файл ресурсов Interface Builder (автор — ibtool) и внедренные строки файла ресурсов (автор — genstrings).

Вы можете отправить файлы на перевод ICanLocalize.

У нас есть специальный инструмент для локализации файлов ресурсов для iPhone, который позволяет переводить приложения для iPhone без затраты времени на технические задачи. Этот инструмент прочитает ваши файлы ресурсов, извлечет тексты для перевода и произведет переведенные файлы ресурсов.

Вы можете загрузить файлы ресурсов в кодировке UTF-16 или UTF-8. Этот инструмент извлечет пары меток и строк (и комментарии, если таковые имеются). Затем переводчики переведут одни только строки.

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

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

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

5. Импорт перевода в приложение для iPhone

Создание локализованных файлов .xib

Как только вы получили обратно переведенные строки файла, снова запустите Terminal и используйте его для создания локализованной копии этого файла .xib.

Сначала убедитесь, что вы создали каталог для той локализации, которую вы только что получили, например «fr.lproj». Переместите переведенные строки файла в этот каталог локализации.

Предполагая, что ваш исходный язык был английский, перейдите в каталог проекта, откройте Terminal и выполните:

ibtool --strings-file fr.lproj/Example.strings en.lproj/Example.xib –write fr.lproj/Example.xib

Это скопирует английский локализованный файл Interface Builder в другой каталог локализации и заменит значения всех объектов в файле переведенных строк.

Теперь у вас есть локализованный .xib, но файл еще не готов.

Добавление локализованного файла в Xcode

Перетащите только что локализованный файл .xib в свой проект в Xcode. Убедитесь, что вы не перетаскиваете файл в существующую локализацию. Локализованный файл .xib должен идти в группу, содержащую другие локализации этого файла.

Правильное место для размещения .xib-файла (нажмите для увеличения) Неправильное место для размещения .xib-файла (нажмите для увеличения)
Правильное место для размещения файла .xib Неправильное место для размещения файла .xib

Просмотрите переведенный файл Interface Builder

Откройте этот файл в Interface Builder и все проверьте. Частенько длина различных строк будет значительно изменена. Перевод с английского на немецкий и французский часто на 50% длиннее исходного текста. Может потребоваться немного изменить макет, чтобы убедиться, что всё видно.

Если вы вручную удалили все дубликаты, настало время поместить их обратно дублированием переведенных строк. Например, если две кнопки имели то же самое название, и вы удалили одну из кнопок из файла .strings, созданного ранее, то теперь вам надо скопировать название кнопки, которая получила перевод.

Это нужно сделать лишь если вы редактировали файл .strings до представления перевода. Система ICanLocalize сама удаляет дубликаты из перевода и вставляет их в переведенный файл ресурсов.

Ваше приложение для iPhone теперь стало многоязычным! Но подождите, есть еще один шаг.

6. Тестирование перевода на устройстве iPhone

После того, как все будет сделано, у вас будет многоязычное приложение.

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

Вы почти готовы выпустить приложение, только не забудьте его проверить.

Вот некоторые вещи, которые вы должны знать:

Просчет Что может случиться Метод устранения
Переведенные строки превышают размер Немецкий, французский, испанский и другие европейские языки, как правило составляют от 120% до 150% размера английского текста. Азиатские языки — 50% — 70%. Вам нужно адаптировать графический интерфейс для строк разных размеров. Система ICanLocalize локализации для iPhone проверяет длину строк и предупреждает о слишком длинных или слишком коротких строках.
Недостающие символы форматирования Многие строки включают в себя символы-заполнители для данных, такие как %s для текста и %d для чисел. Наша система перевода позволяет вам задать обязательные последовательности. Она проконтролирует, чтобы переводы включали те же последовательности, что и оригинал. В противном случае вы должны вручную просмотреть все строки и убедиться, что символы форматирования соответствуют.
Перевод вне контекста Есть вероятность, что переводчик неточно понял смысл строки. Это чаще происходит, когда приложения содержат короткие и не описательные строки. Отправьте полное описание приложения переводчику перед началом работы. Когда готово, сделайте снимки экрана приложения и отправьте их на финальную проверку. Добавление комментариев к строкам поможет быть уверенными, что вы получите отличный перевод.

Диагностика

Если строки в файле Localizable.strings присутствуют в переведенном файле, но не локализуются на iPhone, проверьте кодировку файла.

В отличие от симулятора iPhone, iPhone распознает только строки файлов в формате UTF-16. Всегда проверяйте свои локализации на устройстве, так как симулятор и устройство не всегда ведут себя одинаково.

Переведенные файлы ресурсов, которые вы загружаете из ICanLocalize, имеют кодировку UTF-16. Они уже содержатся внутри архивов gzip, чтобы убедиться, что ваш браузер не изменит их, когда вы будете их загружать.

Обновление перевода, когда приложение для iPhone развивается

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

Для обновления переводов запустите genstrings снова, чтобы создать новый файл Localizable.strings. Перезапустите ibtool для создания новых строк файлов.

Наконец, загрузите новые файлы ресурсов в существующий проект в ICanLocalize. Система обнаружит новые или измененные строки и отправит только их на перевод. Вам нужно будет оплатить только обновление перевода, а не начинать его с нуля.

Примечание: измененную строку необходимо полностью перевести заново. Чтобы уменьшить стоимость обновления переводов, рекомендуем разделить большие строки на несколько более мелких. Таким образом, когда вы делаете изменения, та часть, которую необходимо перевести снова, меньше и стоит меньше. Строки должны быть достаточно большими, чтобы было ясно, но не слишком большими, чтобы их обновление не было дорогим.

Нужен перевод для вашего iPhone-приложения?

ICanLocalize предлагает профессиональный перевод, оптимизированный для iPhone-приложений. Мы поможем вам сделать ваше приложение для iPhone многоязычным быстро, просто и дешево.

Эксперты-переводчики, переводящие на родной язык, переведут ваше приложение, и тем самым увеличат ваши продажи по всему миру.

«Нас впечатлил уровень профессионализма и внимания к деталям переводчиков, с которыми мы работали. По мере расширения на новые рынки и платформы, мы будем продолжать использовать ICanLocalize для получения результатов действительно мирового класса.»

«Не каждый владеет английским языком, но с ICanLocalize нам удалось выйти на более широкий рынок и технологии. Сейчас «Bump» охватывает намного более широкую аудиторию».

«Первоначально я не собирался локализовать свое приложение, полагая, что это будет слишком трудно или слишком дорого. Но потом я наткнулся на ICanLocalize. Я и понятия не имел, что перевод может быть сделан так легко.»


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