summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2011-12-07 19:22:02 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2011-12-07 19:22:02 +0100
commitb575e03d6621cd236df7de3879507efa38ad16b8 (patch)
treeb454c2336f6dbc2048863b2457af2810a0ea1cc3 /module
parentnew l18n files, closed #448 (diff)
downloadpyload-b575e03d6621cd236df7de3879507efa38ad16b8.tar.xz
closed #436
Diffstat (limited to 'module')
-rw-r--r--module/common/pylgettext.py62
-rw-r--r--module/setup.py52
-rw-r--r--module/web/webinterface.py6
3 files changed, 96 insertions, 24 deletions
diff --git a/module/common/pylgettext.py b/module/common/pylgettext.py
new file mode 100644
index 000000000..ae6d39325
--- /dev/null
+++ b/module/common/pylgettext.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from gettext import *
+
+_searchdirs = None
+
+origfind = find
+
+def setpaths(pathlist):
+ global _searchdirs
+ if isinstance(pathlist, list):
+ _searchdirs = pathlist
+ else:
+ _searchdirs = list(pathlist)
+
+
+def addpath(path):
+ global _searchdirs
+ if _searchdirs is None:
+ _searchdirs = list(path)
+ else:
+ if path not in _searchdirs:
+ _searchdirs.append(path)
+
+
+def delpath(path):
+ global _searchdirs
+ if _searchdirs is not None:
+ if path in _searchdirs:
+ _searchdirs.remove(path)
+
+
+def clearpath():
+ global _searchdirs
+ if _searchdirs is not None:
+ _searchdirs = None
+
+
+def find(domain, localedir=None, languages=None, all=False):
+ if _searchdirs is None:
+ return origfind(domain, localedir, languages, all)
+ searches = [localedir] + _searchdirs
+ results = list()
+ for dir in searches:
+ res = origfind(domain, dir, languages, all)
+ if all is False:
+ results.append(res)
+ else:
+ results.extend(res)
+ if all is False:
+ results = filter(lambda x: x is not None, results)
+ if len(results) == 0:
+ return None
+ else:
+ return results[0]
+ else:
+ return results
+
+#Is there a smarter/cleaner pythonic way for this?
+translation.__globals__['find'] = find
+
diff --git a/module/setup.py b/module/setup.py
index 4a1c59da6..2f6963db9 100644
--- a/module/setup.py
+++ b/module/setup.py
@@ -17,7 +17,7 @@
@author: RaNaN
"""
from getpass import getpass
-import gettext
+import module.common.pylgettext as gettext
import os
from os import makedirs
from os.path import abspath
@@ -39,14 +39,19 @@ class Setup():
self.path = path
self.config = config
-
def start(self):
langs = self.config.getMetaData("general", "language")["type"].split(";")
lang = self.ask(u"Choose your Language / Wähle deine Sprache", "en", langs)
- translation = gettext.translation("setup", join(self.path, "locale"), languages=["en", lang])
+ gettext.setpaths([join(os.sep, "usr", "share", "pyload", "locale"), None])
+ translation = gettext.translation("setup", join(self.path, "locale"), languages=[lang, "en"],fallback=True)
translation.install(True)
+ #Input shorthand for yes
+ self.yes=_("y")
+ #Input shorthand for no
+ self.no=_("n")
+
# print ""
# print _("Would you like to configure pyLoad via Webinterface?")
# print _("You need a Browser and a connection to this PC for it.")
@@ -139,15 +144,15 @@ class Setup():
print _("You can abort the setup now and fix some dependicies if you want.")
- con = self.ask(_("Continue with setup?"), "y", bool=True)
+ con = self.ask(_("Continue with setup?"), self.yes, bool=True)
if not con:
return False
print ""
- print _("Do you want to change the config path? Current is %s" % abspath(""))
+ print _("Do you want to change the config path? Current is %s") % abspath("")
print _("If you use pyLoad on a server or the home partition lives on an iternal flash it may be a good idea to change it.")
- path = self.ask(_("Change config path?"), "n", bool=True)
+ path = self.ask(_("Change config path?"), self.no , bool=True)
if path:
self.conf_path()
#calls exit when changed
@@ -156,7 +161,7 @@ class Setup():
print ""
print _("Do you want to configure login data and basic settings?")
print _("This is recommend for first run.")
- con = self.ask(_("Make basic setup?"), "y", bool=True)
+ con = self.ask(_("Make basic setup?"), self.yes, bool=True)
if con:
self.conf_basic()
@@ -164,14 +169,14 @@ class Setup():
if ssl:
print ""
print _("Do you want to configure ssl?")
- ssl = self.ask(_("Configure ssl?"), "n", bool=True)
+ ssl = self.ask(_("Configure ssl?"), self.no, bool=True)
if ssl:
self.conf_ssl()
if web:
print ""
print _("Do you want to configure webinterface?")
- web = self.ask(_("Configure webinterface?"), "y", bool=True)
+ web = self.ask(_("Configure webinterface?"), self.yes, bool=True)
if web:
self.conf_web()
@@ -282,7 +287,7 @@ class Setup():
print ""
print _("External clients (GUI, CLI or other) need remote access to work over the network.")
print _("However, if you only want to use the webinterface you may disable it to save ram.")
- self.config["remote"]["activated"] = self.ask(_("Enable remote access"), "y", bool=True)
+ self.config["remote"]["activated"] = self.ask(_("Enable remote access"), self.yes, bool=True)
print ""
@@ -295,7 +300,7 @@ class Setup():
#print _("You should disable checksum proofing, if you have low hardware requirements.")
#self.config["general"]["checksum"] = self.ask(_("Proof checksum?"), "y", bool=True)
- reconnect = self.ask(_("Use Reconnect?"), "n", bool=True)
+ reconnect = self.ask(_("Use Reconnect?"), self.no, bool=True)
self.config["reconnect"]["activated"] = reconnect
if reconnect:
self.config["reconnect"]["method"] = self.ask(_("Reconnect script location"), "./reconnect.sh")
@@ -306,7 +311,7 @@ class Setup():
print _("## Webinterface Setup ##")
print ""
- self.config["webinterface"]["activated"] = self.ask(_("Activate webinterface?"), "y", bool=True)
+ self.config["webinterface"]["activated"] = self.ask(_("Activate webinterface?"), self.yes, bool=True)
print ""
print _("Listen address, if you use 127.0.0.1 or localhost, the webinterface will only accessible locally.")
self.config["webinterface"]["host"] = self.ask(_("Address"), "0.0.0.0")
@@ -339,11 +344,11 @@ class Setup():
print ""
print _("If you're done and everything went fine, you can activate ssl now.")
- self.config["ssl"]["activated"] = self.ask(_("Activate SSL?"), "y", bool=True)
+ self.config["ssl"]["activated"] = self.ask(_("Activate SSL?"), self.yes, bool=True)
def set_user(self):
-
- translation = gettext.translation("setup", join(self.path, "locale"), languages=["en", self.config["general"]["language"]])
+ gettext.setpaths([join(os.sep, "usr", "share", "pyload", "locale"), None])
+ translation = gettext.translation("setup", join(self.path, "locale"), languages=[self.config["general"]["language"],"en"],fallback=True)
translation.install(True)
from module.database import DatabaseBackend
@@ -394,7 +399,8 @@ class Setup():
def conf_path(self, trans=False):
if trans:
- translation = gettext.translation("setup", join(self.path, "locale"), languages=[self.config["general"]["language"]])
+ gettext.setpaths([join(os.sep, "usr", "share", "pyload", "locale"), None])
+ translation = gettext.translation("setup", join(self.path, "locale"), languages=[self.config["general"]["language"], "en"],fallback=True)
translation.install(True)
print _("Setting new configpath, current configuration will not be transfered!")
@@ -446,10 +452,10 @@ class Setup():
info += ")"
elif bool:
- if default == "y":
- info = "([y]/n)"
+ if default == self.yes:
+ info = _("[y]/n")
else:
- info = "(y/[n])"
+ info = _("y/[n]")
else:
info = "[%s]" % default
@@ -489,9 +495,11 @@ class Setup():
input = default
if bool:
- if re.match(r"(y|yes|j|ja|true)", input.lower().strip()):
- return True
- elif re.match(r"(n|no|nein|false)", input.lower().strip()):
+ # yes, true,t are inputs for booleans with value true
+ if input.lower().strip() in [self.yes, _("yes"), _("true"), _("t")]:
+ return True
+ # no, false,f are inputs for booleans with value false
+ elif input.lower().strip() in [self.no, _("no"), _("false"), _("f")]:
return False
else:
print _("Invalid Input")
diff --git a/module/web/webinterface.py b/module/web/webinterface.py
index 68724e3f6..ec8b2e56c 100644
--- a/module/web/webinterface.py
+++ b/module/web/webinterface.py
@@ -18,8 +18,9 @@
"""
import sys
-import gettext
+import module.common.pylgettext as gettext
+import os
from os.path import join, abspath, dirname, exists
from os import makedirs
@@ -98,8 +99,9 @@ if PREFIX:
else:
env.filters["url"] = lambda x: PREFIX + x if x.startswith("/") else x
+gettext.setpaths([join(os.sep, "usr", "share", "pyload", "locale"), None])
translation = gettext.translation("django", join(PYLOAD_DIR, "locale"),
- languages=["en", config.get("general", "language")])
+ languages=[config.get("general", "language"), "en"],fallback=True)
translation.install(True)
env.install_gettext_translations(translation)