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
- 2. Panoramica
- 3. Installazione
- 4. Elementi di base di calcurse
- 5. Opzioni
- 6. Bachi conosciuti
- 7. Riportare i bachi e feedback
- 8. Come contribuire
- 9. Links
- 10. Ringraziamenti
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.
Key bindings are also configurable, to fit everyone's needs.
  Infine un sistema configurabile di allarmi ricorda all'utente
  l'avvicinarsi degli appuntamenti.
The reminders are sent even if the user's interface 
is not running, as calcurse is able to run in background.
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/
Note: 
        It is also possible to link calcurse against the
        ncursesw library (ncurses with support for unicode).
        However, UTF-8 is not yet supported by calcurse.
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.8.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 sezionecalcursefiles).
- -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 (possible formats described below).
- un numero 'n'.
 calcurse -d 3verrà mostrata la lista degli appuntamenti di oggi, domani e dopodomani.Possible formats for specifying the date are defined inside the general configuration menu (see General options), using theinput_datefmtvariable.Nota: così come con l'argomento '-a' il calendario dal quale leggere gli appuntamenti può essere specificato con l'argomento '-c'. 
- -D <dir>, --directory <dir>
- 
            Specify the data directory to use. This option is incompatible with -c. If not specified, the default directory is'~/.calcurse/'.
- -h, --help
- Stampa la versione breve del testo che descrive le opzioni della riga di comando ed esce.
- -i <file>, --import <file>
- 
    Import the icalendar data contained infile.
- -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'. 
- -N, --note
- 
    When used with the '-a' or '-t' flag, also print note content if one is associated with the displayed item.
- -r[num], --range[=num]
- 
	    Print events and appointments for the num number of days and exit. If no num is given, a range of 1 day is considered.
- -s[date], --startday[=date]
- 
            Print events and appointments from date and exit. If no date is given, the current day is considered.
- -S<regex>, --search=<regex>
- 
            When used with the '-a', '-d', '-r', '-s', or '-t' flag, print only the items having a description that matches the given regular expression.
- --status
- 
    Display the status of running instances of calcurse. If calcurse is running, this will tell if the interactive mode was launched or if calcurse is running in background. The process pid will also be indicated.
- -t[num], --todo[=num]
- 
      Stampa la lista delle 'attività' ed esce. Se viene specificato
      anche il numero numopzionale vengono stampate esclusivamente le attività che hanno priorità pari al numero stesso.The priority number must be between 1 (highest) and 9 (lowest). It is also possible to specify '0' for the priority, in which case only completed tasks will be shown.
- -v, --version
- 
      Stampa la versione di calcurseed esce.
- -x[format], --export[=format]
- Export user data to specified format. Events, appointments and todos are converted and echoed to stdout. Two possible formats are available: ical and pcal (see section Links below). If the optional argumentformatis not given, ical format is selected by default.Nota: è possibile reindirizzare lo standard output per salvare i dati su un file con un comando del tipo $ calcurse --export > my_data.dat
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 VISUALviene usato l'editor indicato dalla variabileEDITORcome 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
Note:
        Key bindings that are indicated in this manual correspond to
        the default ones, defined when calcurse is launched
        for the first time. If those key bindings do not suit user's needs,
        it is possible to change them within the keys configuration menu
        (see key bindings).
  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.
