|
Lines 47-53
BEGIN {
Link Here
|
| 47 |
&getLanguages |
47 |
&getLanguages |
| 48 |
&getAllLanguages |
48 |
&getAllLanguages |
| 49 |
); |
49 |
); |
| 50 |
@EXPORT_OK = qw(getSearchLanguages getLanguagesIso getTranslatedLanguages getAllLanguages getLanguages get_bidi regex_lang_subtags language_get_description accept_language getlanguage); |
50 |
@EXPORT_OK = qw(getSearchLanguages getLanguagesIso getTranslatedLanguages getAllLanguages getLanguages get_bidi regex_lang_subtags accept_language getlanguage); |
| 51 |
$DEBUG = 0; |
51 |
$DEBUG = 0; |
| 52 |
} |
52 |
} |
| 53 |
|
53 |
|
|
Lines 304-346
sub getLanguages {
Link Here
|
| 304 |
if ($lang) { |
304 |
if ($lang) { |
| 305 |
$current_language = regex_lang_subtags($lang)->{'language'}; |
305 |
$current_language = regex_lang_subtags($lang)->{'language'}; |
| 306 |
} |
306 |
} |
| 307 |
my $sth = $dbh->prepare('SELECT * FROM language_subtag_registry WHERE type=\'language\''); |
307 |
my $sth = $dbh->prepare('SELECT * FROM language_rfc4646_to_iso639'); |
| 308 |
$sth->execute(); |
308 |
$sth->execute(); |
| 309 |
while (my $language_subtag_registry = $sth->fetchrow_hashref) { |
309 |
while (my $language_subtag_registry = $sth->fetchrow_hashref) { |
| 310 |
my $desc; |
310 |
$language_subtag_registry->{subtag} = $language_subtag_registry->{rfc4646_subtag}; |
| 311 |
# check if language name is stored in current language |
|
|
| 312 |
my $sth4= $dbh->prepare("SELECT description FROM language_descriptions WHERE type='language' AND subtag =? AND lang = ?"); |
| 313 |
$sth4->execute($language_subtag_registry->{subtag},$current_language); |
| 314 |
while (my $language_desc = $sth4->fetchrow_hashref) { |
| 315 |
$desc=$language_desc->{description}; |
| 316 |
} |
| 317 |
my $sth2= $dbh->prepare("SELECT * FROM language_descriptions LEFT JOIN language_rfc4646_to_iso639 on language_rfc4646_to_iso639.rfc4646_subtag = language_descriptions.subtag WHERE type='language' AND subtag =? AND language_descriptions.lang = ?"); |
| 318 |
if ($desc) { |
| 319 |
$sth2->execute($language_subtag_registry->{subtag},$current_language); |
| 320 |
} |
| 321 |
else { |
| 322 |
$sth2->execute($language_subtag_registry->{subtag},$default_language); |
| 323 |
} |
| 324 |
my $sth3 = $dbh->prepare("SELECT description FROM language_descriptions WHERE type='language' AND subtag=? AND lang=?"); |
| 325 |
# add the correct description info |
| 326 |
while (my $language_descriptions = $sth2->fetchrow_hashref) { |
| 327 |
$sth3->execute($language_subtag_registry->{subtag},$language_subtag_registry->{subtag}); |
| 328 |
my $native_description; |
| 329 |
while (my $description = $sth3->fetchrow_hashref) { |
| 330 |
$native_description = $description->{description}; |
| 331 |
} |
| 332 |
|
| 333 |
# fill in the ISO6329 code |
| 334 |
$language_subtag_registry->{iso639_2_code} = $language_descriptions->{iso639_2_code}; |
| 335 |
# fill in the native description of the language, as well as the current language's translation of that if it exists |
| 336 |
if ($native_description) { |
| 337 |
$language_subtag_registry->{language_description} = $native_description; |
| 338 |
$language_subtag_registry->{language_description}.=" ($language_descriptions->{description})" if $language_descriptions->{description}; |
| 339 |
} |
| 340 |
else { |
| 341 |
$language_subtag_registry->{language_description} = $language_descriptions->{description}; |
| 342 |
} |
| 343 |
} |
| 344 |
if ( !$language_list || index ( $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) { |
311 |
if ( !$language_list || index ( $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) { |
| 345 |
push @languages_loop, $language_subtag_registry; |
312 |
push @languages_loop, $language_subtag_registry; |
| 346 |
} |
313 |
} |
| 347 |
- |
|
|