Локалізація — суть, адаптація контенту під мову та регіон

Автор: IT Sectr Опубліковано: 2026-02-26 Час читання: 7 хв

Localization (локалізація, l10n) — адаптація контенту мобільного додатка під мову, регіон та культурні особливості цільової аудиторії. На відміну від інтернаціоналізації (i18n), де код готується до перекладу, локалізація — це сам процес перекладу рядків, форматування дат, чисел та валют, вибору зображень та врахування місцевих норм. На iOS переклади зберігаються в Localizable.strings (папки .lproj для кожної мови), на Android — в values-ru, values-de та інших каталогах ресурсів. Докладніше — в посібнику Android з локалізації.

Головне

  • Локалізація (l10n) — переклад та адаптація контенту додатка під конкретну мову та регіон
  • Localizable.strings — файл iOS, що містить пари «ключ» = «переклад» для кожної мови
  • values-ru — каталог ресурсів Android для російської мови (strings.xml)
  • Регіональна адаптація — дати, числа, зображення, кольори та юридичні вимоги різняться за країнами
  • Культурні особливості — кольори, іконки, жести та приклади мають відповідати місцевим нормам

Що таке Локалізація (l10n) і чим вона відрізняється від i18n?

Локалізація (скорочено l10n — 10 букв між «l» і «n») — це процес адаптації додатка під конкретну мову та регіон. Якщо i18n — архітектурний фундамент, то l10n — наповнення. i18n робить переклад можливим, l10n виконує його. Локалізація включає: переклад усіх текстів інтерфейсу, адаптацію форматів дат та чисел, заміну зображень з культурно чутливим контентом, коригування юридичних текстів (політика конфіденційності, EULA), налаштування платіжних систем під регіон та тестування на цільових пристроях.

Бізнес-рентабельність — локалізація безпосередньо впливає на конверсію. За даними CSA Research (2023), 76% користувачів надають перевагу покупкам в додатках рідною мовою, а 40% ніколи не купують іноземною. Локалізація на японську для ритейл-додатка збільшує конверсію в середньому на 150% (Google, 2022). Локалізовані додатки отримують в 2–3 рази більше органічних встановлень в регіональних App Store та Google Play завдяки регіональному ASO (ключові слова цільовою мовою).

i18n vs l10n — дві сторони одного процесу. i18n: винесення рядків в ресурси, підтримка RTL, форматування чисел. Робиться одноразово розробниками. l10n: переклад рядків, адаптація контенту, локальне тестування. Робиться багаторазово перекладачами та QA для кожної локалі. В IT Sectr ми закладаємо 20–30% часу спринту на локалізацію для кожної нової мови — це включає переклад, ревю, тестування на пристроях та виправлення багів.

Локалізація в iOS: Localizable.strings та Base Internationalization

Localizable.strings — основний файл для зберігання перекладів в iOS. Кожна локаль має свою папку .lproj: en.lproj/Localizable.strings, ru.lproj/Localizable.strings, de.lproj/Localizable.strings. Формат: «ключ» = «переклад»; (з крапкою з комою). Apple використовує Base Internationalization: Storyboard та XIB створюються одноразово (Base.lproj), а рядки інтерфейсу експортуються в Localizable.strings для кожної мови. Це позбавляє необхідності створювати копії XIB для кожної локалі.

swift
// en.lproj/Localizable.strings
// "settings.title" = "Налаштування";
// "profile.greeting" = "Вітаємо, %@!";
// "items.count" = "%d шт.";

// ru.lproj/Localizable.strings
// "settings.title" = "Налаштування";
// "profile.greeting" = "Вітаємо, %@!";
// "items.count" = "%d шт.";

// Завантаження рядка за ключем
navigationItem.title = NSLocalizedString(
    "settings.title",
    comment: "Заголовок екрану налаштувань"
)

// Рядок з параметром
let name = "Анна"
greetingLabel.text = String.localizedStringWithFormat(
    NSLocalizedString("profile.greeting", comment: ""), name
)

// XLIFF-імпорт (Xcode → Editor → Import Localizations)
// Автоматично оновлює .lproj файли після роботи перекладача

Base Internationalization — підхід Apple, при якому інтерфейс (Storyboard, XIB) створюється одноразово в Base.lproj. При додаванні мови Xcode експортує рядки з Base в XLIFF-файл. Перекладач перекладає XLIFF. Після імпорту Xcode створює .lproj з перекладеними рядками. Перевага: не потрібно дублювати XIB для кожної мови. Обмеження: для RTL-мов (арабська, іврит) може знадобитися окремий XIB з дзеркальним макетом.

InfoPlist.strings та локалізація метаданих

