static Pluralizer()
{
// populate lookup tables for special words
_specialSingulars = new Dictionary<string, Word>(StringComparer.OrdinalIgnoreCase);
_specialPlurals = new Dictionary<string, Word>(StringComparer.OrdinalIgnoreCase);
for (int i = 0; i < _specialWordsStringTable.Length; i += 3)
{
string s = _specialWordsStringTable[i];
string p = _specialWordsStringTable[i + 1];
string p2 = _specialWordsStringTable[i + 2];
if (string.IsNullOrEmpty(p))
{
p = s;
}
Word w = new Word(s, p, p2);
_specialSingulars.Add(s, w);
_specialPlurals.Add(p, w);
if (!string.IsNullOrEmpty(p2))
{
_specialPlurals.Add(p2, w);
}
}
// populate suffix rules list
_suffixRules = new List<SuffixRule>();
for (int i = 0; i < _suffixRulesStringTable.Length; i += 2)
{
string singular = _suffixRulesStringTable[i];
string plural = _suffixRulesStringTable[i + 1];
_suffixRules.Add(new SuffixRule(singular, plural));
}
}