最初、claude.ai に作成してもらいました。ai が作成するチャットのタイトルが英語で困っていたので。
01.
javascript:(
function
(){
02.
var
selectedText = window.getSelection().toString();
03.
if
(selectedText) {
04.
fetch(
'https://api.mymemory.translated.net/get?q='
+ encodeURIComponent(selectedText) +
'&langpair=en|ja'
)
05.
.then(response => response.json())
06.
.then(data => {
07.
var
translatedText = data.responseData.translatedText;
08.
document.execCommand(
'insertText'
,
false
, translatedText);
09.
})
10.
.
catch
(error => console.error(
'Error:'
, error));
11.
}
else
{
12.
alert(
'テキストを選択してください。'
);
13.
}
14.
})();
これで動作はしていますが、api.mymemory.translated.net と言う良く詳細の解らない API が使われているので、
同じ事をもう一度 claude.ai に聞いてみると、Google の API で返して来ました。
しかし、今度はコードがおかしくてうまく動きませんでした。
原因究明するより、動作しているほうのコードに、主体の API を転記しました。
01.
javascript:(
function
(){
02.
var
selectedText = window.getSelection().toString();
03.
if
(selectedText) {
04.
fetch(`https:
//translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=ja&dt=t&q=${encodeURIComponent(selectedText)}`)
05.
.then(response => response.json())
06.
.then(data => {
07.
var
translatedText = data[0].map(item => item[0]).join(
''
);
08.
document.execCommand(
'insertText'
,
false
, translatedText);
09.
})
10.
.
catch
(error => console.error(
'Error:'
, error));
11.
}
else
{
12.
alert(
'テキストを選択してください。'
);
13.
}
14.
})();
1回目で動いたのは運が良かったと言わざるを得ないので、今後は数回。できれば AI も変えて試すのがいいと思いました。