From 3e15efe917b2a481473568ad95a386def55d34af Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 24 Feb 2011 11:36:50 +0000 Subject: Convert documentation to AsciiDoc, delete translations. --- doc/manual_en.html | 1331 ---------------------------------------------------- 1 file changed, 1331 deletions(-) delete mode 100644 doc/manual_en.html (limited to 'doc/manual_en.html') diff --git a/doc/manual_en.html b/doc/manual_en.html deleted file mode 100644 index 89ba526..0000000 --- a/doc/manual_en.html +++ /dev/null @@ -1,1331 +0,0 @@ - - - - - -CALCURSE documentation - - - - - -
- -

-CALCURSE - text-based organizer

- -
-

Abstract

This manual describes calcurse functionnalities, -and how to use them. The installation from source is first described, together -with the available command line arguments. The user interface -is then presented, with all of the customizable options that change -calcurse behavior. Last, bug reporting procedure is explained, as -well as the way one can contribute to calcurse development. -
- - - -

1. Introduction

-

-calcurse is a text-based calendar and scheduling application. It helps -keeping track of events, appointments and everyday tasks. -A configurable notification system reminds user of upcoming deadlines, -and the curses based interface can be customized to suit user needs. -All of the commands are documented within an online help system. -

- -

2. Overview

-

2.1 Creation history

-

- I started thinking about this project when I was finishing - my Ph.D. in Astrophysics... It started to be a little hard - to organize myself, and I really needed a good tool to help - me in that difficult task ;) -

-

- I like programs which use Text User Interfaces, because they - are simple, fast, portable and efficient, so I thought about - working on coding a simple calendar using such an interface. - Moreover, I wanted to go on learning the C - language, which I only used for a while during my undergraduate - studies. So I thought that would be the good project to start - in order to get organized and to learn about a few - C things ! -

-

- Unfortunately, I finished my Ph.D. before finishing - calcurse, - but anyway, I still wanted to work on it, hoping it would - be helpful to other people. So here it is... -

-

- But why 'calcurse' anyway ? Well, it is simply the - concatenation of 'CALendar' and 'nCURSEs', the name of the - library used to build the user interface. -

- -

2.2 Important features

-

- Calcurse is multi-platform and intended to be - lightweight, fast and reliable. It is to be used inside a - console or terminal, locally or on a distant machine within - an ssh (or similar) connection. -

-

- Calcurse can be run in two different modes : - interactive or non-interactive mode. The first mode allows - oneself to view its own personal organizer almost everywhere, - thanks to the text-based interface. - The second mode permits to easily build reminders just by adding - calcurse with appropriate command line arguments - inside a cron tab or within a shell init script. -

-

- Moreover, calcurse was created with the end-user - in mind, and tends to be as friendly as possible. This means - a complete on-line help system, together with having all of - the possible actions displayed at any time inside a status bar. - The user interface is configurable, and one can choose - between several color and layout combinations. - Key bindings are also configurable, to fit everyone's needs. - Last, a configurable notification system reminds user of upcoming - appointments. The reminders are sent even if the user's interface - is not running, as calcurse is able to run in background. -

- -

3. Installation

-

3.1 Requirements

-

3.1.1 ncurses library

-

- Calcurse requires only a C compiler, such as - cc or gcc, and the ncurses - library. - It would be very surprising not to have a valid ncurses - library already installed on your computer, but if not, you can - find it at the following url :

-
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 gettext library

-

- calcurse supports internationalization - (i18n hereafter) through the gettext - utilities. This means calcurse can produce - multi-lingual messages if compiled with native language - support (i.e. NLS). -

-

- However, - NLS is - optionnal and if you do not want to have support for - multi-lingual messages, you can disable this feature. This is - done by giving the --disable-nls option to - configure (see section Install process). - To check if the gettext utilities are - installed on your system, you can search for the - libintl.h header file for instance:

-
locate libintl.h
-

- If this header file is not found, then you can obtain the - gettext sources at the following url :

-
http://ftp.gnu.org/pub/gnu/gettext/
-

-

Note: - Even if libintl.h is found on your - system, it can be wise to specify its location during the install process, by using the - --with-libintl-prefix option with - configure. Indeed, the configure - could fail to locate this library if installed in an uncommon - place.

