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

(-)a/C4/Languages.pm (-43 / +1 lines)
Lines 31-37 eval { Link Here
31
        import Memoize::Memcached qw(memoize_memcached);
31
        import Memoize::Memcached qw(memoize_memcached);
32
32
33
        memoize_memcached('getTranslatedLanguages', memcached => C4::Context->memcached);
33
        memoize_memcached('getTranslatedLanguages', memcached => C4::Context->memcached);
34
        memoize_memcached('getFrameworkLanguages' , memcached => C4::Context->memcached);
35
        memoize_memcached('getAllLanguages',        memcached => C4::Context->memcached);
34
        memoize_memcached('getAllLanguages',        memcached => C4::Context->memcached);
36
    }
35
    }
37
};
36
};
Lines 41-52 BEGIN { Link Here
41
    require Exporter;
40
    require Exporter;
42
    @ISA    = qw(Exporter);
41
    @ISA    = qw(Exporter);
43
    @EXPORT = qw(
42
    @EXPORT = qw(
44
        &getFrameworkLanguages
45
        &getTranslatedLanguages
43
        &getTranslatedLanguages
46
        &getLanguages
44
        &getLanguages
47
        &getAllLanguages
45
        &getAllLanguages
48
    );
46
    );
49
    @EXPORT_OK = qw(getSearchLanguages getLanguages_iso getFrameworkLanguages getTranslatedLanguages getAllLanguages getLanguages get_bidi regex_lang_subtags language_get_description accept_language);
47
    @EXPORT_OK = qw(getSearchLanguages getLanguages_iso getTranslatedLanguages getAllLanguages getLanguages get_bidi regex_lang_subtags language_get_description accept_language);
50
    $DEBUG = 0;
48
    $DEBUG = 0;
51
}
49
}
52
50
Lines 64-108 use C4::Languages; Link Here
64
62
65
=head1 FUNCTIONS
63
=head1 FUNCTIONS
66
64
67
=head2 getFrameworkLanguages
68
69
Returns a reference to an array of hashes:
70
71
 my $languages = getFrameworkLanguages();
72
 for my $language(@$languages) {
73
    print "$language->{language_code}\n"; # language code in iso 639-2
74
    print "$language->{language_name}\n"; # language name in native script
75
    print "$language->{language_locale_name}\n"; # language name in current locale
76
 }
77
78
=cut
79
80
sub getFrameworkLanguages {
81
    # get a hash with all language codes, names, and locale names
82
    my $all_languages = getAllLanguages();
83
    my @languages;
84
    
85
    # find the available directory names
86
    my $dir=C4::Context->config('intranetdir')."/installer/data/";
87
    opendir (MYDIR,$dir);
88
    my @listdir= grep { !/^\.|CVS/ && -d "$dir/$_"} readdir(MYDIR);    
89
    closedir MYDIR;
90
91
    # pull out all data for the dir names that exist
92
    for my $dirname (@listdir) {
93
        for my $language_set (@$all_languages) {
94
95
            if ($dirname eq $language_set->{language_code}) {
96
                push @languages, {
97
                    'language_code'=>$dirname, 
98
                    'language_description'=>$language_set->{language_description}, 
99
                    'native_descrition'=>$language_set->{language_native_description} }
100
            }
101
        }
102
    }
103
    return \@languages;
104
}
105
106
=head2 getSearchLanguages
65
=head2 getSearchLanguages
107
66
108
Get selection of languages codes and iso639_2.
67
Get selection of languages codes and iso639_2.
109
- 

Return to bug 12017