View | Details | Raw Unified | Return to bug 12017
Collapse All | Expand All

(-)a/C4/Languages.pm (-37 / +3 lines)
Lines 47-53 BEGIN { Link Here
47
        &getLanguages
47
        &getLanguages
48
        &getAllLanguages
48
        &getAllLanguages
49
    );
49
    );
50
    @EXPORT_OK = qw(getSearchLanguages getLanguages_iso getTranslatedLanguages getAllLanguages getLanguages get_bidi regex_lang_subtags language_get_description accept_language getlanguage);
50
    @EXPORT_OK = qw(getSearchLanguages getLanguages_iso getTranslatedLanguages getAllLanguages getLanguages get_bidi regex_lang_subtags accept_language getlanguage);
51
    $DEBUG = 0;
51
    $DEBUG = 0;
52
}
52
}
53
53
Lines 265-307 sub getLanguages { Link Here
265
    if ($lang) {
265
    if ($lang) {
266
        $current_language = regex_lang_subtags($lang)->{'language'};
266
        $current_language = regex_lang_subtags($lang)->{'language'};
267
    }
267
    }
268
    my $sth = $dbh->prepare('SELECT * FROM language_subtag_registry WHERE type=\'language\'');
268
    my $sth = $dbh->prepare('SELECT * FROM language_rfc4646_to_iso639');
269
    $sth->execute();
269
    $sth->execute();
270
    while (my $language_subtag_registry = $sth->fetchrow_hashref) {
270
    while (my $language_subtag_registry = $sth->fetchrow_hashref) {
271
        my $desc;
271
        $language_subtag_registry->{subtag} = $language_subtag_registry->{rfc4646_subtag};
272
        # check if language name is stored in current language
273
        my $sth4= $dbh->prepare("SELECT description FROM language_descriptions WHERE type='language' AND subtag =? AND lang = ?");
274
        $sth4->execute($language_subtag_registry->{subtag},$current_language);
275
        while (my $language_desc = $sth4->fetchrow_hashref) {
276
             $desc=$language_desc->{description};
277
        }
278
        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 = ?");
279
        if ($desc) {
280
            $sth2->execute($language_subtag_registry->{subtag},$current_language);
281
        }
282
        else {
283
            $sth2->execute($language_subtag_registry->{subtag},$default_language);
284
        }
285
        my $sth3 = $dbh->prepare("SELECT description FROM language_descriptions WHERE type='language' AND subtag=? AND lang=?");
286
        # add the correct description info
287
        while (my $language_descriptions = $sth2->fetchrow_hashref) {
288
            $sth3->execute($language_subtag_registry->{subtag},$language_subtag_registry->{subtag});
289
            my $native_description;
290
            while (my $description = $sth3->fetchrow_hashref) {
291
                $native_description = $description->{description};
292
            }
293
294
            # fill in the ISO6329 code
295
            $language_subtag_registry->{iso639_2_code} = $language_descriptions->{iso639_2_code};
296
            # fill in the native description of the language, as well as the current language's translation of that if it exists
297
            if ($native_description) {
298
                $language_subtag_registry->{language_description} = $native_description;
299
                $language_subtag_registry->{language_description}.=" ($language_descriptions->{description})" if $language_descriptions->{description};
300
            }
301
            else {
302
                $language_subtag_registry->{language_description} = $language_descriptions->{description};
303
            }
304
        }
305
        if ( !$language_list || index (  $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) {
272
        if ( !$language_list || index (  $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) {
306
            push @languages_loop, $language_subtag_registry;
273
            push @languages_loop, $language_subtag_registry;
307
        }
274
        }
308
- 

Return to bug 12017