XML Translator: перевод файлов XML с сохранением тегов, атрибутов и CDATA

XML-переводчик переводит понятный человеку текст между тегами, сохраняя при этом саму разметку, — таким образом, полученный обратно файл представляет собой корректный XML, который ваша система может принять, на любом из более чем 280 языков.

Вы указываете агенту по локализации ПО от Smartcat, какие элементы и атрибуты содержат текст для перевода — с помощью XPath, всего один раз, — и всё, что находится за пределами этих путей, остаётся без изменений.

Переведите любой файл. За секунды.
Изображения, документы, видео, аудио, курсы — выберите формат и перетащите файл.
Перетащите документы сюда
или выберите файл · Поддерживается .docx, .pdf, .pptx, .xlsx и другое
“

Мы быстро поняли, что Smartcat предлагает именно то, что нам было нужно: память переводов, единый центр для наших рабочих процессов и возможность забыть о бесконечных письмах и постоянной возне с файлами. Теперь всё и каждый работают сообща в одном месте.

”

Шон Ньютон

Старший аналитик по операционной деятельности креативного отдела в Kids2

Как Smartcat переводит XML-файл?

Перевод XML означает перевод текстового содержимого XML-файла с сохранением его разметки в машиночитаемом виде. Агент по локализации ПО от Smartcat использует настраиваемый XML-парсер, а не строит догадки.

  • Укажите, что считается текстом — вы задаете XPath к элементам, формирующим сегменты, то есть к узлам, которые должны отображаться в редакторе перевода, и они становятся вашими переводимыми сегментами.
  • Принимайте решение по каждому атрибуту отдельно — сегментообразующим узлом может быть элемент, атрибут элемента или текст, поэтому атрибут, действительно содержащий текст (label, title, alt), переводится только потому, что вы указали на него, в то время как id и значения перечислений никогда не затрагиваются.
  • Перевести и записать обратно — каждый сегмент переводится с применением вашего глоссария и памяти переводов, а затем записывается обратно в исходную структуру.

Одно структурное требование: файл должен содержать повторяющиеся элементы, так как каждое повторение становится исходным сегментом.

Настройте правила один раз, затем скачивайте корректно сформированный XML

Загрузите один файл .xml или сразу несколько, включая регулярные экспорты.

  • Задайте правила один раз — целевые языки, глоссарий и выражения XPath, которые определяют, что подлежит переводу, что не переводится, что является идентификатором, комментарием или имеет ограничение по длине. Те же правила применяются ко всем будущим файлам такой структуры.
  • Контекстная проверка — откройте редактор с разделенным экраном, если рецензенту необходимо видеть строки в контексте, и назначьте участников команды или проверенных рецензентов из Smartcat Marketplace.
  • Экспортируйте целые проекты в один клик — выберите их, нажмите Скачать, и всё вернется в виде единого ZIP-архива в исходных форматах, распределенным по папкам.

Почему XML ломается в обычных переводчиках?

XML передает смысл в тех местах, которые универсальный переводчик не способен отличить от обычного текста. Четыре вещи ломаются:

  • Теги и атрибуты переводятся — <button label="Submit"> возвращается как <bouton étiquette="Envoyer">, а ваш парсер никогда не слышал о <bouton>.
  • Сущности "исправляются" — &amp; превращается в обычный амперсанд, и файл перестает парситься.
  • Рассинхронизация объявлений кодировки — в объявлении указано одно, а в содержимом — другое, и это несоответствие всплывает в виде кракозябр тремя системами далее по цепочке.
  • CDATA искажается — блок <![CDATA[ … ]]>, содержащий встроенный HTML, — это как раз то, что примитивные инструменты портят в первую очередь.

Критический сбой заключается не в плохом переводе — это файл, который ваш импорт отклоняет в 17:00 в день релиза.

Что касается работы с сущностями и кодировками, мы предпочли бы протестировать образец файла вместе с вами, чем давать пустые обещания. Конфигурация парсера обрабатывает два настраиваемых параметра — преобразование тегов и атрибутов и CDATA.

Правила, которые вы настраиваете один раз с помощью XPath

Направьте парсер на элементы, формирующие сегменты в структуре вашего файла, а также укажите отдельные пути для непереводимых узлов, идентификаторов строк, комментариев и ограничений длины для каждого сегмента.

Настройте фид товаров, дамп CMS или экспорт справочных материалов один раз — и каждый последующий файл такой же структуры будет следовать тем же правилам.

