秀丸マクロでGoogle翻訳等の結果を見るにNo.07209
rosegardenyk さん 13/03/15 06:44
 
今日は、マクロ初心者の rosegardeyk です。また、無茶苦茶なことして悩んでます。

前に教えていただいたIKKIさんのマクロ Xlate_日本語=英語@LSD.mac では LSD辞書
は HttpGet ではなく HttpPost を使って引くようになっていますが、
"http://lsd.pharm.kyoto-u.ac.jp/weblsd/c/begin/%E9%85%B5%E7%B4%A0" (秀丸上
からなら引用符で囲んで "http://lsd.pharm.kyoto-u.ac.jp/weblsd/c/begin/酵素"
 でも可)をダブルクリックするとLSD辞書引きの結果:酵素[%E9%85%B5%E7%B4%A0]
→Enzymeがでるので HttpGet を試したところ 下記マクロのように HttpPost を使わ
なくても結果が得られます。

Google翻訳でも"http://translate.google.co.jp/#ja/en/%E9%85%B5%E7%B4%A0" (秀
丸上なら引用符で囲んで "http://translate.google.co.jp/#ja/en/酵素" としてU
TF8変換しなくても結果をブラウザーで見ることができます)をダブルクリックすると
翻訳結果(Enzyme)が出るので, 同じように HttpGet が使えると思ったのですが下
記マクロのように<title>Error 404 (Not Found)!!1</title>とエラーになってしま
います。

HttpGetとHttpPost のどちらを使っても構わないのですがどうしたら、Google翻訳の
結果を秀丸マクロで取り込めることができるでしょうか?
よろしくご教示ください。
ちなみに、hidemarnet.explorer でもうまく結果が見られないです。


ところで、IKKIさんのマクロXlate_日本語=英語@Yahoo!翻訳.mac は うまく動いてい
て、とても役に立ってます。こちらも HttpPost を使っていますね。
Livedoor翻訳もYahoo翻訳と同じCross Languageの翻訳エンジン使ってますが
"http://livedoor-translate.naver.jp/text/#ja|en|%25E9%2585%25B5%25E7%25B4%25
A0%250A" (秀丸上なら"http://livedoor-translate.naver.jp/text/#ja|en|酵素"も
可)でブラウザーに翻訳結果を表示できるのですが、やはり HttpGet では下記マクロ
のようにエラーになってしまいます。HttpPostでやるのしょうか?いろいろ試したけ
れどYahoo翻訳とはパラメータが違うようでうまくいきません。<title>404エラー:
指定されたページは存在しません。 - NAVER</title>がでます。 こちらもご教示い
ただければ大変助かります。
//マクロ例////////////////////////////////////////////////////////
MAIN:
$$uri = "http://lsd.pharm.kyoto-u.ac.jp/weblsd/c/begin/%E9%85%B5%E7%B4%A0";/
/LSD辞書で"酵素"を引く
call HttpGet $$uri;
question "「はい」で次の Google翻訳に進む。\n「いいえ」LSD辞書で「酵素」を引
いた結果の大きなHTMLをnewfileに書き込み終了する。";
if (!result) {newfile; insert $$return; endmacro;}

$$uri = "http://translate.google.co.jp/#ja/en/%E9%85%B5%E7%B4%A0";//Google翻
訳で"酵素"を英訳する
call HttpGet $$uri;
question "Google翻訳 はい」で次の Livedoor翻訳へ\n\n\n$$return = " + $$retu
rn; if (!result) {newfile; insert $$return; endmacro;}

