Перевести

Перевод файлов XLIFF 1.2

XLIFF помещает исходный текст и перевод рядом, с тегами внутри. Перемещение или удаление одного тега приведет к потере плейсхолдера или ссылки в приложении. KAERIS сохраняет теги и сообщает вам, если один из них отсутствует.

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

Как строится файл XLIFF 1.2

Каждый <trans-unit> содержит <source> и <target>. Внутри текста <x/>, <g> и <ph> обозначают переменные и разметку. messages.xlf Angular имеет этот формат.

Исходный файлmessages.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="en" target-language="de" datatype="plaintext" original="app">
    <body>
      <trans-unit id="welcome">
        <source>Welcome back, <x id="1" ctype="x-name"/>!</source>
      </trans-unit>
      <trans-unit id="terms">
        <source>I accept the <g id="2" ctype="x-link">terms</g>.</source>
      </trans-unit>
    </body>
  </file>
</xliff>

На что обратить внимание при переводе XLIFF

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

Реальный запуск, 27 октября 2026 г., ничего не редактировалось вручную: kaeris translate messages.xlf --langs de с kaeris 0.2.35, 1,9 секунды, модель google/gemini-2.5-flash-lite, стандартный бесплатный тариф. Ниже приведен немецкий файл, который он написал, и что говорит kaeris check об этом.

Результат на немецкомde/messages.xlf
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file original="app" source-language="en" target-language="de" datatype="plaintext">
    <body>
      <trans-unit id="welcome">
        <source>Welcome back, <x id="1" ctype="x-name" />!</source>
        <target state="translated">Willkommen zurück, <x id="1" ctype="x-name" />!</target>
      </trans-unit>
      <trans-unit id="terms">
        <source>I accept the <g id="2" ctype="x-link">terms</g>.</source>
        <target state="translated">Ich akzeptiere die <g id="2" ctype="x-link">Nutzungsbedingungen</g>.</target>
      </trans-unit>
    </body>
  </file>
</xliff>
kaeris checkexit code 0
$ kaeris check --source messages.xlf --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

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

Выполните в три шага

  1. Установите CLI

    Выполните pip install kaeris.

  2. Перевести файл

    Запустите kaeris translate src/locale/messages.xlf --langs de,ja.

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

    Откройте бесплатную страницу проверки и загрузите переведенный файл. Каталог с исходным текстом и переводом в одном файле проверяется целиком.

pip install kaeris
kaeris translate src/locale/messages.xlf --langs de,ja --verify

Вопросы

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

Нет. Поддерживается версия 1.2; файл версии 2.0 отклоняется с соответствующим сообщением.

Сохранятся ли встроенные теги?

Они сохраняются как необработанная разметка и сравниваются с исходным кодом после перевода. В реальном запуске выше теги <x/> и <g> вернулись с теми же идентификаторами, и проверка ничего не выявила; потерянный тег был бы отмечен.

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

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

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

Да. pip install kaeris, затем kaeris translate src/locale/messages.xlf --langs de,ja. См. также Angular. GitHub Action выполняет тот же перевод в pull request. Документация CLI · GitHub Action

Продолжайте

Справочник по CLI · Справочник по проверке · Перевести в браузере · Бесплатная проверка · Конвертировать форматы · Псевдолокализация

Другие форматы: JSON · YAML · .po · ARB · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML