|
Lines 97-125
sub getFrameworkLanguages {
Link Here
|
| 97 |
|
97 |
|
| 98 |
=head2 getTranslatedLanguages |
98 |
=head2 getTranslatedLanguages |
| 99 |
|
99 |
|
| 100 |
Returns a reference to an array of hashes: |
100 |
my $languages = getTranslatedLanguages( 'opac', 'bootstrap' ); |
| 101 |
|
101 |
|
| 102 |
my $languages = getTranslatedLanguages(); |
102 |
Parameter interface falls back to opac. |
| 103 |
print "Available translated languages:\n"; |
103 |
Parameter theme falls back to pref opacthemes or template (stafftheme). |
| 104 |
for my $language(@$trlanguages) { |
104 |
|
| 105 |
print "$language->{language_code}\n"; # language code in iso 639-2 |
105 |
Returns a reference to an array of hashes. |
| 106 |
print "$language->{language_name}\n"; # language name in native script |
106 |
|
| 107 |
print "$language->{language_locale_name}\n"; # language name in current locale |
107 |
Key language_code refers to ISO 639-2. |
| 108 |
} |
108 |
Key language_name is name in native script. |
|
|
109 |
Key language_locale_name is name in current locale. |
| 109 |
|
110 |
|
| 110 |
=cut |
111 |
=cut |
| 111 |
|
112 |
|
| 112 |
sub getTranslatedLanguages { |
113 |
sub getTranslatedLanguages { |
| 113 |
my ($interface, $theme, $current_language, $which) = @_; |
114 |
my ( $interface, $theme, $current_language ) = @_; |
|
|
115 |
$interface ||= 'opac'; |
| 116 |
$theme ||= C4::Context->preference( |
| 117 |
$interface eq 'opac' ? 'opacthemes' : 'template' |
| 118 |
); |
| 119 |
|
| 114 |
my @languages; |
120 |
my @languages; |
| 115 |
my @enabled_languages = |
121 |
my @enabled_languages = $interface eq 'intranet' |
| 116 |
( $interface && $interface eq 'intranet' ) |
|
|
| 117 |
? split ",", C4::Context->preference('language') |
122 |
? split ",", C4::Context->preference('language') |
| 118 |
: split ",", C4::Context->preference('OPACLanguages'); |
123 |
: split ",", C4::Context->preference('OPACLanguages'); |
| 119 |
|
124 |
|
| 120 |
my $cache = Koha::Caches->get_instance; |
125 |
my $cache = Koha::Caches->get_instance; |
| 121 |
my $cache_key = "languages_${interface}_${theme}"; |
126 |
my $cache_key = "languages_${interface}_${theme}"; |
| 122 |
if ($interface && $interface eq 'opac' ) { |
127 |
if( $interface eq 'opac' ) { |
| 123 |
my $htdocs = C4::Context->config('opachtdocs'); |
128 |
my $htdocs = C4::Context->config('opachtdocs'); |
| 124 |
my $cached = $cache->get_from_cache($cache_key); |
129 |
my $cached = $cache->get_from_cache($cache_key); |
| 125 |
if ( $cached ) { |
130 |
if ( $cached ) { |
|
Lines 129-135
sub getTranslatedLanguages {
Link Here
|
| 129 |
$cache->set_in_cache($cache_key, \@languages ); |
134 |
$cache->set_in_cache($cache_key, \@languages ); |
| 130 |
} |
135 |
} |
| 131 |
} |
136 |
} |
| 132 |
elsif ($interface && $interface eq 'intranet' ) { |
137 |
elsif( $interface eq 'intranet' ) { |
| 133 |
my $htdocs = C4::Context->config('intrahtdocs'); |
138 |
my $htdocs = C4::Context->config('intrahtdocs'); |
| 134 |
my $cached = $cache->get_from_cache($cache_key); |
139 |
my $cached = $cache->get_from_cache($cache_key); |
| 135 |
if ( $cached ) { |
140 |
if ( $cached ) { |
|
Lines 150-156
sub getTranslatedLanguages {
Link Here
|
| 150 |
$seen{$_}++ for @languages; |
155 |
$seen{$_}++ for @languages; |
| 151 |
@languages = keys %seen; |
156 |
@languages = keys %seen; |
| 152 |
} |
157 |
} |
| 153 |
return _build_languages_arrayref(\@languages,$current_language,\@enabled_languages); |
158 |
return _build_languages_arrayref( \@languages, $current_language, \@enabled_languages ); |
| 154 |
} |
159 |
} |
| 155 |
|
160 |
|
| 156 |
=head2 getAllLanguages |
161 |
=head2 getAllLanguages |
| 157 |
- |
|
|