언어 추가
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 run를 실행하면 새로운 독일어 번역 파일이 생성됩니다:
locales/
en.json (source - unchanged)
es.json (existing - unchanged)
fr.json (existing - unchanged)
de.json (new - fully translated)
새 언어 생성 작동 방식
Lingo.dev CLI는 새 언어를 기존 언어와 다르게 처리합니다:
- 기존 언어 — 누락된 번역만 생성됩니다
- 새 언어 — 완전한 번역 파일이 처음부터 생성됩니다
부분적으로 존재하는 번역의 예:
// locales/en.json (source)
{
"welcome": "Welcome",
"button.save": "Save",
"error.network": "Network error"
}
// locales/es.json (existing with missing translations)
{
"welcome": "Bienvenido"
}
독일어를 추가하고 CLI를 실행한 후:
// locales/es.json (gaps filled)
{
"welcome": "Bienvenido",
"button.save": "Guardar",
"error.network": "Error de red"
}
// locales/de.json (complete new file)
{
"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
Markdown 버킷:
content/[locale]/*.md → content/de/*.md, content/ja/*.md
중첩 구조:
app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json
특정 언어 추가
--target-locale 플래그를 사용하여 특정 새 언어에 대한 번역을 생성할 수 있습니다:
npx lingo.dev@latest run --target-locale de
이는 독일어 번역만 생성하며, 다른 새 언어는 나중에 처리하도록 남겨둡니다.
언어 제거
언어를 제거하려면 targets 배열에서 해당 언어를 제거하기만 하면 됩니다. CLI는 기존 파일을 삭제하지 않지만 해당 로케일 처리를 중단합니다:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
}
}
필요한 경우 해당 번역 파일을 수동으로 삭제할 수 있습니다.