Depending on the selected view, the calendar could either display a monthly (default as shown in previous figure) or weekly view. The weekly view would look like the following:
+------------------------------------+
|              Calendar              |
|----------------------------(# 13)--|
|    Mon Tue Wed Thu Fri Sat Sun     |
|     29  30  31  01  02  03  04     |
|                               <----+--  slice 1: 00:00 to 04:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 2: 04:00 to 08:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 3: 08:00 to 12:00 AM
|    -  --  --  --  --  --  --  -  <-+--  midday
|                               <----+--  slice 4: 12:00 to 04:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 5: 04:00 to 08:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 6: 08:00 to 12:00 PM
+------------------------------------+
        
The current week number is displayed on the top-right side of the panel (# 13 meaning it is the 13th week of the year in the above example). The seven days of the current week are displayed in column. Each day is divided into slices of 4 hours each (6 slices in total, see figure above). A slice will appear in a different color if an appointment falls into the corresponding time-slot.
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 Background mode
When the daemon mode is enabled in the notification configuration menu
(see Notify-bar settings), calcurse will stay
in background when the user interface is not running. In background mode,
calcurse checks for upcoming appointments and runs the user-defined 
notification command when necessary. When the user interface is started again,
the daemon automatically stops.
calcurse background activity can be logged (set the 
notify-daemon_log variable in the notification configuration
menu), and in that case, information about the daemon
start and stop time, reminders' command launch time, signals received... will be written
in the daemon.log file (see section files).
Using the --status command line option (see section 
Command line arguments), 
one can know if calcurse is currently running in background or not.
If the daemon is running, a message like the following one will be displayed (the pid of
the daemon process will be shown):
calcurse is running in background (pid 14536)
Note:
To stop the daemon, just send the TERM signal to it, using a command such as:
'kill daemon_pid', where daemon_pid is the process id
of the daemon (14536 in the above example).
4.4 File di calcurse
  Al primo avvio di calcurse viene creata nella vostra
  directory $HOME 
  
  $HOME/.calcurse/
           |___notes/
           |___conf
           |___keys
           |___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
- keys:
- this file contains the user-defined key bindings
- apts:
- questo file contiene gli eventi e gli appuntamenti dell'utente
- todo:
- questo file contiene l'elenco delle attività
Note:
        If the logging of calcurse daemon activity was set in the notification
        configuration menu, the extra file daemon.log will appear
        in calcurse data directory. This file contains logs about calcurse activity
        when running in background.
        
4.5 Import/Export capabilities
        The import and export capabilities offered by calcurse
        are described below.
4.5.1 Import
Data in icalendar format as described in the rfc2445 specification (see links section below) can be imported into calcurse. Calcurse ical parser is based on version 2.0 of this specification, but for now on, only a subset of it is supported.
The following icalendar properties are handled by calcurse:
- VTODOitems:
 "PRIORITY", "VALARM", "SUMMARY", "DESCRIPTION"
- VEVENTitems:
 "DTSTART", "DTEND", "DURATION", "RRULE", "EXDATE", "VALARM", "SUMMARY", "DESCRIPTION"
The icalendar "DESCRIPTION" property will be converted into calcurse format by adding a note to the item. If a "VALARM" property is found, the item will be flagged as important and the user will get a notification (this is only applicable to appointments).
Here are the properties that are not implemented:
- negative time durations are not taken into account (item is skipped)
- some recurence frequences are not recognize:
 "SECONDLY" / "MINUTELY" / "HOURLY"
- some recurrence keywords are not recognized 
            (all those starting with 'BY'):
 "BYSECOND" / "BYMINUTE" / "BYHOUR" / "BYDAY" / "BYMONTHDAY"
 "BYYEARDAY" / "BYWEEKNO" / "BYMONTH" / "BYSETPOS"
 plus "WKST"
- the recurrence exception keyword "EXRULE" is not recognized
- timezones are not taken into account
4.5.2 Export
        Two possible export formats are available: ical and 
        pcal (see section Links below
        to find out about those formats). 
4.6 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; 
  pressing 'K' opens the key bindings configuration
  menu,
  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. 
- periodic_save(default: 0)
- If different from '0', user's data will be automatically
    saved every periodic_save minutes.
    When an automatic save is performed, two asterisks 
    (i.e. '**') will appear on the top right-hand side of the screen).
- confirm_quit(default: yes)
- 
	    Se impostato a yes è necessario
	    confermare l'uscita dal programma; altrimenti premendo 'Q'
	    calcurseesce 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  calcursefiles).
- calendar_default_view(default: 0)
- If set to 0, the monthly calendar view will be displayed by default otherwise it is the weekly view that will be displayed.
- 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.
- output_datefmt(default: %D)
- This option indicates the format to be used when displaying dates
    in non-interactive mode. Using the default values, dates are displayed the
    following way: mm/dd/aa.
    You can see all of the possible formats by typing man 3 strftimeinside a terminal.
