规则是本地化引擎应用到目标语言区域设置上的一条具名语言指令——比如“在地址中将 Straße 缩写为 Str.”,而不是“语气更随意一点”。规则存放在规则集中:它是由组织拥有、通过挂载供引擎使用的容器,因此同一套规则可以统一管理所有需要它的引擎。
Rules 之前叫 instructions
在控制台中,它们现在叫 rules,并归类到 rulesets 中。REST API 仍通过 /instructions 暴露单条规则,字段名也保持不变——变化的是规则的编写位置:rulesetId 取代了 ownerEngineId。
工作方式#
规则集属于你的组织,而不属于某个引擎。只有把它挂载到引擎上,其中的规则才会生效——不会有任何内容被复制到引擎里。
| 对象 | 字段 |
|---|---|
| 规则集 | 名称、描述。可包含任意数量的规则。 |
| 规则 | 名称、目标语言区域设置(或 *)、文本。 |
当翻译请求到达时,引擎会从所有已挂载的规则集中,收集目标语言区域设置与请求的 targetLocale 相匹配的规则,并将它们与品牌语调和术语表一同放入 LLM 提示词中。规则之间不会互相竞争:所有匹配规则都会被纳入,并按“区域设置匹配度从高到低”排序,让最精确的指引优先生效。
| 字段 | 说明 |
|---|---|
| 名称 | 用于标识规则的简短标签(例如“德语正式称呼”) |
| 目标语言区域设置 | 这条规则适用的语言区域设置,或 * 表示适用于所有区域设置 |
| 文本 | 用自然语言写成的语言规则 |
每个区域设置都可以有多条规则
一个区域设置需要多少条规则,就建多少条。每条规则都应只解决一个问题——这样它才能被 rules AI review 单独测试、评分,也能放心删除。
规则集归组织所有#
| 操作 | 效果 |
|---|---|
| 创建规则集 | 它存在于组织层级,在挂载前不会应用到任何地方 |
| 将其挂载到引擎 | 其中的每条规则都会应用到该引擎的翻译中 |
| 将其挂载到多个引擎 | 同一套规则会统一管理所有这些引擎——改一次,所有引擎都会同步遵循 |
| 将多个规则集挂载到一个引擎 | 其中所有规则都会合并生效 |
| 将其从引擎卸载 | 引擎将停止应用它。规则集及其规则会被保留。 |
| 删除规则集 | 只要仍有引擎在应用它,就无法删除——请先卸载。删除后,其中的规则也会一并删除。 |
| 删除引擎 | 规则集和规则都会保留下来。它们属于组织,而不是引擎。 |
你可以在组织侧边栏的 Rules 下管理规则集。引擎中的 Rules 标签页会列出该引擎当前应用的内容,并支持挂载或卸载规则集。
预定义说明#
Lingo.dev 精心整理了一套现成规则目录——涵盖大多数团队都需要、却很少会主动写下来的区域设置约定。在引擎的 Rules 标签页中打开 Predefined Instructions,选中你需要的规则即可。它们会直接挂载到引擎,而不是通过规则集;你也可以随时将其卸载。
这些精选规则会在提示词中排在你自定义的规则之前,因此你写的规则会在基础规则之上做细化或覆盖,而不是彼此打架。
规则 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 使用规则#
调用 localize endpoint 时,规则会自动生效。引擎会从它所应用的规则集中,收集所有与请求的 targetLocale 匹配的规则(以及任何 * 规则)。无需额外参数。
| 调用 | 用途 |
|---|---|
POST /rulesets | 为组织创建规则集 |
GET /organizations/:id/rulesets | 列出组织的规则集,并显示规则数和引擎数 |
GET /rulesets/:id/rules | 列出某个规则集中的规则 |
POST /instructions with 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 权限。按规则集授予权限后,某人可以只对单个规则集拥有读取和编辑权限,而不是拿到组织内所有规则集的权限。详见 Roles & Permissions。
通过 MCP 管理规则#
如果你在使用 Lingo.dev MCP server,你的 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."