From d92ddc80ac06ac2e306e1aab1d064bb6935befcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Zaj=C4=85c?= Date: Tue, 21 May 2024 10:46:30 +0200 Subject: [PATCH 1/4] Single file with languages list --- docs/user-guide/translation.rst | 3 +-- scan/libmailgoose/language.py | 9 ++++++--- scan/libmailgoose/languages.txt | 3 +++ scan/setup.py | 2 ++ scripts/update_translation_files | 4 ++-- 5 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 scan/libmailgoose/languages.txt diff --git a/docs/user-guide/translation.rst b/docs/user-guide/translation.rst index 8b12d04..7429248 100644 --- a/docs/user-guide/translation.rst +++ b/docs/user-guide/translation.rst @@ -26,8 +26,7 @@ Adding a new language --------------------- If you want to support a new language: -- add it in ``./scripts/update_translation_files`` in the language list, -- add it in ``scan/libmailgoose/language.py`` in the ``Language`` enum, +- add it in ``languages.txt``, - run ``./scripts/update_translation_files`` and fill ``.po`` files for the UI messages for your language in ``./app/translations`` (**you may skip that part if you want only the library error messages to be translated**), - add the error message translations for your language in ``scan/libmailgoose/translate.py``. diff --git a/scan/libmailgoose/language.py b/scan/libmailgoose/language.py index 8dd49b5..d66a9a6 100644 --- a/scan/libmailgoose/language.py +++ b/scan/libmailgoose/language.py @@ -1,7 +1,10 @@ from enum import Enum +from pathlib import Path class Language(Enum): - en_US = "en_US" - lt_LT = "lt_LT" - pl_PL = "pl_PL" + pass + + +for line in open(Path(__file__).parent / "languages.txt"): + setattr(Language, line.strip(), line.strip()) diff --git a/scan/libmailgoose/languages.txt b/scan/libmailgoose/languages.txt new file mode 100644 index 0000000..e8313db --- /dev/null +++ b/scan/libmailgoose/languages.txt @@ -0,0 +1,3 @@ +pl_PL +en_US +lt_LT diff --git a/scan/setup.py b/scan/setup.py index dca3145..63df624 100644 --- a/scan/setup.py +++ b/scan/setup.py @@ -16,6 +16,8 @@ license="BSD", url="https://github.com/CERT-Polska/mailgoose", packages=["libmailgoose"], + package_data={'': ['languages.txt']}, + include_package_data=True, scripts=[], classifiers=[ "Programming Language :: Python :: 3", diff --git a/scripts/update_translation_files b/scripts/update_translation_files index e606299..b3dd11f 100755 --- a/scripts/update_translation_files +++ b/scripts/update_translation_files @@ -1,9 +1,9 @@ #!/bin/bash -LOCALES="pl_PL en_US lt_LT" - cd $(dirname $0)/.. +LOCALES=`cat scan/libmailgoose/languages.txt` + if [ ! -d .venv.translations ] then python3 -m venv .venv.translations From f8353381c22a9e7ab152c69bbb0f0e3e7245017f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Zaj=C4=85c?= Date: Tue, 21 May 2024 10:50:22 +0200 Subject: [PATCH 2/4] fix --- scan/libmailgoose/language.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/scan/libmailgoose/language.py b/scan/libmailgoose/language.py index d66a9a6..a19a102 100644 --- a/scan/libmailgoose/language.py +++ b/scan/libmailgoose/language.py @@ -2,9 +2,5 @@ from pathlib import Path -class Language(Enum): - pass - - -for line in open(Path(__file__).parent / "languages.txt"): - setattr(Language, line.strip(), line.strip()) +with open(Path(__file__).parent / "languages.txt") as f: + Language = Enum("Language", {line.strip(): line.strip() for line in f}) From 8dca1e0b4a980be5864991bceae82739540f75a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Zaj=C4=85c?= Date: Tue, 21 May 2024 10:51:18 +0200 Subject: [PATCH 3/4] fix --- docs/user-guide/translation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/translation.rst b/docs/user-guide/translation.rst index 7429248..9bb3620 100644 --- a/docs/user-guide/translation.rst +++ b/docs/user-guide/translation.rst @@ -26,7 +26,7 @@ Adding a new language --------------------- If you want to support a new language: -- add it in ``languages.txt``, +- add it in ``scan/libmailgoose/languages.txt``, - run ``./scripts/update_translation_files`` and fill ``.po`` files for the UI messages for your language in ``./app/translations`` (**you may skip that part if you want only the library error messages to be translated**), - add the error message translations for your language in ``scan/libmailgoose/translate.py``. From 7b1641103e65b1ec66446f81f6ef2ccadf7f599d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Zaj=C4=85c?= Date: Tue, 21 May 2024 10:53:59 +0200 Subject: [PATCH 4/4] lint --- scan/libmailgoose/language.py | 3 +-- scan/libmailgoose/translate.py | 6 +++--- scan/setup.py | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/scan/libmailgoose/language.py b/scan/libmailgoose/language.py index a19a102..0f98c12 100644 --- a/scan/libmailgoose/language.py +++ b/scan/libmailgoose/language.py @@ -1,6 +1,5 @@ from enum import Enum from pathlib import Path - with open(Path(__file__).parent / "languages.txt") as f: - Language = Enum("Language", {line.strip(): line.strip() for line in f}) + Language = Enum("Language", {line.strip(): line.strip() for line in f}) # type: ignore diff --git a/scan/libmailgoose/translate.py b/scan/libmailgoose/translate.py index f848e16..d91269c 100644 --- a/scan/libmailgoose/translate.py +++ b/scan/libmailgoose/translate.py @@ -10,7 +10,7 @@ TRANSLATIONS = { - Language.lt_LT: [ + Language.lt_LT: [ # type: ignore ( "SPF '~all' or '-all' directive not found. We recommend adding it, as it describes " "what should happen with messages that fail SPF verification. For example, " @@ -435,7 +435,7 @@ "DKIM parašo patvirtinimo metu įvyko nežinoma klaida.", ), ], - Language.pl_PL: [ + Language.pl_PL: [ # type: ignore ( "SPF '~all' or '-all' directive not found. We recommend adding it, as it describes " "what should happen with messages that fail SPF verification. For example, " @@ -985,7 +985,7 @@ def translate( language: Language, nonexistent_translation_handler: Optional[Callable[[str], str]] = None, ) -> str: - if language == Language.en_US: + if language == Language.en_US: # type: ignore return message return _translate_using_dictionary( diff --git a/scan/setup.py b/scan/setup.py index 63df624..ca40aeb 100644 --- a/scan/setup.py +++ b/scan/setup.py @@ -16,7 +16,7 @@ license="BSD", url="https://github.com/CERT-Polska/mailgoose", packages=["libmailgoose"], - package_data={'': ['languages.txt']}, + package_data={"": ["languages.txt"]}, include_package_data=True, scripts=[], classifiers=[