Обновление сегментов по ID без отмены назначений

XML — одно из всего лишь двух семейств форматов (наряду с PO/Serge), в которых более новая версия может обновлять сегменты по идентификатору без отмены назначений задач.

Для любого другого формата замена документа восстанавливает переводы из памяти переводов, но отменяет задачи, поэтому лингвистов приходится назначать заново. Как обновление, так и повторная загрузка расходуют Smartwords на повторный перевод.

103%-е совпадение по идентификатору ключа с памятью переводов

Идентификаторы строк сопоставляются по их собственному пути и используются для 103% совпадения по ключу-идентификатору, тогда как стандартные форматы документов ограничиваются 102% контекстным совпадением.

Комментарии можно сопоставить таким же образом и отобразить в качестве контекста сегмента для рецензентов.

Более 280 языков, корректный вывод данных

Структура никогда не редактируется, поэтому возвращаемые данные успешно парсятся. Вы выбираете языки перевода; разметка остается в исходном виде.

Что сохраняется, элемент за элементом

Имена элементов и имена атрибутов никогда не переводятся. Всё остальное подключается по желанию изначально:

  • Значения атрибутов — не переводятся, если только вы не укажете этот атрибут как сегментообразующий, поэтому вы указываете на label и никогда на id или значение перечисления (enum).

  • Текстовые узлы — переводятся там, где они образуют сегменты, и сверяются с вашей памятью переводов и глоссарием. Непереводимые встроенные узлы можно исключить по их собственному пути.

  • Разделы CDATA — настраиваемый параметр. Если параметр Защищать HTML-теги в разделах CDATA включен, HTML внутри CDATA заменяется тегами Smartcat; если он выключен, эти теги отображаются как редактируемый текст.

  • Идентификаторы строк и комментарии — каждый сопоставляется по собственному пути.

  • Ограничения по длине — настраиваются для каждого сегмента в тех случаях, когда нижестоящая схема ограничивает размер поля.

Взвешенно подойдите к установке флажка CDATA, поскольку его отключение означает, что переводчик сможет редактировать вашу разметку.

Единственным структурным требованием является наличие повторяющихся элементов: каждый повтор становится сегментом, поэтому разовый документ без повторяющейся структуры не подходит для пользовательского парсера.

Посмотрите на работу настроенного XML-парсера на примере вашего собственного файла

Принесите образец экспорта на индивидуальную встречу с нашей командой.

  • XPath-выражения применены к форме вашего файла.
  • Решено, как обрабатывать CDATA.
  • Ограничения по длине, сопоставленные с вашей схемой.
  • Поведение сущностей и кодировок протестировано на вашем собственном файле, а не просто обещано в таблице.

Найдите экспертов-рецензентов для редактирования и обучения ваших ИИ-агентов

Smartcat Marketplace связывает вас с опытными редакторами в вашей отрасли или на целевом рынке. Воспользуйтесь нашим подбором на основе ИИ или изучайте анкеты по специализации и рейтингу.

XML, XLIFF, JSON и YAML в одном проекте

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

Также локализуете JSON или YAML? Один и тот же проект, та же память переводов — лингвистические ресурсы подключаются на уровне проекта и применяются ко всем входящим в него документам, при этом для каждой языковой пары доступна одна TM с возможностью записи.

Если вы запускаете это из CI, API поддерживает те же более 50 форматов, что и платформа:

  • XML, Android XML, RESX, LOCJSON, JSON, TJSON, YML, INC, INX, STRINGS и PROPERTIES среди них.

  • API для локализации программного обеспечения дополнительно экспортирует форматы json, structured-json, yaml, structured-yaml, ios-strings и android-xml.

  • Исполняемые файлы и скрипты заблокированы в целях безопасности.

PDFDOCXLSXLIFFJSONJPEGMP4и многое другое...

Отправляйте весь экспорт, а не фрагмент

Количество файлов в одном проекте не ограничено, поэтому полный экспорт локали загружается как единая задача с общим глоссарием и единой памятью переводов.

Разделение нужно исключительно ради скорости при работе с одним очень большим файлом, и никогда — ради количества отправляемых файлов.

Повторный экспорт в каждом спринте без потери наработок

Если вы отправляете один и тот же XML-экспорт при каждом релизе, значение имеет лишь то, что происходит при повторной загрузке.

Переводы переносятся, а лингвисты остаются назначенными вместо того, чтобы приглашать их заново на каждый спринт.

