Philipp Hörist pushed to branch master at gajim / gajim
Commits: e5fe30cb by Philipp Hörist at 2018-10-12T21:42:38Z Add get_builder() for plugins - - - - - c43714e4 by Philipp Hörist at 2018-10-12T21:42:38Z Dont monkey patch _() into plugins Plugins can import _() from plugins_i18n - - - - - 3 changed files: - gajim/gtk/util.py - gajim/plugins/helpers.py - gajim/plugins/pluginmanager.py Changes: ===================================== gajim/gtk/util.py ===================================== @@ -13,6 +13,7 @@ # along with Gajim. If not, see <http://www.gnu.org/licenses/>. from typing import Tuple +from typing import Any import os import sys @@ -35,9 +36,19 @@ log = logging.getLogger('gajim.gtk.util') class Builder: - def __init__(self, filename: str, widget: str = None) -> None: + def __init__(self, + filename: str, + widget: str = None, + domain: str = None, + gettext_: Any = None) -> None: self._builder = Gtk.Builder() - self._builder.set_translation_domain(i18n.DOMAIN) + + if domain is None: + domain = i18n.DOMAIN + self._builder.set_translation_domain(domain) + + if gettext_ is None: + gettext_ = _ file_path = os.path.join(configpaths.get('GUI'), filename) @@ -46,7 +57,8 @@ class Builder: tree = ET.parse(file_path) for node in tree.iter(): if 'translatable' in node.attrib and node.text is not None: - node.text = _(node.text) + node.text = gettext_(node.text) + xml_text = ET.tostring(tree.getroot(), encoding='unicode', method='xml') ===================================== gajim/plugins/helpers.py ===================================== @@ -26,6 +26,9 @@ __all__ = ['log', 'log_calls', 'Singleton'] import logging import functools +from gajim.plugins import plugins_i18n +from gajim.gtk.util import Builder + log = logging.getLogger('gajim.plugin_system') ''' Logger for code related to plug-in system. @@ -130,3 +133,10 @@ class Singleton(type): #'classname' : cls.__name__}) return cls.instance + + +def get_builder(file_name: str, widget: str = None) -> Builder: + return Builder(file_name, + widget, + domain=plugins_i18n.DOMAIN, + gettext_=plugins_i18n._) ===================================== gajim/plugins/pluginmanager.py ===================================== @@ -694,11 +694,7 @@ class PluginManager(metaclass=Singleton): plugins_found.append(module_attr) except TypeError: - # set plugin localization - try: - module_attr._ = plugins_i18n._ - except AttributeError: - pass + pass except configparser.NoOptionError: # all fields are required log.debug( View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/00c8e5c01dd92f54505fef6e96117e5710d118a2...c43714e4c2d49278e88013a7ef434eb252603b90 -- View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/00c8e5c01dd92f54505fef6e96117e5710d118a2...c43714e4c2d49278e88013a7ef434eb252603b90 You're receiving this email because of your account on dev.gajim.org.
_______________________________________________ Commits mailing list Commits@gajim.org https://lists.gajim.org/cgi-bin/listinfo/commits