This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
AW: IO::Dir destructor
[perl5.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.7 2004/06/10 21:19:34 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.7 $ =~ /(\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     local $_;
110
111
112     while (<DATA>)
113     {
114         next unless /\S/;
115         chop;
116         ($code, $language) = split(/:/, $_, 2);
117         $CODES{$code} = $language;
118         $LANGUAGES{"\L$language"} = $code;
119     }
120
121     close(DATA);
122 }
123
124 1;
125
126 __DATA__
127 aa:Afar
128 ab:Abkhazian
129 ae:Avestan
130 af:Afrikaans
131 am:Amharic
132 ar:Arabic
133 as:Assamese
134 ay:Aymara
135 az:Azerbaijani
136
137 ba:Bashkir
138 be:Belarusian
139 bg:Bulgarian
140 bh:Bihari
141 bi:Bislama
142 bn:Bengali
143 bo:Tibetan
144 br:Breton
145 bs:Bosnian
146
147 ca:Catalan
148 ce:Chechen
149 ch:Chamorro
150 co:Corsican
151 cs:Czech
152 cu:Church Slavic
153 cv:Chuvash
154 cy:Welsh
155
156 da:Danish
157 de:German
158 dz:Dzongkha
159
160 el:Greek
161 en:English
162 eo:Esperanto
163 es:Spanish
164 et:Estonian
165 eu:Basque
166
167 fa:Persian
168 fi:Finnish
169 fj:Fijian
170 fo:Faeroese
171 fr:French
172 fy:Frisian
173
174 ga:Irish
175 gd:Gaelic (Scots)
176 gl:Gallegan
177 gn:Guarani
178 gu:Gujarati
179 gv:Manx
180
181 ha:Hausa
182 he:Hebrew
183 hi:Hindi
184 ho:Hiri Motu
185 hr:Croatian
186 hu:Hungarian
187 hy:Armenian
188 hz:Herero
189
190 ia:Interlingua
191 id:Indonesian
192 ie:Interlingue
193 ik:Inupiaq
194 is:Icelandic
195 it:Italian
196 iu:Inuktitut
197
198 ja:Japanese
199 jw:Javanese
200
201 ka:Georgian
202 ki:Kikuyu
203 kj:Kuanyama
204 kk:Kazakh
205 kl:Kalaallisut
206 km:Khmer
207 kn:Kannada
208 ko:Korean
209 ks:Kashmiri
210 ku:Kurdish
211 kv:Komi
212 kw:Cornish
213 ky:Kirghiz
214
215 la:Latin
216 lb:Letzeburgesch
217 ln:Lingala
218 lo:Lao
219 lt:Lithuanian
220 lv:Latvian
221
222 mg:Malagasy
223 mh:Marshall
224 mi:Maori
225 mk:Macedonian
226 ml:Malayalam
227 mn:Mongolian
228 mo:Moldavian
229 mr:Marathi
230 ms:Malay
231 mt:Maltese
232 my:Burmese
233
234 na:Nauru
235 nb:Norwegian Bokmal
236 nd:Ndebele, North
237 ne:Nepali
238 ng:Ndonga
239 nl:Dutch
240 nn:Norwegian Nynorsk
241 no:Norwegian
242 nr:Ndebele, South
243 nv:Navajo
244 ny:Chichewa; Nyanja
245
246 oc:Occitan (post 1500)
247 om:Oromo
248 or:Oriya
249 os:Ossetian; Ossetic
250
251 pa:Panjabi
252 pi:Pali
253 pl:Polish
254 ps:Pushto
255 pt:Portuguese
256
257 qu:Quechua
258
259 rm:Rhaeto-Romance
260 rn:Rundi
261 ro:Romanian
262 ru:Russian
263 rw:Kinyarwanda
264
265 sa:Sanskrit
266 sc:Sardinian
267 sd:Sindhi
268 se:Sami
269 sg:Sango
270 si:Sinhalese
271 sk:Slovak
272 sl:Slovenian
273 sm:Samoan
274 sn:Shona
275 so:Somali
276 sq:Albanian
277 sr:Serbian
278 ss:Swati
279 st:Sotho
280 su:Sundanese
281 sv:Swedish
282 sw:Swahili
283
284 ta:Tamil
285 te:Telugu
286 tg:Tajik
287 th:Thai
288 ti:Tigrinya
289 tk:Turkmen
290 tl:Tagalog
291 tn:Tswana
292 to:Tonga
293 tr:Turkish
294 ts:Tsonga
295 tt:Tatar
296 tw:Twi
297
298 ug:Uighur
299 uk:Ukrainian
300 ur:Urdu
301 uz:Uzbek
302
303 vi:Vietnamese
304 vo:Volapuk
305
306 wo:Wolof
307
308 xh:Xhosa
309
310 yi:Yiddish
311 yo:Yoruba
312
313 za:Zhuang
314 zh:Chinese
315 zu:Zulu