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