Coroid переводит ваш продукт с тем же движком, который используется для работы с тринадцатью языками. Ваши каталоги остаются файлами в вашем репозитории. Любое изменение в них поступает как обычная задача и pull request, при этом на обработку модели отправляются только новые, изменённые или повреждённые строки.
Переводы размещаются в разделе Quality Control → Переводы. В списке отображаются каждый проект, информация о настроенных переводах и последнее сканирование. Откройте проект, чтобы получить доступ к его рабочему пространству.
- Интернет-магазин
- Сайт документации
- Мобильное приложение
| Язык | Отсутствует | Устаревшие |
|---|---|---|
| de | 0 | 2 |
| fr | 14 | 0 |
| ja | 14 | 1 |
| ar | 14 | 0 |
- ПереводыQA задач и создание пулл-реквестов · только изменённые строкиОпубликованные
- Аудит переводовПо расписанию · каждая каталожная страница и страница языкаЧерновик
Контроль качества → Переводы для одного проекта: последняя проверка перевода по каждому языку, а также элементы управления переводами и аудитом переводов. Примерные данные.
Что нужно для вашего репозитория
Coroid считывает каталоги в следующих форматах:
| Формат | Используйте для |
|---|---|
| ICU JSON | Файлы сообщений с плюральными и выборочными формами ICU |
| i18next JSON | Каталоги i18next и react-i18next, включая суффиксы плюралов |
| Vue i18n JSON | Сообщения vue-i18n, включая связанные сообщения и плюральные формы с помощью pipe |
| Rails YAML | config/locales/*.yml, с %{name} интерполяцией и ключами плюралов |
| gettext PO | .po файлы и .pot шаблон, с Plural-Forms на каждый язык |
| Markdown и MDX | Страницы документации в папке с указанием языка (docs/en/…): текст, описания изображений и выбранные поля мета-информации; код и разметка остаются без изменений |
| Настраиваемый | Любой другой формат — через небольшую команду-адаптер в вашем репозитории |
Вам пока не нужны переводы. Если в вашем проекте нет поддержки i18n, Coroid может её добавить.
Настроить
Раздел Настройка содержит инструкцию по трём шагам.
- Обнаружить. Coroid создаёт задачу на обнаружение. Он запускает закреплённый движок перевода в вашем репозитории и фиксирует стек технологий, каталоги, исходный язык и всё, что вызывает сомнения.
- Выбрать. Выберите Использовать существующую систему i18n чтобы сохранить ваш фреймворк и каталоги, а также добавить проверки и движок различий от Coroid. Выберите Внедрить i18n чтобы Coroid настроил ваш фреймворк, извлек представительные строки и добавил маршрутизацию по локалям, механизмы резервного восстановления и поддержку направления слева направо.
- Создать. Coroid создаёт задачу на настройку с техническим заданием и критериями приемки. В итоге получается pull request, которое вы проверяете как любую другую задачу.
- Интернет-магазин
- Сайт документации
- Мобильное приложение
- Обнаружить
- 2Выбрать
- 3Создать
Сохраните текущую структуру и каталоги, добавив функции проверки переводов и движка различий от Coroid.
Подключите свою платформу, извлеките типичные строки и добавьте маршрутизацию по языкам, механизмы резервных вариантов и поддержку направления справа налево.
- Исходный язык
- en
- Целевые языки
- de, fr, ja, ar
Вкладка «Настройка» после обнаружения: используйте существующую систему i18n или внедрите её, указав исходный и целевые языки. Примерные данные.
Настройка будет завершена после того, как этот pull request объединят с веткой по умолчанию, и Coroid синхронизирует данные. До этого момента ничего в рабочем пространстве не будет учитывать эту настройку.
Файл репозитория
При настройке создаётся .coroid/i18n.json. Он описывает ваш репозиторий, поэтому хранится в нём, а изменения вносятся через pull request:
{
"version": 1,
"cli": { "version": "1.7.0", "sha256": "…" },
"sourceLocale": "en",
"targetLocales": ["de", "fr", "ja", "ar"],
"catalogs": [
{
"id": "ui",
"format": "i18next-json",
"source": "messages/{locale}.json"
}
],
"localeTier": { "ja": "escalation" }
}cliфиксирует точную версию движка и её контрольную сумму. Coroid загружает и проверяет эту версию перед каждым запуском, чтобы обновление не изменило результаты внезапно.sourceLocaleможет быть любым языком. Шведский исходный текст, переведённый на английский и немецкий, обрабатывается одинаково.localeTierзапрашивает более качественный вариант перевода для конкретной локали. Вы выбираете уровень, а не модель.
В этом файле также могут храниться глоссарий, защищённые термины, контекст продукта и инструкции по каждой локали.
Чтобы изменить его, отредактируйте предложение в разделе Конфигурация и выберите Предложить изменение. Coroid создаст задачу, которая применит именно этот файл и исправит все затронутые переводы.
В том же разделе находятся настройки, относящиеся к Coroid, а не к вашему репозиторию: какие сайты могут открывать выборщик предложений, должны ли предложения проходить Рецензирование по умолчанию и лимит расходов на переводы проекта.
Проверяйте каждое изменение
Переводы включаются в процесс проверки через два этапа Quality Control. Добавьте их из раздела Обзор .
- Переводы запускается при проверке задач и в pull request. Он проверяет только те строки, которые затронуты изменением.
- Аудит переводов запускается по расписанию. Он проверяет каждый каталог и локаль, а также может включать браузерное тестирование страниц с учётом локали: проверку направления слева направо, переполнения текста и отсутствия непереведённого текста на странице.
Добавление контроля создаёт черновик политики. Проверьте его и опубликуйте в разделе Политики качества чтобы включить его.
Каждая проблема оформляется как находка с кодом ошибки:
| Код | Значение | Блокирует по умолчанию |
|---|---|---|
missing | Для строки отсутствует перевод | Да |
invalid_syntax | Перевод не корректно парсится, например, нарушена структура ICU | Да |
placeholder_mismatch | Плейсхолдеры отличаются от исходных | Да |
plural_categories | Отсутствует необходимая форма множественного числа для данной локали | Да |
stale | Исходный текст изменился после перевода строки | Нет |
Вы сами выбираете, какие коды блокировать в настройках элемента управления. Глоссарий, правила длины и запрещённых терминов указывают свои собственные коды при соответствующей настройке файла.
missingui · checkout.total · frНе переведеноstaleui · nav.deals · deИсходный текст изменился после переводаplaceholder_mismatchui · cart.items · jaПлейсхолдеры отличаются от исходного текстаplural_categoriesui · cart.count · arДля данного языка отсутствуют формы множественного числа
Результаты проверки качества переводов: один код проблемы на каждое найденное несоответствие. Примерные данные.
Если при переводе возникает блокировка задачи, агент-разработчик устраняет её всегда одинаково: открывает сессию перевода для этой задачи и запускает движок на изменённых строках. Он никогда не редактирует целевые каталоги вручную.
Модель Translator
В профилях AI переводу отведена собственная роль, Переводчик, наряду с Архитектором, Разработчиком, Инженером по проверке качества и Рецензентом. По умолчанию используется модель перевода Hy-MT2, а в качестве резервной — GPT-6 Luna, если это разрешено политикой вашей организации. Изменить соответствие можно в профиле AI так же, как и для любой другой роли.
Движок также группирует строки по размеру, проверяет каждый ответ на соответствие вашим плейсхолдерам и правилам множественного числа, а при ошибке повторно обрабатывает строку или передаёт её на уровень выше.
Затраты
Возможность перевода доступна во всех тарифах. Запросы на перевод проходят через шлюз перевода Coroid и оплачиваются как использование моделей для вашей организации, аналогично запускам агентов. Задачи настройки учитываются в часах работы агентов в рамках вашего тарифа, как и любые другие задачи.
При использовании стандартного маршрута Translator стоимость перевода составляет около двух центов за 1 000 строк на один язык. Перевод каталога из 2 000 строк на десять языков обошёлся примерно в 0,33 доллара при наших тестах.
- Оплачиваются только изменения. Движок сохраняет кэш, привязанный к исходному тексту, поэтому неизменённые строки больше не отправляются.
- На каждую задачу установлен лимит перевода. Сессия прекращается при достижении установленного лимита расходов по задаче — по умолчанию 1 доллар. В проекте можно задать более низкий лимит в разделе Настройка → Доступ и расходы.
- Проверки не вызывают запросов к моделям. Элемент управления Переводами и функция аудита считывают ваши каталоги; они не выполняют перевод.
Перевод вне Coroid
Движок представляет собой инструмент командной строки, coroid-i18n. Ваша собственная система непрерывной интеграции может запустить ту же закреплённую версию с собственным ключом OpenRouter. Внутри Coroid задачи всегда используют шлюз перевода, поэтому расходы и лимиты остаются в одном месте.