[! use strict; use PVE::pvecfg; use PVE::I18N; use PVE::ConfigServer; use PVE::HTMLForm; use PVE::HTMLUtils; use PVE::HTMLGrid; !] [- use strict; 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 $grid = PVE::HTMLGrid->new ('fw1', 'fw2', 'fw3:right', 'fw4'); my $conn = PVE::ConfigClient::connect ($udat{auth_cookie}); 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->{http_proxy} ne $fdat{http_proxy}) { $pvecfg->{language} = $fdat{language}; $pvecfg->{http_proxy} = $fdat{http_proxy}; die __("invalid proxy syntax (http://server:port)") ."\n" if $pvecfg->{http_proxy} && $pvecfg->{http_proxy} !~ m|^http://|; $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 || {}; $fdat{http_proxy} = $pvecfg->{http_proxy} if !defined($fdat{http_proxy}); $fdat{keyboard} = $qemuservercfg->{keyboard} || 'en-us' if !$fdat{keyboard}; $fdat{language} = $pvecfg->{language} || 'C' if !$fdat{language}; $out .= $form->create_header(); $grid->add_row (__("Language") . ':', $form->create_element('language', 'dropdown', $fdat{language}, [['pt_br', 'Brazil-Portuguese'], ['zh_CN', 'Chinese'], ['cs', 'Czech'], ['nl', 'Dutch'], ['C', 'English'], ['fr', 'French'], ['de', 'German'], ['hu', 'Hungarian'], ['it', 'Italian'], ['ja', 'Japanese'], ['pl', 'Polish'], ['pt', 'Portuguese'], ['ro', 'Romanian'], ['ru', 'Russian'], ['sr', 'Serbian'], ['sl', 'Slovenian'], ['es', 'Spanish'], #['sv', 'Swedish'], ['tr', 'Turkish'], ['vi', 'Vietnamese']]), __("Keyboard Layout") . ':', $form->create_element('keyboard', 'dropdown', $fdat{keyboard}, $keymaps)); $grid->add_row (__("HTTP Proxy") . ':', $form->create_element('http_proxy', 'text', $fdat{http_proxy})); my $html = $grid->html(); $html .= $form->create_cmdbutton ('save'); $out .= PVE::HTMLUtils::create_statusframe (undef, __("Options"), undef, $html); $out .= $form->create_footer(); print OUT $out; -]