我想实现以下行为:
如果用户的浏览器语言是例如EN
,如果浏览器语言为http://foo.bar/hello
,则应将其重定向到网址DE
,然后重定向到http://foo.bar/hallo
。
那么我如何设置我的路由以将用户重定向到正确的语言(例如,当英语用户请求DE路由时,反之亦然)以及如何设置隐藏的语言环境参数,这样我就可以加载正确的语言在控制器中查看?
我想为两种语言使用相同的控制器(每页一个方法),但本地化视图(foo.en.html.erb等)
提前感谢!
答案 0 :(得分:2)
我认为你想要获得的是一个好主意,我会在这里解释一下。我不明白为什么你会选择与开箱即用的Rails提供的方法不同的方法,并在"Internationalization Guide, Sections 2.3 and further"中详细解释。
以下是论点:
http://my.example.com/books?locale=de
http://de.example.com/books
locale
,... I18n.t 'store.title'
或I18n.l Time.now
。隐藏的语言环境参数的缺点是(对于用户来说)使用哪个语言环境并不明显。
答案 1 :(得分:1)
如果您需要翻译路线以及设置区域设置,您可以查看translate_routes gem。
README解释了如何从翻译hello / hallo中设置语言环境。