Рабочие процессы перевода

Использование Weblate повышает качество, сокращает ручную работу и сближает всех участников процесса локализации. Вам решать, каким количеством функций Weblate вы хотите пользоваться.

Ниже приведён не полный список способов настройки Weblate. Вы можете основывать другие рабочие процессы на примерах, перечисленных здесь.

Настройка рабочего процесса

Помимо настройки на уровне Настройки проекта и Настройки компонента (как Включить рецензии, Включить предложения, Голосование по предложению и Автоматически принимать предложения), рабочий процесс перевода может быть настроен для каждого языка.

Общесайтовая настройка рабочего процесса может быть выполнена во время Изменение определений языка.

Настройка для каждого проекта может быть выполнена на каждой языковой странице проекта.

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

Применяется первая существующая настройка:

  1. Настройка языка проекта

  2. Настройка языка

  3. Настройки проекта/компонента

Примечание

Будьте осторожны при использовании переопределения site-wide, так как оно распространяется на все проекты (если только у них нет собственных переопределений для данного языка).

Ограничение языков перевода

Несколько настроек могут ограничивать языки перевода. Они охватывают различные этапы жизненного цикла перевода и могут комбинироваться:

Управление запросами на языки, которых ещё нет

Настройте Добавление нового перевода на уровне рабочего пространства, проекта, категории или компонента. Категории и компоненты могут наследовать этот параметр; см. Наследование настроек. Вы можете разрешить пользователям связываться с сопровождающими, направлять их к инструкциям по переводу, автоматически создавать языковой файл или отключить добавление новых переводов.

Администраторы проекта всё ещё могут добавить перевод, когда Weblate может создать его файл. Для компонентов, которые не наследуют настройку проекта, измените Добавление нового перевода индивидуально или автоматизируйте изменения с помощью PATCH /api/components/(string:project)/(string:component)/.

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

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

Отправки проекта и категории изменяют только компоненты, принадлежащие этому проекту или категории. Чтобы добавить язык к общему компоненту, используйте его собственную страницу создания языка; там применяются условия и разрешения владеющего проекта.

Конечная точка REST для создания переводов возвращает HTTP 403 для языков, требующих одобрения; отправляйте эти запросы через веб-интерфейс. Разрешение на добавление нескольких языков не обходит эту политику. Сопровождающие и доверенные дополнения сохраняют свои существующие разрешения на создание, а обнаружение файлов репозитория не затрагивается.

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

Ограничьте, какие файлы переводов Weblate обнаруживает или создаёт

Настройте Языковой фильтр для каждого компонента. Например, ^(de|en|fr)$ ограничивает компонент файлами переводов, код языка которых равен de, en или fr. Фильтр применяется при сканировании маски файлов компонента и при создании нового файла перевода; он не изменяет разрешения для уже существующих переводов.

Языковые фильтры настраиваются для каждого компонента, без общепроектного списка разрешённых языков. Чтобы применить фильтр ко многим компонентам, автоматизируйте изменения с помощью PATCH /api/components/(string:project)/(string:component)/.

Предоставьте доступ к переводу только для выбранных языков

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

Ограничьте прямое редактирование существующего языка

Откройте настройки языка в проекте, включите Настроить рабочий процесс перевода для этого языка в этом проекте и включите Ограничить прямое редактирование.

Пользователи с разрешением Редактировать строку, когда предложения обязательны могут продолжать редактировать напрямую. Другие пользователи могут добавлять предложения, когда включено Включить предложения. Отключите также предложения, чтобы сделать язык доступным для редактирования только привилегированным пользователям.

Ограничение также может быть настроено для всего сайта при Изменение определений языка. Настройка для конкретного языка проекта имеет приоритет над общесайтовой настройкой языка.

Используйте голосование за предложения

Включите Голосование за предложения, чтобы позволить пользователям голосовать за предложения. Голосование само по себе не ограничивает прямое редактирование. Положительный порог Автоматически принимать предложения также требует, чтобы пользователи без разрешения Редактировать строку, когда предложения обязательны отправляли предложения. Используйте Ограничить прямое редактирование, когда это ограничение не должно зависеть от автоматического принятия.

Доступ к переводу

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

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

Состояния перевода

Каждая переведённая строка может находиться в одном из следующих состояний:

Без перевода

Перевод пуст, он может как храниться в файле, так и не храниться в нём, в зависимости от формата файла.

На правку

Перевод требует правки; это обычно результат нечёткого сопоставления или действия переводчика. В зависимости от формата файла он может быть помечен как требующий правки (например, получает флаг fuzzy в файле gettext).

На перепись

Перевод необходимо переписать из-за изменения исходной строки.

На проверку

Состояние, используемое для исходных/шаблонных строк, требующих рецензирования разработчиком. Обычно устанавливается для новых исходных строк, импортированных из СКВ, когда включена надстройка редактирования источника, или когда на исходную строку поступает жалоба для проверки.

Переведено / Ожидает проверки

Перевод выполнен. Состояние «Переведено» отображается как «Ожидает рецензии», если включены рецензии.

Одобрено

Перевод был одобрен в процессе рецензирования. Он больше не может быть изменён переводчиками — только рецензентами. Переводчики могут только добавлять к нему предложения.

Это состояние доступно только когда рецензирование включено.

Только чтение

Строка доступна только для чтения в результате наличия флага read-only, являясь неизменяемой исходной строкой или будучи помеченной таковой в файле перевода.

Предложения

Предложения хранятся только в Weblate, а не в файле перевода.

Состояния по возможности представлены в файлах перевода.

Подсказка

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

Примечание

Фильтр качества перевода определяет, какие состояния перевода сохраняются в файле.

Прямой перевод

Наиболее распространённая настройка для небольших команд, где любой может переводить напрямую. Это также настройка по умолчанию в Weblate.

  • Любой пользователь может редактировать переводы.

  • Предложения являются необязательным способом предложения изменений, когда переводчики не уверены в этом изменении.

Параметр

Значение

Примечание

Включить рецензии

откл.

Настраивается на уровне проекта.

Включить предложения

вкл

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

Голосование по предложению

откл.

Автоматически принимать предложения

0

Группа переводчиков

Пользователи

Или Перевод, если включено per-project access control.

Группа рецензентов

Ничего

Не используется.

Коллегиальное рецензирование

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

  • Любой пользователь может добавлять предложения.

  • Любой пользователь может голосовать за предложения.

  • Предложения становятся переводами, когда они получают заранее определённое количество голосов.

Параметр

Значение

Примечание

Включить рецензии

откл.

Настраивается на уровне проекта.

Включить предложения

вкл

Голосование по предложению

вкл

Автоматически принимать предложения

2

Вы можете установить более высокое значение, чтобы потребовать большее количество экспертных оценок.

Группа переводчиков

Пользователи

Или Перевод, если включено per-project access control.

Группа рецензентов

Ничего

Не используется, рецензентами являются все переводчики.

Выделенные рецензенты

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

  • Любой пользователь может редактировать не одобренные переводы.

  • Рецензент может одобрять строки или снимать с них одобрение.

  • Рецензент может редактировать все переводы (включая одобренные).

  • Также для внесения предложений на изменение одобренных строк могут использовать предложения.

Параметр

Значение

Примечание

Включить рецензии

вкл

Настраивается на уровне проекта.

Включить предложения

вкл

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

Голосование по предложению

откл.

Автоматически принимать предложения

0

Группа переводчиков

Пользователи

Или Перевод, если включено per-project access control.

Группа рецензентов

Рецензенты

Или Рецензировать, если включено per-project access control.

Включение рецензирования

Проверки можно включить в конфигурации проекта, на подстранице Workflow настроек проекта (находится в меню Управление → Настройки):

_images/project-workflow.webp

Рецензирование по языкам

Чтобы требовать рецензирование только для выбранных языков, сначала включите Включить рецензии для всего проекта. Затем откройте каждую страницу языка проекта, которая должна использовать другое поведение, включите Настроить рабочий процесс перевода для этого языка в этом проекте и отключите Включить рецензирование для языков, которые не должны требовать рецензирования.

Рецензентам также нужен доступ к рецензированию для того же языка. Добавьте их в команду, роли которой включают Рецензирование строк, и ограничьте эту команду или членство пользователя языком, который они должны рецензировать. Настройку доступа с областью действия языка см. в Управление контролем доступа для каждого проекта и Контроль доступа на всём сайте.

Если кнопки утверждения не видны, проверьте обе части настройки: рецензирование должно быть включено для этого перевода, и вошедший в систему пользователь должен иметь разрешение на рецензирование для этого языка.

Рабочие процессы машинного перевода и LLM

Службы машинного перевода, включая службы больших языковых моделей (LLM), могут помогать переводчикам-людям или генерировать переводы для их редактирования или утверждения. Выберите рабочий процесс исходя из того, когда люди должны проверить сгенерированный текст и когда он должен попасть в репозиторий.

Сначала настройте службы в разделе Автоматические предложения в настройках проекта или администрировании сайта; см. Автоматические советы. Для служб LLM см. Контекст перевода LLM о контексте и инструкциях, используемых для руководства переводом.

Для массовой обработки строк запустите Автоматический перевод, выберите Машинный перевод в качестве источника и выберите используемые службы. Для постоянной автоматизации настройте дополнение Автоматический перевод на компоненте с тем же источником и желаемым режимом. Используйте запрос state:empty для заполнения пустых переводов без замены существующей человеческой работы; см. Поиск строк.

Перевод человеком с помощью служб

Используйте этот рабочий процесс, когда переводчики должны сами выбирать, когда использовать машинный перевод для каждой строки.

Переводчики обращаются к вкладке Автоматические советы в редакторе, выбирают результат службы, при необходимости редактируют его и сохраняют перевод. Эти результаты служб отличаются от сохранённых предложений, ожидающих принятия: человек решает, что сохранить. Этот рабочий процесс не требует дополнения автоматического перевода и может сочетаться с Выделенные рецензенты.

Перевод службой с редактированием человеком

Используйте этот рабочий процесс для автоматического заполнения переводов и предоставления людям возможности улучшать их напрямую.

  • Выберите Добавить как перевод в качестве режима автоматического перевода.

  • Отключите Включить рецензии и разрешите переводчикам редактировать напрямую, как в рабочем процессе прямого перевода.

  • Установите Фильтр качества перевода в Коммитить все переводы независимо от качества.

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

Для машинных черновиков, которые должны оставаться видимо незавершёнными, вместо этого выберите Добавить как «Требующий редактирования». Люди редактируют эти черновики и снимают состояние Требует редактирования по завершении. Чтобы незавершённые черновики не попадали в коммиты репозитория, установите Фильтр качества перевода в Пропускать переводы, помеченные как требующие редактирования.

Предложения службы с принятием человеком

Используйте этот рабочий процесс, когда люди должны проверить вывод службы, прежде чем он станет переводом.

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

Перевод службой с проверкой и контролем качества

Используйте этот рабочий процесс, когда люди должны редактировать машинные переводы в Weblate, но в репозиторий должны попадать только переводы, утверждённые рецензентом.

Сгенерированные переводы отображаются как Ожидает проверки. Переводчики могут редактировать их, а рецензенты проверяют и утверждают готовые переводы. Только после утверждения эти переводы становятся доступными для коммитов в репозиторий. Переводчики могут предлагать дальнейшие изменения к утверждённым строкам, а рецензенты могут редактировать их напрямую.

Включение только проверок не удерживает неутверждённые переводы от коммитов. Фильтр качества перевода обеспечивает этот контроль. Держите проверки включёнными для каждого языка, который должен следовать этому рабочему процессу; проверьте любые переопределения настройки рабочего процесса.

Оценка качества с помощью ИИ

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

