규칙

Max PrilutskiyCEO 겸 공동창업자6분 소요

규칙은 로컬라이제이션 엔진이 대상 로캘에 적용하는, 이름이 붙은 하나의 언어 규약입니다. 예를 들어 "주소에서는 Straße를 Str.로 축약"처럼 구체적인 규칙이어야 하며, "좀 더 캐주얼하게"처럼 모호한 지침이어서는 안 됩니다. 규칙은 rulesets에 들어 있습니다. ruleset은 조직이 소유하는 컨테이너로, 엔진에 연결해 적용할 수 있으므로 하나의 규칙 세트로 필요한 모든 엔진을 일관되게 관리할 수 있습니다.

Rules는 예전에 instructions였습니다

대시보드에서는 이제 이를 rules라고 부르고 ruleset으로 묶어 보여줍니다. REST API에서는 여전히 개별 rule이 /instructions에 그대로 노출되며, 필드 이름도 바뀌지 않았습니다. 달라진 점은 rule을 작성하는 위치로, 이제 rulesetId가 ownerEngineId를 대체합니다.

작동 방식#

규칙 세트는 엔진이 아니라 조직에 속합니다. 엔진에 연결해야 그 안의 규칙이 적용되며, 엔진 자체에 복사되는 내용은 없습니다.

객체필드
규칙 세트이름, 설명. 원하는 만큼 규칙을 담을 수 있습니다.
규칙이름, 대상 로캘(또는 *), 텍스트.

번역 요청이 들어오면 엔진은 연결된 모든 규칙 세트에서 요청의 targetLocale과 일치하는 대상 로캘을 가진 모든 규칙을 수집해, 브랜드 보이스와 용어집과 함께 LLM 프롬프트에 포함합니다. 규칙은 서로 경쟁하지 않습니다. 일치하는 규칙은 모두 포함되며, 가장 잘 맞는 로캘이 먼저 오도록 정렬되어 가장 구체적인 지침이 앞에 배치됩니다.

필드설명
이름규칙을 식별하는 짧은 라벨(예: "독일어 경칭")
대상 로캘이 규칙이 적용되는 로캘 또는 모든 로캘에 적용하려면 *(대시보드에서는 모든 로캘)
텍스트자연어로 작성한 언어 규칙

로캘마다 여러 규칙 가능

하나의 로캘에 필요한 만큼 규칙을 만들어 보세요. 각 규칙은 하나의 주제만 다뤄야 합니다. 그래야 각각 독립적으로 테스트할 수 있고, rules AI 평가로 점수화할 수 있으며, 필요할 때 안전하게 삭제할 수 있습니다.

규칙 세트는 조직 소유입니다#

작업효과
규칙 세트 만들기조직 수준에 생성되며, 엔진에 연결하기 전까지는 아무 데도 적용되지 않습니다
엔진에 연결그 안의 모든 규칙이 해당 엔진의 번역에 적용됩니다
여러 엔진에 연결같은 규칙이 모두에 적용됩니다. 한 번 수정하면 모든 엔진이 따릅니다
하나의 엔진에 여러 규칙 세트 연결모든 규칙이 함께 적용됩니다
엔진에서 연결 해제엔진은 더 이상 해당 규칙 세트를 적용하지 않습니다. 규칙 세트와 그 안의 규칙은 그대로 유지됩니다.
규칙 세트 삭제아직 이를 적용 중인 엔진이 있으면 삭제할 수 없습니다. 먼저 연결을 해제하세요. 삭제하면 그 안의 규칙도 함께 삭제됩니다.
엔진 삭제규칙 세트와 규칙은 그대로 남습니다. 이들은 엔진이 아니라 조직에 속합니다.

규칙 세트는 인프라 → 규칙 세트에서 관리합니다. 규칙 세트의 규칙 탭에는 해당 규칙 세트의 규칙이 들어 있고, 설정 탭에는 조직의 엔진 목록이 표시되어 여기서 규칙 세트를 엔진에 적용하거나 적용을 해제할 수 있습니다. 반대로 엔진의 설정 탭에는 규칙 세트 섹션이 있어 해당 엔진에 적용 중인 항목을 보여 주며, 규칙 세트 추가로 다른 규칙 세트를 연결할 수 있습니다.

미리 정의된 규칙#

Lingo.dev는 바로 사용할 수 있는 규칙 카탈로그를 엄선해 제공합니다. 대부분의 팀에 필요하지만 막상 문서로 남기지는 않는 로캘별 관례를 모아 둔 것입니다. 이 규칙들은 규칙 세트를 거치지 않고 엔진에 직접 적용되며, 언제든지 적용을 해제할 수 있습니다.

대시보드에는 사전 정의 규칙을 관리하는 화면이 없습니다. 카탈로그를 살펴보고 API 또는 MCP 서버를 통해 항목을 연결하세요:

