Skip to content

Instantly share code, notes, and snippets.

@Davidblkx
Created September 15, 2016 09:50
Show Gist options
  • Save Davidblkx/e7a3f23b19457496673932c0cc687d66 to your computer and use it in GitHub Desktop.
Save Davidblkx/e7a3f23b19457496673932c0cc687d66 to your computer and use it in GitHub Desktop.
CultureInfo extension of ThreeLetterISOLanguageName, since is not present in current version
using System.Collections.Generic;
using System.Globalization;
namespace Extensions
{
public static class CultureInfoExtensions
{
public static string ThreeLetterISOLanguageName(this CultureInfo cultureInfo)
{
#region Iso369 Mapping
Dictionary<string, string> Iso369Mapping = new Dictionary<string, string>
{
{ "aa", "aar"},
{ "ab", "abk"},
{ "af", "afr"},
{ "ak", "aka"},
{ "sq", "alb"},
{ "am", "amh"},
{ "ar", "ara"},
{ "an", "arg"},
{ "hy", "arm"},
{ "as", "asm"},
{ "av", "ava"},
{ "ae", "ave"},
{ "ay", "aym"},
{ "az", "aze"},
{ "ba", "bak"},
{ "bm", "bam"},
{ "eu", "baq"},
{ "be", "bel"},
{ "bn", "ben"},
{ "bh", "bih"},
{ "bi", "bis"},
{ "bo", "tib"},
{ "bs", "bos"},
{ "br", "bre"},
{ "bg", "bul"},
{ "my", "bur"},
{ "ca", "cat"},
{ "cs", "cze"},
{ "ch", "cha"},
{ "ce", "che"},
{ "zh", "chi"},
{ "cu", "chu"},
{ "cv", "chv"},
{ "kw", "cor"},
{ "co", "cos"},
{ "cr", "cre"},
{ "cy", "wel"},
{ "cs", "cze"},
{ "da", "dan"},
{ "de", "ger"},
{ "dv", "div"},
{ "nl", "dut"},
{ "dz", "dzo"},
{ "el", "gre"},
{ "en", "eng"},
{ "eo", "epo"},
{ "et", "est"},
{ "eu", "baq"},
{ "ee", "ewe"},
{ "fo", "fao"},
{ "fa", "per"},
{ "fj", "fij"},
{ "fi", "fin"},
{ "fr", "fre"},
{ "fr", "fre"},
{ "fy", "fry"},
{ "ff", "ful"},
{ "ka", "geo"},
{ "de", "ger"},
{ "gd", "gla"},
{ "ga", "gle"},
{ "gl", "glg"},
{ "gv", "glv"},
{ "el", "gre"},
{ "gn", "grn"},
{ "gu", "guj"},
{ "ht", "hat"},
{ "ha", "hau"},
{ "he", "heb"},
{ "hz", "her"},
{ "hi", "hin"},
{ "ho", "hmo"},
{ "hr", "hrv"},
{ "hu", "hun"},
{ "hy", "arm"},
{ "ig", "ibo"},
{ "is", "ice"},
{ "io", "ido"},
{ "ii", "iii"},
{ "iu", "iku"},
{ "ie", "ile"},
{ "ia", "ina"},
{ "id", "ind"},
{ "ik", "ipk"},
{ "is", "ice"},
{ "it", "ita"},
{ "jv", "jav"},
{ "ja", "jpn"},
{ "kl", "kal"},
{ "kn", "kan"},
{ "ks", "kas"},
{ "ka", "geo"},
{ "kr", "kau"},
{ "kk", "kaz"},
{ "km", "khm"},
{ "ki", "kik"},
{ "rw", "kin"},
{ "ky", "kir"},
{ "kv", "kom"},
{ "kg", "kon"},
{ "ko", "kor"},
{ "kj", "kua"},
{ "ku", "kur"},
{ "lo", "lao"},
{ "la", "lat"},
{ "lv", "lav"},
{ "li", "lim"},
{ "ln", "lin"},
{ "lt", "lit"},
{ "lb", "ltz"},
{ "lu", "lub"},
{ "lg", "lug"},
{ "mk", "mac"},
{ "mh", "mah"},
{ "ml", "mal"},
{ "mi", "mao"},
{ "mr", "mar"},
{ "ms", "may"},
{ "mk", "mac"},
{ "mg", "mlg"},
{ "mt", "mlt"},
{ "mn", "mon"},
{ "mi", "mao"},
{ "ms", "may"},
{ "my", "bur"},
{ "na", "nau"},
{ "nv", "nav"},
{ "nr", "nbl"},
{ "nd", "nde"},
{ "ng", "ndo"},
{ "ne", "nep"},
{ "nl", "dut"},
{ "nn", "nno"},
{ "nb", "nob"},
{ "no", "nor"},
{ "ny", "nya"},
{ "oc", "oci"},
{ "oj", "oji"},
{ "or", "ori"},
{ "om", "orm"},
{ "os", "oss"},
{ "pa", "pan"},
{ "fa", "per"},
{ "pi", "pli"},
{ "pl", "pol"},
{ "pt", "por"},
{ "ps", "pus"},
{ "qu", "que"},
{ "rm", "roh"},
{ "ro", "rum"},
{ "ro", "rum"},
{ "rn", "run"},
{ "ru", "rus"},
{ "sg", "sag"},
{ "sa", "san"},
{ "si", "sin"},
{ "sk", "slo"},
{ "sk", "slo"},
{ "sl", "slv"},
{ "se", "sme"},
{ "sm", "smo"},
{ "sn", "sna"},
{ "sd", "snd"},
{ "so", "som"},
{ "st", "sot"},
{ "es", "spa"},
{ "sq", "alb"},
{ "sc", "srd"},
{ "sr", "srp"},
{ "ss", "ssw"},
{ "su", "sun"},
{ "sw", "swa"},
{ "sv", "swe"},
{ "ty", "tah"},
{ "ta", "tam"},
{ "tt", "tat"},
{ "te", "tel"},
{ "tg", "tgk"},
{ "tl", "tgl"},
{ "th", "tha"},
{ "bo", "tib"},
{ "ti", "tir"},
{ "to", "ton"},
{ "tn", "tsn"},
{ "ts", "tso"},
{ "tk", "tuk"},
{ "tr", "tur"},
{ "tw", "twi"},
{ "ug", "uig"},
{ "uk", "ukr"},
{ "ur", "urd"},
{ "uz", "uzb"},
{ "ve", "ven"},
{ "vi", "vie"},
{ "vo", "vol"},
{ "cy", "wel"},
{ "wa", "wln"},
{ "wo", "wol"},
{ "xh", "xho"},
{ "yi", "yid"},
{ "yo", "yor"},
{ "za", "zha"},
{ "zh", "chi"},
{ "zu", "zul"}
};
#endregion Iso369 Mapping
string key = cultureInfo?.TwoLetterISOLanguageName?.ToLower() ?? null;
if (key == null) return null;
if (Iso369Mapping.ContainsKey(key))
return Iso369Mapping[key];
return null;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment