gpt4 book ai didi

ruby-on-rails - 在 rails 3.1 中隐藏语言环境参数?

转载 作者:行者123 更新时间:2023-12-04 06:00:36 25 4
gpt4 key购买 nike

我想实现以下行为:

如果用户浏览器语言是例如EN ,他应该被重定向到一个 URL http://foo.bar/hello , 如果浏览器语言是 DE然后到 http://foo.bar/hallo .

那么我如何设置路由以将用户重定向到正确的语言(例如,当英语用户请求 DE 路由时,反之亦然)以及如何设置隐藏的语言环境参数,以便我可以在 Controller ?

我想对两种语言使用相同的 Controller (每页一种方法),但本地化 View (foo.en.html.erb 等)

提前致谢!

最佳答案

我不认为你想要尝试得到的是一个好主意,我将在这里解释。我不明白为什么你会选择不同于 Rails 提供的开箱即用的方法,并在 "Internationalization Guide, Sections 2.3 and further" 中有详细解释。 .

以下是论据:

  • Rails 提供了至少 3 种不同的方式来改变语言环境:
  • 从参数中获取:http://my.example.com/books?locale=de
  • 从子域获取:http://de.example.com/books
  • 客户端提供的应用程序,如接受头
  • 都有 Controller 的优点和行动 将是相同的,这就是您通常想要的。
  • 如果您想根据位置更改行为,可以使用辅助方法:locale , ...
  • 但是,如果您愿意,您可以将 View 作为一个整体本地化:请参阅 localized views .这可能会导致 View 代码重复。
  • 或者您使用翻译和本地化 API,如 I18n.t 'store.title'I18n.l Time.now .

  • 隐藏的语言环境参数的缺点是(对于用户)使用哪个语言环境并不明显。

    关于ruby-on-rails - 在 rails 3.1 中隐藏语言环境参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8959993/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com