// -------------------------------------------------------------------------------------------------------------------- // // 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"; } } }