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