호출MCP 도구목적
GET /predefined-instructionspredefinedInstructions_list카탈로그 목록 보기
GET /engines/:id/predefined-instructionsengines_listPredefinedInstructions엔진에 적용된 사전 정의 규칙 목록 보기
PUT /engines/:id/predefined-instructionspredefinedInstructions_setForEngine엔진에 적용되는 세트 교체: ids의 전체 목록을 보내면 빠진 항목은 모두 적용 해제됩니다
DELETE /engines/:id/predefined-instructions/:predefinedInstructionIdpredefinedInstructions_detach엔진에서 항목 하나의 적용 중지
GET /predefined-instructions/:id/engines?organizationId=predefinedInstructions_listEngines특정 항목을 적용 중인 조직의 엔진 목록 보기

각 카탈로그 항목에는 대상 로캘, 이름, 설명, type(standard, convention 또는 preference)과 category가 포함됩니다. 같은 groupKey를 공유하는 항목들은 동일한 로캘에 대한 대체안이므로, 엔진에는 그중 하나만 적용할 수 있으며 둘을 함께 선택한 요청은 거부됩니다. 항목을 연결하거나 연결 해제하려면 엔진에 대한 engine:edit 권한이 필요하며, 카탈로그는 로그인한 누구나 읽을 수 있습니다.

큐레이션된 규칙은 사용자가 직접 만든 규칙보다 먼저 프롬프트에 들어갑니다. 그래서 직접 작성한 규칙은 기본 규칙과 충돌하기보다, 그 위에서 기준을 더 구체화하거나 덮어쓸 수 있습니다.

규칙 vs. 브랜드 보이스#

둘 다 번역 결과를 좌우하지만, 관여하는 수준은 다릅니다:

브랜드 보이스규칙
범위전반적인 톤, 스타일, 격식 수준하나의 구체적인 언어 규칙
로캘별로캘마다 하나의 텍스트, 엔진별로 로캘당 하나의 보이스로캘마다 여러 규칙 가능
적용 방식가장 잘 맞는 단일 텍스트 하나일치하는 모든 규칙이 함께 적용됨
와일드카드예(*가 기본 보이스로 작동)예(*가 모든 로캘에 적용됨)
예시"비격식체 du 사용, 기술적인 톤""주소에서는 항상 Straße를 Str.로 줄여 쓴다"

브랜드 보이스는 특정 언어에서 제품이 어떻게 말해야 하는지를 정의할 때 사용하세요. 예를 들면 격식 수준, 어조, 문장 스타일 같은 요소입니다.

규칙은 모델이 놓치기 쉬운 구체적인 관례를 반영할 때 사용하세요. 예를 들면 약어, 문장 부호, 단위 표기, 로캘별 문법 패턴 등이 있습니다.

둘은 함께 작동합니다. 브랜드 보이스가 전체적인 말투를 정하고, 규칙은 세부 예외를 다룹니다.

효과적인 규칙 작성하기#

각 규칙은 하나의 명확하고 모호하지 않은 문장이어야 합니다. 엔진은 이 전체 텍스트를 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 %.

피해야 할 것#

  • 브랜드 보이스와 겹치는 모호한 지침("좀 더 캐주얼하게") — 이런 내용은 대신 브랜드 보이스에 넣으세요
  • 서로 관련 없는 여러 규약을 하나의 규칙에 담지 말고, 각각 독립적으로 테스트할 수 있도록 나누세요
  • 용어집과 충돌하는 규칙 — 엔진의 우선순위 구조에서는 용어집 용어가 우선합니다

와일드카드 로캘#

대상 로캘을 *(대시보드에서는 모든 로캘)로 설정하면 하나의 규칙을 모든 로캘에 공통으로 적용할 수 있습니다. 언어와 무관한 관례에 특히 유용합니다:

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엔진에서 특정 규칙 세트 하나의 적용 중지
GET /engines/:id/instructions규칙 세트를 통해 엔진에 적용되는 모든 규칙 목록 보기(사전 정의 규칙은 별도로 표시됨)

ownerEngineId의 POST /instructions도 여전히 작동합니다. 엔진에 자체 규칙 세트가 없으면 하나를 만든 뒤, 그 엔진의 자체 규칙 세트에 기록합니다. 가능하면 rulesetId 사용을 권장합니다.

액세스#

org:ruleset:read 및 org:ruleset:edit는 규칙 세트와 그 안의 규칙을 제어하며, 규칙 세트를 엔진에 연결하려면 해당 엔진에 대한 engine:edit 권한도 필요합니다. 규칙 세트별 권한을 사용하면 조직의 모든 규칙 세트가 아니라 특정 규칙 세트 하나에만 읽기 및 편집 권한을 부여할 수 있습니다. 이 권한은 대시보드가 아니라 API 또는 MCP를 통해 설정합니다. 자세한 내용은 역할 및 권한을 참고하세요.

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."
text
"List the predefined rules for German and attach the ones
you recommend to the marketing engine."

다음 단계#