Manage localisation fallback on server side only

This commit is contained in:
Daniel Berteaud 2015-07-25 15:16:14 +02:00
parent a9aa9fdbb2
commit 52b4dae6a8
2 changed files with 8 additions and 15 deletions

View File

@ -83,9 +83,6 @@ function localize(string){
if (locale[string]){
return locale[string];
}
else if (fallback_locale[string]){
return fallback_locale[string];
}
return string;
}

View File

@ -1583,24 +1583,20 @@ get '/locales/(:lang).js' => sub {
my $fallback_strings = {};
foreach my $string (keys %Vroom::I18N::fr::Lexicon){
next if $string eq '';
$strings->{$string} = $self->l($string);
}
# If lang is not en, send also en as a fallback locale
# useful if a locale is not complete
if ($req_lang ne 'en'){
$self->languages('en');
foreach my $string (keys %Vroom::I18N::fr::Lexicon){
next if $string eq '';
$fallback_strings->{$string} = $self->l($string);
if ($self->l($string) ne ''){
$strings->{$string} = $self->l($string);
}
else{
$self->languages('en');
$strings->{$string} = $self->l($string);
$self->languages($req_lang);
}
}
# Set the user locale back
$self->languages($usr_lang);
my $res = 'locale = ' . Mojo::JSON::to_json($strings) . ';';
$res .= 'fallback_locale = ' . Mojo::JSON::to_json($fallback_strings) . ';';
# And send the response
return $self->render(
text => $res,
text => 'locale = ' . Mojo::JSON::to_json($strings) . ';',
format => 'application/javascript;charset=UTF-8'
);
};