多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

如何为漫画AI翻译工具Manga Translator UI贡献代码:PR规范、测试体系与发布流程完整指南

如何为漫画AI翻译工具Manga Translator UI贡献代码:PR规范、测试体系与发布流程完整指南 如何为漫画AI翻译工具Manga Translator UI贡献代码PR规范、测试体系与发布流程完整指南【免费下载链接】manga-translator-ui基于manga-image-translator 实现的开源漫画AI翻译桌面工具。支持日、韩、英文漫画自动处理集成OpenAl、Gemini等多翻译引擎实现OCR文字检测、原文擦除、AI翻译、图像修复、译文排版完整链路自带可视化编辑器支持自定义文本样式一键部署开箱即用。项目地址: https://gitcode.com/gh_mirrors/man/manga-translator-uiManga Translator UI 是一款基于 manga-image-translator 的开源漫画AI翻译桌面工具支持日、韩、英漫画的 OCR 识别、原文擦除、AI 翻译与排版回写。想给它提交 PR本文带你走通从 Fork 到发布的完整贡献链路覆盖 PR 规范、本地测试体系与 CI 发布流程。1️⃣ 先认识项目结构改代码前先找到落点Manga Translator 的漫画翻译链路清晰分层找到你改动的所属模块贡献效率会高很多目录职责典型贡献点desktop_qt_ui/Qt 桌面端主窗口、编辑器、设置页新增设置项、UI 交互、多语言文案manga_translator/核心引擎检测 / OCR / 翻译 / 修复 / 排版新接入翻译器、OCR 模型manga_translator/server/FastAPI 服务端与管理后台Web 接口、权限与配额逻辑packaging/启动、更新脚本与 PyInstaller/Docker 打包发布流程、安装器行为test/pytest 用例与回归脚本新增回归测试config/默认配置与翻译器注册表新翻译器的 API 配置开发落点速查表写得很细例如「改设置读写看 config_service.py、改编辑器业务看 editor/」建议收藏doc/DEVELOPMENT.md。2️⃣ 准备本地开发环境最快上手方式项目以Python 3.12 uv为基线依赖统一声明在 pyproject.toml。首次贡献者只需三步# 1. 克隆仓库CPU 环境最省事测试与 CI 一致 git clone https://gitcode.com/gh_mirrors/man/manga-translator-ui cd manga-translator-ui # 2. 同步 CPU 测试依赖自动创建 .venv按 uv.lock 复现 uv sync --no-default-groups --group cpu --group test # 3. 启动桌面端验证环境 uv run python -m desktop_qt_ui.main 依赖分为cpu / cuda13.0 / cuda12.6 / rocm7.2.1 / metal五个互斥的 dependency groups本地开发与 CI 测试都对齐cpu 组即可无需 GPU。锁定文件 uv.lock 已提交在仓库中请勿手改。3️⃣ 贡献全流程从 Issue 到 PR标准链路提 Issue 对齐方向 → Fork → 建分支 → 修改 → 本地测试 → 提 PR → 维护者审核合并。改动较大或不确定是否被接受时先开 Issue 讨论方向避免做无用功。功能建议、Bug 反馈需附翻译前原图与日志都有对应模板详见 doc/wiki/zh/community/contributing.md。PR 提交前 6 条硬性规范 ✅基于最新上游从最新默认分支拉分支提交前再同步一次解决冲突。只提交相关文件不混入编辑器配置、临时文件、无关格式化一个 PR 聚焦一个问题。保持代码整洁删除调试输出、注释掉的死代码、未使用的导入。完整更新关联内容行为或接口变化时同步更新调用方、测试、文档与中英文名称。自行验证改动在 PR 描述中写明实际执行的命令与结果界面改动附截图。写清 PR 描述问题背景、改动范围、实现方式、验证结果、可能影响。维护者会重点检查「聚焦、对齐最新代码、清晰可维护、验证证据充分」四点不符合要求的 PR 会被打回整理。4️⃣ 测试体系改完代码必须跑通测试全部位于 test/ 目录只跟踪test/*.py顶层 Python 文件。写测试只需记住三条约定第一行必须写import _bootstrap # noqa: F401。test/_bootstrap.py 统一处理了三件坑事仓库路径注入、QT_QPA_PLATFORMoffscreen离屏渲染、以及 Windows 上 torch 必须先于 PyQt6 加载的硬约束所有测试路径基于_bootstrap.ROOT构建不要依赖当前工作目录命名具体到行为例如test_region_list_preserves_dirty_translation_by_region_id。本地运行与 CI 完全一致的命令uv sync --no-default-groups --group cpu --group test uv run --no-sync pytest testCI 质量门禁如何拦截你的 PR .github/workflows/tests.yml 定义了Tests工作流每次 push 和 pull_request 都触发在windows-latest上以 Python 3.12 CPU 依赖组运行完整 pytest 套件30 分钟超时。任何用例失败都会阻止合并。仓库现有 50 个测试文件覆盖编辑器模型与文档、富文本排版、批量编辑、YOLO-OBb 检测合并、中文断行、安全回归拒绝远程图片 URL 与路径穿越等区域完整清单见 doc/wiki/zh/developer/tests-and-code-quality.md。代码风格方面唯一的静态检查配置是 desktop_qt_ui/ruff.tomlE/F/I规则、双引号风格本地自检ruff check desktop_qt_ui manga_translator --config desktop_qt_ui/ruff.toml5️⃣ 发布流程你的代码如何变成安装包 发布不是维护者手动打包而是Git tag 驱动的 CI 流水线了解它有助于你规范提交环节说明相关文件版本号v*tag 为权威来源CI 写入 packaging/VERSIONdoc/CHANGELOG_v3.1.0.md 等变更日志桌面端发布监听v*tagWindows 上构建 CPU / CUDA 13.0 / CUDA 12.6 / AMD 四种便携版安装锁定依赖与模型后生成 7z 分卷Ubuntu 汇总并发布 Releasebuild-and-release.ymlDocker 镜像[cpu, gpu]矩阵构建多阶段镜像推送至 Docker Hub 与 GHCRpackaging/Dockerfile、docker-build-push.yml文档站点doc/wiki/**变更触发 VitePress 构建部署docs-pages.yml⚠️ 贡献提醒如果你新增了打包必需的资源目录或配置文件请同步检查 build-and-release.yml 中复制到可执行文件同级的步骤否则新资源不会进入发布包。完整细节见 doc/wiki/zh/developer/packaging-and-release.md。6️⃣ 常见贡献场景速查 新增一个设置项这是一条「十连击」链路——配置模型config_models.py→ 后端配置manga_translator/config.py→ 默认模板config/config-example.json→ 设置页布局settings_tab_layout.json→六种语言文案desktop_qt_ui/locales/→ 实际消费模块 → 中英 Wiki → 聚焦测试。完整步骤见 doc/wiki/zh/developer/adding-or-changing-a-feature.md。接入新翻译器在 manga_translator/translators/ 新增实现 → 更新配置枚举 → 涉及 API 环境变量时同步 config/config/translators.json → 补 UI 选项与测试。修改编辑器行为优先在 desktop_qt_ui/editor/ 下找editor_controller.py、editor_logic.py、graphics_view.py。Bug 修复先复现 → 用uv run --no-sync pytest test/相关用例.py验证 → PR 描述附复现步骤与修复结果。写在最后Manga Translator 的社区规范很朴素但严格小步提交、聚焦单一问题、测试自证、文档同步。把本文第 4 节的测试命令和第 3 节的 PR 清单存进你的开发笔记你的第一个 PR 离合并就不远了 相关文档入口开发者指南 · 测试与代码质量 · 打包与发布 · 调试指南【免费下载链接】manga-translator-ui基于manga-image-translator 实现的开源漫画AI翻译桌面工具。支持日、韩、英文漫画自动处理集成OpenAl、Gemini等多翻译引擎实现OCR文字检测、原文擦除、AI翻译、图像修复、译文排版完整链路自带可视化编辑器支持自定义文本样式一键部署开箱即用。项目地址: https://gitcode.com/gh_mirrors/man/manga-translator-ui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表