source: for-distributions/trunk/bin/windows/perl/lib/Locale/Language.pm@ 14489

Last change on this file since 14489 was 14489, checked in by oranfry, 17 years ago

upgrading to perl 5.8

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