검사기가 찾는 것
- 누락된 키: 템플릿에는 있지만 어떤 언어에는 없는 키. 앱은 컴파일되지만 사용자에게는 자기 언어가 아니라 템플릿 언어의 텍스트가 보입니다.
- 남는 키: 번역에는 있지만 템플릿에는 더 이상 없는 키. 삭제한 기능의 흔적인 경우가 많습니다.
- 빈 값: 키는 있지만 번역이 비어 있는 경우. 단순한 키 비교로는 놓칩니다.
- 플레이스홀더 불일치:
{name}이 {nom}으로 바뀌었거나 빠진 경우. ICU 복수형과 select 안의 플레이스홀더도 읽습니다.
@로 시작하는 키(메타데이터와 @@locale)는 무시합니다. 기준 파일은 l10n.yaml의 template-arb-file로 지정한 파일로, 보통 app_en.arb입니다. 도구가 자동으로 고르며, 다른 파일을 선택할 수도 있습니다.
Flutter 앱에서 누락된 키 찾기
arb-dir 폴더(기본값 lib/l10n)의 파일을 모읍니다.
- 템플릿을 포함해 한꺼번에 놓습니다.
- 언어별로 문제를 확인한 뒤 누락된 키를 ARB 형식으로 복사합니다. 템플릿 텍스트가 들어 있어 바로 번역할 수 있습니다.
빌드할 때마다 자동으로 검사하려면 flutter gen-l10n의 untranslated-messages-file 옵션과 간단한 CI 스크립트를 쓰면 됩니다. 자세한 내용은 ARB 파일의 누락된 키 찾기 가이드에 있습니다. ICU 플레이스홀더 실수는 복수형과 플레이스홀더 가이드에서 설명합니다.
검사기의 한계
이 도구는 키와 플레이스홀더 이름을 비교합니다. ICU 구문 전체를 검증하지 않고(그것은 flutter gen-l10n의 역할입니다), 번역 품질을 판단하지 않으며, 파일을 수정하지 않습니다. 프로젝트 전체를 가져와 번역하고 백업과 함께 내보내려면 LocalePilot 같은 현지화 편집기가 필요합니다.