Notizie: scarica ora l'ultima versione disponibile di SeaMonkey!

Autore Topic: funzione per correggere maiuscolo in minuscolo  (Letto 5939 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline sforzy

  • Post: 30
funzione per correggere maiuscolo in minuscolo
« il: 29 Luglio 2011 10:15:53 »
Ciao a tutto il forum......
ho aperto questa discussione in quanto TB5 (come le versioni precedenti) non ha una funzione molto utile che spesso mi costringe a fare copia/incolla con word....
mi spiego meglio.....
spesso mi capito di iniziare a scrivere una mail senza accorgermi che sto scrivendo in maiuscolo, per cui mi trovo con intere frasi da trasformare in minuscolo e non trovo in TB5 una funzione simile  a quella che in word si ottiene selezionando il testo in maiuscolo e cliccando MAIUSC + F3, che trasforma tutto in minuscolo, poi tutto maiuscolo e poi solo le iniziali delle parole in maiuscolo.
Sembra una stron****a, ma a me succede spessissimo di sbagliare (maledetti laptop...si stava tanto bene con le tastiere dei desktop!!!  :x) e mi trovo a dover copiare il testo da TB5 a word, trasformarlo in minuscolo e ricopiarlo in TB5.
sapete se esiste un plugin o una funzione nascosta di TB5 per implementare questa funzione, che peraltro ha anche writer di openoffice (anche se usano una combinazione di tasti differente).

saluti a tutti

 :D

Offline miki64

  • Moderatore
  • Post: 36002
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #1 il: 29 Luglio 2011 18:59:28 »
Crea un profilo di test e prova questa estensione
Citazione
Transforms typed or static text to L337, ROT13, BASE64, HEX, URL, BIN, DES, AES, Morse code, DVORAK keyboard layout and to lower/to upper case functionality, Leet Font...
Se ho ben capito dovrebbe fare quello che tu chiedi.
Leet Key

edit: no, mannaggia... non è compatibile con la versione 5 di Thunderbird...

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #2 il: 30 Luglio 2011 12:25:26 »
Se vuoi puoi provare così:

1) installa: http://userchromejs.mozdev.org/ probabilmente devi forzarla, è comunque compatibile
2) Crei il file userChrome.js nella sottocartella chrome del profilo (se non esiste crea anche la sottocartella chrome)
3) mettici questo codice:


Codice: [Seleziona]
if (location == "chrome://messenger/content/messengercompose/messengercompose.xul") {
function to_lower(){
a=GetCurrentEditor();
b=a.getSelectionContainer();
b.innerHTML=b.innerHTML.toLowerCase();
}
var  k1 =  document.getElementById('key_newMessage');
var new_key = document.createElement('key');
new_key.setAttribute('id','key_to_lower_case');
new_key.setAttribute('key','j');
new_key.setAttribute('modifiers','accel');
new_key.setAttribute('oncommand','to_lower();');
k1.parentNode.appendChild(new_key);
}


è rozzo ma dovrebbe funzionare. Quando componi il messaggio, seleziona il testo in maiuscolo  e premi CTRL+J, dovrebbe diventare tutto minuscolo.

Ciao


Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #3 il: 30 Luglio 2011 12:45:11 »
è rozzo ma dovrebbe funzionare.

Un piccolo problema, ma solo su Linux e Mac OSX, potrebbe essere il fatto che la trasformazione in maiuscolo anche del codice HTML compromette tutti i riferimenti ai file (per esempio nelle immagini).

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #4 il: 30 Luglio 2011 12:51:18 »
Citazione
Un piccolo problema, ma solo su Linux e Mac OSX, potrebbe essere il fatto che la trasformazione in maiuscolo anche del codice HTML compromette tutti i riferimenti ai file (per esempio nelle immagini).

Hai ragione,  non ci avevo proprio pensato :oops:

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #5 il: 30 Luglio 2011 14:17:17 »
Prova questo:

Codice: [Seleziona]
function to_lower(){
 a=GetCurrentEditor();
 b=a.getSelectionContainer();
 var nodes = b.getElementsByTagName("*");
 for (i=0;i<nodes.length;i++) {
   if (nodes[i].firstChild && nodes[i].firstChild.nodeType == 3) {  
      nodes[i].firstChild.nodeValue = nodes[i].firstChild.nodeValue.toLowerCase();
      var next = nodes[i].firstChild;
      while (next.nextSibling) {
            next = next.nextSibling;
            if (next.nodeType == 3)
                     next.nodeValue = next.nodeValue.toLowerCase();
      }
   }
 }
}

« Ultima modifica: 30 Luglio 2011 14:30:34 da klades »

Offline sforzy

  • Post: 30
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #6 il: 31 Luglio 2011 10:10:35 »
...grazie a tutto per le risposte.
Klades...ma questo ultimo suggerimento lo devo usare con la procedura suggerita sopra da Gialloporpora (quella che avrebbe creato problemi con codice HTML) ???

Per voi è una procedura dalla quale si puà tornare indietro se qualcosa non funziona? Non vorrei inchiodare TB5 con tutte le mail di lavoro (vabbè faccio backup della cartella del mio profilo, e casomai ripristino)



