下載 zh-TW.yml 到 config/locale/ 下,就有預設的繁體中文翻譯
/config/environment.rb 的 config.i18n.default_locale = "zh-TW" 可以修改預設的語系
參考投影片: Rails I18n
I18n.t
在 View 中可以直接使用 t method
可以用字串或 Symbol,也可以加上 Scope,例如:
在 application_controller.rb 中加入:
before_filter :set_locale
def set_locale
# 可以將 ["en", "zh-TW"] 設定為 VALID_LANG 放到 /config/environment.rb 中
if params[:locale] && ["en", "zh-TW"].include?( params[:locale] )
session[:locale] = params[:locale]
end
I18n.locale = session[:locale] || I18n.default_locale
end
在 View 中可以這樣做:
link_to "英文版", :controller => controller.controller_name,
:action => controller.action_name, :locale => "en" }
首先,資料庫裡面的時間,預設一定都是儲存 UTC 時間。
設定 config/environment.rb 中預設時區為 config.time_zone = "Taipei",如此 ActiveRecord 便會幫你自動轉換時區,也就是拿出來時 +8,存回去時 -8
首先,使用者會有個欄位是 time_zone:string。然後在編輯設定的地方,可以讓使用者自己選擇時區:
<%= time_zone_select 'user','time_zone' %>
接著在 application_controller.rb 中加入:
before_filter :set_timezone
def set_timezone
if logged_in? && current_user.time_zone
Time.zone = current_user.time_zone
end
end
API 文件
Ruby 1.8 的字串其實只是 byte 的集合,如果你需要對 UTF-8 字串做一些函式操作,Rails 提供了 mb_chars 來包裝以獲得正確的結果,例如:
API 文件
如果你必須處理其他語系,例如 Big5,那個 Ruby 的內建函式庫 Iconv 可以幫你處理轉換。