- - -

3.2 Install process

-

- First you need to gunzip and untar the source archive:

-
tar zxvf calcurse-2.8.tar.gz
-

- Once you meet the requirements and have extracted the archive, - the install process is quite simple, and follows the standard - three steps process: -

    -
  1. ./configure
  2. -
  3. make
  4. -
  5. make install (may require root privilege)
  6. -
-

-

- Use ./configure --help to obtain a list of - possible options. -

- -

4. calcurse basics

-

4.1 Invocation

-

4.1.1 Command line arguments

-

- calcurse takes the following options from the - command line (both short and long options are supported):

-

- -

-
-a, --appointment
-
- Print the appointments and events for the current day and exit. -

Note: the calendar from - which to read the appointments can be specified using the '-c' - flag.

-
-
-c <file>, --calendar <file>
-
- Specify the calendar file to use. - The default calendar is ~/.calcurse/apts - (see section calcurse - files). -
-
-d <date|num>, --day <date|num>
-
- Print the appointments for the given date or for the - given number of upcoming days, depending on the argument - format. Two possible formats are supported: -
    -
  • a date (possible formats described below).
  • -
  • a number 'n'.
  • -
- In the first case, the appointment list for the - specified date will be returned, while in the second - case the appointment list for the 'n' upcoming days - will be returned. - As an example, typing calcurse -d 3 - will display your appointments for today, tomorrow, - and the day after tomorrow. - Possible formats for specifying the date are defined inside the - general configuration menu (see - General options), using the - input_datefmt variable. - -

Note: as for the '-a' - flag, the calendar from which to read the appointments - can be specified using the '-c' flag.

-
-
-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
-
- Print a short help text describing the supported - command-line options, and exit.
-
-i <file>, --import <file>
-
- Import the icalendar data contained in file. -
-
-n, --next
-
- Print the next appointment within upcoming 24 hours and exit. - The indicated time is the number of hours and minutes left - before this appointment. -

Note: the calendar - from which to read the appointments can be specified using the - '-c' flag.

-
-
-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]
-
- Print the 'todo' list and exit. If the optional number - num is given, then only todos having a priority - equal to num will be returned. 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
-
- Display calcurse version and exit. -
-
-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 argument format is not given, - ical format is selected by default. -

Note: - redirect standard output to export data to a file, - by issuing a command such as: - $ calcurse --export > my_data.dat

-
-
- -

4.1.2 Environment variable for i18n

-

- calcurse can be compiled with native language - support (see gettext - library). Thus, if you wish to have messages displayed - into your native language, first make sure it is available by - looking at the po/LINGUAS file. - This file indicates the set of available languages by showing - the two-letters corresponding code (for exemple, - fr - stands for french). If you do not find your language, it - would be greatly appreciated if you could help translating - calcurse (see the How to - contribute? section).

-

- If your language is available, run - calcurse with the following command:

-
LC_ALL=fr_FR calcurse
-

- where fr_FR is the locale name in this exemple, but - should be replaced by the locale corresponding to the desired - language.

-

- You should also specify the charset to be used, because in some - cases the accents and such are not displayed correctly. - This charset is indicated at the beginning of the po file - corresponding to the desired language. For instance, you can see - in the fr.po file that it uses the iso-8859-1 charset, so you - could run calcurse using the following command:

-
LC_ALL=fr_FR.ISO8859-1 calcurse
- -

4.1.3 Other environment variables

-

- The following environment variables affect the way calcurse - operates:

-
-
VISUAL
-
Specifies the external editor to use for writing notes. -
-
EDITOR
-
If the VISUAL environment variable - is not set, then EDITOR will be used as - the default external editor. If none of those variables are set, - then /usr/bin/vi is used instead. -
-
PAGER
-
Specifies the default viewer to be used for reading notes. - If this variable is not set, then /usr/bin/less is used. -
-
- -

4.2 User interface

-

4.2.1 Non-interactive mode

-

- When called with at least one of the following arguments: - -a, -d, -h, - -n, -t, -v, - -x, - calcurse is started in non-interactive mode. - This means the desired information will be displayed, and - after that, calcurse simply quits and you are - driven back to the shell prompt.

