OSDN Git Service

HandBrake 0.7.0
[handbrake-jp/handbrake-jp-git.git] / libhb / lang.h
1 /* $Id: lang.h,v 1.1 2004/08/02 07:19:05 titer Exp $
2
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. */
6
7 #ifndef HB_LANG_H
8 #define HB_LANG_H
9
10 typedef struct iso639_lang_t
11 {
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 */
15
16 } iso639_lang_t;
17
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" },
65   { "Manx", "", "gv" },
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" },
91   { "Komi", "", "kv" },
92   { "Korean", "", "ko" },
93   { "Kuanyama", "", "kj" },
94   { "Kurdish", "", "ku" },
95   { "Lao", "", "lo" },
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" },
169   { "Twi", "", "tw" },
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 } };
184
185 static char * lang_for_code( int code )
186 {
187     char code_string[2];
188     iso639_lang_t * lang;
189
190     code_string[0] = ( code >> 8 ) & 0xFF;
191     code_string[1] = code & 0xFF;
192
193     for( lang = (iso639_lang_t*) languages; lang->eng_name; lang++ )
194     {
195         if( !strncmp( lang->iso639_1, code_string, 2 ) )
196         {
197             if( *lang->native_name )
198             {
199                 return lang->native_name;
200             }
201
202             return lang->eng_name;
203         }
204     }
205
206     return "Unknown";
207 }
208
209 #endif