Как устроен YAML
YAML это текстовый формат для представления структурированных данных. Он использует вложенность через отступы, пары ключ и значение и списки. Простой пример файла локализации:
menu:
home: "Главная"
settings: "Настройки"
profile: "Профиль"
buttons:
save: "Сохранить"
cancel: "Отмена"
delete: "Удалить"
messages:
success: "Операция выполнена успешно"
error: "Произошла ошибка"
Каждый ключ это идентификатор строки, значение это текст для отображения. Ключи не переводятся, они это ссылки в коде. Переводятся только значения.
Почему YML-файлы требуют осторожности
Первая причина: YAML чувствителен к отступам. Если при переводе сдвинуть отступ, структура сломается и приложение не загрузит файл. Вторая: внутри значения может быть HTML или разметка, которую нельзя менять. Третья: некоторые значения содержат подстановки переменных или ссылки, которые тоже не трогают.
Четвёртая: длина строки. В интерфейсе у строки часто есть ограничение по длине. Английское слово помещается в кнопку, русский перевод длиннее и вылезает. Это нужно учитывать при переводе и проверке.
Что переводится, а что нет
В YML-файле локализации не всё подлежит переводу. Переводятся текстовые значения, которые видит пользователь. Не переводятся ключи, они это идентификаторы в коде. Не переводятся технические параметры, размеры, цвета, URL. Не переводятся подстановки переменных и ссылки на ресурсы.
На практике полезно заранее пометить, какие строки свободны, а какие привязаны. Это экономит время и снижает риск сломать файл.
Как выстроить процесс работы с YML
Подход такой. Файл извлекается, строки выгружаются в формат для перевода, например XLIFF. Перевод выполняется с учётом глоссария интерфейса, чтобы названия кнопок и разделов были единообразны. После перевода строки возвращаются в YML, файл валидируется и приложение проверяется.
В Платформе перевода этот процесс автоматизирован. YML-файл подключается, строки извлекаются, переводятся с учётом глоссария и памяти переводов, проходят агентские проверки и возвращаются в исходную структуру. Файл валидируется автоматически, и команда получает результат, готовый к загрузке в приложение.
Для локализации мобильных приложений и локализации ПО YML часто встречается как основной формат хранения строк. Если вы локализуете приложение и строки лежат в YAML, важно заранее определить, кто отвечает за структуру файла и кто за текст, и как они согласуют изменения.
Частые ошибки
Типичная ошибка это перевод ключей вместо значений. Ключ это идентификатор, он должен остаться без изменений. Вторая: нарушение отступов. Третья: изменение подстановок переменных или HTML-разметки внутри строки. Четвёртая: неучтённая длина строки, когда перевод не помещается в элемент интерфейса.
FAQ
Что такое YML-файл в локализации?
YML это расширение для YAML-файлов, которые часто используют для хранения строк интерфейса и конфигурации приложения. В локализации переводятся текстовые значения, а ключи и технические параметры остаются без изменений.
Можно ли переводить YAML-файл вручную?
Технически да, но не рекомендуется. YAML чувствителен к отступам, и ручное редактирование легко ломает структуру. Лучше использовать CAT-систему или Платформу перевода, которая работает с YAML корректно.
Что нельзя переводить в YML-файле?
Ключи, технические параметры, подстановки переменных, HTML-разметку внутри строк, URL и ссылки на ресурсы. Переводятся только текстовые значения, которые видит пользователь.
Как Платформа перевода работает с YML-файлами?
Платформа извлекает строки из YAML, переводит их с учётом глоссария и памяти переводов, проходит агентские проверки и возвращает результат в исходную структуру. Файл валидируется автоматически.
Почему важна длина строки при переводе YML?
В интерфейсе у элементов есть ограничения по размеру. Если перевод длиннее исходной строки, он может не поместиться в кнопку или заголовок. Это нужно проверять на этапе LQA.