public static string RemoveDiacritics(string accentedStr, DictionaryDef eDictionary) { char[] replacement = null; char[] accents = null; switch (eDictionary) { case DictionaryDef.Arabic: replacement = arabicReplace; accents = arabicAccents; break; case DictionaryDef.Slovak: case DictionaryDef.SlovakAlt: replacement = slovakianReplace; accents = slovakianAccents; break; case DictionaryDef.Latvian: replacement = latvianReplace; accents = latvianAccents; break; case DictionaryDef.Icelandic: replacement = icelandicReplace; accents = icelandicAccents; break; case DictionaryDef.Estonian: replacement = estonianReplace; accents = estonianAccents; break; case DictionaryDef.Bulgarian: replacement = bulgarianReplace; accents = bulgarianAccents; break; case DictionaryDef.Romanian: replacement = romanianReplace; accents = romanianAccents; break; case DictionaryDef.Croatian: case DictionaryDef.Slovenian: replacement = croatianReplace; accents = croatianAccents; break; case DictionaryDef.English: replacement = englishReplace; accents = englishAccents; break; case DictionaryDef.French: case DictionaryDef.CanadianFrench: case DictionaryDef.SwissFrench: replacement = frenchReplace; accents = frenchAccents; break; case DictionaryDef.German: replacement = germanReplace; accents = germanAccents; break; case DictionaryDef.Spanish: replacement = spanishReplace; accents = spanishAccents; break; case DictionaryDef.Catalan: replacement = catalanReplace; accents = catalanAccents; break; case DictionaryDef.Italian: replacement = italianReplace; accents = italianAccents; break; case DictionaryDef.Polish: replacement = polishReplace; accents = polishAccents; break; case DictionaryDef.Hungarian: replacement = hungarianReplace; accents = hungarianAccents; break; case DictionaryDef.Portuguese: case DictionaryDef.BrazilianPortuguese: replacement = portugueseReplace; accents = portugueseAccents; break; case DictionaryDef.Czech: case DictionaryDef.CzechAlt: replacement = czechReplace; accents = czechAccents; break; case DictionaryDef.Dutch: replacement = dutchReplace; accents = dutchAccents; break; case DictionaryDef.Turkish: replacement = turkishReplace; accents = turkishAccents; break; case DictionaryDef.Russian: replacement = russianReplace; accents = russianAccents; break; case DictionaryDef.Ukrainian: replacement = ukarainianReplace; accents = ukarainianAccents; break; case DictionaryDef.Greek: replacement = greekReplace; accents = greekAccents; break; default: return(accentedStr); } if (accents != null && replacement != null && accentedStr.IndexOfAny(accents) > 0) { sbStripAccents.Length = 0; sbStripAccents.Append(accentedStr); for (var i = 0; i < accents.Length; i++) { sbStripAccents.Replace(accents[i], replacement[i]); } return(sbStripAccents.ToString()); } return(accentedStr); }
public static string Remove(string accentedStr, DictionaryDef eDictionary) { char[] replacement = null; char[] accents = null; switch (eDictionary) { case DictionaryDef.Arabic: replacement = arabicReplace; accents = arabicAccents; break; case DictionaryDef.Slovak: case DictionaryDef.SlovakAlt: replacement = slovakianReplace; accents = slovakianAccents; break; case DictionaryDef.Latvian: replacement = latvianReplace; accents = latvianAccents; break; case DictionaryDef.Icelandic: replacement = icelandicReplace; accents = icelandicAccents; break; case DictionaryDef.Estonian: replacement = estonianReplace; accents = estonianAccents; break; case DictionaryDef.Bulgarian: replacement = bulgarianReplace; accents = bulgarianAccents; break; case DictionaryDef.Romanian: replacement = romanianReplace; accents = romanianAccents; break; case DictionaryDef.Croatian: case DictionaryDef.Slovenian: replacement = croatianReplace; accents = croatianAccents; break; case DictionaryDef.English: replacement = englishReplace; accents = englishAccents; break; case DictionaryDef.French: case DictionaryDef.CanadianFrench: case DictionaryDef.SwissFrench: replacement = frenchReplace; accents = frenchAccents; break; case DictionaryDef.German: replacement = germanReplace; accents = germanAccents; break; case DictionaryDef.Spanish: replacement = spanishReplace; accents = spanishAccents; break; case DictionaryDef.Catalan: replacement = catalanReplace; accents = catalanAccents; break; case DictionaryDef.Italian: replacement = italianReplace; accents = italianAccents; break; case DictionaryDef.Polish: replacement = polishReplace; accents = polishAccents; break; case DictionaryDef.Hungarian: replacement = hungarianReplace; accents = hungarianAccents; break; case DictionaryDef.Portuguese: case DictionaryDef.BrazilianPortuguese: replacement = portugueseReplace; accents = portugueseAccents; break; case DictionaryDef.Czech: case DictionaryDef.CzechAlt: replacement = czechReplace; accents = czechAccents; break; case DictionaryDef.Dutch: replacement = dutchReplace; accents = dutchAccents; break; case DictionaryDef.Turkish: replacement = turkishReplace; accents = turkishAccents; break; case DictionaryDef.Russian: replacement = russianReplace; accents = russianAccents; break; case DictionaryDef.Ukrainian: replacement = ukarainianReplace; accents = ukarainianAccents; break; case DictionaryDef.Greek: replacement = greekReplace; accents = greekAccents; break; default: return accentedStr; } if (accents != null && replacement != null && accentedStr.IndexOfAny(accents) > 0) { sbStripAccents.Length = 0; sbStripAccents.Append(accentedStr); for (var i = 0; i < accents.Length; i++) { sbStripAccents.Replace(accents[i], replacement[i]); } return sbStripAccents.ToString(); } return accentedStr; }