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