-

- That way, one can add a line such as - 'calcurse --todo --appointment' - in its init config file to display at logon the list of tasks - and appointments scheduled for the current day.

- - -

4.2.2 Interactive mode

-

-

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).

- -

When called without any argument or only with the - -c option, calcurse is started in - interactive mode. In this mode, you are shown an interface - containing three different panels which you can browse using - the 'TAB' key, plus a notification bar and a status bar - (see figure below).

-
-
- appointment panel---.                                   .---calendar panel
-                     |                                   |  
-                     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            | todo
- |                                    ||----------------------------| panel
- |                                    ||                            |   |
- |                                    ||                            |   |
- |                                    ||                            |<--.
- |                                    ||                            |
- +------------------------------------++----------------------------+
- |---[ Mon 2006-11-22 | 10:11:43 ]---(apts)----> 01:20 :: lunch <---|<--.
- +------------------------------------------------------------------+ notify-bar
- | ? Help     R Redraw    H/L -/+1 Day      G GoTo       C Config   | 
- | Q Quit     S Save      J/K -/+1 Week   Tab Chg View              |<-. 
- +------------------------------------------------------------------+  |
-                                                                       |
-                                                                 status bar
-
-        
-

- The first panel represents a calendar which allows to highlight - a particular day, the second one contains the list of the events - and appointments on that day, and the last one contains a list - of tasks to do but which are not assigned to any specific day.

-

- 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. -

- -

- In the appointment panel, one can notice the '(|)' sign just in front of the date. - This indicates the current phase of the moon. - Depending on which is the current phase, the following signs can be - seen: -

-
' |) ':
-
first quarter
-
' (|) ':
-
full moon
-
' (| ':
-
last quarter
-
' | ':
-
new moon
-
no sign:
-
phase of the moon does not correspond to any of - the above ones
-
-

-

- At the very bottom of the screen there is a status bar, which - indicates the possible actions and the corresponding keystrokes.

-

- Just above this status bar is the notify-bar, which indicates - from left to right : the current date, the current time, the - calendar file currently in use (apts on the above example, which - is the default calendar file, see the following section), and - the next appointment within the upcoming 24 hours. Here it says - that it will be lunch time in one hour and twenty minutes.

-

Note: - Some actions, such as editing or adding an item, - require to type in some text. This is done with the help of - the built-in input line editor.

-

- Within this editor, if a line is longer than the screen width, - a '>', '*', or '<' character is displayed in the last - column indicating that there are more character after, before and - after, or before the current position, respectively. The line is - scrolled horizontally as necessary.

-

- Moreover, some editing commands are bound to particular control - characters. Hereafter are indicated the available editing commands - ('^' stands for the control key): -

-
^a:
-
moves the cursor to the beginning of the input line
-
^b:
-
moves the cursor backward
-
^d:
-
deletes one character forward
-
^e:
-
moves the cursor to the end of the input line
-
^f:
-
moves the cursor forward
-
^h:
-
deletes one character backward
-
^k:
-
deletes the input from the cursor to the end of the line
-
ESCAPE:
-
cancels the editing
-
-

- -

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 calcurse files

-

- The following structure is created in your $HOME - directory (or in the directory you specified with the -D option) - the first time calcurse is run :

-
-$HOME/.calcurse/
-           |___notes/
-           |___conf
-           |___keys
-           |___apts
-           |___todo
-        
-
-
notes/:
-
this subdirectory contains descriptions of the notes - which are attached to appointments, events or todos. One text file is - created per note, whose name is built using mkstemp(3) and should be - unique, but with no relation with the corresponding item's description.
-
conf:
-
this file contains the user configuration
-
keys:
-
this file contains the user-defined key bindings
-
apts:
-
this file contains all of the events and user's appointments
-
todo:
-
this file contains the todo list
-
- -

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: -

-

-

- 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: -

-

- -

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 Online help

-

- At any time, the built-in help system can be invoked by - pressing the '?' key. Once viewing the help screens, - informations on a specific command can be accessed by pressing - the keystroke corresponding to that command. -

