diff --git a/management/commands/compilejsmessages.py b/management/commands/compilejsmessages.py new file mode 100644 index 0000000..f36328e --- /dev/null +++ b/management/commands/compilejsmessages.py @@ -0,0 +1,28 @@ +# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay +# SPDX-License-Identifier: GPL-3.0-or-later +import os + +from django.conf import settings +from django.core.management.base import BaseCommand +from django.utils import translation +from django.views.i18n import JavaScriptCatalog + + +class Command(BaseCommand): + """ + Generate Javascript translation files + """ + def add_arguments(self, parser): + parser.add_argument('--out', '-o', type=str, default='static', help='Output directory, where static files are.') + + def handle(self, *args, **kwargs): + for code, _ in settings.LANGUAGES: + if code == settings.LANGUAGE_CODE: + continue + self.stdout.write(f"Generate {code} javascript localization file") + with translation.override(code): + resp = JavaScriptCatalog().get(None, packages="member+note") + if not os.path.isdir(kwargs["out"] + "/js/jsi18n"): + os.makedirs(kwargs["out"] + "/js/jsi18n") + with open(kwargs["out"] + f"/js/jsi18n/{code}.js", "wb") as f: + f.write(resp.content)