Загрузка данных


import zipfile
import json
import re
import os

input_zip = "archive.zip"  # ИМЯ ВАШЕГО ZIP ФАЙЛА
output_zip = "to_translate.zip"

# Регулярное выражение для поиска текста внутри команды MESSAGE
# Ищет блоки текста внутри кавычек в MESSAGE (...)
message_re = re.compile(r'MESSAGE\s*\([^,]+,\s*"([^"]*)",\s*"([^"]*)"')

with zipfile.ZipFile(input_zip, 'r') as z_in, zipfile.ZipFile(output_zip, 'w') as z_out:
    for file_info in z_in.infolist():
        if file_info.filename.endswith('.txt'):
            with z_in.open(file_info) as f:
                content = f.read().decode('utf-8', errors='ignore')
            
            matches = message_re.findall(content)
            
            if not matches:
                continue
                
            data_dict = {}
            for idx, (jp_text, en_text) in enumerate(matches, start=1):
                # Берем английский текст как основу для перевода, если он есть
                source_text = en_text if en_text.strip() else jp_text
                if source_text.strip():
                    # Сохраняем под уникальным ключом строки
                    data_dict[f"msg_{idx}"] = source_text
            
            if data_dict:
                json_name = os.path.splitext(file_info.filename)[0] + '.json'
                json_bytes = json.dumps(data_dict, ensure_ascii=False, indent=4).encode('utf-8')
                z_out.writestr(json_name, json_bytes)

print("Готово! Скачайте архив to_translate.zip. Внутри чистый текст для перевода.")