Encourage use of utf-8 languages

This commit is contained in:
Jamie Cameron
2017-05-24 16:14:20 -07:00
parent faa65976d7
commit 133b511a75
4 changed files with 14 additions and 6 deletions

View File

@@ -23,8 +23,8 @@ print &ui_table_start(undef, undef, 2);
if ($access{'lang'}) {
# Show personal language
my @langs = &list_languages();
my $glang = $gconfig{"lang"} || $default_lang;
my @langs = &list_languages($user->{'lang'} || $glang);
my ($linfo) = grep { $_->{'lang'} eq $glang } @langs;
print &ui_table_row($text{'index_lang'},
&ui_radio("lang_def", $user->{'lang'} ? 0 : 1,

View File

@@ -5268,7 +5268,7 @@ $rv{"dir"} = $_[0];
return %rv;
}
=head2 list_languages
=head2 list_languages(current-lang)
Returns an array of supported languages, taken from Webmin's os_list.txt file.
Each is a hash reference with the following keys :
@@ -5286,6 +5286,7 @@ Each is a hash reference with the following keys :
=cut
sub list_languages
{
my ($current) = @_;
if (!@main::list_languages_cache) {
my $o;
local $_;
@@ -5314,6 +5315,7 @@ if (!@main::list_languages_cache) {
$ul->{'lang'} = $utf8lang;
$ul->{'index'} =
scalar(@main::list_languages_cache);
$l->{'utf8_variant'} = $ul;
push(@main::list_languages_cache, $ul);
}
}
@@ -5322,6 +5324,12 @@ if (!@main::list_languages_cache) {
@main::list_languages_cache = sort { $a->{'desc'} cmp $b->{'desc'} }
@main::list_languages_cache;
}
if ($current && $current =~ /\.UTF-8$/) {
# If the user is already using a UTF-8 language encoding, filter out
# languages that have a UTF-8 variant
return grep { $_->{'charset'} eq 'UTF-8' ||
!$_->{'utf8_variant'} } @main::list_languages_cache;
}
return @main::list_languages_cache;
}

View File

@@ -7,7 +7,7 @@
$main::default_debug_log_size = 10*1024*1024;
$webmin_feedback_address = "feedback\@webmin.com";
$default_lang = "en";
$default_lang = "en.UTF-8";
$default_charset = "iso-8859-1";
=head2 unique(string, ...)

View File

@@ -15,16 +15,16 @@ $clang = $gconfig{'lang'} ? $gconfig{'lang'} : $default_lang;
print &ui_table_row($text{'lang_lang'},
&ui_select("lang", $clang,
[ map { [ $_->{'lang'}, "$_->{'desc'} (".uc($_->{'lang'}).")" ] }
&list_languages() ]), undef, [ "valign=middle","valign=middle" ]);
&list_languages($clang) ]));
# Character set
print &ui_table_row($text{'lang_charset'},
&ui_opt_textbox("charset", $gconfig{'charset'}, 15,
$text{'lang_chardef'}), undef, [ "valign=middle","valign=middle" ]);
$text{'lang_chardef'}));
# Use language from browser?
print &ui_table_row($text{'lang_accept'},
&ui_yesno_radio("acceptlang", int($gconfig{'acceptlang'})), undef, [ "valign=middle","valign=middle" ]);
&ui_yesno_radio("acceptlang", int($gconfig{'acceptlang'})));
print &ui_table_end();
print &ui_form_end([ [ "", $text{'lang_ok'} ] ]);