텍스트 번역 (Translate Text)
- 텍스트 외부화: 애플리케이션 내의 하드코딩된 텍스트를
translate
(단축어t
) 헬퍼를 사용하여 외부화합니다. 이는 컨트롤러와 뷰 모두에서 사용 가능하며, 런타임에 현재 로케일에 따라 동적으로 텍스트를 렌더링합니다. - YAML 파일 활용: 번역된 텍스트는
config/locales
디렉터리에 있는 YAML 파일(en.yaml
,fr.yaml
등)에 저장됩니다. 이는 번역 키를 통해 해당 로케일의 문자열을 찾아 반환합니다. - 자동 번역 Gem:
i18n_tasks
Gem은 Google Translate와 같은 기계 번역 서비스를 활용하여 누락된 번역을 자동으로 채워주는 CLI 도구를 제공하여, 초기 번역 작업을 크게 간소화합니다.
고급 데이터 지역화 (Advanced Data Localization)
### 날짜 및 시간 형식 (Dates and Times)
* localize
헬퍼: Rails의 localize
(단축어 l
) 헬퍼는 날짜, 시간, 숫자 등의 데이터를 현재 로케일에 맞춰 자동으로 형식화합니다. 이는 strftime
형식 문자열을 YAML 파일에서 조회하여 적용합니다.
* CLDR 데이터 활용: Unicode의 CLDR(Common Locale Data Repository)은 전 세계 언어 및 지역별 데이터 형식(날짜, 통화, 숫자 등)에 대한 방대한 정보를 제공합니다. Twitter CLDR
Gem은 이 CLDR 데이터에 접근하여 Rails의 strftime
형식으로 변환하는 기능을 제공하여, 개발자가 각 로케일의 올바른 날짜 형식을 쉽게 적용할 수 있도록 돕습니다.
복수형 처리 (Plurals)
count
변수:translate
헬퍼에count
변수를 전달하면, Rails는 해당 숫자에 맞는 복수형 규칙을 적용합니다. YAML 파일에는one
,other
(및 언어에 따라few
,many
등)와 같은 특수 키를 사용하여 각 복수형 범주에 대한 메시지를 정의합니다.rails-i18n
Gem:rails-i18n
Gem은 CLDR에 정의된 다양한 언어의 복수형 규칙을 Ruby 클래스로 제공하여, Rails의 I18n 시스템이 복잡한 복수형 논리를 자동으로 처리할 수 있도록 지원합니다. 이를 통해 영어 외의 언어에서 나타나는 다양한 복수형 카테고리에 대응할 수 있습니다.
리스트 연결 (Lists)
to_sentence
헬퍼: Rails의Array
확장인to_sentence
헬퍼는 배열 항목들을 자연스러운 문장으로 연결해줍니다. 이 헬퍼는 현재 로케일의 YAML 파일에서 적절한 구두점 및 연결어(and
,or
등)를 찾아 사용합니다.- 언어별 구두점: 일본어와 같이 특수한 콤마를 사용하거나 연결어 없이 구두점만으로 리스트를 연결하는 언어의 특성을
to_sentence
헬퍼가 CLDR 데이터를 기반으로 처리합니다.