From c22cef7e23d0c7121abbd111f3875dc3ed0cfcba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 15 May 2025 13:33:44 +0200 Subject: [PATCH] Remove empty files when exporting translations of a module If the module has no translations, no file should be created. If they exist, they must be removed. Closes #14021 --- trytond/trytond/admin.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/trytond/trytond/admin.py b/trytond/trytond/admin.py index e14c6dc978..a6160426c4 100644 --- a/trytond/trytond/admin.py +++ b/trytond/trytond/admin.py @@ -12,7 +12,7 @@ from trytond import __series__, backend from trytond.config import config from trytond.pool import Pool from trytond.sendmail import send_test_email -from trytond.tools import file_open +from trytond.tools import file_open, find_path from trytond.tools.email_ import EmailNotValidError, validate_email from trytond.transaction import Transaction, TransactionError, inactive_records @@ -188,9 +188,16 @@ def run(options): module, language) filename = os.path.join( module, 'locale', f'{language}.po') - with file_open(filename, 'wb') as fp: - fp.write(Translation.translation_export( - language, module)) + pofile = Translation.translation_export( + language, module) + if pofile is not None: + with file_open(filename, 'wb') as fp: + fp.write(pofile) + else: + try: + os.remove(find_path(filename)) + except FileNotFoundError: + pass configuration.save() except TransactionError as e: