@@ -, +, @@ --- C4/Languages.pm | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) --- a/C4/Languages.pm +++ a/C4/Languages.pm @@ -97,29 +97,34 @@ sub getFrameworkLanguages { =head2 getTranslatedLanguages -Returns a reference to an array of hashes: + my $languages = getTranslatedLanguages( 'opac', 'bootstrap' ); - my $languages = getTranslatedLanguages(); - print "Available translated languages:\n"; - for my $language(@$trlanguages) { - print "$language->{language_code}\n"; # language code in iso 639-2 - print "$language->{language_name}\n"; # language name in native script - print "$language->{language_locale_name}\n"; # language name in current locale - } + Parameter interface falls back to opac. + Parameter theme falls back to pref opacthemes or template (stafftheme). + + Returns a reference to an array of hashes. + + Key language_code refers to ISO 639-2. + Key language_name is name in native script. + Key language_locale_name is name in current locale. =cut sub getTranslatedLanguages { - my ($interface, $theme, $current_language, $which) = @_; + my ( $interface, $theme, $current_language ) = @_; + $interface ||= 'opac'; + $theme ||= C4::Context->preference( + $interface eq 'opac' ? 'opacthemes' : 'template' + ); + my @languages; - my @enabled_languages = - ( $interface && $interface eq 'intranet' ) + my @enabled_languages = $interface eq 'intranet' ? split ",", C4::Context->preference('language') : split ",", C4::Context->preference('OPACLanguages'); my $cache = Koha::Caches->get_instance; my $cache_key = "languages_${interface}_${theme}"; - if ($interface && $interface eq 'opac' ) { + if( $interface eq 'opac' ) { my $htdocs = C4::Context->config('opachtdocs'); my $cached = $cache->get_from_cache($cache_key); if ( $cached ) { @@ -129,7 +134,7 @@ sub getTranslatedLanguages { $cache->set_in_cache($cache_key, \@languages ); } } - elsif ($interface && $interface eq 'intranet' ) { + elsif( $interface eq 'intranet' ) { my $htdocs = C4::Context->config('intrahtdocs'); my $cached = $cache->get_from_cache($cache_key); if ( $cached ) { @@ -150,7 +155,7 @@ sub getTranslatedLanguages { $seen{$_}++ for @languages; @languages = keys %seen; } - return _build_languages_arrayref(\@languages,$current_language,\@enabled_languages); + return _build_languages_arrayref( \@languages, $current_language, \@enabled_languages ); } =head2 getAllLanguages --