[pve-devel] [PATCH manager] fix #1393: use language from datacenter.cfg for gui

Dominik Csapak d.csapak at proxmox.com
Fri Aug 17 09:26:21 CEST 2018


if we do not have a language cookie, try to read
the language from the datacenter.cfg and fall back to 'en'

also set it into the 'Proxmox' object, so that the gui can show it
in the LoginWindow

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 PVE/Service/pveproxy.pm            | 8 +++++++-
 www/index.html.tpl                 | 1 +
 www/manager6/window/LoginWindow.js | 2 +-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/PVE/Service/pveproxy.pm b/PVE/Service/pveproxy.pm
index b092438a..bb60b29e 100755
--- a/PVE/Service/pveproxy.pm
+++ b/PVE/Service/pveproxy.pm
@@ -10,6 +10,7 @@ use Encode;
 use URI;
 use URI::QueryParam;
 use Data::Dumper;
+use PVE::Cluster;
 use PVE::API2Tools;
 use PVE::API2;
 use PVE::APIServer::Formatter;
@@ -176,7 +177,7 @@ sub is_phone {
 sub get_index {
     my ($nodename, $server, $r, $args) = @_;
 
-    my $lang = 'en';
+    my $lang;
     my $username;
     my $token = 'null';
 
@@ -192,6 +193,11 @@ sub get_index {
 	}
     }
 
+    if (!$lang) {
+	my $dc_conf = PVE::Cluster::cfs_read_file('datacenter.cfg');
+	$lang = $dc_conf->{language} // 'en';
+    }
+
     $username = '' if !$username;
 
     my $mobile = is_phone($r->header('User-Agent')) ? 1 : 0;
diff --git a/www/index.html.tpl b/www/index.html.tpl
index a972e3aa..ae7f610f 100644
--- a/www/index.html.tpl
+++ b/www/index.html.tpl
@@ -26,6 +26,7 @@
     <script type="text/javascript">
     Proxmox = {
 	Setup: { auth_cookie_name: 'PVEAuthCookie' },
+	defaultLang: '[% lang %]',
 	UserName: '[% username %]',
 	CSRFPreventionToken: '[% token %]'
     };
diff --git a/www/manager6/window/LoginWindow.js b/www/manager6/window/LoginWindow.js
index 683fb54c..3ab5173c 100644
--- a/www/manager6/window/LoginWindow.js
+++ b/www/manager6/window/LoginWindow.js
@@ -164,7 +164,7 @@ Ext.define('PVE.window.LoginWindow', {
 	    {
 		xtype: 'proxmoxLanguageSelector',
 		fieldLabel: gettext('Language'),
-		value: Ext.util.Cookies.get('PVELangCookie') || 'en',
+		value: Ext.util.Cookies.get('PVELangCookie') || Proxmox.defaultLang || 'en',
 		name: 'lang',
 		reference: 'langField',
 		submitValue: false
-- 
2.11.0





More information about the pve-devel mailing list