+calcurse
- un organizer testuale
+
+Abstract
Questo manuale descrive le funzionalità +dicalcurse
, e il suo utilizzo. Innanzitutto vengono
+descritti la procedura di installazione a partire dai sorgenti e le
+opzioni della linea di comando; successivamente viene presentata
+l'interfaccia utente e tutte le opzioni di configurazione che
+modificano il comportamento di calcurse
. Infine viene
+descritta la procedura per la segnalazione dei bachi e come
+partecipare allo sviluppo di calcurse.
+Table of Contents
+ +1. Introduzione
+
+ Calcurse
è un programma testuale per la gestione
+ dell'agenda. Permette la gestione degli eventi, degli appuntamenti
+ e dei compiti quotidiani: un sistema configurabile di avvisi ricorda
+ all'utente l'avvicinarsi delle scadenze; l'interfaccia testuale può
+ essere personalizzata secondo le necessità dell'utente. Tutti i
+ comandi sono documentati da un sistema d'aiuto in linea.
+
2. Panoramica
+2.1 Storia dello sviluppo
++ Ho cominciato a pensare a questo progetto mentre stavo finendo il + mio dottorato in astrofisica... Stava diventando piuttosto difficile + organizzare la mia vita per cui avevo veramente necessità di un + valido strumento per aiutarmi in questo compito difficile ;) +
+
+ Personalmente apprezzo i programmi con interfaccia utente testuale
+ perché sono semplici, veloci, portabili ed efficienti perciò ho
+ pensato di realizzare un semplice calendario testuale.
+
+ Inoltre volevo imparare il linguaggio C
che avevo usato
+ solo durante i miei studi secondari; perciò ho pensato che questo
+ sarebbe stato un buon progetto per organizzarmi e per imparare
+ qualche nozione di C
!
+
+ Sfortunatamente ho finito il mio dottorato prima di aver
+ terminato calcurse
; in ogni modo ho continuato a
+ lavorarci sperando che potesse risultare utile anche ad altre
+ persone. Perciò eccolo qua....
+
+
+ Perché il nome 'calcurse'? Perché è semplicemente l'unione di + 'CALendar' e 'nCURSEs', dal nome delle librerie usate per realizzare + l'interfaccia utente. +
+ +2.2 Principali +caratteristiche
+
+ Calcurse
è multi-piattaforma e vuole essere leggero,
+ veloce e affidabile; deve essere usato all'interno della console o
+ in un terminale, localmente o su un computer remoto mediante una
+ connessione di tipo ssh.
+
+ Calcurse
può essere usato in due diversi modi,
+ interattivo e non-interattivo. Nel primo modo permette all'utente di
+ controllare la propria agenda praticamente ovunque grazie
+ all'interfaccia testuale.
+ Il secondo modo permette di aggiungere appuntamenti semplicemente
+ usando appropriati argomenti alla linea di comando all'interno di un
+ compito di cron o di uno script di avvio della shell.
+
+ Inoltre calcurse
è stato realizzato pensando all'utente
+ finale perciò cerca di essere quanto più semplice possibile. Questo
+ comporta un completo aiuto in linea oltre ad una barra di stato in
+ cui sono elencate tutte le azioni disponibili.
+ Anche l'interfaccia utente è configurabile permettendo di poter
+ scegliere fra diverse combinazioni di colori e layout.
+ Infine un sistema configurabile di allarmi ricorda all'utente
+ l'avvicinarsi degli appuntamenti.
+
3. Installazione
+3.1 Requisiti
+3.1.1 Librerie ncurses
+
+ Calcurse
richiede esclusivamente un
+ compilatore C
quale cc
+ oppure gcc
nonché le librerie ncurses
.
+ È piuttosto difficile non avere le
+ librerie ncurses
già correttamente installate sul
+ proprio computer ma nel caso è possibile trovarle all'indirizzo:
+
http://ftp.gnu.org/pub/gnu/ncurses/+ + +
3.1.2 Librerie gettext
+
+ Calcurse
ha il supporto per la localizzazione
+ (i18n da qui in avanti) attraverso
+ l'utilità gettext
perciò può usare messaggi in molte
+ lingue se compilato con il relativo supporto
+ (detto NLS).
+
+
+ Comunque NLS è opzionale e se non lo si
+ desiderasse è possibile disabilitarlo dando
+ l'opzione --disable-nls
a configure
(vedi
+ la sezione Procedura
+ d'installazione).
+
+ Per verificare che le utilità gettext
sono installate
+ sul vostro computer cercate il file di header libintl.h
+ ad esempio:
+
locate libintl.h+
+ Nel caso non troviate il file potete ottenere i sorgenti
+ di gettext
al seguente indirizzo:
+
http://ftp.gnu.org/pub/gnu/gettext/+
+
Nota:
+
+ Se anche si fosse trovato il file libintl.h
+ potrebbe essere necessario specificarne la posizione durante
+ la procedura d'installazione
+ usando l'opzione --with-libintl-prefix
+ con configure
.
+
+ Questo perché configure
potrebbe non essere in
+ grado di localizzarlo se fosse stato installato in una
+ posizione inusuale.
+
3.2 Procedura d'installazione
++ Innanzitutto è necessario scompattare l'archivio contenente i + sorgenti: +
+tar zxvf calcurse-2.0.tar.gz+
+ Una volta verificati i requisiti e scompattato l'archivio la + procedura d'installazione è piuttosto semplice visto che segue i tre + passi standard: +
-
+
./configure
+ make
+ make install
(potrebbero essere necessari i + diritti di root)
+
+ Usate ./configure --help
per l'elenco delle opzioni
+ possibili.
+
4. Elementi di base di calcurse
+4.1 Avvio
+4.1.1 Argomenti della linea di comando
+
+ Calcurse
accetta le seguenti opzioni della linea di
+ comando (sia nel formato breve che in quello lungo):
+
+ +
-
+
-a, --appointment
+ -
+ Mostra gli appuntamenti e gli eventi per il giorno corrente e
+ poi esce.
+
Nota: il calendario + dal quale leggere gli appuntamenti può essere specificato con + l'opzione '-c'. +
+
+ -c <file>, --calendar <file>
+ -
+ Indica il file calendario da usare.
+
+ Il calendario predefinito è
~/.calcurse/apts
(vedi + la sezionecalcurse
+ files). +
+ -d <data|num>, --day <data|num>
+ -
+ Mostra gli appuntamenti per la data indicata o per il numero
+ indicato per i giorni futuri a seconda del formato
+ dell'argomento. Sono possibili due formati:
+
+
-
+
- una data nella forma 'mm/gg/aaaa'. +
- un numero 'n'. +
calcurse -d 3
verrà mostrata + la lista degli appuntamenti di oggi, domani e dopodomani. + +Nota: così come con + l'argomento '-a' il calendario dal quale leggere gli + appuntamenti può essere specificato con l'argomento '-c'.
+
+ -h, --help
+ - + Stampa la versione breve del testo che descrive le opzioni della + riga di comando ed esce. + +
-n, --next
+ -
+ Stampa il prossimo appuntamento nelle successive 24 ore ed esce.
+ Il tempo stampato indica le ore e i minuti mancanti
+ all'appuntamento.
+
+
Nota: il calendario + dal quale leggere gli appuntamenti può essere specificato con + l'opzione '-c'.
+
+
+ -t[num], --todo[=num]
+ -
+ Stampa la lista delle 'attività ' ed esce. Se viene specificato
+ anche il numero
num
opzionale vengono stampate + esclusivamente le attività che hanno priorità pari al numero + stesso. + +Nota: il valore + della priorità è compreso fra 1 (maggiore priorità ) e 9 + (minore priorità ).
+
+ -v, --version
+ -
+ Stampa la versione di
calcurse
ed esce. +
+ -x, --export
+ -
+ Esporta tutti i dati nel formato di iCalendar; gli eventi, gli
+ appuntamenti e le attività sono convertiti e stampati sullo
+ standard output.
+
+
Nota: è possibile + reindirizzare lo standard output per salvare i dati su un file + con un comando del tipo +
+$ calcurse --export > my_data.ics
+
4.1.2 Variabili d'ambiente per l'i18n
+
+ Calcurse
può essere compilato con il supporto per la
+ localizzazione
+ (vedi librerie
+ gettext
).
+
+ Di conseguenza, se preferite che i messaggi del programma vengano
+ mostrati nella vostra lingua, innanzitutto verificate che questa sia
+ disponibile nel file po/LINGUAS
: questo file indica
+ quali lingue sono supportate mostrando il codice di due lettere
+ corrispondente (ad esempio fr indica il
+ francese). Nel caso in cui la vostra lingua non fosse presente
+ sarebbe estremamente apprezzabile il vostro aiuto nella traduzione
+ di calcurse
(vedi la sezione Come
+ contribuire).
+ Se invece la vostra lingua è presente avviate calcurse
+ con il seguente comando:
LC_ALL=fr_FR calcurse+
+ dove fr_FR è il nome della localizzazione + d'esempio che deve essere sostituita dal nome della localizzazione + desiderata. +
+
+ È anche necessario indicare il set di caratteri da usare
+ perché in alcuni casi gli accenti e altri caratteri simili non
+ vengono mostrati correttamente. Questo set di caratteri è indicato
+ all'inizio del file po corrispondente alla localizzazione prescelta:
+ ad esempio nel file fr.po viene indicato l'uso del set iso-8859-1 e
+ di conseguenza dovete avviare calcurse
con il seguente
+ comando:
LC_ALL=fr_FR.ISO8859-1 calcurse+ +
4.1.3 Altre variabili +d'ambiente
+
+ Le seguenti variabili d'ambiente modificano il funzionamento
+ di calcurse
:
-
+
VISUAL
+ - Indica l'editor usato per scrivere le note. + +
EDITOR
+ - Se non viene impostata la variabile
VISUAL
viene + usato l'editor indicato dalla variabileEDITOR
come + editor di default; se non viene definita nessuna variabile viene + usato l'editor/usr/bin/vi
. +
+ PAGER
+ - Specifica il visualizzatore di default usato per leggere le
+ note. Se questa variabile non viene impostata viene
+ usato
/usr/bin/less
. +
+
4.2 Interfaccia utente
+4.2.1 Modalità non-interattiva
+
+ Quando calcurse
viene avviato con una delle opzioni
+ -a
, -d
, -h
, -n
, -t
, -v
, -x
+ funziona nella modalità non-interattiva; questo significa che dopo
+ aver mostrato le informazioni richieste calcurse
esce riportando al
+ prompt della shell.
+ In questo modo è possibile ad esempio aggiungere una linea
+ siffatta 'calcurse --todo --appointment'
nel file di
+ avvio della shell per mostrare al logon un elenco dei compiti e
+ degli appuntamenti previsti per la data odierna.
4.2.2 Modalità interattiva
+
+ Se viene avviato senza argomenti oppure solo con
+ l'opzione '-c'
calcurse
si avvia nella modalitÃ
+ interattiva; in questa modalità viene mostrata un'interfaccia
+ contenente tre differenti sezioni (fra le quali è possibile passare
+ con il tasto 'TAB'), una barra di notifica ed una barra di stato
+ (vedi la figura sotto).
+
+ + Sezione appuntamenti ---. .--- Sezione calendario + | | + v v + +------------------------------------++----------------------------+ + | Appointments || Calendar | + |------------------------------------||----------------------------| + | (|) April 6, 2006 || April 2006 | + | ||Mon Tue Wed Thu Fri Sat Sun | + | || 1 2 | + | || 3 4 5 6 7 8 9 | + | || 10 11 12 13 14 15 16 | + | || 17 18 19 20 21 22 23 | + | || 24 25 26 27 28 29 30 | + | || | + | |+----------------------------+ + | |+----------------------------+ + | || ToDo | Sezione + | ||----------------------------| attività + | || | | + | || | | + | || |<--. + | || | + +------------------------------------++----------------------------+ + |---[ Mon 2006-11-22 | 10:11:43 ]---(apts)----> 01:20 :: lunch <---|<--. + +------------------------------------------------------------------+ barra di notifica + | ? Help R Redraw H/L -/+1 Day G GoTo C Config | + | Q Quit S Save J/K -/+1 Week Tab Chg View |<-. + +------------------------------------------------------------------+ | + | + barra di stato + + ++
+ La prima sezione rappresenta un calendario dove è possibile + evidenziare una particolare data; la seconda sezione contiene la + lista degli eventi e degli appuntamenti per la data evidenziata; ed + infine la terza sezione contiene la lista delle attività non + assegnate a nessun giorno particolare.
++ Nella sezione degli appuntamenti si può notare il + segno '(|)' accanto alla data indicante la + fase lunare secondo la seguente tabella: + +
-
+
- '
|)
':
+ - primo quarto +
- '
(|)
':
+ - plenilunio +
- '
(|
':
+ - terzo quarto +
- '
|
':
+ - novilunio +
- nessun segno: +
- la fase della luna non corrisponde a nessuna di queste +
+ Nell'ultima riga dello schermo si trova la barra di stato che + indica le azioni possibili e le relative scorciatoie di tastiera. +
++ Al di sopra della barra di notifica si trova la barra di notifica + che indica (da destra a sinistra): la data e l'ora correnti, il file + calendario attualmente in uso (apts nella figura precedente, che è + il nome di default, vedi la prossima sezione) e il prossimo + appuntamento nelle successive 24 ore; nella figura d'esempio viene + indicato l'appuntamento per il pranzo fra un'ora e venti. +
+ +Nota: alcune azioni, quali + modifica o aggiunta di una voce, richiedono l'inserimento del testo + mediante l'editor a linea compreso nel programma.
+ ++ All'interno di questo editor se appare una linea maggiore + dell'ampiezza dello schermo vengono mostrati i caratteri '>', + '*', o '<' nell'ultima colonna nel caso ci siano altri caratteri + successivamente, prima o dopo della posizione corrente; è inoltre + possibile scorrere orizzontalmente.
+ ++ Inoltre alcuni comandi sono collegati ad alcune scorciatoie. Di + seguito sono elencati alcuni comandi (dove '^' indica per il tasto + Control): +
-
+
^a
:
+ - sposta il cursore all'inizio della riga di input +
^b
:
+ - sposta il cursore indietro +
^d
:
+ - cancella il carattere davanti +
^e
:
+ - sposta il cursore alla fine della riga di input +
^f
:
+ - sposta il cursore avanti +
^h
:
+ - cancella il carattere dietro +
^k
:
+ - cancella dal cursore fino alla fine della riga di input +
ESCAPE
:
+ - cancella la modifica +
4.3 File di calcurse
+
+ Al primo avvio di calcurse
viene creata nella vostra
+ directory $HOME
questa gerarchia di directory:
+
+ $HOME/.calcurse/ + |___notes/ + |___conf + |___apts + |___todo ++ +
-
+
notes/
:
+ - questa sotto-directory contiene le descrizioni delle note + allegate agli appuntamenti, eventi o attività . Per ogni nota viene + creato un file di testo con un nome creato dalla funziona + mkstemp(3) che dovrebbe essere unico ma senza alcuna correlazione + evidente con la descrizione dell'oggetto al quale viene collegato. + + +
conf
:
+ - questo file contiene le configurazioni dell'utente + +
apts
:
+ - questo file contiene gli eventi e gli appuntamenti + dell'utente + +
todo
:
+ - questo file contiene l'elenco delle attività +
4.4 Aiuto in linea
++ In ogni momento è possibile richiedere il sistema dell'aiuto in + linea premendo il tasto '?': una volta avviato si possono richiedere + le informazioni su un certo comando premendo il tasto relativo. +
+ +5. Opzioni
+
+ Tutti i parametri di calcurse
sono configurabili dal menù
+ Configuration accessibile premendo il tasto 'C' che porta ad un
+ sotto-menù con quattro possibili scelte: premendo ancora 'C' si
+ raggiunge alla configurazione dello schema dei colori; premendo 'L'
+ è possibile scegliere la configurazione dell'interfaccia dello
+ schermo principale di calcurse
(praticamente le posizioni relative
+ dei tre pannelli); premendo 'G' è possibile modificare alcune
+ opzioni generali; ed infine premendo 'N' è possibile modificare le
+ impostazioni della barra di notifica.
+
5.1 Opzioni generali
+
+ Queste opzioni controllano il comportamento generale di calcurse
:
+
-
+
auto_save
+ (default: yes)
+ -
+ Questa opzione permette di salvare automaticamente i dati
+ dell'utente all'uscita del programma.
+
attenzione: i + dati non verranno salvati automaticamente se impostato + a no. Questo comporta che sarà + necessario premere 'S' per salvare i dati eventualmente + modificati. +
+ confirm_quit
+ (default: yes)
+ -
+ Se impostato a yes è necessario
+ confermare l'uscita dal programma; altrimenti premendo 'Q'
+
calcurse
esce senza chiedere conferma. +
+
+ confirm_delete
+ (default: yes) +
+ - + Se viene impostata a yes premendo + 'D' per cancellare una voce (che può essere + un'attività , + un appuntamento, o + un evento) è necessario + confermare. Altrimenti non è necessaria alcuna conferma. + + +
skip_system_dialogs
+ (default: no) +
+ - + Impostando questa opzione a yes + non verranno più mostrati i messaggi di sistema + riguardanti il salvataggio e la lettura dei dati, utile + per velocizzare le operazioni di input e output. + +
skip_progress_bar
+ (default: no)
+ -
+ Se impostato a yes non verrÃ
+ visualizzata la barra di avanzamento che indica il
+ salvataggio in corso dei files insieme al file che viene
+ salvato (vedi la
+ sezione
calcurse
files). +
+ week_begins_on_monday
+ (default: yes)
+ - + Con questa opzione è possibile indicare con quale giorno, + domenica o lunedì, far iniziare la settimana nella + finestra del calendario. + +
5.2 Color themes
+
+ Il tema del colore di calcurse
può essere personalizzato a seconda
+ delle necessità dell'utente. Nella pagina di configurazione è
+ possibile cambiare i colori dello sfondo e del primo piano del tema
+ predefinito: usando i tasti cursore o i tasti di movimento definiti
+ per lo spostamento in calcurse
, il tasto 'X' o lo spazio per
+ selezionare il colore l'utente può vedere l'anteprima del tema
+ prescelto. È anche possibile mantenere i colori predefiniti del
+ terminale selezionando la relativa opzione nella lista.
+
+ Il tema scelto viene applicato ai bordi del pannello, ai titoli, + alle indicazioni delle scorciatoie da tastiera e in generale alle + informazioni mostrate nella barra di stato. Fra gli altri è anche + presente un tema in bianco e nero per usarlo sui terminali monocromatici. +
+ +
+ Nota: i colori possono anche
+ non essere supportati a seconda del tipo di terminale e dal
+ valore della variabile d'ambiente $TERM
; nel
+ caso in cui il tipo di terminale non li supportasse apparirÃ
+ un messaggio d'errore provando a cambiare i colori.
+ Se sapete che il vostro terminale supporta i colori ma
+ questi non appaiono provate ad impostare la variabile
+ $TERM
ad un altro valore (come ad
+ esempio xterm-xfree86).
+
5.3 Configurazione del layout
+
+ Il layout è la posizione dei pannelli all'interno dello schermo di
+ calcurse
. Il layout predefinito è così disposto: il pannello del
+ calendario in alto a destra, il pannello delle attività in basso a
+ destra e il pannello degli appuntamenti sul lato sinistro dello
+ schermo (vedi la figura della
+ sezione Modo
+ interattivo).
+ Scegliendo un altro layout è possibile personalizzare l'aspetto di
+ calcurse
a seconda delle necessità .
+
5.4 Impostazioni della barra delle notifiche
++ Le seguenti opzioni modificano il comportamento della barra delle + notifiche: +
+-
+
notify-bar_show
+ (default: yes)
+ - + Questa opzione imposta la visibilità della barra delle notifiche. + + +
notify-bar_date
+ (default: %a %F)
+ -
+ Questa opzione imposta il formato utilizzato per la data mostrata
+ all'interno della barra delle notifiche. È possibile vedere
+ tutti i possibili formati digitando
man 3 strftime
+ all'interno di un terminale. +
+
+ notify-bar_time
+ (default: %T)
+ -
+ Questa opzione imposta il formato utilizzato per mostrare l'orario
+ all'interno della barra delle notifiche. È possibile vedere
+ tutti i possibili formati digitando
man 3 strftime
+ all'interno di un terminale. +
+
+ notify-bar_warning
+ (default: 300)
+ -
+ Nel caso sia presente un appuntamento marcato come 'important'
+ nell'intervallo definito (in secondi) nella variabile
+ 'notify-bar_warning' viene mostrata lampeggiante la descrizione
+ dell'appuntamento stesso all'interno della barra delle notifiche.
+ Inoltre viene eseguito il comando definito
+ dall'opzione
notify-bar_command
. + In questo modo è possibile essere avvisati dell'avvicinarsi + di un appuntamento. +
+
+ notify-bar_command
+ (default: printf '\a')
+ -
+ Questa opzione imposta il comando che deve essere avviato
+ all'avvicinarsi di un appuntamento marcato come 'important'. Il
+ comando viene passato alla shell che lo deve interpretare. Per
+ sapere quale tipo di shell è in uso verificare il valore della
+ variabile d'ambiente
$SHELL
; nel caso questa + variabile non sia impostata viene usata/bin/sh
. + +Esempio: + Ammesso che sul sistema in uso sia disponibile il + comando
+mail
il seguente comando permette di + ricevere la notifica con un messaggio di posta elettronica di un + appuntamento imminente (la descrizione dell'appuntamento viene + inclusa anche nel corpo del messaggio): ++ calcurse --next | mail -s "[calcurse] upcoming appointment!" user@host.com +
+
+
6. Bachi conosciuti
+
+ L'evidenziazione delle voci appare scorretta usando calcurse con un
+ tema bianco e nero insieme alla variabile $TERM
+ impostata a xterm-color.
+
+ Per risolvere questo baco, così come affermato da Thomas E. Dickey
+ (manutentore di xterm
), si deve usare il
+ valore xterm-xfree86 per la
+ variabile $TERM
:
+
+ "The xterm-color value for $TERM is a bad choice for XFree86 xterm + because it is commonly used for a terminfo entry which happens to + not support bce. Use the xterm-xfree86 entry which is distributed + with XFree86 xterm (or the similar one distributed with ncurses)." ++ +
7. Segnalazione dei bachi e feedback
++ Siete invitati a segnalare i bachi e quant'altro a: +
+calcurse .at. culot .dot. org+
+ oppure direttamente all'autore: +
+frederic .at. culot .dot. org+ +
8. Come contribuire
+
+ Se siete interessati a collaborare al progetto dovreste prima di
+ tutto segnalare pregi e difetti oppure funzionalità mancanti in
+ calcurse
.
+ Attualmente è possibile partecipare alle traduzioni dei messaggi e
+ del manuale di calcurse
+
Nota: ogni aiuto ad
+ aumentare il supporto all'internazionalizzazione di calcurse
è
+ benvenuto ma prima di cominciare scrivete a
+ calcurse-i18n .at. culot .dot. org
+ per evitare di duplicare gli sforzi.
+
8.1 Tradurre la documentazione
+
+ La directory doc/ del pacchetto dei
+ sorgenti contiene anche le versioni già tradotte del manuale di
+ calcurse
; se il manuale non è ancora stato tradotto nella vostra
+ lingua ogni aiuto in tal senso sarà più che apprezzato.
+
+ Per fare questo è sufficiente copiare il file contenente il manuale
+ con il nome manual_XX.html
+ dove XX identifica il vostro linguaggio:
+ questo file deve essere tradotto ed inviato all'autore
+ (vedi Riportare i bachi e feedback) così che
+ possa essere incluso nel successivo rilascio
+ di calcurse
.
+
8.2 calcurse
i18n
+
+
+ Le utilità di calcurse
producono messaggi multi-lingua,
+ così come ricordato in precedenza: questa sezione contiene
+ informazioni sulla traduzione di questi messaggi nella vostra
+ lingua; queste informazioni sono però incomplete in quanto sono
+ concentrate sull'uso di gettext
+ per calcurse
. Per informazioni maggiormente
+ approfondite e per comprendere il Grande Disegno che sottintende al
+ Supporto delle Lingue fate riferimento al manuale di
+ GNU gettext
:
+
+
http://www.gnu.org/software/gettext/manual/+
+ Fondamentalmente sono tre le figure coinvolte nel processo di + traduzione: gli sviluppatori, i coordinatori per la lingua e i + traduttori. Dopo una rapida scorsa al funzionamento del meccanismo + verrà illustrato il compito dei traduttori. +
+ + +8.2.1 Panoramica
++ Per essere in grado di mostrare i messaggi nel linguaggio definito + dall'utente sono necessari due passaggi: + l'internazionalizzazione (i18n) e + la localizzazione (l10n). +
+
+ i18n è la possibilità per calcurse
di supportare svariati linguaggi
+ che viene inserita dagli sviluppatori, i quali indicano come
+ traducibili i messaggi e prevedono un sistema per mostrarli tradotti
+ mentre il programma sta funzionando.
+
+ l10n è invece il rendere calcurse
così programmato adatto al
+ linguaggio definito dall'utente traducendo le stringhe predefinite
+ dagli sviluppatori e impostando le variabili d'ambiente così che
+ calcurse
sia in grado di mostrare le stringhe tradotte.
+
+ Le stringhe traducibili vengono innanzitutto indicate come tali nei
+ sorgenti C
, poi raccolte in un file modello
+ (calcurse.pot - la cui
+ estensione pot
+ significa portable object template). Il
+ contenuto del file modello viene successivamente inserito nei file
+ per la traduzione per ogni linguaggio (ad
+ esempio fr.po per il francese, la cui
+ estensione po sta
+ per portable object, cioè leggibile e
+ modificabile dagli umani).
+ Ogni gruppo di traduzione prende questo file, ne traduce le stringhe
+ e poi le invia indietro agli sviluppatori.
+ Al momento della compilazione viene prodotta una versione binaria di
+ questo file per ragioni d'efficienza (nel nostro
+ esempio fr.mo -
+ dove mo sta per machine
+ object, cioè leggibile dai programmi) e successivamente
+ installato.
+ A questo punto calcurse
sarà in grado di usare questo file
+ traducendo le stringhe a seconda delle variabili d'ambiente
+ impostate dall'utente.
+
8.2.2 Compiti dei traduttori
++ Questi sono i passaggi da seguire qualora si volesse iniziare una + nuova traduzione: +
+-
+
-
+ Innanzitutto si deve trovare quale sia la sigla che individua il
+ linguaggio prescelto: ad esempio 'fr_FR' o più semplicemente 'fr'
+ indica il francese. Questo sarà il valore a cui impostare la e
+ variabile d'ambiente
LC_ALL
perché il programma + mostri correttamente le stringhe tradotte (vedi + Variabili d'ambiente per + l'i18). +
+
+ -
+ Poi si dovrà creare un nuovo file 'po' all'interno della
+ directory po/ usando un file modello con
+ il seguente comando:
+
'msginit -i calcurse.pot -o fr.po -l fr --no-translator'
. + Nel caso in cui il comandomsginit
non sia + disponibile sul sistema in uso copiate semplicemente il + file calcurse.pot con il nome (nel nostro + esempio) fr.po e modificatene gli header + a mano. +
+
+ A questo punto è possibile iniziare la traduzione del + file fr.po appena creato. +
+ + +8.2.3 I file po
++ Il formato dei file po è relativamente semplice essendo composti di + quattro componenti: +
+-
+
- + Linee locations: indicano la posizione in + cui si trovano le stringhe (nome del file e numero di linea) nel + caso sia necessario avere un po' di contesto. + +
- + Linee msgid: le stringhe da tradurre. + +
- + Linee msgstr: le stringhe tradotte. + +
- + Linee che iniziano con '#': commenti (alcuni + con significati speciali come spiegato più avanti). + +
+ Praticamente è necessario tradurre le suddette linee marcate + con msgstr con la traduzione delle linee + marcate con msgid +
++ Alcune note: +
-
+
- + Stringhe fuzzy + +
-
+ Potrete trovare alcune stringhe marcate con un
+ commento
"#, fuzzy"
, stringhe checalcurse
non + userà finché non verrà preso qualche provvedimento. Questo + perché la stringa in questione è stata cambiata nei sorgenti del + programma oppure perchégettext
ha tentato di + 'indovinarne' il significato basandosi su altre stringhe simili + già presenti nel file. Questo comporta la necessità di + controllare la traduzione. + Alcune volte la stringa originale è stata modificata per + correggere un errore ortografico; in questo caso non è + necessaria alcuna azione. Altre volte però la traduzione non è + più corretta per cui è necessario rivederla. + Una volta che la traduzione può essere considerata corretta è + sufficiente rimuovere la linea"#, fuzzy"
e questa + verrà usata normalmente. +
+ - + Stringhe c-format e sequenze speciali + +
-
+ Alcune stringhe potranno avere il commento
"#, c-format"
. + Questo indica che una componente della stringa ha un particolare + significato per il programma e che quindi avrà lasciata + inalterata. Ad esempio la sequenze come"%s"
+ vengono sostituite dal programma con altre stringhe. + Ci sono anche le sequenze del tipo\n
+ e\t
che non devono essere modificate perché la + prima indica un ritorno a capo e la seconda una tabulazione. +
+ - + Le traduzioni possono avere ritorno a + capo + +
-
+ Se le linee sono troppo lunghe possono essere interrotte così:
+
+ msgid "" + "some very long line" + "another line" +
+
+ - + Header dei file po + +
-
+ Nelle prime righe del file po la prima stringa costituisce un
+ header contenente alcune informazioni che devono essere
+ completate. Questi header sono:
+
+ "Content-Type: text/plain; charset=utf-8\n" +
+ È anche necessario compilare il campo 'Last-Translator' + di modo che altri potenziali collaboratori possano contattarvi + per unire gli sforzi o per segnalare errori e + correzioni. È possibile usare anche un soprannome o + aggiungere un indirizzo di posta elettronica come ad esempio: ++ "Last-Translator: Frederic Culot <frederic@culot.org>\n" +
+ - + Commenti + +
- + Aggiungere commenti (indicati dalle linee che iniziano con il + carattere '#') può essere un valido modo per indicare problemi o + difficoltà trovate nella traduzione ad altri collaboratori o in + generale ai partecipanti alla traduzione. + +
- + Dimensione delle stringhe + +
-
+
Calcurse
è un programma per la console scritto + usando le librerie 'curses' per cui può essere fortemente + limitato dalle dimensioni (in particolare dal numero di colonne) + del terminale, limitazioni che è necessario tenere a mente + mentre si traduce. Spesso una stringa deve essere tutta compresa + in una singola linea (la cui dimensione standard è di 80 + caratteri). Ponete attenzione e verificate che la vostra + traduzione si adatti alla posizione prevista sullo schermo. +
+ - + Alcuni utili strumenti + +
-
+ Il file po ha una struttura estremamente semplice per cui può
+ essere modificato anche direttamente con un normale editor di
+ testi; in ogni caso è possibile anche usare degli strumenti
+ specializzati:
+
-
+
-
+
poEdit
(http://www.poedit.org/) +
+ -
+
KBabel
+ (http://i18n.kde.org/tools/kbabel/) +
+ -
+
GTranslator
+ (http://gtranslator.sourceforge.net/) +
+ -
+
Emacs
po mode +
+ -
+
Vim
po mode +
+
+ -
+
- + E per chiudere + +
- + Mi auguro che troviate soddisfazione nel contribuire ad un mondo + maggiormente internazionalizzato. :) Se avete altre domande non + esitate a contattarmi all'indirizzo + frederic .at. culot .dot. org. + +
9. Link
++ Questa sezione contiene link e riferimenti che possono risultare + interessanti. +
+ +9.1 Homepage di calcurse
+
+ L'homepage di calcurse
è
+
http://culot.org/calcurse+ +
9.2 Mailing list degli annunci di calcurse
+
+ Se siete interessati al progetto e volete ricevere gli annunci
+ relativi ai rilasci delle nuove versioni (o all'inserimento di nuove
+ funzionalità ) potete iscrivervi alla mailing list degli annunci di
+ calcurse
.
+
+ Per iscriversi alla lista inviate un messaggio + all'indirizzo calcurse-announce .at. culot + .dot. org con "subscribe" nel soggetto. +
+ +9.3 Feed rss di calcurse
++ Un'altra possibilità per ricevere questi annunci è l'iscrizione al + feed RSS all'indirizzo: +
+http://culot.org/calcurse/news_rss.xml+
+ Questo feed viene aggiornato ogni volta viene pubblicata una nuova + versione con la descrizione delle funzionalità aggiunte. +
+ +10. Ringraziamenti
++ È giunto il momento per ringraziare le persone senza le quali + questo programma non esisterebbe. Questa è la lista: +
-
+
-
+ Alex per le sue patch, per il suo aiuto e consigli per la
+ programmazione in
C
+
+ -
+ Gwen per il testing e per i consigli in generale sulle migliorie
+ da apportare a
calcurse
+
+ -
+ Herbert per aver impacchettato
calcurse
per FreeBSD +
+ -
+ Zul per aver impacchettato
calcurse
per NetBSD +
+ -
+ Wain, Steffen e Ronald per aver
+ impacchettato
calcurse
per Archlinux +
+ -
+ Kevin, Ryan, e fEnIo per aver
+ impacchettato
calcurse
per Debian e Ubuntu +
+ -
+ Pascal per aver impacchettato
calcurse
per + Slackware +
+ -
+ Alexandre e Markus per aver impacchettato
calcurse
+ per Mac OsX e Darwin +
+ -
+ Igor per aver impacchettato
calcurse
per ALT Linux +
+ -
+ Joel per il suo script calendar che ha inspirato la vista a
+ calendario per
calcurse
+
+ -
+ Michael Schulz e Chris M. per la traduzione in tedesco
+ di
calcurse
e del manuale +
+ -
+ Jose Lopez per la traduzione in spagnolo
+ di
calcurse
e del manuale +
+ - + Neil Williams per la traduzione inglese + +
- + Tony per la sua patch che ha contribuito a migliorare la + funzione recur_item_inday() + +
- + Jeremy Roon per la traduzione olandese + +
- + Leandro Noferini per la traduzione italiana + +
-
+ le persone che hanno scritto software che mi piace e che
+ mi ha inspirato, e specialmente:
+
-
+
-
+
vim
per i tasti di movimento +
+ -
+
orpheus
eabook
per la + documentazione +
+ -
+
pine
eaptitude
per l'interfaccia + utente testuale +
+
+ -
+
+ Ed infine ancora molti ringraziamenti a tutti gli utenti
+ di calcurse
che mi hanno inviato i loro commenti.
+