中间人和I18n:存在一些问题

3
我已在Middleman中激活了I18n,如下所示:

activate :i18n, mount_at_root: :de

现在我想要自动重定向从//de。这可行吗?
此外,我想知道为什么middleman会使用page_classes助手自动分配类index(用于德语)和en_index(用于英语)?这没有太多意义 - 这是同一页,所以应该对英语和德语都使用类index。或者是我错过了什么?
1个回答

6
如果你设置: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",因为它似乎是默认的。 - Joshua Muheim
是的,那可能是真的。除此之外,这个答案对你有帮助吗? - mlnmln
我更新了答案。现在可以标记为正确答案。谢谢。 - Joshua Muheim
谢谢,编辑对我来说很好。我误读了你问题的第二部分,并没有注意到你想要在正文类中去掉语言前缀。 - mlnmln

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接