Skip to main content
AI agent network visualization

Перевод файлов XLIFF без повреждения XML

Исходные и целевые сегменты согласованы. Примечания переводчиков сохраняются. Структура XML остаётся целой. Ваши файлы XLIFF правильно переводятся в форматах 1.2 и 2.0.

Перевод XLIFF — минное поле XML

XLIFF — отраслевой стандарт обмена переводами, но из-за структуры XML он уязвим. Универсальные инструменты нарушают XML, теряют соответствие исходных и целевых сегментов, удаляют примечания переводчиков и не справляются с различиями между XLIFF 1.2 и 2.0. Достаточно одного неправильно сформированного тега, чтобы весь импорт в CAT-инструмент завершился сбоем.

Структура XML повреждается: незакрытые теги, нарушенные сущности и недопустимые символы не проходят проверку

Исходные и целевые сегменты перестают соответствовать друг другу, поэтому проверять переводы в CAT-инструментах становится невозможно

Примечания переводчиков, подсказки контекста и элементы метаданных удаляются или перемещаются, из-за чего теряется важный контекст

XLIFF 1.2 и 2.0 используют разные схемы: инструменты, которые работают с одной версией, часто нарушают другую

Исходный текст (английский)
messages.en.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="messages">
    <header>
      <note>Application UI strings</note>
    </header>
    <body>
      <trans-unit id="welcome.title" approved="yes">
        <source>Welcome to our platform</source>
        <target>Willkommen auf unserer Plattform</target>
        <note from="developer">Shown on the landing page</note>
      </trans-unit>
      <trans-unit id="nav.dashboard">
        <source>Dashboard</source>
        <target state="needs-review">Dashboard</target>
      </trans-unit>
      <trans-unit id="user.greeting">
        <source>Hello, %1$s!</source>
        <target>Hallo, %1$s!</target>
        <note from="developer">%1$s = user's first name</note>
      </trans-unit>
      <trans-unit id="items.count">
        <source>You have %d items</source>
        <target>Sie haben %d Artikel</target>
      </trans-unit>
    </body>
  </file>
</xliff>
Перевод (немецкий)
messages.de.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="messages">
    <header>
      <note>Application UI strings</note>
    </header>
    <body>
      <trans-unit id="welcome.title" approved="yes">
        <source>Welcome to our platform</source>
        <target state="translated">Willkommen auf unserer Plattform</target>
        <note from="developer">Shown on the landing page</note>
      </trans-unit>
      <trans-unit id="nav.dashboard">
        <source>Dashboard</source>
        <target state="translated">Dashboard</target>
      </trans-unit>
      <trans-unit id="user.greeting">
        <source>Hello, %1$s!</source>
        <target state="translated">Hallo, %1$s!</target>
        <note from="developer">%1$s = user's first name</note>
      </trans-unit>
      <trans-unit id="items.count">
        <source>You have %d items</source>
        <target state="translated">Sie haben %d Artikel</target>
      </trans-unit>
    </body>
  </file>
</xliff>

Что сохраняет i18n Agent

Структура XML

Корректный вывод XML с правильными пространствами имён, сущностями и кодировкой проходит проверку по схеме XLIFF

Соответствие исходных и целевых сегментов

Исходные и целевые сегменты остаются правильно сопоставленными. Единицы перевода сохраняют свои идентификаторы и порядок.

Примечания и метаданные

Примечания переводчиков, группы контекста и пользовательские элементы метаданных сохраняются на исходных позициях

Поддержка версий

Схемы XLIFF 1.2 (trans-unit) и XLIFF 2.0 (unit/segment) распознаются и обрабатываются правильно

Работает с Вашим стеком локализации

Angular i18n (встроенный XLIFF)
Локализация iOS / Xcode
CAT-инструменты (SDL Trados, memoQ)
memoQ / Memsource

Как это работает

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

Без ручного копирования, извлечения строк и лишних действий. Только переведённые файлы.

Попробовать i18n Agent

Перетащите сюда файл перевода

JSON, YAML, PO, XML, CSV, Markdown, Properties

или нажмите, чтобы выбрать

Целевые языки

Регистрация не требуетсяМгновенный расчёт

Часто задаваемые вопросы

Для разработчиков

Установите инструмент CLI и переведите первый файл за 2 минуты.

Установить инструмент CLI

Для корпоративных команд

Всё ещё связаны контрактом с TMS? Обсудим переход.