::mayukoの小ネタ 50行で作ったかんたん翻訳機
投稿者 ::mayuko
ちょっちmayukoの小ネタということで、なんかスクリプトとか書くことになりました:)
なんかいいのないかなぁ?と・・・
んでこんなのどかな?
お題:たった50行のLSLで作るかんたん翻訳機!
*ブログの勝手な改行は抜きで50行だよ:)
外部サーバのPHPとか、余計なサーバを通さないで
SLから直接GoogleさんのAjaxapiに問い合わせさせてるので
レスポンスは軽いと思います。
でも、このslingのブログのためのネタとして作ったので、
余計な機能はなんにもありません。そこらへん許してねw
この翻訳はJavaScript用に公開してるgoogleさんのサービスなのですが
PHPとかrubyとかのスクリプトでも使えるようなサービスもあったりします。
ならLSLで書いちゃえばぁ?
って感じでちょっち書いてみたw
このスクリプトはパブリックライセンスということで著作権は放棄です。
好きに使ってくださいね:)
で、こんな感じw
*ホントはきれいにならんだコード書きたいのだけど、preタグ書いちゃうと
横にはみ出しちゃうので、左にぺたっとくっついちゃうのは許してね;;
key keyOwner;
integer listenDialog;
integer listenChat;
string ajaxURI_F = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=";
string ajaxURI_S = "&langpair=";
list listButton = ["英和","和英"];
list listStr = ["en%7Cja","ja%7Cen"];
string strDialog = "翻訳するのは日本語?英語?\n/7でしゃべってね:)";
key keyRes;
string langPair;
default
{
on_rez(integer start_param)
{
llResetScript();
}
state_entry()
{
keyOwner =llGetOwner();
}
touch_start(integer total_number)
{
listenDialog =llListen(500,"",keyOwner,"");
llDialog(keyOwner,strDialog,listButton,500);
}
listen(integer channel, string name, key id, string message)
{
if(channel ==500){
llListenRemove(listenDialog);
integer indexnum = llListFindList(listButton,[message]);
langPair = llList2String(listStr,indexnum);
listenChat =llListen(7,"",keyOwner,"");
}else if(channel ==7){
llListenRemove(listenChat);
string requestMessage =llEscapeURL(message);
keyRes = llHTTPRequest(ajaxURI_F + requestMessage + ajaxURI_S + langPair,[],"");
}
}
http_response(key request_id, integer status, list metadata, string body)
{
if(status ==200){
integer cherNum = llSubStringIndex(body,"translatedText");
integer cherNum_end = llSubStringIndex(body,"responseDetails");
string response = llGetSubString(body, cherNum + 17, cherNum_end - 6);
llOwnerSay(response);
}else{
llOwnerSay((string)status);
}
}
}
※preタグにスクロールバーで対応するようにしました。
コードだけ書き込んじゃいましたが、これを教材にスクリプトってどんな感じで
書くのん?って言う解説なんかをしてみよーかと思います:)
関連する投稿
- mayukoの小ネタ イベントって?
- mayukoの小ネタ 計算の方法?演算子について
- mayukoの小ネタ 変数ってなに><
- アイテムキャンプのイスの説明でーす^^
- mayukoの小ネタ スクリプトの構造ってこんなになってる:)
セカンドライフ土地レンタルのSLingトップへ戻る




















