Lingo.dev + .arb (Flutter)
Lingo.dev CLI는 메타데이터, 플레이스홀더 정의 및 Flutter의 l10n 규칙을 보존하면서 Flutter 애플리케이션 리소스 번들(ARB) 파일을 번역합니다. CLI는 flutter gen-l10n
과 원활하게 작동하고, IDE 자동 완성을 위한 플레이스홀더 타입 정의를 유지하며, 개발자 컨텍스트와 문서를 그대로 보존하고, ARB 사양 표준을 정확히 따릅니다.
빠른 설정
Flutter의 표준 ARB 파일 구조를 위한 구성:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"flutter": {
"include": ["lib/l10n/app_[locale].arb"]
}
}
}
주의사항: [locale]
은 CLI 실행 중에 실제 로케일로 대체되므로 구성에 그대로 유지해야 하는 플레이스홀더입니다.
ARB 파일 번역
npx lingo.dev@latest i18n
콘텐츠를 번역하는 동안 ARB 메타데이터, 플레이스홀더 정의 및 Flutter 특정 형식을 보존합니다.
Flutter ARB 기능
타입이 있는 플레이스홀더
{
"welcomeMessage": "Hello {name}, you have {count} messages",
"@welcomeMessage": {
"description": "Welcome message with user name and count",
"placeholders": {
"name": {
"type": "String"
},
"count": {
"type": "int"
}
}
}
}
복수형
{
"itemCount": "{count, plural, =0{no items} =1{one item} other{{count} items}}",
"@itemCount": {
"description": "Number of items",
"placeholders": {
"count": {
"type": "int"
}
}
}
}
메타데이터 보존
ARB 메타데이터(@key
항목)는 번역되지 않고 유지됩니다:
- 설명: 개발자 컨텍스트 보존
- 플레이스홀더: 타입 정의 유지
- 예시: 사용 예시 유지
- 사용자 정의 속성: 추가 메타데이터 보존
고급 구성
다중 ARB 파일
"flutter": {
"include": [
"lib/l10n/app_[locale].arb",
"lib/l10n/errors_[locale].arb"
]
}
메타데이터 키 잠금
"flutter": {
"include": ["lib/l10n/app_[locale].arb"],
"lockedKeys": ["@@locale", "@@last_modified"]
}