[!
use strict;
use PVE::pvecfg;
use PVE::I18N;
use PVE::ConfigServer;
use PVE::HTMLForm;
use PVE::HTMLUtils;
!]
[-
use strict;
sub html_table_line {
my ($v1, $v2, $v3, $v4) = @_;
$v1 = " " if !$v1;
$v2 = " " if !$v2;
$v3 = " " if !$v3;
$v4 = " " if !$v4;
my $html = '
';
$html .= "$v1 | $v2 | ";
$html .= " | $v3 | $v4 |
\n";
return $html;
}
my $keymaps = [
[ 'ar', 'Arabic' ],
[ 'fr-be', 'Belgium-French' ],
[ 'pt-br', 'Brazil-Portuguese' ],
[ 'fr-ca', 'Canada-French' ],
[ 'hr', 'Croatian' ],
[ 'da', 'Danish' ],
[ 'nl', 'Dutch' ],
[ 'et', 'Estonian' ],
[ 'fo', 'Faroese' ],
[ 'fi', 'Finnish' ],
[ 'fr', 'French' ],
[ 'de', 'German' ],
[ 'hu', 'Hungarian' ],
[ 'is', 'Icelandic' ],
[ 'it', 'Italian' ],
[ 'ja', 'Japanese' ],
[ 'lv', 'Latvian' ],
[ 'lt', 'Lithuanian' ],
[ 'mk', 'Macedonian' ],
[ 'no', 'Norwegian' ],
[ 'pl', 'Polish' ],
[ 'pt', 'Portuguese' ],
[ 'ru', 'Russian' ],
[ 'sl', 'Slovenian' ],
[ 'es', 'Spanish' ],
[ 'sv', 'Swedish' ],
[ 'fr-ch', 'Swiss-French' ],
[ 'de-ch', 'Swiss-German' ],
[ 'th', 'Thailand' ],
[ 'tr', 'Turkish' ],
[ 'en-us', 'U.S. English' ],
[ 'en-gb', 'United Kingdom'],
];
my $out = '';
my $form = PVE::HTMLForm->new (\%fdat);
my $conn = PVE::ConfigClient::connect ();
my $pvecfg;
my $qemuservercfg;
if ($form->action eq 'save') {
eval {
check_write_mode ($udat{AM});
$pvecfg = $conn->get_config_data ('pvecfg')->result || {};
if ($pvecfg->{language} ne $fdat{language}) {
$pvecfg->{language} = $fdat{language};
$conn->set_config_data ('pvecfg', $pvecfg);
}
$qemuservercfg = $conn->get_config_data ('qemuservercfg')->result || {};
if ($qemuservercfg->{keyboard} ne $fdat{keyboard}) {
$qemuservercfg->{keyboard} = $fdat{keyboard};
$conn->set_config_data ('qemuservercfg', $qemuservercfg);
}
};
$udat{popup_error} = $@ if $@;
}
# always reread
$pvecfg = $conn->get_config_data ('pvecfg')->result || {};
$qemuservercfg = $conn->get_config_data ('qemuservercfg')->result || {};
$out .= $form->create_header();
my $html = '';
$html .= html_table_line (__("Language") . ':',
$form->create_element('language', 'dropdown',
$pvecfg->{language} || 'C',
[['pt_br', 'Brazil-Portuguese'],
['zh_CN', 'Chinese'],
['nl', 'Dutch'],
['C', 'English'],
['fr', 'French'],
['de', 'German'],
['hu', 'Hungarian'],
['it', 'Italian'],
['ja', 'Japanese'],
['pt', 'Portuguese'],
['ro', 'Romanian'],
['ru', 'Russian'],
['sr', 'Serbian'],
['es', 'Spanish'],
['tr', 'Turkish']]),
__("Keyboard Layout") . ':',
$form->create_element('keyboard', 'dropdown',
$qemuservercfg->{keyboard} || 'en-us',
$keymaps));
$html .= "
";
$html .= $form->create_cmdbutton ('save');
$out .= PVE::HTMLUtils::create_statusframe (undef, __("Options"), undef, $html);
$out .= $form->create_footer();
print OUT $out;
-]