如何在Python中翻译语言(代码实现示例)

如何在Python中翻译语言?了解如何使用 Googletrans 库 (Google Translation API) 制作语言翻译器和检测器,以使用 Python 翻译 100 多种语言,包括Python翻译语言示例。
Google 翻译是一项免费服务,可将单词、短语和整个网页翻译成100多种语言。你可能已经知道它,并且在你的生活中多次使用它。
在本教程中,你将学习如何使用Googletrans库在 Python 中执行语言翻译。Googletrans是一个免费且无限制的 Python 库,可对 Google Translate API进行非官方的Ajax调用,以检测语言并翻译文本。
以下是该库的主要功能:

  • 自动语言检测(它也提供语言检测)
  • 批量翻译
  • 快速可靠
  • HTTP/2 支持
  • 连接池
首先,让我们使用pip安装它:
pip3 install googletrans

Python如何翻译语言?翻译文本导入必要的库:
from googletrans import Translator, constants from pprint import pprint

如何在Python中翻译语言?Googletrans 为我们提供了一个方便的界面,让我们初始化我们的翻译器实例:
# init the Google API translator translator = Translator()

请注意, 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:你发出的每个请求的超时时间,以秒表示。
Python翻译语言示例 - 现在我们只需使用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})")

这将打印原始文本和语言以及翻译后的文本和语言:
Hola Mundo (es) --> Hello World (en)

如果上面的代码导致这样的错误:
AttributeError: 'NoneType' object has no attribute 'group'

然后你必须卸载当前的googletrans版本并使用以下命令安装新版本:
$ pip3 uninstall googletrans $ pip3 install googletrans==3.1.0a0

回到代码,它会自动检测语言并默认翻译成英语,让我们翻译成另一种语言,例如阿拉伯语:
# translate a spanish text to arabic for instance translation = translator.translate("Hola Mundo", dest="ar") print(f"{translation.origin} ({translation.src}) --> {translation.text} ({translation.dest})")

"ar"  是阿拉伯语的语言代码,这里是输出:
Hola Mundo (es) --> ????? ??????? (ar)

现在让我们设置源语言并翻译成英语:
# specify source language translation = translator.translate("Wie gehts ?", src="http://img.readke.com/220419/0110096115-0.jpg") print(f"{translation.origin} ({translation.src}) --> {translation.text} ({translation.dest})")

输出:
Wie gehts ? (de) --> How are you ? (en)

你还可以检查其他翻译和其他一些额外数据:
# print all translations and other data pprint(translation.extra_data)

查看输出:
{'all-translations': [ [ 'interjection', [ 'How are you doing?', "What's up?"], [ [ 'How are you doing?', [ "Wie geht's?"]], [ "What's up?", [ "Wie geht's?"]]], "Wie geht's?", 9]], 'confidence': 1.0, 'definitions': None, 'examples': None, 'language': [ [ 'de'], None, [ 1.0], [ 'de']], 'original-language': 'de', 'possible-mistakes': None, 'possible-translations': [ [ 'Wie gehts ?', None, [ [ 'How are you ?', 1000, True, False], [ "How's it going ?", 1000, True, False], [ 'How are you?', 0, True, False]], [ [ 0, 11]], 'Wie gehts ?', 0, 0]], 'see-also': None, 'synonyms': None, 'translation': [ [ 'How are you ?', 'Wie gehts ?', None, None, 1]]}

大量数据可以从中受益,你拥有所有可能的翻译、信心、定义甚至示例。
翻译短语列表如何在Python中翻译语言?你还可以传递文本列表来单独翻译每个句子:
# 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%置信度):
Language code: hi Confidence: 1.0

这将返回语言代码,要获取完整的语言名称,你可以使用GoogletransLANGUAGES提供的字典:
print("Language:", constants.LANGUAGES[ detection.lang])

输出:
Language: hindi

支持的语言Python翻译语言示例:你可能知道,Google 翻译支持 100 多种语言,让我们打印所有语言:
# print all available languages print("Total supported languages:", len(constants.LANGUAGES)) print("Languages:") pprint(constants.LANGUAGES)

这是一个截断的输出:
Total supported languages: 107 {'af': 'afrikaans', 'sq': 'albanian', 'am': 'amharic', 'ar': 'arabic', 'hy': 'armenian', ... < SNIPPED> ... 'vi': 'vietnamese', 'cy': 'welsh', 'xh': 'xhosa', 'yi': 'yiddish', 'yo': 'yoruba', 'zu': 'zulu'}

结论如何在Python中翻译语言?有了它,这个库对于想要快速翻译应用程序中文本的每个人来说都非常有用。但是,如前所述,该库是非官方的,作者指出单个文本的最大字符长度为 15K。
它也不能保证库在任何时候都能正常工作,如果你想使用稳定的 API,你应该使用官方的谷歌翻译 API。
Python如何翻译语言?如果5xx这个库出现HTTP错误,那么谷歌已经禁止了你的 IP 地址,这是因为经常使用这个库,谷歌翻译可能会阻止你的 IP 地址,你需要考虑通过将代理字典传递给类中的参数来使用代理,或使用所讨论的官方 API。proxiesTranslator()
【如何在Python中翻译语言(代码实现示例)】此外,我编写了一个快速的 Python 脚本,它允许你在命令行中翻译句子和文档中的文本,请在此处查看。

    推荐阅读