Skip to content

Instantly share code, notes, and snippets.

@TheDeveloper
Created June 11, 2012 16:28
Show Gist options
  • Save TheDeveloper/2911067 to your computer and use it in GitHub Desktop.
Save TheDeveloper/2911067 to your computer and use it in GitHub Desktop.
languageName
var languages = {
AB:"Abkhazian",
AA:"Afar",
AF:"Afrikaans",
SQ:"Albanian",
AM:"Amharic",
AR:"Arabic",
HY:"Armenian",
AS:"Assamese",
AY:"Aymara",
AZ:"Azerbaijani",
BA:"Bashkir",
EU:"Basque",
BN:"Bengali",
DZ:"Bhutani",
BH:"Bihari",
BI:"Bislama",
BR:"Breton",
BG:"Bulgarian",
MY:"Burmese",
BE:"Byelorussian",
KM:"Cambodian",
CA:"Catalan",
ZH:"Chinese",
CO:"Corsican",
HR:"Croatian",
CS:"Czech",
DA:"Danish",
NL:"Dutch",
EN:"English",
EO:"Esperanto",
ET:"Estonian",
FO:"Faeroese",
FJ:"Fiji",
FI:"Finnish",
FR:"French",
FY:"Frisian",
GD:"Gaelic (Scots Gaelic)",
GL:"Galician",
KA:"Georgian",
DE:"German",
EL:"Greek",
KL:"Greenlandic",
GN:"Guarani",
GU:"Gujarati",
HA:"Hausa",
IW:"Hebrew",
HI:"Hindi",
HU:"Hungarian",
IS:"Icelandic",
IN:"Indonesian",
IA:"Interlingua",
IE:"Interlingue",
IK:"Inupiak",
GA:"Irish",
IT:"Italian",
JA:"Japanese",
JW:"Javanese",
KN:"Kannada",
KS:"Kashmiri",
KK:"Kazakh",
RW:"Kinyarwanda",
KY:"Kirghiz",
RN:"Kirundi",
KO:"Korean",
KU:"Kurdish",
LO:"Laothian",
LA:"Latin",
LV:"Latvian",
LN:"Lingala",
LT:"Lithuanian",
MK:"Macedonian",
MG:"Malagasy",
MS:"Malay",
ML:"Malayalam",
MT:"Maltese",
MI:"Maori",
MR:"Marathi",
MO:"Moldavian",
MN:"Mongolian",
NA:"Nauru",
NE:"Nepali",
NO:"Norwegian",
NB:"Norwegian",
OC:"Occitan",
OR:"Oriya",
OM:"Oromo",
PS:"Pashto",
FA:"Persian",
PL:"Polish",
PT:"Portuguese",
PA:"Punjabi",
QU:"Quechua",
RM:"Rhaeto-Romance",
RO:"Romanian",
RU:"Russian",
SM:"Samoan",
SG:"Sangro",
SA:"Sanskrit",
SR:"Serbian",
SH:"Serbo-Croatian",
ST:"Sesotho",
TN:"Setswana",
SN:"Shona",
SD:"Sindhi",
SI:"Singhalese",
SS:"Siswati",
SK:"Slovak",
SL:"Slovenian",
SO:"Somali",
ES:"Spanish",
SU:"Sudanese",
SW:"Swahili",
SV:"Swedish",
TL:"Tagalog",
TG:"Tajik",
TA:"Tamil",
TT:"Tatar",
TE:"Tegulu",
TH:"Thai",
BO:"Tibetan",
TI:"Tigrinya",
TO:"Tonga",
TS:"Tsonga",
TR:"Turkish",
TK:"Turkmen",
TW:"Twi",
UK:"Ukrainian",
UR:"Urdu",
UZ:"Uzbek",
VI:"Vietnamese",
VO:"Volapuk",
CY:"Welsh",
WO:"Wolof",
XH:"Xhosa",
JI:"Yiddish",
YO:"Yoruba",
ZU:"Zulu"
}
/**
* ## languageName
*
* Takes an IETF language tagm with optional country code suffix, and converts it
* to a human readable language string.
*
* For example:
* ```
* languageName('fr'); // 'French'
* languageName('en-gb'); // 'English (United Kingdom)'
* ```
*
* @param {string} code IETF language tag with optional country suffix
* @return {string} Readable language name string
*/
function languageName(code){
// If the code isn't specified, return "Unknown Language", localized
if(!code)return 'Unknown';
// Uppercase and split into components
code = (''+code).toUpperCase();
var bits = code.split('-');
// Language tag, if it exists from language lookup table
var primary = languages[bits[0]];
// If country suffix is specified, look it up and append it in brackets
if(bits.length>1){
primary += ' (' + countryname(bits[1],'') + ')';
}
return primary;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment