ROR中t(:str)和t:str之间的差异

时间:2010-09-02 06:16:16

标签: ruby-on-rails internationalization

我是ROR的新手..我对国际化命令有疑问。

在某些情况下,我们使用<%=t :str_use%>

在某些情况下我们使用<%= t(:str_use) %>

这两者有什么区别

什么时候我必须使用1st以及何时使用第二个..

请提出一些有关这方面的想法。

我有一个视图文件,因为我有很多字符串我想将它们国际化。

在某些情况下我喜欢<td>Use</td>

在某些情况下

<% if use %> Use <br />
<% else %>

3 个答案:

答案 0 :(得分:3)

这是ruby的语法,不是特别的ror;)

两者都是一样的。 Ruby可以猜出括号,即使它们不在那里 所以这完全取决于你。

答案 1 :(得分:1)

t :strt(: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,就像第二个例子一样。