[开源]: EPUB 双语无损翻译 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
BlackHole1
V2EX    分享创造

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

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

    我们之前开源了 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  
       170 天前
    牛的
    byby
        2
    byby  
       169 天前 via iPhone
    试试,看看和沉浸式哪个效果好
    leic4u
        3
    leic4u  
       169 天前
    支持,建议早日出个小工具,方便没有 pip 运行环境的人使用。
    lyka
        4
    lyka  
       169 天前 via iPhone   1
    heyeshuang
        5
    heyeshuang  
       169 天前
    ZxykM
        6
    ZxykM  
       169 天前
    @heyeshuang 同,我也用的这个
    zouzou0208
        7
    zouzou0208  
       169 天前   2
    @lyka @ZxykM 谢谢有点惭愧这个项目有日子没认真维护了,后面我做一些更新
    AirBai2
        8
    AirBai2  
       169 天前   1
    翻译好的的小王子可以给个下载链接看看效果吗
    xliao
        9
    xliao  
       169 天前
    @lyka 同用。一般书籍用内置的 Google translate 足矣
    bbroot
        10
    bbroot  
       169 天前
    支持下
    azhangbing
        11
    azhangbing  
       169 天前
    平时不用 OOMOL ,在 OOMOL 中应该怎么设置 deepseek 的 APIKEY
    yulgang
        12
    yulgang  
       169 天前
    卧槽,牛的
    nno
        13
    nno  
       169 天前
    我自己用 rust 写了个支持 markdown 、html 翻译的,零依赖,打包不到 5M
    lianyanjiajia
        14
    lianyanjiajia  
       169 天前
    牛的
    DonaldVVV
        15
    DonaldVVV  
       167 天前
    在科技爱好者周刊看到这个项目了;
    我说怎么眼熟呢,原来是先在 v 站看到过的
    lyka
        16
    lyka  
       162 天前
    @xliao 的确如此。最近试了一下用 chatgpt 的 API 翻了一本书。花了大约 30 元人民币。效果也没有差多少。
    Aixtuz
        17
    Aixtuz  
       159 天前
    来提个建议:希望参考下 XDG 目录规范,给用户目录下的隐藏文件夹挪挪位置。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2335 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 10:11 PVG 18:11 LAX 02:11 JFK 05:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86