Ruby on Rails中't()'标记的含义是什么?

Vin*_*han 9 html ruby escaping ruby-on-rails

我在视图中遇到了一些开源代码,其t()标签类似于HTML转义序列h().

<%= f.label :password, t(:password, :scope => "activerecord.attributes.user") -%>
Run Code Online (Sandbox Code Playgroud)

什么t()意思?

Boh*_*dan 21

t(keys,options = {})

翻译的别名

translate(keys,options = {})

代表,I18n#translate但也执行两个额外的功能.首先,它会捕获MissingTranslationData异常并将它们转换为包含缺失键的内联跨度,这样您就可以在视图中看到缺少的内容.

其次,如果密钥以句点开始,它将按当前部分对密钥进行范围调整.因此,如果您translate(".foo")从people/index.html.erb模板调用,您实际上将调用I18n.translate("people.index.foo").这使得在同一部分内翻译多个键的重复性降低,并为您提供了一个简单的框架,可以一致地确定它们的范围.如果您没有为句点添加前缀,则不会转换任何内容.此方法也别名为t