From 0d6c8a3e0fc31ff25ef332b729f737afc0aaf9de Mon Sep 17 00:00:00 2001 From: Myuddin khatri Date: Tue, 2 Jul 2024 10:50:03 +0530 Subject: [PATCH 1/4] feat: add translations --- .pre-commit-hooks.yaml | 7 ++++++ pyproject.toml | 1 + test_utils/pre_commit/add_translations.py | 26 +++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 test_utils/pre_commit/add_translations.py diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml index 7c84087..b9ebd34 100644 --- a/.pre-commit-hooks.yaml +++ b/.pre-commit-hooks.yaml @@ -33,3 +33,10 @@ entry: validate_customizations language: python require_serial: true + +- id: add_translations + name: add_translations + description: "Get untranslated strings in app and translate them to the language specified" + entry: add_translations + language: python + require_serial: true diff --git a/pyproject.toml b/pyproject.toml index faa93cc..d58dd7a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ validate_copyright = "test_utils.pre_commit.validate_copyright:main" validate_javascript_dependencies = "test_utils.pre_commit.validate_javascript_dependencies:main" validate_python_dependencies = "test_utils.pre_commit.validate_python_dependencies:main" validate_customizations = "test_utils.pre_commit.validate_customizations:main" +add_translations = "test_utils.pre_commit.add_translations:main" [tool.poetry.dependencies] python = ">=3.10,<3.13" diff --git a/test_utils/pre_commit/add_translations.py b/test_utils/pre_commit/add_translations.py new file mode 100644 index 0000000..519be84 --- /dev/null +++ b/test_utils/pre_commit/add_translations.py @@ -0,0 +1,26 @@ +import argparse +from typing import Sequence + +try: + from frappe.translate import get_untranslated, update_translations +except Exception as e: + raise(e) + + +def add_translations(lang, app): + untranslated_file = "untranslated_strings" + translated_file = "translated_strings" + get_untranslated(lang=lang, untranslated_file=untranslated_file, app=app) + update_translations(lang=lang, untranslated_file=untranslated_file, translated_file=translated_file, app=app) + + +def main(argv: Sequence[str] = None): + parser = argparse.ArgumentParser() + parser.add_argument('filenames', nargs='*') + parser.add_argument('--lang', action='append', help='Language to translate strings') + parser.add_argument('--app', action='append', help='App to get untranslated string and translate them') + args = parser.parse_args(argv) + + lang = args.lang[0] + app = args.app[0] + add_translations(lang, app) \ No newline at end of file From cba2d38295f1dbca2e304fd959ba08ea9acb6075 Mon Sep 17 00:00:00 2001 From: Myuddin khatri Date: Wed, 14 Aug 2024 12:08:39 +0530 Subject: [PATCH 2/4] fix: add try except to method --- test_utils/pre_commit/add_translations.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/test_utils/pre_commit/add_translations.py b/test_utils/pre_commit/add_translations.py index 519be84..2820af2 100644 --- a/test_utils/pre_commit/add_translations.py +++ b/test_utils/pre_commit/add_translations.py @@ -1,4 +1,5 @@ import argparse +import sys from typing import Sequence try: @@ -8,10 +9,14 @@ def add_translations(lang, app): - untranslated_file = "untranslated_strings" - translated_file = "translated_strings" - get_untranslated(lang=lang, untranslated_file=untranslated_file, app=app) - update_translations(lang=lang, untranslated_file=untranslated_file, translated_file=translated_file, app=app) + try: + untranslated_file = "untranslated_strings" + translated_file = "translated_strings" + get_untranslated(lang=lang, untranslated_file=untranslated_file, app=app) + update_translations(lang=lang, untranslated_file=untranslated_file, translated_file=translated_file, app=app) + except Exception as e: + print(f"An error occurred while translating for lang '{lang}' and app '{app}': {e}") + sys.exit(0) def main(argv: Sequence[str] = None): From c2f860dc718bf80b12ad495bcd96c6f858517d77 Mon Sep 17 00:00:00 2001 From: IshwaryaM1030 Date: Thu, 14 Aug 2025 13:26:58 +0530 Subject: [PATCH 3/4] Added frappe environment check --- test_utils/pre_commit/add_translations.py | 30 +++++++++++++++++------ 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/test_utils/pre_commit/add_translations.py b/test_utils/pre_commit/add_translations.py index 2820af2..f2791e7 100644 --- a/test_utils/pre_commit/add_translations.py +++ b/test_utils/pre_commit/add_translations.py @@ -2,22 +2,32 @@ import sys from typing import Sequence -try: - from frappe.translate import get_untranslated, update_translations -except Exception as e: - raise(e) +def is_frappe_environment(): + """ + Check if the current environment is a Frappe environment. + + Returns: + bool: True if Frappe is available, False otherwise + """ + try: + import frappe + return True + except ImportError: + return False def add_translations(lang, app): try: + from frappe.translate import get_untranslated, update_translations + untranslated_file = "untranslated_strings" translated_file = "translated_strings" get_untranslated(lang=lang, untranslated_file=untranslated_file, app=app) update_translations(lang=lang, untranslated_file=untranslated_file, translated_file=translated_file, app=app) + print(f"Successfully processed translations for language '{lang}' and app '{app}'") except Exception as e: print(f"An error occurred while translating for lang '{lang}' and app '{app}': {e}") - sys.exit(0) - + sys.exit(1) def main(argv: Sequence[str] = None): parser = argparse.ArgumentParser() @@ -28,4 +38,10 @@ def main(argv: Sequence[str] = None): lang = args.lang[0] app = args.app[0] - add_translations(lang, app) \ No newline at end of file + + if not is_frappe_environment(): + print("Error: Frappe environment not detected.") + print("This script must be run from within a Frappe bench environment.") + sys.exit(1) + + add_translations(lang, app) From dfbd093582c3b5300c7e36e1c6dc251bf1844c5c Mon Sep 17 00:00:00 2001 From: IshwaryaM1030 Date: Thu, 14 Aug 2025 13:30:16 +0530 Subject: [PATCH 4/4] Removed duplicate [tool.poetry.dependencies] --- pyproject.toml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 947496d..3ca5881 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,10 +20,6 @@ validate_python_dependencies = "test_utils.pre_commit.validate_python_dependenci validate_customizations = "test_utils.pre_commit.validate_customizations:main" add_translations = "test_utils.pre_commit.add_translations:main" -[tool.poetry.dependencies] -python = ">=3.10,<3.13" -toml = "^0.10.2" - [build-system] requires = ["poetry-core>=2.0.0,<3.0.0"] build-backend = "poetry.core.masonry.api" @@ -43,4 +39,4 @@ skip = "CHANGELOG.md" [tool.semantic_release] version_toml = ["pyproject.toml:tool.poetry.version"] -version_variable = ["__init__.py:__version__"] \ No newline at end of file +version_variable = ["__init__.py:__version__"]