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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
/*
* $calcurse: manual_it.html,v 1.10 2009/06/27 09:56:23 culot Exp $
*
* Calcurse - text-based organizer
* Copyright (c) 2004-2009 Frederic Culot
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Send your feedback or comments to : calcurse@culot.org
* Calcurse home page : http://culot.org/calcurse
*
*/
-->
<html>
<head>
<title>Documentazione di <code>calcurse</code></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" media="all">
@import url(manual.css);
</style>
</head>
<body>
<div id="mainContent">
<h1 id="title">
<span class="main"><code>calcurse</code> - un organizer testuale</span></h1>
<div class="warn">
<h1>Abstract</h1> Questo manuale descrive le funzionalità
di <code>calcurse</code>, 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 <code>calcurse</code>. Infine viene
descritta la procedura per la segnalazione dei bachi e come
partecipare allo sviluppo di calcurse.
</div>
<div id="toc">
<h1>Table of Contents</h1>
<ul>
<li><a href="#intro">1. Introduzione</a></li>
<li><a href="#overview">2. Panoramica</a>
<ul>
<li><a href="#overview_history">2.1 Storia dello sviluppo</a></li>
<li><a href="#overview_features">2.2 Principali caratteristiche</a></li>
</ul></li>
<li><a href="#install">3. Installazione</a>
<ul>
<li><a href="#install_requirements">3.1 Requisiti</a>
<ul>
<li><a href="#install_requirements_ncurses">3.1.1 Librerie <code>ncurses</code></a></li>
<li><a href="#install_requirements_gettext">3.1.2 Librerie <code>gettext</code></a></li>
</ul></li>
<li><a href="#install_process">3.2 Procedura di installazione</a></li>
</ul></li>
<li><a href="#basics">4. Elementi di base di <code>calcurse</code></a>
<ul>
<li><a href="#basics_invocation">4.1 Avvio</a>
<ul>
<li><a href="#basics_invocation_commandline">4.1.1 Argomenti della linea di comando</a></li>
<li><a href="#basics_invocation_variable">4.1.2 Variabili d'ambiente per l'i18n</a></li>
<li><a href="#basics_invocation_environment">4.1.3 Altre variabili d'ambiente</a></li>
</ul></li>
<li><a href="#basics_interface">4.2 Interfaccia utente</a>
<ul>
<li><a href="#basics_interface_noninteractive">4.2.1 Modo non interattivo</a></li>
<li><a href="#basics_interface_interactive">4.2.2 Modo interattivo</a></li>
</ul></li>
<li><a href="#basics_files">4.3 Files di <code>calcurse</code></a></li>
<li><a href="#basics_import_export"><span class="todo">4.4 Import/Export capabilities</span></a>
<ul>
<li><a href="#basics_import"><span class="todo">4.4.1 Import</span></a></li>
<li><a href="#basics_export"><span class="todo">4.4.2 Export</span></a></li>
</ul></li>
<li><a href="#basics_help">4.5 Aiuto in linea</a></li>
</ul></li>
<li><a href="#options">5. Opzioni</a>
<ul>
<li><a href="#options_general">5.1 Opzioni generali</a></li>
<li><a href="#options_keys"><span class="todo">5.2 Key bindings</span></a>
<li><a href="#options_colors">5.3 Temi dei colori</a></li>
<li><a href="#options_layout">5.4 Configurazione dell'interfaccia</a></li>
<li>
<a href="#options_notify">5.5 Configurazioni della barra di
notifica</a>
</li>
</ul></li>
<li><a href="#known_bugs">6. Bachi conosciuti</a></li>
<li><a href="#bugs">7. Riportare i bachi e feedback</a></li>
<li><a href="#contribute">8. Come contribuire</a>
<ul>
<li><a href="#contribute_documentation">8.1 Tradurre la documentazione</a></li>
<li><a href="#contribute_i18n">8.2 i18n <code>calcurse</code></a>
<ul>
<li><a href="#contribute_i18n_overview">8.2.1 Panoramica</a></li>
<li><a href="#contribute_i18n_translator">8.2.2 Compiti del traduttore</a></li>
<li><a href="#contribute_i18n_po-files">8.2.3 File po</a></li>
</ul></li>
</ul></li>
<li><a href="#links">9. Links</a>
<ul>
<li><a href="#links_homepage">9.1 Homepage di <code>calcurse</code></a></li>
<li><a href="#links_list">9.2 Lista degli annunci di <code>calcurse</code></a></li>
<li><a href="#links_rss">9.3 Feed RSS di <code>calcurse</code></a></li>
<li><a href="#links_others"><div class="todo">9.4 Other links</div></a></li>
</ul></li>
<li><a href="#thanks">10. Ringraziamenti</a></li>
</ul>
</div>
<h1>1. Introduzione<a name="intro"></a></h1>
<p>
<code>Calcurse</code> è 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.
</p>
<h1>2. Panoramica<a name="overview"></a></h1>
<h2>2.1 Storia dello sviluppo<a name="overview_history"></a></h2>
<p>
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 ;)
</p>
<p>
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 <code>C</code> 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 <code>C</code>!
</p>
<p>
Sfortunatamente ho finito il mio dottorato prima di aver
terminato <code>calcurse</code>; in ogni modo ho continuato a
lavorarci sperando che potesse risultare utile anche ad altre
persone. Perciò eccolo qua....
</p>
<p>
Perché il nome 'calcurse'? Perché è semplicemente l'unione di
'CALendar' e 'nCURSEs', dal nome delle librerie usate per realizzare
l'interfaccia utente.
</p>
<h2>2.2 Principali
caratteristiche<a name="overview_features"></a></h2>
<p>
<code>Calcurse</code> è 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.
</p>
<p>
<code>Calcurse</code> 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.
</p>
<p>
Inoltre <code>calcurse</code> è 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.
<span class="todo">Key bindings are also configurable, to fit everyone's needs.</span>
Infine un sistema configurabile di allarmi ricorda all'utente
l'avvicinarsi degli appuntamenti.
</p>
<h1>3. Installazione<a name="install"></a></h1>
<h2>3.1 Requisiti<a name="install_requirements"></a></h2>
<h3>3.1.1 Librerie <code>ncurses</code><a name="install_requirements_ncurses"></a></h3>
<p>
<code>Calcurse</code> richiede esclusivamente un
compilatore <code>C</code> quale <code>cc</code>
oppure <code>gcc</code> nonché le librerie <code>ncurses</code>.
È piuttosto difficile non avere le
librerie <code>ncurses</code> già correttamente installate sul
proprio computer ma nel caso è possibile trovarle all'indirizzo:
<pre>http://ftp.gnu.org/pub/gnu/ncurses/</pre>
</p>
<div class="todo">
<p class="rq"><span class="valorize">Note:</span>
It is also possible to link <code>calcurse</code> against the
<code>ncursesw</code> library (ncurses with support for unicode).
However, UTF-8 is not yet supported by <code>calcurse</code>.</p>
</div>
<h3>3.1.2 Librerie <code>gettext</code><a name="install_requirements_gettext"></a></h3>
<p>
<code>Calcurse</code> ha il supporto per la localizzazione
(<span class="emp">i18n</span> da qui in avanti) attraverso
l'utilità <code>gettext</code> perciò può usare messaggi in molte
lingue se compilato con il relativo supporto
(detto <span class="emp">NLS</span>).
</p>
<p>
Comunque <span class="emp">NLS</span> è opzionale e se non lo si
desiderasse è possibile disabilitarlo dando
l'opzione <code>--disable-nls</code> a <code>configure</code> (vedi
la sezione <a href="#install_process">Procedura
d'installazione</a>).
Per verificare che le utilità <code>gettext</code> sono installate
sul vostro computer cercate il file di header <code>libintl.h</code>
ad esempio:
</p>
<pre>locate libintl.h</pre>
<p>
Nel caso non troviate il file potete ottenere i sorgenti
di <code>gettext</code> al seguente indirizzo:
</p>
<pre>http://ftp.gnu.org/pub/gnu/gettext/</pre>
<p>
<p class="rq"><span class="valorize">Nota:</span>
Se anche si fosse trovato il file <code>libintl.h</code>
potrebbe essere necessario specificarne la posizione durante
la <a href="#install_process">procedura d'installazione</a>
usando l'opzione <code>--with-libintl-prefix</code>
con <code>configure</code>.
Questo perché <code>configure</code> potrebbe non essere in
grado di localizzarlo se fosse stato installato in una
posizione inusuale.
</p>
<h2>3.2 Procedura d'installazione<a name="install_process"></a></h2>
<p>
Innanzitutto è necessario scompattare l'archivio contenente i
sorgenti:
</p>
<pre>tar zxvf calcurse-2.6.tar.gz</pre>
<p>
Una volta verificati i requisiti e scompattato l'archivio la
procedura d'installazione è piuttosto semplice visto che segue i tre
passi standard:
<ol>
<li><code>./configure</code></li>
<li><code>make</code></li>
<li><code>make install</code> (potrebbero essere necessari i
diritti di root)</li>
</ol>
</p>
<p>
Usate <code>./configure --help</code> per l'elenco delle opzioni
possibili.
</p>
<h1>4. Elementi di base di <code>calcurse</code><a name="basics"></a></h1>
<h2>4.1 Avvio<a name="basics_invocation"></a></h2>
<h3>4.1.1 Argomenti della linea di comando<a name="basics_invocation_commandline"></a></h3>
<p>
<code>Calcurse</code> accetta le seguenti opzioni della linea di
comando (sia nel formato breve che in quello lungo):
</p>
<p>
<dl>
<dt><code>-a, --appointment</code></dt>
<dd>
Mostra gli appuntamenti e gli eventi per il giorno corrente e
poi esce.
<p class="rq"><span class="valorise">Nota:</span> il calendario
dal quale leggere gli appuntamenti può essere specificato con
l'opzione '-c'.
</p>
</dd>
<dt><code>-c <file>, --calendar <file></code></dt>
<dd>
Indica il file calendario da usare.
Il calendario predefinito è <code>~/.calcurse/apts</code> (vedi
la sezione <a href="#basics_files"><code>calcurse</code>
files</a>).
</dd>
<dt><code>-d <data|num>, --day <data|num></code></dt>
<dd>
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:
<ul>
<li>una data <span class="todo">(possible formats described below).</li>
<li>un numero 'n'.</li>
</ul>
Nel primo caso viene mostrata la lista degli appuntamenti per la
data indicata; nel secondo caso viene mostrata la lista per gli
'n' giorni futuri.
Ad esempio digitando <code>calcurse -d 3</code> verrà mostrata
la lista degli appuntamenti di oggi, domani e dopodomani.
<div class="todo">
Possible formats for specifying the date are defined inside the
general configuration menu (see
<a href="#options_general">General options</a>), using the
<code>input_datefmt</code> variable.
</div>
<p class="rq"><span class="valorise">Nota:</span> così come con
l'argomento '-a' il calendario dal quale leggere gli
appuntamenti può essere specificato con l'argomento '-c'.</p>
</dd>
<dt><code>-D <dir>, --directory <dir></code></dt>
<dd>
<div class="todo">
Specify the data directory to use. This option is
incompatible with -c. If not specified, the
default directory is <code>'~/.calcurse/'</code>.
</div>
</dd>
<dt><code>-h, --help</code></dt>
<dd>
Stampa la versione breve del testo che descrive le opzioni della
riga di comando ed esce.</dd>
<dt><code>-i <file>, --import <file></code></dt>
<dd>
<div class="todo">
Import the icalendar data contained in <code>file</code>.
</div>
</dd>
<dt><code>-n, --next</code></dt>
<dd>
Stampa il prossimo appuntamento nelle successive 24 ore ed esce.
Il tempo stampato indica le ore e i minuti mancanti
all'appuntamento.
<p class="rq"><span class="valorise">Nota:</span> il calendario
dal quale leggere gli appuntamenti può essere specificato con
l'opzione '-c'.</p>
</dd>
<dt><code>-N, --note</code></dt>
<dd>
<div class="todo">
When used with the '-a' or '-t' flag, also print note content
if one is associated with the displayed item.
</div>
</dd>
<dt><code>-r[num], --range[=num]</code></dt>
<dd>
<div class="todo">
Print events and appointments for the num number of
days and exit. If no num is given, a range of 1 day
is considered.
</div>
</dd>
<dt><code>-s[date], --startday[=date]</code></dt>
<dd>
<div class="todo">
Print events and appointments from date and exit.
If no date is given, the current day is considered.
</div>
</dd>
<dt><code>-t[num], --todo[=num]</code></dt>
<dd>
Stampa la lista delle 'attività' ed esce. Se viene specificato
anche il numero <code>num</code> opzionale vengono stampate
esclusivamente le attività che hanno priorità pari al numero
stesso.
<div class="todo">
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.</p>
</div>
</dd>
<dt><code>-v, --version</code></dt>
<dd>
Stampa la versione di <code>calcurse</code> ed esce.
</dd>
<dt><code>-x[format], --export[=format]</code></dt>
<dd><div class="todo">
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 <a href="#links_others">Links</a> below).
If the optional argument <code>format</code> is not given,
ical format is selected by default.
</div>
<p class="rq"><span class="valorise">Nota:</span> è possibile
reindirizzare lo standard output per salvare i dati su un file
con un comando del tipo
<code>$ calcurse --export > my_data.dat</code></p>
</dd>
</dl>
<h3>4.1.2 Variabili d'ambiente per l'i18n<a name="basics_invocation_variable"></a></h3>
<p>
<code>Calcurse</code> può essere compilato con il supporto per la
localizzazione
(vedi <a href="#install_requirements_gettext">librerie
<code>gettext</code></a>).
Di conseguenza, se preferite che i messaggi del programma vengano
mostrati nella vostra lingua, innanzitutto verificate che questa sia
disponibile nel file <code>po/LINGUAS</code>: questo file indica
quali lingue sono supportate mostrando il codice di due lettere
corrispondente (ad esempio <span class="emp">fr</span> indica il
francese). Nel caso in cui la vostra lingua non fosse presente
sarebbe estremamente apprezzabile il vostro aiuto nella traduzione
di <code>calcurse</code> (vedi la sezione <a href="#contribute">Come
contribuire</a>).</p>
<p>
Se invece la vostra lingua è presente avviate <code>calcurse</code>
con il seguente comando:</p>
<pre>LC_ALL=fr_FR calcurse</pre>
<p>
dove <span class="emp">fr_FR</span> è il nome della localizzazione
d'esempio che deve essere sostituita dal nome della localizzazione
desiderata.
</p>
<p>
È 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 <code>calcurse</code> con il seguente
comando:</p>
<pre>LC_ALL=fr_FR.ISO8859-1 calcurse</pre>
<h3>4.1.3 Altre variabili
d'ambiente<a name="basics_invocation_environment"></a></h3>
<p>
Le seguenti variabili d'ambiente modificano il funzionamento
di <code>calcurse</code>:</p>
<dl>
<dt><code>VISUAL</code></dt>
<dd>Indica l'editor usato per scrivere le note.
</dd>
<dt><code>EDITOR</code></dt>
<dd>Se non viene impostata la variabile <code>VISUAL</code> viene
usato l'editor indicato dalla variabile <code>EDITOR</code> come
editor di default; se non viene definita nessuna variabile viene
usato l'editor <code>/usr/bin/vi</code>.
</dd>
<dt><code>PAGER</code></dt>
<dd>Specifica il visualizzatore di default usato per leggere le
note. Se questa variabile non viene impostata viene
usato <code>/usr/bin/less</code>.
</dd>
</dl>
<h2>4.2 Interfaccia utente<a name="basics_interface"></a></h2>
<h3>4.2.1 Modalità non-interattiva<a name="basics_interface_noninteractive"></a></h3>
<p>
Quando <code>calcurse</code> viene avviato con una delle opzioni
<code>-a</code>, <code>-d</code>, <code>-h</code>, <code>-n</code>, <code>-t</code>, <code>-v</code>, <code>-x</code>
funziona nella modalità non-interattiva; questo significa che dopo
aver mostrato le informazioni richieste <code>calcurse</code> esce riportando al
prompt della shell.</p>
<p>
In questo modo è possibile ad esempio aggiungere una linea
siffatta <code>'calcurse --todo --appointment'</code> nel file di
avvio della shell per mostrare al logon un elenco dei compiti e
degli appuntamenti previsti per la data odierna.</p>
<h3>4.2.2 Modalità interattiva<a name="basics_interface_interactive"></a></h3>
<div class="todo">
<p class="rq"><span class="valorise">Note:</span>
Key bindings that are indicated in this manual correspond to
the default ones, defined when <code>calcurse</code> 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 <a href="#options_keys">key bindings</a>).</p>
</div>
<p>
Se viene avviato senza argomenti oppure solo con
l'opzione <code>'-c'</code> <code>calcurse</code> 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).
</p>
<pre>
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
</pre>
<p>
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.</p>
<p>
Nella sezione degli appuntamenti si può notare il
segno <span class="emp">'(|)'</span> accanto alla data indicante la
fase lunare secondo la seguente tabella:
<dl class="compact">
<dt>'<code> |) </code>':</dt>
<dd>primo quarto</dd>
<dt>'<code> (|) </code>':</dt>
<dd>plenilunio</dd>
<dt>'<code> (| </code>':</dt>
<dd>terzo quarto</dd>
<dt>'<code> | </code>':</dt>
<dd>novilunio</dd>
<dt>nessun segno:</dt>
<dd>la fase della luna non corrisponde a nessuna di queste</dd>
</dl>
</p>
<p>
Nell'ultima riga dello schermo si trova la barra di stato che
indica le azioni possibili e le relative scorciatoie di tastiera.
</p>
<p>
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.
</p>
<p class="rq"><span class="valorise">Nota:</span> alcune azioni, quali
modifica o aggiunta di una voce, richiedono l'inserimento del testo
mediante l'editor a linea compreso nel programma.</p>
<p>
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.</p>
<p>
Inoltre alcuni comandi sono collegati ad alcune scorciatoie. Di
seguito sono elencati alcuni comandi (dove '^' indica per il tasto
Control):
<dl class="compact">
<dt><code>^a</code>:</dt>
<dd>sposta il cursore all'inizio della riga di input</dd>
<dt><code>^b</code>:</dt>
<dd>sposta il cursore indietro</dd>
<dt><code>^d</code>:</dt>
<dd>cancella il carattere davanti</dd>
<dt><code>^e</code>:</dt>
<dd>sposta il cursore alla fine della riga di input</dd>
<dt><code>^f</code>:</dt>
<dd>sposta il cursore avanti</dd>
<dt><code>^h</code>:</dt>
<dd>cancella il carattere dietro</dd>
<dt><code>^k</code>:</dt>
<dd>cancella dal cursore fino alla fine della riga di input</dd>
<dt><code>ESCAPE</code>:</dt>
<dd>cancella la modifica</dd>
</dl>
</p>
<h2>4.3 File di <code>calcurse</code><a name="basics_files"></a></h2>
<p>
Al primo avvio di <code>calcurse</code> viene creata nella vostra
directory <code>$HOME</code>
<div class="todo">(or in the directory you specified with the -D option)</div>
questa gerarchia di directory:
</p>
<pre>
$HOME/.calcurse/
|___notes/
|___conf
|___keys
|___apts
|___todo
</pre>
<dl class="compact">
<dt><code>notes/</code>:</dt>
<dd>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.
</dd>
<dt><code>conf</code>:</dt>
<dd>questo file contiene le configurazioni dell'utente</dd>
<dt><code>keys</code>:</dt>
<dd><span class="todo">this file contains the user-defined key bindings</span></dd>
<dt><code>apts</code>:</dt>
<dd>questo file contiene gli eventi e gli appuntamenti
dell'utente</dd>
<dt><code>todo</code>:</dt>
<dd>questo file contiene l'elenco delle attività</dd>
</dl>
<div class="todo">
<h2>4.4 Import/Export capabilities<a name="basics_import_export"></a></h2>
<p>
The import and export capabilities offered by <code>calcurse</code>
are described below.
</p>
<h3>4.4.1 Import<a name="basics_import"></a></h3>
<p>
Data in icalendar format as described in the rfc2445 specification
(see <a href="#links_others">links</a> 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.
</p>
<p>
The following icalendar properties are handled by calcurse:
<ul>
<li><code>VTODO</code> items:<br>
"PRIORITY", "VALARM", "SUMMARY", "DESCRIPTION"</li>
<li><code>VEVENT</code> items:<br>
"DTSTART", "DTEND", "DURATION", "RRULE", "EXDATE", "VALARM", "SUMMARY",
"DESCRIPTION"</li>
</ul>
</p>
<p>
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).
</p>
<p>
Here are the properties that are not implemented:
<ul>
<li>negative time durations are not taken into account (item is skipped)</li>
<li>some recurence frequences are not recognize:<br>
"SECONDLY" / "MINUTELY" / "HOURLY"</li>
<li>some recurrence keywords are not recognized
(all those starting with 'BY'):<br>
"BYSECOND" / "BYMINUTE" / "BYHOUR" / "BYDAY" / "BYMONTHDAY"<br>
"BYYEARDAY" / "BYWEEKNO" / "BYMONTH" / "BYSETPOS"<br>
plus "WKST"</li>
<li>the recurrence exception keyword "EXRULE" is not recognized</li>
<li>timezones are not taken into account</li>
</ul>
</p>
<h3>4.4.2 Export<a name="basics_export"></a></h3>
<p>
Two possible export formats are available: <code>ical</code> and
<code>pcal</code> (see section <a href="#links_others">Links</a> below
to find out about those formats).
</p>
</div>
<h2>4.5 Aiuto in linea<a name="basics_help"></a></h2>
<p>
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.
</p>
<h1>5. Opzioni<a name="options"></a></h1>
<p>
Tutti i parametri di <code>calcurse</code> 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 <code>calcurse</code> (praticamente le posizioni relative
dei tre pannelli); premendo 'G' è possibile modificare alcune
opzioni generali;
<span class="todo">pressing 'K' opens the key bindings configuration
menu,</span>
ed infine premendo 'N' è possibile modificare le
impostazioni della barra di notifica.
</p>
<h2>5.1 Opzioni generali<a name="options_general"></a></h2>
<p>
Queste opzioni controllano il comportamento generale di <code>calcurse</code>:
</p>
<dl>
<dt><code>auto_save</code>
(default: <span class="emp">yes</span>)</dt>
<dd>
Questa opzione permette di salvare automaticamente i dati
dell'utente all'uscita del programma.
<p class="rq"><span class="valorise">attenzione:</span> i
dati non verranno salvati automaticamente se impostato
a <span class="emp">no</span>. Questo comporta che sarà
necessario premere 'S' per salvare i dati eventualmente
modificati.
</dd>
<div class="todo">
<dt><code>periodic_save</code>
(default: <span class="emp">0</span>)</dt>
<dd>If different from '0', user's data will be automatically
saved every <span class="emp">periodic_save</span> minutes.
When an automatic save is performed, two asterisks
(i.e. '<code>**</code>') will appear on the top right-hand side
of the screen).</p>
</dd>
</div>
<dt><code>confirm_quit</code>
(default: <span class="emp">yes</span>)</dt>
<dd>
Se impostato a <span class="emp">yes</span> è necessario
confermare l'uscita dal programma; altrimenti premendo 'Q'
<code>calcurse</code> esce senza chiedere conferma.
</dd>
<dt><code>confirm_delete</code>
(default: <span class="emp">yes</span>)
</dt>
<dd>
Se viene impostata a <span class="emp">yes</span> premendo
'D' per cancellare una voce (che può essere
un'<span class="emp">attività</span>,
un <span class="emp">appuntamento</span>, o
un <span class="emp">evento</span>) è necessario
confermare. Altrimenti non è necessaria alcuna conferma.
</dd>
<dt><code>skip_system_dialogs</code>
(default: <span class="emp">no</span>)
</dt>
<dd>
Impostando questa opzione a <span class="emp">yes</span>
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.
</dd>
<dt><code>skip_progress_bar</code>
(default: <span class="emp">no</span>)</dt>
<dd>
Se impostato a <span class="emp">yes</span> non verrà
visualizzata la barra di avanzamento che indica il
salvataggio in corso dei files insieme al file che viene
salvato (vedi la
sezione <a href="#basics_files"><code>calcurse</code> files</a>).
</dd>
<dt><code>week_begins_on_monday</code>
(default: <span class="emp">yes</span>)</dt>
<dd>
Con questa opzione è possibile indicare con quale giorno,
domenica o lunedì, far iniziare la settimana nella
finestra del calendario.
</dd>
<div class="todo">
<dt><code>output_datefmt</code>
(default: <span class="emp">%D</span>)</dt>
<dd>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: <span class="emp">mm/dd/aa</span>.
You can see all of the possible formats by typing <code>man 3 strftime</code>
inside a terminal.</dd>
<dt><code>input_datefmt</code>
(default: <span class="emp">1</span>)</dt>
<dd>This option indicates the format that will be used to enter dates in
<span class="emp">calcurse</span>. Four choices are available:
<ol>
<li>mm/dd/yyyy</li>
<li>dd/mm/yyyy</li>
<li>yyyy/mm/dd</li>
<li>yyyy-mm-dd</li>
</ol>
</dd>
</div>
</dl>
<div class="todo">
<h2>5.2 Key bindings<a name="options_keys"></a></h2>
<p>
One can define it's own keybindings within the 'Keys' configuration
menu. The default keys look like the one used by the <code>vim</code>
editor, especially the displacement keys. Anyway, within this
configuration menu, users can redefine all of the keys available from
within calcurse's user interface.</p>
<p>
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.</p>
<p>
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.</p>
<p>
The following keys can be used to define bindings:
<ul>
<li>lower-case, upper-case letters and numbers, such as 'a', 'Z', '0'</li>
<li>CONTROL-key followed by one of the above letters</li>
<li>escape, horizontal tab, and space keys</li>
<li>arrow keys (up, down, left, and right)</li>
<li>'HOME' and 'END' keys</li>
</ul> </p>
<p>
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.</p>
</div>
<h2>5.3 Color themes<a name="options_colors"></a></h2>
<p>
Il tema del colore di <code>calcurse</code> 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 <code>calcurse</code>, 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.
</p>
<p>
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.
</p>
<p class="rq">
<span class="valorise">Nota:</span> i colori possono anche
non essere supportati a seconda del tipo di terminale e dal
valore della variabile d'ambiente <code>$TERM</code>; 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
<code>$TERM</code> ad un altro valore (come ad
esempio <span class="emp">xterm-xfree86</span>).
</p>
<h2>5.4 Configurazione del layout<a name="options_layout"></a></h2>
<p>
Il layout è la posizione dei pannelli all'interno dello schermo di
<code>calcurse</code>. 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 <a href="#basics_interface_interactive">Modo
interattivo</a>).
Scegliendo un altro layout è possibile personalizzare l'aspetto di
<code>calcurse</code> a seconda delle necessità.
</p>
<h2>5.5 Impostazioni della barra delle notifiche<a name="options_notify"></a></h2>
<p>
Le seguenti opzioni modificano il comportamento della barra delle
notifiche:
</p>
<dl>
<dt><code>notify-bar_show</code>
(default: <span class="emp">yes</span>)</dt>
<dd>
Questa opzione imposta la visibilità della barra delle notifiche.
</dd>
<dt><code>notify-bar_date</code>
(default: <span class="emp">%a %F</span>)</dt>
<dd>
Questa opzione imposta il formato utilizzato per la data mostrata
all'interno della barra delle notifiche. È possibile vedere
tutti i possibili formati digitando <code>man 3 strftime</code>
all'interno di un terminale.
</dd>
<dt><code>notify-bar_time</code>
(default: <span class="emp">%T</span>)</dt>
<dd>
Questa opzione imposta il formato utilizzato per mostrare l'orario
all'interno della barra delle notifiche. È possibile vedere
tutti i possibili formati digitando <code>man 3 strftime</code>
all'interno di un terminale.
</dd>
<dt><code>notify-bar_warning</code>
(default: <span class="emp">300</span>)</dt>
<dd>
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 <code>notify-bar_command</code>.
In questo modo è possibile essere avvisati dell'avvicinarsi
di un appuntamento.
</dd>
<dt><code>notify-bar_command</code>
(default: <span class="emp">printf '\a'</span>)</dt>
<dd>
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 <code>$SHELL</code>; nel caso questa
variabile non sia impostata viene usata <code>/bin/sh</code>.
<p class="rq"><span class="valorise">Esempio:</span>
Ammesso che sul sistema in uso sia disponibile il
comando <code>mail</code> 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):
</p>
<code>
calcurse --next | mail -s "[calcurse] upcoming appointment!" user@host.com
</code>
</dd>
</dl>
<h1>6. Bachi conosciuti<a name="known_bugs"></a></h1>
<p>
L'evidenziazione delle voci appare scorretta usando calcurse con un
tema bianco e nero insieme alla variabile <code>$TERM</code>
impostata a <span class="emp">xterm-color</span>.
Per risolvere questo baco, così come affermato da Thomas E. Dickey
(manutentore di <code>xterm</code>), si deve usare il
valore <span class="emp">xterm-xfree86</span> per la
variabile <code>$TERM</code>:
</p>
<blockquote class="rq">
"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)."
</blockquote>
<h1>7. Segnalazione dei bachi e feedback<a name="bugs"></a></h1>
<p>
Siete invitati a segnalare i bachi e quant'altro a:
</p>
<pre>calcurse .at. culot .dot. org</pre>
<p>
oppure direttamente all'autore:
</p>
<pre>frederic .at. culot .dot. org</pre>
<h1>8. Come contribuire<a name="contribute"></a></h1>
<p>
Se siete interessati a collaborare al progetto dovreste prima di
tutto segnalare pregi e difetti oppure funzionalità mancanti in
<code>calcurse</code>.
Attualmente è possibile partecipare alle traduzioni dei messaggi e
del manuale di <code>calcurse</code>
</p>
<p class="rq"><span class="valorise">Nota:</span> ogni aiuto ad
aumentare il supporto all'internazionalizzazione di <code>calcurse</code> è
benvenuto ma prima di cominciare scrivete a
<code>calcurse-i18n .at. culot .dot. org</code>
per evitare di duplicare gli sforzi.
</p>
<h2>8.1 Tradurre la documentazione<a name="contribute_documentation"></a></h2>
<p>
La directory <span class="emp">doc/</span> del pacchetto dei
sorgenti contiene anche le versioni già tradotte del manuale di
<code>calcurse</code>; se il manuale non è ancora stato tradotto nella vostra
lingua ogni aiuto in tal senso sarà più che apprezzato.
</p>
<p>
Per fare questo è sufficiente copiare il file contenente il manuale
con il nome <code>manual_XX.html</code>
dove <span class="emp">XX</span> identifica il vostro linguaggio:
questo file deve essere tradotto ed inviato all'autore
(vedi <a href="#bugs">Riportare i bachi e feedback</a>) così che
possa essere incluso nel successivo rilascio
di <code>calcurse</code>.
</p>
<h2>8.2 <code>calcurse</code> i18n<a name="contribute_i18n"></a></h2>
<p>
Le utilità di <code>calcurse</code> 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 <code>gettext</code>
per <code>calcurse</code>. Per informazioni maggiormente
approfondite e per comprendere il Grande Disegno che sottintende al
Supporto delle Lingue fate riferimento al manuale di
<code>GNU gettext</code>:
</p>
<pre>http://www.gnu.org/software/gettext/manual/</pre>
<p>
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.
</p>
<h3>8.2.1 Panoramica<a name="contribute_i18n_overview"></a></h3>
<p>
Per essere in grado di mostrare i messaggi nel linguaggio definito
dall'utente sono necessari due passaggi:
l'<span class="emp">internazionalizzazione</span> (i18n) e
la <span class="emp">localizzazione</span> (l10n).
</p>
<p>
i18n è la possibilità per <code>calcurse</code> 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.
</p>
<p>
l10n è invece il rendere <code>calcurse</code> così programmato adatto al
linguaggio definito dall'utente traducendo le stringhe predefinite
dagli sviluppatori e impostando le variabili d'ambiente così che
<code>calcurse</code> sia in grado di mostrare le stringhe tradotte.
</p>
<p>
Le stringhe traducibili vengono innanzitutto indicate come tali nei
sorgenti <code>C</code>, poi raccolte in un file modello
(<span class="emp">calcurse.pot</span> - la cui
estensione <span class="emp">pot</span>
significa <span class="emp">portable object template</span>). Il
contenuto del file modello viene successivamente inserito nei file
per la traduzione per ogni linguaggio (ad
esempio <span class="emp">fr.po</span> per il francese, la cui
estensione <span class="emp">po</span> sta
per <span class="emp">portable object</span>, 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 <span class="emp">fr.mo</span> -
dove <span class="emp">mo</span> sta per <span class="emp">machine
object</span>, cioè leggibile dai programmi) e successivamente
installato.
A questo punto <code>calcurse</code> sarà in grado di usare questo file
traducendo le stringhe a seconda delle variabili d'ambiente
impostate dall'utente.
</p>
<h3>8.2.2 Compiti dei traduttori<a name="contribute_i18n_translator"></a></h3>
<p>
Questi sono i passaggi da seguire qualora si volesse iniziare una
nuova traduzione:
</p>
<ul>
<li>
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 <code>LC_ALL</code> perché il programma
mostri correttamente le stringhe tradotte (vedi
<a href="#basics_invocation_variable">Variabili d'ambiente per
l'i18</a>).
</li>
<li>
Poi si dovrà creare un nuovo file 'po' all'interno della
directory <span class="emp">po/</span> usando un file modello con
il seguente comando:
<code>'msginit -i calcurse.pot -o fr.po -l fr --no-translator'</code>.
Nel caso in cui il comando <code>msginit</code> non sia
disponibile sul sistema in uso copiate semplicemente il
file <span class="emp">calcurse.pot</span> con il nome (nel nostro
esempio) <span class="emp">fr.po</span> e modificatene gli header
a mano.
</li>
</ul>
<p>
A questo punto è possibile iniziare la traduzione del
file <span class="emp">fr.po</span> appena creato.
</p>
<h3>8.2.3 I file po<a name="contribute_i18n_po-files"></a></h3>
<p>
Il formato dei file po è relativamente semplice essendo composti di
quattro componenti:
</p>
<ol>
<li>
<span class="emp">Linee locations:</span> 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.
</li>
<li>
<span class="emp">Linee msgid:</span> le stringhe da tradurre.
</li>
<li>
<span class="emp">Linee msgstr:</span> le stringhe tradotte.
</li>
<li>
<span class="emp">Linee che iniziano con '#':</span> commenti (alcuni
con significati speciali come spiegato più avanti).
</li>
</ol>
<p>
Praticamente è necessario tradurre le suddette linee marcate
con <span class="emp">msgstr</span> con la traduzione delle linee
marcate con <span class="emp">msgid</span>
</p>
<p>
<span class="valorise">Alcune note:</span>
<dl>
<dt>
<span class="emp">Stringhe fuzzy</span>
</dt>
<dd>
Potrete trovare alcune stringhe marcate con un
commento <code>"#, fuzzy"</code>, stringhe che <code>calcurse</code> non
userà finché non verrà preso qualche provvedimento. Questo
perché la stringa in questione è stata cambiata nei sorgenti del
programma oppure perché <code>gettext</code> 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 <code>"#, fuzzy"</code> e questa
verrà usata normalmente.
</dd>
<dt>
<span class="emp">Stringhe c-format e sequenze speciali</span>
</dt>
<dd>
Alcune stringhe potranno avere il commento <code>"#, c-format"</code>.
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 <code>"%s"</code>
vengono sostituite dal programma con altre stringhe.
Ci sono anche le sequenze del tipo <code>\n</code>
e <code>\t</code> che non devono essere modificate perché la
prima indica un ritorno a capo e la seconda una tabulazione.
</dd>
<dt>
<span class="emp">Le traduzioni possono avere ritorno a
capo</span>
</dt>
<dd>
Se le linee sono troppo lunghe possono essere interrotte così:
<pre>
msgid ""
"some very long line"
"another line"
</pre>
</dd>
<dt>
<span class="emp">Header dei file po</span>
</dt>
<dd>
Nelle prime righe del file po la prima stringa costituisce un
header contenente alcune informazioni che devono essere
completate. Questi header sono:
<pre>
"Content-Type: text/plain; charset=utf-8\n"
</pre>
È 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:
<pre>
"Last-Translator: Frederic Culot <frederic@culot.org>\n"
</pre></dd>
<dt>
<span class="emp">Commenti</span>
</dt>
<dd>
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.
</dd>
<dt>
<span class="emp">Dimensione delle stringhe</span>
</dt>
<dd>
<code>Calcurse</code> è 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.
</dd>
<dt>
<span class="emp">Alcuni utili strumenti</span>
</dt>
<dd>
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:
<ul>
<li>
<code>poEdit</code> (<a href="http://www.poedit.org/" target="_blank">http://www.poedit.org/</a>)
</li>
<li>
<code>KBabel</code>
(<a href="http://i18n.kde.org/tools/kbabel/" target="_blank">http://i18n.kde.org/tools/kbabel/</a>)
</li>
<li>
<code>GTranslator</code>
(<a href="http://gtranslator.sourceforge.net/" target="_blank">http://gtranslator.sourceforge.net/</a>)
</li>
<li>
<code>Emacs</code> po mode
</li>
<li>
<code>Vim</code> po mode
</li>
</ul>
</dd>
<dt>
<span class="emp">E per chiudere</span>
</dt>
<dd>
Mi auguro che troviate soddisfazione nel contribuire ad un mondo
maggiormente internazionalizzato. :) Se avete altre domande non
esitate a contattarmi all'indirizzo
<span class="emp">frederic .at. culot .dot. org</span>.
</dd>
</dl>
<h1>9. Link<a name="links"></a></h1>
<p>
Questa sezione contiene link e riferimenti che possono risultare
interessanti.
</p>
<h2>9.1 Homepage di <code>calcurse</code><a name="links_homepage"></a></h2>
<p>
L'homepage di <code>calcurse</code> è
</p>
<pre>http://culot.org/calcurse</pre>
<h2>9.2 Mailing list degli annunci di <code>calcurse</code><a name="links_list"></a></h2>
<p>
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
<code>calcurse</code>.
</p>
<p>
Per iscriversi alla lista inviate un messaggio
all'indirizzo <span class="emp">calcurse-announce .at. culot
.dot. org</span> con "subscribe" nel soggetto.
</p>
<h2>9.3 Feed rss di <code>calcurse</code><a name="links_rss"></a></h2>
<p>
Un'altra possibilità per ricevere questi annunci è l'iscrizione al
feed RSS all'indirizzo:
</p>
<pre>http://culot.org/calcurse/news_rss.xml</pre>
<p>
Questo feed viene aggiornato ogni volta viene pubblicata una nuova
versione con la descrizione delle funzionalità aggiunte.
</p>
<h2><div class="todo">9.4 Other links</div><a name="links_others"></a></h2>
<div class="todo">
<p>
You may want to look at the ical format specification (rfc2445) at:
<pre>http://tools.ietf.org/html/rfc2445</pre>
<p>
The pcal project page can be found at:
<pre>http://pcal.sourceforge.net/</pre>
</div>
<h1>10. Ringraziamenti<a name="thanks"></a></h1>
<p>
È giunto il momento per ringraziare le persone senza le quali
questo programma non esisterebbe. Questa è la lista:
<ul>
<li>
Alex per le sue patch, per il suo aiuto e consigli per la
programmazione in <code>C</code>
</li>
<li>
Gwen per il testing e per i consigli in generale sulle migliorie
da apportare a <code>calcurse</code>
</li>
<li>
Herbert per aver impacchettato <code>calcurse</code> per FreeBSD
</li>
<li>
Zul per aver impacchettato <code>calcurse</code> per NetBSD
</li>
<li>
Wain, Steffen e Ronald per aver
impacchettato <code>calcurse</code> per Archlinux
</li>
<li>
Kevin, Ryan, e fEnIo per aver
impacchettato <code>calcurse</code> per Debian e Ubuntu
</li>
<li>
Pascal per aver impacchettato <code>calcurse</code> per
Slackware
</li>
<li>
Alexandre e Markus per aver impacchettato <code>calcurse</code>
per Mac OsX e Darwin
</li>
<li>
Igor per aver impacchettato <code>calcurse</code> per ALT Linux
</li>
<li>
Joel per il suo script calendar che ha inspirato la vista a
calendario per <code>calcurse</code>
</li>
<li>
Michael Schulz e Chris M. per la traduzione in tedesco
di <code>calcurse</code> e del manuale
</li>
<li>
Jose Lopez per la traduzione in spagnolo
di <code>calcurse</code> e del manuale
</li>
<li>
Neil Williams per la traduzione inglese
</li>
<li>
Tony per la sua patch che ha contribuito a migliorare la
funzione recur_item_inday()
<span class="todo">, and for implementing the date format configuration options</span>
</li>
<li>
Jeremy Roon per la traduzione olandese
</li>
<li>
Leandro Noferini per la traduzione italiana
</li>
<li><div class="todo">Erik Saule for its patch implementing the '-N', '-s', '-r' and '-D' flags</div></li>
<li>
le persone che hanno scritto software che mi piace e che
mi ha inspirato, e specialmente:
<ul>
<li>
<code>vim</code> per i tasti di movimento
</li>
<li>
<code>orpheus</code> e <code>abook</code> per la
documentazione
</li>
<li>
<code>pine</code> e <code>aptitude</code> per l'interfaccia
utente testuale
</li>
</ul>
</li>
</ul>
</p>
<p>
Ed infine ancora molti ringraziamenti a tutti gli utenti
di <code>calcurse</code> che mi hanno inviato i loro commenti.
</p>
<div class="footer">
Copyright © 2004-2009 Frédéric Culot<br>
Calcurse version 2.6 - Last change: June 27, 2009<br>
</div>
</div>
</body>
</html>
|