Ruby I18n gem으로 Rails 앱 국제화
영어 이외의 언어로 Rails 애플리케이션을 만들 계획이라면 Rails가 번역을 도와드립니다. Ruby I18n gem은 개발에 집중할 수 있도록 응용 프로그램을 단일 사용자 정의 언어로 번역하거나 응용 프로그램에서 다국어 지원을 제공하기 위한 사용하기 쉬운 프레임워크를 제공합니다.
이 기사에서는 설치 및 구성을 안내하고 사용법을 시연합니다.
설치 및 구성
애플리케이션에서 일본어 번역을 구성해 보겠습니다.
i18n
에 Gemfile
를 추가하는 것으로 시작합니다.# Gemfile
gem 'i18n'
먼저
ja
에서 기본 로케일을 config/application.rb
로 변경해 보겠습니다.# config/application.rb
config.i18n.default_locale = :ja
일본어의 로케일 키는
:ja
입니다. 다른 언어의 경우 ISO 639-1 codes을 확인하십시오.번역에 다른 위치를 사용하려면
config/application.rb
에 로드 경로를 추가해야 합니다.# config/application.rb
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')]
이제 번역을
config/locales/
디렉토리에 저장해야 합니다.YAML(.yml) 또는 일반 Ruby(.rb) 파일을 사용할 수 있지만 개발자 사이에서는 YAML이 선호됩니다. 모든 번역을 하나의 파일에 넣으면 관리하기 어려울 것입니다. 대신 보기에서 모델을 분리하고 파일을 계층 구조로 구성하는 것이 좋습니다.
예를 들어:
config
└── locales
├── model.ja.yml
└── views
├── admin
│ ├── user_sessions
│ │ └── ja.yml
│ └── users
│ └── ja.yml
├── shared
│ └── ja.yml
├── user_sessions
│ └── ja.yml
└── users
└── ja.yml
이제 번역을 할 시간입니다.
# config/locales/model.ja.yml
ja:
activerecord:
models: # translation for model name
user: ユーザー
attributes: # translation for attributes of each model
user: # translation for each attribute of User model
id: ID
first_name: 名前
last_name: 姓
email: メールアドレス
password: パスワード
attributes: # translation for attributes that are common for all the models
created_at: 作成日
updated_at: 更新日
# config/locales/views/users/ja.yml
ja:
users:
index:
title: 'ユーザ一覧'
show:
title: '%{user_name}さんのユーザー情報' # You can send parameters to interpolation.
edit:
title: '%{user_name}さんのユーザー情報を編集'
용법
Rails는 뷰 내에서 로케일을 조회할 수 있는 편리한 도우미 메서드를 제공합니다.
견해
다음과 같이
users.index.title
템플릿 내에서 app/views/users/index.html.erb
값을 조회할 수 있습니다.# app/views/users/index.html.erb
<%= t '.title' %>
# This is equivalent without automatic translation scoping
<%= t 'users.index.title' %>
모델
모델의 경우
model_name.human
및 human_attribute_name
도우미 메서드가 있습니다.# app/views/users/index.html.erb
# This will return activerecord.models.user, "ユーザー"
<li><%= User.model_name.human %></li>
# This will return activerecord.attributes.user.id, "ID"
<li><%= User.human_attribute_name(:id) %></li>
# This will return activerecord.attributes.user.email, "メールアドレス"
<li><%= User.human_attribute_name(:email) %></li>
Ruby/Rails의 강점은 커뮤니티에서 제공하는 무거운 짐을 덜어주는 보석이 많다는 것입니다. I18n도 그 중 하나입니다.
참조:
Rails Guides "Rails Internationalization (I18n) API"
Reference
이 문제에 관하여(Ruby I18n gem으로 Rails 앱 국제화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/junko911/internationalize-your-rails-app-with-ruby-i18n-gem-5b6m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)