如果是需要多國語言,我在 registrano.com 是使用Globalize plugin,它是把翻譯資料放資料庫,因此還可以做個網站後台來修改,非常方便。語法則是
"Hello, World!".t
我個人是蠻喜歡這種 method call 寫法。不過它也提供與 gettext 一樣的語法:
_("Hello, World!")
下載請前往 Github。
另一個更簡單不需要資料庫的 plugin 是 Gibberish,它使用 key-value 方式跟 yml 檔案儲存,語法是
"Hello, World!"[:welcome]
如果不是要多國,而只是想要一國(如中文),則可以考慮裝 Localization Simplified 跟 Localization Plugin,前者可以處理 Rails 預設的錯誤訊息跟日期格式等。後者則是因為我自己有個需求是 RHTML view code 可以用中文沒關係,但是我在 controller 或 model 裡蠻不想打中文的(一來是我不知道客戶要的確切文字,也不想讓人家直接去改 controller。二來是 Textmate 不支援中文),所以需要一個最簡單的 L10n 機制來幫忙。
採用 Localization Simplified 後,發現還是碰到 Model attribute name 無法順利中文化,例如出現 “Password 不能是空白” 這樣的錯誤訊息。目前想到這樣 hacking:
#put this in /config/environment.rb class String def humanize _( self.to_s.gsub(/_id$/, "").gsub(/_/, " ").capitalize ) end end
於是就可以跟 Localization Plugin 接軌了 :>
發佈留言