Как устроен XML
Файл состоит из элементов: открывающий и закрывающий тег обрамляют содержимое, а в теге могут быть атрибуты. Переводчику нужны только текстовые значения. Например, в ресурсном файле Android строки хранятся так:
<resources>
<string name="save">Save</string>
<string name="app_name" translatable="false">MyApp</string>
</resources>
Здесь переводится текст внутри тега string, а атрибут name служит ключом и остается неизменным. Атрибут translatable="false" помечает строки, которые переводить не нужно.
Что переводится в XML, а что нет
Переводят содержимое элементов: названия, описания, подписи, сообщения. Теги, имена атрибутов и ключи менять нельзя, иначе приложение или сайт не найдет нужную строку. Иногда переводятся и значения некоторых атрибутов, например alt и title у изображений в разметке сайта. Решение зависит от схемы файла, поэтому перед переводом нужно определить, какие элементы считаются текстом для локализации.
Особое внимание нужно спецсимволам. Знаки &, < и > в XML записывают как сущности: &, <, >. Их нужно сохранить как есть. Текст с разметкой может быть заключен в блок CDATA, внутри которого теги не считаются частью структуры. Кроме того, для кодировки обычно используют UTF-8.
Зачем использовать XML для локализации
Формат читается и людьми, и программами, а его структура строго задана. Из любой системы управления контентом можно выгрузить тексты в XML, а потом загрузить переводы обратно. Поэтому формат подходит для сайтов и интернет-магазинов с большим каталогом, где CMS выгружает контент автоматически. На основе XML построен и формат обмена XLIFF.
Как выстроить процесс с XML-файлами
Сначала определите, какие элементы нужно переводить, и исключите технические значения. Затем настройте выгрузку из источника: CMS, приложения или репозитория. Подключите интеграцию с платформой перевода, например через API, и проверьте цепочку на небольшом файле. После перевода убедитесь, что структура не нарушена и теги закрыты правильно, а затем загрузите файлы обратно.
Платформа перевода поддерживает XML среди форматов локализации. Например, при локализации крупного каталога интернет-магазина содержимое сайта можно преобразовать в XML и загружать в проект по открытому API. Подробнее — на странице Платформы перевода.
Частые ошибки
Типичная ошибка — перевод значений, которые служат ключами или техническими параметрами. Вторая — удаление или порча закрывающих тегов, из-за чего файл перестает разбираться. Третья — потерянные сущности вместо спецсимволов, особенно &. Четвертая — неверная кодировка, при которой вместо русских букв появляются нечитаемые символы. Чтобы этого избежать, используйте редактор, который защищает теги, и проверяйте файл перед возвратом.
FAQ
Какие данные в XML переводят?
Текстовое содержимое элементов и, в зависимости от схемы, значения некоторых атрибутов. Ключи и теги не переводят.
Чем XML отличается от XLIFF?
XML — общий формат разметки. XLIFF построен на его основе и предназначен специально для обмена данными между системами локализации.
Можно ли переводить XML вручную в текстовом редакторе?
Технически да, но так проще повредить структуру. Лучше использовать редактор системы перевода, который защищает теги.
Какую кодировку использовать?
Для локализации рекомендуют UTF-8, она поддерживает символы всех языков.