TT#134102 API language handling

* Fix for language solving for API requests. Changed the sequence of language choosing:
1. Request parameter "lang" for API and UI.
2. Cookie value "ngcp_panel_lang" for UI only.
3. User agent/browser language for API and UI.

Change-Id: Id5d814deead22eb7e2908fdc742b0c8474314d49
mr10.2
Oleksandr Duts 4 years ago
parent f8d982708b
commit ddb7412d85

@ -58,11 +58,9 @@ sub auto :Private {
}
# clear form cache (they need to be properly re-translated)
NGCP::Panel::Form::clear_form_cache();
}
unless ($is_api_request) {
if (defined $c->session->{lang}) {
} elsif (defined $c->session->{lang}) {
$c->languages([$c->session->{lang}, "i-default"]);
} elsif ( $c->req->cookie('ngcp_panel_lang') ) {
} elsif ( ! $is_api_request && $c->req->cookie('ngcp_panel_lang') ) {
$c->session->{lang} = $c->req->cookie('ngcp_panel_lang')->value;
$c->languages([$c->session->{lang}, 'i-default']);
} else { # if language has not yet be set, set it from config or browser
@ -71,10 +69,10 @@ sub auto :Private {
$c->languages([$c->config->{appearance}{force_language}, 'i-default']);
} else {
$c->languages([ map { s/^en.*$/i-default/r } @{ $c->languages } ]);
$c->log->debug("lang set by browser: " . $c->language);
}
$c->session->{lang} = $c->language;
$c->log->debug("lang set by browser or config: " . $c->language);
}
$c->session->{lang} = $c->language
if ! $is_api_request;
}
################################################### timezone retrieval

Loading…
Cancel
Save