gpt4 book ai didi

ruby-on-rails - 在 Rails5 上启用变化

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

我需要在 Rails5 应用程序上添加意大利语的屈折规则。

所以我更新了 initializers/inflections.rb如下。

ActiveSupport::Inflector.inflections(:it) do |inflect|
inflect.plural /^([\w]*)o/i, '\1i'
inflect.plural /^([\w]*)a/i, '\1e'
inflect.uncountable %w( attività )
end

但是重启服务器后,仍然使用英文规则。

区域设置正确设置为 :it (UI 已正确本地化)但单词使用英语规则复数。

我是否有办法启用我定义的规则?

谢谢

最佳答案

Rails docs for pluralize似乎表明语言环境必须作为参数传递到复数方法中,而不是从应用程序的语言环境中自动推断出来。所以像:

pluralize("cane", :it)
# or directly on string
"cane".pluralize(2, :it)
...应该管用。
如果您有一个多区域应用程序,您可以替换 :itI18n.locale根据您的用户的语言环境更改屈折语言环境。
编辑
不过,您可能想再次查看您的规则!作为目前
"cane".pluralize(:it) #=> "cene"
即使我(根本不会说意大利语)也能看出这是错误的。之所以发生这种情况,是因为您的正则表达式中缺少字符串 anchor 的结尾,因此正在获取 a 的第一个实例。只需添加 \z在正则表达式的末尾确保只识别最后一个字符 - 我建议使用 \A而不是 ^还有:
ActiveSupport::Inflector.inflections(:it) do |inflect|
inflect.plural /\A([\w]*)o\z/i, '\1i'
inflect.plural /\A([\w]*)a\z/i, '\1e'
inflect.uncountable %w( attività )
end

关于ruby-on-rails - 在 Rails5 上启用变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40128903/

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