In questa sezione verrà analizzato l'uso di Emacs per la gestione dei file PO.
Emacs è un editor di testo (e molto altro) un po' particolare. Il suo sviluppo ha via molti anni fa e la sua struttura ed interfaccia risente ancora di questa "vecchiaia". Semplicemente, Emacs segue sue proprie regole ed è da solo un ambiente completo per chi ha necessità di sviluppo.
Non ci si deve aspettare la presenza di dialogi di apertura e salvataggio di file, o pulsanti e caselle di spunta per le opzioni. Emacs è pensato per essere usato senza dover togliere le mani dalla tastiera, senza dover usare il mouse; allo stesso tempo, però, Emacs usa delle scorciatoie non standard, retaggio dei suoi venti anni di gloriosa storia. Ad esempio per selezionare del testo è necessario in primo luogo premere Ctrl+barra spaziatrice per attivare la modalità di selezione, quindi spostarsi (con i tasti freccia o con le scorciatoie per selezionare l'intera parola o riga o paragrafo) fino ad evidenziare la porzione testo voluta. Una volta evidenziato, è possibile copiare il testo con Alt+W oppure tagliarlo con Ctrl+W, quindi incollarlo altrove con Ctrl+Y.
Per imparare ad usare Emacs rimandiamo all'ottimo tutorial in linea. Qui vengono dettagliatamente spiegate tutte le funzionalità per l'editing del testo.
Su un sistema ben configurato, all'apertuta di un file PO, Emacs attiverà il cosiddetto po-mode, ossia renderà disponibili una serie di scorciatoie e funzionalità utili per la gestione di un file PO ed allo stesse tempo "colorerà" il file per evidenziare i diversi elementi.
Emacs è provvisto di diversi mode (o modalità), ognuno dei quali permette all'utente di gestire in modo più semplice il file da editare. Come spiegato in Sezione 3 - Iniziare una traduzione, i file PO hanno una certa struttura e debbono rispettare una certa sintassi: ad esempio inserire del testo al di fuori delle virgolette che delimitano un msgstr è un errore che porta alla non compilazione del file PO, così come non inserire uno \n alla fine di un messaggio quando è presente alla fine del msgid.
Emacs, usando il po-mode, permette di:
La cosa importante da capire per usare al meglio il po-mode è che la navigazione nel file è disgiunta dalla modifica dei messaggi. Se infatti avessimo aperto il file PO con un altro editor di testo come gedit, avremmo potuto spostarci nel file solo usando i tasti freccia della tastiera e/o i tasti PagSu e PagGiù; la pressione di un qualsiasi altro tasto (lettere o numeri) avrebbe inserito qualcosa nel punto in cui si trovava il cursore. Il po-mode agisce diversamente: la modifica è permessa solo di un msgstr alla volta e solo dopo aver indicato (premendo il tasto Invio) di volerlo modificare. Qualsiasi pressione di qualsiasi tasto che non sia una scorciatoia quando un msgstr non è stato "aperto", o attivato, per la modifica, non inserisce alcunché nel file PO.
In pratica, usando il po-mode mode bisogna spostarsi sul messaggio da modificare usando i tasti freccia o le scorciatoie fornite dal po-mode stesso, premere Invio per attivare la modifica del messaggio selezionato, modificare il testo del msgstr, ed confermare le modifiche con un Ctrl+C+C che fa tornare nella modalità navigazione. Da notare che durante la fase di modifica del msgstr, sono disponibili tutte le funzionalità di editing del testo semplice di Emacs e la finestra viene divisa in due: la parte superiore con il file PO ed il msgid del messaggio che si sta editando evidenziato, la parte inferiore con in contenuto del msgstr.
Per ragioni tipografiche, in questa guida le scorciatoie di Emacs non sono scritte così come da convenzione dei vari manuali e tutorial del programma. Ctrl+C+C ad emempio corrisponde a ...., cioè alla sequenza "premere e tenere premuto il tasto Ctrl, quindi premere C una prima ed una seconda volta, quindi rilasciare Ctrl".
Il primo aspetto interessante del po-mode riguarda la modalità fornita per spostarsi all'interno del file.
Oltre infatti alla possibilità di passare una riga sotto o sopra rispetto alla pozione corrente del cursore con i tasti freccia su e freccia giù, o una pagina su e giù, con il po-mode risulta possibile passare direttamente al messaggio precedente o successivo, indipendentemente dal numero di righe da "saltare", discriminando tra messaggio, messaggio tradotto, messaggio fuzzy, messaggio non tradotto e messaggio obsoleto. La seguente tabella elenca scorciatoie ed azione compiuta.
Scorciatoia | Stamperebbe | Funzione |
---|---|---|
N | n | Sposta il puntatore sul messaggio seguente |
P | p | Sposta il puntatore sul messaggio precedente, di tipo qualsiasi |
T | t | Sposta il puntatore sul messaggio tradotto seguente, di tipo qualsiasi |
Maiusc+T | T | Sposta il puntatore sul messaggio tradotto precedente |
F | f | Sposta il puntatore sul messaggio fuzzy successivo |
Maiusc+F | F | Sposta il puntatore sul messaggio fuzzy precedente |
u | u | Sposta il puntatore sul messaggio non tradotto successivo |
Maiusc+U | U | Sposta il puntatore sul messaggio non tradotto precedente |
O | o | Sposta il puntatore sul messaggio obsoleto successivo |
Maiusc+O | O | Sposta il puntatore sul messaggio obsoleto precedente |
Per tener conto della differente notazione tra Emacs e lo GNOME Desktop, nella prima colonna della tabella sono riportate le scorciatoie da tastiera così come da convenzione dello GNOME Desktop, in seconda colonna la convenzione di Emacs, ossia il carattere che deve essere inviato da tastiera. Tenere presente infatti che Emacs non opera per scorciatoie, ma per segnale ricevuto, per cui un Maiusc+lettera è equivalente alla pressione del tasto BloccaMaiusc seguito da una lettera.