V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
TonyHoAspire
V2EX  ›  问与答

有什么翻译工具或者翻译的 API 可以实现翻译文件里面的中文,保留英文?

  •  
  •   TonyHoAspire · 2023-01-08 10:33:11 +08:00 · 1570 次点击
    这是一个创建于 713 天前的主题,其中的信息可能已经有所发展或是发生改变。

    某个项目里面的代码里面有一部分中文字符串,现在需要这些项目文件里面的中文翻译成英文,其他部分保持不变。 不知道是否有命令行或者可以批量处理的工具不?

    因为文件比较多,而且有些代码文件很长,所以手动拖动到某个工具中(例如 DeepL )不方便。

    如果有其他的方式,也可以提供信息。多谢。

    6 条回复    2023-01-09 17:51:35 +08:00
    bjzhush
        1
    bjzhush  
       2023-01-08 10:53:21 +08:00
    你自己都没试吧,我花半分钟试了下,google translation 对中英文混合的内容只翻译中文,英文和符号包括格式都不变。
    所以理论上来说,google translation API 就可以解决你这个问题,这个 API 每月有 50 万字符的免费翻译额度
    TonyHoAspire
        2
    TonyHoAspire  
    OP
       2023-01-08 11:52:02 +08:00
    @bjzhush 你使用的是网页版吗? 如果你用的是 cli 版本,可以告知一下吗?
    我尝试使用 cli 版本(这个 https://github.com/lushan88a/google_trans_new )。
    没有跑起来:

    Traceback (most recent call last):
    File "/home/telink/.local/lib/python3.7/site-packages/google_trans_new/google_trans_new.py", line 189, in translate
    r.raise_for_status()
    File "/usr/local/python3/lib/python3.7/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError( http_error_msg, response=self)
    requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://translate.google.cn/_/TranslateWebserverUi/data/batchexecute

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "tran.py", line 41, in <module>
    raise e
    File "tran.py", line 38, in <module>
    results = pool.map(request, texts)
    File "/usr/local/python3/lib/python3.7/multiprocessing/pool.py", line 268, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
    File "/usr/local/python3/lib/python3.7/multiprocessing/pool.py", line 657, in get
    raise self._value
    File "/usr/local/python3/lib/python3.7/multiprocessing/pool.py", line 121, in worker
    result = (True, func(*args, **kwds))
    File "/usr/local/python3/lib/python3.7/multiprocessing/pool.py", line 44, in mapstar
    return list(map(*args))
    File "tran.py", line 26, in request
    translate_text = t.translate(text.strip(), lang)
    File "/home/telink/.local/lib/python3.7/site-packages/google_trans_new/google_trans_new.py", line 194, in translate
    raise google_new_transError(tts=self, response=r)
    google_trans_new.google_trans_new.google_new_transError: 404 (Not Found) from TTS API. Probable cause: Unknown
    bjzhush
        3
    bjzhush  
       2023-01-08 12:10:56 +08:00
    你这从哪找的破烂。。。
    我测试用的是网页版翻译 https://translate.google.com.hk/
    官方文档在 https://cloud.google.com/translate/docs/basic/translating-text
    我前几天刚用过,非常简单方便
    TonyHoAspire
        4
    TonyHoAspire  
    OP
       2023-01-09 10:51:29 +08:00
    @bjzhush 我试了下,这个需要先在 google clound 创建一个项目,而这个又需要先进行信息登记 /注册(需要填写的信息包括信用卡号)。 是这样子的吗?
    另外,这个翻译的速度如何? 要是快的话,准备继续折腾一把,用里面的 go snippet 代码。现在找的其他 github python 的代码,翻译速度太慢了。
    bjzhush
        5
    bjzhush  
       2023-01-09 11:14:27 +08:00
    @TonyHoAspire 是需要开通个账号并绑定信用卡的,你自己开通前,统计下字符数量,预估一下费用看看先。
    速度超级快,而且可以并发请求翻译 API ,我 150 万字符也就是二三十分钟就搞定了,我开了几十个脚本同时请求。
    Google 翻译的质量我也认为是世界上最好的,因为 Google 有海量的翻译经验,不管是 Chrome 还是搜索内容的各种语言。
    如果你要翻译的数量不多,也可以找一下免费的接口,一般是从网页端扒的,我没怎么研究过
    TonyHoAspire
        6
    TonyHoAspire  
    OP
       2023-01-09 17:51:35 +08:00
    @bjzhush Thanks.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2378 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:51 · PVG 23:51 · LAX 07:51 · JFK 10:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.