Files
LangBot/web/batch_translate_zh_hant.py
2026-05-15 01:05:29 +08:00

281 lines
7.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""
批量翻译繁体中文workflows部分
基于简体中文进行繁体转换和台湾用语调整
"""
import re
from pathlib import Path
# 简繁转换映射(常用词汇)
SIMPLIFIED_TO_TRADITIONAL = {
# 基础词汇
'工作流': '工作流程',
'创建': '建立',
'编辑': '編輯',
'删除': '刪除',
'保存': '儲存',
'加载': '載入',
'导出': '匯出',
'导入': '匯入',
'发布': '發佈',
'配置': '設定',
'执行': '執行',
'记录': '記錄',
'编辑器': '編輯器',
'调试': '除錯',
'基础': '基礎',
'信息': '資訊',
'设置': '設定',
'图标': '圖示',
'描述': '描述',
'危险': '危險',
'区域': '區域',
'操作': '操作',
'确认': '確認',
'名称': '名稱',
'输入': '輸入',
'启用': '啟用',
'加载中': '載入中',
'版本': '版本',
'创建时间': '建立時間',
'更新时间': '更新時間',
'统计': '統計',
'分析': '分析',
'成功': '成功',
'失败': '失敗',
'平均': '平均',
'耗时': '耗時',
'筛选': '篩選',
'状态': '狀態',
'手动': '手動',
'触发': '觸發',
'开始': '開始',
'时间': '時間',
'详情': '詳情',
'错误': '錯誤',
'节点': '節點',
'结果': '結果',
'等待': '等待',
'执行中': '執行中',
'已完成': '已完成',
'已取消': '已取消',
'面板': '面板',
'属性': '屬性',
'放大': '放大',
'缩小': '縮小',
'适应': '適應',
'视图': '檢視',
'未保存': '未儲存',
'更改': '變更',
'粘贴': '貼上',
'已删除': '已刪除',
'复制': '複製',
'剪贴板': '剪貼簿',
'搜索': '搜尋',
'正在加载': '正在載入',
'类型': '類型',
'未找到': '找不到',
'清除': '清除',
'拖拽': '拖曳',
'画布': '畫布',
'选择': '選擇',
'连线': '連線',
'点击': '點擊',
'查看': '檢視',
'条件': '條件',
'已设置': '已設定',
'表达式': '運算式',
'变量': '變數',
'引用': '參照',
'上下文': '上下文',
'显示': '顯示',
'标签': '標籤',
'输出': '輸出',
'可用': '可用',
'全局': '全域',
'消息': '訊息',
'内容': '內容',
'发送者': '發送者',
'平台': '平台',
'会话': '工作階段',
'时间戳': '時間戳記',
'': '',
'选项': '選項',
# 节点类型
'触发器': '觸發器',
'定时': '定時',
'事件': '事件',
'处理': '處理',
'调用': '呼叫',
'代码': '程式碼',
'模板': '範本',
'请求': '請求',
'转换': '轉換',
'分类器': '分類器',
'提取器': '擷取器',
'检索': '檢索',
'知识库': '知識庫',
'聚合': '彙總',
'分割': '分割',
'赋值': '指派',
'控制流': '控制流程',
'分支': '分支',
'多路': '多路',
'循环': '迴圈',
'迭代器': '迭代器',
'并行': '並行',
'延迟': '延遲',
'合并': '合併',
'聚合器': '彙總器',
'动作': '動作',
'回复': '回覆',
'存储': '儲存',
'数据': '資料',
'数据库': '資料庫',
'集成': '整合',
'第三方': '第三方',
'查询': '查詢',
'缓存': '快取',
'工具': '工具',
'记忆': '記憶',
# 配置字段
'关键词': '關鍵字',
'过滤': '篩選',
'正则': '正規表示式',
'长度': '長度',
'提及': '提及',
'': '群組',
'响应': '回應',
'规则': '規則',
'访问': '存取',
'控制': '控制',
'表达式': '運算式',
'时区': '時區',
'路径': '路徑',
'允许': '允許',
'方法': '方法',
'认证': '驗證',
'密钥': '金鑰',
'验证': '驗證',
'超时': '逾時',
'防抖': '防抖',
'模型': '模型',
'提示词': '提示詞',
'系统': '系統',
'温度': '溫度',
'惩罚': '懲罰',
'令牌': '權杖',
'序列': '序列',
'种子': '種子',
'流式': '串流',
'历史': '歷史',
'语言': '語言',
'程序': '程式',
'指令': '指令',
'参数': '參數',
'定义': '定義',
'返回': '傳回',
'阈值': '閾值',
'相似度': '相似度',
'引用': '引用',
'运算符': '運算子',
'迭代': '迭代',
'中断': '中斷',
'并发': '並行',
'等待': '等待',
'所有': '所有',
'快速': '快速',
'单位': '單位',
'策略': '策略',
'映射': '對應',
'模式': '模式',
'目标': '目標',
'长文本': '長文字',
'强制': '強制',
'继承': '繼承',
'过期': '過期',
'前缀': '前置詞',
'作用域': '範圍',
'建议': '建議',
'问题': '問題',
'格式': '格式',
'连接': '連線',
'字符串': '字串',
'哈希': '雜湊',
'字段': '欄位',
'服务器': '伺服器',
'应用': '應用程式',
'数据集': '資料集',
'流程': '流程',
'机器人': '機器人',
}
def convert_to_traditional(text: str) -> str:
"""将简体中文转换为繁体中文"""
result = text
for simp, trad in SIMPLIFIED_TO_TRADITIONAL.items():
result = result.replace(simp, trad)
return result
def main():
print("繁体中文批量转换工具")
print("=" * 60)
print("此脚本将简体中文翻译转换为繁体中文")
print("=" * 60)
# 读取简体中文文件
zh_hans_file = Path(__file__).parent / 'src' / 'i18n' / 'locales' / 'zh-Hans.ts'
zh_hant_file = Path(__file__).parent / 'src' / 'i18n' / 'locales' / 'zh-Hant.ts'
if not zh_hans_file.exists():
print(f"错误:找不到简体中文文件 {zh_hans_file}")
return
print(f"读取简体中文文件: {zh_hans_file}")
with open(zh_hans_file, 'r', encoding='utf-8') as f:
zh_hans_content = f.read()
# 提取workflows部分
workflows_match = re.search(r'workflows:\s*\{(.+?)\n \},\n unifiedBinding:', zh_hans_content, re.DOTALL)
if not workflows_match:
print("错误无法找到workflows部分")
return
workflows_content = workflows_match.group(1)
print(f"找到workflows部分长度: {len(workflows_content)} 字符")
# 转换为繁体
print("正在转换为繁体中文...")
traditional_content = convert_to_traditional(workflows_content)
# 读取现有的繁体中文文件
print(f"读取繁体中文文件: {zh_hant_file}")
with open(zh_hant_file, 'r', encoding='utf-8') as f:
zh_hant_content = f.read()
# 替换workflows部分
zh_hant_new = re.sub(
r'workflows:\s*\{(.+?)\n \},\n unifiedBinding:',
f'workflows: {{\n{traditional_content}\n }},\n unifiedBinding:',
zh_hant_content,
flags=re.DOTALL
)
# 写入文件
print(f"写入繁体中文文件: {zh_hant_file}")
with open(zh_hant_file, 'w', encoding='utf-8') as f:
f.write(zh_hant_new)
print("\n" + "=" * 60)
print("✅ 繁体中文转换完成!")
print("=" * 60)
print(f"已更新文件: {zh_hant_file}")
print("\n建议:")
print("1. 检查转换结果是否正确")
print("2. 运行 TypeScript 编译检查语法")
print("3. 手动审核关键术语的翻译")
if __name__ == '__main__':
main()