Керівництво по локалізації iOS для багатомовних програм для iPhone

  1. Вступ
  2. 1. Створення ресурсів, локалізуемих в Xcode
  3. 2. Локалізація файлів Interface Builder
  4. Обробка дубльованих рядків
  5. 3. Збір вбудованих текстів в файли ресурсів
  6. Додавання коментарів
  7. Створення файлу Localizable.strings
  8. 4. Переклад файлів ресурсів
  9. 5. Імпорт перекладу в додаток для iOS
  10. Додавання локалізованого файлу в Xcode
  11. Перегляньте перекладений файл Interface Builder.
  12. 6. Перевірте переклад на пристрої iPhone або iPad
  13. Усунення несправностей
  14. Оновлення перекладу, коли додаток для iOS розвивається
  15. Потрібен переклад для вашого iOS-додатки?

Це керівництво покаже вам, як перетворити одномовних додаток iOS, створене за допомогою Xcode, в багатомовне

Це керівництво покаже вам, як перетворити одномовних додаток iOS, створене за допомогою Xcode, в багатомовне.

зміст:

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

Вступ

Процес локалізації додатки для iOS включає в себе наступне:

  1. Підготовка файлів ресурсів для локалізації.
  2. Збір всіх текстів, які використовуються в додатку, в файли ресурсів.
  3. Переклад файлів ресурсів.
  4. Інтеграція файлів ресурсів назад в додаток.

Оскільки додатки для iOS багатомовними за своїм дизайном, пристрій вже знає, що робити, якщо ваше додаток доступний на кількох мовах. Воно буде відображати тексти GUI потрібною мовою, відповідно до настройками мови пристрою.

Всі додатки для iOS побудовані з використанням текстів Unicode, закодованих як UTF-16. Симулятор iPhone і iPad підтримують цей формат і дозволяють попередньо переглянути перекладене додаток.

1. Створення ресурсів, локалізуемих в Xcode

Xcode повинен знати, що ваш проект містить багатомовні файли ресурсів.

Найпростіший спосіб зробити файл локалізованим за допомогою Xcode - просто видалити файл з проекту і, в Finder, перемістити його в каталог локалізації. Переконайтеся, що ви натискаєте «Видалити посилання», а не «Також перемістити в кошик» при видаленні файлу з вашого проекту, щоб сам файл не віддалявся, а віддалялася тільки посилання на нього в проекті.

Якщо ваші вихідні файли ресурсів на англійській мові, то створіть нову папку з ім'ям en.lproj в папці вашого проекту. Якщо вихідні файли ресурсів на іншій мові, замініть en на двобуквений код країни .

Перемістіть файл ресурсу в новий каталог локалізації, а потім перетягніть ресурс в проект Xcode. Xcode тепер розпізнає ресурс як локалізований на даній мові. Повторіть ці дії для всіх інших файлів ресурсів, які потрібно локалізувати.

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

витяг рядків

Щоб витягти рядки з файлів ресурсів Interface Builder, вам необхідно запустити інструмент, подібний ibtool, який входить в стандартну установку комплекту розробника.

Щоб витягти файли, відкрийте Термінал в каталозі проекту і виконайте команду:
ibtool --generate-strings-file Example.strings en.lpoj / Example.xib
Це створить файл Example.strings. Відкрийте його, і ви побачите безліч парних значень об'єкта-рядки.

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

Обробка дубльованих рядків

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

Деякі повторювані рядки необхідно перевести тільки один раз, в той час як інші повторювані рядки мають різні переклади. Одне і те ж назву кнопки в різних станах повинно мати однаковий переклад. Проте, рядок може бути як іменником, так і дієсловом.

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

Система перекладу ICanLocalize для iOS може автоматично видаляти дублікати рядків з файлів ресурсів, спрощуючи цю задачу.

3. Збір вбудованих текстів в файли ресурсів

Зазвичай додатки для iOS містять два види текстів. Є інтерфейс програми (керований Interface Builder) і впроваджені рядка, які з'являються вбудованими в самому коді.

Рядки в інтерфейсі вже розташовані в файлі ресурсів, і ми повинні переконатися, що сам код використовує тільки ті рядки, які також зчитуються з файлу ресурсів.

Вбудована рядок буде виглядати так:

@ "Hello World!"

Нам потрібно відредагувати вихідні файли і змінити все вбудовані рядки, щоб вони виглядали так:

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

Тепер «Hello World!» Є токеном. Функція NSLocalizedString створить рядок, яка буде виведена. Вона поверне локалізовану рядок відповідно до мови додатка. NSLocalizedString читатиме файл Localizable.strings з каталогу локалізації.

