62 lines
2.2 KiB
Python
Executable File
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)
|