- input_datefmt(default: 1)
- This option indicates the format that will be used to enter dates in
    calcurse. Four choices are available:
    - mm/dd/yyyy
- dd/mm/yyyy
- yyyy/mm/dd
- yyyy-mm-dd
 
5.2 Key bindings
        One can define it's own keybindings within the 'Keys' configuration
        menu. The default keys look like the one used by the vim
        editor, especially the displacement keys. Anyway, within this
        configuration menu, users can redefine all of the keys available from
        within calcurse's user interface.
To define new keybindings, first highlight the action to which it will apply. Then, delete the actual key binding if necessary, and add a new one. You will then be asked to press the key corresponding to the new binding. It is possible to define more than one key binding for a single action.
An automatic check is performed to see if the new key binding is not already set for another action. In that case, you will be asked to choose a different one. Another check is done when exiting from this menu, to make sure all possible actions have a key associated with it.
The following keys can be used to define bindings:
- lower-case, upper-case letters and numbers, such as 'a', 'Z', '0'
- CONTROL-key followed by one of the above letters
- escape, horizontal tab, and space keys
- arrow keys (up, down, left, and right)
- 'HOME' and 'END' keys
While inside the key configuration menu, an online help is available for each one of the available actions. This help briefly describes what the highlighted action is used for.
5.3 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.4 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à.
The following option is used to modify the layout configuration:
- layout(default: 0)
- Eight different layouts are to be chosen from (see layout configuration screen for the description of the available layouts).
5.5 Sidebar configuration
The sidebar is the part of the screen which contains two panels: the calendar and, depending on the chosen layout, either the todo list or the appointment list.
The following option is used to change the width of the sidebar:
- side-bar_width(default: 0)
- Width (in percentage, 0 being the minimum width) of the side bar.
5.6 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 strftimeall'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 strftimeall'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 mailil 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
- notify-daemon_enable(default: no)
- If set to yes, daemon mode will be enabled, meaning calcursewill run into background when the user's interface is exited. This will allow the notifications to be launched even when the interface is not running. More details can be found in section 'Background mode'.
- notify-daemon_log(default: no)
- If set to yes, calcursedaemon activity will be logged (see section files).
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_ALLperché 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 comandomsginitnon 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 checalcursenon userà finché non verrà preso qualche provvedimento. Questo perché la stringa in questione è stata cambiata nei sorgenti del programma oppure perchégettextha 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\ne\tche 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/)
- 
	  Emacspo mode
- 
	  Vimpo 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.
9.4 Other links
You may want to look at the ical format specification (rfc2445) at:
http://tools.ietf.org/html/rfc2445
The pcal project page can be found at:
http://pcal.sourceforge.net/
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 calcurseper FreeBSD
- 
      Zul per aver impacchettato calcurseper NetBSD
- 
      Wain, Steffen e Ronald per aver
      impacchettato calcurseper Archlinux
- 
      Kevin, Ryan, e fEnIo per aver
      impacchettato calcurseper Debian e Ubuntu
- 
      Pascal per aver impacchettato calcurseper Slackware
- 
      Alexandre e Markus per aver impacchettato calcurseper Mac OsX e Darwin
- 
      Igor per aver impacchettato calcurseper 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 calcursee del manuale
- 
      Jose Lopez per la traduzione in spagnolo
      di calcursee del manuale
- Neil Williams per la traduzione inglese
- Tony per la sua patch che ha contribuito a migliorare la funzione recur_item_inday() , and for implementing the date format configuration options
- Jeremy Roon per la traduzione olandese
- Leandro Noferini per la traduzione italiana
- Erik Saule for its patch implementing the '-N', '-s', '-S', '-r' and '-D' flags
- 
      le persone che hanno scritto software che mi piace e che
      mi ha inspirato, e specialmente:
      - 
	  vimper i tasti di movimento
- 
	  orpheuseabookper la documentazione
- 
	  pineeaptitudeper l'interfaccia utente testuale
- tmuxfor coding style
 
- 
	  
  Ed infine ancora molti ringraziamenti a tutti gli utenti
  di calcurse che mi hanno inviato i loro commenti.