Создание, перевод, проверка и доставка осуществляются на одной платформе, при этом повторяющиеся действия автоматизированы, а Smartwords расходуются только на повторный перевод.

Доказательство того, что Smartcat сохраняет форматирование и ускоряет сдачу проектов

Отправляйте правильно сформированный XML на каждый рынок

Текст переведен, разметка не затронута, ваши собственные правила о том, что считать текстом — на более чем 280 языках, а работу на уровне синтаксического анализа выполняют ИИ-агенты.

Бесплатно на 15 дней с 15 000 Smartwords и полным доступом к возможностям перевода, без привязки банковской карты.

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

Что такое Smartcat?

Smartcat — это глобальная контент-платформа на базе искусственного интеллекта, созданная для компаний, которым необходимо масштабировать мультиязычный контент на различных рынках.

Оно объединяет ИИ-агентов, базы памяти переводов и совместную работу специалистов в единую систему, помогая командам переводить XML-файлы и другой контент быстрее и точнее.

Что такое файл XML?

Файл XML (Extensible Markup Language) представляет собой гибкий текстовый формат, который упорядочивает и хранит данные с помощью пользовательских тегов.

Он разработан так, чтобы его могли читать как люди, так и машины, что делает его полезным для структурирования самых разных данных — от настроек приложений до учебных материалов.

Где обычно используются файлы XML?

XML-файлы встречаются повсюду — от разработки приложений и локализации веб-сайтов до систем управления контентом (CMS) и платформ электронного обучения.

Они являются основной рабочей силой для структурирования контента и обмена данными между программным обеспечением, платформами и системами.

Почему файлы XML важны и кто их использует?

XML сохраняет сложные данные структурированными и переносимыми, именно поэтому он используется в конфигурациях приложений, экспортах CMS, товарных фидах, пакетах электронного обучения и контенте SCORM.

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

Что такое ИИ-агенты и как они помогают в переводе XML?

ИИ-агенты — это инструменты автоматизации, ориентированные на конкретные задачи и учитывающие особенности рабочих процессов.

Агенты Smartcat, такие как Software Localization Agent, созданы для работы со структурированными форматами, такими как XML: они сохраняют целостность тегов и применяют ваши глоссарии, благодаря чему локализация масштабируется без привлечения разработчиков.

Они также обучаются на основе обратной связи от человека, что способствует росту продуктивности и повышению качества даже в сложных корпоративных рабочих процессах.[1]

Могу ли я контролировать, какие атрибуты переводятся?

Да, и контроль — это сам механизм, а не надстройка, прикрученная сверху. В конфигурации синтаксического анализа XML вы указываете XPath для сегментообразующих элементов, при этом сегментообразующим узлом может быть элемент, атрибут или текст.

Атрибут переводится, только если вы укажете на него, поэтому label становится сегментом, тогда как id и значения перечислений никогда не попадают в редактор. Вы также можете указать отдельные пути для непереводимых узлов, идентификаторов строк, комментариев и ограничений по длине.

Как перевести файлы XML с сохранением тегов?

Загрузите файл, затем определите, что считается текстом.

Модель синтаксического анализа никогда не изменяет структуру: имена элементов и атрибутов остаются нетронутыми, и только те узлы, на которые указывает ваш XPath, становятся доступными для редактирования сегментами.

Переведенный текст записывается обратно в исходную структуру, поэтому скачиваемый файл представляет собой корректно сформированный XML с той же структурой, что и отправленный вами файл.

Может ли Smartcat переводить файлы Android strings.xml?

Да. Android XML является поддерживаемым форматом, и в проекте по локализации ПО вы можете импортировать и экспортировать строки вместе с их идентификаторами ключей — точно так же, как для JSON, YAML и iOS .strings — поэтому <string name="checkout_cta"> сохраняет свое name, а R.string.checkout_cta корректно определяется для каждого языка.

Ключи во множественном числе поддерживаются на уровне проекта: ключ можно создать со всеми формами множественного числа, а формы множественного числа экспортируются как строки, совместимые с ICU MessageFormat.

Какие форматы XML поддерживает Smartcat?

Стандартный XML, Android XML, XLIFF и TMX, а также пользовательские схемы с помощью конфигурации синтаксического анализа XML.

Импорт XLIFF поддерживает версии 1.2 и 2.0, в то время как экспорт возможен только в версии 1.2, а для XLIFF предусмотрен собственный рабочий процесс на странице редактора переводов XLIFF.

