1 namespace HandBrake.Interop
\r
4 using System.Collections.Generic;
\r
9 /// Contains utilities for converting language codes.
\r
11 public static class LanguageCodes
\r
14 /// The map of language codes to friendly names.
\r
16 private static Dictionary<string, string> languageMap;
\r
19 /// Gets the map of language codes to friendly names.
\r
21 private static Dictionary<string, string> LanguageMap
\r
25 if (languageMap == null)
\r
27 languageMap = new Dictionary<string, string>
\r
29 {"und", "Unspecified"},
\r
32 {"fra", "Français"},
\r
36 {"abk", "Abkhazian"},
\r
37 {"afr", "Afrikaans"},
\r
39 {"sqi", "Albanian"},
\r
42 {"arg", "Aragonese"},
\r
43 {"hye", "Armenian"},
\r
44 {"asm", "Assamese"},
\r
48 {"aze", "Azerbaijani"},
\r
52 {"bel", "Belarusian"},
\r
58 {"bul", "Bulgarian"},
\r
61 {"cha", "Chamorro"},
\r
64 {"chu", "Church Slavic"},
\r
67 {"cos", "Corsican"},
\r
72 {"nld", "Nederlands"},
\r
73 {"dzo", "Dzongkha"},
\r
74 {"epo", "Esperanto"},
\r
75 {"est", "Estonian"},
\r
80 {"fry", "Western Frisian"},
\r
82 {"kat", "Georgian"},
\r
83 {"gla", "Gaelic (Scots)"},
\r
85 {"glg", "Galician"},
\r
87 {"ell", "Greek Modern"},
\r
89 {"guj", "Gujarati"},
\r
95 {"hmo", "Hiri Motu"},
\r
98 {"isl", "Islenska"},
\r
100 {"iii", "Sichuan Yi"},
\r
101 {"iku", "Inuktitut"},
\r
102 {"ile", "Interlingue"},
\r
103 {"ina", "Interlingua"},
\r
104 {"ind", "Indonesian"},
\r
105 {"ipk", "Inupiaq"},
\r
106 {"ita", "Italiano"},
\r
107 {"jav", "Javanese"},
\r
108 {"jpn", "Japanese"},
\r
109 {"kal", "Kalaallisut"},
\r
110 {"kan", "Kannada"},
\r
111 {"kas", "Kashmiri"},
\r
114 {"khm", "Central Khmer"},
\r
116 {"kin", "Kinyarwanda"},
\r
117 {"kir", "Kirghiz"},
\r
121 {"kua", "Kuanyama"},
\r
122 {"kur", "Kurdish"},
\r
125 {"lav", "Latvian"},
\r
126 {"lim", "Limburgan"},
\r
127 {"lin", "Lingala"},
\r
128 {"lit", "Lithuanian"},
\r
129 {"ltz", "Luxembourgish"},
\r
130 {"lub", "Luba-Katanga"},
\r
132 {"mkd", "Macedonian"},
\r
133 {"mah", "Marshallese"},
\r
134 {"mal", "Malayalam"},
\r
136 {"mar", "Marathi"},
\r
138 {"mlg", "Malagasy"},
\r
139 {"mlt", "Maltese"},
\r
140 {"mol", "Moldavian"},
\r
141 {"mon", "Mongolian"},
\r
144 {"nbl", "Ndebele, South"},
\r
145 {"nde", "Ndebele, North"},
\r
148 {"nno", "Norwegian Nynorsk"},
\r
149 {"nob", "Norwegian Bokmål"},
\r
151 {"nya", "Chichewa; Nyanja"},
\r
152 {"oci", "Occitan"},
\r
156 {"oss", "Ossetian"},
\r
157 {"pan", "Panjabi"},
\r
158 {"fas", "Persian"},
\r
161 {"por", "Portugues"},
\r
163 {"que", "Quechua"},
\r
164 {"roh", "Romansh"},
\r
165 {"ron", "Romanian"},
\r
168 {"san", "Sanskrit"},
\r
169 {"srp", "Serbian"},
\r
170 {"hrv", "Hrvatski"},
\r
171 {"sin", "Sinhala"},
\r
173 {"slv", "Slovenian"},
\r
174 {"sme", "Northern Sami"},
\r
179 {"sot", "Sotho Southern"},
\r
180 {"srd", "Sardinian"},
\r
182 {"sun", "Sundanese"},
\r
183 {"swa", "Swahili"},
\r
184 {"swe", "Svenska"},
\r
185 {"tah", "Tahitian"},
\r
190 {"tgl", "Tagalog"},
\r
192 {"bod", "Tibetan"},
\r
193 {"tir", "Tigrinya"},
\r
197 {"tuk", "Turkmen"},
\r
198 {"tur", "Turkish"},
\r
201 {"ukr", "Ukrainian"},
\r
205 {"vie", "Vietnamese"},
\r
206 {"vol", "Volapük"},
\r
208 {"wln", "Walloon"},
\r
211 {"yid", "Yiddish"},
\r
218 return languageMap;
\r
223 /// Gets a list of all languages.
\r
225 public static IList<Language> Languages
\r
229 List<Language> languages = new List<Language>();
\r
231 foreach (string languageCode in LanguageMap.Keys)
\r
233 languages.Add(new Language(languageCode));
\r
241 /// Gives the friendly name of the language with the given code.
\r
243 /// <param name="languageCode">The language code.</param>
\r
244 /// <returns>The friendly name of the language.</returns>
\r
245 public static string Decode(string languageCode)
\r
247 if (LanguageMap.ContainsKey(languageCode))
\r
249 return LanguageMap[languageCode];
\r