小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Rails I18N: ActiveRecord對(duì)象本地化

 Joshua 2009-03-17

Rails I18N: ActiveRecord對(duì)象本地化

Nov 24, 2008

Tags: ,

一直以來(lái)使用 Changing human attribute labels in Rails validation messages 中介紹的方法來(lái)本地化 ActiveRecord 字段名稱。該方法簡(jiǎn)單實(shí)用,比方說(shuō)有這樣一個(gè) User model:

# == Schema Information
# Schema version: 20081028111521
#
# Table name: users
#
#  id                   :integer         not null, primary key
#  login                :string(255)
#  email                :string(255)
class User < ActiveRecord::Base
#...
end

只要在該類中加入以下代碼,就可以在 validation 的錯(cuò)誤信息中顯示中文字段名:

humanize_attributes :login => "用戶名",
:email => "電郵"

現(xiàn)在 Rails 2.2 為我們帶來(lái)了強(qiáng)大的 I18N 功能,沒(méi)有必要再用上述方法來(lái)實(shí)現(xiàn)本地化了。首先,在 environment.rb 中指定本地化語(yǔ)言:

config.i18n.default_locale = :cn

然后在 config/locales 目錄下新建 cn.yml 文件,并進(jìn)行以下設(shè)置:

cn:
activerecord:
models:
user: "用戶"
attributes:
user:
login:  "用戶名"
email:  "電郵"

非常優(yōu)雅方便。

Error messages 也可以用同樣的方法進(jìn)行設(shè)置。比方說(shuō),以前會(huì)用:

validates_presence_of     :login, :message => "不能為空"

現(xiàn)在只要在配置文件中加入相應(yīng)信息即可:

activerecord:
errors:
messages:
blank:      '不能為空'

舊版本的 rails 應(yīng)用中還需要用到老方法。為方便起見(jiàn),弄了個(gè) plugin,github 地址:

humanize_attributes

PS: 可以在 script/console 下檢查效果:

>> User.human_attribute_name('login')
=> "用戶名"
>> I18n.translate :'activerecord.attributes.user.email'
=> "電郵"

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多