我使用Rails 6.1.4,并且我需要在 2 種語言中配置屈折變化,但是當我嘗試使用復數形式時,這個詞不適用復數形式。
我需要以不同的語言應用不同的規則,但不起作用。
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.plural(/^(ox)$/i, '\1en')
inflect.singular(/^(ox)en/i, '\1')
inflect.irregular "person", "people"
inflect.uncountable %w[fish sheep]
end
ActiveSupport::Inflector.inflections(:"pt-BR") do |inflect|
inflect.plural(/$/, "s")
inflect.plural(/^([a-zA-z]*)a$/i, '\1as')
inflect.plural(/(s)$/i, '\1')
inflect.plural(/^(paí)s$/i, '\1ses')
inflect.plural(/(z|r)$/i, '\1es')
inflect.plural(/al$/i, "ais")
inflect.plural(/el$/i, "eis")
inflect.plural(/ol$/i, "ois")
inflect.plural(/ul$/i, "uis")
inflect.plural(/([^aeiou])l$/i, '\1is')
...
# Irregulares
inflect.irregular "país", "países"
end
這是嘗試應用復數時的輸出

uj5u.com熱心網友回復:
請參閱String#pluralize的檔案
復數(count = nil, locale = :en)
如果指定了可選引數 locale,則該單詞將被復數為該語言的單詞。默認情況下,此引數設定為 :en。
如果您想使用非英語復數規則,您必須指定您的語言環境。
"canal".pluralize(:"pt-BR")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/482381.html
