I Computer a Life-long Learner

Rails 配置中文语系

2017-10-14
booox

Rails 配置中文语系

1. 修改默认语系为中文

Rails 支持多语言化(Internationalization,简称I18n),默认的语系是英文 若要让默认的为中文,则需要修改 config/initializers/locale.rb 若没有此文件,则需自行创建。

Rails.application.config.i18n.default_locale = :"zh-CN"

老的版本需修改 config/application.rb

config.i18n.default_locale = "zh-CN"

2. 准备用于翻译的 YAML 文件

只所以能够支持多种语系,背后的原理就是提前准备了用于翻译的 YAML 文档,在需要对应文字的位置再调用 I18n.t 方法,通常直接写成 t(“”)

创建 config/locales/zh-CN.yml

"zh-CN":
  event_list: 活动列表
  admin:
    event_list: 活动列表管理

注意: 

  1. yaml 文件是严格两个空格的缩进,如果缩进不对,会报错的。
  2. 第一行为语言标识,如 en"zh-CN" (若中间有-,则要加上双引号)
  3. 如果关键词为 truefalse,则加上双引号,即 "false": "否"

3. 使用

在 .html.erb 中的使用方法如下:

<h1><%= t("event_list") %></h1>

如果为多级,则可以使用下面两种方法任一种:

<h1><%= t("admin.event_list") %></h1>
<h1><%= t("event_list", :scope => "admin") %></h1>

将一种语言拆成多个语言包

修改 config/initializers/locale.rb

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
config.i18n.default_locale = :"zh-CN"

创建文件夹 config/locales/zh-CN

将语言翻译的多个 yaml 文档,放到 config/locales/zh-CN 文件夹当中,如:

config/locales/zh-CN/default.yml config/locales/zh-CN/devise.yml


Similar Posts

Comments(需要科学上网)