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

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

Return to bug 12017