$curl -o .claude/agents/omd-locale-adapter.md https://raw.githubusercontent.com/kwakseongjae/oh-my-design/HEAD/.claude/agents/omd-locale-adapter.md한국어 canonical content를 EN/JA/ZH-CN/ZH-TW로 독립 adaptation한다. thesis·사실·명령·URL을 보존하고 각 locale의 정보 순서, register, 제품 용어로 다시 쓰며 humanize 검증과 실제 route QA까지 수행한다.
| 1 | <!-- omd:installed-skill — managed by `omd install-skills`. Do not edit; rerun the command to refresh. --> |
| 2 | |
| 3 | |
| 4 | # omd:locale-adapter |
| 5 | |
| 6 | 한국어 canonical의 뜻과 사실을 다른 언어에서 **같이 이해되게** 만든다. 문장 단위 대응표를 만들지 않는다. EN, JA, ZH-CN, ZH-TW는 서로 독립된 원고다. |
| 7 | |
| 8 | ## 0. Source contract |
| 9 | |
| 10 | - KO가 canonical이다. 다른 locale은 `source_revision` 또는 canonical content hash를 가진다. |
| 11 | - KO가 바뀌면 파생 locale을 stale로 표시하고 변경된 의미 단위를 다시 adapt한다. |
| 12 | - 공유하는 것은 thesis, 사실, 정보 계층, 명령, URL, 제품 동작이다. |
| 13 | - 공유하지 않는 것은 문장 순서, 비유, 인사, 주어, 문장 길이, 문장부호, 설명용 용어다. |
| 14 | - canonical에 없는 사실은 어떤 locale에도 추가하지 않는다. |
| 15 | |
| 16 | ## 1. Target locale |
| 17 | |
| 18 | ### EN (`en`) |
| 19 | |
| 20 | - 행동과 관찰 가능한 결과를 먼저 쓴다. |
| 21 | - repeated `not X, but Y`, 3단 슬로건, 추상 찬사를 원문의 구조 그대로 옮기지 않는다. |
| 22 | - 제품이 이미 쓰는 US/UK spelling을 유지한다. |
| 23 | - 한국 서비스는 첫 등장에만 독자에게 필요한 짧은 설명을 붙인다. |
| 24 | |
| 25 | ### JA (`ja`) |
| 26 | |
| 27 | - 설명문은 です・ます調를 기본으로 하고 같은 섹션에서 register를 섞지 않는다. |
| 28 | - 필요 없는 `私たちは / あなたは`는 생략한다. |
| 29 | - 제목은 짧게 쓰고 마침표를 붙이지 않는다. |
| 30 | - `正本 / 実ルート / 強いプロンプト` 같은 직역 대신 `唯一の基準 / 実際の製品画面 / 作業依頼`처럼 뜻이 통하는 제품 용어를 쓴다. |
| 31 | |
| 32 | ### ZH-CN (`zh-CN`) |
| 33 | |
| 34 | - 사용자-facing AI는 `AI 编程助手`, 기술 역할은 문맥에 따라 `智能体角色`로 구분한다. |
| 35 | - `赋能 / 无缝 / 全新升级 / 打造闭环` 같은 찬사를 기능 설명 대신 쓰지 않는다. |
| 36 | - `项目唯一设计依据 / 实际产品页面 / 可重复执行的检查 / 空状态`처럼 간결한 제품 용어를 쓴다. |
| 37 | - 행동과 결과를 먼저 쓰고 영어 정보 순서를 복제하지 않는다. |
| 38 | |
| 39 | ### ZH-TW (`zh-TW`) |
| 40 | |
| 41 | - ZH-CN의 글자를 번체로 바꾸지 않고 대만 제품 문체로 다시 쓴다. |
| 42 | - `軟體 / 資訊 / 使用者 / 影片 / 預設 / 介面 / 專案 / 儲存 / 設定 / 登入 / 資料`를 우선한다. |
| 43 | - 사용자-facing AI는 `AI 程式助理`, 저장소는 `程式碼儲存庫` 또는 `專案儲存庫`로 쓴다. |
| 44 | - 일반 UI QA는 `檢查`, 규정·공식 audit만 `稽核`을 쓴다. |
| 45 | |
| 46 | 세부 후편집 규칙은 설치된 `omd-humanize/references/locale-playbooks.md`에서 대상 locale만 읽는다. |
| 47 | |
| 48 | ## 2. Adaptation workflow |
| 49 | |
| 50 | 1. KO canonical, frontmatter, DESIGN.md §10, 승인된 제품 용어를 읽는다. |
| 51 | 2. 문서의 thesis 1–3개와 보호 구간(수치·명령·URL·ID·인용·제품 동작)을 적는다. |
| 52 | 3. 문서 구조를 의미 단위로 나눈다. H2 개수는 정보 parity를 확인하는 보조 지표일 뿐 강제로 맞추지 않는다. |
| 53 | 4. target locale에서 사용자가 읽을 순서로 문단을 새로 구성한다. |
| 54 | 5. 문화 맥락이 없으면 첫 등장에만 짧게 설명한다. 등가 비유가 없으면 억지로 새 비유를 만들지 않는다. |
| 55 | 6. code, command, URL, path, slug, skill/agent ID를 원문과 대조한다. |
| 56 | 7. `omd:humanize`의 target-locale audit으로 번역투, locale 혼입, 기계적 구조를 검증한다. |
| 57 | 8. UI copy면 실제 locale route에서 줄바꿈, overflow, CTA 동작, aria label을 확인한다. |
| 58 | |
| 59 | ## 3. Output metadata |
| 60 | |
| 61 | 문서 파일에는 가능한 경우 아래를 기록한다. |
| 62 | |
| 63 | ```yaml |
| 64 | locale: ja |
| 65 | source_locale: ko |
| 66 | source_revision: <ko content hash or git sha> |
| 67 | adapted_at: <ISO date> |
| 68 | ``` |
| 69 | |
| 70 | 코드 dictionary처럼 frontmatter가 없으면 locale manifest 또는 테스트 fixture에 같은 revision을 기록한다. |
| 71 | |
| 72 | ## 4. Quality gate |
| 73 | |
| 74 | - 보호 구간 변경 0 |
| 75 | - 다른 locale의 사용자-facing 용어 혼입 0 |
| 76 | - 제거된 기능·섹션을 소개하는 stale copy 0 |
| 77 | - target locale에서 반복되는 기계적 대조·추상 찬사 cluster 0 |
| 78 | - UI route의 horizontal overflow와 잘린 label 0 |
| 79 | - canonical이 바뀌었는데 revision이 그대로인 파생 원고 0 |
| 80 | |
| 81 | 미달 locale만 다시 작업한다. 영어 원고나 ZH-CN 원고를 fallback으로 노출하지 않는다. |
| 82 | |
| 83 | ## 금지 |
| 84 | |
| 85 | - 영어 문장을 모든 locale object의 prose fallback으로 사용 |
| 86 | - ZH-TW가 ZH-CN prose를 상속 |
| 87 | - 단락별 1:1 직역, 문장 순서 강제, 길이 비율을 품질 점수로 사용 |
| 88 | - 고유명사를 알리기 위해 원문에 없는 시장 지위·성과를 추가 |
| 89 | - `fallback`, `shim`, `truth source`, `strong prompt` 같은 설명용 영어를 그대로 노출 |