[damned-lies] Refs #216 - Apply locale mapping to vertimus-sent mail



commit 45a7f7252943885797bb7b7a9de15dc6c674313a
Author: Claude Paroz <claude 2xlibre net>
Date:   Sat Mar 20 21:59:01 2021 +0100

    Refs #216 - Apply locale mapping to vertimus-sent mail

 languages/models.py                        | 10 ++++++++++
 stats/management/commands/compile-trans.py |  8 +++-----
 vertimus/models.py                         |  2 +-
 3 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/languages/models.py b/languages/models.py
index 69bd6a2f..637c7cb2 100644
--- a/languages/models.py
+++ b/languages/models.py
@@ -12,6 +12,12 @@ class Language(models.Model):
     team = models.ForeignKey(Team, null=True, blank=True, default=None, on_delete=models.SET_NULL)
     plurals = models.CharField(max_length=200, blank=True)
 
+    # Mapping for code differences between GNOME and Django standards.
+    lang_mapping = {
+        'zh_CN': 'zh_Hans',
+        'zh_TW': 'zh_Hant',
+    }
+
     class Meta:
         db_table = 'language'
         ordering = ('name',)
@@ -19,6 +25,10 @@ class Language(models.Model):
     def __str__(self):
         return "%s (%s)" % (self.name, self.locale)
 
+    @classmethod
+    def django_locale(cls, locale):
+        return cls.lang_mapping.get(locale, locale)
+
     @classmethod
     def get_language_from_ianacode(cls, ianacode):
         """ Return a matching Language object corresponding to LANGUAGE_CODE (BCP47-formatted)
diff --git a/stats/management/commands/compile-trans.py b/stats/management/commands/compile-trans.py
index 28f639ee..3387e2e6 100644
--- a/stats/management/commands/compile-trans.py
+++ b/stats/management/commands/compile-trans.py
@@ -4,13 +4,11 @@ from django.conf import settings
 from django.core.management import call_command
 from django.core.management.base import BaseCommand
 
+from languages.models import Language
+
 
 class Command(BaseCommand):
     help = "Compile translations of djamnedlies"
-    lang_mapping = {
-        'zh_CN': 'zh_Hans',
-        'zh_TW': 'zh_Hant',
-    }
 
     def handle(self, **options):
         # Copy all po/ll.po files in locale/ll/LC_MESSAGES/django.po
@@ -20,7 +18,7 @@ class Command(BaseCommand):
                 continue
             lang_code = pofile.stem
             localedir = (
-                settings.BASE_DIR / 'locale' / self.lang_mapping.get(lang_code, lang_code) / 'LC_MESSAGES'
+                settings.BASE_DIR / 'locale' / Language.django_locale(lang_code) / 'LC_MESSAGES'
             )
             if not localedir.is_dir():
                 localedir.mkdir(parents=True, exist_ok=True)
diff --git a/vertimus/models.py b/vertimus/models.py
index 529bf301..532d12d5 100644
--- a/vertimus/models.py
+++ b/vertimus/models.py
@@ -551,7 +551,7 @@ class Action(ActionAbstract):
                 state.domain.name,
                 state.language.locale)))
         subject = state.branch.module.name + ' - ' + state.branch.name
-        with override(state.language.locale):
+        with override(Language.django_locale(state.language.locale)):
             message = gettext("Hello,") + "\n\n" + gettext(self.default_message) + "\n%(url)s\n\n"
             message = message % {
                 'module': state.branch.module.name,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]