모든 용어집 항목, 브랜드 보이스, 지침, 모델 설정은 각각 특정 로캘에 저장됩니다. 엔진이 번역 요청을 처리할 때는 요청 로캘에 어떤 저장 항목이 적용되는지 결정합니다. 이때 정확한 코드 일치, 지역 변형 간 상속, 정확히 일치하는 항목이 없을 때의 폴백까지 함께 처리합니다. 이 결정 방식은 네 가지 설정 영역 모두에 동일하게 적용됩니다.
작동 방식#
로캘은 입력 시 표준 형식으로 정규화되며, 저장되고 반환될 때도 그 형식을 유지합니다. 대소문자와 구분자는 정리되고, 하위 태그는 그대로 보존됩니다.
| 입력값 | 저장 형식 |
|---|---|
EN | en |
en_US | en-US |
sr_Latn-RS | sr-Latn-RS |
zh-cn | zh-CN |
매칭은 하위 태그 경계를 기준으로 양방향으로 이루어집니다. 저장된 로캘은 서로 정확히 일치하거나, 한쪽이 다른 쪽의 상위 로캘일 때 요청에 적용됩니다.
| 저장된 값 | 적용 대상 | 적용되지 않는 대상 |
|---|---|---|
de | de, de-DE, de-AT, de-CH | - |
de-DE | de-DE, de | de-AT, de-CH (형제 관계) |
역방향 상속
저장된 de-DE가 기본 de 요청에 응답하는 패턴은 실제로 가장 흔합니다. 대부분의 엔진은 전체 지역 코드 기준으로 설정되지만, 들어오는 요청은 기본 코드인 경우가 많기 때문입니다. 두 방향 모두 지원됩니다.
여러 일치 항목이 있을 때의 결정 방식#
적용 가능한 저장 항목이 둘 이상이면, 엔진은 우선순위를 매겨 가장 적합한 항목을 선택합니다.
- 정확히 일치하거나 언어 기본값이 먼저입니다.
de요청의 경우de-DE(독일어의 CLDR 기본 지역)가 우선되고, 그다음은 기본de입니다. - 그다음은 가장 구체적인 항목이며, 동률을 가르는 기준으로 사용됩니다.
- 그 외 일치하는 다른 지역도 폴백으로 유지됩니다. 고객의 유일한 항목이
de-CH뿐이어도 더 적합한 항목이 없으면de요청에 그대로 적용되므로, 설정이 고아 상태로 남지 않습니다.
| 요청 | 우선 선택 | 추가 적용 가능(폴백) | 제외됨 |
|---|---|---|---|
de | de-DE, 그다음 de | de-CH, de-AT | - |
de-DE | de-DE, 그다음 de | - | de-AT, de-CH |
de-AT | de-AT, 그다음 de | - | de-DE, de-CH |
스크립트 안전성#
추가 규칙 하나는 텍스트가 특정 표기 체계에 묶이는 용어집 custom_translation 항목에만 적용됩니다. 스크립트가 모호한 기본 언어인 sr(키릴 또는 라틴), zh(간체 또는 번체)는 저장 시 스크립트(sr-Cyrl, sr-Latn, zh-Hans, zh-Hant)를 반드시 명시해야 합니다. de처럼 단일 스크립트만 사용하는 언어는 스크립트 지정이 필요 없으며, de에서 de-DE으로 일반적인 방식대로 결정됩니다. non_translatable 항목은 스크립트와 관계없이 그대로 통과합니다.
예시#
지역 코드(en-US에서 fr-FR, de-DE, nb-NO) 기준으로 설정된 엔진이 기본 코드 요청(fr, de, no)을 받는 경우:
fr대상은fr-FR용어집, 브랜드 보이스, 지침을 가져옵니다. 이는fr에 대한 최후의 수단이 아니라 기본값으로 우선순위가 매겨지는데,fr-FR가 프랑스어의 CLDR 기본 지역이기 때문입니다.en소스는en-US항목과 매칭됩니다. 매칭은 양방향입니다.no대상은nb-NO를 가져오지 않습니다.no와nb는 지역 쌍이 아니라 서로 다른 언어 하위 태그이므로, 대상에는nb를 사용해야 합니다.
API에서 로캘 결정 방식 활용하기#
localize endpoint를 호출하면 이 결정 과정은 자동으로 이루어집니다. 엔진은 요청의 sourceLocale와 targetLocale를 저장된 용어집, 브랜드 보이스, 지침, 모델 설정과 매칭하므로 추가 매개변수는 필요하지 않습니다.
