Локализация
Для перевода документации на разные языки используется команда yfm translate
, которая обеспечивает быстрые автоматические переводы.
Подкоманды extract
и compose
этой команды позволяют работать с системами машинного перевода (Computer Assisted Translation, или CAT), обмениваясь с ними *.xliff
файлами.
Поддерживается перевод как *.md
файлов так и *.json
(в том числе *.yaml
) файлов по описанным схемам.
Автоматический перевод
yfm translate --source ru-RU --target en-US
Автоматический перевод может быть выполнен с использованием таких сервисов, как Yandex Translate.
Эти системы имеют определенные ограничения по объему документов, которые могут быть переведены, а также по качеству перевода. Однако они значительно выигрывают с точки зрения скорости.
С целью уменьшения объема текста, подлежащего переводу, документ разбивается на более короткие сегменты, такие как предложения или заголовки. Повторяющиеся сегменты затем удаляются.
Так же для уменьшения объема переводов поддерживаются include
и exclude
фильтры.
Параметр запуска --dry-run
может быть использован для определения объема текста, готового к переводу.
Если лимиты превышены, команда завершится с ошибкой TRANSLATE_LIMIT_EXCEED
.
Использование
-
Перевести проект в текущей директории с
ru
на{{translate.target-lang}}
:yfm translate --source ru --target {{translate.target-lang}}
-
Не переводить скрытые файлы в проекте:
yfm translate --exclude ru/**/_*.* --source ru --target {{translate.target-lang}}
Параметры вызова
Основные
Параметр |
Формат |
Описание |
--source * |
Код языка оригинального документа в формате ISO 639-1 |
|
--target * |
Код языка переведенного документа в формате ISO 639-1 |
|
--input |
Path |
Путь до корня переводимого проекта или конкретного файла в проекте. Если не указан используется директория запуска команды. |
--output |
Path |
Путь до корня проекта, в который нужно сохранить перевод. Если не указан используется |
--include |
Набор правил для фильтрации отправляемых на перевод файлов. По умолчанию |
|
--exclude |
Набор правил запрещающих отправлять файлы на перевод. Применяется после |
Система переводов
Параметр |
Формат |
Описание |
--auth * |
Токен авторизации. Может быть передан несколькими способами: |
|
--folder * |
Id |
Идентификатор каталога, на который у вашего аккаунта есть роль |
Файл фильтр
Если необходимо ограничить переводимые тексты фиксированным набором файлов, механизм гибких фильтров include/exclude
может не подойти.
В таком случае можно сформировать файл с расширением *.list
. Например translate.list
.
# Файл поддерживает комментарии и пустые строки
# Пути до файлов должны быть сформированы относительно самого файла translate.list.
./some/path/to/translated/file-1.md
./some/path/to/translated/file-2.md
# Пути до файлов не должны находиться выше чем translate.list.
# Пример неправильного пути:
../some/path/to/translated/file.md
Пример вызова команды с файлом фильтром
yfm translate --input ./translate.list --source ru --target {{translate.target-lang}}