【发布时间】:2016-12-28 01:57:57
【问题描述】:
所以我使用 i18n gem,因为我的 rails 网络应用程序必须支持 2 种语言:FR 和 NL。
我将 FR 设为默认语言环境。
我的目标是确保在任何情况下,区域设置(即 /fr/ 或 /nl/)始终显示在 URL 中。
这是 locale=nl 的情况,但不是 locale=fr 作为默认语言环境的情况。
这里有一个用户故事的例子:
- 用户到达网站后必须选择他/她的语言:假设“FR”(“FR”是默认语言环境)
- 用户现在可以浏览网站
- 用户访问页面“Newsfeed”页面,他/她的 URL 是 http://localhost:3000/newsfeed
在此示例中,URL 应该是 http://localhost:3000/fr/newsfeed(在 URL 中带有 /fr/)
这些是我的路线:
scope '(:locale)', constraints: { locale: /nl|fr/ } do
resources :articles, :path => 'newsfeed', only: [:index, :edit, :destroy, :update, :new, :create]
root to: 'languages#select'
get '*path' => redirect('/')
end
在我的 application.rb 我有
config.i18n.default_locale = :fr
config.i18n.available_locales = [:fr, :nl]
在欢迎页面,用户必须选择他们的语言,我有这个
<%= link_to "Neederlands", home_path(:locale => 'nl') %> | <%= link_to "Français", home_path(:locale => 'fr') %>
总而言之,locale=nl 的 URL 将始终显示 *http://localhost:3000/nl/newsfeed 但对于默认区域设置 fr 情况并非如此,我需要解决这个问题。
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails locale rails-i18n