134 lines
4.5 KiB
Python
134 lines
4.5 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
驗證最終韓文翻譯結果
|
||
"""
|
||
|
||
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
|
||
import openpyxl
|
||
|
||
def verify_final_result():
|
||
"""驗證最終韓文翻譯結果"""
|
||
|
||
print("=" * 80)
|
||
print("驗證最終韓文翻譯結果")
|
||
print("檢查是否成功使用原始DIFY翻譯")
|
||
print("=" * 80)
|
||
|
||
# 韓文翻譯檔案
|
||
translated_file = Path(r"C:\Users\EGG\WORK\data\user_scrip\TOOL\Document_translator_V2\uploads\98158984-f335-44f5-a0b4-88fb8ccd5d78\original_panjit_98158984_ko_translated.xlsx")
|
||
|
||
if not translated_file.exists():
|
||
print(f"❌ 翻譯檔案不存在")
|
||
return
|
||
|
||
print(f"✅ 檢查檔案: {translated_file.name}")
|
||
|
||
# 1. 檢查D2儲存格詳細內容
|
||
print(f"\n1. D2儲存格詳細分析")
|
||
print("-" * 60)
|
||
|
||
wb = openpyxl.load_workbook(str(translated_file), data_only=False)
|
||
d2_value = wb.active['D2'].value
|
||
|
||
print(f"D2完整內容:")
|
||
print(f" 類型: {type(d2_value)}")
|
||
print(f" 長度: {len(d2_value) if d2_value else 0}")
|
||
print(f" 內容: {repr(d2_value)}")
|
||
|
||
if isinstance(d2_value, str):
|
||
lines = d2_value.split('\n')
|
||
print(f"\n行分解 (共{len(lines)}行):")
|
||
for i, line in enumerate(lines, 1):
|
||
print(f" 行{i}: {repr(line)}")
|
||
|
||
# 找韓文翻譯部分
|
||
korean_lines = []
|
||
for line in lines:
|
||
# 檢查是否包含韓文字符
|
||
if any('\uac00' <= char <= '\ud7af' for char in line):
|
||
korean_lines.append(line)
|
||
|
||
print(f"\n韓文行 (共{len(korean_lines)}行):")
|
||
for i, line in enumerate(korean_lines, 1):
|
||
print(f" 韓文{i}: {line}")
|
||
|
||
# 檢查特徵
|
||
if "와이어 본딩" in line:
|
||
print(f" 🎯 ✅ 原始DIFY翻譯特徵: '와이어 본딩'")
|
||
success = True
|
||
elif "연결" in line and "단축" in line:
|
||
print(f" ✋ ❌ 手動補充翻譯特徵: '연결' + '단축'")
|
||
success = False
|
||
else:
|
||
print(f" ❓ 無明顯特徵")
|
||
success = None
|
||
|
||
# 2. 檢查其他D欄位
|
||
print(f"\n2. 其他D欄位檢查")
|
||
print("-" * 60)
|
||
|
||
d_cells = ['D3', 'D4', 'D5', 'D6', 'D7', 'D8']
|
||
success_count = 0
|
||
|
||
for cell_name in d_cells:
|
||
cell_value = wb.active[cell_name].value
|
||
|
||
if isinstance(cell_value, str) and '\n' in cell_value:
|
||
lines = cell_value.split('\n')
|
||
korean_lines = [line for line in lines if any('\uac00' <= char <= '\ud7af' for char in line)]
|
||
|
||
if korean_lines:
|
||
print(f"✅ {cell_name}: 有韓文翻譯")
|
||
print(f" 韓文: {korean_lines[0][:30]}...")
|
||
success_count += 1
|
||
else:
|
||
print(f"❌ {cell_name}: 沒有韓文翻譯")
|
||
else:
|
||
print(f"❌ {cell_name}: 沒有翻譯或格式不正確")
|
||
|
||
print(f"\nD欄位翻譯成功率: {success_count + (1 if success else 0)}/{len(d_cells) + 1} = {((success_count + (1 if success else 0))/(len(d_cells) + 1)*100):.1f}%")
|
||
|
||
# 3. 最終評估
|
||
print(f"\n3. 最終評估")
|
||
print("-" * 60)
|
||
|
||
if success is True:
|
||
print(f"🎉 大成功!")
|
||
print(f" ✅ D2正確使用原始DIFY翻譯")
|
||
print(f" ✅ 修復邏輯完美運作")
|
||
print(f" ✅ 文字格式不匹配問題已解決")
|
||
print(f" 📊 整體品質: 使用原始API翻譯,品質更佳")
|
||
elif success is False:
|
||
print(f"⚠️ 部分成功")
|
||
print(f" ❌ D2仍使用手動補充翻譯")
|
||
print(f" ❓ 可能需要檢查Celery worker是否載入新代碼")
|
||
else:
|
||
print(f"❓ 無法明確判斷")
|
||
print(f" 需要人工檢查翻譯內容")
|
||
|
||
wb.close()
|
||
|
||
# 4. 檔案總結
|
||
print(f"\n4. 檔案總結")
|
||
print("-" * 60)
|
||
print(f"最終韓文翻譯檔案:")
|
||
print(f" 檔案: {translated_file.name}")
|
||
print(f" 大小: {translated_file.stat().st_size / 1024:.1f} KB")
|
||
print(f" 狀態: {'可用' if success is not False else '需要進一步檢查'}")
|
||
|
||
print(f"\n" + "=" * 80)
|
||
print("最終結果驗證完成!")
|
||
if success is True:
|
||
print("🎊 恭喜!問題已完美解決!")
|
||
print("=" * 80)
|
||
|
||
if __name__ == "__main__":
|
||
verify_final_result() |