ruby-on-rails - rails : changing locale and keeping page parameters

标签 ruby-on-rails internationalization

我有一个导航栏,其中包含指向不同语言的链接:

<%= link_to t('header.english'), locale: "en" %>

问题是当用户尝试在 url 中包含附加参数的页面上切换语言时。此时更改区域设置会重新加载页面并删除所有附加参数。

那么,如何将当前页面的所有参数传递给语言环境切换链接呢?

例如,当
/page/new?param1=1&param2=2

已打开,用户切换区域设置,
/page/new?locale=en

已打开,并且两个附加参数都从 url 中删除。

最佳答案

如果您需要 locale param 保留在所有请求中,最好使用这种方法:

# app/controllers/application_controller.rb
def default_url_options(options={})
  { locale: I18n.locale }
end

来自 rails guide

关于ruby-on-rails - rails : changing locale and keeping page parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727609/

相关文章:

ruby-on-rails - 为什么 Safari 会导致 Rails CSRF 异常,而 Chrome 不会?

php - 在 PHP 应用程序中支持多语言的最佳和最快方法是什么

ruby-on-rails - 如何创建一个范围来查找 "Authors who have zero posts"?

ruby-on-rails - 在这部分代码中设置 klass = self 的动机是什么

flutter - 我应该在 Flutter : S. of(context) 或 S.current 中为 i18n 使用什么?

localization - 用于语言和文化感知软件的术语

html方向按语言? (如果英语目录=ltr 如果阿拉伯语目录=rtl)

@ngx-translate 和 ngx-translate-messageformat-compiler 的 Angular 复数化无法正确初始化

ruby-on-rails - 如何将长日期转换为日期?

ruby-on-rails - Rails3 CMS舒适墨西哥沙发与omniauth路由不匹配