Edit by gialloporpora: per favore non mettere il testo citato in fondo, se stai rispondendo al messaggio immediatamente precedente puoi ometterlo del tutto che appesantisce la lettura della discussione. Evita anche le x in luogo di per
« Ultima modifica: 31 Luglio 2011 13:19:25 da gialloporpora »

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #7 il: 31 Luglio 2011 13:26:08 »
La procedura è la stessa, @klades ha migliorato di molto la funzione per mettere in minuscolo il testo, io mi ero limitato a mettere tutto minuscolo, il codice di @klades è molto più intelligente e mette in minuscolo solo il testo e non ciò che è contenuto nei tag HTML.
Devi solo prendere la funzione di @klades e aggiungere la parte di codice nel mio posto che parte da:
Codice: [Seleziona]
var new_key = document.createElement('key');

Non credo possa causare nessun problema a TB, in ogni caso è solo codice che lavora nel composer, non tocca gli archivi.

L'estensione è questa:s
http://userchromejs.mozdev.org/

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #8 il: 31 Luglio 2011 17:52:41 »
Ho fatto alcune prove e posso dire che il codice che ho messo sopra non funziona proprio... in realtà è una cosa mica tanto semplice da fare :-)

Un codice, questo testato, che funziona è:

Codice: [Seleziona]
function to_lower() {
  var a=GetCurrentEditor();
  a.QueryInterface(Components.interfaces.nsIPlaintextEditor);
  var b=a.selection;
  a.insertText(b.toString().toLowerCase());
  a.deleteSelection(0);
}

L'unico problema è che se si seleziona del testo con formattazione "mista", viene tutto uniformato alla formattazione della parte iniziale.
Comunque penso che possa essere lo stesso utile.

Offline miki64

  • Moderatore
  • Post: 36002
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #9 il: 31 Luglio 2011 21:39:15 »
La discussione mi interessa molto, ma vedo che purtroppo una soluzione definitiva non c'è.
Intervengo però solo ora a disturbarvi, chiedendovi da ignorante:
nella finestra di composizione di Thunderbird se si richiamasse (tramite un pulsante all'uopo) del codice JavaScript (quello che ci ha fornito Sokak tempo fa per la correzione dei post tutti in maiuscolo) non funzionerebbe nulla, giusto?

Offline sforzy

  • Post: 30
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #10 il: 01 Agosto 2011 09:15:41 »
A questo punto direi di vedere se arrivano altri suggerimenti o se qualcuno ha trovato soluzioni + facili da implementare.

Ma che dite...non conviene postare qualcosa al team di mozilla (se non sbaglio TB5 ora viene gestito dallo stesso team che sviluppa FFOX....giusto?), magari nel sito in inglese???
non è che per caso avete il link al portale dove si fanno le segnalazioni agli sviluppatori??

A presto a tutti....e grazie di nuovo x le risposte

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #11 il: 01 Agosto 2011 12:02:42 »
Citazione
nella finestra di composizione di Thunderbird se si richiamasse (tramite un pulsante all'uopo) del codice JavaScript (quello che ci ha fornito Sokak tempo fa per la correzione dei post tutti in maiuscolo) non funzionerebbe nulla, giusto?

Michele,
un conto è correggere del testo, un conto testo senza rompere la formattazione HTML. Io uso text/plain, quindi in questo caso è facile :-).
Quel codice fa più o meno quello che dici, però aggiunge uno shortcut per semplicità (il pulsante necessita di un'immagine).

Comunque se il problema è quello dei file system case sensitive, un altro approccio potrebbe essere quello di trovare tutti i path con una regex e rimetterli al loro posto dopo la trasformazione.
« Ultima modifica: 01 Agosto 2011 22:13:13 da miki64 »

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #12 il: 01 Agosto 2011 13:22:00 »
Comunque se il problema è quello dei file system case sensitive, un altro approcio potrebbe essere quello di trovare tutti i path con una regex e rimetterli al loro posto dopo la trasformazione.

Il problema non è solo quello, devi anche trovare il modo di applicare la modifica solo alla parte di testo selezionata (e non a tutto il nodo che la contiene).
Il primo codice che ho postato va bene per modificare tutto il testo in minuscolo.
Il secondo agisce solo sulla parte selezionata, sia in HTML che in formato testo, con il limite che ho indicato.
Non so se sia possibile fare di meglio (probabilmente sì, ma al momento non mi viene in mente niente).

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #13 il: 01 Agosto 2011 14:27:08 »
Citazione
Il problema non è solo quello, devi anche trovare il modo di applicare la modifica solo alla parte di testo selezionata (e non a tutto il nodo che la contiene).

Ah, ok, ora ho capito  cosa intendi.



Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: funzione per correggere maiuscolo in minuscolo
« Risposta #14 il: 02 Agosto 2011 14:34:40 »
@klades,
una  curiosità: che significato ha il valore nodeType?
3 dovrebbe essere un nodo che contiene solo testo vero?
1 un nodo che contiene anche codice HTML? E per quanto riguarda il 2 non ho nessuna idea.

0 Utenti e 1 Visitatore stanno visualizzando questo topic.