용어집을 사용하면 로컬라이제이션 엔진이 특정 용어를 정확하게 제어할 수 있습니다. 정확한 번역을 강제할 수도 있고, 번역 자체를 완전히 막을 수도 있습니다. 용어집의 용어는 모델 자체의 판단보다 우선하므로, 엔진은 이를 모든 요청에 일관되게 적용합니다.
용어집은 조직 소유 리소스입니다. 즉, 용어를 담는 이름 있는 컨테이너이며, 연결해서 로컬라이제이션 엔진에 적용합니다. 하나의 용어집으로 필요한 모든 엔진을 관리할 수 있고, 하나의 엔진에는 여러 용어집을 적용할 수 있습니다.
작동 방식#
| 객체 | 필드 |
|---|---|
| 용어집 | 이름, 설명, 포함하는 소스 로캘. 원하는 만큼의 용어를 담을 수 있습니다. |
| 용어 | 소스 로캘, 대상 로캘, 소스 텍스트, 대상 텍스트, 유형, 힌트. |
엔진이 번역 요청을 처리할 때는 연결된 모든 용어집에서 의미 기반 검색으로 관련 용어를 가져옵니다. 정확히 같은 문자열이 아니라, 입력 텍스트의 의미를 저장된 소스 용어와 매칭합니다.
| 필드 | 설명 |
|---|---|
| 소스 로캘 | 소스 텍스트의 로캘 또는 모든 소스에 대한 * |
| 대상 로캘 | 대상 텍스트의 로캘 또는 모든 대상에 대한 * |
| 소스 텍스트 | 소스 언어의 용어 |
| 대상 텍스트 | 반드시 사용해야 하는 번역어(또는 번역 금지 항목의 경우 동일한 용어) |
| 유형 | custom_translation 또는 non_translatable |
| 힌트 | 용어의 의미를 구분하기 위한 선택적 문맥 정보(예: "명사, 제품 기능") |
용어집은 조직 소유입니다#
| 작업 | 효과 |
|---|---|
| 용어집 생성 | 조직 단위에 생성되며, 연결되기 전까지는 어디에도 적용되지 않습니다 |
| 엔진에 연결 | 해당 엔진의 번역에서 이 용어집의 모든 용어를 검색해 사용할 수 있습니다 |
| 여러 엔진에 연결 | 같은 용어가 모두에 적용됩니다. 한 번만 수정하면 모든 엔진에 반영됩니다 |
| 하나의 엔진에 여러 용어집 연결 | 각 용어집의 용어가 하나의 검색 풀로 합쳐집니다 |
| 엔진에서 연결 해제 | 엔진이 더 이상 이를 적용하지 않습니다. 용어집과 그 안의 용어는 그대로 유지됩니다. |
| 용어집 삭제 | 아직 적용 중인 엔진이 하나라도 있으면 삭제가 거부됩니다. 먼저 연결을 해제하세요. 삭제하면 그 안의 용어도 함께 삭제됩니다. |
| 엔진 삭제 | 용어집과 용어는 그대로 유지됩니다. 이들은 엔진이 아니라 조직에 속합니다. |
연결 순서에는 의미가 없습니다. 연결된 두 용어집이 같은 로캘 쌍에 대해 같은 소스 텍스트를 정의하면 어느 쪽이 적용될지 보장되지 않습니다. 하나의 용어는 한 곳에서만 관리하세요.
용어집은 조직 사이드바의 Glossaries에서 관리할 수 있습니다. 엔진의 Glossary 탭에서는 현재 적용 중인 용어를 확인하고, 용어집을 연결하거나 해제할 수 있습니다.
소스 로캘#
용어집은 어떤 소스 로캘을 다루는지 선언합니다. 소스 로캘이 여기에 포함되지 않은 custom_translation는 저장 시 거부됩니다. 이 검사는 대시보드, API, 적용된 engine suggestion, provisioning을 포함한 모든 경로에서 수행됩니다. 판정에는 읽기 시점과 동일한 유연한 로캘 매칭이 사용되므로, en를 포함하는 용어집은 en-US 용어를 허용합니다.
소스 로캘을 비워 두면 용어집은 모든 소스 로캘을 허용합니다.
번역 제외 항목은 예외입니다. 연결할 소스 언어 번역이 없기 때문입니다. 또한 어떤 대상 로캘을 보내더라도 와일드카드 대상 로캘 기준으로 한 번만 저장됩니다. 모든 언어에서 용어가 보호되므로, 로캘별 복사본은 중복일 뿐입니다.
용어집 유형#
사용자 지정 번역#
용어에 특정 번역을 강제합니다. 엔진은 항상 모델의 번역 대신 사용자가 지정한 번역을 사용합니다.
| 소스 텍스트 | 대상 텍스트 | 소스 로캘 | 대상 로캘 |
|---|---|---|---|
| Deploy | Bereitstellen | en | de |
| 911 | 112 | en | de |
| workspace | espace de travail | en | fr |
다음과 같은 경우 사용자 지정 번역을 사용하세요:
- 이미 정해진 번역이 있는 제품 용어
- 문화적 현지화가 필요한 항목(긴급 전화번호, 측정 단위)
- 모델이 계속 잘못된 동의어를 고르는 용어
번역 금지 항목#
용어가 번역되지 않도록 합니다. 엔진은 모든 대상 로캘에서 소스 텍스트를 그대로 유지합니다.
| 소스 텍스트 | 대상 텍스트 | 유형 |
|---|---|---|
| Lingo.dev | Lingo.dev | non_translatable |
| OAuth | OAuth | non_translatable |
| GraphQL | GraphQL | non_translatable |
다음과 같은 경우 번역 금지 항목을 사용하세요:
- 브랜드명과 제품명
- 기술 프로토콜과 표준
- 소스 언어로 유지해야 하는 고유명사
의미 기반 매칭#
용어집의 용어는 정확한 문자열 비교가 아니라 의미를 기준으로 매칭됩니다. 엔진이 번역 요청을 받으면 입력 텍스트의 임베딩을 생성하고, 의미적으로 유사한 소스 텍스트를 가진 용어를 찾습니다.
즉, "Deploy"에 대한 용어 하나만으로도 "Deploying", "deployment", "deploy your application"까지 매칭할 수 있어, 각 변형마다 항목을 따로 만들 필요가 없습니다.
힌트 필드
여러 의미를 가진 용어를 구분하려면 힌트 필드를 사용하세요. 예를 들어, 힌트가 "financial institution"인 "bank" 용어는 입력 텍스트의 "river bank"와는 매칭되지 않습니다.
와일드카드 로캘#
소스 또는 대상 로캘을 *로 설정하면 모든 로캘 쌍에 걸쳐 해당 용어가 적용됩니다.
일반적인 패턴:
| 소스 텍스트 | 소스 로캘 | 대상 로캘 | 사용 사례 |
|---|---|---|---|
| Lingo.dev | * | * | 어떤 언어에서도 브랜드명을 번역하지 않음 |
| API | en | * | 모든 대상 로캘에서 "API"를 번역하지 않고 유지 |
| Deploy | en | de | 이 영어 용어에 대해 특정 독일어 번역을 사용 |
와일드카드 용어와 로캘별 용어는 함께 적용되며, 서로를 덮어쓰지 않습니다.
로캘 매칭#
용어집의 용어는 정확히 일치하는 로캘 코드뿐 아니라 지역 변형 전반에서도 매칭됩니다. de 용어는 de-DE에 적용되고, de-DE 용어는 기본 de 요청에 적용됩니다. de-DE와 de-AT 같은 형제 로캘은 절대 용어를 공유하지 않습니다. 여러 항목이 매칭되면 CLDR 기본 지역이 우선합니다. 같은 규칙이 브랜드 보이스, 규칙, 모델 구성에도 적용됩니다. 사용자 지정 번역의 스크립트 안전 규칙을 포함한 전체 동작은 Locale Resolution에서 확인하세요.
용어집 vs. 규칙 vs. 브랜드 보이스#
각 항목은 엔진 구성에서 서로 다른 역할을 합니다:
| 용어집 | 규칙 | 브랜드 보이스 | |
|---|---|---|---|
| 제어 대상 | 개별 용어 | 언어 규칙 | 전반적인 톤과 스타일 |
| 세분화 수준 | 용어별 | 규칙별 | 로캘별 텍스트 |
| 매칭 | 의미 기반 | 매칭되는 모든 규칙 포함 | 가장 잘 매칭되는 단일 텍스트 |
| 우선순위 | 가장 높음 - 모델의 판단을 덮어씀 | 중간 - 모델을 가이드함 | 가장 낮음 - 문맥을 설정함 |
| 예시 | "Deploy" → "Bereitstellen" | "Straße를 Str.로 축약" | "비격식체 du와 기술적인 톤 사용" |
세 가지 모두 엔진이 연결해서 적용하는 조직 소유 컨테이너입니다. 용어집은 용어를 담고, rulesets은 규칙을 담고, 브랜드 보이스는 로캘마다 하나의 텍스트를 담습니다.
규칙 우선순위
용어집의 용어는 엔진 계층 구조에서 가장 높은 우선순위를 가집니다. 용어집 용어가 규칙과 충돌하면 용어집이 우선합니다. 규칙은 용어집을 보완하도록 설계하고, 중복해서 만들지 마세요.
API에서 용어집 사용하기#
localize endpoint를 호출하면 용어집의 용어가 자동으로 적용됩니다. 엔진은 적용 중인 용어집에서 소스 및 대상 로캘 쌍에 의미적으로 관련 있는 용어를 검색해 프롬프트에 포함합니다. 추가 파라미터는 필요하지 않습니다.
| 호출 | 목적 |
|---|---|
POST /glossaries | 조직용 용어집 생성 |
GET /organizations/:id/glossaries | 조직의 용어집 목록을 용어 수와 엔진 수와 함께 표시 |
GET /glossaries/:id/glossary-items | 용어집의 용어를 소스 텍스트별로 그룹화해 나열 |
POST /glossary-items with glossaryId | 용어집에 용어 추가 |
PUT /engines/:id/glossaries | 엔진이 적용하는 용어집 집합 교체 |
DELETE /engines/:id/glossaries/:glossaryId | 엔진에서 특정 용어집 적용 중지 |
GET /engines/:id/glossary-items | 엔진이 현재 적용 중인 모든 용어 나열 |
ownerEngineId에서 POST /glossary-items를 사용하는 방식도 여전히 동작하지만, 엔진의 기본 용어집에 기록됩니다. 가능하면 glossaryId를 사용하세요.
액세스#
org:glossary:read 및 org:glossary:edit는 용어집과 그 안의 용어를 관리하며, 이를 엔진에 연결하려면 해당 엔진에 대한 engine:edit 권한도 필요합니다. 용어집별 권한 부여를 사용하면 조직의 모든 용어집이 아니라 특정 용어집 하나에 대해서만 읽기 및 편집 권한을 줄 수 있습니다. 자세한 내용은 Roles & Permissions를 참고하세요.
MCP로 용어집 관리하기#
Lingo.dev MCP server를 사용하면 AI 코딩 어시스턴트가 용어집과 그 안의 용어를 직접 관리할 수 있습니다:
"Create a glossary called Product terms covering English, and
apply it to the web engine.""Add a term: translate 'workspace' to 'espace de travail'
for English to French.""Mark 'GraphQL' as non-translatable for all locales."