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