- -

5. Options

-

- All of the calcurse parameters are configurable from the - Configuration menu available when pressing 'C'. You are then - driven to a submenu with five possible choices : pressing 'C' - again will lead you to the Color scheme configuration, - pressing 'L' allows you to choose the layout of the main - calcurse screen (in other words, where to put the three - different panels on screen), pressing 'G' permits you to choose between - different general options, pressing 'K' opens the key bindings configuration - menu, and last you can modify the notify-bar settings by pressing 'N'.

- -

5.1 General options

-

- These options control calcurse general behavior, - as described below:

-
-
auto_save - (default: yes)
-
This option allows to automatically save the user's data - (if set to yes) when quitting. -

warning: - No data will be automatically saved if - auto_save is set to no. - This means the user must press 'S' (for saving) in order to - retrieve its modifications.

-
-
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)
-
If set to yes, confirmation is required before - quitting, otherwise pressing 'Q' will cause calcurse - to quit without prompting for user confirmation. -
-
confirm_delete (default: yes)
-
If this option is set to yes, pressing 'D' for - deleting an item (either a todo, - appointment, - or event), will lead to a prompt asking for user - confirmation before removing the selected item from the list. - Otherwise, no confirmation will be needed before deleting the item. -
-
skip_system_dialogs - (default: no)
-
Setting this option to yes will result in - skipping the - system dialogs related to the saving and loading of data. - This can be useful to speed up the input/output processes. -
-
skip_progress_bar - (default: no)
-
If set to yes, this will cause the disappearing of the - progress bar which is usually shown when saving data to file. - If set to no, this bar will be displayed, together with - the name of the file being saved - (see section calcurse files). -
-
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)
-
One can choose between Monday and Sunday as the first day of the - week. If the option week_begins_on_monday is set to - yes, Monday will be first in the calendar view. Else if - the option is set to no, then Sunday will be the first - day of the week.
-
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 strftime - inside a terminal.
-
input_datefmt - (default: 1)
-
This option indicates the format that will be used to enter dates in - calcurse. Four choices are available: -
    -
  1. mm/dd/yyyy
  2. -
  3. dd/mm/yyyy
  4. -
  5. yyyy/mm/dd
  6. -
  7. yyyy-mm-dd
  8. -
-
-
- - -

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: -

-

- 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

-

- calcurse color theme can be customized to suit user's - needs. To change the default theme, the configuration page - displays possible choices for foreground and background colors. - Using arrows or calcurse displacement keys to move, and 'X' or space - to select a color, user can preview the theme which will be applied. - It is possible to keep the terminal's default colors by selecting the - corresponding choice in the list.

-

- The chosen color theme will then be applied to the panel borders, - to the titles, to the keystrokes, and to general informations - displayed inside status bar. A black and white theme is also - available, in order to support non-color terminals.

-

Notes: - Depending on your terminal type and on the value of the - $TERM environnement variable, color could or - could not be supported. An error message will appear if you - try to change colors whereas your terminal does not support - this feature. - If you do know your terminal supports colors but could - not get calcurse to display them, try to set your - $TERM variable to another value (such as - xterm-xfree86 for instance). -

- - -

5.4 Layout configuration

-

- The layout corresponds to the position of the panels inside - calcurse screen. The default layout makes the - calendar panel to be displayed on the top-right corner of the - terminal, the todo panel on the bottom-right corner, while the - appointment panel is displayed on the left hand-side of the - screen (see the figure in section - Interactive mode - for an exemple of the default layout). - By choosing another layout in the configuration screen, user - can customize calcurse appearence to best suit - his needs by placing the different panels where needed.

-

- 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 Notify-bar settings

-

- The following options are used to modify the notify-bar behavior:

