Rails는 UI 텍스트 번역, 날짜/숫자 형식, 복수형, 목록 처리 등 다양한 데이터 유형의 현지화를 지원합니다.
-
텍스트 번역: 하드코딩된 텍스트를 외부화한 후, Rails의
translate
헬퍼(t
)는 런타임에 현재 지역에 따라 동적으로 텍스트를 렌더링합니다. 번역 텍스트는config/locales
YAML 파일에 저장됩니다.I18n tasks
젬을 활용하면 기계 번역을 통해 누락된 번역을 자동 생성하여 초기 현지화 작업을 간소화할 수 있습니다. -
데이터 형식 현지화: 날짜, 시간, 숫자, 통화 등은 지역별로 다른 표기법을 가집니다. Rails의
localize
헬퍼는 객체를 현재 지역에 맞는 형식으로 변환합니다. 이러한 데이터 형식 규칙은 Unicode의 Common Locale Data Repository(CLDR)에서 제공되며,Twitter CLDR
젬은 CLDR 데이터를 Rails의strftime
형식에 맞춰 변환하여 자동 적용을 가능하게 합니다. -
복수형 및 목록 처리: 언어마다 복수형 규칙과 목록 항목 연결 방식이 상이합니다. Rails는
count
변수를 사용한 복수형 처리를 지원하며, YAML 파일에one
,other
등 특수 키를 정의합니다.Rails I18n
젬은 CLDR의 복수화 규칙을 Ruby 클래스로 제공하여translate
헬퍼가 적절한 알고리즘을 선택하도록 합니다. 또한, Rails의to_sentence
확장 메서드는 목록 연결 시 언어별 구두점 및 연결어 규칙을 자동으로 적용하여 자연스러운 표현을 지원합니다.