diff --git a/boxes/__init__.py b/boxes/__init__.py index ab53a52..89aee6b 100755 --- a/boxes/__init__.py +++ b/boxes/__init__.py @@ -30,6 +30,7 @@ from xml.sax.saxutils import quoteattr from shapely.geometry import * from shapely.ops import split +import gettext from boxes import edges from boxes import formats @@ -297,6 +298,7 @@ class Boxes: self.edgesettings: dict[Any, Any] = {} self.inkscapefile = None self.non_default_args: dict[Any, Any] = {} + self.translations = gettext.NullTranslations() self.metadata = { "name" : self.__class__.__name__, diff --git a/scripts/boxes b/scripts/boxes index ad3032d..a36a5f5 100755 --- a/scripts/boxes +++ b/scripts/boxes @@ -17,6 +17,7 @@ Options: import os import sys +import gettext try: import boxes @@ -58,13 +59,19 @@ def list_grouped_generators(): for box in group.generators: print(' * {} - {}'.format(box.__name__, box.__doc__ or '')) - +def get_translation(): + try: + return gettext.translation('boxes.py', localedir='locale') + except OSError: + return gettext.translation('boxes.py', fallback=True) + def run_generator(name, args): generators = generators_by_name() lower_name = name.lower() if lower_name in generators.keys(): box = generators[lower_name]() + box.translations = get_translation() box.parseArgs(args) box.open() box.render() diff --git a/scripts/boxesserver b/scripts/boxesserver index ac854e0..e36a4d2 100755 --- a/scripts/boxesserver +++ b/scripts/boxesserver @@ -260,6 +260,8 @@ class BServer: groupid += 1 result.append(f""" + +

@@ -598,6 +600,8 @@ class BServer: else: box = box_cls() + box.translations = lang + if render == "0": defaults = {} for a in args: