Validus A dead simple Python data validation library.…
Python 谷歌翻译, Python 语言翻译, Python免费无限语言翻译, How to Translate Languages in Python, Googletrans: Free and Unlimited Google translate API for Python, AttributeError: ‘NoneType’ object has no attribute ‘group’
Google 翻译是一项免费服务,可将单词、短语和整个网页翻译成100多种语言。您可能已经知道它,并且在您的生活中多次使用它。
在本教程中,您将学习如何使用Googletrans库在 Python 中执行语言翻译。Googletrans是一个免费且无限制的 Python 库,可对 Google Translate API进行非官方的Ajax调用,以检测语言并翻译文本。
以下是该库的主要功能:
- 自动语言检测(它也提供语言检测)
- 批量翻译
- 快速可靠
- HTTP/2 支持
- 连接池
首先,让我们使用pip安装它:
pip3 install googletrans
翻译文本
导入必要的库:
from googletrans import Translator, constants from pprint import pprint
Googletrans 为我们提供了一个方便的界面,让我们初始化我们的翻译器实例:
请注意, Translator 类有几个可选参数:
service_urls
: 这应该是一个字符串列表,这些字符串是 google translate API 的 URLs,一个例子是["translate.google.com", "translate.google.co.uk"]
.user_agent
:将包含在请求中的User-Agent标头中的字符串。proxies
(dictionary):一个 Python 字典,将协议或协议和主机映射到代理的 URL,一个例子是{'http': 'example.com:3128', 'http://domain.example': 'example.com:3555'}
,更多关于本教程中的代理。timeout
:您发出的每个请求的超时时间,以秒表示。
现在我们只需使用translate()
方法来获取翻译文本:
# translate a spanish text to english text (by default) translation = translator.translate("Hola Mundo") print(f"{translation.origin} ({translation.src}) --> {translation.text} ({translation.dest})")
这将打印原始文本和语言以及翻译后的文本和语言:
如果上面的代码导致这样的错误:
然后您必须卸载当前的googletrans版本并使用以下命令安装新版本:
回到代码,它会自动检测语言并默认翻译成英语,让我们翻译成另一种语言,例如阿拉伯语:
"ar"
是阿拉伯语的语言代码,这里是输出:
现在让我们设置源语言并翻译成英语:
输出:
Wie gehts ? (de) --> How are you ? (en)
您还可以检查其他翻译和其他一些额外数据:
查看输出:
# translate more than a phrase sentences = [ "Hello everyone", "How are you ?", "Do you speak english ?", "Good bye!" ] translations = translator.translate(sentences, dest="tr") for translation in translations: print(f"{translation.origin} ({translation.src}) --> {translation.text} ({translation.dest})")
输出:
Hello everyone (en) --> herkese merhaba (tr) How are you ? (en) --> Nasılsın ? (tr) Do you speak english ? (en) --> İngilizce biliyor musunuz ? (tr) Good bye! (en) --> Güle güle! (tr)
语言检测
Google Translate API 也为我们提供了语言检测调用:
# detect a language detection = translator.detect("नमस्ते दुनिया") print("Language code:", detection.lang) print("Confidence:", detection.confidence)
这将打印检测到的语言的代码以及置信度(1.0表示100%置信度):
这将返回语言代码,要获取完整的语言名称,您可以使用GoogletransLANGUAGES
提供的字典:
Language: hindi
支持的语言
您可能知道,Google 翻译支持 100 多种语言,让我们打印所有语言:
# print all available languages print("Total supported languages:", len(constants.LANGUAGES)) print("Languages:") pprint(constants.LANGUAGES)
这是一个截断的输出:
结论
有了它,这个库对于想要快速翻译应用程序中文本的每个人来说都非常有用。但是,如前所述,该库是非官方的,作者指出单个文本的最大字符长度为 15K。
它也不能保证库在任何时候都能正常工作,如果你想使用稳定的 API,你应该使用官方的谷歌翻译 API。
如果5xx
这个库出现HTTP错误,那么谷歌已经禁止了你的 IP 地址,这是因为经常使用这个库,谷歌翻译可能会阻止你的 IP 地址,你需要考虑通过将代理字典传递给类中的参数来使用代理,或使用所讨论的官方 API。proxies
Translator()
此外,我编写了一个快速的 Python 脚本,它允许您在命令行中翻译句子和文档中的文本,请在此处查看。
最后,我鼓励您进一步探索该库,查看其官方文档。
本文:Python 谷歌翻译, Python 语言翻译, How to Translate Languages in Python