【问题标题】:Middleman and I18n: having some issuesMiddleman 和 I18n:有一些问题
【发布时间】:2014-08-16 19:30:07
【问题描述】:

我已经像这样在中间人中激活了 I18n:

activate :i18n, mount_at_root: :de

现在我想自动从/ 重定向到/de。这可能吗?

另外,我想知道为什么中间人使用page_classes 助手自动分配类index(德语)和en_index(英语)?这没有多大意义——它是同一个页面,所以它应该对英语和德语都使用 index 类。还是我错过了什么?

【问题讨论】:

    标签: middleman i18n-gem


    【解决方案1】:

    如果你 :mount_at_root => :de 德语将是你的默认语言,因此 没有前缀。

    如果您设置:mount_at_root => :false,所有语言都应该加上前缀。

    我已成功使用以下配置设置de/en 路径。

    这也将创建page_classes,例如en en_indexde de_index

    activate :i18n, :mount_at_root => :false, :langs => [:de, :en]
    

    http://middlemanapp.com/advanced/localization/

    / 重定向到/de 是使用redirect "index.html", :to => "de/index.html" 完成的。

    为防止 page_classes 为类添加语言前缀,请像这样覆盖帮助器:

    helpers do
      def page_classes(path=current_path.dup, options={})
        super(path.sub(/^[a-z]{2}\//, ''), options)
      end
    end
    

    【讨论】:

    • 我猜你不需要显式设置path: ":locale",它似乎是默认的。
    • 是的,这可能是真的。除此之外,这个答案对您有帮助吗?
    • 我更新了答案。现在可以将其标记为正确。谢谢。
    • 谢谢,我的编辑没问题。我误读了您问题的第二部分,没有注意到您想摆脱正文类中的语言前缀。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2019-09-12
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    相关资源
    最近更新 更多