2014.06.20
PHPでMicrosoft Translate APIの翻訳機能を使ってみる
photo credit: Robert Scoble via photopin cc
レディース・アンド・ジェントルメン!どうもOsamuです。
以前とある外国人向けのWebサイトを作る事となりました。外個人向けの、という事はもちろん英語です。高校時代バスケ部でアメリカ人2人、ロシア人1人とともに学生生活を過ごした私。しかし、3人とも日本語ペラペラでした。困ったものです。
という事で英語力の乏しい私は、機械翻訳APIを活用して自動的に翻訳してもらう事を決意したのでした。
機械翻訳のAPIは2つあります。GoogleとMicrosoftです
photo credit: Michael Kappel via photopin cc 尚、機械翻訳APIは2つあります。Google TranslatとMicrosoft Translateです。どちらかと言うと翻訳といえばGoogleの方が有名でしょうか。 しかし、Google Translate APIは有料です。使うにはお金が必要となります。Microsoft Translate APIは月20万文字までの翻訳利用であれば無料です。 又、他の制限について問合せてみましたが、2014年6月20日時点ですとアメリカのMicrosoftより以下のような制限があると回答を頂きました。 ・1時間4000万文字まで ・要求の数に制限はなしWindows Azure Marketplaceでまずは無料登録
まず使うにはWindows Azure Marketplaceに無料登録をする必要があります。200万文字の無料に契約しましょう! Windows Azure Marketplace - Microsoft Translator登録したらPHPのプログラムを書いてみる
では簡単な翻訳プログラムを書いてみましょう!以下のようなPHPファイルを作成します。<?php const APPID = 'your APPID'; $text = '彼はベンですか?いいえ彼はベンではありません。'; $to = 'en'; $ch = curl_init('https://api.datamarket.azure.com/Bing/MicrosoftTranslator/v1/Translate?Text=%27'.urlencode($text).'%27&To=%27'.$to.'%27'); curl_setopt($ch, CURLOPT_USERPWD, APPID.':'.APPID); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $result = explode('<d:Text m:type="Edm.String">', $result); $result = explode('</d:Text>', $result[1]); $result = $result[0]; echo $text." -> ".$result; ?>参考にしたページ:Microsoft Translatorに登録。クラウドを利用して翻訳プログラムを簡単に作る。
コマンドで出力
実際にまずはコマンドラインで作成したPHPファイルを実行してみましょう。 こんな感じでしっかりと翻訳してくれます。# php tran.php 彼はベンですか?いいえ彼はベンではありません。 -> He is Ben? No he is not Ben.