ニュース・コラム

この記事ではDeepL翻訳のAPIの使い方を第1回、第2回と分けて、文字列の翻訳とファイル翻訳についてご紹介します。

※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 Request のフォーマットと、それをLinuxの
定番コマンドツールである curl にしたものの2つの形式が記載されています。
手軽に試すことのできる curl の方を参考に見て行きます。

日本語文字列「例文:<br /><span style=”font-size:1.2em”>こんにちは、世界</span>
を英語(米)に翻訳したい場合は次のようになります:

 

$ src='例文:<br /><span style="font-size:1.2em">こんにちは、世界</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() を使って次のようになります:
(requests がなければインストールしてください)

 

import requests
import json

def get_key():
return open(‘key.txt’).read().rstrip()

def translate_xml(src):
”’
xmlタグ付き文字列の翻訳
curlコマンドをpythonで書く
”’
url = ‘https://api.deepl.com/v2/translate’
headers = dict()
headers[‘Content-Type’] = ‘application/x-www-form-urlencoded’
data = dict()
data[‘auth_key’] = get_key()
data[‘text’] = src
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[‘translations’][0][‘text’]
return tgt

src = ‘例文:<br /><span style=”font-size:1.2em”>こんにちは、世界</span>’
tgt = translate_xml(src)
print(tgt)

 

アクセスキーの文字列は、ソースコードに書くのを避けて

テキストファイル key.txt に格納したものを読み込んで使っています。
res_text がDeepLのサーバから受け取った結果で、json形式の文字列です。
json.loads() を使っていったん dict にしてから、翻訳結果を取り出します。
この記事の目的のひとつは、マニュアルのcurlコマンドを
Pythonで表現する例を示すことです。
両者を見比べると、感じがつかめると思います。

 

以上、この記事では:

・DeepLのAPIを使用して、文字列を翻訳しました。

次回はDeepLのAPIを使用して、文字列ファイル翻訳をします。お楽しみに!

お読みいただきありがとうございます。

お問合せ・お見積り依頼や
無料お試しはこちら

販売代理店様募集!

お電話でのお問い合わせ

【東日本】 03-6705-5720

【西日本】 06-6628-8880

受付時間/月~金 9:00~18:00(祝日を除く)