Локалізація мобільної програми на англійську мову
Англійська локалізація — це перший вихід на міжнародний ринок та одночасно технічна точка, яку часто роблять неправильно. Не тому що складно перекласти, а тому що en-локалізація нерідко стає базовою, та всі інші мови наслідують від неї структуру. Якщо структура неправильна — проблеми будуть в кожній наступній мові.
En як базова мова: правильне налаштування
На iOS Base Internationalization у налаштуваннях проекту — обов'язково включена. Base локалізація містить storyboard/XIB файли, інші мови — лише .strings файли з перекладами. Без Base Internationalization кожна нова мова потребує окремий storyboard.
en.lproj/Localizable.strings — базовий файл. Ключі повинні бути смисловими, не російськими строками. Погано: "Войти" = "Sign In". Добре: "auth.login.button.title" = "Sign In". Смислові ключі дозволяють змінити російський текст без перейменування ключа у всіх мовах.
На Android: res/values/strings.xml — базовий (за умовчанням en), res/values-ru/strings.xml — російський. Структура ключів та же: <string name="auth_login_button">Sign In</string>.
Plural forms в англійській
В англійській лише дві форми: one (1) та other (все інше). Простіше російської, але помилку роблять так: пишуть «%d notification(s)» замість правильного plural resource. Дужки — не локалізація, це костиль.
Android:
<plurals name="notification_count">
<item quantity="one">%d notification</item>
<item quantity="other">%d notifications</item>
</plurals>
iOS .stringsdict:
<key>notification_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@count@</string>
<key>count</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>one</key>
<string>%d notification</string>
<key>other</key>
<string>%d notifications</string>
</dict>
</dict>
Формати дат та чисел
Англійська локаль неоднорідна. en_US та en_GB використовують різні формати дат (MM/DD/YYYY vs DD/MM/YYYY) та різні розділювачі чисел. DateFormatter та NumberFormatter з явним locale — не опціональна оптимізація, а вимога коректності.
Для програми з аудиторією у кількох англомовних країнах: використовуємо Locale.current для форматування, а не hardcодимо en_US.
Довжина строк та UI
Англійські строки коротші за російські. Якщо UI проектувався під англійську, при додаванні російської можуть бути проблеми з довжиною. Якщо навпаки — при англійській локалізації появляється зайве пусте місце. Рішення: sizeToFit для лейблів, hugging priority для кнопок, тестування псевдолокалізацією Double-Length в обидва боки.
Часові рамки: один-три робочих дні, включаючи налаштування інфраструктури локалізації та тестування.







