(2021年5月13日追記) クリックタイミングによってdeeplウインドウが開くにくい問題を修正しました。
(2020年12月26日追記) Kindle Cloud Readerの仕様変更により発生していたエラーに対処しました。旧版はgistに置いてあります。
(2020年3月31日追記) ニックさんにコメントいただいた内容で、コードがよりロバストになりました!ありがとうございました。
最近日本語対応したDeepL Translator、確かにgoogle翻訳に比べて圧倒的に正確かつロバストな結果を返してくれます。
https://www.deepl.com/translator
以前このブログでは、ブラウザで読むKindleサービスであるKindle Cloud Readerをgoogle翻訳に対応させるブックマークレットを公開しました:
これはKindle Cloud Readerがコピー対策のためにクリップボードへのコピーを無効にしているためにgoogle翻訳などのブラウザ拡張が使えなくてこまることへの対処でした。今回DeepL翻訳が最高であることがわかったので、DeepL版のブックマークレットも公開します。
追加方法は以前と同じで、まずはこのページで良いのでchromeならURLバーの星型をクリックしてブックマークを作成、場所はブックマックバーが良いでしょう。そのまま「その他」をクリックしてブックマークの編集画面を開き、「URL」の中をすべて削除して以下のスクリプト全文をコピペします。
javascript: (function () {
let w = null;
let kDoc = null;
let kObj = null;
let prevText = "";
let separateElement;
let translateElement;
if (typeof window.KindleReaderUI !== 'undefined') {
w = window;
} else if (window.length) {
for (let i = 0; i < window.length; i++) {
if (typeof window[i].KindleReaderUI !== 'undefined') {
w = window[i];
break;
}
}
}
if (typeof w === 'object') {
kObj = w.KindleReaderUI;
kDoc = w.document;
let sId = null;
let eId = null;
if (typeof kObj.ACRExtensions === 'undefined') {
kObj.ACRExtensions = true;
let c = function () {
let s = kObj.getSelection();
if (s) {
if (sId != s.start || eId != s.end) {
sId = s.start;
eId = s.end;
$('iframe', kDoc).each(function (j, textIframe) {
let textIFrameDoc = $(textIframe).contents().get(0);
if ($('#' + sId, textIFrameDoc).get(0)) {
txtDoc = textIFrameDoc;
return false;
}
});
if (txtDoc) {
r = txtDoc.createRange();
r.setStartBefore($('#' + sId, txtDoc).get(0));
r.setEndAfter($('#' + eId, txtDoc).get(0));
if (r) {
r = encodeURIComponent(r);
if (r != prevText) {
$('#ACRExtensions_copyC_sep', kDoc).remove();
$('#ACRExtensions_copyC', kDoc).remove();
let styles = $('<style>.spinner, .dictionary.i18n.expanded {display:none !important;} div#kindleReader_menu_contextMenu { max-height: 35px;}</style>');
separateElement = $('<div id="ACRExtensions_copyC_sep" class="kindle_menu_separator"></div>');
translateElement = $('<div id="ACRExtensions_copyC" class="kindle_menu_button button_enabled ui-corner-left">DeepL</div>');
$('#kindle_menu_border', kDoc).append(separateElement).append(translateElement).append(styles);
prevText = r;
$('#ACRExtensions_copyC', kDoc).click(function (evt) {
if (r) {
window.open('https://www.deepl.com/translator#en/ja/' + r, 'DeepL', "height=600,width=776,location=0,menubar=0,scrollbars=1,toolbar=0");
}
});
}
}
}
}
}
if (separateElement) {
separateElement.show();
translateElement.removeClass('button_hidden');
}
};
setInterval(c, 200);
alert('Kindle Translator Extension is now active.');
} else {
alert('Kindle Translator Extension is already active.');
}
} else {
alert('Error: Kindle Translator Extension is not active. The Amazon Cloud Reader window could not be found.');
}
})();
URLの内容を書き換えたら「完了」でブックマークレットを保存します。
Kindle Cloud Readerをブラウザで開き、その状態でブックマックバーにある先程作ったブックマークレットをクリックします。
これで翻訳機能が有効になりました。文章をドラッグすると表示される「DeepL」をクリックすると、別ウィンドウが開いてDeepLでの検索結果が表示されます。上記のブックマークレットは英語専用なので、他の言語からの翻訳に使いたい場合はブックマークレットの「https://www.deepl.com/translator#en/ja/」の部分の「en」をDeepLの対応言語に変更してください。
はじめまして。
本記事を拝見してコメントいたします。
素敵な記事をありがとうございます。あなたの記事のおかげで、大変助かっています。
ありがたく使わせていただいていますが、
Kindleの本文中に%が含まれていると、翻訳が表示されなくなる現象にあたりました。
下記のように修正したら問題なく表示されましたこと、お礼とともにお伝えいたします。
var newW = window.open(‘https://www.deepl.com/translator#en/ja/’ + r, ‘DeepL’ ,
↓
var newW = window.open(‘https://www.deepl.com/translator#en/ja/’ + encodeURIComponent(r), ‘DeepL’ ,
(なお、Google翻訳でも同様に発生しておりましたが、同様に改善できました)
コメントありがとうございます!
ご指摘の通り、エンコードが必要ですね!コードに修正を反映しました。
有益なご指摘ありがとうございました。
大変有用な記事を公開頂き、ありがとうございます。
記事記載の方法で試してみましたが、使用できずにおります。
ブックマークレットをクリック時に表示されるウィンドウがまず表示されまでん。
及びテキストドラッグ時に「メモ」と「ハイライト」以外に「DeepL」が表示されません。
ブラウザをはGoogle Chromeを使用しております(Internet Explorerも試しましたが、実行できまでんせした)
クロームのURL欄横のサイトの設定を調節してみましたが、変化は起こらず。
お手数をおかけして大変申し訳ございませんが、使用できない原因や対策等にお心当たりがございましたら、ご教示いただければ幸いです
よろしくお願い致します。
ブックマークのURL欄に最初から入っていた文字列(例えばこのページをブックマークしたとしたら、”https://sekailab.com/wp/2020/03/25/deepl-translation-with-kindle-cloud-reader/”)は全部消去されてますでしょうか。残っていると動作しないと思います。
また、もしかすると環境によってはクォーテーションやダブルクオーテーション(‘ または “)が全角になっていたりするかもしれません。半角でなければ動作しません。
思い当たるのはそんなところですね・・・
大変有用な情報のご共有ありがとうございます。今の所問題なく使えており、とても便利です!
嬉しいコメントありがとうございます。お役に立てて何よりです。
ありがとうございます!本当に助かりました!
コメントくださり、ありがとうございます!
情報共有がありがとうございます。Kindleの洋書の読書のハードルが下がりました。ただ、Chromeでブックマークを設定して便利に使っていましたが、せかラボのブックマークがすでにアクティブになっていると表示されるにもかかわらず、突然、「ハイライトとメモ」しか表示されなくなり、DeepL翻訳ができなくなってしまいました。何が原因か思い当たることはないのですが、もしこれが原因では、ということがありましたらご教示いただけないでしょうか。
うーむ、難しいですね。F12キーを押してコンソール上のエラーメッセージを見てみるのが一番正確に原因が特定できそうですが、てっとり早く試せるのは以下かなと思います:
– ページのリロード
– ブラウザの再起動
– クッキー、キャッシュの削除(意味がわからない場合は、”クッキーの削除 chrome”などでググってみてください)
はじめまして!探していた情報がこんなわかりやすく説明してくれているページがあったとは、、、とても助かりました!本当にありがとうございます!
お役に立てて嬉しいです。ありがとうございます。
kindleの洋書を読むのに、DeepLで翻訳したかったところこちらを参考にしたら
スムーズに出来て大変助かりました!
youtubeの動画ブログで情報を共有したいと思いますが、
もしダメだったらメッセージいただきましたら取り消しますので、
どうぞよろしくお願いします!
紹介いただいてありがとうございます。動画のリンクもコメントでいただけると嬉しいです。
いつも使わせていただいてます。
同じように本日も使っていたところ、急に使用できなくなったのでコメントさせていただきました。
MACで使用しているのですが、chrome、Safariどちらも使用できない状況です。
再読み込み、ブラウザの再起動、キャッシュの削除すべて行いましたが効果がありません。
ご確認いただけますと幸いです。
windowsのchromeで試してみたところ、依然として使えるようでした。macのデフォルトでなにかブロックされてしまっているのかもしれません。chromeでf12を押してどんなエラーが出ているか確認すれば、なにか手がかりが得られると思います( https://qiita.com/mtanabe/items/e82353c1c6c3ee402a51 )
初めまして。
いつも使わせてもらっています。私もmacでできなくなりましたので、エラーを確認しましたら、以下のエラーが出ていました。
Uncaught TypeError: Cannot read property KindleReaderContextMenu
ご参考になれば、幸いです。
いつもお世話になっております。
上記コメントに続く形の質問です。
windowsのchromeでもうまく出ないようになりました。
以下エラー文です。
Uncaught TypeError: Cannot read property ‘KindleReaderContextMenu’ of null
at :1:479
at :1:2770
はじめまして。私も同様に以下のエラーメッセージが表示されました。解決方法をご存じの方がいらしたら、ご教示いただけると大変助かります。
Uncaught TypeError: Cannot read property ‘KindleReaderContextMenu’ of null
いつもお世話になっております。
大変便利に使わせて頂いております。ありがとうございます。
私も、昨日急に使用不可になってしましました。
Mac、Chromeです。
以下、エラー文です。
Uncaught TypeError: Cannot read property ‘KindleReaderContextMenu’ of null
at :1:479
at :1:2762
どうやら Uncaught TypeError: Cannot read property ‘KindleReaderContextMenu’ of null というエラーは、adblock系の拡張機能が有効であるときに発生するみたいです。kindle cloud readerのページでadblockを無効化してみてください。
迅速なご返信に心より御礼申し上げます。
私の場合も、adblock系の拡張機能は入っておらず、別に原因があるようです。
最初のコメントでは失念しておりましたが、このようなブックマークレットを公開してくださったことに心より御礼申し上げます。Drunkar様のおかげで、諦めていた洋書を読み進めることができております。きっと、多くの方が、私と同じようにこちらのブックマークレットに助けられていることと存じます。
どうか解決法が見つかりますように。こちらでも、何かわかれば情報共有させていただきますね!
対応ありがとうございます。上と同様にUncaught TypeError: Cannot read property ‘KindleReaderContextMenu’ of null
at :1:479
at :1:2770
メッセージがやはり出ます。adblock系の拡張機能は入っておらず別の問題のようです(私の場合ですが)
大変ありがたく使わせていただいております。
本当に助けられております。
私も昨日から
Kindle Translator Extension is now active. OK
の表示が出なくなりました。
win10 chrome adblock的なものなし
です。
トホホ。
ご報告まで。
すみません,なみさんとどうように,お礼を付けていないという状況でした。ほんとうにすばらしく,これで仕事が40倍くらい向上していました。社会的な貢献,日本語を使う人にとっての利はほんとうに大きかったと思います。感謝しております。
なんとか解決が見つかればと思っております。
Kindle Cloud Readerのアップデートが順次行われてるみたいですね。私の方でも問題を確認しました。オブジェクト構造が変わってしまっているので時間がかかるかもしれませんがどうにかアップデートしてみたいと思います。
お待たせしました。新しいKindle Cloud Reader対応を行いました。Windows10 + Chromeで動作確認しています。
Drunkarさん、早速にありがとうございます。Windows10 + Chromeで使用できました!!
善意で公開してくださっているうえ、迅速にご対応くださいましたこと、心より御礼申し上げます。
ryosukeさんも書かれているように、私もこちらのブックマークレットのおかげで飛躍的に効率を上げることができました。今年の嬉しかったことTOP3に入るかもしれないくらいです。心より御礼申し上げます。本当に本当にありがとうございました!
Drunkarさん、早々にありがとうございます。ほんとうに感謝してもしきれません。もちろん自分の英語力を上げることも重要なのですが、それはそれとして、こうしたことが多くの人に外国語(英語に限らず)への情報へのアクセスを飛躍的に高めることにつながると思います。多大な貢献だと思います。もちろん、こうした英語圏と非英語圏の人にとって大きな差異となることをkindleやamazon側が理解を示し、それを解決していくための方法を構築してくれることが大きな願いですが…いずれにしても、心から感謝申し上げます。
Drunkarさん、早々にありがとうございます。ほんとうに感謝してもしきれません。もちろん自分の英語力を上げることも重要なのですが、それはそれとして、こうしたことが多くの人に外国語(英語に限らず)への情報へのアクセスを飛躍的に高めることにつながると思います。多大な貢献だと思います。もちろん、こうした英語圏と非英語圏の人にとって大きな差異となることをkindleやamazon側が理解を示し、それを解決していくための方法を構築してくれることが大きな願いですが…いずれにしても、心から感謝申し上げます。
Mac OS Catalina(10.15.7)でも動作確認しました。ほんとうにありがとうございます。
この記事のおかげで持病に関する英語の本が読めました!ありがとうございます!
ブックマークの作成までは間違っていないと思うのですが、Kindle上でクリックをしてもエラーも出ず、成功したようなポップアップも出ません。
もちろんKindle上で文章を選択しても、DEEPLの選択肢がでてきません。
拡張機能はすべて無効にし、キャッシュとクッキーは削除しましたが、やはり有効にならないようです。
私だけでしょうか。。。
まれに失敗することがあるみたいです。本を開いた状態でブラウザのタブをリロードして、再度ブックマークレットをクリックして有効化してみてください。
初めまして。こちらの記事のおかげで洋書を読むことができ毎日楽しく過ごしています。
ありがとうございます。
数日前からKindle cloud readerで deepl翻訳が反応しなくなりました。
何度入れ直してもダメ、Googleアプリを入れ直してもダメ、試しに入れてみたGoogle翻訳も無反応。
自分だけかと思ったらどうやら他の方にも同じ現象が起きてるらしく、どうやらKindleが仕様変更してるっぽいです(この辺りSNSで呟いてるのでたぶんお気づきかと思います。)
自分では全くわからない部分のことなので手の施しようがありません。
誠に勝手ながら、対処いただけるととても嬉しいです。
お忙しいでしょうがよろしくお願いいたします。
レポートありがとうございます。できれば対応したいのですが、私の環境ではまだアップデートが行われていないみたいで、確認できしだい取り掛かります。ご不便をおかけしますがご了承ください。
リプありがとうございます。
お手数ですがよろしくお願いします。
何度も申し訳ありません。
試しに先ほど立ち上げてみたら、普通に翻訳使えました…意味がわかりません…
すみませんお騒がせしました…(´・ω・`)
試しに更新して戻したりしてるのかもしれないですね!まだ使えてるならひとまず良かったです
素晴らしい情報です。外国の新しい知見を簡単に入手できます。ありがとうございます。
はじめまして。すばらしい情報の提供ありがとうございます!
洋書購読にぜひ活用させていただこうと思い、手順通りにブックマークしたのですがどうもうまくいかず・・・、参考までに質問させてください。
洋書を開いてブックマークをクリックすると、「Kindle Translator Extension is now active.」と表示され、ドラッグすると「メモ・ハイライト」の隣に「DeepL」も表示されるのですが、クリックしても何も反応しないという状況です。
環境はMacでOSはBig Sur、Google Chromeを使用しています。ブラウザは最新になっています。
再起動やセーフブート、キャッシュの削除を行いましたが変わりませんでした。
これまでのコメントを拝見すると仕様変更によるトラブルが起きているのかな?とも思うのですが、どうも症状が異なるようですので、何か心当たりがございましたらご教示いただけますと幸いです・・・!
検証ありがとうございます。クリックのタイミング次第でうまくウインドウが開かないことがありますね。問題を修正しました。ちょっとだけ”DeepL”の表示が出るのが遅くなりましたが、クリックは100%できると思います!
お世話になります。
こちらの機能を活用させていただき、洋書も楽に読めるようになりました。大変感謝しております。
ただ、上記のリン氏と同様、なぜか5/11~12頃からうまくウィンドウが開けなくなりました。
以前のブックマークですと「DeepL」は表示されるのですが、クリックしても反応がありません。
ご修正いただいた5/13以降のスクリプトですと、「DeepL」も表示されないという状態です。
環境はWindowsで、ブラウザはGoogle Chromeを使用しています。
なにかしらお心当たりがございましたらご教示いただけますと幸いです。
いつも本当にありがとうございます。
ご報告ありがとうございます。うーん、わたしもwindows+google chromeで試していますが動作しますね。JavaScript関連で何かエラーが出ているのかもしれません。拡張機能の無いシークレットモードでお試しいただいて、それで動くならなにかしらの拡張機能との干渉がありそうです。それでもだめなら、F12キーを押すと出てくる画面(インスペクター)の「コンソール」タブになにかエラーが出ていないか見てみてください。
始めまして。おかげさまで私も大変ありがたく使用させていただいています。ありがとうございます。私も上記の方々と同じように5月11日より使用ができなくなりました。F12では、Uncaught ReferenceError: txtDoc is not definedat c (:1:1307)などと表示されました。お時間のある時にご教示いただけると幸いです。宜しくお願いします。
初めまして。
私は書籍のサンプルで翻訳ができているのを確認してから、正式に書籍を購入して翻訳しようとしたのですが、DeepLの選択肢がでなくなってしまいました。
ひとつ前のものではDeepLの選択肢は出るのですが、クリックしても反応しません。
シークレットモードでも同様の状態でした。
何かお分かりになりましたら教えていただけるとありがたいです。よろしくお願いいたします。
「Kindle Translator Extension is now active.」と表示されたあと、ドラッグもできず、右クリックしても「メモ・ハイライト」の隣に「DeepL」も表示されないという状況です。windows10,surface,google cromeです
使えなくなっている方が何人かいらっしゃるみたいです。たぶんまたkindle側のアップデートではないかと思いますので、自分の環境にもアップデートが来たら更新いたします。ご不便をおかけしますがご了承くださいませ。
素晴らしいツールを提供いただきありがとうございます!ご多忙のところ大変恐縮ですがご対応をお待ちしております。
初めまして。便利な機能をありがとうございます。5月31日の夜に初めてこちらの機能を追加させていただきました。キンドルのサンプルで試してみたところ、うまく使用出来たので英書の完全版を購入したのですが急に使えなくなってしまいました。ブックマークバーをクリックすると「アクティブしている」と出るものの、「メモ・ハイライト」の隣に「DeepL」が表示されません。キンドルの他のサンプルで試したところやはり使えました。その完全版のみ使えない状態です。クッキーの削除やページのリロード、pcの再起動などを試しましたがダメでした。
Error with Permissions-Policy header: Unrecognized feature: ‘interest-cohort’.
VM280:1 Uncaught ReferenceError: txtDoc is not defined
at c (:1:1307)
Uncaught TypeError: Failed to execute ‘setStartBefore’ on ‘Range’: parameter 1 is not of type ‘Node’.
at c (:1:1403)
c @ VM310:1
setInterval (async)
(anonymous) @ VM310:1
(anonymous) @ VM310:1
このようなエラーが出ているのですが、どのようにすればよいでしょうか。ご教授いただきたいです。
最近急に使えなくなりました。。
初めまして。素敵な機能なので使わせていただきたく思い 本日2021年6月3日13時ごろに導入してみましたが、まだ私の環境では動かせておりません。「Kindle Translator Extension is now active.」と表示されたあと、「メモ・ハイライト」の隣に「DeepL」が表示されません。windows10 + google crome (バージョン: 91.0.4472.77(Official Build) (64 ビット))環境です 。
マウスドラッグにより英文の範囲選択を行うたびに
Uncaught RefferenceError: txtDoc is not defined ta c (:1:1307) VM16:1
というエラーの数が増えていっています。
このブックマークレットを実行する前であれば、ドラッグを行ってもこのエラーは発生しませんでした。
ご参考になるかと思い、投稿させていただきました。
本の内容がテキストから画像に変わってしまったようですね。
ハイライトすると一部の文字は取得できそうだけれど、長いとダメだし、キャプチャして翻訳するしかなさそう?
kindle cloud readerがアップデートされたようですが、私の環境ではいぜんとして使えています。なぜだろう。。。
書籍によって異なるような気がするので、もしブックマークレットがうまく働かなくて困っている方がいらっしゃいましたら、書籍名も合わせてお知らせいただけますと問題解決できるかもしれません。
お久しぶりです。以前にコメントした者です。
私のPCでの翻訳状況と翻訳できない書籍の名前についてお伝えします。
まず、Power vs. Force: The Hidden Determinants of Human Behaviorという書籍のサンプルで翻訳してみたところ、翻訳画面が出ても原文と訳文が出ない時がありましたが、何回かやる内に翻訳できました。また、「/」が入るとそこで翻訳が途切れます。
次に、私が購入した、翻訳ができない書籍の名前をお伝えします。
1・Truth vs. Falsehood: How to tell the difference
2・Reality, Spirituality and Modern Man
3・Letting Go: The Pathway of Surrender
4・The Map of Consciousness Explained: A Proven Energy Scale to Actualize Your Ultimate Potential
以上の4つの書籍で翻訳ができませんでした。
その内、Truth vs. Falsehood: How to tell the differenceは、サンプルで翻訳ができていたのを1ヶ月程前に確認しています。
ちなみに、上記に挙げたサンプルも含めた計5つの書籍の作者は全て同じ方で、David R. Hawkinsという方です。
以上です。
お手数お掛けしますが、ご確認の程、よろしくお願いします。
詳細にご連絡いただきありがとうございます。試してみます。
初めまして。こちらに記載の手順で試してみたのですが、私もDeepLが表示されません。Microsoft edgeで試してみたのですが、activeの文字は表示されます。一瞬DeepLが表示されて一度だけ翻訳することができたのですが、その後DeepLが消えてしまいました。有効になっているスクリプトが邪魔しているなど、そういった要因はありますでしょうか?
はじめまして、本日こちらのサイトを拝見し早速試してみたものです。
最初は上手くいったのですが、数十分経ち読み進めようとしたところDeePLが表示されなくなりました。
エラーは
「Uncaught ReferenceError: txtDoc is not defined
at c (:1:1307)
c @ VM74:1
setInterval (async)
(anonymous) @ VM74:1
(anonymous) @ VM74:1」
と出ております。
ブロック広告の削除やキャッシュの読み込み、再起動などを試してみたが駄目でした。
こちらのサイトを発見して翻訳本が読めるということでとても嬉しくなったので、善意に甘える形で申し訳ありませんがもしよければご確認していただけると本当に助かります。環境はwin7+chromeです。
はじめまして。
mac(BIg Sur 11.5.2)Chrome環境ですが、DeePLが表示されません。
キャッシュクリア、cookie削除等も試してみましたが状況変わらずでした…
以下エラーが表示されました。
Uncaught ReferenceError: txtDoc is not defined
at c (:1:1307)
お手数お掛けしてしまいますが、ご確認いただけると幸いです。
こんにちは、一言お礼が言いたくて。このページ、本当に助かりました!Blessings!!!
書籍がsampleの状態ではうまく行きますが、購入後になると翻訳リンク(DeepL, or Google)が表示されなくなるようです。
Winddowsで使用しようとしていますが、DeePLのメニューが表示されません。スクリプトをブックマークにペーストした際には、問題なくコピペできても、「保存」すると ‘#’ 以降が%%・・・に変換されてしまっており、それが原因かもしれないと考えていますが、対処方法はありますでしょうか?
素晴らしいブックマークレットで期待が大きいのですが、私もWindows+Google ChromeでDeepLメニューが表示されません。
キャッシュクリア、開いた本を再リロードしてからブックマークをクリックしても、何も反応がありません。
他のブックマークレットは使用経験はあります。