【发布时间】:2015-08-11 20:41:38
【问题描述】:
我正在尝试在我的应用中实现第二语言(法语)。对于只需要支持一种额外语言的 10 页小型 Web 应用程序来说,标准的 Rails 国际化方法似乎太过分了。因此,相反,我正在考虑为我的每个视图以替代语言创建第二个 .html.erb,然后在每种语言中设置链接以链接到该语言的视图页面。
问题出在少数 html.erbs 中,例如 application.html.erb 和由 Devise 用户系统自动生成的视图,在这种情况下,制作第二个版本可能比它的价值更麻烦。在这些方面,我认为最简单的方法可能是添加一些条件,根据用户从哪个页面导航或当前在哪个页面上显示英语或法语(因为application.html.erb 显示在每个页面的顶部和底部)。
如何根据用户当前所在的页面或用户从哪个页面导航,为 application.html.erb 和其他视图创建显示法语的条件?
例如我有my_app.com/index 和my_app.com/index_fr。我已经拥有所有法语语言的index_fr,但现在我还需要在从application.html.erb 发布的部分中显示法语,并且有几页像我的my_app.com/users/sign_up 这样我不想制作第二个视图是因为我不想过多地修改 Devise,我希望能够根据它们是否导航来显示我的英语或法语副本,例如,/index 与 /index_fr、@987654331 @ vs /entries/fr/5(显示英文和法文页面)等
有什么想法吗?
【问题讨论】:
-
请将问题标题和正文缩小到一个问题/概念。请使用代码块格式化(内联反引号)。在不知道设计的情况下,唯一能想到的就是设置隐藏属性。
-
谢谢。我主要是问如何知道用户来自哪些页面,尽管我想解释一下上下文,以防有人对如何解决我的问题有更好的想法。
-
justinweiss.com/blog/2015/03/17/how-rails-sessions-work 我认为将首选语言存储在会话或 cookie 中是最好的方法。
标签: html ruby-on-rails ruby devise