Coroid переводит ваш продукт с помощью того же движка, который используется для работы с тринадцатью собственными языками. Ваши каталоги остаются файлами в репозитории. Любое изменение в них поступает как задача и pull request, причем модели отправляются только новые, измененные или поврежденные строки.
Локализация — это второй этап Глобализация в главном меню. Открытие соответствующего проекта отображает его рабочее пространство: разделы слева и открытый раздел рядом с ними. Проекты, которые пока не являются многоязычными, начинаются с Мастер интернационализации.
Рабочее пространство
| Раздел | Для чего это нужно |
|---|---|
| Обзор | Состояние каждого языка и одно действие для Локализации недостающих элементов |
| Строки | Все строки на всех языках, отфильтрованные по актуальным задачам |
| Предложения | Исправления от участников, ожидающие принятия решения |
| Обмен | Файлы для агентств, инструментов перевода и таблиц, а также их переведенные версии |
| Участники | Кто может предлагать варианты текста и на каких языках |
| Автоматизации | Исправления применяются еженощно, а перевод строк, выполненный вне Coroid, также учитывается. |
| Настройки | Языки, проверка Глобализации, доступ и расходы, а также конфигурационный файл |
Разделы «Предложения», «Участники» и «Автоматизации» описаны в Поддерживайте переводы с помощью предложений. Над этими разделами, в группе «Интернационализация», расположена панель Готовность к работе в глобальном масштабе и культура.
Рабочее пространство считывает каталоги с вашей ветки по умолчанию. При их изменении Coroid снова считывает их при следующем открытии проекта; до этого момента в Обзоре отображается информация о процессе чтения. Для этой операции Coroid никогда не запускает код вашего репозитория. Каталоги с пользовательским адаптером не отображаются; их строки при этом всё равно проверяются в задачах.
Обзор: по одной строке на язык
Обзор начинается с четырёх итоговых показателей: количество строк, языков, доля переведённого текста и число строк, требующих обработки. Под ними для каждого языка указана линия, проходящая через три этапа:
- Интернационализировать. Каталог данного языка существует и содержит строки.
- Локализовать. Каждая строка переводится с исходного текста.
- Проверить. Ни одна строка не повреждена: все корректно парсятся, сохраняют исходные плейсхолдеры и имеют необходимые формы множественного числа.
Следующий этап развития языка определяется по точке останова его линии. Зелёная точка означает завершение, бирюзовое кольцо — этап, требующий дополнительной работы, а янтарная — наличие повреждённых строк.
- Готовность к работеКод, предполагающий использование определённого языка
- КультураОжидания каждого рынка
- ОбзорТекущее состояние каждого языка
- СтрокиВсе строки на всех языках
- ПредложенияОжидают решения
- ОбменФайлы для других инструментов
- УчастникиКто может предлагать варианты текста
- АвтоматизацииРабота ночью и при слиянии веток
- НастройкиЯзыки, доступ и расходы
Каждый язык проходит через три этапа. Следующий шаг определяется местом завершения текущего этапа.
- Englishанглийский · en · Источник
1 240 строки в 3 каталогах
- Deutschнемецкий · de100 %ГотовоСоответствует требованиям
- Françaisфранцузский · fr98 %18 отсутствуют строкиСоответствует требованиям
- 日本語японский · ja96,3 %42 отсутствуют строки3 поврежденные строки
- العربيةарабский · ar94,6 %64 отсутствуют строкиСоответствует требованиям
- British Englishбританский английский · en-GB · Сформировано на основе английский100 %Производное и актуальноеСоответствует требованиям
Обзор рабочего стола: каждый язык отображается в виде строки через этапы интернационализации, локализации и проверки, с указанием разрыва, мешающего завершению процесса. Иллюстративные данные.
Полоса под Локализовать отображает информацию с самого начала: тёмно-зелёный цвет — строки, отредактированные людьми, светло-зелёный — строки, созданные моделью, янтарный — строки, требующие внимания, а пустая часть — строки, которых не хватает. Текст под полосой указывает на разрыв, например, 42 недостающие строки, и открывает именно эти строки.
Языки, полученные из другого языка по правилам, например британский английский из американского, отображают статус Производный и актуальный после применения правил ко всем строкам.
Локализуйте недостающие элементы
Владельцы и администраторы видят в верхней части Обзора одно действие — Перевести с указанием числа строк, требующих обработки: отсутствующих, изменённых в исходном тексте или повреждённых. Перевод выполняется в рабочем пространстве в два этапа:
- Память переводов. Строка, которую уже перевёл другой проект вашей организации с точно таким же исходным текстом, использует этот же перевод. Переводы людей имеют приоритет перед машино-сгенерированными. При этом вызов модели не происходит, и расходов нет.
- Модель-переводчик. Остальные строки переводит движок, закреплённый в вашем репозитории, через шлюз перевода; при этом каждый ответ проверяется на соответствие плейсхолдерам и формам множественного числа.
Во время выполнения процесса панель под итоговыми показателями отображает количество созданных строк и затраты на операцию, а полоса каждого языка заполняется полосатой краской по мере поступления строк. Остановить перевод завершает процесс; созданные результаты сохраняются.
- Готовность к работеКод, предполагающий использование определённого языка
- КультураОжидания каждого рынка
- ОбзорТекущее состояние каждого языка
- СтрокиВсе строки на всех языках
- ПредложенияОжидают решения
- ОбменФайлы для других инструментов
- УчастникиКто может предлагать варианты текста
- АвтоматизацииРабота ночью и при слиянии веток
- НастройкиЯзыки, доступ и расходы
Каждый язык проходит через три этапа. Следующий шаг определяется местом завершения текущего этапа.
Переведено строк пока что: 71 из 133
Повторно использовано из памяти переводов без дополнительных затрат: 26 · 0,04 $ израсходовано из лимита в 5,00 $
- Deutschнемецкий · deГотово
- Françaisфранцузский · frПереводы готовы к коммитированию: 24
- 日本語японский · jaПроцесс перевода: записано 28 из 45
- العربيةарабский · arПроцесс перевода: записано 19 из 64
Обзор в процессе машинного перевода: печатный механизм работает, каждый язык заполняется полосатыми чернилами по мере поступления строк, а память переводов подсказывает готовые варианты из других проектов. Иллюстративные данные.
Переводы не попадают сразу в ваш репозиторий. Они ожидают Сохранить вместе с другими изменениями, помеченные как машинные переводы, чтобы вы могли проверить их в Строки сначала. Строка, которую уже редактировал кто-то другой или предложил участник, остаётся в их ведении.
Строки
Строки отображает каждую строку с её исходным текстом и значением на одном языке. Он открывается на странице Требуют обработки: строки, которых не хватает, чей исходный текст изменился, которые повреждены или остались такими же, как в исходнике. Выберите другой язык, каталог или воспользуйтесь поиском по ключам и тексту.
| Состояние | Значение |
|---|---|
| Отсутствует | У этой строки нет перевода |
| Исходный текст изменился | Исходный текст изменился после того, как строка была переведена |
| Повреждена | Она не распознаётся парсером, её плейсхолдеры отличаются от исходных или её формы множественного числа не соответствуют языку |
| То же, что и в исходнике | Она полностью совпадает с исходным текстом |
| Машинный | Её создала модель, и никто из людей её не проверял |
| Проверено | Её написал или исправил человек |
| Производная | Её сгенерировали правила из другого языка |
Выберите строку, чтобы увидеть её на всех языках. Плейсхолдеры и разметка отображаются как заблокированные элементы, так как они должны сохраняться без изменений при переводе. Для выбранного вами языка в деталях также указано, кто ввёл значение, что с ним не так, а для сообщений множественного числа — какие формы требуются для данного языка.
- Готовность к работеКод, предполагающий использование определённого языка
- КультураОжидания каждого рынка
- ОбзорТекущее состояние каждого языка
- СтрокиВсе строки на всех языках
- ПредложенияОжидают решения
- ОбменФайлы для других инструментов
- УчастникиКто может предлагать варианты текста
- АвтоматизацииРабота ночью и при слиянии веток
- НастройкиЯзыки, доступ и расходы
Все строки на всех языках. Фильтры позволяют сразу видеть нужные элементы работы.
| Исходный текст | 日本語 |
|---|---|
| Total: {amount} | 合計: {price}Некорректно |
| Your cart is empty | Перевода пока нетОтсутствует |
| Welcome back, {name} | Перевода пока нетОтсутствует |
| Prices include <b>VAT</b> | 価格には<b>消費税</b>が含まれますНекорректно |
| Weekly deals | Перевода пока нетОтсутствует |
- 日本語 · японскийНекорректно合計: {price}
Создано моделью · Плейсхолдеры отличаются от исходного текста
- DeutschПровереноGesamt: {amount}
- FrançaisМашинный переводTotal : {amount}
- العربيةМашинный переводالإجمالي: {amount}
- British EnglishПроизводноеTotal: {amount}
Строки в рабочем столе, отфильтрованные по японским строкам, требующим работы; в открытой строке плейсхолдеры показаны как заблокированные элементы, а значения для каждого языка — отдельно. Иллюстративные данные.
Редактировать и сохранить
Владельцы и администраторы исправляют переводы в разделе Строки. Выберите строку, затем Редактировать в нужном языке и сохраните изменения. В редакторе плейсхолдеры исходного текста отображаются как элементы, которые можно вставлять, а при вводе текста редактор проверяет корректность: плейсхолдеры, формы множественного числа, требуемые языком, термины из вашего глоссария и длину текста. Coroid повторно проверяет всё при сохранении против данных из ветки по умолчанию.
Предложить в редакторе предлагает перевод для конкретной строки: из памяти переводов, если он уже есть в другом проекте, либо от модели-переводчика. Выберите Использовать чтобы поместить его в редактор; ничего не сохраняется до тех пор, пока вы не сохраните изменения.
Сохранённые изменения отображаются в панели под списком строк, где их можно проверить или отменить. Сохранить объединяет все эти изменения вместе с одобренными предложениями участников и машинными переводами в одну задачу. Эта задача применяет именно эти значения с заданным движком и открывает один pull request. Один коммит может содержать до 5 000 изменений; остальные ожидают следующего коммита. Пока этот pull request не будет объединён в основную ветку, строки будут отображаться как Не сохранено или В процессе применения.
Сохранённый машинный перевод остаётся машинным переводом в кэше движка, поэтому он по-прежнему относится к категории Машинный пока его не проверит человек.
Для редактирования необходимо включить функцию участия в файле конфигурации; Мастер интернационализации включает её по умолчанию. Участники также могут предложить более подходящую формулировку на вашем собственном сайте.
Обмен файлами
В разделе Обмен, скачайте строки для агентства, инструмента перевода или таблицы, а затем импортируйте их переводы обратно.
| Формат | Языки в файле | Используется для |
|---|---|---|
| XLIFF 1.2 и 2.0 | Один | Инструменты перевода и агентства; плейсхолдеры передаются как заблокированные теги |
| Gettext PO | Один | Poedit, Weblate и другие инструменты Gettext |
| CSV и Excel | Любой язык | Таблицы, с языками в соседних столбцах |
| JSON | Один | Ключи и переводы |
| Apple String Catalog | Любой язык | Xcode |
| Apple .strings | Один | Проекты Xcode |
| Android strings.xml | Один | Android Studio |
| Flutter ARB | Один | Flutter |
Экспорт содержит строки, требующие работы, или все строки. Плейсхолдеры и сообщения множественного числа передаются без изменений.
При импорте каждая строка отображается перед сохранением. Новые переводы и изменения можно принять. Coroid игнорирует ключи, отсутствующие в проекте, переводы, созданные по изменившемуся исходному тексту, повреждённые плейсхолдеры и сообщения множественного числа, у которых не хватает нужной формы для языка. Принятые строки становятся изменениями, ожидающими Сохранить, так же как и изменения, внесённые в разделе Строки.
JSON, .strings и файлы Android не указывают язык, который они содержат. Coroid определяет его по имени файла, например storefront-de.json, или запрашивает его.
Проверить каждое изменение
Функция Проверка Глобализации Эта система работает во время проверки задач и в процессе создания пулл-реквестов. Она анализирует строки, затронутые изменениями, на всех языках, а также код, добавленный в результате этих изменений. На странице Обзор Просмотреть последнюю проверку под Проверить откроет самый свежий запуск. Если при переводе возникают ошибки, блокирующие выполнение задачи, агент-разработчик устраняет их в рамках сессии перевода для данной задачи; при этом он никогда не редактирует каталоги других языков вручную.
Модель Translator
Функция перевода имеет собственную роль в профилях AI, Translator, наряду с Architektом, Разработчиком, Специалистом по проверке качества и Рецензентом. По умолчанию используется модель перевода Hy-MT2, а в качестве резервной — GPT-6 Luna, если это разрешено политикой вашей организации. Схему сопоставления можно изменить в профиле AI так же, как и для любой другой роли.
Движок также группирует строки по размеру, проверяет каждый ответ на соответствие вашим плейсхолдерам и правилам склонения, а в случае ошибки повторно отправляет запрос или передает задачу на более высокий уровень обработки.
Стоимость
Возможность перевода доступна в любом тарифном плане. Запросы на перевод проходят через шлюз перевода Coroid и оплачиваются как расходы на использование моделей для вашей организации, так же как и запуски агентов. Задачи перевода учитываются в лимитах часов работы агентов вашего тарифного плана, как и любые другие задачи.
При использовании стандартного маршрута Translator стоимость перевода составляет около двух центов за 1 000 строк на один язык. Перевод каталога из 2 000 строк на десять языков обойдется примерно в 0,33 доллара, согласно нашим измерениям.
- Оплачиваются только изменения. Движок сохраняет кэш, привязанный к исходному тексту, поэтому неизменные строки больше не отправляются на перевод.
- Каждая задача и каждый запуск имеют лимит на перевод. Сессия задачи прекращается при достижении лимита расходов — по умолчанию 1 доллар; Перевести запуск в рабочей области останавливается при достижении лимита в 5 долларов. Проект может установить более низкий лимит в разделе Настройки → Доступ и расходы.
- Память переводов не стоит ничего. Строки, уже переведенные вашей организацией в других местах, используются повторно без необходимости обращения к модели.
- Чтение не требует оплаты. Рабочая область и проверка Глобализация считывают ваши каталоги; при этом запросы к моделям не отправляются.
Перевод вне Coroid
Движок представляет собой инструмент командной строки, coroid-i18n. Ваша собственная система непрерывной интеграции может запустить ту же зафиксированную версию с собственным ключом OpenRouter. Внутри Coroid задачи всегда используют шлюз перевода, поэтому расходы и лимиты остаются в одном месте.