我在网站上使用两种语言,英语和丹麦语。
1)我有一个看起来像这样的链接列表:
<%= link_to html_viewer_url(activity.course, activity), target: '_blank' do %>
<%= t('.show') %>
<i class="fa fa-angle-right" aria-hidden="true"></i>
<% end %>
翻译t('.show')
在大多数情况下会显示正确的语言,但是如果该语言设置为英语,则时不时地会以丹麦语显示其中一个或两个链接,反之亦然。
2)我有一个指向http://localhost:3000/da/users/edit
的链接。当我在此页面上并按链接切换语言时,URL更改为...:3000/en/...
,但语言仍为丹麦语。如果然后我单击最初将我带到/users/edit
的链接,则语言将切换为英语。每次单击时,它会在英语和丹麦语之间切换。但是URL保持不变,包含/en/
。这仅在.../users/edit
页上发生,在其他地方则没有发生。
要切换语言,请使用以下链接。 default_locale
是da
。
<% if I18n.locale == I18n.default_locale %>
<%= link_to "English", { :locale=>'en' } %>
<% else %>
<%= link_to "Dansk", { :locale=>'da' } %>
<%end%>
在我的routes.rb
中,用户URL如下:
scope "/:locale" do
resources :users, except: [:new, :create, :edit]
end
与其他更改语言的页面相同。
有什么想法会导致这种情况吗?
您会看到第三行是英语,其他行是丹麦语。选择的语言是英语。
答案 0 :(得分:4)
您使用的是哪个版本的Rails?
我的猜测是您正在使用fragment caching(可能默认情况下),但是没有在缓存键中包含语言环境。我还没有尝试过,但是也许cache_with_locale
gem可以解决您的问题。