1 # Taken from the webwml CVS tree (english/templates/languages.wml)
3 package Packages::I18N::Languages;
10 our @ISA = qw( Exporter );
11 our @EXPORT = qw( langcmp get_transliteration get_selfname );
13 # language directory name => ISO 639 two-letter code for the language name
47 # language directory name => native name of the language
48 # non-ASCII letters must be escaped (using entities)!
50 ar => 'عربية',
51 bg => 'Български',
52 ca => 'català',
53 zh => '中文',
61 fr => 'français',
63 el => 'Ελληνικά',
67 ja => '日本語',
68 ko => '한국어',
69 lt => 'Lietuvių',
70 "no" => 'norsk (bokmål)',
72 pt_PT => 'Português (pt)',
73 pt_BR => 'Português (br)',
74 ro => 'română',
75 ru => 'Русский',
76 es => 'español',
77 sk => 'slovak', #FIXME
79 sl => 'slovenščina',
80 tr => 'Türkçe',
81 uk => 'ukrainian', #FIXME
84 # language directory name => Latin transliteration of the language name
85 # This is used for language names which consist entirely of non-Latin
86 # characters, to aid those that have browsers which cannot show different
87 # character sets at once.
90 bg => "Bəlgarski",
91 zh => "Zhongzu", # Not printed due to Chinese-specific code; kept for sort order
94 ko => "Hangul", # Not sure. "Hanguk-Mal" (=Spoken Korean)?
98 # second transliteration table, used for languages starting with a latin
105 my ($first, $second) = @_;
107 # Handle sorting of non-latin characters
108 # If there is a transliteration for this language available, use it
109 $first = $translit{$first} if defined $translit{$first};
110 $second = $translit{$second} if defined $translit{$second};
112 # Then handle special cases (initial latin letters with diacritics)
113 $first = $translit2{$first} if defined $translit2{$first};
114 $second = $translit2{$second} if defined $translit2{$second};
116 # Put remaining entity-only names last in the list
117 if (substr($first,0,1) eq '&')
119 $first =~ s/^&/ZZZ&/;
121 if (substr($second,0,1) eq '&')
123 $second =~ s/^&/ZZZ&/;
125 # There seems to be a bug with localization in
126 # Perl 5.005 so we need those extra variables.
127 my ($ufirst, $usecond) = (uc($first), uc($second));
128 return $ufirst cmp $usecond;
132 return $selflang{$_[0]} if exists $selflang{$_[0]};
136 sub get_transliteration {
137 return $translit{$_[0]} if exists $translit{$_[0]};