Praeclarum.App.DocumentApplication.Pluralize C# (CSharp) Method

Pluralize() static private method

static private Pluralize ( string word ) : string
word string
return string
		static string Pluralize (string word)
		{
			if (string.IsNullOrEmpty (word))
				return "s";

			var last = word [word.Length - 1];

			if (last == 'y') {
				if (word.Length <= 1)
					return "ies";
				var prev = word [word.Length - 2];
				if (prev == 'a' || prev == 'e' || prev == 'i' || prev == 'o')
					return word + "s";
				if (prev == 'u' && !word.EndsWith ("quy", StringComparison.Ordinal))
					return word + "s";
				return word.Substring (0, word.Length - 1) + "ies";
			}

			if (last == 'o' ||
				last == 's' ||
				last == 'z' ||
			    word.EndsWith ("sh", StringComparison.Ordinal) ||
			    word.EndsWith ("ch", StringComparison.Ordinal))
				return word + "es";

			return word + "s";
		}