#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 重新生成正確的韓文翻譯Excel檔案 """ import sys import os sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) # 設定編碼 sys.stdout.reconfigure(encoding='utf-8') from pathlib import Path from app import create_app def regenerate_korean_excel(): """重新生成韓文翻譯Excel檔案""" print("=" * 80) print("重新生成韓文翻譯Excel檔案") print("使用補充後的韓文快取 (覆蓋率: 97.4%)") print("=" * 80) # 檔案路徑 prod_dir = Path(r"C:\Users\EGG\WORK\data\user_scrip\TOOL\Document_translator_V2\uploads\98158984-f335-44f5-a0b4-88fb8ccd5d78") original_file = prod_dir / "original_panjit_98158984.xlsx" if not original_file.exists(): print(f"❌ 原始文件不存在: {original_file}") return print(f"✅ 原始文件: {original_file.name}") app = create_app() with app.app_context(): from app.services.translation_service import ExcelParser from app import db try: print(f"\n1. 創建Excel解析器") print("-" * 60) parser = ExcelParser(str(original_file)) print(f"✅ Excel解析器創建成功") print(f"\n2. 生成韓文翻譯檔案") print("-" * 60) # 使用空的translations字典,讓系統從快取中查詢 translated_file_path = parser.generate_translated_document( translations={}, target_language='ko', output_dir=prod_dir ) print(f"✅ 韓文翻譯檔案已生成: {Path(translated_file_path).name}") print(f"\n3. 驗證翻譯結果") print("-" * 60) import openpyxl # 檢查新生成的翻譯檔案 wb_trans = openpyxl.load_workbook(translated_file_path, data_only=False) # 檢查關鍵儲存格 test_cells = ['D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'F2', 'F3', 'F4', 'F5', 'F6'] translated_count = 0 for cell_name in test_cells: cell_val = wb_trans.active[cell_name].value if isinstance(cell_val, str) and '\n' in cell_val: lines = cell_val.split('\n') if len(lines) >= 2: original_text = lines[0].strip() translated_text = '\n'.join(lines[1:]).strip() print(f"✅ {cell_name}: 已翻譯") print(f" 原文: {original_text[:30]}...") print(f" 韓文: {translated_text[:30]}...") translated_count += 1 else: print(f"❌ {cell_name}: 格式異常") else: print(f"❌ {cell_name}: 未翻譯") wb_trans.close() print(f"\n翻譯檢查結果: {translated_count}/{len(test_cells)} 個儲存格成功翻譯") if translated_count >= len(test_cells) * 0.8: # 80%以上成功 print("🎉 韓文翻譯檔案生成成功!") print(f" 檔案位置: {translated_file_path}") print(" 大部分內容已正確翻譯") else: print("⚠️ 翻譯檔案生成部分成功,但部分內容可能未翻譯") # 4. 提供下載資訊 print(f"\n4. 下載資訊") print("-" * 60) print(f"韓文翻譯檔案已準備就緒:") print(f" 檔案名稱: {Path(translated_file_path).name}") print(f" 檔案路徑: {translated_file_path}") print(f" 檔案大小: {Path(translated_file_path).stat().st_size / 1024:.1f} KB") except Exception as e: print(f"❌ 生成韓文翻譯檔案時發生錯誤: {str(e)}") import traceback print(f"錯誤詳情: {traceback.format_exc()}") print(f"\n" + "=" * 80) print("韓文翻譯Excel檔案重新生成完成!") print("現在D2-D8和F2-F6欄位應該都有正確的韓文翻譯") print("=" * 80) if __name__ == "__main__": regenerate_korean_excel()