// --------------------------------------------------------------------------------------------------------------------
//
// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
//
//
// Contains utilities for converting language codes.
//
// --------------------------------------------------------------------------------------------------------------------
namespace HandBrake.Interop
{
using System.Collections.Generic;
///
/// Contains utilities for converting language codes.
///
public static class LanguageCodes
{
///
/// The map of language codes to friendly names.
///
private static Dictionary languageMap;
///
/// Gets the map of language codes to friendly names.
///
private static Dictionary LanguageMap
{
get
{
if (languageMap == null)
{
languageMap = new Dictionary
{
{"und", "Unspecified"},
{"eng", "English"},
{"deu", "Deutsch"},
{"fra", "Français"},
{"spa", "Español"},
{"rus", "Russian"},
{"aar", "Afar"},
{"abk", "Abkhazian"},
{"afr", "Afrikaans"},
{"aka", "Akan"},
{"sqi", "Albanian"},
{"amh", "Amharic"},
{"ara", "Arabic"},
{"arg", "Aragonese"},
{"hye", "Armenian"},
{"asm", "Assamese"},
{"ava", "Avaric"},
{"ave", "Avestan"},
{"aym", "Aymara"},
{"aze", "Azerbaijani"},
{"bak", "Bashkir"},
{"bam", "Bambara"},
{"eus", "Basque"},
{"bel", "Belarusian"},
{"ben", "Bengali"},
{"bih", "Bihari"},
{"bis", "Bislama"},
{"bos", "Bosnian"},
{"bre", "Breton"},
{"bul", "Bulgarian"},
{"mya", "Burmese"},
{"cat", "Catalan"},
{"cha", "Chamorro"},
{"che", "Chechen"},
{"zho", "Chinese"},
{"chu", "Church Slavic"},
{"chv", "Chuvash"},
{"cor", "Cornish"},
{"cos", "Corsican"},
{"cre", "Cree"},
{"ces", "Czech"},
{"dan", "Dansk"},
{"div", "Divehi"},
{"nld", "Nederlands"},
{"dzo", "Dzongkha"},
{"epo", "Esperanto"},
{"est", "Estonian"},
{"ewe", "Ewe"},
{"fao", "Faroese"},
{"fij", "Fijian"},
{"fin", "Suomi"},
{"fry", "Western Frisian"},
{"ful", "Fulah"},
{"kat", "Georgian"},
{"gla", "Gaelic (Scots)"},
{"gle", "Irish"},
{"glg", "Galician"},
{"glv", "Manx"},
{"ell", "Greek Modern"},
{"grn", "Guarani"},
{"guj", "Gujarati"},
{"hat", "Haitian"},
{"hau", "Hausa"},
{"heb", "Hebrew"},
{"her", "Herero"},
{"hin", "Hindi"},
{"hmo", "Hiri Motu"},
{"hun", "Magyar"},
{"ibo", "Igbo"},
{"isl", "Islenska"},
{"ido", "Ido"},
{"iii", "Sichuan Yi"},
{"iku", "Inuktitut"},
{"ile", "Interlingue"},
{"ina", "Interlingua"},
{"ind", "Indonesian"},
{"ipk", "Inupiaq"},
{"ita", "Italiano"},
{"jav", "Javanese"},
{"jpn", "Japanese"},
{"kal", "Kalaallisut"},
{"kan", "Kannada"},
{"kas", "Kashmiri"},
{"kau", "Kanuri"},
{"kaz", "Kazakh"},
{"khm", "Central Khmer"},
{"kik", "Kikuyu"},
{"kin", "Kinyarwanda"},
{"kir", "Kirghiz"},
{"kom", "Komi"},
{"kon", "Kongo"},
{"kor", "Korean"},
{"kua", "Kuanyama"},
{"kur", "Kurdish"},
{"lao", "Lao"},
{"lat", "Latin"},
{"lav", "Latvian"},
{"lim", "Limburgan"},
{"lin", "Lingala"},
{"lit", "Lithuanian"},
{"ltz", "Luxembourgish"},
{"lub", "Luba-Katanga"},
{"lug", "Ganda"},
{"mkd", "Macedonian"},
{"mah", "Marshallese"},
{"mal", "Malayalam"},
{"mri", "Maori"},
{"mar", "Marathi"},
{"msa", "Malay"},
{"mlg", "Malagasy"},
{"mlt", "Maltese"},
{"mol", "Moldavian"},
{"mon", "Mongolian"},
{"nau", "Nauru"},
{"nav", "Navajo"},
{"nbl", "Ndebele, South"},
{"nde", "Ndebele, North"},
{"ndo", "Ndonga"},
{"nep", "Nepali"},
{"nno", "Norwegian Nynorsk"},
{"nob", "Norwegian Bokmål"},
{"nor", "Norsk"},
{"nya", "Chichewa; Nyanja"},
{"oci", "Occitan"},
{"oji", "Ojibwa"},
{"ori", "Oriya"},
{"orm", "Oromo"},
{"oss", "Ossetian"},
{"pan", "Panjabi"},
{"fas", "Persian"},
{"pli", "Pali"},
{"pol", "Polish"},
{"por", "Portugues"},
{"pus", "Pushto"},
{"que", "Quechua"},
{"roh", "Romansh"},
{"ron", "Romanian"},
{"run", "Rundi"},
{"sag", "Sango"},
{"san", "Sanskrit"},
{"srp", "Serbian"},
{"hrv", "Hrvatski"},
{"sin", "Sinhala"},
{"slk", "Slovak"},
{"slv", "Slovenian"},
{"sme", "Northern Sami"},
{"smo", "Samoan"},
{"sna", "Shona"},
{"snd", "Sindhi"},
{"som", "Somali"},
{"sot", "Sotho Southern"},
{"srd", "Sardinian"},
{"ssw", "Swati"},
{"sun", "Sundanese"},
{"swa", "Swahili"},
{"swe", "Svenska"},
{"tah", "Tahitian"},
{"tam", "Tamil"},
{"tat", "Tatar"},
{"tel", "Telugu"},
{"tgk", "Tajik"},
{"tgl", "Tagalog"},
{"tha", "Thai"},
{"bod", "Tibetan"},
{"tir", "Tigrinya"},
{"ton", "Tonga"},
{"tsn", "Tswana"},
{"tso", "Tsonga"},
{"tuk", "Turkmen"},
{"tur", "Turkish"},
{"twi", "Twi"},
{"uig", "Uighur"},
{"ukr", "Ukrainian"},
{"urd", "Urdu"},
{"uzb", "Uzbek"},
{"ven", "Venda"},
{"vie", "Vietnamese"},
{"vol", "Volapük"},
{"cym", "Welsh"},
{"wln", "Walloon"},
{"wol", "Wolof"},
{"xho", "Xhosa"},
{"yid", "Yiddish"},
{"yor", "Yoruba"},
{"zha", "Zhuang"},
{"zul", "Zulu"}
};
}
return languageMap;
}
}
///
/// Gets a list of all languages.
///
public static IList Languages
{
get
{
List languages = new List();
foreach (string languageCode in LanguageMap.Keys)
{
languages.Add(new Language(languageCode));
}
return languages;
}
}
///
/// Gives the friendly name of the language with the given code.
///
/// The language code.
/// The friendly name of the language.
public static string Decode(string languageCode)
{
if (LanguageMap.ContainsKey(languageCode))
{
return LanguageMap[languageCode];
}
return "Unknown";
}
}
}