Правило — это одна именованная лингвистическая инструкция, которую движок локализации применяет к целевой локали: например, «сокращай Straße до Str. в адресах», но не «будь проще». Правила живут в наборах правил — контейнерах на уровне организации, которые движок подключает к себе. Так один набор может управлять всеми нужными движками.
Правила раньше назывались инструкциями
В дашборде они называются правилами и объединяются в наборы. REST API по-прежнему открывает доступ к отдельному правилу по адресу /instructions с теми же именами полей — изменилось только место, где пишется правило: rulesetId заменил ownerEngineId.
Как это работает#
Набор правил принадлежит организации, а не движку. Правила начинают работать только после подключения набора к движку — ничего не копируется в сам движок.
| Объект | Поля |
|---|---|
| Набор правил | Название, описание. Содержит любое количество правил. |
| Правило | Название, целевая локаль (или *), текст. |
Когда приходит запрос на перевод, движок собирает все правила из подключённых наборов, чья целевая локаль совпадает с локалью запроса targetLocale, и включает их в промпт LLM вместе с тональностью бренда и глоссарием. Правила не конкурируют: включаются все подходящие, отсортированные от наиболее точного совпадения к менее точному.
| Поле | Описание |
|---|---|
| Название | Короткая метка для правила (например, «Официальное обращение на немецком») |
| Целевая локаль | Локаль, к которой применяется правило, или * для всех локалей |
| Текст | Лингвистическое правило, написанное на естественном языке |
Много правил для одной локали
Создавайте столько правил, сколько нужно локали. Каждое должно касаться одного аспекта — так его можно тестировать отдельно, оценивать через AI-оценку правил и безопасно удалять.
Наборы правил принадлежат организации#
| Действие | Результат |
|---|---|
| Создать набор правил | Существует на уровне организации и ни к чему не применяется, пока не подключён |
| Подключить к движку | Все правила набора применяются к переводам этого движка |
| Подключить к нескольким движкам | Одни и те же правила управляют всеми — правь один раз, все движки следуют |
| Подключить несколько наборов к одному движку | Все их правила объединяются |
| Отключить от движка | Движок перестаёт применять набор. Сам набор и его правила сохраняются. |
| Удалить набор правил | Нельзя, пока набор подключён хотя бы к одному движку — сначала отключите. При удалении правила удаляются вместе с набором. |
| Удалить движок | Наборы правил и правила остаются. Они принадлежат организации, а не движку. |
Управляйте наборами в разделе Правила боковой панели организации. Вкладка Правила движка показывает, что он применяет сейчас, и позволяет подключать или отключать наборы.
Предустановленные инструкции#
Lingo.dev ведёт каталог готовых правил — локальные соглашения, которые нужны большинству команд, но мало кто их записывает. Откройте Предустановленные инструкции на вкладке «Правила» движка и выберите нужные. Они подключаются к движку напрямую, минуя набор правил, и отключить их можно в любой момент.
Готовые правила помещаются в промпт раньше ваших собственных, поэтому ваши правила уточняют или переопределяют базу — а не борются с ней.
Правила vs. тональность бренда#
Оба инструмента влияют на перевод, но на разных уровнях:
| Тональность бренда | Правило | |
|---|---|---|
| Охват | Общий тон, стиль, формальность | Одно конкретное лингвистическое правило |
| На локаль | Один текст на локаль, одна тональность на локаль на движок | Много правил на локаль |
| Применение | Один наиболее подходящий текст | Все подходящие правила объединяются |
| Маска | Да (* — тональность по умолчанию) | Да (* применяется ко всем локалям) |
| Пример | «Неформальное du, технический тон» | «Всегда сокращай Straße до Str. в адресах» |
Тональность бренда задаёт, как ваш продукт говорит на том или ином языке: формальность, регистр, структуру предложений.
Правила фиксируют конкретные соглашения, которые модель иначе упустила бы: сокращения, пунктуацию, форматирование единиц измерения или специфические грамматические паттерны локали.
Они работают вместе: тональность бренда задаёт голос, правила берут на себя частные случаи.
Как писать эффективные правила#
Каждое правило — это одна чёткая инструкция без двусмысленностей. Движок включает полный текст в промпт LLM, поэтому ясность формулировки важна.
Хорошие правила#
Always use the Oxford comma in English lists.In Japanese, use full-width parentheses ()instead of half-width ().For German addresses, abbreviate "Straße" to "Str." and
"Nummer" to "Nr."When translating percentage values for French, add a
non-breaking space before the percent sign: 42 %.Чего избегать#
- Размытые рекомендации, которые пересекаются с тональностью бренда («будь проще») — лучше перенесите их в тональность бренда
- Несколько не связанных инструкций в одном правиле — разбейте их, чтобы каждую можно было проверить независимо
- Правила, противоречащие глоссарию, — термины глоссария имеют приоритет в иерархии движка
Маска локали#
Установите целевую локаль *, чтобы применять правило ко всем локалям. Удобно для соглашений, не зависящих от языка:
Never translate product feature names: "Smart Compose",
"Quick Actions", "Flow Builder".Preserve Markdown formatting in all translated strings.
Keep bold (**), italic (*), and link syntax [text](url) intact.Правила для конкретной локали и правила с маской включаются одновременно при обработке запроса — они объединяются, а не заменяют друг друга.
Правила и API#
Правила применяются автоматически при вызове эндпоинта локализации. Движок собирает все правила, соответствующие локали запроса targetLocale (а также правила *), из подключённых наборов. Дополнительные параметры не нужны.
| Вызов | Назначение |
|---|---|
POST /rulesets | Создать набор правил для организации |
GET /organizations/:id/rulesets | Получить список наборов правил организации с количеством правил и движков |
GET /rulesets/:id/rules | Получить список правил в наборе |
POST /instructions с rulesetId | Добавить правило в набор |
PUT /engines/:id/rulesets | Заменить набор наборов правил, применяемых движком |
DELETE /engines/:id/rulesets/:rulesetId | Отключить один набор правил от движка |
GET /engines/:id/instructions | Получить список всех правил, которые движок применяет сейчас |
ownerEngineId на POST /instructions по-прежнему работает — запись идёт в собственный набор правил движка, который создаётся автоматически при необходимости. Рекомендуем использовать rulesetId.
Доступ#
org:ruleset:read и org:ruleset:edit управляют наборами правил и правилами внутри них; подключение набора к движку также требует engine:edit на этот движок. Права на отдельный набор дают доступ на чтение и редактирование только этого набора, а не всех наборов в организации. См. Роли и права доступа.
Управление правилами через MCP#
Если вы используете MCP-сервер Lingo.dev, ваш AI-ассистент для разработки может создавать, обновлять и удалять правила и наборы правил напрямую:
"Create a ruleset called German conventions and apply it to
the marketing engine.""Add a rule to that ruleset: always abbreviate Straße to Str.
in addresses.""Add a wildcard rule: never translate the term Smart Compose."