I18n
下載 zh-TW.yml 到 config/locale/ 下,就有預設的繁體中文翻譯
/config/environment.rb 的 config.i18n.default_locale = "zh-TW" 可以修改預設的語系
參考投影片: Rails I18n
使用方法
I18n.t
在 View 中可以直接使用 t method
可以用字串或 Symbol,也可以加上 Scope,例如:
- I18n.t("admin.event")
- I18n.t(:event, :scope => :admin )
如何切換多語系
在 application_controller.rb 中加入:
在 View 中可以這樣做:
時區 TimeZone
首先,資料庫裡面的時間,預設一定都是儲存 UTC 時間。
設定 config/environment.rb 中預設時區為 config.time_zone = "Taipei",如此 ActiveRecord 便會幫你自動轉換時區,也就是拿出來時 +8,存回去時 -8
如何根據使用者切換時區?
首先,使用者會有個欄位是 time_zone:string。然後在編輯設定的地方,可以讓使用者自己選擇時區:
接著在 application_controller.rb 中加入:
Unicode
Ruby 1.8 的字串其實只是 byte 的集合,如果你需要對 UTF-8 字串做一些函式操作,Rails 提供了 mb_chars 來包裝以獲得正確的結果,例如:
- "中文".size # 6
- "中文".mb_chars.size # 2
Iconv
如果你必須處理其他語系,例如 Big5,那個 Ruby 的內建函式庫 Iconv 可以幫你處理轉換。