在某些口语中,将单数词变为复数词可能非常困难,而其他语言则有简单的规则。
GrammaticalNumber
深受 ActiveSupport::Inflector
的启发,该 ActiveSupport::Inflector
来源于 Ruby on Rails Web 框架。
"person".pluralized() // people
"center".pluralized() // centers
"sheep".pluralized() // sheep
"knife".pluralized() // knives
"mouse".pluralized() // mice
"money".pluralized() // money
"axis".pluralized() // axes
"item".pluralized() // items
"status".pluralized() // statuses
"fox".pluralized() // foxes
"move".pluralized() // moves
"tooth".pluralized() // teeth
"foxes".pluralized() // foxes
"millennium".pluralized() // millennia
"child".pluralized() // children
"matrix".pluralized() // matrices
"man".pluralized() // men
"ox".pluralized() // oxen
"radius".pluralized() // radii
"grandchild".pluralized() // grandchildren
"children".singularized() // child
"tables".singularized() // table
"computers".singularized() // computer
"mice".singularized() // mouse
"teeth".singularized() // tooth
"axes".singularized() // axis
"women".singularized() // woman
"grandchildren".singularized() // grandchild
GrammaticalNumber
将尝试匹配您输入的单词的大小写。支持小写、大写和首字母大写的单词。
"tooth".pluralized() // teeth
"TOOTH".pluralized() // TOOTH
"Tooth".pluralized() // Teeth
在复数化的 String
前面加上 count
。如果 count
为 0
,将使用单数单词。
"child".pluralized(count: 0) // 0 children
"child".pluralized(count: 1) // 1 child
"child".pluralized(count: 3) // 3 children
"knife".pluralized(count: 0) // 0 knives
"knife".pluralized(count: 1) // 1 knife
"knife".pluralized(count: 3) // 3 knives
"sheep".pluralized(count: 0) // 0 sheep
"sheep".pluralized(count: 1) // 1 sheep
"sheep".pluralized(count: 3) // 3 sheep
let rule: GrammaticalNumberRule = .uncountable("money")
money
将永远不会改变。
let rule: GrammaticalNumberRule = .irregular("tooth", "teeth")
当与 pluralized()
一起使用时,将 tooth
变为 teeth
。当与 singularized()
一起使用时,将 teeth
变为 tooth
。
let rule: GrammaticalNumberRule = .plural(#"^(m|l)ouse$"#, #"$1ice"#)
mouse
变成 mice
,louse
变成 lice
。
let rule: GrammaticalNumberRule = .singular(#"(matr)ices$"#, #"$1ix"#)
将 matrices
变为 matrix
。
GrammaticalNumberRule.add(rule)
为了支持其他语言,请将 language
参数传递给您的自定义规则。使用相同的 language
值调用 .pluralized(language: yourLanguage)
— 比如这样:.pluralized(language: "tr")
GrammaticalNumberRule.add(.plural(#"([aoıu][^aoıueöiü]{0,6})$"#, #"$1lar"#), language: "tr")
GrammaticalNumberRule.add(.plural(#"([eöiü][^aoıueöiü]{0,6})$"#, #"$1ler"#), language: "tr")
GrammaticalNumberRule.add(.singular(#"l[ae]r$"#, #""#), language: "tr")
"kitap".pluralized(language: "tr") // kitaplar
"yemek".pluralized(language: "tr") // yemekler
GrammaticalNumber 在 MIT 许可证 下发布。