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