V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
BlackHole1
V2EX  ›  分享创造

[开源]: EPUB 双语无损翻译

  •  1
     
  •   BlackHole1 ·
    PRO
    ·
    BlackHole1 · 2025 年 7 月 15 日 · 4980 次点击
    这是一个创建于 185 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们之前开源了 pdf-craft。在维护的过程中,我们发现有些用户也非常需要:「 EPUB 翻译」,于是在最近一段时间,我们针对这个需求开源了 epub-translator(MIT 协议)。

    功能特性

    • 多语言互译:支持 英文、中文、日文、西班牙语、法语、德语等主流语言互译。
    • 无损翻译:基于 AI 大模型 100% 保留原书的格式、插图、目录和排版
    • 双语对照:支持双语对照,方便学习和阅读
    • 插入提示词:指导 AI 翻译,如术语表,角色人名表等。
    • AI 模型可选:支持 DeepSeek 、ChatGPT 等主流大模型
    • 高性能并行:AI 请求多路并发,快速翻译整本书籍
    • 错误自恢复:自动重试超时 & 速率限制,长书也能一次跑通
    • OOMOL Studio 一键体验:集成至 OOMOL Studio,提供一键式翻译体验

    安装

    pip install epub-translator
    

    核心用法示例

    from epub_translator import LLM, translate, Language
    
    llm = LLM(
      key="<LLM-API-KEY>", # LLM 的 API key
      url="https://api.deepseek.com", # LLM 的 base URL
      model="deepseek-chat", # LLM 的模型名
      token_encoding="o200k_base", # 计算 tokens 个数的本地模型
    )
    
    translate(
      llm=llm, # 上一步构造的 llm 对象
      source_path="/path/to/epub/file", # 要翻译的原 EPUB 文件
      translated_path="/path/to/translated/epub/file", # 翻译后的 EPUB 保存路径
      target_language=Language.SIMPLIFIED_CHINESE, # 翻译目标语言,此例为简体中文。
      user_prompt="Le Petit Prince 应该译为“小王子”。", # 用户提示词,指导 AI 翻译 (可选)
    )
    

    运行后即可得到保留原版版式的「双语 EPUB 」,在 KOReader / Koodo Reader / Apple Books 等阅读器里直接打开即可

    实际效果

    开源与社区

    我们非常欢迎各位 V 友参与,无论是提交 PR 、反馈问题,还是分享使用经验,都可以帮助我们改进这个工具。

    如果觉得不错,欢迎给项目点个 star ⭐

    你也可以通过 https://oomol.com/community/ 找到我们。

    17 条回复    2025-07-26 17:37:11 +08:00
    simple233
        1
    simple233  
       2025 年 7 月 15 日
    牛的
    byby
        2
    byby  
       2025 年 7 月 15 日 via iPhone
    试试,看看和沉浸式哪个效果好
    leic4u
        3
    leic4u  
       2025 年 7 月 15 日
    支持,建议早日出个小工具,方便没有 pip 运行环境的人使用。
    lyka
        4
    lyka  
       2025 年 7 月 15 日 via iPhone   ❤️ 1
    heyeshuang
        5
    heyeshuang  
       2025 年 7 月 16 日
    ZxykM
        6
    ZxykM  
       2025 年 7 月 16 日
    @heyeshuang 同,我也用的这个
    zouzou0208
        7
    zouzou0208  
       2025 年 7 月 16 日   ❤️ 2
    @lyka @ZxykM 谢谢有点惭愧这个项目有日子没认真维护了,后面我做一些更新
    AirBai2
        8
    AirBai2  
       2025 年 7 月 16 日   ❤️ 1
    翻译好的的小王子可以给个下载链接看看效果吗
    CQCQCQ
        9
    CQCQCQ  
       2025 年 7 月 16 日
    @lyka 同用。一般书籍用内置的 Google translate 足矣
    bbroot
        10
    bbroot  
       2025 年 7 月 16 日
    支持下
    azhangbing
        11
    azhangbing  
       2025 年 7 月 16 日
    平时不用 OOMOL ,在 OOMOL 中应该怎么设置 deepseek 的 APIKEY
    yulgang
        12
    yulgang  
       2025 年 7 月 16 日
    卧槽,牛的
    nno
        13
    nno  
       2025 年 7 月 16 日
    我自己用 rust 写了个支持 markdown 、html 翻译的,零依赖,打包不到 5M
    lianyanjiajia
        14
    lianyanjiajia  
       2025 年 7 月 16 日
    牛的
    DonaldVVV
        15
    DonaldVVV  
       2025 年 7 月 18 日
    在科技爱好者周刊看到这个项目了;
    我说怎么眼熟呢,原来是先在 v 站看到过的👍
    lyka
        16
    lyka  
       2025 年 7 月 23 日
    @xliao 的确如此。最近试了一下用 chatgpt 的 API 翻了一本书。花了大约 30 元人民币。效果也没有差多少。
    Aixtuz
        17
    Aixtuz  
       2025 年 7 月 26 日
    来提个建议:希望参考下 XDG 目录规范,给用户目录下的隐藏文件夹挪挪位置。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5201 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:41 · PVG 16:41 · LAX 00:41 · JFK 03:41
    ♥ Do have faith in what you're doing.