【问题标题】:Rails: i18n, variable gets printed if translation is not thereRails:i18n,如果没有翻译,则打印变量
【发布时间】:2012-10-17 10:04:33
【问题描述】:

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

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

当我将语言环境设置为法语时,一切正常,因为它已经获得了翻译,但是当我将语言环境设置为英语时,它给出的输出为

Hi %{person}!

在我的浏览器中。当我将翻译添加到 en.yml 时,它工作正常。我不明白为什么需要为此在 en.yml 中添加翻译。此外,我不希望这种情况发生,是否有任何解决方法?

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    en:
      greetings: Hi %{person}
    

    还有你的config/locales/fr.yml 是这样的:

    fr:
      greetings: Bonjour %{person}
    

    【讨论】:

    • 我不想在 en.yml 中进行任何翻译,在这种情况下应该怎么做。但是,在您的解决方案中,我正在添加翻译。
    • 好吧,要么应用与stackoverflow.com/questions/12914019/… 相同的响应,要么你可以不使用 I18n,如下所示:
    猜你喜欢
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多