Text Translation with Google Translate API in Python
除非您躲在石头下,否则您一生中可能多次使用过Google翻译。 每当您尝试将单词或句子从某种语言翻译为另一种语言时,Google Translate API都会在后台为您带来所需的结果。 尽管您可以仅通过转到Google Translate网页来翻译任何内容,但也可以将Google Translate API集成到您的Web应用程序或桌面程序中。 关于API的最好的事情是,它非常容易设置和使用。
实际上,借助Google Translate API,您可以做很多事情,包括检测语言到简单的文本翻译,设置源语言和目标语言以及翻译整个文本短语列表。 在本文中,您将了解如何使用Python编程语言来使用Google Translate API。
Google翻译API安装
您必须先安装它,然后才能在Python中使用Google Translate API。 有两种安装API的方法。 第一种方法很简单。 只需转到终端并使用
1 | $ pip install googletrans |
按Enter,系统将安装Google Translate API的Python模块。
如果安装了Python的Anaconda发行版,则可以使用Anaconda Prompt安装API。 在此特定方法中,您将上述命令中的
1 | $ conda install googletrans |
既然您已经安装了API,我们将在一些示例的帮助下看到它的运行。
列出支持的语言
Google Translate API支持多种语言。 要列出所有受支持的语言,请运行以下脚本:
1 2 3 | import googletrans print(googletrans.LANGUAGES) |
在上面的示例中,使用关键字
当执行时,以上代码将列出所有受支持的语言名称及其速记符号。 这是输出的样子:
1 | {'af': 'afrikaans', 'sq': 'albanian', 'am': 'amharic', 'ar': 'arabic', 'hy': 'armenian', 'az': 'azerbaijani', 'eu': 'basque', 'be': 'belarusian', 'bn': 'bengali', 'bs': 'bosnian', 'bg': 'bulgarian', 'ca': 'catalan', 'ceb': 'cebuano', 'ny': 'chichewa', 'zh-cn': 'chinese (simplified)', 'zh-tw': 'chinese (traditional)', 'co': 'corsican', 'hr': 'croatian', 'cs': 'czech', 'da': 'danish', 'nl': 'dutch', 'en': 'english', 'eo': 'esperanto', 'et': 'estonian', 'tl': 'filipino', 'fi': 'finnish', 'fr': 'french', 'fy': 'frisian', 'gl': 'galician', 'ka': 'georgian', 'de': 'german', 'el': 'greek', 'gu': 'gujarati', 'ht': 'haitian creole', 'ha': 'hausa', 'haw': 'hawaiian', 'iw': 'hebrew', 'hi': 'hindi', 'hmn': 'hmong', 'hu': 'hungarian', 'is': 'icelandic', 'ig': 'igbo', 'id': 'indonesian', 'ga': 'irish', 'it': 'italian', 'ja': 'japanese', 'jw': 'javanese', 'kn': 'kannada', 'kk': 'kazakh', 'km': 'khmer', 'ko': 'korean', 'ku': 'kurdish (kurmanji)', 'ky': 'kyrgyz', 'lo': 'lao', 'la': 'latin', 'lv': 'latvian', 'lt': 'lithuanian', 'lb': 'luxembourgish', 'mk': 'macedonian', 'mg': 'malagasy', 'ms': 'malay', 'ml': 'malayalam', 'mt': 'maltese', 'mi': 'maori', 'mr': 'marathi', 'mn': 'mongolian', 'my': 'myanmar (burmese)', 'ne': 'nepali', 'no': 'norwegian', 'ps': 'pashto', 'fa': 'persian', 'pl': 'polish', 'pt': 'portuguese', 'pa': 'punjabi', 'ro': 'romanian', 'ru': 'russian', 'sm': 'samoan', 'gd': 'scots gaelic', 'sr': 'serbian', 'st': 'sesotho', 'sn': 'shona', 'sd': 'sindhi', 'si': 'sinhala', 'sk': 'slovak', 'sl': 'slovenian', 'so': 'somali', 'es': 'spanish', 'su': 'sundanese', 'sw': 'swahili', 'sv': 'swedish', 'tg': 'tajik', 'ta': 'tamil', 'te': 'telugu', 'th': 'thai', 'tr': 'turkish', 'uk': 'ukrainian', 'ur': 'urdu', 'uz': 'uzbek', 'vi': 'vietnamese', 'cy': 'welsh', 'xh': 'xhosa', 'yi': 'yiddish', 'yo': 'yoruba', 'zu': 'zulu', 'fil': 'Filipino', 'he': 'Hebrew'} |
基本用途
当然,Google Translate API的最基本用法是将单词或句子从一种语言翻译成另一种语言。 为此,我们必须从
1 | from googletrans import Translator |
接下来,您必须创建
1 | translator = Translator() |
创建Translator类对象后,您将把源语言中的文本作为参数传递给
1 | result = translator.translate('Mit? sin? teet') |
在上面的脚本中,我们将芬兰语文本传递给
让我们打印以上所有属性,看看我们得到什么输出:
1 2 3 4 5 | print(result.src) print(result.dest) print(result.origin) print(result.text) print(result.pronunciation) |
输出:
1 2 3 4 5 | fi en Mit? sin? teet What are you doing What are you doing |
输出显示源语言为芬兰语(fi),目标语言为英语(en)。 可以通过
在上面的示例中,我们没有指定源语言。 因此,Google Translate API会尝试检测源语言本身。 同样,我们也没有指定任何目标语言,因此,API将源语言转换为英语的默认语言。 但是,如果您想同时指定源语言和目标语言,该怎么办?
指定源语言和目标语言
实际上,在Google Translate API中同时指定目标语言和源语言非常容易。 这是仅用于传递源语言的代码:
1 | result = translator.translate('Mik? on nimesi', src='fi') |
仅添加目标语言时,必须添加
1 | result = translator.translate('Mik? on nimesi', dest='fr') |
您还可以同时传递源语言和目标语言:
1 | result = translator.translate('Mik? on nimesi', src='fi', dest='fr') |
现在让我们将芬兰语句子翻译成法语,然后打印源语言和目标语言以及翻译后的文本。 这次我们将指定源语言和目标语言。
1 2 3 4 5 6 7 8 | from googletrans import Translator translator = Translator() result = translator.translate('Mik? on nimesi', src='fi', dest='fr') print(result.src) print(result.dest) print(result.text) |
上面的代码将产生以下结果。
1 2 3 | fi fr Quel est votre nom |
短语翻译清单
还可以借助Google Translate API翻译一系列文本短语。 基本过程与上面讨论的相同。 您只需要将包含短语的列表作为参数传递给
让我们创建一个包含一些法语短语的字符串列表。
1 | sentences = ['Bienvenu', 'Comment allez-vous', 'je vais bien'] |
现在是时候调用
1 | result = translator.translate(sentences, src='fr', dest='sw') |
在上面的脚本中,源语言是法语,而目标语言是斯瓦希里语。
如果将短语列表传递给
在下面的脚本中,我们遍历
1 2 | for trans in result: print(f'{trans.origin} -> {trans.text}') |
屏幕上将显示以下结果。
1 2 3 | Bienvenu -> karibu Comment allez-vous -> Vipi wewe je vais bien -> Niko sawa |
翻译文字文件
您也可以通过Google Translate API翻译文本文档。 您要做的就是使用
第一步是在"读取"模式下打开文件:
1 | f = open('C:\\Users\\Khurram\\Desktop\\test.txt', 'r') |
您还可以使用
1 | if f.mode == 'r': |
接下来,您可以使用
我们还将打印
1 2 | contents = f.read() print(contents) |
这是文件内容的输出:
1 2 | We are going to translate this text file using Python. Subsequently, we will also translate it into French. |
如果要遵循我们的示例,请确保文本文件中包含上述内容。
我们已经确定Python正在访问和读取文本文件。 现在,我们将通过导入之前相同的旧
1 2 3 | from googletrans import Translator file_translate = Translator() |
下一步是将包含输入文本的
1 2 | result = translator.translate(contents, dest='fr') print(result.text) |
输出应如下所示:
1 2 | Nous allons traduire ce fichier texte en Python. Par la suite, nous le traduirons également en fran?ais. |
要将翻译后的文本写入同一文件或不同的文本文件,只需在写入模式(" w")中打开文件即可。 接下来,您需要调用
1 2 | with open('C:\\Users\\Khurram\\Desktop\\test_2.txt', 'w') as f: f.write(result.text) |
在上面的示例中,我们使用上下文管理器
结论
Google Translate是带有API的工具,可帮助您执行许多与翻译相关的功能。 我们仅通过上面的示例来说明问题。 我们鼓励您练习API,并学习和了解如何在实际应用中使用它。