Files

62 lines
2.2 KiB
Python
Executable File

#!/usr/bin/env python3
import os
import sys
import argparse
def scan_for_missing_translations(folder_path, target_lang="English"):
print(f"--- Diagnostic Scan: Missing Translations ---")
print(f"Target Language: {target_lang}")
print(f"Scanning: {folder_path}\n")
missing_count = 0
total_srt = 0
# Files that need attention
missing_files = []
for root, dirs, files in os.walk(folder_path):
for file in files:
# Look for source SRT files
# Logic: Ends in .srt, but NOT .Lang.srt and NOT .Lang.deep_translate.srt
if file.endswith(".srt") and \
not file.endswith(f".{target_lang}.srt") and \
not file.endswith(f".{target_lang}.deep_translate.srt"):
total_srt += 1
source_path = os.path.join(root, file)
base_name = os.path.splitext(file)[0]
# Check for existing translations
path_gemini = os.path.join(root, f"{base_name}.{target_lang}.srt")
path_deep = os.path.join(root, f"{base_name}.{target_lang}.deep_translate.srt")
if not os.path.exists(path_gemini) and not os.path.exists(path_deep):
missing_count += 1
missing_files.append(source_path)
if missing_files:
print(f"Found {missing_count} files waiting for translation:\n")
for f in missing_files:
print(f" [MISSING] {f}")
else:
print("✅ All subtitles appear to be translated!")
print("\n" + "="*40)
print(f"Summary:")
print(f"Total Source SRTs Found: {total_srt}")
print(f"Missing Translations: {missing_count}")
print("="*40)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Diagnostic: Find missing translations")
parser.add_argument("folder", help="Path to the folder to scan")
parser.add_argument("lang", nargs="?", default="English", help="Target language (default: English)")
args = parser.parse_args()
if not os.path.exists(args.folder):
print(f"Error: Folder '{args.folder}' does not exist.")
sys.exit(1)
scan_for_missing_translations(args.folder, args.lang)