Перегляньте весь свій код і визначте, які рядки орієнтовані на користувача і повинні бути локалізовані. Чи не Локалізуйте рядки, які користувач ніколи не побачить, наприклад ключі в NSDictionary (якщо, звичайно, ви ніколи не відобразите ці ключі).

Додавання коментарів

Ви помітили це «вітальне повідомлення» (другий аргумент)?

Це коментар, який увійде в файл ресурсів і також буде видно перекладачеві. Дуже важливо додавати коментарі в місцях, де текст не вимагає пояснень. Таким чином, перекладач, який працює над вашим додатком, знатиме, для чого використовується текст і як правильно його перевести.

Створення файлу Localizable.strings

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

genstrings -o en.lproj * .m

Це витягне все ключі з викликів NSLocalizedString і скомпілює їх в один файл Localizable.strings в каталозі локалізації en.lproj. Якщо ваші файли класів знаходяться в іншому каталозі, переконайтеся, що ви включили їх в кінець цієї команди (наприклад, Classes / *. M).

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

Тепер у вас повинно бути два файли ресурсів. Файл ресурсів Interface Builder (створений ibtool) і файл ресурсів вбудованих рядків (створений genstrings).

Ви можете відправити обидва файли для перекладу в ICanLocalize.

У нас є спеціальний інструмент для локалізації файлів ресурсів iOS , Який дозволяє перекладати програми iOS, не витрачаючи час на технічні завдання. Інструмент прочитає ваші файли ресурсів, витягне тексти, які потрібно перевести, і створить перекладені файли ресурсів.

Ви можете завантажувати файли ресурсів в кодуванні UTF-16 або UTF-8. Інструмент витягне пари міток і рядків (і коментарі, якщо такі є). Професійні перекладачі, які мають великий досвід локалізації додатків для iOS, переведуть тільки рядки. Ви зможете безпосередньо спілкуватися зі своїми перекладачами, щоб переконатися, що переклад не тільки точний, але і адаптований до культури і звичаїв інших країн.

Для цього вам потрібно буде Створити акаунт (Безкоштовно). Потім створіть проект перекладу для iOS, завантажте файли ресурсів і виберіть потрібну мову для перекладу і оплатіть переклад. По завершенні ви зможете завантажити локалізовані файли ресурсів і імпортувати їх назад в свій додаток.

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

5. Імпорт перекладу в додаток для iOS

Створення локалізованого 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 повинен увійти в групу, яка містить інші локалізації цього файлу.

Перегляньте перекладений файл Interface Builder.

Відкрийте перекладений файл в Interface Builder і перегляньте все. Найчастіше, довжини різних рядків можуть значно змінюватися. Переклад з англійської на німецьку та французьку часто на 50% довше вихідного тексту. Можливо, вам доведеться трохи змінити макет, щоб переконатися, що все видно.

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

Це необхідно зробити тільки в тому випадку, якщо ви відредагували файл .strings перед відправкою на переклад. Система ICanLocalize вже видаляє дублікати з перекладу та повторно вставляє їх в перекладений файл ресурсів.

Ваше iOS-додаток тепер має працювати на декількох мовах! Але почекайте, є ще один крок.

6. Перевірте переклад на пристрої iPhone або iPad

Після того, як все буде зроблено, у вас буде багатомовне додаток.

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

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

Ось деякі речі, на які варто звернути увагу:

Прорахунок Що може трапитися Як виправити Перекладені рядки виходять за межі Німецький, французька, іспанська та інші європейські мови зазвичай складають від 120% до 150% розміру англійського тексту. Азіатські мови зазвичай складають 50% -70%. Рекомендуємо адаптувати графічний інтерфейс до рядків різних розмірів. Система локалізації iOS ICanLocalize перевіряє довжину рядків і попереджає про надто довгих або занадто коротких рядках. Відсутні символи форматування Багато рядки містять местозаполнітелі для даних, такі як% s для тексту та% d для чисел. Інші рядки включають HTML-код. Якщо переклад не включає таке ж форматування, програма не буде працювати. Наша система перекладу дозволяє вам вводити «обов'язкові» послідовності. Це забезпечить, щоб переклади включали ті ж послідовності, що і оригінали. В іншому випадку вам слід вручну переглянути всі рядки і переконатися, що символи форматування збігаються. Переклад поза контекстом Завжди є ймовірність, що перекладач не зовсім зрозумів значення рядка. Це відбувається, коли додатки містять короткі і не описові рядки. Перед початком роботи відправте повний опис додатка перекладачеві. Після цього зробіть знімки екрану програми і відправте перекладачеві для остаточної перевірки. Додавання коментарів до рядків допоможе вам отримати відмінний переклад.

Усунення несправностей

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

