# Termius 中文汉化及功能增强脚本 ## 🎉 简介与说明 - [Termius][termius] 汉化脚本。 - 大家可以在官方[功能请求][consideration]进行反馈,让官方尽快支持[中文][localization]。 ## ✨ 功能特性 - **一键汉化** - 自动化界面汉化 - **试用功能激活** - 解锁高级特性 - **多平台支持** - Windows/macOS/Linux - **安全机制** - 自动备份 ## 🚀 快速开始 ### 📦 前置要求 - Python - Node.js (用于安装asar) ```bash npm install -g @electron/asar ``` ### 🧑‍💻 基础使用 ```bash # 默认执行汉化操作 python lang.py ``` ### 🪄 高级功能 ```bash # 汉化+试用+样式修改 python lang.py --localize --trial --style # 仅激活试用功能 python lang.py --trial # 还原到初始状态 python lang.py --restore # 搜索特定字符串 python lang.py --find "term1" "term2" # 提取所有字符串 python lang.py --extract ``` ## 🔬 参数详解 | 参数 | 简写 | 功能说明 | 示例 | |-------------------|------|------------|-------------------------------------| | `--localize` | `-l` | 汉化操作(默认) | `python lang.py` | | `--trial` | `-t` | 激活试用功能 | `python lang.py -lt` | | `--skip-login` | `-k` | 跳过登录验证 | `python lang.py -lk` | | `--style` | `-s` | 样式修改 | `python lang.py -ls` | | `--restore` | `-r` | 还原操作 | `python lang.py -r` | | `--find <关键词...>` | `-f` | 多条件联合搜索 | `python lang.py -f "term1" "term2"` | | `--extract` | `-e` | 提取所有可能的字符串 | `python lang.py -e` | | `--verbose` | `-v` | 设置日志级别 | `python lang.py -v DEBUG` | ## 📂 相关文件结构 ```markdown rules/ ├── trial.txt # 试用功能规则(-t/--trial时加载) ├── localize.txt # 汉化规则(-l/--localize时加载) ├── skip_login.txt # 登录跳过规则(-k/--skip-login时加载) └── style.txt # 样式修改规则(-s/--style时加载) extract/ ├── app.asar.unpack # 解包出的所有文件 └── allstring.txt # 所有可能的字符串 ``` ## 🤷 手动汉化 如果没有相关环境,可以手动汉化。 1. 前往 [Releases][releases] 下载对应版本的 `app.asar` 文件。 2. 找到 Termius 安装目录,通常位置为: - **Windows**: `C:\Users\你的用户名\AppData\Local\Programs\Termius`。 - **Linux**: `/opt/Termius`。 - **MacOS**: `/Applications/Termius.app/Contents`。 3. 将下载的 `app.asar` 文件覆盖 `resources` 文件夹下的 `app.asar` 文件。 - **注意**,macOS 替换后需要运行 [osxfix.sh](macos/osxfix.sh) 重新计算文件 hash 后方可使用。 - **注意**,新版 Termius 启用了 asar 完整性校验,Windows/Linux 需先关闭该熔丝方可启动(详见 [FAQ Q3](#q3-替换-appasar-后应用无法启动integrity-check-failed)): ```bash npx @electron/fuses write --app "C:\Users\你的用户名\AppData\Local\Programs\Termius\Termius.exe" EnableEmbeddedAsarIntegrityValidation=off ``` 4. 如果你不想自动更新,请删除 `app-update.yml` 文件。 5. 最后,如果没有想要的版本,可在 [Fork][fork] 本项目后前往仓库的 **Settings > Secrets and variables > Actions > Variables** 页面定义变量: - **Name**: `RELEASE_LIST` - **Value**: `l,lk,lt` - 默认`l,lk,lt`,代表生成三个版本,l为汉化,lt为汉化+试用,lk为汉化+跳过登录。可自行修改,通过逗号分隔。 ## 📱 关于安卓版 - 目前只有汉化功能,暂无其他功能。并且部分词条在源码中,暂未汉化。 - 由于手机端和桌面端版本号不同,因此安卓版本不会发布在 `Releases` 中,而是暂时托管在 [Actions][localize-android]。[Actions][localize-android] 每天运行一次,请自行查找对应版本进行下载。注意,这个是需要**登录**才可以下载的。 - 若你计划 [Fork][fork] 此项目,请在 [Fork][fork] 后前往仓库的 **Settings > Secrets and variables > Actions > Secrets** 页面,点击 New repository secret 定义私密变量。 - **Name**: `APK_SIGN_PROPERTIES` - **Value**: 填写 [apk.sign.properties.example](android/apk.sign.properties.example) 文件内容(请根据需要修改文件内容) - 可选配置(`Github Action`): - 添加自定义签名文件,可以覆盖安装 apk - 首先通过命令生成一个.jks签名文件 ```bash # 然后通过命令编码成一个 Base64 的文件 base64 -w 0 Termius_zh.jks > Termius_zh_base64.txt ``` - 后前往仓库的 **Settings > Secrets and variables > Actions > Secrets** 页面,点击 New repository secret 定义私密变量。 - **Name**: `SIGNING_KEY` - **Value**: 填写 [Termius_zh_base64.txt](Base64生成的文件) 文件内容(请根据需要修改文件内容) ### 🤖 关于脚本 - 安卓相关资源均存放在 [android](android) 目录下。 - 所需工具: - python(运行环境) - zipalign(对齐工具 `sudo apt install -y zipalign` 安装) - apksigner(签名工具 `sudo apt install -y apksigner` 安装) - keytool(密钥生成工具,集成在 JDK 中) - 运行: ```bash # 进入安卓目录 cd android # 配置签名信息(请自行修改内容) mv apk.sign.properties.example apk.sign.properties # 安装依赖 pip install -r requirements.txt # 运行脚本 python apktools.py ``` ## 📖 常见问题 ### Q1: ModuleNotFoundError: No module named 'tkinter' **Q:** Python 缺少 tkinter 图形界面库。 **A:** - **Windows:** tkinter 通常随 Python 一起安装,如缺失请重新安装 Python 并勾选 "tcl/tk and IDLE" 选项。 - **macOS:** 使用 Homebrew 安装:`brew install python-tk` - **Linux (Ubuntu/Debian):** `sudo apt-get install python3-tk` - **Linux (Fedora):** `sudo dnf install python3-tkinter` ### Q2: PermissionError: Permission denied **Q:** 没有足够的权限访问或修改 Termius 安装目录。 **A:** - **Windows:** 以管理员身份运行终端(右键 → 以管理员身份运行) - **macOS/Linux:** 在命令前添加 `sudo`,例如:`sudo python lang.py -l` - 确保 Termius 已完全关闭,没有后台进程占用文件 - 请检查权限,确保当前用户有 `resources` 目录的写权限 ### Q3: 替换 app.asar 后应用无法启动(Integrity check failed) **Q:** 新版 Termius 启用了 Electron 的 asar 完整性校验(`EnableEmbeddedAsarIntegrityValidation`),替换后的 `app.asar` 因哈希不匹配而被阻止启动。 **A:** - 使用脚本汉化:`lang.py` 会自动关闭该校验,无需额外操作。 - 手动汉化:需先用 `@electron/fuses` 关闭熔丝(以 Windows 为例,macOS/Linux 路径见上方手动汉化章节): ```bash npx @electron/fuses write --app "C:\Users\你的用户名\AppData\Local\Programs\Termius\Termius.exe" EnableEmbeddedAsarIntegrityValidation=off ``` - macOS 无需此操作,运行 [osxfix.sh](macos/osxfix.sh) 更新预期 hash 即可。 ### Q4: 自动更新失败(Code signature did not pass validation) **Q:** Termius 后台更新时报 `did not pass validation`,或更新后应用无法启动。 **A:** - 这是替换 `app.asar` 破坏代码签名导致的,内置自动更新无法继续使用,请前往 [官网](https://termius.com) 手动下载安装新版。 ## 🔔 注意事项 - 该项目仅适用于本地学习和测试,不支持在线功能。 - 使用汉化包可能会影响 Termius 软件的正常更新。 - 在执行任何操作之前,请确保备份 Termius 的相关文件。 ## 📜 免责声明 - 本仓库包括发布页内的所有文件仅供学习和交流,请勿用于任何非法用途,严禁二次出售,请在下载后的24小时内删除!如有侵权请联系删除! - 用于测试和学习研究,禁止用于商业用途,不能保证其合法性、准确性、完整性和有效性,请根据情况自行判断。 - 本人对任何问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害,使用即表示知晓风险。 - 保留随时终止项目的权利。 [termius]: https://termius.com [consideration]: https://ideas.termius.com/tabs/1-under-consideration [localization]: https://ideas.termius.com/c/82-chinese-localization [releases]: https://github.com/ArcSurge/Termius-Pro-zh_CN/releases [fork]: https://github.com/ArcSurge/Termius-Pro-zh_CN/fork [secrets]: https://github.com/ArcSurge/Termius-Pro-zh_CN/settings/secrets/actions [variables]: https://github.com/ArcSurge/Termius-Pro-zh_CN/settings/variables/actions [actions]: https://github.com/ArcSurge/Termius-Pro-zh_CN/actions [localize-android]: https://github.com/ArcSurge/Termius-Pro-zh_CN/actions/workflows/localize-android.yml