[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を設定するようです。
それでは、今回はここまで!



![[PHP]Steam Web APIでゲーム情報を取得してみる](https://kuroko-labo.com/wp/wp-content/themes/kuroko3/images/noimage.png)