xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/lib/Locale/Language.pm (revision 0:68f95e015346)
1#
2# Locale::Language - ISO two letter codes for language identification (ISO 639)
3#
4# $Id: Language.pm,v 2.2 2002/07/10 16:33:27 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.21 $ =~ /(\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
110    local $_;
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
316