|
Документация
Заказать демоПлатформа
ПлатформаMCPCLIAPIПроцессы
Руководства
Журнал изменений

Локализация

  • Обзор
  • API локализации
  • Локализация веб-приложений
  • Локализация мобильных приложений
  • iOS и String Catalogs
  • Android и strings.xml
  • Локализация email-писем
  • Статический контент, например .md и .json
  • Next.js с Markdoc
  • Rails с i18n

Процессы

  • Настройка движка с MCP
  • Jira Triage
  • CI/CD

Локализация мобильных приложений

CLI Lingo.dev переводит нативные ресурсные файлы мобильных приложений — Xcode .strings, Android XML, Flutter ARB и React Native JSON — через настроенный движок локализации. Для каждой платформы предусмотрен отдельный тип bucket, который понимает формат файла, сохраняет структуру и нативно обрабатывает формы множественного числа.

Обзор платформ#

ПлатформаНативный форматCLI bucketТипичный путь к файлу
iOS (Xcode).stringsxcode-strings[locale].lproj/Localizable.strings
iOS (Xcode).stringsdictxcode-stringsdict[locale].lproj/Localizable.stringsdict
iOS (Xcode).xcstringsxcode-xcstringsLocalizable.xcstrings
Androidstrings.xmlandroidapp/src/main/res/values-[locale]/strings.xml
Flutter.arbflutterlib/l10n/app_[locale].arb
React Native.jsonjsonsrc/locales/[locale].json

Что понадобится#

При каждом запуске CLI контент проходит через движок локализации — конфигурацию, которая определяет, какие LLM-модель, глоссарий, тональность бренда и инструкции будут применяться. Создайте её в панели Lingo.dev и сгенерируйте API key.

Настройка платформы#

Xcode поддерживает три формата локализации. Выберите тот, который соответствует конфигурации вашего проекта.

Каталоги строк (.xcstrings) — современный формат Xcode, появившийся в Xcode 15. Один JSON-файл содержит все локали, а Xcode автоматически обновляет его при добавлении новых строк. CLI изменяет этот файл на месте — заполнитель [locale] не требуется.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-xcstrings": {
      "include": ["MyApp/Localizable.xcstrings"]
    }
  }
}

Устаревшие файлы .strings — по одному файлу на локаль в каталогах [locale].lproj/. Если в проекте для форм множественного числа также используются .stringsdict, добавьте оба bucket.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-strings": {
      "include": ["MyApp/[locale].lproj/Localizable.strings"]
    },
    "xcode-stringsdict": {
      "include": ["MyApp/[locale].lproj/Localizable.stringsdict"]
    }
  }
}

Подробности о настройке i18n-инфраструктуры в Xcode — в документации Apple по локализации.

Запуск перевода#

Переведите все ресурсные файлы одной командой:

bash
npx lingo.dev@latest run

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

Если в проекте несколько типов ресурсов, можно указать конкретную платформу:

bash
npx lingo.dev@latest run --bucket android
npx lingo.dev@latest run --bucket xcode-xcstrings

Множественное число и особенности платформ#

Каждая мобильная платформа по-своему работает с формами множественного числа: iOS использует .stringsdict или правила String Catalog, Android — XML-элементы <plurals>, а Flutter — ICU MessageFormat в ARB-файлах. CLI сохраняет нативную структуру множественного числа для каждой платформы при переводе и генерирует корректные категории для каждой целевой локали.

Примечания для переводчиков

Строки в мобильных приложениях часто короткие и сильно зависят от контекста. Используйте примечания для переводчиков в файлах Xcode .xcstrings, чтобы дать движку локализации больше контекста о том, где используется строка: «подпись кнопки в процессе оформления заказа» переводится иначе, чем «пункт меню навигации».

Подробно по платформам#

iOS и String Catalogs
Полное руководство по Xcode .xcstrings с CLI и GitHub Actions
Android и strings.xml
Полное руководство по XML-ресурсам Android с CLI и GitHub Actions

Что дальше#

Поддерживаемые форматы
Полный справочник по всем форматам мобильных файлов и типам bucket
Глоссарии
Зафиксируйте названия брендов и технические термины, чтобы они не переводились
CI/CD рабочие процессы
Автоматизируйте перевод мобильных приложений при каждом push
Блокировка ключей
Копируйте отдельные значения без перевода

Эта страница была полезной?

Max PrilutskiyMax Prilutskiy·Обновлено 4 месяца назад·3 минуты чтения