Белорусская локализация: пошаговое руководство для разработчика
Вы добавили русский и английский, но заказчик просит белорусский. На первый взгляд задача простая, но при тестировании plural forms ломают UI, буква Ў не отображается в кастомном шрифте, а даты выводятся по-русски. Как избежать этих ошибок и сделать локализацию правильно? Наш опыт — 5+ лет и более 20 проектов для iOS и Android. В этой инструкции разберём ключевые моменты.
Почему белорусский язык требует особого подхода?
Белорусский — близкородственный русскому, но грамматика и plural forms отличаются. iOS и Android поддерживают be locale, но стандартные механизмы нужно правильно настроить. Важно не использовать русскую локализацию как fallback — система корректно покажет en, а русский fallback введёт пользователей в заблуждение. Кроме того, буквы Ў и І присутствуют в Unicode и поддерживаются системными шрифтами, но кастомные шрифты могут их не содержать.
Plural forms: как не ошибиться с согласованием
Белорусский использует CLDR-правила: one (1, 21, 31…), few (2–4, 22–24…), many (5–20, 25–30…). В Android <plurals> с соответствующими quantity покрывают все формы. В iOS — .stringsdict с теми же ключами. Особенность: согласование числительных иное, чем в русском. Пример: «адно апавяшчэнне» (1), «два апавяшчэнні» (2–4), «пяць апавяшчэнняў» (5+). Не копируйте русские формы — проверяйте с носителем.
| Количество | Белорусский | Русский (для сравнения) |
|---|---|---|
| 1 | адно апавяшчэнне | одно уведомление |
| 2–4 | два апавяшчэнні | два уведомления |
| 5+ | пяць апавяшчэнняў | пять уведомлений |
Как настроить plural strings в коде для iOS и Android?
Используйте стандартные ресурсы локации. В iOS файл Localizable.stringsdict с ключами NSStringPluralRuleType. В Android — plurals.xml с quantity. Убедитесь, что locale установлен как be. Для проверки используйте документацию Apple по локализации. Пример конфигурации для Android:
<plurals name="notifications"> <item quantity="one">адно апавяшчэнне</item> <item quantity="few">два апавяшчэнні</item> <item quantity="many">пяць апавяшчэнняў</item> </plurals> Пример для iOS (Swift)
let format = NSLocalizedString("notifications", comment: "") let result = String.localizedStringWithFormat(format, count) В Localizable.stringsdict:
<dict> <key>notifications</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@notifications@</string> <key>notifications</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>one</key> <string>адно апавяшчэнне</string> <key>few</key> <string>два апавяшчэнні</string> <key>many</key> <string>пяць апавяшчэнняў</string> </dict> </dict> </dict> Кодировка и шрифты: буквы Ў и І
Белорусский алфавит содержит буквы Ў (у краткае) и І (и). Они есть в Unicode и поддерживаются системными шрифтами (San Francisco, Roboto). Проблемы возникают только с кастомными шрифтами — перед подключением проверяем наличие глифов. Locale identifier: be_BY. DateFormatter с Locale(identifier: "be_BY") выдаст «26 сакавіка» (без года).
Как тестировать локализацию на реальных устройствах?
Настраиваем устройство на системный язык «Беларуская». Проверяем:
- отображение Ў и І в UI-элементах;
- корректность plural forms для разных чисел;
- формат дат и чисел;
- отсутствие обрезания длинных слов (белорусские слова по длине близки к русским, layout обычно не страдает).
Инструменты для тестирования
TestFlight и Firebase App Distribution для распространения сборок, Xcode Instruments для проверки производительности, Android Studio Profiler. Сроки — от двух до трёх рабочих дней для 200–500 строк. Использование автоматизированного тестирования на эмуляторах сокращает время на 30%.
Сравнение подходов: ручной перевод vs машинный
| Критерий | Ручной перевод | Машинный перевод |
|---|---|---|
| Точность | Высокая (носитель) | Средняя (ошибки в глаголах) |
| Стоимость | Высокая (с верификацией) | Низкая (требует доработки) |
| Сроки | 2–3 дня | 1 день + доработка |
Ручной перевод с верификацией носителем даёт качество, которое машинный не достигает даже после редактирования. Для UI-строк лучше сразу закладывать ручной перевод — это окупается отсутствием багов.
Этапы локализации под ключ
- Анализ текущей локализации: оценка объёма, выявление проблемных мест (кастомные шрифты, plural forms).
- Экспорт строк: через xcloc (iOS) или Android Localization Tool.
- Перевод и верификация: перевод носителем, проверка вторым специалистом.
- Интеграция: добавление файлов в проект, настройка plural forms и locale.
- Тестирование: на реальных устройствах с системным языком be_BY, проверка всех UI-элементов.
- Деплой: подготовка билдов для App Store и Google Play, учёт App Store Review Guidelines (Section 4.2/5.1).
Что входит в работу под ключ?
- Полный перевод UI-строк с верификацией носителем;
- Настройка plural forms для iOS и Android;
- Тестирование на реальных устройствах;
- Исправление проблем со шрифтами и layout;
- Интеграция в CI/CD (опционально);
- Документация по локализации для разработчиков.
Оценим ваш проект: напишите — рассчитаем сроки и стоимость индивидуально. Свяжитесь с нами — поможем с подготовкой билдов и прохождением ревью. Получите консультацию прямо сейчас!







