【问题标题】:I18n to call different Model Attribute depending on Locale?I18n 根据语言环境调用不同的模型属性?
【发布时间】:2015-04-22 13:29:54
【问题描述】:

所以我正在建立一个在线商店,我想要两种语言选择,英语和西班牙语。

我正在使用 I18n,就像您通常对我的所有静态文本和标题等所做的那样。

但是,我有一个产品模型,可以创建新产品以在网站上列出。这有 :name_en 和 :name_es、:description_en 和 :description_es 等字段。

当管理员上传新产品时,他们显然需要添加英文和西班牙文文本。

因为我只有 2 个语言环境,所以我想做的就是调用类似的东西

    <%= Product.name_"#{I18n.locale.downcase}" %>

但这显然行不通。我怎样才能,或者我可以怎样,插入一个方法或属性?

我是否在这里遗漏了一些明显的东西,只是以错误的方式处理它,还是有办法按照我的想法做到这一点?

非常感谢任何帮助。

谢谢

【问题讨论】:

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


    【解决方案1】:

    您可以使用send 方法。尝试类似:

    <%= Product.send("name_#{I18n.locale.downcase}") %>
    

    只是解释一下,以下是相等的:

    string = "Hello"
    
    string.upcase
    # => "HELLO"
    
    string.send("upcase")
    # => "HELLO"
    

    希望你能找到正确的方向!

    祝你好运!

    【讨论】:

    • 正是我所追求的!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-08-03
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多