【发布时间】:2014-08-16 19:30:07
【问题描述】:
我已经像这样在中间人中激活了 I18n:
activate :i18n, mount_at_root: :de
现在我想自动从/ 重定向到/de。这可能吗?
另外,我想知道为什么中间人使用page_classes 助手自动分配类index(德语)和en_index(英语)?这没有多大意义——它是同一个页面,所以它应该对英语和德语都使用 index 类。还是我错过了什么?
【问题讨论】:
我已经像这样在中间人中激活了 I18n:
activate :i18n, mount_at_root: :de
现在我想自动从/ 重定向到/de。这可能吗?
另外,我想知道为什么中间人使用page_classes 助手自动分配类index(德语)和en_index(英语)?这没有多大意义——它是同一个页面,所以它应该对英语和德语都使用 index 类。还是我错过了什么?
【问题讨论】:
如果你 :mount_at_root => :de 德语将是你的默认语言,因此 没有前缀。
如果您设置:mount_at_root => :false,所有语言都应该加上前缀。
我已成功使用以下配置设置de/en 路径。
这也将创建page_classes,例如en en_index 和de 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",它似乎是默认的。