Lingo.dev + .xml (Данные)

Lingo.dev CLI переводит XML-файлы, сохраняя структуру документа, атрибуты, пространства имен и соответствие схемам. CLI поддерживает соответствие XML-схемам и DTD, сохраняет все объявления пространств имен и префиксы, сохраняет точную иерархию и форматирование XML, корректно обрабатывает различные кодировки символов и гарантирует, что выходные данные проходят проверку инструментами валидации XML.

Быстрая настройка

Настройте для XML-файлов с именованием на основе локали:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "xml": {
      "include": ["data/[locale].xml"]
    }
  }
}

Напоминание: [locale] — это заполнитель, который должен оставаться в конфигурации буквально, так как он заменяется на фактическую локаль во время выполнения CLI.

Перевод содержимого XML

npx lingo.dev@latest i18n

Сохраняет структуру XML, атрибуты, пространства имен и схемы документа при переводе текстового содержимого.

Обработка структуры XML

Содержимое элементов

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <product id="123">
        <name>Премиум-виджет</name>
        <description>Высококачественный виджет для профессионалов</description>
        <category>Инструменты</category>
    </product>
</catalog>

Текстовое содержимое внутри элементов переводится, при этом структура XML остается неизменной.

Перевод атрибутов

<item title="Руководство пользователя" description="Полное руководство">
    <help tooltip="Нажмите для получения помощи">Начало работы</help>
</item>

Переводимые атрибуты обрабатываются, а технические атрибуты остаются неизменными.

Обработка смешанного содержимого

<documentation>
    <section title="Введение">
        Добро пожаловать в наше <emphasis>подробное</emphasis> руководство.
        Посетите <link href="/help">наш центр помощи</link> для получения дополнительной информации.
    </section>
</documentation>

Смешанное текстовое и элементное содержимое обрабатывается корректно.

Расширенные функции XML

Поддержка пространств имен

<root xmlns:ui="http://example.com/ui"
      xmlns:data="http://example.com/data">
    <ui:label>Приветственное сообщение</ui:label>
    <data:content ui:title="Заголовок страницы">
        Здесь находится содержимое
    </data:content>
</root>

Пространства имен и префиксы XML сохраняются в точности.

Секции CDATA

<content>
    <![CDATA[
    Это необработанное содержимое, которое не будет переведено,
    включая <tags> и специальные символы.
    ]]>
</content>
<message>Этот текст будет переведен</message>

Секции CDATA остаются нетронутыми, в то время как обычное текстовое содержимое обрабатывается.

Инструкции по обработке

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<document>
    <title>Document Title</title>
</document>

Инструкции по обработке и объявления XML сохраняются.

Расширенная конфигурация

Несколько XML-файлов

"xml": {
  "include": [
    "data/[locale].xml",
    "config/[locale]/*.xml"
  ]
}

Блокировка технических элементов

"xml": {
  "include": ["data/[locale].xml"],
  "lockedKeys": ["id", "version", "timestamp", "schema"]
}