跳转至

为项目做贡献

Caution

当前项目维护者正在研究自动化文档国际化。因此,任何与文档国际化/翻译相关的 PR 将不被接受!

请勿提交与文档国际化/翻译相关的 PR!

感谢您对本项目的关注!在开始贡献之前,请花一些时间阅读以下指南,以确保您的贡献能够顺利被接受。

不接受的贡献类型

  1. 文档国际化/翻译
  2. 与核心基础设施相关的贡献,例如 HTTP API 等。
  3. 明确标记为“无需帮助”的 Issue(包括 Byaidu/PDFMathTranslatePDFMathTranslate-next/PDFMathTranslate-next 仓库中的 Issue)。
  4. 维护者认为不合适的其他贡献。
  5. 贡献文档,但修改非英语语言的文档。
  6. 需要修改 PDF 文件的 PR。
  7. 修改 pdf2zh_next/gui_translation.yaml 文件的 PR。

请不要提交与上述类型相关的 PR。

Note

如果你想贡献文档,请只修改英文版本的文档。其他语言版本由贡献者自行翻译。

建议在提交前通过 Issue 与维护者讨论的 PR 类型

对于以下类型的 PR,建议在提交前先与维护者讨论:

  1. 与多用户共享功能相关的 PR。(本项目主要设计为单用户使用,不打算引入全面的多用户系统)。

贡献流程

  1. Fork 此仓库并在本地克隆它。
  2. 创建一个新分支:git checkout -b feature/<feature-name>
  3. 进行开发并确保你的代码符合要求。
  4. 提交你的代码:
    git add .
    git commit -m "<semantic commit message>"
    
  5. 推送到你的仓库:git push origin feature/<feature-name>
  6. 在 GitHub 上创建一个 PR,提供详细描述,并请求 @awwaawwa 进行审查。
  7. 确保所有自动化检查通过。

Tip

你不需要等到开发完全完成才创建 PR。提前创建一个 PR 可以让我们审查你的实现并提供建议。

如果你对源代码或相关事宜有任何疑问,请联系维护者 [email protected]

2.0 版本的资源文件与 BabelDOC 共享。下载相关资源的代码在 BabelDOC 中。如果你想添加新的资源文件,请联系 BabelDOC 维护者 [email protected]

基本要求

1. 工作流程

  • 请从 main 分支进行 fork,并在你 fork 的分支上进行开发。
  • 提交 Pull Request (PR) 时,请提供你更改的详细说明。
  • 如果你的 PR 未通过自动化检查(显示为 checks failed 和一个红色的叉号),请查看相应的 details 并修改你的提交,以确保新的 PR 通过所有检查。

2. 开发与测试

  • 使用命令 pip install -e . 进行开发和测试。

3. 代码格式化

  • 配置 pre-commit 工具并启用 blackflake8 进行代码格式化。

4. 依赖更新

  • 如果你引入了新的依赖项,请及时更新 pyproject.toml 文件中的依赖列表。

5. 文档更新

  • 如果你添加了新的命令行选项,请相应地更新所有语言版本的 README.md 文件中的命令行选项列表。

6. 提交信息

7. 代码风格

  • 确保你提交的代码符合基本的编码风格标准。
  • 变量命名使用 snake_case 或 camelCase。

8. 文档格式

  • 对于 README.md 的格式,请遵循 中文文案排版指北
  • 确保英文和中文文档始终是最新的;其他语言文档的更新是可选的。

添加翻译引擎

  1. pdf2zh/config/translate_engine_model.py 文件中添加一个新的翻译器配置类。
  2. 在同一文件中,将新翻译器配置类的实例添加到 TRANSLATION_ENGINE_SETTING_TYPE 类型别名中。
  3. pdf2zh/translator/translator_impl 文件夹中添加新的翻译器实现类。

Note

本项目无意支持任何 RPS(每秒请求数)低于 4 的翻译引擎。请不要提交对此类引擎的支持。 以下类型的翻译器也不会被集成: - 已被上游维护者停止维护的翻译器(例如 deeplx) - 依赖项庞大的翻译器(例如依赖 pytorch 的翻译器) - 不稳定的翻译器 - 基于逆向工程 API 的翻译器

当你不确定某个翻译器是否符合要求时,可以发送 issue 与维护者讨论。

项目结构

  • config 文件夹:配置系统。
  • translator 文件夹:翻译器相关实现。
  • gui.py:提供 GUI 界面。
  • const.py:一些常量。
  • main.py:提供命令行工具。
  • high_level.py:基于 BabelDOC 的高级接口。
  • http_api.py:提供 HTTP API(未启动)。

向 AI 询问以了解项目:DeepWiki

联系我们

如果您有任何疑问,请通过 Issue 提交反馈或加入我们的 Telegram 群组。感谢您的贡献!

Tip

Immersive Translate 为活跃的贡献者提供月度 Pro 会员码。详情请参阅:BabelDOC/PDFMathTranslate 贡献者奖励规则

本页面的部分内容由 GPT 翻译,可能包含错误。