Rails本地化语法

meg*_*gas 1 localization ruby-on-rails-3

我已将Twitter Bootstrap安装到我的项目中,并为我找到了未知的语法:

<%=t '.title', :default => model_class.model_name.human.pluralize %>
<%= link_to t('.new', :default => t("helpers.links.new")),
            new_article_path,
            :class => 'btn btn-primary' %>
Run Code Online (Sandbox Code Playgroud)

我无法理解的含义'.title','.new''helpers.links.new'.这些结构如何与语言环境字典交互?

另外,我从来没有遇到过方法的构造,我可以:default =>t哪里阅读它?

Ere*_*bih 5

t是由I18n rails的国际化机制提供的辅助方法,是I18n.translate方法的捷径.

I18n读取的语言环境文件默认设置为Rails.root/config/locales/en.yml,假设en是您的默认语言环境.

第一个参数是I18n将在您的语言环境文件中查找的键.该陈述t('.new', :default => t("helpers.links.new"))意味着I18n将寻找构造

en:
  new: "new string"
Run Code Online (Sandbox Code Playgroud)

在您的语言环境文件中.

:default是在找不到第一个键时将返回的字符串.

:default => t("helpers.links.new") 只是意味着I18n将在en.yml中寻找以下构造:

en:
  helpers:
    links:
      new: "new string"
Run Code Online (Sandbox Code Playgroud)

如果没有第一个,请将其归还.

你可以在这里找到I18n翻译方法的完整文档.