Archivio per il tag quicksearch

Traduttore in linea

AGGIORNAMENTO: purtroppo SPB fa delle conversioni assurde e i bookmarklet non funzionavano, ora ho fatto l'escape manuale dei caratteri e spero il problema si sistemi :-(.

Visto che un solo %s da usare come parametro nelle keyword di Firefox non bastava, quelli di Lifehacker si sono inventati il modo di utilizzare parametri multipli :-D. Qui trovate il post su Lifehacker con alcuni esempi di utilizzo delle keyword multiparametriche. Io mi ero posto una domanda simile ma non conoscendo così bene Javascript non ero riuscito nel mio scopo. Ora che ho visto come si fa però, ho modificato il bookmarklet per le traduzioni utilizzando questa nuova funzione segnalata su Lifehacker. Se leggete il post originale su Lifehacker troverete il bookmarklet prototipo che può essere utilizzato, ad esempio, per cercare del testo nei messaggi di particolari utenti nei Forum o affinare le ricerche con un parametro in più a vostra scelta.

Se qualcuno conosce bene Javascript si accorgerà sicuramente che il bookmarklet è migliorabile diciamo che lo scopo è quello che funzioni, ma, non è buon codice. Probabilmente ad un vero programmatore gli si rizzeranno i capelli :-P. Se qualcuno vuole migliorarlo è benvenuto :-).

Il bookmarklet necessita che vengano passati sempre almeno due parametri che rappresentano, rispettivamente, la sigla della lingua di partenza e di quella di arrivo e va usato da barra degli indirizzi richiamandolo tramite keyword, motivo per cui funziona solamente con Firefox. Con qualche if in più si potrebbe farlo andare anche con altri browser ma perderebbe di utilità e diventerebbe pressoché uguale a quelli proposti nei siti di traduzione. I bookmarklet sono due: il primo usa come servizio di traduzione Google Translate, mentre il secondo utilizza BabelFish.

Supponiamo di associare al bookmarklet che usa Google Translate la keyword: trans (tranquilli non è l'amico di Lapo ma solo l'abbreviazione di translate :-)) e trans2 a quello di BabelFish, ecco come vengono richiamati:

trans sigla_lingua_pagina sigla_lingua_in_cui_tradurre (opzionalmente altro testo)
trans2 sigla_lingua_pagina sigla_lingua_in_cui_tradurre (opzionalmente altro testo)

I primi due parametri devono sempre essere passati mentre il terzo è opzionale. Le sigle da passare sono quelle canoniche: it (italiano), en (inglese), fr (francese), de (tedesco) e così via.

Purtroppo, non si possono usare lettere accentate come testo opzionale e non ne so la ragione, anzi se qualcuno ne conosce il motivo, mi farebbe un grosso piacere a spiegarmelo commentando o contattandomi via email. Ecco come funziona:

  • se viene selezionato del testo nella pagina verrà tradotto il testo selezionato;
  • se non viene selezionato del testo e vengono passati solo due parametri viene tradotta la pagina;
  • se viene passato del testo senza selezionare nulla viene tradotto il testo digitato come “terzo parametro.

Ma bando alle ciance e facciamo qualche esempio pratico :-).

Esempi

trans it en
senza selezionare alcun testo traduce la pagina dall'italiano all'inglese
transen it
selezionando del testo, tradurrà il testo dall'inglese all'italiano,
trans it en oggi il sole splende
traduce dall'italiano all'inglese "oggi il sole splende".

Naturalmente la coppia di lingue deve essere supportata dal servizio di traduzione utilizzato, purtroppo per quanto riguarda Google Translate l'italiano può essere usato solo in coppia con l'inglese dunque non si possono usare combinazioni del genere (o meglio si possono usare ma non producono alcun risultato):
transit fr
Naturalmente se in futuro Google migliora il servizio offerto può darsi che tali comandi acquistino un senso compiuto. Se vi accontentate dell'inglese invece potete tradurre da/in quasi tutte le lingue del mondo, per esempio:

transen es
traduce dall'inglese allo spagnolo, oppure:
trans de en
traduce dal tedesco all'inglese e così via.

Se passate la stessa lingua, come ad esempio:
trans it it

potete bypassare l'eventuale proxy che vi blocca la pagina come spiegato da O'Reilly.

Con BabelFish si può inoltre tradurre dall'italiano al francese e viceversa, sono validi dunque i comandi:
trans2fr it
trans2it fr

bene ora che sapete come si usano, se volete potete aggiungere i due bookmarklet :-D.

Google Translate

javascript:var quote=document.getSelection();var s='%s'; if ((quote=='' && s.length>5)) {testo=encodeURIComponent(s.substring(5,s.length));url='http://translate.google.com/translate_t?langpair=%s|%s&text='+testo;} else{if (quote=='') url='http://www.google.com/translate?langpair=%s|%s&u='+encodeURIComponent(location.href); else url='http://translate.google.com/translate_t?text='+quote+'&langpair=%s|%s'};t=''; qc=0; chunks=url.split('%s'); for(i=0; i<5; i++){if(s.charAt(i)=='%22')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined) {args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'');

BabelFish

javascript:var quote=document.getSelection();var s='%s'; if ((quote=='' && s.length>5)) {testo=s.substring(5,s.length);url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&lp=%s_%s&trtext='+encodeURIComponent(testo)+'&btnTrTxt=Traduci';} else{if (quote=='') url='http://babelfish.altavista.com/babelfish/tr?trurl='+encodeURIComponent(location.href)+'&lp=%s_%s&btnTrUrl=Traduci'; else url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&trtext='+encodeURIComponent(quote)+'&lp=%s_%s&btnTrTxt=Traduci'};t=''; qc=0; chunks=url.split('%s'); for(i=0; i<5; i++){if(s.charAt(i)=='%22')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined) {args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'');javascript:var quote=document.getSelection();var s='%s'; if ((quote=='' && s.length>5)) {testo=encodeURIComponent(s.substring(5,s.length));url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&lp=%s_%s&trtext='+encodeURIComponent(testo)+'&btnTrTxt=Traduci';} else{if (quote=='') url='http://babelfish.altavista.com/babelfish/tr?trurl='+encodeURIComponent(location.href)+'&lp=%s_%s&btnTrUrl=Traduci'; else url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&trtext='+encodeURIComponent(quote)+'&lp=%s_%s&btnTrTxt=Traduci'};t=''; qc=0; chunks=url.split('%s'); for(i=0; i<5; i++){if(s.charAt(i)=='%22')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined) {args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'');

Suggerimenti e opinioni sono gradite :-).

Altre letture::
Firefox Tip: How to set up multi-parameter keyword searches - Lifehacker,
Il blog che non c'è - Tradurre pagine Web al volo,
O'Reilly Network — Using Google to View MySpace or Any Restricted Site,
JavaScript Strings
ìì+JavaScript Strings.

Ti è piaciuto l'articolo? Vota Ok oppure No. Grazie Mille!

Puoi votare l'articolo anche qui, gli articoli precedenti qui.

Bookmarklet per fare citazioni al volo