-
-
notify-bar_show - (default: yes)
-
This option indicates if you want the notify-bar to be displayed - or not.
-
notify-bar_date - (default: %a %F)
-
With this option, you can specify the format to be used to - display the current date inside the notification bar. You can - see all of the possible formats by typing man 3 strftime - inside a terminal.
-
notify-bar_time - (default: %T)
-
With this option, you can specify the format to be used to - display the current time inside the notification bar. You can - see all of the possible formats by typing man 3 strftime - inside a terminal.
-
notify-bar_warning - (default: 300)
-
When there is an appointment which is flagged as 'important' - within the next 'notify-bar_warning' - seconds, the display of that appointment inside the notify-bar - starts to blink. - Moreover, the command defined by the notify-bar_command - option will be launched. - That way, the user is warned and knows there - will be soon an upcoming appointment. -
-
notify-bar_command - (default: printf '\a')
-
This option indicates which command is to be launched when there is an - upcoming appointment flagged as 'important'. This command will be - passed to the user's shell which will interpret it. To know what shell - must be used, the content of the $SHELL environment variable - is used. If this variable is not set, /bin/sh is used - instead. -

Example: - Say the mail command is available on - the user's system, one can use the following command to get notified by - mail of an upcoming appointment (the appointment description will also - be mentioned in the mail body):

- -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 calcurse - will 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, calcurse daemon activity will be logged (see section - files). -
-
- -

6. Known bugs

-

- Incorrect highlighting of items appear when using calcurse - black and white theme together with a $TERM - variable set to xterm-color. - To fix this bug, and as advised by Thomas E. Dickey - (xterm maintainer), xterm-xfree86 - should be used instead of xterm-color to set - the $TERM variable:

-
- "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. Reporting bugs and feedback

-

- Please send bug reports and feedback to:

-
calcurse .at. culot .dot. org
-

- or to the author:

-
frederic .at. culot .dot. org
- -

8. How to contribute?

-

- If you would like to contribute to the project, - you can first send your feedback on what you like or dislike, - and if there are features you miss in calcurse. - For now on, possible contributions concern the translation - of calcurse messages and documentation.

-

Note: - any help in getting calcurse - internationalized would be very welcomed, but before - contributing, send a mail to - calcurse-i18n .at. culot .dot. org to know if someone - already started the translation process into your language.

- -

8.1 Translating documentation

-

- The doc/ directory of the source package already - contains translated version of calcurse - manual. However, if the manual is not yet available into your - native language, it would be appreciated if you could help - translating it.

-

- To do so, just copy one of the existing manual - file to manual_XX.html, where XX - identifies your language. Then translate this newly created - file and send it to the author (see Reporting - bugs and feeback), so that it can be included in the - next calcurse release.

- -

8.2 calcurse i18n

-

- As already mentioned, gettext utilities are used - by calcurse to produce multi-lingual - messages. This section provides informations about how to - translate those messages into your native language. However, - this howto is deliberately incomplete, focusing on working - with gettext for calcurse - specifically. For more comprehensive informations or to grasp - the Big Picture of Native Language Support, you should refer - to the GNU gettext manual at:

-
http://www.gnu.org/software/gettext/manual/ 
-

- Basically, three different people get involved in the - translation chain: coders, language coordinator, and - translators. After a quick overview of how things work, the - translator tasks will be described hereafter.

- - -

8.2.1 Overview

-

- To be able to display texts in the native language of the - user, two steps are required: internationalization - (i18n) and localization (l10n).

-

- i18n is about making - calcurse support multiple languages. It is - performed by coders, who will mark translatable texts and - provide a way to display them translated at runtime.

-

- l10n is - about making the i18n'ed calcurse adapt to the - specific language of the user, ie translating the strings - previously marked by the developers, and setting the - environment correctly for calcurse to use the - result of this translation.

-

- So, translatable strings are first marked by the coders within - the C source files, then gathered in a template - file (calcurse.pot - the pot extension - meaning portable object template). The content of - this template file is then merged with the translation files - for each language (fr.po for french, for instance - - with po standing for portable object, ie - meant to be read and edited by humans). A given translation - team will take this file, translate its strings, and send it - back to the developers. At compilation time, a binary version - of this file (for efficiency reasons) will be produced - (fr.mo - mo stands for - machine - object, ie meant to be read by programs), and then - installed. Then calcurse will use this file at - runtime, translating the strings according to the locale - settings of the user.

- - -

8.2.2 Translator tasks

-

- Suppose someone wants to initiate the translation of a new - language. Here are the steps to follow:

- -

