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

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

  •  1
     
  •   BlackHole1 ·
    PRO
    ·
    BlackHole1 · 47 天前 · 4246 次点击
    这是一个创建于 47 天前的主题,其中的信息可能已经有所发展或是发生改变。

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