Ho creato (in risposta ad un'idea che ha avuto @episodico su it-alt.comp.software.mozilla) un piccolo bookmarklet per rendere più semplici le citazioni. Questo è il codice:

javascript:var q=document.getSelection();if (q!='') q='[blockquote]'+q+'[/blockquote]';var testo=prompt('copia e incolla il bbcode', '[url='+location.href+']questo[/url]]'+q);

(testato solo con Firefox e Seamonkey)

Per usarlo ci sono due metodi: inserirlo nella barra degli strumenti come bookmarklet vero e proprio oppure assegnargli una parola chiave e richiamarlo da barra degli indirizzi.

Una volta eseguito, viene mostrata una finestrella di dialogo da cui è possibile copiare il BBCode per inserire la citazione alla pagina. Se inoltre si seleziona del testo questo verrà quotato col tag BBCode blockquote.
Inutile dire che si può modificare a piacimento.

L'unico problema è che non viene inserito un carattere di line break fra il link e la citazione, se qualcuno sa come si aggiungono linee alla finestrella chiamata col comando prompt mi farebbe un gran favore a spiegarmelo nei commenti così miglioro lo script :-D.

AGGIORNAMENTO: ho modificato il bookmarklet in modo che il BBCode venga visualizzato in una textarea di una popup e non nella finestrella del prompt. In questo modo il BBCode apparirà su più linee e anche se il testo quotato è molto lungo viene inserito correttamente. Ecco il nuovo bookmarklet:

javascript:var q=document.getSelection();if (q!='') q='[blockquote]'+q+'[/blockquote]';var u='[url='+location.href+']questo[/url]';finestra=window.open('','BBCode','location=no,toolbar=no,scrollbars=yes,width=350,height=450,status=no');finestra.document.write('<html><title>BBCode</title><body style="background-color:#456;color:#ffffff"><h3>Fare copia e poi incolla del BBCode:</h3><textarea cols="30" rows="20">'+u+'\n'+q+'</textarea></body></html>');

AGGIORNAMENTO2: questa è un'altra versione che al posto di inserire il link come "questo" mette l'esatto titolo della finestra da cui state citando (nei blog per avere il titolo alla notizia dovete accertarvi di leggere la notizia da permalink)

javascript:var q=document.getSelection();if (q!='') q='[blockquote]'+q+'[/blockquote]';var u='[url='+location.href+']'+document.title+'[/url]';finestra=window.open('','BBCode','location=no,toolbar=no,scrollbars=yes,width=350,height=450,status=no');finestra.document.write('<html><title>BBCode</title><body style=%22background-color:#456;color:#ffffff%22><h3>Fare copia e poi incolla del BBCode:</h3><textarea cols=%2230%22 rows=%2220%22>'+u+'\n'+q+'</textarea></body></html>');
Ti è piaciuto l'articolo? Vota Ok oppure No. Grazie Mille!

Puoi votare l'articolo anche qui, gli articoli precedenti qui.

Ricerche rapide con Firefox

Questo è un trucchetto che si può usare con Firefox/SeaMonkey e che io trovo molto comodo in quanto permette di cercare in modo velocissimo con diversi motori di ricerca solamente posizionandosi sulla barra degli indirizzi (CTRL-L) e inserendo l'identificativo del motore di ricerca e la parola da cercare. Per esempio supponiamo di identificare la ricerca con Google con una g e quella su Wikipedia con una w per cercare con questi due motori di ricerca la parola "Firefox" sarà sufficiente scrivere nella barra degli indirizzi:

g firefox (per Google)

w firefox (per Widipedia)

In Firefox di default sono già inseriti due link quick search memorizzati nella cartella "Ricerche Rapide" (nella versione italiana "Quick Search" in quella inglese). Vediamo ora come aggiungere altri link Quick Search. Questo metodo non funziona sempre, ci sono infatti alcuni motori di ricerca che non restituiscono l'URL di ricerca sulla barra degli indirizzi e per questi bisogna dare un'occhiata al codice del motore di ricerca stesso per ottenere informazioni su come viene costruito l'URL di ricerca. Nella maggior parte dei casi comunque si riesce a cavarsela. Quello che dobbiamo fare è cercare la parola "stringa" con il nostro motore di ricerca e aggiungere il link risultante ai nostri segnalibri. Oraandando in Segnalibri -> Gestione Segnalibri, click col tasto destro sopra il segnalibro e dal menu contestuale scegliamo Proprietà e sostituiamo nell'url la parola "stringa" con "%s" e associamo una parola chiave a questo link. Ora supponendo di aver associato al nostro link la parola chiave ex basterà digitare sulla barra degli indirizzi:

ex ciao

per cercare "ciao" con quel motore di ricerca appena inserito.

Se volete velocizzare questa procedura e fare l'indicizzazione e la modifica descritta all'URL nella fase di aggiunta del segnalibro, senza quindi dover passare per la Gestione Segnalibri, è possibile farlo usando OpenBook. Dopo averla installata è sufficiente configurarla andando in:

Strumenti -> Estensioni -> OpenBook

NoTA 1: Si possono inserire più parole da cercare però in questo modo cercherete l'esatta stringa composta dalle due parole e non come succede usando il SearchBox le due parole separate.
NoTA 2: Mi sono accorto di una cosa, purtroppo a volte sono un pirla ! Per aggiungere il motore di ricerca e sufficiente andare nel text box di ricerca cliccare col tasto destro e scegliere "Aggiungere una parola chiave per questa ricerca".

Qui di seguito metto un elenco dei Quick Search che uso,se volete utilizzarli anche voi basta ci clicchiate sopra li aggiungiate ai Segnalibri e poi andate su "Gestione Segnalibri" per associare la parola chiave a ciascuno.

  • g - Ricerca con Google
  • dm - Cercate una parola sul dizionario online De Mauro Paravia
  • garz: - ricerca una parola sul dizionario online Garzanti, c’è bisogno però di registrarsi
  • gi- Per cercare un’immagine con Google
  • w - Per cercare su Wikipedia l’eciclopedia libera
  • y- Per fare una ricerca con Yahoo di tanto in tanto
  • asta - Per cercare cosa c’è di nuovo su AstalaVista
  • ansa- Ultime notizie da Ansa.it
  • ez - Per cercare un’estensione su ExtenZilla
  • ext - Per cercare a che tipo di file è associata una certa estensione, ad esempio se non sapete con che programma si apre un file “something.zip”, basta digitare “ext zip” nella barra degli indirizzi
  • geo- Per cercare informazioni su uno stato/città
  • yt- Per cercare video su Youtube
  • gv- Per cercare video su Google Video
  • ml- Per cercare fra gli articoli e nel forum di MegaLab.it

Tenete poi sempre presente che se scrivete un indirizzo non valido sulla barra di Firefox questo esegue una ricerca del tipo "Mi sento fortunato" con Google e vi apre la prima pagina che trova, per provare provate ad inserire nella barra degli indirizzi "mozillaitalia motori ricerca".