[PHP]DeepLのAPIでhtmlのタグを維持したまま翻訳してみる


DeepLという翻訳サービスではAPIも提供されていて、制限はあるのですが、無料枠も用意されている便利でありがたいサービスなので、重宝してます。

このウェブサイトでもDeepLのAPIを利用して、本文などを翻訳してます。

DeepLのAPIのおすすめポイントは無料で翻訳できて、APIの指定でhtmlタグを崩さずに翻訳できるんですよね。

以下がサンプルのコードです。

$param = array(
'auth_key' => 'APIキー',
'text' => '<p>雨</p>',
'target_lang' => 'EN',
'tag_handling' => 'xml',
'source_lang' => 'JA'
);
$curl = curl_init("https://api-free.deepl.com/v2/translate");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$res = curl_exec($curl);
curl_close($curl);

$re = json_decode($res, true);
echo $re["translations"][0]["text"];

まず、DeepLのAPIサイトに登録して、APIキーを取得します。

auth_keyにそのAPIキーをコピペ。

textには翻訳したい言葉を入れます。

target_langは翻訳したい言語。上記のコードでは英語に翻訳する設定です。

‘tag_handling’ => ‘xml’は、htmlを扱うための設定です。

source_langには翻訳元の言語を設定していますが、無くても問題無さそうでした。

target_langの中国語でハマったんですが、簡体字はZHで、台湾などで使用されている繁体語はZH-HANTを設定するようです。

それでは、今回はここまで!


関連性の高い記事