gpt4 book ai didi

ruby-on-rails - Rails i18n 同时显示两种语言

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

我在网站上使用两种语言,英语和丹麦语。

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_localeda .
<% 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

这与语言更改工作的其他页面相同。

任何想法可能导致这种情况?

编辑:
这是渲染列表时的外观示例。
enter image description here

如您所见,第三行是英语,其他行是丹麦语。并且选择的语言是英语。

最佳答案

您使用的是哪个版本的 Rails?

我的猜测是您正在使用 fragment caching (可能默认情况下)但不包括缓存键中的语言环境。我没试过,但也许是 cache_with_locale gem 将解决您的问题。

关于ruby-on-rails - Rails i18n 同时显示两种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51610922/

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