英語の問い合わせを自動翻訳する「多言語翻訳対応お問合せフォーム」に API 使って無料で改造


最近海外からの問い合わせが増えて。
英語での対応が増えて英語に苦手意識のある人たちの疲弊してる感あるので、英語のお問合せフォームを改良して社内の負担を減らす。
前に名刺クラウドサービス Sansan に自動的に顧客情報を反映させる改造をしたお問合せフォームに追加で改良を加えていく。いやなんかひさびさ WEB っぽいことやっちゃうなぁ。WEB作るの 3年ぶりくらいじゃないかなぁ。


(参考)お問い合わせフォームに入力された内容を、名刺管理DB sansan に自動登録し連携する
とりあえず外国語からの自動翻訳機能を追加しようと思います。
お問合せフォームに書かれた英語が、自動で日本語で送られてきたら理解も速くて苦手意識がある人も迅速に対応できますね。
Google 翻訳を利用すれば簡単かなと思っていたら、利用には有料の壁があるようなので、マイクロソフトが公開している翻訳サービスを利用してみようと思います。
https://www.microsoft.com/ja-jp/translator/
うん。ちょっと利用が不安になる日本語がページに使われていますね!
利用制限はあるようですが、使ってみてよければお金を払ってでも使ってみたくなるのかも。
API の説明は下記にあります。
ネット上にも情報がぱらぱらとあるのですが、バージョンが新しくなって仕様も変わるので、カオスになっていますね。
■Translator Text API v3.0
https://docs.microsoft.com/en-us/azure/cognitive-services/translator/reference/v3-0-reference
左下に翻訳ボタンがあって日本語にできるのですが、カタカナの多いページだとわちゃわちゃして何か読みにくい・・・。
gitにサンプルもあるので、システム素人にも分かりやすい。僕にもできました。
Microsoft Azure のサービスに登録が必要なので、まずはアカウントを作ります。
先ほどの Azure のサイトの真ん中の緑ボタン「Start free」を押して、アカウントを登録します。
他のクラウドサービスもそうなのですが、無料トライアルがある関係で電話番号の登録とクレジットカードの登録が必要です。期間内に一気に Azure の勉強もしたほうがいいですね。
本人確認のためにクレジットカードを登録させようとするサービスが多いですが、お金を入れていない口座を作ってそことクレジットカードを紐づけると若干安心ですね。

Azure Portal にログインして、「リソースの作成」を押します。
Marketplace の検索窓に Translator Text と入力して、出てきたら四角い青い「作成」ボタンを押す。
適当な名前を決め、価格レベルは価「F0」を選択、リソースグループは適当に作って選択します。
なお、無料トライアルだと Translator Text は1つしか契約できず、以降 F0 が選択できなくなっていました。

「キー」を選択してキーを得ます。この1行だけあれば、API を利用できます。
API を利用するプログラム部分は、ネット上にも参考になる情報がたくさんあります。
↓これとか詳しくて分かりやすい
https://tanidaiz.com/microsoft-translator-text-api-の使い方-php/
作りながらハマったところを自分メモ。
お問合せフォームでヘッダが自動的に作られていることもあり、file_get がうまく動かない。こういう場合 PHP のバージョンかなと思っていたのですが、レンダリング関連ということもあるのですね。
curl で同等の機能を作るという回避策があるようなので、これを使ってサンプルプログラムを改造します。
関数を作っている実例を紹介しているページがあり、簡単なのでこれを採用。
https://blog.mach3.jp/2010/12/21/use-curl-for-filegetcontents.html
//file_get を curl 使って実行する手法に入れ替える
$url = “https://api.microsofttranslator.com/v2/http.svc/Translate”;
$data = “?appid=”.$key.”&text=”.$text.”&to=ja”;
$Inquiry_jpn = curl_get_contents($url.$data, 120);
実行されるけどレスポンスエラーになる・・・。
エラーにはフォーマットが悪いと表示されるので、ポストする値を整頓する。
なぜか空白が認識されていないようなので解決策が無く悩んだが、検索の仕方で単語と単語をプラス記号でつなぐ記述方法があったこと思い出して、空白を「+」に変換」、改行コードを消去する。
$text = $Inquiry;
$text = str_replace(array(“\r\n”, “\r”, “\n”), ”, $text);//改行を無くす
$text = str_replace(array(” “, “ ”), “+”, $text);//空白
API が正しく翻訳結果を返すのが確認できたので、社内に送付する問い合わせメールのみ日本語に変換する仕組みを入れていく。
「管理者宛送信メールボディ」に日本語の表題を表示。
$adminBody .=”【名前】 “.$_POST[‘FirstName’].” “.$_POST[‘LastName’].” 様\n”;
$adminBody .=”【メール】 “.$_POST[‘Email’].”\n”;
・・・
プルダウンやチェックボックスの内容など定型文も、あらかじめ日本語に置換して読みやすくしておく。
$interested_jpn = str_replace(‘Product’, ‘製品に興味’, $interested_jpn);
$interested_jpn = str_replace(‘Service’, ‘サービスに興味’, $interested_jpn);
翻訳した問い合わせ内容を翻訳内容をメールに表示
$adminBody .=”【お問い合わせ内容(翻訳)】 \n”.$Inquiry_jpn.”\n\n”;
これで、英語などのお問合せ内容が、日本語に翻訳されて社内に届くようになります。
試してみたところ、英語だけではなく中国語やタイ語など、多言語での翻訳が可能でした。特に中国語の変換はなかなか正確。
ただ文字コードの問題もあり、サーバによっては難易度高いかもしれないですね。

2018/05/17
お問い合わせフォームに入力された内容を、名刺管理DB sansan に自動登録し連携する
ネット探したら実例無かったので、PHP分からない自分でカスタマイズ。よく使われているフォームは「PHP工房」のメールフォームとのことだったので、これを改造する。IT でやる時には、「お問い合わせフォーム」って必要な項目を提案して、あとコストに合った便利な機能をつけるかとか、デザイン的には途中離脱の…


2018/02/06
英会話教室に通い始めました
前の会社で英語ではなく英会話の必要性を嫌というほど感じていたのですが。チャンスがあったこともあり、英会話を習うことにしました。暗記の必要性が無いので苦しくなく面白いんですけど、伝えたいことが言葉に出ないジレンマがずっと続くのでじたばたしている日々です。僕はわりと自分でなんとかできてしま…


コメント

タイトルとURLをコピーしました