[! 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; -]