From 7ec9d64b5b469d172160982fc6ec94741913a674 Mon Sep 17 00:00:00 2001 From: BruceChen Date: Tue, 7 Apr 2026 21:11:07 +0800 Subject: [PATCH] refactor: optimize translation unit handling in Crowdin script - Introduced a new variable to track successfully translated units, improving clarity and efficiency in the processing logic. - Updated the logic for combining existing and new translation units, ensuring accurate output and preventing unnecessary uploads when no new translations are available. --- tools/translate_crowdin.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/translate_crowdin.py b/tools/translate_crowdin.py index 73e980c7..ad300e57 100644 --- a/tools/translate_crowdin.py +++ b/tools/translate_crowdin.py @@ -775,11 +775,13 @@ def process_language( f"source={u.source[:200]}\n") log.info(" Error details written to %s", err_path) + new_success = [u for u in translated_units if u.translated] + if already_done and output_file.exists(): existing_units = _parse_existing_output(output_file) - all_units = existing_units + [u for u in translated_units if u.translated] + all_units = existing_units + new_success else: - all_units = [u for u in translated_units if u.translated] + all_units = new_success if not all_units: if interrupted: @@ -793,8 +795,10 @@ def process_language( output_file.write_text(xliff_content, encoding="utf-8") log.info(" Written: %s (%d units)", output_file.name, len(all_units)) - if not skip_upload and not interrupted: + if not skip_upload and not interrupted and new_success: upload_xliff(output_file, crowdin_lang) + elif not new_success: + log.info(" No new translations this run, skipping upload") if interrupted: raise KeyboardInterrupt