Rails:i18n,如果不存在翻译,则会打印变量

时间:2012-10-17 10:04:34

标签: ruby-on-rails ruby-on-rails-3 internationalization rails-i18n

我面临一个奇怪的问题。在我的rails 3应用程序中,我支持英语和法语的国际化。在我的模板中,我写了类似这样的内容

<%= t "Hi %{person}!", :person => "Simpson" %>

当我将语言环境设置为法语时,一切正常,因为它已经为此进行了翻译,但是当我将语言环境设置为英语时,它会将输出设为

Hi %{person}!

在我的浏览器中。当我向en.yml添加翻译时,它工作正常。我不明白为什么需要在en.yml中为此添加翻译。此外,我不希望这种情况发生,有没有解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

t方法的第一个参数应该是一个键,所以你的视图应该是这样的:

<%= t :greetings, :person => "Simpson" %>

您的config/locales/en.yml看起来像这样:

en:
  greetings: Hi %{person}

和您的config/locales/fr.yml之类似的事情:

fr:
  greetings: Bonjour %{person}