|
|
|
@ -16,6 +16,8 @@ except ImportError:
|
|
|
|
|
raise ImportError, errorMsg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GETTEXT_DOMAIN = 'cryptobox-server'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PluginIconHandler:
|
|
|
|
|
|
|
|
|
@ -385,7 +387,40 @@ class WebInterfaceSites:
|
|
|
|
|
return hdf.getValue(value, "")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __substituteGettext(self, languages, textDomain, hdf):
|
|
|
|
|
import gettext
|
|
|
|
|
try:
|
|
|
|
|
translator = gettext.translation(textDomain, languages=languages)
|
|
|
|
|
except IOError, errMsg:
|
|
|
|
|
## no translation found
|
|
|
|
|
self.cbox.log.warn("unable to load language file: %s" % errMsg)
|
|
|
|
|
return hdf
|
|
|
|
|
def walk_tree(hdf_node):
|
|
|
|
|
def translate_node(node):
|
|
|
|
|
for (key,value) in node.attrs():
|
|
|
|
|
if key == 'LINK': return
|
|
|
|
|
node.setValue("",translator.ugettext(node.value()))
|
|
|
|
|
while hdf_node:
|
|
|
|
|
translate_node(hdf_node)
|
|
|
|
|
walk_tree(hdf_node.child())
|
|
|
|
|
hdf_node = hdf_node.next()
|
|
|
|
|
walk_tree(hdf)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __getLanguageData(self, web_lang="en"):
|
|
|
|
|
hdf = neo_util.HDF()
|
|
|
|
|
hdf.readFile(os.path.join(self.prefs["Locations"]["TemplateDir"],"language.hdf"))
|
|
|
|
|
self.__substituteGettext([web_lang], GETTEXT_DOMAIN, hdf)
|
|
|
|
|
## load the language data of all plugins
|
|
|
|
|
for p in self.pluginList.getPlugins():
|
|
|
|
|
pl_lang = p.getLanguageData()
|
|
|
|
|
self.__substituteGettext([web_lang], "%s-feature-%s" % (GETTEXT_DOMAIN, p.getName()), pl_lang)
|
|
|
|
|
hdf.copy("Plugins.%s" % p.getName(), pl_lang)
|
|
|
|
|
self.cbox.log.debug("language data for plugin loaded: %s" % p.getName())
|
|
|
|
|
return hdf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __getLanguageData2(self, web_lang="en"):
|
|
|
|
|
default_lang = "en"
|
|
|
|
|
conf_lang = self.prefs["WebSettings"]["Language"]
|
|
|
|
|
hdf = neo_util.HDF()
|
|
|
|
@ -427,12 +462,6 @@ class WebInterfaceSites:
|
|
|
|
|
## first: assume, that the template file is in the global template directory
|
|
|
|
|
self.dataset["Settings.TemplateFile"] = os.path.abspath(os.path.join(self.prefs["Locations"]["TemplateDir"], template + ".cs"))
|
|
|
|
|
|
|
|
|
|
## load the language data of all plugins
|
|
|
|
|
for p in self.pluginList.getPlugins():
|
|
|
|
|
pl_lang = p.getLanguageData(self.dataset["Settings.Language"])
|
|
|
|
|
if pl_lang:
|
|
|
|
|
hdf.copy("Lang.Plugins.%s" % p.getName(), pl_lang)
|
|
|
|
|
|
|
|
|
|
if plugin:
|
|
|
|
|
## check, if the plugin provides the template file -> overriding
|
|
|
|
|
plugin_cs_file = plugin.getTemplateFileName(template)
|
|
|
|
@ -472,4 +501,3 @@ class WebInterfaceSites:
|
|
|
|
|
else:
|
|
|
|
|
yield line + "\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|