Google Apps Script

翻訳するスクリプトを作成

まず追加したソースがこちら。

新規プロジェクトを作成し、「GoogleTranslate」と名前を付けて保存しました。

プロジェクトの作成等はこちらの記事を参照

//GETテスト関数
function getTest() {
  var e = {'parameter':{
    'source': 'ja',
    'target':'en',
    'text':'<h4>今日の天気はいい天気</h4>',
    'type':'html'       
  },
  };
  doGet(e);
}
//POSTテスト関数
function postTest() {
  var e = {'parameter':{
    'source': 'ja',
    'target':'en',
    'text':'<h4>今日の天気はいい天気</h4>'}
  };
  doPost(e);
}
//POSTメソッド
function doPost(e) {
  if(!e) {
    body = {
      code: 400,
      text: "Bad Request"
    };
  }
  //POSTパラメータ
  var p = e.parameter;    
  //  LanguageAppクラスを用いて翻訳を実行
  var translatedText ='';  
  if(p.type){
    translatedText = LanguageApp.translate(p.text, p.source, p.target,{'contentType': p.type});     
  } else {  
    translatedText = LanguageApp.translate(p.text, p.source, p.target);
  }  
  // レスポンスボディの作成
  var body;
  if (translatedText) {
    body = {
      code: 200,
      text: translatedText
    };
  } else {
    body = {
      code: 400,
      text: "Bad Request"
    };
  }
  // レスポンスの作成
  var response = ContentService.createTextOutput();
  // Mime TypeをJSONに設定
  response.setMimeType(ContentService.MimeType.JSON);
  // JSONテキストをセットする
  response.setContent(JSON.stringify(body));
  
  return response;
}
// Getメソッド
function doGet(e) {
  if(!e) {
    body = {
      code: 400,
      text: "Bad Request"
    };
  }
  var p = e.parameter;
  var translatedText ='';  
  if(p.type){
    translatedText = LanguageApp.translate(p.text, p.source, p.target,{'contentType': p.type});     
  } else {  
    translatedText = LanguageApp.translate(p.text, p.source, p.target);
  }  
  var body;
  if (translatedText) {
    body = {
      code: 200,
      text: translatedText
    };
  } else {
    body = {
      code: 400,
      text: "Bad Request"
    };
  }  
  // レスポンスの作成
  var response = ContentService.createTextOutput();
  // Mime TypeをJSONに設定
  response.setMimeType(ContentService.MimeType.JSON);
  // JSONテキストをセットする
  response.setContent(JSON.stringify(body));
  
  return response;
}

各処理について

「doGet」は、Google Apps ScriptでGETパラメータを受け取るための関数名のようです。

POSTした場合は、「doPost」関数を使って受け取ります。

このままではデバッグできないので、「getTest」関数など作成してテストを行います。

 

翻訳するための引数について

キー
source 翻訳前のテキスト言語を指定します。 例:ja
target どの言語に翻訳するか指定します。 例:en
text 翻訳したい文章を指定
type HTMLを翻訳する場合は、”html”を指定。

省略時は、通常の文章として処理します。

外部から利用するための設定

「公開」→「ウェブアプリケーションとして導入」を開きます。

下記図のように、「Execute the app as:」と「Who has access to the app:」を設定します。

この設定を行うことで、外部アプリケーションから利用することができます。

Google Apps Script公開手順

 

Google Apps Script公開手順

 

PHPから作成したAPIを利用する

下記コードの「発行されたURL」部分に、上記で発行されたURLを指定することでPHPから翻訳機能を利用できるかと思います。

<?php

	$url = '発行されたURL';
	$palam=array(
		'text'=>'今日はいい天気です。',
		'source'=>'ja',
		'target'=>'en',
		'type'=>'html'
	);
    
	$ch = curl_init();
	$headr = array();
	$headr[] = 'Content-Type: application/json;';
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($palam));

	//API実行
	$result = curl_exec($ch);

	curl_close($ch);

	$rec = json_decode($result,true);
	echo $rec['text'];
	
?>

まとめ

海外用のサイトを作成するにあたり、どうしても翻訳機能を利用したいことがあってGoogle Apps Script」の翻訳機能を利用してみました。

速度的には遅いかもしれませんが、手動で翻訳するよりは効率的に翻訳できるかと思います。

By にど寝

もともと名古屋でシステムエンジニアをしてましたが、現在は地元に帰省してネットショップの社内システムエンジニアをしてます。  

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です