中文化基本部份
注意:本篇區塊內的文字都是一行而已。在開發的根目錄下裝plugin(plugin只會裝到local project裡,不會裝到整個server上):
ruby script/plugin install http://svn.rails2u.com/public/plugins/trunk/active_heart/
修改vendor/plugins/active_heart/lib/active_record_messages_ja.rb內的訊息,這個檔案是UTF-8編碼,看不懂日文的話,可以參照日翻中網站,不過我試了還是看不懂,乾脆看English key猜意思 Orz。
或著做高明點,修改vendor/plugins/active_heart/init.rb,改成:
require_dependency ‘active_record_messages_zh’if defined? ActiveRecord::Base
複制一份active_record_messages_zh.rb,改active_record_messages_zh.rb而不是active_record_messages_ja.rb。
改完訊息後重跑web server才會生效(我是用apache2 + FastCGI)。
去掉欄位名稱的顯示
預設是顯示DB field name,如果用中文名稱當DB field沒這問題,但我習慣用英文的field name,只好把預設的訊息拿掉,參照上面的檔案,把這段code:
def full_messages ... if attr == "base" full_messages << msg else full_messages << @base.class.human_attribute_name(attr) + msg end
去掉@base.class.human_attribute_name(attr) 改成:
def full_messages ... full_messages << msg
這叫自找麻煩,而且顯示錯誤訊息時得一個個自訂 :message ,例如:
validates_presence_of :name, :message => “姓名未填”
但沒用過中文當field name,不知道會有什麼問題。
沒有留言:
張貼留言