Документация

Интернационализация проекта

Запустите мастер интернационализации, чтобы сделать проект многоязычным. Coroid проанализирует репозиторий, предложит нужные языки и настройки, а затем подготовит один pull request.

Мастер интернационализации превращает проект в многоязычный. Он считывает содержимое вашего репозитория, начинает работу с полученных данных и в итоге создает одну задачу, которая открывает один pull request. Вам не придётся вводить коды языков или редактировать JSON; изменяйте только то, что нужно, и ничего не изменится в репозитории до момента слияния.

Владельцы и администраторы запускают мастер. Начните его через Локализация: выберите Интернационализировать проект, или Запустить мастер в строке проекта. Для уже многоязычного проекта Настройки → Изменить языки откроет тот же мастер для предложения изменений.

Этапы работы

1. Сканирование

Coroid считывает данные из ветки по умолчанию, не запуская при этом код. Он ищет каталоги и соответствующие им языки, используемые фреймворки, а также текст, всё ещё написанный прямо в коде, с учётом количества строк в каждом файле.

  • Найденные каталоги. Мастер сохраняет их: Coroid добавляет необходимые проверки и переводит недостающие элементы. Это процесс называется «адаптацией».
  • Каталогов пока нет. Coroid переносит текст из вашего кода в каталоги и заменяет его на ссылки на эти элементы. Этот процесс называется «внедрением».
  • Конфигурация уже настроена. В проекте уже существует конфигурация Coroid, и мастер предлагает изменения к ней.

2. Исходный язык

Язык, на котором написан продукт; все остальные языки переводятся с него. Мастер определяет его по вашим каталогам или угадывает по тексту в коде. Исходным может быть любой язык: шведский продукт, переведённый на английский и немецкий, работает так же.

3. Языки

Выбирайте языки по отдельности или добавляйте целый рынок сразу: Наиболее распространённые, Европа, Скандинавия, Восточная Азия, Америка или С письмом справа налево. Для каждого языка указывается его название, направление письма и количество форм множественного числа.

Региональные варианты можно получать путём наследования, а не перевода. Британский английский формируется из американского английского с британским правописанием, а швейцарский немецкий — из немецкого с швейцарским правописанием; они не требуют дополнительных затрат и остаются синхронизированными с родительским языком.

Локализация
Мастер интернационализации

Каждый шаг основан на данных, уже имеющихся в репозитории. Изменяйте только то, что необходимо; ничего не будет применено до момента слияния pull request.

Шаг 3 из 7
Языки для добавления

Выберите языки по отдельности или добавьте целый рынок. Региональные варианты, такие как британский английский, могут быть сформированы на основе правил без необходимости в ручном переводе.

5 языки
  • Deutschнемецкий · de · 2 формы множественного числа
  • Françaisфранцузский · fr · 3 формы множественного числа
  • 日本語японский · ja · 1 форма множественного числа
  • العربيةарабский · ar · справа налево · 6 формы множественного числа
  • British Englishбританский английский · en-GB · 2 формы множественного числаС вариантами написания по британским правилам
Добавить рынок
Наиболее распространённыеЕвропаСкандинавияВосточная АзияАмерикаСправа налево
НазадПродолжить

Мастер интернационализации на шаге «Языки»: для каждого языка указаны направление письма и формы множественного числа, британский английский формируется по правилам, а рынки добавляются одним действием. Иллюстративные данные.

4. Строки

При адаптации выбирайте каталоги, которые Coroid оставит переведёнными; их ключи и структура сохранятся без изменений. При внедрении выбирайте файлы, чей текст Coroid перенесёт в каталоги; файлы, которые вы не укажете, останутся без изменений.

5. Стиль и термины

Всё это необязательно и применяется ко всем языкам:

  • Формальный или неформальный стиль. Для языков, где используется формальное или неформальное обращение, например для немецкого Sie и du. По умолчанию стиль соответствует тону исходного текста.
  • Термины сохраняются в исходном виде. Названия продуктов, брендов и функций остаются неизменными во всех языках.
  • Описание продукта. Несколько предложений о продукте и его аудитории, которые помогают переводчикам выбирать правильные слова.

6. Качество и автоматизация

