Перевести

Перевести файлы Angular $localize, затем проверить каждую строку

ng extract-i18n по умолчанию записывает XLIFF, с интерполяциями в виде тегов <x> и блоками ICU внутри. Удалите тег, и ng build --localize завершится ошибкой. KAERIS записывает <target> для каждого элемента и сохраняет все теги и id.

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

Интерполяции остаются в виде тегов <x>

equiv-text каждого тега сохраняется, поэтому сборка по-прежнему знает, чем было {{ name }}.

Доsrc/locale/messages.xlf
<trans-unit id="welcome" datatype="html">
  <source>Welcome back, <x id="INTERPOLATION" equiv-text="{{ name }}"/>!</source>
</trans-unit>
<trans-unit id="save" datatype="html">
  <source>Save changes</source>
</trans-unit>
Послеsrc/locale/messages.de.xlf
<trans-unit id="welcome" datatype="html">
  <source>Welcome back, <x id="INTERPOLATION" equiv-text="{{ name }}"/>!</source>
  <target>Willkommen zurück, <x id="INTERPOLATION" equiv-text="{{ name }}"/>!</target>
</trans-unit>
<trans-unit id="save" datatype="html">
  <source>Save changes</source>
  <target>Änderungen speichern</target>
</trans-unit>

Что KAERIS делает с этим

Вопросы

Читает ли он также --format json?

Да. JSON, который записывает ng extract-i18n --format json, переводится по ключам, включая блоки ICU.

Поддерживается ли XLIFF 2.0?

Пока нет. Стандартный xlf Angular — это XLIFF 1.2, который работает.

Это бесплатно?

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

Могу ли я запускать его из терминала или в CI?

Да. pip install kaeris, затем kaeris translate с вашим файлом и --langs de,ja. GitHub Action открывает pull request при появлении новых ключей. Документация