Ruby on Rails i18n
Ruby on Rails i18n: 관례 기반 번역 관리
Ruby on Rails에는 YAML 로케일 파일을 사용하여 번역을 관리하는 내장 I18n API가 포함되어 있습니다. 이 프레임워크는 ‘설정보다 관례(convention over configuration)’ 원칙을 따르며, 뷰에서 지연 조회(lazy lookup), 자동 복수형 변환 규칙, 보간 기능을 지원합니다. Rails는 기본적으로 날짜, 숫자, 통화에 대한 로케일 인식 헬퍼를 제공하며, 대체(fallback) 시스템을 통해 번역이 누락된 경우에도 오류 없이 원활하게 작동하도록 보장합니다.
Ruby on Rails i18n 기능
중첩 키 구조를 갖춘 config/locales의 YAML 로케일 파일
번역 및 지역 설정 기반 서식을 위한 I18n.t() 및 I18n.l() API
'one/other' 규칙 및 사용자 정의 복수형 백엔드를 지원하는 내장 복수형 변환 기능
번역 문자열에서 %{variable} 구문을 사용한 변수 보간
뷰에서 t('.key')를 사용한 지연 조회로 자동 스코프 해석 지원
누락된 번역을 우아하게 처리하기 위한 폴백 로케일 체인
route_translator 또는 이와 유사한 젬을 사용한 경로 변환 및 URL 헬퍼
데이터베이스 기반 다국어 콘텐츠를 위한 ActiveRecord 모델 번역
지역 설정을 고려한 날짜, 시간, 숫자 및 통화 서식 지정 헬퍼
실전 Rails i18n
YAML 로케일 파일에 번역을 정의하고, 컨트롤러와 뷰에서 보간과 함께 t()를 사용하며, ERB 템플릿에서 현지화된 콘텐츠를 렌더링합니다.
# config/locales/en.yml
en:
welcome: "Welcome to %{app_name}"
items:
one: "%{count} item"
other: "%{count} items"
# app/controllers/home_controller.rb
class HomeController < ApplicationController
def index
@welcome = t('welcome', app_name: 'My App')
@items = t('items', count: 5)
end
end
# app/views/home/index.html.erb
<h1><%= @welcome %></h1>
<p><%= @items %></p>