| | | 1 | | // ----------------------------------------------------------------------- |
| | | 2 | | // <copyright file="Inflectors.English.cs" company="Stéphane ANDRE"> |
| | | 3 | | // Copyright (c) Stéphane ANDRE. All rights reserved. |
| | | 4 | | // </copyright> |
| | | 5 | | // ----------------------------------------------------------------------- |
| | | 6 | | |
| | | 7 | | using MyNet.Globalization.Culture; |
| | | 8 | | |
| | | 9 | | namespace MyNet.Globalization.Inflection.Cultures; |
| | | 10 | | |
| | | 11 | | public static partial class Inflectors |
| | | 12 | | { |
| | | 13 | | /// <summary> |
| | | 14 | | /// Gets an inflector for the English language, which includes rules for pluralization and singularization of Englis |
| | | 15 | | /// </summary> |
| | 6 | 16 | | public static IInflector English { get; } = Inflector.Create(SupportedCultures.English) |
| | 6 | 17 | | .AddPluralRule("$", "s") |
| | 6 | 18 | | .AddPluralRule("s$", "s") |
| | 6 | 19 | | .AddPluralRule("(ax|test)is$", "$1es") |
| | 6 | 20 | | .AddPluralRule("(octop|vir|alumn|fung|cact|foc|hippopotam|radi|stimul|syllab|nucle)us$", "$1i") |
| | 6 | 21 | | .AddPluralRule("(alias|bias|iris|status|campus|apparatus|virus|walrus|trellis)$", "$1es") |
| | 6 | 22 | | .AddPluralRule("(buffal|tomat|volcan|ech|embarg|her|mosquit|potat|torped|vet)o$", "$1oes") |
| | 6 | 23 | | .AddPluralRule("([dti])um$", "$1a") |
| | 6 | 24 | | .AddPluralRule("sis$", "ses") |
| | 6 | 25 | | .AddPluralRule("(?:([^f])fe|([lr])f)$", "$1$2ves") |
| | 6 | 26 | | .AddPluralRule("(hive)$", "$1s") |
| | 6 | 27 | | .AddPluralRule("([^aeiouy]|qu)y$", "$1ies") |
| | 6 | 28 | | .AddPluralRule("(x|ch|ss|sh)$", "$1es") |
| | 6 | 29 | | .AddPluralRule("(matr|vert|ind|d)ix|ex$", "$1ices") |
| | 6 | 30 | | .AddPluralRule("(^[m|l])ouse$", "$1ice") |
| | 6 | 31 | | .AddPluralRule("^(ox)$", "$1en") |
| | 6 | 32 | | .AddPluralRule("(quiz)$", "$1zes") |
| | 6 | 33 | | .AddPluralRule("(buz|blit|walt)z$", "$1zes") |
| | 6 | 34 | | .AddPluralRule("(hoo|lea|loa|thie)f$", "$1ves") |
| | 6 | 35 | | .AddPluralRule("(alumn|alg|larv|vertebr)a$", "$1ae") |
| | 6 | 36 | | .AddPluralRule("(criteri|phenomen)on$", "$1a") |
| | 6 | 37 | | .AddSingularRule("s$", string.Empty) |
| | 6 | 38 | | .AddSingularRule("(n)ews$", "$1ews") |
| | 6 | 39 | | .AddSingularRule("([dti])a$", "$1um") |
| | 6 | 40 | | .AddSingularRule("(analy|ba|diagno|parenthe|progno|synop|the|ellip|empha|neuro|oa|paraly)ses$", "$1sis") |
| | 6 | 41 | | .AddSingularRule("([^f])ves$", "$1fe") |
| | 6 | 42 | | .AddSingularRule("(hive)s$", "$1") |
| | 6 | 43 | | .AddSingularRule("(tive)s$", "$1") |
| | 6 | 44 | | .AddSingularRule("([lr]|hoo|lea|loa|thie)ves$", "$1f") |
| | 6 | 45 | | .AddSingularRule("(^zomb)?([^aeiouy]|qu)ies$", "$2y") |
| | 6 | 46 | | .AddSingularRule("(s)eries$", "$1eries") |
| | 6 | 47 | | .AddSingularRule("(m)ovies$", "$1ovie") |
| | 6 | 48 | | .AddSingularRule("(x|ch|ss|sh)es$", "$1") |
| | 6 | 49 | | .AddSingularRule("(^[m|l])ice$", "$1ouse") |
| | 6 | 50 | | .AddSingularRule("(o)es$", "$1") |
| | 6 | 51 | | .AddSingularRule("(shoe)s$", "$1") |
| | 6 | 52 | | .AddSingularRule("(cris|ax|test)es$", "$1is") |
| | 6 | 53 | | .AddSingularRule("(octop|vir|alumn|fung|cact|foc|hippopotam|radi|stimul|syllab|nucle)i$", "$1us") |
| | 6 | 54 | | .AddSingularRule("(alias|bias|iris|status|campus|apparatus|virus|walrus|trellis)es$", "$1") |
| | 6 | 55 | | .AddSingularRule("^(ox)en", "$1") |
| | 6 | 56 | | .AddSingularRule("(matr|d)ices$", "$1ix") |
| | 6 | 57 | | .AddSingularRule("(vert|ind)ices$", "$1ex") |
| | 6 | 58 | | .AddSingularRule("(quiz)zes$", "$1") |
| | 6 | 59 | | .AddSingularRule("(buz|blit|walt)zes$", "$1z") |
| | 6 | 60 | | .AddSingularRule("(alumn|alg|larv|vertebr)ae$", "$1a") |
| | 6 | 61 | | .AddSingularRule("(criteri|phenomen)a$", "$1on") |
| | 6 | 62 | | .AddSingularRule("([b|r|c]ook|room|smooth)ies$", "$1ie") |
| | 6 | 63 | | .AddIrregular("person", "people") |
| | 6 | 64 | | .AddIrregular("man", "men") |
| | 6 | 65 | | .AddIrregular("human", "humans") |
| | 6 | 66 | | .AddIrregular("child", "children") |
| | 6 | 67 | | .AddIrregular("sex", "sexes") |
| | 6 | 68 | | .AddIrregular("move", "moves") |
| | 6 | 69 | | .AddIrregular("goose", "geese") |
| | 6 | 70 | | .AddIrregular("wave", "waves") |
| | 6 | 71 | | .AddIrregular("die", "dice") |
| | 6 | 72 | | .AddIrregular("foot", "feet") |
| | 6 | 73 | | .AddIrregular("tooth", "teeth") |
| | 6 | 74 | | .AddIrregular("curriculum", "curricula") |
| | 6 | 75 | | .AddIrregular("database", "databases") |
| | 6 | 76 | | .AddIrregular("zombie", "zombies") |
| | 6 | 77 | | .AddIrregular("personnel", "personnel") |
| | 6 | 78 | | .AddIrregular("cache", "caches") |
| | 6 | 79 | | .AddIrregular("is", "are", matchEnding: false) |
| | 6 | 80 | | .AddIrregular("that", "those", matchEnding: false) |
| | 6 | 81 | | .AddIrregular("this", "these", matchEnding: false) |
| | 6 | 82 | | .AddIrregular("bus", "buses", matchEnding: false) |
| | 6 | 83 | | .AddIrregular("staff", "staff", matchEnding: false) |
| | 6 | 84 | | .AddUncountable("equipment") |
| | 6 | 85 | | .AddUncountable("information") |
| | 6 | 86 | | .AddUncountable("corn") |
| | 6 | 87 | | .AddUncountable("milk") |
| | 6 | 88 | | .AddUncountable("rice") |
| | 6 | 89 | | .AddUncountable("money") |
| | 6 | 90 | | .AddUncountable("species") |
| | 6 | 91 | | .AddUncountable("series") |
| | 6 | 92 | | .AddUncountable("fish") |
| | 6 | 93 | | .AddUncountable("sheep") |
| | 6 | 94 | | .AddUncountable("deer") |
| | 6 | 95 | | .AddUncountable("aircraft") |
| | 6 | 96 | | .AddUncountable("oz") |
| | 6 | 97 | | .AddUncountable("tsp") |
| | 6 | 98 | | .AddUncountable("tbsp") |
| | 6 | 99 | | .AddUncountable("ml") |
| | 6 | 100 | | .AddUncountable("l") |
| | 6 | 101 | | .AddUncountable("water") |
| | 6 | 102 | | .AddUncountable("waters") |
| | 6 | 103 | | .AddUncountable("semen") |
| | 6 | 104 | | .AddUncountable("sperm") |
| | 6 | 105 | | .AddUncountable("bison") |
| | 6 | 106 | | .AddUncountable("grass") |
| | 6 | 107 | | .AddUncountable("hair") |
| | 6 | 108 | | .AddUncountable("mud") |
| | 6 | 109 | | .AddUncountable("elk") |
| | 6 | 110 | | .AddUncountable("luggage") |
| | 6 | 111 | | .AddUncountable("moose") |
| | 6 | 112 | | .AddUncountable("offspring") |
| | 6 | 113 | | .AddUncountable("salmon") |
| | 6 | 114 | | .AddUncountable("shrimp") |
| | 6 | 115 | | .AddUncountable("someone") |
| | 6 | 116 | | .AddUncountable("swine") |
| | 6 | 117 | | .AddUncountable("trout") |
| | 6 | 118 | | .AddUncountable("tuna") |
| | 6 | 119 | | .AddUncountable("corps") |
| | 6 | 120 | | .AddUncountable("scissors") |
| | 6 | 121 | | .AddUncountable("means") |
| | 6 | 122 | | .AddUncountable("mail") |
| | 6 | 123 | | .AddUncountable("data") |
| | 6 | 124 | | .Build(); |
| | | 125 | | } |
| | | 126 | | |