编辑:DeepL Python 库
MrGuemez部分正确,请求现在只通过官方的 DeepL api 密钥。话虽如此,他们有付费和免费版本。
DeepL 免费 API 有 500,000 个字符/月。限制,而付费版本的固定费用为 5 美元/月,另外还有 20 美元/20,000,000 个字符。如果您担心在付费版本中超出成本,DeepL 提供了一个成本控制设置,您可以设置该设置以确保您不会超过某个货币上限。现在不仅有免费版本的 API,还有官方的 DeepL Python 库:
运行一个简单的
pip install deepl
你可以很容易地开始:如果你不关心你的 auth_key 的硬编码,你可以这样声明一个翻译器对象:
translator = deepl.Translator("DEEPL_AUTH_KEY")
如果您不想对其进行硬编码,则可以通过这种方式将其设置为环境变量translator = deepl.Translator(os.getenv("DEEPL_AUTH_KEY")):)
然后,您可以像这样轻松地翻译字符串文本:
# (Taken from the documentation)
# Translate text into a target language, in this case, French
result = translator.translate_text("Hello, world!", target_lang="FR")
print(result) # "Bonjour, le monde !"
和多个这样的字符串:
# (Taken from the documentation)
# Translate multiple texts into British English
result = translator.translate_text(["お元気ですか?", "¿Cómo estás?"], target_lang="EN-GB")
print(result[0].text) # "How are you?"
print(result[0].detected_source_lang) # "JA"
print(result[1].text) # "How are you?"
print(result[1].detected_source_lang) # "ES"
如果您需要翻译完整的文件,您也可以将它们传递给:
translator.translate_document_from_filepath(
"path/to/write/to/WhatABeautifulDay.docx", # Translated File
"path/to/original/CheBellissimaGiornata.docx", # Original File
target_lang="EN-US"
)
顺便说一句,DeepL“EN”选项已被弃用,您现在必须在请求中使用“EN-US”或“EN-GB”。
过时(仍然适用于翻译字符串)
要在 python 中使用 api 键,您必须这样构造一个查询:
import requests
raw_returned_data = requests.post(
url="https://api.deepl.com/v2/translate",
data={
"target_lang": "EN",
"auth_key": auth_key, # where auth key is your api key
"text": data # you can pass in a hard coded string or variable
},
)
并查看响应:
returned_data = raw_returned_data.json()["translations"][0]["text"]