a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Ruby > 正文

淺談Ruby on Rails的國際化

2020-10-29 19:37:14
字體:
供稿:網(wǎng)友

視圖、模型與控制器里不應(yīng)使用語言相關(guān)設(shè)置與字串。這些文字應(yīng)搬到在 config/locales 下的語言文件里。

當(dāng) ActiveRecord 模型的標(biāo)簽需要被翻譯時,使用activerecord 作用域:

en: activerecord:  models:   user: Member  attributes:   user:    name: "Full name"

然后 User.model_name.human 會返回 "Member" ,而 User.human_attribute_name("name") 會返回 "Full name"。這些屬性的翻譯會被視圖作為標(biāo)簽使用。

把在視圖使用的文字與 ActiveRecord 的屬性翻譯分開。 把給模型使用的語言文件放在名為 models 的文件夾,給視圖使用的文字放在名為 views 的文件夾。

    當(dāng)使用額外目錄的語言文件組織完成時,為了要載入這些目錄,要在 application.rb 文件里描述這些目錄。

  # config/application.rb  config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]

把共享的本土化選項,像是日期或貨幣格式,放在 locales 的根目錄下。

使用精簡形式的 I18n 方法: I18n.t 來取代 I18n.translate 以及使用 I18n.l 取代 I18n.localize。

使用 "懶惰" 查詢視圖中使用的文字。假設(shè)我們有以下結(jié)構(gòu):

en: users:  show:   title: "User details page"

users.show.title 的數(shù)值能這樣被 app/views/users/show.html.haml 查詢:

= t '.title'

在控制器與模型使用點分隔的鍵,來取代指定 :scope 選項。點分隔的調(diào)用更容易閱讀及追蹤層級。

# 這樣子調(diào)用I18n.t 'activerecord.errors.messages.record_invalid'# 而不是這樣I18n.t :record_invalid, :scope => [:activerecord, :errors, :messages]


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美精品一区二区三区蜜臀 | 黑人性dh | 99热这里| 国产精品中文在线 | 色婷婷综合久久久久中文 | 免费黄色在线观看 | 日韩不卡一区二区 | 国产欧美精品一区二区色综合 | 欧美日韩高清在线一区 | 欧美成a| 欧美精品亚洲精品 | 超级碰在线视频 | 极品美女国产精品免费一区 | 久久一二区 | 日韩国产一区 | 久久精品国产免费看久久精品 | 操人视频网站 | 国产天天操天天干 | 在线观看免费av网 | 国产一级做a爰片在线看免费 | 国产aaa大片 | 国产四区 | 日韩 欧美 自拍 | 午夜老湿影院 | 亚洲国产精品18久久 | 亚洲成人二区 | 亚洲黄色大片在线观看 | 99精品全国免费观看视频软件 | 久久国产精品99久久久久久老狼 | 亚洲精品国产综合区久久久久久久 | 91在线免费观看 | 99久久国产 | 国产一区二区精品在线 | 天天久久 | 国产精品久久久久久亚洲毛片 | 操皮视频 | 不卡一区| 毛片入口 | 久久久国产一区二区 | 国产精品美女久久久 | 亚洲丶国产丶欧美一区二区三区 |