Skip to content

Instantly share code, notes, and snippets.

@jackdoe
Created December 15, 2017 13:16
Show Gist options
  • Save jackdoe/043297c8f739c53a6865138aa1dc3fe2 to your computer and use it in GitHub Desktop.
Save jackdoe/043297c8f739c53a6865138aa1dc3fe2 to your computer and use it in GitHub Desktop.
language code map from iso 639-2 to 639-1 ("eng" -> "en", "fre" -> "fr" etc)
var languagesMap = map[string]string{
"aar": "aa",
"abk": "ab",
"ace": "xx",
"ach": "xx",
"ada": "xx",
"ady": "xx",
"afa": "xx",
"afh": "xx",
"afr": "af",
"ain": "xx",
"aka": "ak",
"akk": "xx",
"alb": "sq",
"ale": "xx",
"alg": "xx",
"alt": "xx",
"amh": "am",
"ang": "xx",
"anp": "xx",
"apa": "xx",
"ara": "ar",
"arc": "xx",
"arg": "an",
"arm": "hy",
"arn": "xx",
"arp": "xx",
"art": "xx",
"arw": "xx",
"asm": "as",
"ast": "xx",
"ath": "xx",
"aus": "xx",
"ava": "av",
"ave": "ae",
"awa": "xx",
"aym": "ay",
"aze": "az",
"bad": "xx",
"bai": "xx",
"bak": "ba",
"bal": "xx",
"bam": "bm",
"ban": "xx",
"baq": "eu",
"bas": "xx",
"bat": "xx",
"bej": "xx",
"bel": "be",
"bem": "xx",
"ben": "bn",
"ber": "xx",
"bho": "xx",
"bih": "bh",
"bik": "xx",
"bin": "xx",
"bis": "bi",
"bla": "xx",
"bnt": "xx",
"bos": "bs",
"bra": "xx",
"bre": "br",
"btk": "xx",
"bua": "xx",
"bug": "xx",
"bul": "bg",
"bur": "my",
"byn": "xx",
"cad": "xx",
"cai": "xx",
"car": "xx",
"cat": "ca",
"cau": "xx",
"ceb": "xx",
"cel": "xx",
"cha": "ch",
"chb": "xx",
"che": "ce",
"chg": "xx",
"chi": "zh",
"chk": "xx",
"chm": "xx",
"chn": "xx",
"cho": "xx",
"chp": "xx",
"chr": "xx",
"chu": "cu",
"chv": "cv",
"chy": "xx",
"cmc": "xx",
"cop": "xx",
"cor": "kw",
"cos": "co",
"cpe": "xx",
"cpf": "xx",
"cpp": "xx",
"cre": "cr",
"crh": "xx",
"crp": "xx",
"csb": "xx",
"cus": "xx",
"cze": "cs",
"dak": "xx",
"dan": "da",
"dar": "xx",
"day": "xx",
"del": "xx",
"den": "xx",
"dgr": "xx",
"din": "xx",
"div": "dv",
"doi": "xx",
"dra": "xx",
"dsb": "xx",
"dua": "xx",
"dum": "xx",
"dut": "nl",
"dyu": "xx",
"dzo": "dz",
"efi": "xx",
"egy": "xx",
"eka": "xx",
"elx": "xx",
"eng": "en",
"enm": "xx",
"epo": "eo",
"est": "et",
"ewe": "ee",
"ewo": "xx",
"fan": "xx",
"fao": "fo",
"fat": "xx",
"fij": "fj",
"fil": "xx",
"fin": "fi",
"fiu": "xx",
"fon": "xx",
"fre": "fr",
"frm": "xx",
"fro": "xx",
"frr": "xx",
"frs": "xx",
"fry": "fy",
"ful": "ff",
"fur": "xx",
"gaa": "xx",
"gay": "xx",
"gba": "xx",
"gem": "xx",
"geo": "ka",
"ger": "de",
"gez": "xx",
"gil": "xx",
"gla": "gd",
"gle": "ga",
"glg": "gl",
"glv": "gv",
"gmh": "xx",
"goh": "xx",
"gon": "xx",
"gor": "xx",
"got": "xx",
"grb": "xx",
"grc": "xx",
"gre": "el",
"grn": "gn",
"gsw": "xx",
"guj": "gu",
"gwi": "xx",
"hai": "xx",
"hat": "ht",
"hau": "ha",
"haw": "xx",
"heb": "he",
"her": "hz",
"hil": "xx",
"him": "xx",
"hin": "hi",
"hit": "xx",
"hmn": "xx",
"hmo": "ho",
"hrv": "hr",
"hsb": "xx",
"hun": "hu",
"hup": "xx",
"iba": "xx",
"ibo": "ig",
"ice": "is",
"ido": "io",
"iii": "ii",
"ijo": "xx",
"iku": "iu",
"ile": "ie",
"ilo": "xx",
"ina": "ia",
"inc": "xx",
"ind": "id",
"ine": "xx",
"inh": "xx",
"ipk": "ik",
"ira": "xx",
"iro": "xx",
"ita": "it",
"jav": "jv",
"jbo": "xx",
"jpn": "ja",
"jpr": "xx",
"jrb": "xx",
"kaa": "xx",
"kab": "xx",
"kac": "xx",
"kal": "kl",
"kam": "xx",
"kan": "kn",
"kar": "xx",
"kas": "ks",
"kau": "kr",
"kaw": "xx",
"kaz": "kk",
"kbd": "xx",
"kha": "xx",
"khi": "xx",
"khm": "km",
"kho": "xx",
"kik": "ki",
"kin": "rw",
"kir": "ky",
"kmb": "xx",
"kok": "xx",
"kom": "kv",
"kon": "kg",
"kor": "ko",
"kos": "xx",
"kpe": "xx",
"krc": "xx",
"krl": "xx",
"kro": "xx",
"kru": "xx",
"kua": "kj",
"kum": "xx",
"kur": "ku",
"kut": "xx",
"lad": "xx",
"lah": "xx",
"lam": "xx",
"lao": "lo",
"lat": "la",
"lav": "lv",
"lez": "xx",
"lim": "li",
"lin": "ln",
"lit": "lt",
"lol": "xx",
"loz": "xx",
"ltz": "lb",
"lua": "xx",
"lub": "lu",
"lug": "lg",
"lui": "xx",
"lun": "xx",
"luo": "xx",
"lus": "xx",
"mac": "mk",
"mad": "xx",
"mag": "xx",
"mah": "mh",
"mai": "xx",
"mak": "xx",
"mal": "ml",
"man": "xx",
"mao": "mi",
"map": "xx",
"mar": "mr",
"mas": "xx",
"may": "ms",
"mdf": "xx",
"mdr": "xx",
"men": "xx",
"mga": "xx",
"mic": "xx",
"min": "xx",
"mis": "xx",
"mkh": "xx",
"mlg": "mg",
"mlt": "mt",
"mnc": "xx",
"mni": "xx",
"mno": "xx",
"moh": "xx",
"mon": "mn",
"mos": "xx",
"mul": "xx",
"mun": "xx",
"mus": "xx",
"mwl": "xx",
"mwr": "xx",
"myn": "xx",
"myv": "xx",
"nah": "xx",
"nai": "xx",
"nap": "xx",
"nau": "na",
"nav": "nv",
"nbl": "nr",
"nde": "nd",
"ndo": "ng",
"nds": "xx",
"nep": "ne",
"new": "xx",
"nia": "xx",
"nic": "xx",
"niu": "xx",
"nno": "nn",
"nob": "nb",
"nog": "xx",
"non": "xx",
"nor": "no",
"nqo": "xx",
"nso": "xx",
"nub": "xx",
"nwc": "xx",
"nya": "ny",
"nym": "xx",
"nyn": "xx",
"nyo": "xx",
"nzi": "xx",
"oci": "oc",
"oji": "oj",
"ori": "or",
"orm": "om",
"osa": "xx",
"oss": "os",
"ota": "xx",
"oto": "xx",
"paa": "xx",
"pag": "xx",
"pal": "xx",
"pam": "xx",
"pan": "pa",
"pap": "xx",
"pau": "xx",
"peo": "xx",
"per": "fa",
"phi": "xx",
"phn": "xx",
"pli": "pi",
"pol": "pl",
"pon": "xx",
"por": "pt",
"pra": "xx",
"pro": "xx",
"pus": "ps",
"qaa-qtz": "xx",
"que": "qu",
"raj": "xx",
"rap": "xx",
"rar": "xx",
"roa": "xx",
"roh": "rm",
"rom": "xx",
"rum": "ro",
"run": "rn",
"rup": "xx",
"rus": "ru",
"sad": "xx",
"sag": "sg",
"sah": "xx",
"sai": "xx",
"sal": "xx",
"sam": "xx",
"san": "sa",
"sas": "xx",
"sat": "xx",
"scn": "xx",
"sco": "xx",
"sel": "xx",
"sem": "xx",
"sga": "xx",
"sgn": "xx",
"shn": "xx",
"sid": "xx",
"sin": "si",
"sio": "xx",
"sit": "xx",
"sla": "xx",
"slo": "sk",
"slv": "sl",
"sma": "xx",
"sme": "se",
"smi": "xx",
"smj": "xx",
"smn": "xx",
"smo": "sm",
"sms": "xx",
"sna": "sn",
"snd": "sd",
"snk": "xx",
"sog": "xx",
"som": "so",
"son": "xx",
"sot": "st",
"spa": "es",
"srd": "sc",
"srn": "xx",
"srp": "sr",
"srr": "xx",
"ssa": "xx",
"ssw": "ss",
"suk": "xx",
"sun": "su",
"sus": "xx",
"sux": "xx",
"swa": "sw",
"swe": "sv",
"syc": "xx",
"syr": "xx",
"tah": "ty",
"tai": "xx",
"tam": "ta",
"tat": "tt",
"tel": "te",
"tem": "xx",
"ter": "xx",
"tet": "xx",
"tgk": "tg",
"tgl": "tl",
"tha": "th",
"tib": "bo",
"tig": "xx",
"tir": "ti",
"tiv": "xx",
"tkl": "xx",
"tlh": "xx",
"tli": "xx",
"tmh": "xx",
"tog": "xx",
"ton": "to",
"tpi": "xx",
"tsi": "xx",
"tsn": "tn",
"tso": "ts",
"tuk": "tk",
"tum": "xx",
"tup": "xx",
"tur": "tr",
"tut": "xx",
"tvl": "xx",
"twi": "tw",
"tyv": "xx",
"udm": "xx",
"uga": "xx",
"uig": "ug",
"ukr": "uk",
"umb": "xx",
"und": "xx",
"urd": "ur",
"uzb": "uz",
"vai": "xx",
"ven": "ve",
"vie": "vi",
"vol": "vo",
"vot": "xx",
"wak": "xx",
"wal": "xx",
"war": "xx",
"was": "xx",
"wel": "cy",
"wen": "xx",
"wln": "wa",
"wol": "wo",
"xal": "xx",
"xho": "xh",
"yao": "xx",
"yap": "xx",
"yid": "yi",
"yor": "yo",
"ypk": "xx",
"zap": "xx",
"zbl": "xx",
"zen": "xx",
"zgh": "xx",
"zha": "za",
"znd": "xx",
"zul": "zu",
"zun": "xx",
"zxx": "xx",
"zza": "xx",
}
func iso6392to6391(l string) string {
if mapped, ok := languagesMap[l]; ok {
return mapped
}
if l == "" {
return "xx"
}
panic(l)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment