Переведите ваши Flutter .arb файлы, затем проверьте каждую строку
Приложения Flutter хранят свой текст в lib/l10n/app_en.arb: множественное число ICU, плейсхолдеры {name} и метаданные @key. Одна неправильная скобка, и flutter gen-l10n остановится. KAERIS создает app_de.arb, app_ja.arb и остальные с сохранением синтаксиса.
Эту страницу перевёл KAERIS и проверил каждую строку обратным переводом. Носитель языка ещё не проверял. Оригинал на английском
Метаданные сохранены, @@locale установлен
Описания и типы плейсхолдеров копируются; слова внутри ветвей множественного числа переводятся.
{
"@@locale": "en",
"welcome": "Welcome back, {name}!",
"cartItemCount": "{count, plural, one{You have {count} item} other{You have {count} items}}",
"@cartItemCount": {
"description": "Shown on the cart screen",
"placeholders": { "count": { "type": "int" } }
}
}
{
"@@locale": "de",
"welcome": "Willkommen zurück, {name}!",
"cartItemCount": "{count, plural, one{Du hast {count} Eintrag} other{Du hast {count} Einträge}}",
"@cartItemCount": {
"description": "Shown on the cart screen",
"placeholders": { "count": { "type": "int" } }
}
}
Что KAERIS делает с этим
Готово для gen-l10n
Один .arb файл для каждого языка, рядом с вашим шаблоном, с установленным
@@localeдля каждого.Переменные проверяются без ИИ
После перевода простая проверка сравнивает каждую переменную и тег с оригиналом. Строка, потерявшая один, помечается и отображается сверху.
Каждая строка переведена обратно
Другая модель, GPT-4o mini, переводит каждую строку обратно на ваш язык, а DeepSeek V3.2 на американских серверах (DeepInfra, DigitalOcean, Google) оценивает, изменился ли смысл. Вы читаете, что теперь говорит каждая строка.
Вопросы
Языки с большим количеством форм множественного числа?
Польский, русский или арабский получают необходимые им ветви ICU, такие как few и many.
Длинный немецкий текст сломает мой макет?
Строки, которые стали намного длиннее обычного для этого языка, помечаются, чтобы вы могли проверить кнопки, на которых они расположены.
Это бесплатно?
Да, без учетной записи: 10 000 символов на файл и до 8 языков за запуск. Бесплатный API-ключ увеличивает лимит файлов до 50 000 символов. Пожизненная лицензия стоит $79 один раз, при использовании вашего собственного ключа OpenRouter; ежемесячные планы начинаются от $19. Цены
Как мне интегрировать это в репозиторий?
kaeris init --preset flutter-arb записывает настройки для lib/l10n, а kaeris translate запускается без флагов. Документация