gpt4 book ai didi

ruby-on-rails - 避免 I18n 回退到默认语言环境

转载 作者:行者123 更新时间:2023-12-04 00:12:17 25 4
gpt4 key购买 nike

我在我的 application.rb

中配置了以下内容
config.i18n.available_locales = [:at, :de, :ch_de, :ch_fr, :fr, :int_en, :int_fr]
config.i18n.default_locale = :at

我的默认语言环境设置为 :at(奥地利)。我需要路由转换。没有它,Rails 服务器将无法启动,公平地说,这是有道理的。

我现在创建了一个后备 map ,效果很好:

config.i18n.fallbacks = {'de' => 'at', 'ch_de' => 'at', 'ch_fr' => 'fr', 'int_fr' => 'fr', 'fr' => 'fr', 'int_en' => 'int_en'}

所以基本上我希望所有讲德语的国家都回退到 :at,而所有讲法语的国家回退到 :fr。

但是,我在任何情况下都不希望 :fr 退回到 :at。这是为了 SEO 目的,因为一些法语页面没有配置元数据。所以现在法语页面将显示奥地利语 :at 元数据条目。这是错误的。

如果我完全关闭回退:

config.i18n.fallbacks = false

以下在我看来效果很好:

t('.metatitle', :default => "")

在这种情况下,如果没有可用的翻译,则不会显示任何内容。但是,网站的其余部分已经存在依赖于回退 - 因此考虑到实现更改的努力,这不是一个选项。

有没有办法关闭个别翻译的回退?

或者我是否可以实现回退 map 并确保该 map 不会回退到它的默认语言环境,例如,如果不存在法语 :fr 翻译?

PS: 需要默认语言环境的路由翻译 gem 是 this one here .

感谢您的帮助!

最佳答案

弄清楚了 - 并想到与您分享:

如果您希望避免在个别翻译时回退到默认语言环境,您只需发送一个空的回退数组,如下所示:

t('.metatitle', :default => "", :fallback => [])

瞧瞧!

关于ruby-on-rails - 避免 I18n 回退到默认语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32730983/

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