From dbe7bf65917df40b0ce476f357d04726e20b406f Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Mon, 16 Nov 2020 00:29:26 +0100 Subject: [PATCH] Export JS translation files as static files --- management/commands/compilejsmessages.py | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 management/commands/compilejsmessages.py 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)