Перекласти

Переклад файлів Flutter ARB

Файл .arb — це JSON з ICU-повідомленнями та блоком метаданих @key поруч із кожним рядком. KAERIS перекладає повідомлення, зберігає метадані та перевіряє синтаксис ICU після цього.

KAERIS переклав цю сторінку та перевірив кожен рядок зворотним перекладом. Носій мови ще не переглядав її. Оригінал англійською

Як побудований файл ARB

Звичайний JSON. Кожне повідомлення знаходиться поруч із записом @message з його описом та типами заповнювачів; @@locale називає мову. Множини та вибори є рядками ICU: {count, plural, =0{…} one{…} few{…} many{…} other{…}}.

Файл джерелаapp_en.arb
{
  "@@locale": "en",
  "welcome": "Welcome back, {name}!",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": { "name": { "type": "String" } }
  },
  "itemCount": "{count, plural, =0{No items} one{{count} item} other{{count} items}}",
  "@itemCount": {
    "placeholders": { "count": { "type": "int" } }
  }
}

На що звертати увагу в перекладах ARB

Реальний запуск: перекладено німецькою та перевірено

Реальний запуск, 27 жовтня 2026, без ручних правок: kaeris translate app_en.arb --langs de з kaeris 0.2.35, 2.7 секунди, модель google/gemini-2.5-flash-lite, стандарт безкоштовного рівня. Нижче — німецький файл, який він створив, і що kaeris check про нього каже.

Результат німецькоюapp_de.arb
{
  "@@locale": "de",
  "welcome": "Willkommen zurück, {name}!",
  "itemCount": "{count, plural, =0{Keine Artikel} one{{count} Artikel} other{{count} Artikel}}",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": {
      "name": {
        "type": "String"
      }
    }
  },
  "@itemCount": {
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  }
}
kaeris checkexit code 0
$ kaeris check --source app_en.arb --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

Що KAERIS робить з цим

Запустіть у три кроки

  1. Встановіть CLI

    Виконайте pip install kaeris.

  2. Перекладіть шаблон

    Виконайте kaeris translate lib/l10n/app_en.arb --langs de,ja.

  3. Перевірте результат

    Виконайте kaeris check з джерелом і --pattern 'app_{lang}.arb'; він завершується з кодом 1 при пошкодженій змінній або блоці ICU.

pip install kaeris
kaeris init --preset flutter-arb
kaeris translate lib/l10n/app_en.arb --langs de,ja --verify
kaeris check --source lib/l10n/app_en.arb --langs de,ja --pattern 'app_{lang}.arb'

Запитання

Чи зберігаються записи @metadata?

Так. Опис і типи заповнювачів залишаються поруч із кожним повідомленням; @@locale переписується для цільової мови.

Що, якщо множина ICU у перекладі неправильна?

Перевірка порівнює блоки ICU з оригіналом і вказує проблему, наприклад пропущену гілку =0. У наведеному вище реальному запуску множина повернулася з усіма трьома гілками, і перевірка не виявила проблем.

Це безкоштовно?

Так, без облікового запису: 10 000 символів на файл і до 8 мов за один запуск. Безкоштовний API-ключ збільшує ліміт файлу до 50 000 символів. Довічна ліцензія коштує $79 один раз, за вашим власним ключем OpenRouter; місячні плани починаються від $19. Ціни

Чи можу я запускати його з терміналу або в CI?

Так. pip install kaeris, потім kaeris translate lib/l10n/app_en.arb --langs de,ja. Див. також Flutter. GitHub Action виконує той самий переклад у pull request. Документація CLI · GitHub Action

Продовжуйте

Довідник CLI · Довідник перевірки · Переклад у браузері · Безкоштовна перевірка · Конвертація форматів · Псевдолокалізація

Інші формати: JSON · YAML · .po · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML