@@ -, +, @@ --- Koha/Manual.pm | 16 +++++++++++++--- help.pl | 15 ++++++++++++++- .../en/modules/admin/preferences/enhanced_content.pref | 1 + 3 files changed, 28 insertions(+), 4 deletions(-) --- a/Koha/Manual.pm +++ a/Koha/Manual.pm @@ -17,8 +17,18 @@ sub _get_help_version { } sub _get_base_url { + my ( $preferred_language ) = @_; + + my @available_languages = qw( en ar cs es fr it pt_BZ tz zh_TW ); + + my ( $language ) = grep { + my $preferred_short = substr $preferred_language, 0, 2; + my $avail_short = substr $_, 0, 2; + $preferred_short eq $avail_short ? $_ : () + } @available_languages; + + my $KohaManualLanguage = $language || C4::Context->preference('KohaManualLanguage') || 'en'; my $KohaManualBaseURL = C4::Context->preference('KohaManualBaseURL') || 'http://koha-community.org/manual'; - my $KohaManualLanguage = C4::Context->preference('KohaManualLanguage') || 'en'; if ( $KohaManualBaseURL =~ m|^/| ) { $KohaManualBaseURL = C4::Context->preference('staffClientBaseURL') . $KohaManualBaseURL; } @@ -221,7 +231,7 @@ our $mapping = { }; sub get_url { - my $url = shift; + my ( $url, $preferred_language ) = @_; my $file; if ($url =~ /koha\/(.*)\.pl/) { $file = $1; @@ -230,7 +240,7 @@ sub get_url { } $file =~ s/[^a-zA-Z0-9_\-\/]*//g; - my $base_url = _get_base_url; + my $base_url = _get_base_url( $preferred_language ); return $base_url . ( exists $mapping->{$file} ? $mapping->{$file} : $mapping->{mainpage} ); } --- a/help.pl +++ a/help.pl @@ -20,15 +20,28 @@ use Modern::Perl; use CGI qw ( -utf8 ); +use C4::Auth; use C4::Context; use Koha::Manual; my $query = new CGI; +# We need to call get_template_and_user to let it does the job correctly +# for the language +my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( + { + template_name => "intranet-main.tt", # Just a valid template path + query => $query, + type => "intranet", + authnotrequired => 1, + } +); + # find the script that called the online help using the CGI referer() our $refer = $query->param('url'); $refer = $query->referer() if !$refer || $refer eq 'undefined'; -my $manual_url = Koha::Manual::get_url($refer); +my $language = C4::Languages::getlanguage( $query ); +my $manual_url = Koha::Manual::get_url($refer, $language); print $query->redirect($manual_url); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/enhanced_content.pref @@ -417,3 +417,4 @@ Enhanced Content: pt_BR: Portuguese – Brazil tr: Turkish zh_TW: Chinese – Taiwan + - It will be used as a fallback value if the language used by the interface does not have an online manual version. --