- Now, having this fr.po file, the translator is ready - to begin.

- - -

8.2.3 po-files

-

- The format of the po-files is quite simple. Indeed, po-files - are made of four things:

-
    -
  1. location lines: tells you where the strings can - be seen (name of file and line number), in case you need to - see a bit of context.
  2. -
  3. msgid lines: the strings to translate.
  4. -
  5. msgstr lines: the translated strings.
  6. -
  7. lines prefixed with '#': comments (some with a - special meaning, as we will see below).
  8. -
-

- Basically, all you have to do is fill the msgstr - lines with the translation of the above msgid - line.

-

- A few notes: -

-
Fuzzy strings
-
You will meet strings marked with a "#, fuzzy" - comment. calcurse won't use the translations of - such strings until you do something about them. A string - being fuzzy means either that the string has already been - translated but has since been changed in the sources of the - program, or that this is a new string for which - gettext made a 'wild guess' for the translation, - based on other strings in the file. It means you have to - review the translation. Sometimes, the original string has - changed just because a typo has been fixed. In this case, you - won't have to change anything. But sometimes, the translation - will no longer be accurate and needs to be changed. Once you - are done and happy with the translation, just remove the - "#, fuzzy" line, and the translation will be used - again in calcurse.
-
c-format strings and special sequences
-
Some strings have the following comment: "#, - c-format". This tells that parts of the string to - translate have a special meaning for the program, and that you - should leave them alone. For instance, %-sequences, like - "%s". These means that calcurse will - replace them with another string. So it is important it - remains. There are also \-sequences, like \n or - \t. Leave them, too. The former represents an end - of line, the latter a tabulation.
-
Translations can be wrapped
-
If lines are too long, you can just break them like this: -
-msgid ""
-"some very long line"
-"another line"
-        
-
po-file header
-
At the very beginning of the po-file, the first string form a - header, where various kind of information has to be filled - in. Most important one is the charset. It should resemble -
-"Content-Type: text/plain; charset=utf-8\n"
-        
- You should also fill in the Last-Translator field, so that - potential contributors can contact you if they want to join - you in the translation team, or have remarks/typo fixes to - give about the translations. You can either just give your - name/nick, or add an email address, for exemple: -
-"Last-Translator: Frederic Culot <frederic@culot.org>\n"
-        
-
Comments
-
Adding comments (lines begining with the '#' character) can be - a good way to point out problems or translation difficulties - to proofreaders or other members of your team.
-
Strings size
-
calcurse is a curses/console program, thus it can - be heavily dependant on the terminal size (number of - columns). You should think about this when translating. Often, - a string must fit into a single line (standard length is 80 - characters). Don't translate blindly, try to look where your - string will be displayed to adapt your translation.
-
A few useful tools
-
The po-file format is very simple, and the file can be edited - with a standard text editor. But if you prefer, there are few - specialized tools you may find convenient for translating: - -
-
And finally
-
I hope you'll have fun contributing to a more - internationalized world. :) If you have any more questions, - don't hesitate to contact me at - frederic .at. culot .dot. org.
-
- - -

9. Links

-

- This section contains links and references that may be of - interest to you.

- -

9.1 calcurse homepage

-

- The calcurse homepage can be found at

-
http://culot.org/calcurse
- -

9.2 calcurse announce list

-

- If you are interested in the project and want to be warned - when a new release comes out, you can subscribe to the - calcurse announce list. In doing so, you will - receive an email as soon as a new feature appears in - calcurse.

-

- To subscribe to this list, send a message to - calcurse-announce .at. culot .dot. org - with "subscribe" in the subject field.

- -

9.3 calcurse RSS feed

-

- Another possibility to get warned when new releases come out - is to follow the RSS feed at:

-
http://culot.org/calcurse/news_rss.xml
-

- This RSS feed is updated each time a new version of calcurse is - available, describing newly added features.

- -

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. Thanks

-

- Its time now to thank other people without whom this program - would not exist! So here is a list of contributing persons I - would like to thank : -

-

-

- And last, many many thanks to all of the calcurse - users who sent me their feedback.

- - -
- - - -- cgit v1.2.3-54-g00ecf