Rails I18n에 대해서

Posted by negabaro kim on Wednesday, May 23, 2018 Tags: rails/i18n   1 minute read

i18n사용방법

config/locales밑에 언어별로 파일을 만든다.

#config/locales/en.yml
en:
  view:
    hello: Hello world
#config/locales/ja.yml
ja:
  view:
    hello: ハローワールド

rails console에서 i18n의 설정 접근법

I18n.t("view.hello")
=>   "Hello world" 
I18n.t("view.hello", locale: :en)
=>   "Hello world"
I18n.t("view.hello", locale: :ja)
=>   "ハローワールド"

rails view에서의 접근법

<%= t('view.hello') %> 

i18n관련 자주 사용하는 설정

#config/application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
config.i18n.default_locale = :ja #필자의 경우를 일본사이트를 주로 만드므로 default_locale=ja으로 설정

load_path설정을 넣어줌으로 인해 config/locales/안의 모든 디렉토리에 있는 yml,rb파일을 읽어옴 뷰의 계층구조와 같은 구조로 config/locales이하에 yml파일을 두면 해당 view의 xx.yml파일을 찾기 편함

예를 들어 app/views/home/top.html.erb이 있다고하면 config/locales/views/home/top/ja.yml이런식으로 맞춤

ja.yml의 설정은 이하와 같다.

ja:
  home:
    top:
      hello: Hello world