mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 03:55:55 +00:00
281 lines
7.5 KiB
Python
281 lines
7.5 KiB
Python
#!/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()
|