/// <summary> /// A method to tell if a word is already a plural. /// </summary> /// <param name="noun">The word.</param> /// <returns>True if plural, false otherwise.</returns> public bool IsPlural(string noun) { // Handles all irregular plurals and plurals that are are the same as their singular if (IrregularPlurals.Contains(noun)) { return(true); } if (SingularsEndingInOneS.Contains(noun)) { return(false); } if (SingularSEndings.Any(ss => noun.EndsWith(ss, StringComparison.OrdinalIgnoreCase))) { return(false); } if (SingularSEndings.Any(s => noun.EndsWith(s, StringComparison.OrdinalIgnoreCase))) { return(false); } if (noun.Length == 1) { return(false); } if (noun.EndsWith("s", StringComparison.OrdinalIgnoreCase)) { return(true); } return(false); }
/// <summary> /// The plural form of a one-word singular noun /// </summary> public static string PluralOfNoun(string singular) { if (IrregularPlurals.TryGetValue(singular, out string plural)) { return(plural); } foreach (var i in Inflections) { if (i.MatchSingularForPlural(singular)) { return(i.InflectSingularForPlural(singular)); } } throw new ArgumentException($"'{singular}' appears to be a singular noun, but I can't find a plural inflection for it"); }
/// <summary> /// The plural form of a one-word singular noun /// </summary> public static string PluralOfNoun(string singular) { if (IrregularPlurals.TryGetValue(singular, out string plural)) { return(plural); } foreach (var i in Inflections) { if (i.MatchSingularForPlural(singular)) { return(i.InflectSingularForPlural(singular)); } } throw new GrammaticalError($"'{singular}' appears to be a singular noun, but I can't find a plural inflection for it", $"In this context, the term '<i>{singular}</i>' appears to be a singular noun, but I can't find a plural inflection for it"); }