Add get_builder() for plugins
This commit is contained in:
parent
83c737312b
commit
cc62761da3
|
@ -13,6 +13,7 @@
|
||||||
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
|
# along with Gajim. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
@ -35,9 +36,19 @@ log = logging.getLogger('gajim.gtk.util')
|
||||||
|
|
||||||
|
|
||||||
class Builder:
|
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 = 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)
|
file_path = os.path.join(configpaths.get('GUI'), filename)
|
||||||
|
|
||||||
|
@ -46,7 +57,8 @@ class Builder:
|
||||||
tree = ET.parse(file_path)
|
tree = ET.parse(file_path)
|
||||||
for node in tree.iter():
|
for node in tree.iter():
|
||||||
if 'translatable' in node.attrib and node.text is not None:
|
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(),
|
xml_text = ET.tostring(tree.getroot(),
|
||||||
encoding='unicode',
|
encoding='unicode',
|
||||||
method='xml')
|
method='xml')
|
||||||
|
|
|
@ -26,6 +26,9 @@ __all__ = ['log', 'log_calls', 'Singleton']
|
||||||
import logging
|
import logging
|
||||||
import functools
|
import functools
|
||||||
|
|
||||||
|
from gajim.plugins import plugins_i18n
|
||||||
|
from gajim.gtk.util import Builder
|
||||||
|
|
||||||
log = logging.getLogger('gajim.plugin_system')
|
log = logging.getLogger('gajim.plugin_system')
|
||||||
'''
|
'''
|
||||||
Logger for code related to plug-in system.
|
Logger for code related to plug-in system.
|
||||||
|
@ -130,3 +133,10 @@ class Singleton(type):
|
||||||
#'classname' : cls.__name__})
|
#'classname' : cls.__name__})
|
||||||
|
|
||||||
return cls.instance
|
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._)
|
||||||
|
|
Loading…
Reference in New Issue