Lingo.dev + .xml (Android)

Lingo.dev CLI переводит файлы ресурсов Android XML, сохраняя их исходную структуру, атрибуты и специфические для Android конвенции. CLI легко интегрируется с существующими процессами сборки Android, поддерживает системы связывания ресурсов, работает с Gradle и Android Studio, а также следует стандартам локализации платформы без необходимости преобразования форматов.

Быстрая настройка

Укажите путь к вашим файлам ресурсов Android, используя шаблоны папок на основе локали:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "android": {
      "include": ["res/values-[locale]/strings.xml"]
    }
  }
}

Напоминание: [locale] — это заполнитель, который должен оставаться в конфигурации буквально, так как он заменяется на фактическую локаль во время выполнения CLI.

Обработка ресурсов по умолчанию

Android требует наличия папки values/ по умолчанию. Создайте символическую ссылку для совместимости:

cd res
ln -s values-en values

Это удовлетворяет требованиям Android, обеспечивая при этом правильную обработку локалей.

Перевод ресурсов

npx lingo.dev@latest i18n

Обрабатывает все типы ресурсов Android, сохраняя форматирование XML, атрибуты и специальный синтаксис Android.

Полная поддержка ресурсов Android

Массивы строк

<string-array name="planets">
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
</string-array>

Множественные формы с количествами

<plurals name="songs_found">
    <item quantity="one">%d песня найдена</item>
    <item quantity="other">%d песен найдено</item>
</plurals>

Сохранение форматов

  • HTML-разметка: теги <b>, <i>, <u> сохраняются
  • Спецификаторы формата: заполнители %1$s, %2$d сохраняются
  • Секции CDATA: содержимое <![CDATA[]]> обрабатывается корректно
  • Ссылки на строки: ссылки @string/app_name сохраняются
  • Специальные символы: экранирование \@, \?, \# сохраняется

Расширенная конфигурация

Несколько файлов ресурсов

"android": {
  "include": [
    "res/values-[locale]/strings.xml",
    "res/values-[locale]/plurals.xml"
  ]
}

Пропуск непереводимых строк

Автоматически учитывает атрибуты translatable="false".