/// <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);
        }
Esempio n. 2
0
 /// <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");
 }
Esempio n. 3
0
 /// <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");
 }