You need to be logged in to post in the forums. If you do not have an account, please sign up first.
tłumacz angielsko-polski
witam wszystkich,wiem, że za pomocą Mozilli i jakiegoś plug-ina (?) można tłumaczyś angielskie słowa podczas czytania tekstu na stronie, bez konieczności zaglądania na odzielnej karcie do słownika. czy Opera posiada takie udogodnienie? a jeśli nie czy planuje się coś takiego wprowadzić?
Originally posted by Medium:
Originally posted by damian0wie:
rozszerzenie, ktore pozwala natychmiastowo pomoc w zrozumieniu danego eng slowa poprzez dwukrotne kilkniecie
Menu kontekstowe zaznaczonego słowa - słownik i encyklopedia. Resztę można dobudować samodzielnie poprzez edycję menu.
No jest opcja przetlumacz z angielskiego na rozne jezyki ale brakuje polskiego... Jak dodac jezyk polski?
pzdr
Faktycznie, w końcu działa ten skrypt i okienko-tłumacz (XP, O 10.54 (3386))
a poza tym to Polska na rowery
w oryginalnym skrypcie tłumaczy na język rosyjski wystarczyło zmienić dwie litery i mamy polski
// ==UserScript==
// @name Mini translator
// @author Lex1
// @version 1.0
// @include *
// @description Fast google translation in the status bar.
// @ujs:download http://ruzanow.ru/userjs/mini-translator.js
// ==/UserScript==
document.addEventListener('mouseup', function(e){
var txt = document.getSelection();
if(!e.ctrlKey && !e.shiftKey && !e.altKey && txt){
var ele = document.documentElement.appendChild(document.createElement('script'));
window.showGoogleTranslate = function(o){
var v = (o.responseStatus == 200 ? o.responseData.translatedText : o.responseStatus+': '+o.responseDetails).replace(/\s+/g, ' ');
window.status = v;
window.defaultStatus = v;
window.setTimeout(function(){window.defaultStatus = ''}, 9000);
ele.parentNode.removeChild(ele);
delete window.showGoogleTranslate;
};
ele.src = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q='+encodeURIComponent(txt.slice(0, 300))+'&langpair=|pl&callback=showGoogleTranslate&format=text';
}
}, false);
Testowane i sprawdzone na wersji 10.53
14. June 2010, 16:59:43 (edited)
Wielkie dzięki chłopki. Sądze ze ustawienie czegoś takiego polsko - niemiecki nie bedzie problemem.
Jestem laik, ale czy napisanie skryptu, który brałby tłumaczenie ze słownika na HDD było by mozliwe ?
Bo google translator jednak troche muli i wciaż ma mniej słów niż potężne słowniki na twardziel...
Originally posted by dmocha:
pobrane ze strony Ruzanowa
Który to jego wpis? Podaj dokładny link.
http://my.opera.com/Lex1/blog/?startidx=0
Trzeba go ponownie zainstalować (jest nowsza wersja), na przykład spod adresu z blogu Adasia.
Nie wiem, czy nowszą wersję wymusiły zmiany w Google, czy to kwestia nowej Opery?
Originally posted by Jurgi:
Po zainstalowaniu O10.60 skrypt przestał działać.
U mnie działa - wersja 1.7.1
Trzeba go ponownie zainstalować (jest nowsza wersja), na przykład spod adresu z blogu Adasia.
Nie wiem, czy nowszą wersję wymusiły zmiany w Google, czy to kwestia nowej Opery?
u MNIE DZIAŁA TAK SAMO PO AKTUALIZCJI DO 10.60
Originally posted by Medium:
Originally posted by dmocha:
pobrane ze strony Ruzanowa
Który to jego wpis? Podaj dokładny link.
http://my.opera.com/Lex1/blog/?startidx=0
http://ruzanow.ru/page.php?3
w dziale UserJS
z tym że w oryginalnym skrypcie jest (tu fragment):
&langpair=|ru
i trzeba to zamienić na
&langpair=|pl
działa bez problemu z operą 10.60
6. July 2010, 21:09:50 (edited)
if(window.opera)opera.addEventListener('BeforeExternalScript',function(e){var s=e.element.src,h=location.href;if(s&&s.indexOf('http://translate.google.com/translate_static/')==0&&h.indexOf('&ujs=gtt')==h.length-8){e.preventDefault();opera.addEventListener('BeforeScript',function(ev){ev.preventDefault()},false);opera.addEventListener('BeforeEventListener.load',function(ev){ev.preventDefault()},false);var c=document.createElement('style');c.setAttribute('type','text/css');c.appendChild(document.createTextNode('img,object,embed{display:none !important}'));document.getElementsByTagName('head')[0].appendChild(c);}},false);window.addEventListener('load',function(){if(location.href.indexOf('http://translate.google.com/translate_n?')==0&&window.parent!=window)parent.document.body.rows='0,*';},false);document.addEventListener('mouseup',function(e){if(e&&e.button==0){var lc=navigator.lastClick||(navigator.lastClick={});lc.X=e.clientX;lc.Y=e.clientY;lc.element=e.target;}},false);document.addEventListener('focus',function(e){if(e){var target=e.target;var tag=target.nodeName.toLowerCase();if(tag=='textarea'||(tag=='input'&&target.type=='text')){(navigator.lastClick||(navigator.lastClick={})).textArea=target;}}},true);function ujs_createWindow(strContent,strStatus,strTitle,strId,pos,size){var wId='ujs_window';if(strId)wId+=strId;var win=document.getElementById(wId);if(win)win.parentNode.removeChild(win);win=document.createElement('div');win.setAttribute('style','position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:9999;overflow:visible;cursor:move;'+(typeof win.style.borderRadius==='string'?'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);':'background:-o-skin("Window Skin");'));win.id=wId;var img=document.createElement('img');img.setAttribute('style','display:block;float:right;background:-o-skin("Caption Close Button Skin");width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;');img.src='data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAICTAEAOw==';img.title=(navigator.language=='ru')?'\u0417\u0430\u043A\u0440\u044B\u0442\u044C':'Close';img.onclick=function(){this.parentNode.parentNode.removeChild(this.parentNode)};win.appendChild(img);var title=document.createElement('span');title.setAttribute('style','display:inline;color:#000000;font:16px Times New Roman;width:auto;height:auto;padding:1px 2px;margin:0;');title.innerHTML=strTitle||'';win.appendChild(title);var content=document.createElement('div');content.setAttribute('style','display:block;border:1px solid #aaaaaa;margin:2px 0 0 0;padding:4px;background-color:#fafcfe;color:#000000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;');content.innerHTML=strContent||'';win.appendChild(content);var status=document.createElement('div');status.setAttribute('style','display:block;color:#555555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:1px 2px;cursor:text;');status.innerHTML=strStatus||'';win.appendChild(status);win.addEventListener('mousedown',function(e){if(e.target==win){e.preventDefault();var grabX=e.clientX;var grabY=e.clientY;var origX=parseInt(win.style.left);var origY=parseInt(win.style.top);var dnd=function(e){win.style.left=origX+e.clientX-grabX+'px';win.style.top=origY+e.clientY-grabY+'px';};document.addEventListener('mousemove',dnd,false);document.addEventListener('mouseup',function(){document.removeEventListener('mousemove',dnd,false)},false);}},false);document.documentElement.appendChild(win);if(size){content.style.height=size.height;content.style.width=size.width;}
else{for(var i=3;i<10;i++){if(content.scrollHeight>content.offsetHeight||content.scrollWidth>content.offsetWidth){content.style.height=50*i+'px';content.style.width=100*i+'px';}
else break;}};var docEle=(document.compatMode=='CSS1Compat'&&window.postMessage)?document.documentElement:document.body;var mX=docEle.clientWidth-win.offsetWidth;var mY=docEle.clientHeight-win.offsetHeight;if(mX<0){content.style.width=parseInt(content.style.width)+mX+'px';mX=0};if(mY<0){content.style.height=parseInt(content.style.height)+mY+'px';mY=0};var hW=parseInt(win.offsetWidth/2);win.style.left=(pos&&pos.X<mX+hW?(pos.X>hW?pos.X-hW:0):mX)+'px';win.style.top=(pos&&pos.Y+10<mY?pos.Y+10:mY)+'px';win.style.visibility='visible';document.addEventListener('keypress',function(e){if(e.keyCode==27){this.removeEventListener(e.type,arguments.callee,false);var t=document.getElementById(wId);if(t)t.parentNode.removeChild(t)};},false);return win;};window.addEventListener('message',function(e){if(e.data=='google-translate'){var result='',status='';if(location.hostname=='translate.google.com'){var r=document.getElementById('result_box');var d=document.getElementById('dict');var s=document.getElementById('source');var h=document.getElementById('headingtext');if(r){var p=r.getElementsByTagName('span');for(var i=0,n;n=p[i];i++){n.removeAttribute('onmouseover');n.removeAttribute('onmouseout');n.style='background-color:inherit;color:inherit;font-size:inherit;';};result=r.innerHTML;};if(s&&d&&d.innerText){var a=d.getElementsByTagName('*');for(var i=0,n;n=a[i];i++){switch(n.nodeName.toLowerCase()){case 'td':n.style='padding:5px 15px;margin:0;vertical-align:top;font:12px Arial;';break;case 'li':case 'ol':n.style='padding:0;margin:0;list-style-position:inside;font:12px Arial;';break;case 'a':case 'p':n.parentNode.removeChild(n);break;}};result='<b><q>'+s.value+'</q></b>'+d.innerHTML;};if(h&&h.innerText)status=h.innerText.replace(/^.*: /,'').toLowerCase();};if(location.hostname=='m.translate.ru'){var v=document.getElementsByTagName('div');for(var i=0,n;n=v[i];i++){if(n.className=='tblue')status=n.nextSibling.nodeValue.slice(0,-1)+' (PROMT)';if(n.className=='tres')result=n.innerHTML;}};if(result||status)e.source.postMessage('google_translate'+encodeURI(result)+'|'+encodeURI(status)+'|'+encodeURI(location.href),'*');};if(e.data&&e.data.indexOf('google_translate')==0){var origin=e.origin||'http://'+e.domain;if(origin=='http://translate.google.com'||origin=='http://m.translate.ru'){var msg=e.data.slice(16).split('|');ujs_createWindow(decodeURI(msg[0]),decodeURI(msg[1]),'<a href="'+decodeURI(msg[2])+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#000099;font:16px Times New Roman;">Google Translate</a>','_gt',navigator.lastClick);var f=document.getElementById('ujs_googletranslateframe');if(f)f.parentNode.removeChild(f);}}},false);function ujs_google_translate(dir){var selText=function(w){var t;return w?w.document.getSelection()||(t=w.navigator.lastClick&&w.navigator.lastClick.textArea)&&t.value.substring(t.selectionStart,t.selectionEnd):''};var selWin=function(w){if(selText(w))return w;for(var i=0,f,r;f=w.frames[i];i++){try{if(r=arguments.callee(f))return r}catch(e){}}};var winWait=function(w,lng){w.ujs_createWindow('',(lng=='ru'?'\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u0438\u043C':'Translating')+'\u2026','Google Translate','_gt',w.navigator.lastClick)};var createFrame=function(w,src){var fId='ujs_googletranslateframe';var f=w.document.getElementById(fId);if(f)f.parentNode.removeChild(f);f=w.document.createElement('iframe');f.width=0;f.height=0;f.frameBorder='no';f.scrolling='no';f.id=fId;f.name=fId;f.onload=function(){(window.postMessage?f.contentWindow:f.contentDocument).postMessage('google-translate','*')};w.document.documentElement.appendChild(f);if(src)f.src=src;};var createForm=function(w,action,name,value){var f=w.document.createElement('form');f.action=action;f.method='POST';f.acceptCharset='UTF-8';f.target='ujs_googletranslateframe';f.style.display='none';var t=w.document.createElement('textarea');t.name=name;t.value=value;f.appendChild(t);w.document.documentElement.appendChild(f);f.submit();f.parentNode.removeChild(f);};var w=selWin(window.top);var txt=selText(w);var encTxt=encodeURIComponent(txt);var lng=navigator.language;var url=escape(location.href);if(dir.indexOf('|')!=-1){if(w&&w.location.hostname!='translate.google.com'){winWait(w,lng);if(encTxt.length<1900){createFrame(w,'http://translate.google.com/translate_t?text='+encTxt+'&hl='+lng+'&langpair='+dir+'&eotf=0&tbb=1&ujs=gtt');}
else{var l=dir.split('|');createFrame(w,'');createForm(w,'http://translate.google.com/?sl='+l[0]+'&tl='+l[1]+'&hl='+lng+'&eotf=0&ujs=gtt','text',txt);}}
else{window.open('http://translate.google.com/translate?u='+url+'&hl='+lng+'&langpair='+dir+'&tbb=1'+(document.charset?'&ie='+document.charset:''));}}
else{if(w&&w.location.hostname!='m.translate.ru'){winWait(w,lng);createFrame(w,'http://m.translate.ru/translator/result/?text='+encodeURIComponent(txt.slice(0,600))+'&dirCode='+dir);}
else{window.open('http://www.translate.ru/url/tran_url.asp?direction='+dir+'&template=General&autotranslate=true&url='+url);}}};
Chodzi o ten skrypt? Jak tak to jak mam to jeszcze zainstalować/zrobić, żebym mógł sobie tłumaczyć.
Pytam ponieważ jestem całkiem zielony.
kombinowalem z tymi podanymi wyzej od razmusa i mini translator mi dziala ale ten drugi chyba nie...
ps. Medium: czy robisz swoje menu do 10.60? kiedy moznabyloby sie sodziewac? miło mi sie pracowało z Twoim menu kontektowym w operze...
Originally posted by yozz84:
ps. Medium: czy robisz swoje menu do 10.60? kiedy moznabyloby sie sodziewac? miło mi sie pracowało z Twoim menu kontektowym w operze...
Przymierzam się powoli. Sama póki co pracuję na Operze 10.10. Niestety Opera 10.60 niechętnie przyjmuje niektóre modyfikacje, które działają w 10.10, co mnie mocno zniechęca. Jak sama przejdę na nową wersję, pewnie coś spłodzę
Originally posted by yozz84:
ale mimowszystko skrypt mi nie działa... nie wiem dlaczego... zmienilem w nim tylko z .ru na .pl w adresach wewnatrz...
ma ktos moze działający (na PL) ? ...aby po zaznaczeniu otwieral dany tekst w nowej zakladce w google translate...
albo coś mylisz albo coś źle zrozumiałeś
Są trzy sposoby tłumaczenia:
- Na stronie Adasia jest przycisk i link do skryptu:
[...] Co jest do tego potrzebne? Skrypt google-translate.js (przeczytaj informacje o instalacji skryptów). A na dowolnym pasku narzędziowym umieść przycisk: Translator PL (lub PL).[...]
ten sam przycisk tylko inaczej nazwany jest u mnie
Aby przycisk działał potrzebny jest skrypt znajdujący się pod adresem: (i u Adasia i u mnie jest do niego link) http://ruzanow.ru/userjs/google-translate.js. Sam przycisk nic nie da i sam skrypt też nie. Fajne rozwiązanie bo pozwala tłumaczyć zaznaczony fragment tekstu - wynik pojawia się w małym okienku, lub tłumaczyć całą stronę o ile nie zaznaczysz niczego na stronie - Tłumaczenie przy użyciu minitranslatora polega na pobraniu i "zainstalowaniu" tego skryptu w którym zmienione jest tłumaczenie z RU na PL. Następnie zaznaczamy fragment tekstu na ekranie i jego tłumaczenie widzimy na pasku stanu (pod warunkiem że jest on włączony). Wadą tego rozwiązania jest ograniczenie "długości" paska stanu czyli nie można zaznaczać dłuższych fragmentów niż nasz pasek, ale zaletą to że możemy szybko zobaczyć nieznane nam wyrazy lub zwroty.
- Tłumaczenie całej strony przy użyciu przycisku. Ja to rozwiązałem sobie dopisując do menu w sekcji poniższy wpis:
[Document Popup Menu] Item, "Tlumacz strone w Google"="Copy document address,,,, "Label Call Back" & Go to page, "http://translate.google.com/translate_c?u=%u""
Oczywiście zrobiłem to robiąc sobie wcześniej kopię menu. No i oczywiście edytując menu przy wyłączonej operze. Takie rozwiązanie jest wygodne bo daje mi możliwość tłumaczenia całej strony przy użyciu prawokliku myszy na danej stronie
Obojętnie czy i który sposób wybierzesz to i tak spotkasz takie strony których google nie przetłumaczą. Nie pytaj mnie dlaczego bo tego nie wiem.

ps.
Zapomniałem dodać że pierwszy (przy niezaznaczaniu) i trzeci sposób tłumaczy stronę w nowootwartej karcie.
Originally posted by vioka:
strona ruzanow.ru nie działa
Teraz używa się rozszerzeń
Menu → Rozszerzenia

Wyszukaj translate i wybierz, które rozszerzenie jest najlepsze.
Originally posted by Medium:
wybierz, które rozszerzenie jest najlepsze.
Nie wiem jak inne ale Ten translator właśnie zaczął mówić (tzn czytać na głos)

a poza tym to Polska na rowery
Faktycznie, nie wysila się za bardzo - trzeba mu dawkować mniej
a poza tym to Polska na rowery
Odgrzebuje temat
może ktoś ma działający (czytaj udoskonalony) skrypcik mini-translator.js Ruzanowa:
na moim blogu wersja która przestała działać:
jego kod wygląda tak:
// ==UserScript==
// @name Mini translator
// @author Lex1
// @version 1.0
// @include *
// @description Fast google translation in the status bar.
// @ujs:download http://ruzanow.ru/userjs/mini-translator.js
// ==/UserScript==
document.addEventListener('mouseup', function(e){
var txt = document.getSelection();
if(!e.ctrlKey && !e.shiftKey && !e.altKey && txt){
var ele = document.documentElement.appendChild(document.createElement('script'));
window.showGoogleTranslate = function(o){
var v = (o.responseStatus == 200 ? o.responseData.translatedText : o.responseStatus+': '+o.responseDetails).replace(/\s+/g, ' ');
window.status = v;
window.defaultStatus = v;
window.setTimeout(function(){window.defaultStatus = ''}, 9000);
ele.parentNode.removeChild(ele);
delete window.showGoogleTranslate;
};
ele.src = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q='+encodeURIComponent(txt.slice(0, 300))+'&langpair=|pl&callback=showGoogleTranslate&format=text';
}
}, false);
Skrypt był bardzo pomocny do momentu kiedy google zmieniło zasady związane z tłumaczeniem. Teraz skrypt zwraca wynik:
403: Please use Translate v2. See http://code.google.com/apis/language/translate/overview.html
:(
Niestety nie znam się na skryptach js na tyle, żeby samemu coś zdziałać, może jakaś dobra dusza zerknie i naprawi
Originally posted by dmocha:
Cześć,
Odgrzebuje temat
może ktoś ma działający (czytaj udoskonalony) skrypcik mini-translator.js Ruzanowa:
na moim blogu wersja która przestała działać:
jego kod wygląda tak:// ==UserScript== // @name Mini translator // @author Lex1 // @version 1.0 // @include * // @description Fast google translation in the status bar. // @ujs:download http://ruzanow.ru/userjs/mini-translator.js // ==/UserScript== document.addEventListener('mouseup', function(e){ var txt = document.getSelection(); if(!e.ctrlKey && !e.shiftKey && !e.altKey && txt){ var ele = document.documentElement.appendChild(document.createElement('script')); window.showGoogleTranslate = function(o){ var v = (o.responseStatus == 200 ? o.responseData.translatedText : o.responseStatus+': '+o.responseDetails).replace(/\s+/g, ' '); window.status = v; window.defaultStatus = v; window.setTimeout(function(){window.defaultStatus = ''}, 9000); ele.parentNode.removeChild(ele); delete window.showGoogleTranslate; }; ele.src = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q='+encodeURIComponent(txt.slice(0, 300))+'&langpair=|pl&callback=showGoogleTranslate&format=text'; } }, false);
Skrypt był bardzo pomocny do momentu kiedy google zmieniło zasady związane z tłumaczeniem. Teraz skrypt zwraca wynik:
403: Please use Translate v2. See http://code.google.com/apis/language/translate/overview.html![]()
Niestety nie znam się na skryptach js na tyle, żeby samemu coś zdziałać, może jakaś dobra dusza zerknie i naprawi
Dołączam się do pytania, czy ktoś zna rozwiązanie problemu?
Originally posted by K1CrasH:
Dołączam się do pytania, czy ktoś zna rozwiązanie problemu?
To jest bardzo podobne rozszerzenie. Polecam!
Originally posted by K1CrasH:
Originally posted by dmocha:
Dołączam się do pytania, czy ktoś zna rozwiązanie problemu?
Google translate api v2 jest płatne http://www.dobreprogramy.pl/Google-udostepnia-platne-Translate-API-v2,Aktualnosc,27403.html więc raczej nic z tym nie zrobisz.
Jako zastępstwo polecam:
http://mac.softpedia.com/get/Internet-Utilities/Opera-Extensions/Google-Translate-for-Opera.shtml
lub
https://addons.opera.com/pl/addons/extensions/details/xtranslate/2.1/
Showing topic replies 51 - 81.
Forums » Forum Opery » Aplikacje dla Opery
Moderated by:
andol