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"]
}