日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Rails I18N: ActiveRecord對象本地化

 Joshua 2009-03-17

Rails I18N: ActiveRecord對象本地化

Nov 24, 2008

Tags: ,

一直以來使用 Changing human attribute labels in Rails validation messages 中介紹的方法來本地化 ActiveRecord 字段名稱。該方法簡單實(shí)用,比方說有這樣一個 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 的錯誤信息中顯示中文字段名:

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

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

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è)置。比方說,以前會用:

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

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

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

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

humanize_attributes

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多