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