我是ROR的新手..我对国际化命令有疑问。
在某些情况下,我们使用<%=t :str_use%>
在某些情况下我们使用<%= t(:str_use) %>
这两者有什么区别
什么时候我必须使用1st以及何时使用第二个..
请提出一些有关这方面的想法。
我有一个视图文件,因为我有很多字符串我想将它们国际化。
在某些情况下我喜欢<td>Use</td>
在某些情况下
<% if use %> Use <br />
<% else %>
答案 0 :(得分:3)
这是ruby的语法,不是特别的ror;)
两者都是一样的。 Ruby可以猜出括号,即使它们不在那里 所以这完全取决于你。
答案 1 :(得分:1)
t :str
和t(:str)
之间没有区别 - 它们都以符号t
作为参数调用方法:str
。在Ruby中,参数周围的括号是可选的。
但这些都与t: str
不同,后者是散列{:t => str}
的Ruby 1.9简写。
答案 2 :(得分:0)
何时使用t(:str)?当你想链接更多方法时。
在Rails中试试这个:
t 'some.translation'.capitalize
t('some.translation').capitalize
第一种方法将返回:
Translation
..如下半部分后的标识符,而不是翻译整个文本。根据我的判断,这是因为你传递了参数'some.translation'.capitalize
,而不是在返回时调用capitalize
,就像第二个例子一样。