$$uri = "http://livedoor-translate.naver.jp/text/#ja|en|%25E9%2585%25B5%25E7
%25B4%25A0%250A";//Livedoor翻訳で"酵素"を英訳する
call HttpGet $$uri;
question "Livedoor翻訳 $$return が大きいので、「はい」で終了\n「いいえ」でn
ewfile  に書き込み可です"; if (!result) {newfile; insert $$return; endmacro;}
END:
endmacro;
HttpGet:
 ##http = createobject("Msxml2.XMLHTTP");
 if (!##http) ##http = createobject("Microsoft.XMLHTTP");
 if (!##http) return "";
 callmethod ##http, "Open", "GET", $$1, 0;
 callmethod ##http, "Send";
 $$resp = getpropstr(##http, "ResponseText");
 releaseobject ##http;
return $$resp;

[ ]
RE:07209 秀丸マクロでGoogle翻訳等の結果No.07210
秀まるお2 さん 13/03/15 13:33
 
 google翻訳ですが、昔僕がそれ用のマクロをアップロードしたことがありまし
たが、googleさんの方で仕様変更があって使えなくなりました。なので今はライ
ブラリからも削除しています。

 google翻訳は、一時期、無料でのサービスを終了して有料のみとなったか、ま
たはAPIから呼び出して使う場合は有料のみになったか、たしかそんなことがあ
って、秀丸マクロからは使えなくなりました。

 最近はまたいろいろ仕様変更があって使えるかもしれないですけども…。とり
あえず一時期そういうことがあったことは確かです。

 Hidemarnet Explorerでリクエストしてダメなら、少なくともHttpGetではダメ
ってことになるのかなぁと思います。

 それ以上は、実際にマクロを作って試行錯誤してみないと分からない、レベル
の高い話になるかと思います。

[ ]
RE:07210 秀丸マクロでGoogle翻訳等の結果No.07211
rosegardenyk さん 13/03/15 17:38
 
秀まるお2さん、お返事ありがとうございます。
>googleさんの方で仕様変更があって使えなくなりました。なので今はライブラリか
>らも削除しています。
秀丸からのGoogle翻訳結果取り込みは難しそうですね。

もうひとつ、大部分Google翻訳と同じでごくたまにそれ以上の良い訳を出すMyMemor
y翻訳サイトがあります。
http://mymemory.translated.net/english/

やはり下記の結果URIをWクリックするとブラウザーに結果が表示されるので
"http://mymemory.translated.net/s.php?q=%E9%85%B5%E7%B4%A0%E3%81%8C%E8%B6%B3
%E3%82%8A%E3%81%AA%E3%81%84%EF%BC%81&sl=ja-JA&tl=en-GB&sj=all&of=all"
下記マクロでHttpGetでやるとエラーにはならないのですが、他の訳例は全ては取り
込まれているのに肝心の英訳Enzyme is not enough!は見当たりません。多分そのよ
うな仕様なのでしょう。

しかしこちらはMyMemory: API technical specifications ("http://mymemory.trans
lated.net/doc/spec.php")にAPIを公開しています。
Get
Free, anonymous usage is limited to 100 requests/day.
無料・匿名の場合の使用は1日100回までとあり、私としてはこれで十分な回数です。

Call example:
http://api.mymemory.translated.net/get?q=Hello World!&langpair=en|it

次にParameter の説明が詳しく出ています。:…

悲しいことに私は「APIって何のこと?」というIT技術レベルなので、いろいろ
上例とか、下例のように日英用に変形して、HttpGetで試してもうまくいきません。
http://api.mymemory.translated.net/get?q=%E9%85%B5%E7%B4%A0%E3%81%8C%E8%B6%B3%E3%82%8A%E3%81%AA%E3%81%84%EF%BC%81&langpair=ja|en

秀丸マクロから API とかいうものを動かす方法を教えていただますでしょうか? 

//マクロ例//////////////////////////////////////////////////////////////////
//////////////////////////////////////
MAIN:
$$uri = "http://mymemory.translated.net/s.php?q=%E9%85%B5%E7%B4%A0%E3%81%8C%
E8%B6%B3%E3%82%8A%E3%81%AA%E3%81%84%EF%BC%81&sl=ja-JA&tl=en-GB&sj=all&of=all
";//MyMemory翻訳で"酵素が足りない[%E9%85%B5%E7%B4%A0%E3%81%8C%E8%B6%B3%E3%82
%8A%E3%81%AA%E3%81%84%EF%BC%81]"を英訳する
call HttpGet $$uri;
question "MyMemory翻訳 $$return が大きいので、「はい」で終了\n「いいえ」でn
ewfile  に書き込み可です";
if (!result) {newfile; insert $$return; endmacro;}
END:
endmacro;
HttpGet:
 ##http = createobject("Msxml2.XMLHTTP");
 if (!##http) ##http = createobject("Microsoft.XMLHTTP");
 if (!##http) return "";
 callmethod ##http, "Open", "GET", $$1, 0;
 callmethod ##http, "Send";
 $$resp = getpropstr(##http, "ResponseText");
 releaseobject ##http;
return $$resp;

[ ]
RE:07211 秀丸マクロでGoogle翻訳等の結果No.07215
rosegardenyk さん 13/03/17 03:05
 
>秀丸マクロから API とかいうものを動かす方法を教えていただますでしょうか? 
試行錯誤の結果何とか秀丸からもできました。お騒がせしました。

[ ]