summaryrefslogtreecommitdiffstats
path: root/deluge/ui/web/server.py
diff options
context:
space:
mode:
authorbendikro <bro.devel+deluge@gmail.com>2016-04-23 22:18:55 +0200
committerCalum Lind <calumlind+deluge@gmail.com>2016-04-25 13:26:58 +0100
commit857e2fd46ec296265ce98c8b8dbaf2187c4e25e2 (patch)
treec85672c45c95bd3ddbb8f370be0f5f76624b46d6 /deluge/ui/web/server.py
parent74f2f45fc0a04fbb2de0ced286e4b7f2b45895b6 (diff)
downloaddeluge-857e2fd46ec296265ce98c8b8dbaf2187c4e25e2.tar.gz
deluge-857e2fd46ec296265ce98c8b8dbaf2187c4e25e2.tar.bz2
deluge-857e2fd46ec296265ce98c8b8dbaf2187c4e25e2.zip
[#1959] [WebUI] Allow user selectable GUI language
Diffstat (limited to 'deluge/ui/web/server.py')
-rw-r--r--deluge/ui/web/server.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/deluge/ui/web/server.py b/deluge/ui/web/server.py
index 591eeec9b..5ad2936f2 100644
--- a/deluge/ui/web/server.py
+++ b/deluge/ui/web/server.py
@@ -23,9 +23,10 @@ from twisted.web import http, resource, server, static
from deluge import common, component, configmanager
from deluge.core.rpcserver import check_ssl_keys
from deluge.ui.tracker_icons import TrackerIcons
+from deluge.ui.util import lang
from deluge.ui.web.auth import Auth
from deluge.ui.web.common import Template, compress
-from deluge.ui.web.json_api import JSON, WebApi
+from deluge.ui.web.json_api import JSON, WebApi, WebUtils
from deluge.ui.web.pluginmanager import PluginManager
log = logging.getLogger(__name__)
@@ -48,6 +49,7 @@ CONFIG_DEFAULTS = {
"show_sidebar": True,
"theme": "gray",
"first_login": True,
+ "language": "",
# Server Settings
"base": "/",
@@ -533,6 +535,8 @@ class DelugeWeb(component.Component):
def __init__(self, options=None):
super(DelugeWeb, self).__init__("DelugeWeb")
self.config = configmanager.ConfigManager("web.conf", CONFIG_DEFAULTS)
+ self.config.run_converter((0, 1), 2, self._migrate_config_1_to_2)
+ self.config.register_set_function("language", self._on_language_changed)
self.socket = None
self.top_level = TopLevel()
@@ -556,13 +560,21 @@ class DelugeWeb(component.Component):
# Strip away slashes and serve on the base path as well as root path
self.top_level.putChild(self.base.strip('/'), self.top_level)
+ lang.setup_translations(setup_gettext=True, setup_pygtk=False)
+
self.site = server.Site(self.top_level)
self.web_api = WebApi()
+ self.web_utils = WebUtils()
+
self.auth = Auth(self.config)
self.standalone = True
# Initalize the plugins
self.plugins = PluginManager()
+ def _on_language_changed(self, key, value):
+ log.debug("Setting UI language '%s'", value)
+ lang.set_language(value)
+
def install_signal_handlers(self):
# Since twisted assigns itself all the signals may as well make
# use of it.
@@ -648,6 +660,10 @@ class DelugeWeb(component.Component):
if self.standalone and reactor.running:
reactor.stop()
+ def _migrate_config_1_to_2(self, config):
+ config["language"] = CONFIG_DEFAULTS["language"]
+ return config
+
if __name__ == "__builtin__":
deluge_web = DelugeWeb()