Настройте службу LLM в разделе Автоматические предложения, затем установите Оценка качества ИИ и выберите Службу оценки. Выберите запрос, чтобы ограничить оцениваемые переводы. Запустите дополнение вручную, выберите Частоту оценки или включите оценку после изменений перевода или обновлений репозитория. Установка не запускает оценку. См. документацию дополнения о расходах поставщика и данных, отправляемых в службу.

Переводчики и рецензенты могут просмотреть замечания в редакторе или найти проверки, такие как check:ai_accuracy. Исправьте перевод или при необходимости проигнорируйте замечание. Сочетайте это с Выделенные рецензенты, когда требуется одобрение человеком; оценка ИИ не заменяет одобрение и не изменяет фильтр качества перевода, используемый для коммитов в репозиторий.

Диагностика компонента рекомендует дополнение, когда настроена служба LLM. Если выбранная служба становится недоступной, диагностика ошибки ссылается сопровождающих на конфигурацию установленного дополнения.

Повторное использование существующих переводов

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

Запустите Автоматический перевод с Другие компоненты перевода в качестве источника или выберите службу Память переводов в разделе Машинный перевод. Выберите, становятся ли совпадения переводами, черновиками, требующими редактирования, или предложениями, используя описанные выше режимы. Используйте state:empty для сохранения существующих переводов. Дополнение Автоматический перевод может применять это повторное использование автоматически по мере поступления строк.

Для постоянной согласованности Распространение перевода может копировать изменения в совпадающие строки в компонентах одного проекта. Распространение происходит во время перевода; оно не копирует переводы, просто загруженные из репозитория. См. Поддержание единого перевода в разных компонентах о его требованиях и проверках, помогающих людям разрешать различия.

Контроль качества исходных строк

Исходные строки на языке оригинала обычно поступают от разработчиков, поскольку они пишут код и предоставляют начальные строки. Однако разработчики часто не являются носителями исходного языка и не обеспечивают желаемого качества исходных строк. Промежуточный перевод может помочь вам решить эту проблему — существует дополнительный шлюз качества для строк между разработчиками и переводчиками.

Установив Файл промежуточного языка, этот файл используется для перевода строк на исходный язык переводчиками/редакторами, в то время как он принадлежит разработчикам (часто с использованием произвольных языков, таких как en_devel). После завершения этого этапа строки становятся доступны для перевода на целевые языки, основываясь на теперь уже обработанном исходном языке, хранящемся в Одноязычный базовый файл.

digraph translations { graph [fontname = "sans-serif", fontsize=10]; node [fontname = "sans-serif", fontsize=10, margin=0.1, height=0, style=filled, fillcolor=white, shape=note]; edge [fontname = "sans-serif", fontsize=10]; subgraph cluster_dev { style=filled; color=lightgrey; label = "Development process"; "Developers" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Developers" -> "Intermediate file"; } subgraph cluster_l10n { style=filled; color=lightgrey; label = "Localization process"; "Translators" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Editors" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Editors" -> "Monolingual base language file"; "Translators" -> "Translation language file"; } "Intermediate file" -> "Monolingual base language file" [constraint=false]; "Monolingual base language file" -> "Translation language file" [constraint=false]; }

Консолидация строк с использованием вторичного языка

Когда Файл промежуточного языка нельзя использовать для объединения строк, вы можете выбрать один из переводов в качестве второго языка. Язык можно настроить в проекте (Вторичный язык) или в компоненте (Вторичный язык). Затем он отображается переводчикам во время перевода (см. Вспомогательные языки) и может опционально использоваться как источник для машинного перевода (см. Исходные строки для машинного перевода).

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

Рецензирование исходных строк

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

Для одноязычных форматов проверка исходных строк работает аналогично Выделенные рецензенты — после того, как сообщается о проблеме с исходной строкой, она помечается как Needs editing.

Двуязычные форматы не позволяют напрямую редактировать исходные строки (они, как правило, извлекаются непосредственно из исходного кода). В этом случае к строкам, передаваемым переводчиками, прикрепляется метка «Исходная строка требует рецензии». Вы должны просмотреть такие строки и либо отредактировать их в исходном коде, либо удалить эту метку.