gpt4 book ai didi

ruby-on-rails - Custom Rails I18n Locale 多元化帮助

转载 作者:数据小太阳 更新时间:2023-10-29 07:16:29 28 4
gpt4 key购买 nike

我正在尝试在 I18n 和 Rails 中实现特定于语言环境的复数规则,但我没有运气。这是我正在做的:

# in config/initializers/locale.rb
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)
{
# Force Use of :few key
:ru => {:i18n => {:plural => {:rule => lambda { |n| :few}}}}
}

# in config/locales/ru.yml
ru:
user:
one: One User
few: Few Users
many: Many Users
other: Other Users

# Testing
script/console
>> I18n.locale = :ru ; I18n.t("user", :count => 20)
=> "Other Users"

正如您所看到的,我正在尝试强制使用 :few 键(它应该返回“Few Users”),只是为了看看这个该死的复数是否会起作用……但没有骰子:(

这是我运行的环境:

  • rails 2.3.8
  • 国际化 0.5.0 gem

有什么想法吗?

最佳答案

尝试重现您的问题,但遇到了同样的问题。将复数规则移到语言环境文件中,效果很好。

将语言环境文件切换为 Ruby 风格,因为出于某种原因常规 YAML 似乎不喜欢我的 lambda。

# config/initializers/locale.rb
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)

# config/locales/ru.rb
{
:ru => {
:user => {
:one => "One User",
:few => "Few Users",
:many => "Many Users",
:other => "Other Users"
},
:i18n => {
:plural => {
:rule => lambda { |n| :few }
}
}
}
}

# Testing
$ script/console
Loading development environment (Rails 2.3.8)
>> I18n.locale = :ru; I18n.t("user", :count => 20) #=> "Few Users"

可以尝试一下,看看是否有帮助

关于ruby-on-rails - Custom Rails I18n Locale 多元化帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4356990/

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