ブラウザ上で変更可能な選択した文字列を英語から日本語に翻訳するブックマークレット

最初、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 も変えて試すのがいいと思いました。