На відміну від симулятора iPhone, реальний пристрій розпізнає тільки рядкові файли в форматі UTF-16. Завжди перевіряйте локалізації на пристрої, так як симулятор і пристрій не завжди поводяться однаково.

Перекладені файли ресурсів, що завантажуються з ICanLocalize, мають кодування UTF-16. Вони містяться в архівах gzip, щоб ваш браузер не змінював їх при завантаженні.

Оновлення перекладу, коли додаток для iOS розвивається

ICanLocalize дозволяє легко підтримувати ваші переклади в актуальному стані. Коли додаток розвивається, створюються нові рядки, і існуючі рядки можуть змінитися.

Щоб оновити переклади, знову запустіть genstrings, для створення нового файлу Localizable.strings. А після перезапуску ibtool, щоб згенерувати нові рядкові файли.

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

Примітка: коли в рядок вносяться зміни, її необхідно знову повністю перевести. Для того, щоб знизити вартість поновлення перекладів, рекомендуємо розбивати великі рядки на кілька менших. Таким чином, коли ви вносите зміни, та частина, яку необхідно перевести, стає менше і коштує дешевше. Рядки повинні бути досить великими, щоб їх можна було очистити самостійно, але не дуже великими, щоб їх оновлення не було дорогим.

Потрібен переклад для вашого iOS-додатки?

ICanLocalize пропонує професійний переклад, оптимізований для iOS-додатків. Ми можемо допомогти вам швидко, легко і з мінімальними витратами зробити ваше додаток в багатомовним.

Досвідчені перекладачі, які пишуть на своїх рідних мовах, переведуть ваше додаток, допомагаючи вам отримувати більше продажів з усього світу.

Досвідчені перекладачі, які пишуть на своїх рідних мовах, переведуть ваше додаток, допомагаючи вам отримувати більше продажів з усього світу

«Я використовував ICanLocalize, щоб перевести моє iOS-додаток для садівництва, Plant Album «Я використовував ICanLocalize, щоб перевести моє iOS-додаток для садівництва, Plant Album. Я вже користувався їхніми послугами в минулому, і я як і раніше вражений їх професійним складом, якістю перекладу та простим у використанні сайтом. Настійно рекомендується для всіх ваших потреб локалізації! »

»

«Ми використовуємо ICanLocalize з 2012 року, і це дійсно спростило наш робочий процес, коли мова заходить про переведення нашого контенту для різних ринків. Більше не потрібно шукати перекладачів на різні мови, вчити їх користуватися інструментами перекладу, індивідуально складати звіти та т. Д., Оскільки ICanLocalize робить все це для нас! Ми використовуємо сервіси ICanLocalize для перекладу наших веб-сайтів, додатків, інформаційних бюлетенів та інших маркетингових матеріалів, і ви завжди можете розраховувати на швидку роботу. Я розумію, що все це заява звучить як платна реклама або щось в цьому роді, але я дійсно не написав нічого, що не відповідає дійсності або не є моїм справжнім думкою! Я б порекомендував ICanLocalize в будь-який час! »

«ICanLocalize - це найкраще рішення для швидких і якісних перекладів вашого застосування «ICanLocalize - це найкраще рішення для швидких і якісних перекладів вашого застосування. Ми користуємося їхніми послугами для всіх наших програм з хорошими результатами і позитивними відгуками наших користувачів. Я рекомендую використовувати ICanLocalize для локалізації ваших додатків. »

«Користуватися ICanLocalize було неймовірно просто «Користуватися ICanLocalize було неймовірно просто. Перекладачі нам дуже допомогли, а процес перекладу виявився ідеально простий. ICanLocalize доступний для розробників всіх категорій, і він допоміг нам досягти набагато більшої кількості клієнтів, ніж будь-коли раніше. »

«ICanLocalize допоміг мені заощадити масу часу, оскільки він надає перекладачів для будь-якої мови, а також ви можете попросити інших перекладачів перевірити переклади, щоб переконатися в їх точності «ICanLocalize допоміг мені заощадити масу часу, оскільки він надає перекладачів для будь-якої мови, а також ви можете попросити інших перекладачів перевірити переклади, щоб переконатися в їх точності. Найбільша допомога, яку надає ICanLocalize, - це можливість завантажувати мої рядкові файли з xcode безпосередньо в сайт, тому, коли переклади готові, я можу просто замінити мої рядкові файли в моєму проекті, і все зроблено. »

Якщо ви бажаєте перевести і повторно опублікувати це керівництво, будь ласка спочатку Зв'яжіться з нами. Скажіть нам, де ви хочете опублікувати його і кілька слів про себе.

Потрібен переклад для вашого iOS-додатки?