Все параметры включены по умолчанию, но их можно изменить позже:

  • Проверять переводы при каждом изменении. Проверка переводов в разделе «Контроль качества» отправляет уведомление об ошибке, если в переводе не хватает строк или есть ошибки.
  • Переводить строки, добавленные вне Coroid. Если кто-то добавляет новый текст без участия Coroid, создаётся задача на его перевод.
  • Применять исправления каждую ночь. Утверждённые предложения от участников поступают как одна задача pull request каждую ночь.
  • Разрешить приглашённым пользователям предлагать варианты текста. Приглашённые носители языка могут корректировать переводы прямо на вашем сайте. Подробнее на Поддерживать переводы с помощью предложений.

Файл конфигурации хранит последние настройки. Coroid включит остальные параметры в следующий раз, когда владелец или администратор откроет раздел «Локализация» после слияния pull request, и только один раз: если вы отключите какой-то параметр позже, он останется выключенным.

7. Рецензирование

В сводке указаны данные о проекте, действиях задачи, исходном языке, списке языков и тех из них, что используют наследование, объёме перевода, терминах, сохранённых в исходном виде, и параметрах, которые включатся после слияния. Перевод оплачивается как использование модели, как и другая работа агентов, с лимитом на одну задачу.

Выберите Интернационализировать. Coroid создаст одну задачу со спецификацией и критериями приемки и сразу запустит её.

Что делает задача

  • Адаптация Записывает файл конфигурации точно так, как его создал мастер, а затем переводит все отсутствующие строки.
  • Представляем Связывает вашу платформу, переносит текст выбранных файлов в каталоги, добавляет маршрутизацию по языкам, механизмы замены и поддержку направления справа налево, а затем выполняет перевод.
  • Изменение Записывает новую конфигурацию и исправляет переводы, на которые влияют эти изменения.

Задача завершается созданием одного pull request. После его слияния с веткой по умолчанию все языки появятся в разделе Локализация.

Форматы

Coroid считывает каталоги в следующих форматах:

ФорматИспользуйте для
ICU JSONФайлы сообщений с плагинами и элементами выбора ICU
i18next JSONКаталоги i18next и react-i18next, включая суффиксы множественного числа
Vue i18n JSONСообщения vue-i18n, включая связанные сообщения и плагины множественного числа
Rails YAMLconfig/locales/*.yml, с %{name} интерполяцией и ключами множественного числа
gettext PO.po файлы и .pot шаблон, с Plural-Forms на каждый язык
Markdown и MDXСтраницы документации в папке с языком (docs/en/…): текст, описания изображений и выбранные поля мета-данных; код и разметка остаются без изменений.
НастройкаЛюбой другой формат — через небольшую команду-адаптер в вашем репозитории.

Файл конфигурации

Мастер создает .coroid/i18n.json. Он описывает ваш репозиторий, поэтому хранится в нем, а изменения вносятся через запросы на объединение:

{
  "version": 1,
  "cli": { "version": "1.9.0", "sha256": "…" },
  "sourceLocale": "en",
  "targetLocales": ["de", "fr", "ja", "ar"],
  "derivedLocales": [
    { "locale": "en-GB", "from": "en", "rules": "en-gb-spelling" }
  ],
  "catalogs": [
    {
      "id": "ui",
      "format": "i18next-json",
      "source": "messages/{locale}.json"
    }
  ],
  "protectedTerms": ["Storefront"],
  "localeInstructions": {
    "de": "Address the reader informally (du)."
  }
}
  • cli Указывает точную версию движка и ее контрольную сумму. Coroid загружает и проверяет эту версию перед каждым запуском, чтобы обновление случайно не изменило результат.
  • derivedLocales Перечисляет региональные варианты, созданные правилами.
  • protectedTerms и localeInstructions содержат ваши выбранные параметры Стиль и термины.

В файле также могут храниться глоссарий, контекст продукта, маршруты перевода по языкам и привязка предложений для участников проекта.

Настройки → Файл конфигурации в рабочей области показывает точный файл из ветки по умолчанию. Чтобы изменить его там, нужно создать предложение и выбрать Предложить изменение: Coroid создает задачу, которая применяет именно этот файл и исправляет переводы, на которые влияют изменения. Для настройки языков и стиля проще воспользоваться мастером.