InfoPlist.strings — файл для локалізації назви додатка (CFBundleDisplayName), дозволів камери/мікрофона (NSCameraUsageDescription) та інших значень з Info.plist. Створюється в .lproj: ru.lproj/InfoPlist.strings. Формат: CFBundleDisplayName = «Мій додаток»; NSCameraUsageDescription = «Додатку потрібен доступ до камери для знімання фото»;. Без локалізації InfoPlist.strings системні діалоги будуть англійською.

Локалізація в Android: values-ru, локалізовані ресурси

Ресурси Android для локалізації організовані через кваліфікатори в назвах каталогів. Для російської — res/values-ru/, для німецької — res/values-de/, для бразильської португальської — res/values-pt-rBR/. Android підтримує понад 160 локалей. Система автоматично обирає ресурси на основі мови пристрою (Locale.getDefault()). Якщо точної локалі немає — підставляються ресурси з values/ (базова локаль, звичайно en).

kotlin
// res/values/strings.xml (базовий — англійська)
<string name="settings_title">Settings</string>
<string name="greeting">Hello, %s!</string>

// res/values-ru/strings.xml (російська)
<string name="settings_title">Налаштування</string>
<string name="greeting">Вітаємо, %s!</string>

// res/values-de/strings.xml (німецька)
<string name="settings_title">Einstellungen</string>
<string name="greeting">Hallo, %s!</string>

// Kotlin — єдиний код для всіх мов
textView.text = getString(R.string.settings_title)

// Рядок з параметром
val greeting = getString(R.string.greeting, userName)

// Локалізовані зображення
// res/drawable-ru/flag.png — прапор для російської версії
// res/drawable/flag.png — прапор за замовчуванням

// Локалізація макетів (для RTL-мов)
// res/layout-ar/activity_main.xml — арабська версія

Локалізація не тільки рядків — Android дозволяє локалізувати зображення (res/drawable-ru/), кольори (res/values-ru/colors.xml), розміри (res/values-ru/dimens.xml), анімації, меню та навіть цілі макети. Для мов з різною довжиною слів (німецька на 30–40% довша за англійську) використовуйте локалізовані dimens.xml з збільшеною шириною кнопок. Для регіонів з іншою кольоровою символікою (білий — жалоба в Китаї) — локалізовані colors.xml.

Перевірка локалізації на пристрої

Тестування — перемкніть мову пристрою на цільову через Налаштування → Система → Мова. Перевірте: усі рядки перекладено, дати форматуються коректно, числа відображаються з правильним роздільником, зображення відповідають регіону, макет не «ламається» при довгих рядках. Для автоматизації використовуйте Espresso з LocaleTestRule (Android Testing Library) — він дозволяє запускати тести з різними локалями без перемикання мови вручну.

Культурна адаптація: що потрібно перекладати крім тексту

Культурні особливості — локалізація не обмежується перекладом рядків. Кольорова символіка різниться: червоний — удача в Китаї, небезпека в США, жалоба в Південній Африці. Білий — чистота в Європі, жалоба в Китаї. Іконки з жестами: більший палец вгору — позитив в США, образа на Близькому Сході. Зображення людей: в арабських країнах недопустимі зображення жінок в купальниках. Релігійні символи: хрест, півмісяц, зірка Давіда повинні використовуватися тільки в відповідному контексті.

Юридичні вимоги — кожна країна має свої закони про цифрові продукти. GDPR (ЄС) — обов’язкова згода на cookie та обробку даних. CCPA (Каліфорнія) — право на видалення даних. Закон про персональні дані (Росія, 152-ФЗ) — зберігання даних на серверах РФ. LGPD (Бразилія) — аналог GDPR. Платежі: в Китаї потрібні Alipay/WeChat Pay, в Індії — UPI, в Бразилії — Boleto та PIX. Налаштуйте платіжний шлюз під регіон до запуску локалізації.

АспектСШАКитайОАЕНімеччина
Платіжна системаApple Pay, КарткиAlipay, WeChat PayКартки, Apple PayPayPal, Giropay
Кольори брендуБудь-якіЧервоний — удачаЗелений — ісламЧорний/Жовтий
СоцмережіInstagram, XWeChat, DouyinWhatsApp, XWhatsApp, X
ДатаMM/dd/yyyyyyyy/MM/dddd/MM/yyyydd.MM.yyyy
Закон про даніCCPAPIPLPDPLGDPR