Для пользовательской схемы парсер настраивается один раз под конкретную структуру файла, а не пытается угадать её, — и для сегментации ему требуются повторяющиеся элементы.

Что происходит с секциями CDATA, содержащими HTML?

Вы решаете с помощью флажка: Защищать HTML-теги в разделах CDATA. Проверено, HTML-теги внутри блока CDATA заменяются тегами Smartcat, поэтому переводчики могут перемещать их, но не могут сломать. Если флажок не установлен, эти теги отображаются как редактируемый фрагмент текста. Для всего, что обрабатывается автоматически, оставьте этот флажок установленным.

Может ли Smartcat конвертировать JSON в XML?

Нет — это переводчик, а не конвертер форматов. Он переводит JSON и XML каждый в своем собственном формате; см. переводчик JSON для файлов локализации.

Могу ли я автоматизировать регулярный перевод XML?

Да — см. раздел «Обновление сегментов по ID без отмены назначений» выше, чтобы узнать, что происходит при повторной загрузке.

Для пайплайнов Smartcat API загружает файлы и получает переводы, работает асинхронно с обратными вызовами для уведомлений, поэтому шаг сборки не находится в режиме ожидания опроса, и имеет CLI для CI/CD. Три предварительных условия:

  • Доступ к API включен только в тарифные планы Anticipate и Autonomous.
  • Для этого требуется корпоративный аккаунт, а не аккаунт фрилансера.
  • Это недоступно во время бесплатного пробного периода.

Для всех методов действует общий лимит в 4 запроса в секунду, а документация находится в открытом доступе на developers.smartcat.com.

Предлагает ли Smartcat контроль версий для переводов XML?

Да — каждое изменение и правка отслеживаются в Smartcat Editor. Вы можете возвращаться к более ранним версиям или сравнивать обновления между языковыми наборами, что обеспечивает согласованность локализации от релиза к релизу.

Безопасны ли мои XML-материалы на платформе Smartcat?

Smartcat соответствует стандарту SOC 2 Type II. Файлы шифруются при передаче и хранении, рабочие пространства изолированы для каждой учетной записи, а доступ основан на ролях. Подробности приведены на странице безопасности.

Пройдут ли выходные данные валидацию по моему DTD или XSD?

Синтаксическая корректность обеспечивается моделью синтаксического анализа — структура никогда не редактируется.

Валидность схемы частично зависит от содержимого, а перевод изменяет содержимое: поле, которое ваша XSD ограничивает 40 символами, может переполниться, поскольку немецкий текст обычно длиннее английского.

Именно для этого предусмотрен реальный контроль — конфигурация парсера позволяет задавать ограничения по длине сегментов, благодаря чему переводчики видят лимит прямо во время работы, а не после сбоя при импорте. Запустите собственную валидацию схемы для первых файлов по каждой языковой паре.

Сколько стоит перевод файлов ресурсов XML?

Объем перевода измеряется в Smartwords со скидкой на повторы, а цена зависит от объема, а не от формата файла.

Каждый план начинается с 15 дней бесплатного использования с 15 000 Smartwords и полным доступом ко всем возможностям перевода, без банковской карты.

Не нашли ответ здесь? Закажите демо — индивидуальная встреча с инженером по локализации, без каких-либо обязательств.

Можно ли использовать Smartcat в качестве онлайн-переводчика XML?

Да. Загружайте и переводите файлы XML прямо в браузере с помощью Software Localization Agent от Smartcat — без скачиваний и ручной настройки.

Сколько языков Smartcat поддерживает для контента в формате XML?

Более 280 языков, включая диалекты и языки с письмом справа налево.

Каким может быть максимальный размер XML-файла и сколько файлов я могу отправить?

Опубликованный предел является глобальным, а не специфичным для XML:

  • 6 ГБ на документ или файл проекта.
  • Рекомендация заключается в том, чтобы разделять все файлы размером более 1 ГБ на более мелкие части для ускорения обработки.
  • Ограничение по количеству сегментов в документации не указано, а лимит на количество файлов вообще отсутствует — поддерживается пакетная загрузка сотен файлов в один проект, и это не зависит от тарифного плана.

Ограничение касается размера каждого файла, а не количества отправляемых файлов.

Источники

  1. Новости MIT. (2024). Исследователи из Массачусетского технологического института разработали методику обучения для повышения эффективности и надежности ИИ-агентов. news.mit.edu