多國語系設置
step. 1 更改預設
Rails 支持多國語系(Internationalization,簡稱I18n),預設的語系是英文,如要修改,請至config/application.rb
1
2
|
config.i18n.available_locales = [:en, :'zh-TW'] #支援語系
config.i18n.default_locale = :'zh-TW' #預設語系
|
step. 2 新增詞匯檔
接著,在config/locales
新增zh-TW.yml
這個詞匯檔
修改首頁index.html
如下
1
|
<h1><%= t('welcome') %></h1>
|
便可以看到首頁的"welcome"變成"歡迎"
檔案副檔名YML是一種YAML Document,格式的縮排必須使用兩個空格
step. 3 新增Gem
在Gemfile
新增gem "rails-i18n"
接著bundle install
step. 4 Model字段翻譯
1
2
3
4
5
6
7
8
9
|
zh-TW:
welcome: "歡迎"
activerecord:
models:
feedback: "回饋"
attributes:
feedback:
author: "你的名字"
message: "訊息"
|
就有英文介面及中文介面
step. 4 切換多國語系
- 在
app/controllers/application_controller.rb
新增以下這段
1
2
3
4
5
6
7
8
9
10
11
|
before_action :set_locale
def set_locale
if params[:locale] && I18n.available_locales.include?( params[:locale].to_sym )
session[:locale] = params[:locale]
end
I18n.locale = session[:locale] || I18n.default_locale
end
|
- 接著在
app/views/layouts/application.html.erb
新增路徑
1
2
|
<%= link_to "中文版", :controller => controller_name, :action => action_name, :locale => "zh-TW" %>
<%= link_to "English", :controller => controller_name, :action => action_name, :locale => "en" %>
|
就可以在頁面看到中文版跟英文版的切換了!