Приклади та контент — адаптуйте приклади під регіон. Для німецької локалізації використовуйте метричну систему (кг, км), для американської — імперську (lb, mi). Номери телефонів, поштові індекси, адреси — форматуються по-різному. Валютні приклади: ¥1000 в Японії, $9.99 в США, 999 ₽ в Росії. Зображення їжі, одягу, інтер’єрів повинні відповідати регіональним стандартам. В IT Sectr ми рекомендуємо наймати локальних консультантів для перевірки культурної адаптації.

Процес локалізації: інструменти, перекладачі, CI/CD

Інструменти локалізації — професійні платформи автоматизують процес: Lokalise, Crowdin, POEditor, Smartling, Phrase. Вони інтегруються з репозиторієм, автоматично імпортують нові рядки, відстежують зміни (Delta updates — перекладаються лише змінені рядки), надають Translation Memory (ТМ — збереження раніше перекладених фраз) та Glossary (глосарій термінів). Середня вартість професійного перекладу: $0.08–0.15 за слово (залежить від мови).

Процес — (1) Розробник додає i18n-ключі в код, пушить в репозиторій. (2) CI/CD (GitHub Actions / GitLab CI) автоматично відправляє нові ключі в платформу локалізації. (3) Перекладачі отримують сповіщення, перекладають та зберігають. (4) Перекладені файли автоматично створюють PR в репозиторій. (5) QA перевіряє локалізацію на пристроях. (6) Реліз. Цикл для однієї локалі: 2–5 робочих днів (залежно від обсягу). Для 10 локалей: 5–15 днів при паралельній роботі перекладачів.

Machine Translation + Human Review — сучасний стандарт. Нейромережевий переклад (DeepL, Google Translate, GPT-4) дає якість 80–90% для популярних мовних пар. Людина-перекладач перевіряє: термінологію, контекст (слова можуть мати різні значення на різних екранах), культурну адаптацію. В IT Sectr ми використовуємо hybrid approach: ML-переклад + ревю носієм мови. Для критичних рядків (юридичні, платіжні) — тільки професійний переклад. Економія: до 60% вартості при збереженні якості.

Часто задавані питання

Чим локалізація відрізняється від інтернаціоналізації?

Інтернаціоналізація — підготовка коду до перекладу (винесення рядків, RTL, форматування). Локалізація — сам переклад та культурна адаптація. i18n робить розробник один раз, l10n — перекладач для кожної мови. i18n без l10n — додаток готовий до перекладу, але не перекладений. l10n без i18n — потрібно переписувати код для кожної мови.

Де зберігаються переклади в iOS?

В файлах Localizable.strings всередині папок .lproj. Для кожної мови: en.lproj (англійська), ru.lproj (російська), de.lproj (німецька). Формат: «ключ» = «переклад»;. Для множини — Localizable.stringsdict. Налаштування додатка (CFBundleDisplayName) — в InfoPlist.strings. Xcode керує .lproj через Base Internationalization.

Що таке values-ru в Android?

values-ru — каталог ресурсів Android для російської мови. Містить strings.xml з перекладами. Аналогічно для інших мов: values-de (німецька), values-fr (французька). Android обирає ресурси на основі системної мови. Якщо values-ru не знайдено — використовує values/ (базова мова, звичайно англійська).

Як форматувати дати для різних регіонів?

Завжди використовуйте Locale API. iOS: DateFormatter.locale = Locale(identifier: locale). Android: DateFormat.getDateInstance(DateFormat.SHORT, locale). Росія: 31.12.2024. США: 12/31/2024. Японія: 2024/12/31. Ніколи не задавайте фіксований формат — в кожній країні свої стандарти. Для введення дат використовуйте UIDatePicker / DatePicker.

Скільки локалей потрібно для глобального додатка?

Для глобального охоплення достатньо 10–15 мов: англійська, іспанська, французька, німецька, японська, китайська, корейська, португальська, російська, італійська, арабська. Для регіонального — 1–2 мови. Кожна додаткова локаль збільшує органічні встановлення на 5–15% в відповідному регіоні. App Store вимагає щонайменше англійську локалізацію.

Підсумки

  • Локалізація (l10n) — переклад та культурна адаптація контенту під конкретну мову та регіон
  • iOS — Localizable.strings в .lproj-папках, Base Internationalization, InfoPlist.strings
  • Android — values-ru/strings.xml, локалізовані drawable та layout через кваліфікатори
  • Культурна адаптація — кольори, іконки, жести, платіжні системи, юридичні вимоги
  • Процес — CI/CD → платформа локалізації → перекладач → QA → реліз (2–5 днів на мову)
  • Hybrid approach — ML-переклад (DeepL, GPT) + ревю носієм мови для економії 60%
  • Рентабельність — 76% користувачів купують тільки рідною мовою (CSA Research, 2023)

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також