Chromeの翻訳バーっぽいのをSleipnirで使えるようにするスクリプト
概要
Chrome Frame使えば本物の翻訳バー使えますけどねw
まさか全ページをChrome Frameで見るわけにも行かず、そんなの非効率ですからw
ちなみに、id:Kei_9さんが以前に同様のコンセプトでエクステンション作っておられます。
ページ翻訳:Google Chrome風のアレを作ってみた - Kei_9 なげやりにっき
Google Chrome風のアレを作ってみた『その2』 - Kei_9 なげやりにっき
私の場合はGoogleウェブサイト翻訳ツールをスクリプトで挿入する方式にしてみました。
なお、FirefoxアドオンのgTranslatorを参考にしました。
※どちらもあまりテストしてないので、Sleipnirがフリーズしたり、落ちたりする場合がある鴨。
- GoogleWebsiteTranslationToolbar.user.js
// ==UserScript== // @name Google Website Translation Toolbar // @namespace http://d.hatena.ne.jp/barrackdo/ // @author 破楽戸.* // @include http://* // @include https://* // ==/UserScript== (function() { var flag = false; var sk = document.getElementsByTagName("div"); for(var i = 0; i < sk.length; i++) { if(sk[i].className == "skiptranslate") { flag = true; } } var lang = document.getElementsByTagName("html")[0].lang; if(lang == "ja" || lang.length == 0) { flag = true; } if(!flag) { var d=document; var b=d.body; var o=d.createElement('script'); o.setAttribute('src','//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'); o.setAttribute('type','text/javascript'); b.appendChild(o); var v=b.insertBefore(d.createElement('div'),b.firstChild); v.id='google_translate_element'; v.style.display='none'; var p=d.createElement('script'); p.text='function googleTranslateElementInit(){new google.translate.TranslateElement({pageLanguage:\"'+lang+'\",multilanguagePage:true},\"google_translate_element\");}'; p.setAttribute('type','text/javascript'); b.appendChild(p); } }());
- GoogleTranslationToolbar.js
(function() { var d=document; var b=d.body; var o=d.createElement('script'); o.setAttribute('src','//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'); o.setAttribute('type','text/javascript'); b.appendChild(o); var v=b.insertBefore(d.createElement('div'),b.firstChild); v.id='google_translate_element'; v.style.display='none'; var p=d.createElement('script'); p.text='function googleTranslateElementInit(){new google.translate.TranslateElement({pageLanguage:\"auto\",multilanguagePage:true},\"google_translate_element\");}'; p.setAttribute('type','text/javascript'); b.appendChild(p); }());