언어 추가하기
Lingo.dev CLI를 사용하면 i18n.json
구성에 대상 로케일을 추가하고 단일 명령어를 실행하여 프로젝트를 새로운 언어로 쉽게 확장할 수 있습니다.
새 언어를 추가하면 CLI는 기존 번역을 모두 보존하고 동일한 콘텐츠 지문 시스템을 유지하면서 새 로케일에 대한 완전한 번역 파일을 생성합니다.
첫 번째 새 언어 추가하기
새 언어를 추가하려면 i18n.json
구성의 targets
배열을 업데이트하세요:
원본 구성:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
독일어가 추가된 업데이트된 구성:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
npx lingo.dev@latest i18n
을 실행하면 새로운 독일어 번역 파일이 생성됩니다:
locales/
en.json (소스 - 변경 없음)
es.json (기존 - 변경 없음)
fr.json (기존 - 변경 없음)
de.json (새로 생성 - 완전히 번역됨)
새 언어 생성 작동 방식
Lingo.dev CLI는 새 언어와 기존 언어를 다르게 처리합니다:
- 기존 언어 — 누락된 번역만 생성됩니다
- 새 언어 — 완전한 번역 파일이 처음부터 생성됩니다
부분적으로 기존 번역이 있는 예시:
// locales/en.json (소스)
{
"welcome": "Welcome",
"button.save": "Save",
"error.network": "Network error"
}
// locales/es.json (누락된 번역이 있는 기존 파일)
{
"welcome": "Bienvenido"
}
독일어를 추가하고 CLI를 실행한 후:
// locales/es.json (빈 부분이 채워짐)
{
"welcome": "Bienvenido",
"button.save": "Guardar",
"error.network": "Error de red"
}
// locales/de.json (완전히 새로운 파일)
{
"welcome": "Willkommen",
"button.save": "Speichern",
"error.network": "Netzwerkfehler"
}
다중 언어 추가하기
여러 언어를 동시에 추가할 수 있습니다:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja", "zh"]
}
}
CLI는 모든 새로운 언어를 처리하여 각 새 로케일에 대한 완전한 번역 파일을 생성합니다.
지역별 변형
Lingo.dev CLI는 BCP 47 언어 태그를 사용하여 지역별 언어 변형을 지원합니다:
{
"locale": {
"source": "en-US",
"targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
}
}
이는 각 지역별 변형에 대해 용어, 철자 및 문화적 맥락의 차이를 고려한 고유한 번역 파일을 생성합니다.
파일 구조 영향
CLI는 버킷 패턴에 따라 새 파일을 생성합니다. 다양한 파일 형식의 경우:
JSON 버킷:
locales/[locale].json → locales/de.json, locales/ja.json
마크다운 버킷:
content/[locale]/*.md → content/de/*.md, content/ja/*.md
중첩 구조:
app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json
특정 언어 추가
특정 새 언어에 대한 번역을 생성하려면 --locale
플래그를 사용하세요:
npx lingo.dev@latest i18n --locale de
이는 독일어 번역만 생성하고, 다른 새 언어는 나중에 처리하도록 남겨둡니다.
언어 제거
언어를 제거하려면 targets
배열에서 해당 언어를 제거하기만 하면 됩니다. CLI는 기존 파일을 삭제하지 않지만 해당 로케일 처리를 중단합니다:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
}
}
필요한 경우 해당 번역 파일을 수동으로 삭제할 수 있습니다.