ルール

Max PrilutskiyCEO 兼 共同創業者Updated 先月 · 2 min read

ルールとは、ローカライゼーションエンジンが対象ロケールに適用する、名前付きの言語ルールを1つ指します。たとえば「住所では Straße を Str. と略す」であって、「もっとカジュアルにする」のような曖昧な指示ではありません。ルールは rulesets で管理されます。これは組織所有のコンテナで、エンジンにアタッチして適用します。つまり、1つのルールセットで、必要なすべてのエンジンを一貫して制御できます。

以前は instructions と呼ばれていました

ダッシュボードでは現在、これらをルールと呼び、ルールセットとしてまとめています。REST API では、個別のルールは引き続き /instructions で公開されており、フィールド名も変わっていません。変わったのは、ルールを記述する場所です。rulesetIdownerEngineId に置き換わりました。

仕組み#

ルールセットはエンジンではなく、組織に属します。エンジンに紐づけることで、そのルールが適用されます。ルールがエンジン側にコピーされることはありません。

オブジェクトフィールド
ルールセット名前、説明。ルールは好きなだけ保持できます。
ルール名前、対象ロケール(または *)、テキスト。

翻訳リクエストが届くと、エンジンは紐づけられているすべてのルールセットから、リクエストの targetLocale に一致する対象ロケールを持つルールをすべて集め、ブランドボイスや用語集とあわせて LLM プロンプトに含めます。ルール同士が競合することはありません。一致したルールはすべて含まれ、ロケールの一致度が高い順に並ぶため、より適切なガイダンスが先に効きます。

フィールド説明
名前ルールを識別するための短いラベル(例: 「ドイツ語の敬称表現」)
対象ロケールこのルールを適用するロケール、または全ロケールに適用する *
テキスト自然言語で記述する言語ルール

1つのロケールに複数のルールを設定可能

1つのロケールに必要なだけルールを作成できます。各ルールは1つの論点だけを扱うようにしてください。そうすることで、個別にテストでき、rules AI評価 でスコア化しやすくなり、安心して削除できます。

ルールセットは組織所有です#

操作効果
ルールセットを作成する組織レベルに作成され、紐づけるまでは何にも適用されません
エンジンに紐づけるその中のすべてのルールが、そのエンジンの翻訳に適用されます
複数のエンジンに紐づける同じルールがすべてのエンジンに適用されます。1回編集すれば、すべてのエンジンに反映されます
1つのエンジンに複数のルールセットを紐づけるそれぞれのルールがまとめて適用されます
エンジンから紐づけを外すそのエンジンでは適用されなくなります。ルールセットとそのルール自体は保持されます。
ルールセットを削除するまだ適用中のエンジンがある間は削除できません。先に紐づけを外してください。削除すると、そのルールも一緒に削除されます。
エンジンを削除するルールセットとルールは残ります。これらはエンジンではなく組織に属しているためです。

ルールセットは、組織サイドバーの Rules から管理できます。エンジンの Rules タブでは、そのエンジンに現在適用されている内容を確認でき、ルールセットの紐づけや解除も行えます。

あらかじめ用意されたルール#

Lingo.dev では、すぐに使えるルールのカタログを厳選して提供しています。多くの Team にとって必要でありながら、意外と明文化されていないロケールごとの慣習をまとめたものです。エンジンの Rules タブから Predefined Rules を開き、使いたいものを選んでください。これらは ruleset を介さず、エンジンに直接アタッチされ、必要に応じていつでもデタッチできます。

厳選されたルールは、あなた自身のルールより前にプロンプトへ配置されます。そのため、自分で書いたルールはベースラインとぶつかるのではなく、それを補足したり上書きしたりできます。

ルールとブランドボイスの違い#

どちらも翻訳結果を左右しますが、役割のレベルが異なります。

ブランドボイスルール
範囲全体のトーン、スタイル、丁寧さ特定の1つの言語ルール
ロケールごとロケールごとに1つのテキスト、各エンジンでロケールごとに1つのボイス1つのロケールに複数のルール
適用最も一致度の高い1つのテキスト一致するすべてのルールを組み合わせる
ワイルドカードはい(* はデフォルトのボイスとして機能します)はい(* はすべてのロケールに適用されます)
「くだけた du を使い、技術的なトーンにする」「住所では常に Straße を Str. に省略する」

ブランドボイスを使う と、その言語でプロダクトがどう話すかを定義できます。たとえば、丁寧さ、レジスター、文体などです。

ルールを使う と、略語、句読点、単位表記、ロケール固有の文法パターンなど、モデルが見落としがちな具体的な慣習をルール化できます。

両者は一緒に機能します。ブランドボイスが全体の話し方を決め、ルールが細かなケースを補います。

効果的なルールの書き方#

各ルールは、1つの明確で曖昧さのない記述にしてください。エンジンはその全文を LLM プロンプトに含めるため、わかりやすさが重要です。

良いルール#

text
Always use the Oxford comma in English lists.
text
In Japanese, use full-width parentheses ()instead of half-width ().
text
For German addresses, abbreviate "Straße" to "Str." and
"Nummer" to "Nr."
text
When translating percentage values for French, add a
non-breaking space before the percent sign: 42 %.

避けたいこと#

  • ブランドボイスと重なる曖昧なガイダンス(「もっとカジュアルにする」など) - その場合は代わりにブランドボイスへ書いてください
  • 関連のない慣習を1つのルールにまとめないでください。個別にテストできるよう、それぞれ別のルールに分けましょう
  • 用語集と矛盾するルール - エンジンの階層では用語集の用語が優先されます

ワイルドカードロケール#

対象ロケールを * に設定すると、すべてのロケールにルールを適用できます。言語に依存しない慣習に便利です。

text
Never translate product feature names: "Smart Compose",
"Quick Actions", "Flow Builder".
text
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エンジンへの1つのルールセットの適用を停止する
GET /engines/:id/instructionsエンジンが現在適用しているすべてのルールを一覧表示する

ownerEngineIdPOST /instructions も引き続き利用できます。これはエンジン専用のルールセットに書き込み、エンジンにルールセットがなければ新しく作成します。基本的には rulesetId の利用をおすすめします。

アクセス#

org:ruleset:readorg:ruleset:edit はルールセットとその中のルールを管理する権限です。さらに、エンジンに紐づけるには、そのエンジンに対する engine:edit も必要です。ルールセット単位の権限付与を使えば、組織内のすべてのルールセットではなく、特定の1つのルールセットに対して読み取りと編集を許可できます。詳しくは Roles & Permissions を参照してください。

MCP 経由でルールを管理する#

Lingo.dev MCP server を使っている場合、AI コーディングアシスタントからルールやルールセットを直接作成、更新、削除できます。

text
"Create a ruleset called German conventions and apply it to
the marketing engine."
text
"Add a rule to that ruleset: always abbreviate Straße to Str.
in addresses."
text
"Add a wildcard rule: never translate the term Smart Compose."

次のステップ#