UTF-8-ify __DATA__. (TODO: let Neil Bowers know.)
[p5sagit/p5-mst-13.2.git] / lib / Locale / Language.pm
1 #
2 # Locale::Language - ISO two letter codes for language identification (ISO 639)
3 #
4 # $Id: Language.pm,v 2.1 2002/02/06 04:07:10 neilb Exp $
5 #
6
7 package Locale::Language;
8 use strict;
9 require 5.002;
10
11 require Exporter;
12
13 #-----------------------------------------------------------------------
14 #       Public Global Variables
15 #-----------------------------------------------------------------------
16 use vars qw($VERSION @ISA @EXPORT);
17 $VERSION      = sprintf("%d.%02d", q$Revision: 2.1 $ =~ /(\d+)\.(\d+)/);
18 @ISA          = qw(Exporter);
19 @EXPORT       = qw(&code2language &language2code
20                    &all_language_codes &all_language_names );
21
22 #-----------------------------------------------------------------------
23 #       Private Global Variables
24 #-----------------------------------------------------------------------
25 my %CODES     = ();
26 my %LANGUAGES = ();
27
28
29 #=======================================================================
30 #
31 # code2language ( CODE )
32 #
33 #=======================================================================
34 sub code2language
35 {
36     my $code = shift;
37
38
39     return undef unless defined $code;
40     $code = lc($code);
41     if (exists $CODES{$code})
42     {
43         return $CODES{$code};
44     }
45     else
46     {
47         #---------------------------------------------------------------
48         # no such language code!
49         #---------------------------------------------------------------
50         return undef;
51     }
52 }
53
54
55 #=======================================================================
56 #
57 # language2code ( LANGUAGE )
58 #
59 #=======================================================================
60 sub language2code
61 {
62     my $lang = shift;
63
64
65     return undef unless defined $lang;
66     $lang = lc($lang);
67     if (exists $LANGUAGES{$lang})
68     {
69         return $LANGUAGES{$lang};
70     }
71     else
72     {
73         #---------------------------------------------------------------
74         # no such language!
75         #---------------------------------------------------------------
76         return undef;
77     }
78 }
79
80
81 #=======================================================================
82 #
83 # all_language_codes()
84 #
85 #=======================================================================
86 sub all_language_codes
87 {
88     return keys %CODES;
89 }
90
91
92 #=======================================================================
93 #
94 # all_language_names()
95 #
96 #=======================================================================
97 sub all_language_names
98 {
99     return values %CODES;
100 }
101
102
103 #=======================================================================
104 # initialisation code - stuff the DATA into the CODES hash
105 #=======================================================================
106 {
107     my $code;
108     my $language;
109
110     while (<DATA>)
111     {
112         next unless /\S/;
113         chop;
114         ($code, $language) = split(/:/, $_, 2);
115         $CODES{$code} = $language;
116         $LANGUAGES{"\L$language"} = $code;
117     }
118 }
119
120 1;
121
122 __DATA__
123 aa:Afar
124 ab:Abkhazian
125 ae:Avestan
126 af:Afrikaans
127 am:Amharic
128 ar:Arabic
129 as:Assamese
130 ay:Aymara
131 az:Azerbaijani
132
133 ba:Bashkir
134 be:Belarusian
135 bg:Bulgarian
136 bh:Bihari
137 bi:Bislama
138 bn:Bengali
139 bo:Tibetan
140 br:Breton
141 bs:Bosnian
142
143 ca:Catalan
144 ce:Chechen
145 ch:Chamorro
146 co:Corsican
147 cs:Czech
148 cu:Church Slavic
149 cv:Chuvash
150 cy:Welsh
151
152 da:Danish
153 de:German
154 dz:Dzongkha
155
156 el:Greek
157 en:English
158 eo:Esperanto
159 es:Spanish
160 et:Estonian
161 eu:Basque
162
163 fa:Persian
164 fi:Finnish
165 fj:Fijian
166 fo:Faeroese
167 fr:French
168 fy:Frisian
169
170 ga:Irish
171 gd:Gaelic (Scots)
172 gl:Gallegan
173 gn:Guarani
174 gu:Gujarati
175 gv:Manx
176
177 ha:Hausa
178 he:Hebrew
179 hi:Hindi
180 ho:Hiri Motu
181 hr:Croatian
182 hu:Hungarian
183 hy:Armenian
184 hz:Herero
185
186 ia:Interlingua
187 id:Indonesian
188 ie:Interlingue
189 ik:Inupiaq
190 is:Icelandic
191 it:Italian
192 iu:Inuktitut
193
194 ja:Japanese
195 jw:Javanese
196
197 ka:Georgian
198 ki:Kikuyu
199 kj:Kuanyama
200 kk:Kazakh
201 kl:Kalaallisut
202 km:Khmer
203 kn:Kannada
204 ko:Korean
205 ks:Kashmiri
206 ku:Kurdish
207 kv:Komi
208 kw:Cornish
209 ky:Kirghiz
210
211 la:Latin
212 lb:Letzeburgesch
213 ln:Lingala
214 lo:Lao
215 lt:Lithuanian
216 lv:Latvian
217
218 mg:Malagasy
219 mh:Marshall
220 mi:Maori
221 mk:Macedonian
222 ml:Malayalam
223 mn:Mongolian
224 mo:Moldavian
225 mr:Marathi
226 ms:Malay
227 mt:Maltese
228 my:Burmese
229
230 na:Nauru
231 nb:Norwegian Bokmål
232 nd:Ndebele, North
233 ne:Nepali
234 ng:Ndonga
235 nl:Dutch
236 nn:Norwegian Nynorsk
237 no:Norwegian
238 nr:Ndebele, South
239 nv:Navajo
240 ny:Chichewa; Nyanja
241
242 oc:Occitan (post 1500)
243 om:Oromo
244 or:Oriya
245 os:Ossetian; Ossetic
246
247 pa:Panjabi
248 pi:Pali
249 pl:Polish
250 ps:Pushto
251 pt:Portuguese
252
253 qu:Quechua
254
255 rm:Rhaeto-Romance
256 rn:Rundi
257 ro:Romanian
258 ru:Russian
259 rw:Kinyarwanda
260
261 sa:Sanskrit
262 sc:Sardinian
263 sd:Sindhi
264 se:Sami
265 sg:Sango
266 si:Sinhalese
267 sk:Slovak
268 sl:Slovenian
269 sm:Samoan
270 sn:Shona
271 so:Somali
272 sq:Albanian
273 sr:Serbian
274 ss:Swati
275 st:Sotho
276 su:Sundanese
277 sv:Swedish
278 sw:Swahili
279
280 ta:Tamil
281 te:Telugu
282 tg:Tajik
283 th:Thai
284 ti:Tigrinya
285 tk:Turkmen
286 tl:Tagalog
287 tn:Tswana
288 to:Tonga
289 tr:Turkish
290 ts:Tsonga
291 tt:Tatar
292 tw:Twi
293
294 ug:Uighur
295 uk:Ukrainian
296 ur:Urdu
297 uz:Uzbek
298
299 vi:Vietnamese
300 vo:Volapük
301
302 wo:Wolof
303
304 xh:Xhosa
305
306 yi:Yiddish
307 yo:Yoruba
308
309 za:Zhuang
310 zh:Chinese
311 zu:Zulu