1 /* $Id: lang.h,v 1.1 2004/08/02 07:19:05 titer Exp $
3 This file is part of the HandBrake source code.
4 Homepage: <http://handbrake.m0k.org/>.
5 It may be used under the terms of the GNU General Public License. */
10 typedef struct iso639_lang_t
12 char * eng_name; /* Description in English */
13 char * native_name; /* Description in native language */
14 char * iso639_1; /* ISO-639-1 (2 characters) code */
18 static const iso639_lang_t languages[] =
19 { { "Afar", "", "aa" },
20 { "Abkhazian", "", "ab" },
21 { "Afrikaans", "", "af" },
22 { "Albanian", "", "sq" },
23 { "Amharic", "", "am" },
24 { "Arabic", "", "ar" },
25 { "Armenian", "", "hy" },
26 { "Assamese", "", "as" },
27 { "Avestan", "", "ae" },
28 { "Aymara", "", "ay" },
29 { "Azerbaijani", "", "az" },
30 { "Bashkir", "", "ba" },
31 { "Basque", "", "eu" },
32 { "Belarusian", "", "be" },
33 { "Bengali", "", "bn" },
34 { "Bihari", "", "bh" },
35 { "Bislama", "", "bi" },
36 { "Bosnian", "", "bs" },
37 { "Breton", "", "br" },
38 { "Bulgarian", "", "bg" },
39 { "Burmese", "", "my" },
40 { "Catalan", "", "ca" },
41 { "Chamorro", "", "ch" },
42 { "Chechen", "", "ce" },
43 { "Chinese", "", "zh" },
44 { "Church Slavic", "", "cu" },
45 { "Chuvash", "", "cv" },
46 { "Cornish", "", "kw" },
47 { "Corsican", "", "co" },
48 { "Czech", "", "cs" },
49 { "Danish", "Dansk", "da" },
50 { "Dutch", "Nederlands", "nl" },
51 { "Dzongkha", "", "dz" },
52 { "English", "English", "en" },
53 { "Esperanto", "", "eo" },
54 { "Estonian", "", "et" },
55 { "Faroese", "", "fo" },
56 { "Fijian", "", "fj" },
57 { "Finnish", "Suomi", "fi" },
58 { "French", "Francais", "fr" },
59 { "Frisian", "", "fy" },
60 { "Georgian", "", "ka" },
61 { "German", "Deutsch", "de" },
62 { "Gaelic (Scots)", "", "gd" },
63 { "Irish", "", "ga" },
64 { "Gallegan", "", "gl" },
66 { "Greek, Modern ()", "", "el" },
67 { "Guarani", "", "gn" },
68 { "Gujarati", "", "gu" },
69 { "Hebrew", "", "he" },
70 { "Herero", "", "hz" },
71 { "Hindi", "", "hi" },
72 { "Hiri Motu", "", "ho" },
73 { "Hungarian", "Magyar", "hu" },
74 { "Icelandic", "Islenska", "is" },
75 { "Inuktitut", "", "iu" },
76 { "Interlingue", "", "ie" },
77 { "Interlingua", "", "ia" },
78 { "Indonesian", "", "id" },
79 { "Inupiaq", "", "ik" },
80 { "Italian", "Italiano", "it" },
81 { "Javanese", "", "jv" },
82 { "Japanese", "", "ja" },
83 { "Kalaallisut (Greenlandic)", "", "kl" },
84 { "Kannada", "", "kn" },
85 { "Kashmiri", "", "ks" },
86 { "Kazakh", "", "kk" },
87 { "Khmer", "", "km" },
88 { "Kikuyu", "", "ki" },
89 { "Kinyarwanda", "", "rw" },
90 { "Kirghiz", "", "ky" },
92 { "Korean", "", "ko" },
93 { "Kuanyama", "", "kj" },
94 { "Kurdish", "", "ku" },
96 { "Latin", "", "la" },
97 { "Latvian", "", "lv" },
98 { "Lingala", "", "ln" },
99 { "Lithuanian", "", "lt" },
100 { "Letzeburgesch", "", "lb" },
101 { "Macedonian", "", "mk" },
102 { "Marshall", "", "mh" },
103 { "Malayalam", "", "ml" },
104 { "Maori", "", "mi" },
105 { "Marathi", "", "mr" },
106 { "Malay", "", "ms" },
107 { "Malagasy", "", "mg" },
108 { "Maltese", "", "mt" },
109 { "Moldavian", "", "mo" },
110 { "Mongolian", "", "mn" },
111 { "Nauru", "", "na" },
112 { "Navajo", "", "nv" },
113 { "Ndebele, South", "", "nr" },
114 { "Ndebele, North", "", "nd" },
115 { "Ndonga", "", "ng" },
116 { "Nepali", "", "ne" },
117 { "Norwegian", "Norsk", "no" },
118 { "Norwegian Nynorsk", "", "nn" },
119 { "Norwegian Bokmål", "", "nb" },
120 { "Chichewa; Nyanja", "", "ny" },
121 { "Occitan (post 1500); Provençal", "", "oc" },
122 { "Oriya", "", "or" },
123 { "Oromo", "", "om" },
124 { "Ossetian; Ossetic", "", "os" },
125 { "Panjabi", "", "pa" },
126 { "Persian", "", "fa" },
127 { "Pali", "", "pi" },
128 { "Polish", "", "pl" },
129 { "Portuguese", "Portugues", "pt" },
130 { "Pushto", "", "ps" },
131 { "Quechua", "", "qu" },
132 { "Raeto-Romance", "", "rm" },
133 { "Romanian", "", "ro" },
134 { "Rundi", "", "rn" },
135 { "Russian", "", "ru" },
136 { "Sango", "", "sg" },
137 { "Sanskrit", "", "sa" },
138 { "Serbian", "", "sr" },
139 { "Croatian", "Hrvatski", "hr" },
140 { "Sinhalese", "", "si" },
141 { "Slovak", "", "sk" },
142 { "Slovenian", "", "sl" },
143 { "Northern Sami", "", "se" },
144 { "Samoan", "", "sm" },
145 { "Shona", "", "sn" },
146 { "Sindhi", "", "sd" },
147 { "Somali", "", "so" },
148 { "Sotho, Southern", "", "st" },
149 { "Spanish", "Espanol", "es" },
150 { "Sardinian", "", "sc" },
151 { "Swati", "", "ss" },
152 { "Sundanese", "", "su" },
153 { "Swahili", "", "sw" },
154 { "Swedish", "Svenska", "sv" },
155 { "Tahitian", "", "ty" },
156 { "Tamil", "", "ta" },
157 { "Tatar", "", "tt" },
158 { "Telugu", "", "te" },
159 { "Tajik", "", "tg" },
160 { "Tagalog", "", "tl" },
161 { "Thai", "", "th" },
162 { "Tibetan", "", "bo" },
163 { "Tigrinya", "", "ti" },
164 { "Tonga (Tonga Islands)", "", "to" },
165 { "Tswana", "", "tn" },
166 { "Tsonga", "", "ts" },
167 { "Turkish", "", "tr" },
168 { "Turkmen", "", "tk" },
170 { "Uighur", "", "ug" },
171 { "Ukrainian", "", "uk" },
172 { "Urdu", "", "ur" },
173 { "Uzbek", "", "uz" },
174 { "Vietnamese", "", "vi" },
175 { "Volapük", "", "vo" },
176 { "Welsh", "", "cy" },
177 { "Wolof", "", "wo" },
178 { "Xhosa", "", "xh" },
179 { "Yiddish", "", "yi" },
180 { "Yoruba", "", "yo" },
181 { "Zhuang", "", "za" },
182 { "Zulu", "", "zu" },
183 { NULL, NULL, NULL } };
185 static char * lang_for_code( int code )
188 iso639_lang_t * lang;
190 code_string[0] = ( code >> 8 ) & 0xFF;
191 code_string[1] = code & 0xFF;
193 for( lang = (iso639_lang_t*) languages; lang->eng_name; lang++ )
195 if( !strncmp( lang->iso639_1, code_string, 2 ) )
197 if( *lang->native_name )
199 return lang->native_name;
202 return lang->eng_name;