Skip to main content

Google Translate, support APIKEY

Project description

pygtrans

pygtrans: python google translate

谷歌翻译, 支持 APIKEY

test badge Downloads

重新写的博文, 也许会清晰一点, 大家也可以看看

https://juejin.cn/post/6986599019782864933/

基本功能

  • 获取语言支持列表
  • 自动检测语言, 支持批量
  • 文本/HTML 翻译, 支持批量
  • 支持 TTS

安装

环境要求: >= python 3.6

pip install pygtrans

或者

pip install pygtrans -i https://pypi.org/simple

必要时可以加个 --upgrade 参数

快速入门

from pygtrans import Translate

client = Translate()

# 检测语言
text = client.detect('Answer the question.')
assert text.language == 'en'

# 翻译句子
text = client.translate('Look at these pictures and answer the questions.')
assert text.translatedText == '看这些图片,回答问题。'

# 批量翻译
texts = client.translate([
    'Good morning. What can I do for you?',
    'Read aloud and underline the sentences about booking a flight.',
    'May I have your name and telephone number?'
])
assert [text.translatedText for text in texts] == [
    '早上好。我能为你做什么?', 
    '大声朗读并在有关预订航班的句子下划线。', 
    '可以给我你的名字和电话号码吗?'
]

# 翻译到日语
text = client.translate('请多多指教', target='ja')
assert text.translatedText == 'お知らせ下さい'

# 翻译到韩语
text = client.translate('请多多指教', target='ko')
assert text.translatedText == '조언 부탁드립니다'

# 文本到语音
tts = client.tts('やめて', target='ja')
open('やめて.mp3', 'wb').write(tts)

基本介绍

pygtrans包中有两个需要关心的模块

  1. Translate: 通过谷歌翻译API接口实现, 可直接使用, 但可能不稳定
  2. ApiKeyTranslate: 通过Google Cloud Translate APIs实现, 需要提供一个有效的APIKEY, 谷歌提供免费试用

二者的差异

缺点 优点
Translate 稳定性无法得到保证 免费, 可直接使用
亲测这货一次性可以翻译 10万 个句子
ApiKeyTranslate 需要money
翻译内容一次性最多 102400 bytes
一次性最多翻译 128 个句子
比较稳定
  • Translate 未作任何限制, 如果大家使用过程中出现问题, 请大家 留言
  • ApiKeyTranslate 的官方限制, 已在代码中容错, 唯一需要注意的是: 单个句子不要超过 102400 bytes

关于Null模块

表示一个失败的结果, 如果想判断翻译是否成功, 判断返回是否为Null对象即可

from pygtrans import Translate, Null

client = Translate()
text = client.translate('Hello')
if isinstance(text, Null):
    print("翻译失败")
else:
    print("翻译成功")

建议按需判断, 一般直接使用

基本使用

使用Translate

  • 获取支持语言: 该功能从代码中删除, 以 语言支持列表 方式提供
  • 语言检测: 方法detect不支持批量检测, 如需批量检测请使用 translate_and_detect 方法
from pygtrans import Translate

client = Translate()
d = client.detect('你好')
assert d.language == 'zh-CN'
  • 文本翻译: 使用translate方法, 默认就是HTML模式翻译, 详细参数设置请移步至 pygtrans文档
from pygtrans import Translate

client = Translate()
text1 = client.translate('English')
assert text1.translatedText == '英语'

text2 = client.translate('喜欢', target='en')
assert text2.translatedText == 'love'

# 批量翻译
texts = client.translate(['Hello', 'World'])
for text in texts:
    print(text.translatedText)
# 你好
# 世界

修改默认语言, 请移步至 pygtrans文档

  • TTS: 从文本到语言
from pygtrans import Translate

client = Translate()
tts = client.tts('你好')
open('你好.mp3', 'wb').write(tts)

你好.mp3

tts = client.tts('やめて', target='ja')
open('やめて.mp3', 'wb').write(tts)

やめて.mp3

tts = client.tts('一二三四五, 上山打老虎')
open('一二三四五.mp3', 'wb').write(tts)

一二三四五.mp3

tts = client.tts("""
我的小鱼你醒了,还认识早晨吗?

昨夜你曾经说,愿夜幕永不降临。

你的香腮边轻轻滑落的,是你的泪,还是我的泪?

初吻吻别的那个季节,不是已经哭过了嘛?

我的指尖还记忆着,你慌乱的心跳。

温柔的体香里,那一绺长发飘飘。
""")
open('我的小鱼你醒了.mp3', 'wb').write(tts)

我的小鱼你醒了.mp3

使用ApiKeyTranslate

请参考 pygtrans文档

本文档可能会滞后, pip install pygtrans 亲自尝试下吧~

有问题?

欢迎大家反馈和建议

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygtrans-1.0.12.tar.gz (25.1 kB view hashes)

Uploaded Source

Built Distribution

pygtrans-1.0.12-py3-none-any.whl (24.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page