OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / interop / LanguageCodes.cs
1 // --------------------------------------------------------------------------------------------------------------------\r
2 // <copyright file="LanguageCodes.cs" company="HandBrake Project (http://handbrake.fr)">\r
3 //   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.\r
4 // </copyright>\r
5 // <summary>\r
6 //   Contains utilities for converting language codes.\r
7 // </summary>\r
8 // --------------------------------------------------------------------------------------------------------------------\r
9 \r
10 namespace HandBrake.Interop\r
11 {\r
12     using System.Collections.Generic;\r
13 \r
14     /// <summary>\r
15     /// Contains utilities for converting language codes.\r
16     /// </summary>\r
17     public static class LanguageCodes\r
18     {\r
19         /// <summary>\r
20         /// The map of language codes to friendly names.\r
21         /// </summary>\r
22         private static Dictionary<string, string> languageMap;\r
23 \r
24         /// <summary>\r
25         /// Gets the map of language codes to friendly names.\r
26         /// </summary>\r
27         private static Dictionary<string, string> LanguageMap\r
28         {\r
29             get\r
30             {\r
31                 if (languageMap == null)\r
32                 {\r
33                     languageMap = new Dictionary<string, string>\r
34                     {\r
35                         {"und", "Unspecified"},\r
36                         {"eng", "English"},\r
37                         {"deu", "Deutsch"},\r
38                         {"fra", "Français"},\r
39                         {"spa", "Español"},\r
40                         {"rus", "Russian"},\r
41                         {"aar", "Afar"},\r
42                         {"abk", "Abkhazian"},\r
43                         {"afr", "Afrikaans"},\r
44                         {"aka", "Akan"},\r
45                         {"sqi", "Albanian"},\r
46                         {"amh", "Amharic"},\r
47                         {"ara", "Arabic"},\r
48                         {"arg", "Aragonese"},\r
49                         {"hye", "Armenian"},\r
50                         {"asm", "Assamese"},\r
51                         {"ava", "Avaric"},\r
52                         {"ave", "Avestan"},\r
53                         {"aym", "Aymara"},\r
54                         {"aze", "Azerbaijani"},\r
55                         {"bak", "Bashkir"},\r
56                         {"bam", "Bambara"},\r
57                         {"eus", "Basque"},\r
58                         {"bel", "Belarusian"},\r
59                         {"ben", "Bengali"},\r
60                         {"bih", "Bihari"},\r
61                         {"bis", "Bislama"},\r
62                         {"bos", "Bosnian"},\r
63                         {"bre", "Breton"},\r
64                         {"bul", "Bulgarian"},\r
65                         {"mya", "Burmese"},\r
66                         {"cat", "Catalan"},\r
67                         {"cha", "Chamorro"},\r
68                         {"che", "Chechen"},\r
69                         {"zho", "Chinese"},\r
70                         {"chu", "Church Slavic"},\r
71                         {"chv", "Chuvash"},\r
72                         {"cor", "Cornish"},\r
73                         {"cos", "Corsican"},\r
74                         {"cre", "Cree"},\r
75                         {"ces", "Czech"},\r
76                         {"dan", "Dansk"},\r
77                         {"div", "Divehi"},\r
78                         {"nld", "Nederlands"},\r
79                         {"dzo", "Dzongkha"},\r
80                         {"epo", "Esperanto"},\r
81                         {"est", "Estonian"},\r
82                         {"ewe", "Ewe"},\r
83                         {"fao", "Faroese"},\r
84                         {"fij", "Fijian"},\r
85                         {"fin", "Suomi"},\r
86                         {"fry", "Western Frisian"},\r
87                         {"ful", "Fulah"},\r
88                         {"kat", "Georgian"},\r
89                         {"gla", "Gaelic (Scots)"},\r
90                         {"gle", "Irish"},\r
91                         {"glg", "Galician"},\r
92                         {"glv", "Manx"},\r
93                         {"ell", "Greek Modern"},\r
94                         {"grn", "Guarani"},\r
95                         {"guj", "Gujarati"},\r
96                         {"hat", "Haitian"},\r
97                         {"hau", "Hausa"},\r
98                         {"heb", "Hebrew"},\r
99                         {"her", "Herero"},\r
100                         {"hin", "Hindi"},\r
101                         {"hmo", "Hiri Motu"},\r
102                         {"hun", "Magyar"},\r
103                         {"ibo", "Igbo"},\r
104                         {"isl", "Islenska"},\r
105                         {"ido", "Ido"},\r
106                         {"iii", "Sichuan Yi"},\r
107                         {"iku", "Inuktitut"},\r
108                         {"ile", "Interlingue"},\r
109                         {"ina", "Interlingua"},\r
110                         {"ind", "Indonesian"},\r
111                         {"ipk", "Inupiaq"},\r
112                         {"ita", "Italiano"},\r
113                         {"jav", "Javanese"},\r
114                         {"jpn", "Japanese"},\r
115                         {"kal", "Kalaallisut"},\r
116                         {"kan", "Kannada"},\r
117                         {"kas", "Kashmiri"},\r
118                         {"kau", "Kanuri"},\r
119                         {"kaz", "Kazakh"},\r
120                         {"khm", "Central Khmer"},\r
121                         {"kik", "Kikuyu"},\r
122                         {"kin", "Kinyarwanda"},\r
123                         {"kir", "Kirghiz"},\r
124                         {"kom", "Komi"},\r
125                         {"kon", "Kongo"},\r
126                         {"kor", "Korean"},\r
127                         {"kua", "Kuanyama"},\r
128                         {"kur", "Kurdish"},\r
129                         {"lao", "Lao"},\r
130                         {"lat", "Latin"},\r
131                         {"lav", "Latvian"},\r
132                         {"lim", "Limburgan"},\r
133                         {"lin", "Lingala"},\r
134                         {"lit", "Lithuanian"},\r
135                         {"ltz", "Luxembourgish"},\r
136                         {"lub", "Luba-Katanga"},\r
137                         {"lug", "Ganda"},\r
138                         {"mkd", "Macedonian"},\r
139                         {"mah", "Marshallese"},\r
140                         {"mal", "Malayalam"},\r
141                         {"mri", "Maori"},\r
142                         {"mar", "Marathi"},\r
143                         {"msa", "Malay"},\r
144                         {"mlg", "Malagasy"},\r
145                         {"mlt", "Maltese"},\r
146                         {"mol", "Moldavian"},\r
147                         {"mon", "Mongolian"},\r
148                         {"nau", "Nauru"},\r
149                         {"nav", "Navajo"},\r
150                         {"nbl", "Ndebele, South"},\r
151                         {"nde", "Ndebele, North"},\r
152                         {"ndo", "Ndonga"},\r
153                         {"nep", "Nepali"},\r
154                         {"nno", "Norwegian Nynorsk"},\r
155                         {"nob", "Norwegian Bokmål"},\r
156                         {"nor", "Norsk"},\r
157                         {"nya", "Chichewa; Nyanja"},\r
158                         {"oci", "Occitan"},\r
159                         {"oji", "Ojibwa"},\r
160                         {"ori", "Oriya"},\r
161                         {"orm", "Oromo"},\r
162                         {"oss", "Ossetian"},\r
163                         {"pan", "Panjabi"},\r
164                         {"fas", "Persian"},\r
165                         {"pli", "Pali"},\r
166                         {"pol", "Polish"},\r
167                         {"por", "Portugues"},\r
168                         {"pus", "Pushto"},\r
169                         {"que", "Quechua"},\r
170                         {"roh", "Romansh"},\r
171                         {"ron", "Romanian"},\r
172                         {"run", "Rundi"},\r
173                         {"sag", "Sango"},\r
174                         {"san", "Sanskrit"},\r
175                         {"srp", "Serbian"},\r
176                         {"hrv", "Hrvatski"},\r
177                         {"sin", "Sinhala"},\r
178                         {"slk", "Slovak"},\r
179                         {"slv", "Slovenian"},\r
180                         {"sme", "Northern Sami"},\r
181                         {"smo", "Samoan"},\r
182                         {"sna", "Shona"},\r
183                         {"snd", "Sindhi"},\r
184                         {"som", "Somali"},\r
185                         {"sot", "Sotho Southern"},\r
186                         {"srd", "Sardinian"},\r
187                         {"ssw", "Swati"},\r
188                         {"sun", "Sundanese"},\r
189                         {"swa", "Swahili"},\r
190                         {"swe", "Svenska"},\r
191                         {"tah", "Tahitian"},\r
192                         {"tam", "Tamil"},\r
193                         {"tat", "Tatar"},\r
194                         {"tel", "Telugu"},\r
195                         {"tgk", "Tajik"},\r
196                         {"tgl", "Tagalog"},\r
197                         {"tha", "Thai"},\r
198                         {"bod", "Tibetan"},\r
199                         {"tir", "Tigrinya"},\r
200                         {"ton", "Tonga"},\r
201                         {"tsn", "Tswana"},\r
202                         {"tso", "Tsonga"},\r
203                         {"tuk", "Turkmen"},\r
204                         {"tur", "Turkish"},\r
205                         {"twi", "Twi"},\r
206                         {"uig", "Uighur"},\r
207                         {"ukr", "Ukrainian"},\r
208                         {"urd", "Urdu"},\r
209                         {"uzb", "Uzbek"},\r
210                         {"ven", "Venda"},\r
211                         {"vie", "Vietnamese"},\r
212                         {"vol", "Volapük"},\r
213                         {"cym", "Welsh"},\r
214                         {"wln", "Walloon"},\r
215                         {"wol", "Wolof"},\r
216                         {"xho", "Xhosa"},\r
217                         {"yid", "Yiddish"},\r
218                         {"yor", "Yoruba"},\r
219                         {"zha", "Zhuang"},\r
220                         {"zul", "Zulu"}\r
221                     };\r
222                 }\r
223 \r
224                 return languageMap;\r
225             }\r
226         }\r
227 \r
228         /// <summary>\r
229         /// Gets a list of all languages.\r
230         /// </summary>\r
231         public static IList<Language> Languages\r
232         {\r
233             get\r
234             {\r
235                 List<Language> languages = new List<Language>();\r
236 \r
237                 foreach (string languageCode in LanguageMap.Keys)\r
238                 {\r
239                     languages.Add(new Language(languageCode));\r
240                 }\r
241 \r
242                 return languages;\r
243             }\r
244         }\r
245 \r
246         /// <summary>\r
247         /// Gives the friendly name of the language with the given code.\r
248         /// </summary>\r
249         /// <param name="languageCode">The language code.</param>\r
250         /// <returns>The friendly name of the language.</returns>\r
251         public static string Decode(string languageCode)\r
252         {\r
253             if (LanguageMap.ContainsKey(languageCode))\r
254             {\r
255                 return LanguageMap[languageCode];\r
256             }\r
257 \r
258             return "Unknown";\r
259         }\r
260     }\r
261 }\r