使用 Python 中的 DeepL Translator(第 1 部分)

在本文中,我们将在第一部分和第二部分中介绍如何使用 DeepL 翻译 API,并介绍字符串翻译和文件翻译。
* 假定您具备 Python 和 Linux 的基本知识。

另请参阅原始手册
https://www.deepl.com/en/docs-api

Python 使用的是 3.9。
API 规范自 2022 年 7 月起生效。 请注意这一点。
要使用 API,请注册为用户并输入访问密钥 (auth_key
你需要得到它。

在本文中,我们将它称为 [authKey] ,因此请将其替换为您的访问密钥。
稍后显示的文档 ID 和文档密钥字符串也表示为 [documentID] [documentKey]。

翻译标记字符串

第一步是翻译字符串。
将带有 xml 标记(html 标记)的日语翻译成英语(美国)。

手册中的代码示例说明了 HTTP 请求的格式以及如何在 Linux 中使用它
curl 有两种形式,它是一个标准的命令工具。
我们来看看 curl,它很容易尝试。

日语字符串 “例句: <br /><span style=”font-size:1.2em“ >你好,世界 </span>
翻译成英语 (US):

$ src='例句:<br /><span style=“font-size:1.2em”>你好,world</span>'
$ auth_key=[authKey]
$ curl https://api.deepl.com/v2/translate \
$ -d auth_key=${auth_key} \
$ -d text=${src} \
$ -d target_lang=en-us \
$ -d tag_handling=xml

 

此 URL 适用于付费版本。 有关免费版的 URL,请参阅手册
由于我们正在处理 xml 标记,因此我们还在请求中指定了 tag_handling
您不需要指定源语言,但在这种情况下,它将被自动检测。
在本文中,省略了执行结果。 请在实际检查时继续阅读。
如果你用 Python requests.post 编写它,你将使用 () 得到以下内容:
(如果您没有请求,请安装它。

import requests
import json

def get_key() 的:
返回 open('key.txt').read().rstrip()

def translate_xml(来源):
”’
翻译 XML 标记字符串
在 Python 中编写 curl 命令
”’
url = 'https://api.deepl.com/v2/translate'
标头 = dict()
headers['内容类型'] = 'application/x-www-form-urlencoded'
数据 = dict()
data['auth_key'] = get_key()
data['text'] = 源
data['target_lang'] = 'en-us'
data['tag_handling'] = 'xml'

res = requests.post(url, headers=headers, data=data)
res_text = res.text
res_data = json.loads(res_text)
tgt = res_data['翻译'][0]['文本']
返回 tgt

src = '例句: <br /><span style=“font-size:1.2em”> 你好, world</span>'
tgt = translate_xml(来源)
打印 (tgt)

 

避免在源代码中写入 access key 字符串
它读取并使用存储在文本文件 key.txt 中的内容。
res_text 是从 DeepL 服务器接收的结果,它是一个 json 格式的字符串。
使用 json.loads() 来 dict 它,然后提取翻译结果。
本文的目的之一是将手动 curl 命令替换为
这是为了展示一个用 Python 表达的例子。
如果你将两者进行比较,你可以感受到它。

这就是本文的全部内容:

- 我使用 DeepL 的 API 来翻译字符串。
下次,我们将使用 DeepL 的 API 来翻译字符串文件。

感谢您的阅读。