<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd" [
 <!ENTITY kbabel   "<application>KBabel</application>">
 <!ENTITY kbabeldict   "<application>KBabelDict</application>">
 <!ENTITY kappname "&kbabel;">
 <!ENTITY % addindex "IGNORE">
 <!ENTITY % English "INCLUDE" > <!-- change language only here -->
 
 
]>

<book lang="&language;">

<bookinfo>
<title>The KBabel Handbook</title>

<authorgroup>
<author>
<firstname>Matthias</firstname>
<surname>Kiefer</surname>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>


<date>2000-08-06</date>
<releaseinfo>0.05.00</releaseinfo>

<abstract>
<para>
&kbabel; is an advanced and easy to use PO-file editor. It has
a multi functional Catalog Manager, and many advanced features like searching
in catalogs, text highlighting and it lets you customize many options.
</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>KBabel</keyword>
<keyword>kbabel</keyword>
<keyword>kdesdk</keyword>
<keyword>gettext</keyword>
<keyword>translation</keyword>
<keyword>i18n</keyword>
<keyword>l10n</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<!-- FIXME: to review -->
<title>Introduction</title>

<para>
&kbabel; is an advanced and easy to use PO-file (gnu gettext message catalogs)
editor. It has many features, that makes editing and managing your PO-files
easy.  This includes full navigation capabilities, extensive editing
functionality, search functions, syntax checking and statistics function.
Also included is a "Catalog Manager", a file manager view,
which helps you to keep an overview over your PO-files.
&kbabel; will help you to translate fast and also keep consistent translations.
</para>
<para>
With KDE project continous growing the number of PO messages is over 27000
at time writing this documentation. There is a need to stay organized and
consistent along all translations. Consider using &kbabeldict; to help
managing this huge number of messages and PO catalogs.
</para>

</chapter>


<chapter id="using-kbabel">
<title>Using KBabel</title>

<sect1 id="using-introduction">
<!-- FIXME: to review -->
<title>Introduction</title>
<para>
Usually, program messages and documentation is written in English. However
since using a framework made from a set of tools and libraries it was
posible to have favorite applications speaking your native non-English
language. The adapting process to a specific language is named localization.
This include translating program interface and documentation to various
languages users need and make input and output conform to be correct
with particular conventions in some countries or regions. &kbabel; is
a tool which assist you in internationalization process which mean
to make an application interface speak many languages.
</para>
<para>
Every internationalization aware program make available for translation one
or more messages catalog files. Their extention is <filename>.pot</filename>
and is an acronym: <acronym>POT</acronym> - Portable Object Template.
Every translator take a POT file copy and begin translating messages. That,
this file will became <acronym>PO</acronym> file - Portable Object and
represent only one language. After translating process completing this
text file (often it contain non-ASCII characters) is compiled into
binary format, machine readable. It's like a database to minimize
lookup for translated messages. This file have <filename>.mo</filename>
extension and is named <acronym>MO</acronym> file - Machine Object.
</para>
<para>
There is a question in the air: Do I need to know how is inside a PO file?
The answer is undoubtefully, yes. There are situations when a messages catalog
became corrupt and must be manually fixed. Most of them are so hated CVS
conflicts when translating process is coordinated by a concurent version
system (see <ulink url="info:/cvs">CVS</ulink> documentation). &kbabel;
can't help you very much on this but an text editor, CVS and PO-file
knowledge. Let's see how a PO file is made.
The principal concepts are <emphasis>msgid</emphasis> and
<emphasis>msgstr</emphasis> markers which are continued by C-like strings (delimited
by double quotes). Both groups begin with msgid and respectively msgstr.
Msgid stand for English text in application user interface and msgstr
stand for translated text. Empty lines and starting with number sign are
ignored. Lines with number sign represent comments and are a good point
to indicate from what file is the translatable English message or even aditional
comments for translating made by application developers. &kbabel; display
comment lines for every message. In many cases  first msgid-msgstr pair in
PO file is a fake entry (PO file header) which contain various informations about
translated PO-file: application name, translating date, translator name and
many more.
</para>
</sect1>

<sect1 id="using-editor">
<!-- FIXME: to work -->
<title>The Editor</title>
<para>
Here's a screenshot of &kbabel;. Main window is split
in four panels. For convenience &kbabel; has toolbars to speed up many operations and for
high working people there are many shortcuts.
Upper left edit box is read-only and contains the current msgid
field from the opened PO-file and it's english text. Bottom left edit box is
msgstr field related and here you can edit the translated text.
On top-right window part is comments panel where you can view comments added
for current edited entry. It's covenient to find how entry is treated (c-formated
or simple). In some cases you can read helpfull comments added by application developer
who care about translators work and translating dificulties, for example where
terms have different interpretation in application. Undoubtefully, translators
need to have a very good general culture, but in some high tech programs
comments seems to help very much. A good example is LyX Project which use
TeX terminology. Another uses are when you need to know from what file
current messages is because you want to report a spelling mistake in
original English string.
<screenshot>
<screeninfo>Screenshot of &kbabel;</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="snap1.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
</para>

<para>
Editor window Bottom-right part is the most sofisticated one. It's size can be
adjusted with spliter line which border the space between it and comment panel.
It is multifunctional and have two tabbed panels: search and context information.
Contextual information tab contain a scrolled view which show the 4 precedent
and 4 next entries according with current entry. It's as you may see a snapshot
from edited PO file.What's this good? It's very common that when you translate
many strings are related both in advance and back, so you may have a look if
you have no clue how current entry can be best translated. Dialog interface
translation is a good example or widgets have along with its asociated text
and "what's this" quick help.

</para>

<sect2 id="kbabel-features">
<title>More KBabel features</title>

<para>
Shortly, I would explain that a msgid entry can be in three states:
</para>
<variablelist>
   <varlistentry>
     <term>untranslated</term>
     <listitem>
       <para>
       which obviously mean there's no translated text associated
       with msgstr
       </para>
     </listitem>
   </varlistentry>
   <varlistentry>
      <term>fuzzy</term>
      <listitem>
         <para>
    <command>msgmerge</command> had tried to match better translated
    string looking in rest of PO-file entries. This does not work perfectly and
    you must edit the translated text to fit the current english text.
         </para>
      </listitem>
   </varlistentry>
   <varlistentry>
      <term>translated</term>
      <listitem>
         <para>
     obvious this mean current msgid entry is translated.
         </para>
      </listitem>
   </varlistentry>
</variablelist>
<para>
The state of the current entry is indicated by two LEDs. Depending on your
configuration, these can be in statusbar or above the translated string
edit box. Both have customizable color to reflect your visual requirements or
taste. Please read <link linkend="preferences">Preferences</link> section
to see how you can adjust these settings.
</para>

   </sect2>
</sect1>

<sect1 id="using-catalogmanager">
<!-- FIXME: to work -->
<title>The Catalog Manager</title>
<anchor id="catalogmanager"/>
<para>
<screenshot>
<screeninfo>Screenshot of Catalog Manager</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="snap_catalogmanager.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
</para>
<para>
The Catalog Manager merges two directories into one tree and displays
all PO- and POT-files in these directories. This way you can easily see if a
new template has been added or removed. Also some informations of the files
are displayed in the Catalog Manager: total number, number of fuzzy and
number of untranslated entries, the last revision and the last translator
of the file.
</para>
<para>
To make it easier for you to find files, that need work or that are
missing, the status of the files is also displayed with an icon:
</para>

<itemizedlist>
   <listitem>
      <para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="catalogmanager_ok.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
The messages in this file are all translated.
      </para>
   </listitem>
   <listitem>
      <para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="catalogmanager_needwork.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
Some messages in this file are fuzzy or untranslated
      </para>
   </listitem>
   <listitem>
      <para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="catalogmanager_missing.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
This file does not exists in the directory of the PO-files.
      </para>
   </listitem>
   <listitem>
      <para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="catalogmanager_broken.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
This file contains syntax errors.
      </para>
   </listitem>
</itemizedlist>

<para>
If an icon is marked with this icon
<inlinemediaobject>
<imageobject>
<imagedata fileref="catalogmanager_nopot.png" format="PNG"/>
</imageobject>
</inlinemediaobject>, like
<inlinemediaobject>
<imageobject>
<imagedata fileref="catalogmanager_nopot_ok.png" format="PNG"/>
</imageobject>
</inlinemediaobject>,
it indicates, that this file or directory does not exist in the
directory of the POT-files.
</para>
<para>
You can mark or unmark a file by selecting
<menuchoice><guimenuitem>Toggle Marking</guimenuitem></menuchoice> in the
context menu of a file.
If you want to toggle or remove all markings in a directory, press the right
mouse button over this directory and select <menuchoice>
<guimenuitem>Toggle Markings</guimenuitem></menuchoice> or
<menuchoice><guimenuitem>Remove Markings</guimenuitem></menuchoice>.
The markings are automatically saved when leaving &kbabel;.
</para>
<para>
To open a file, double click on the file, or select it and press either
<keycap>Return</keycap> or <keycombo><keycap>Ctrl</keycap><keycap>O</keycap>
</keycombo>, or select
<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>
from the context menu.
</para>
<para>
You can configure the Catalog Manager either by clicking
<guibutton>Configure...</guibutton> at the bottom
or in section <guilabel>Catalog Manager</guilabel> of the preferences dialog.
See section <link linkend="preferences-catalogmanager">Preferences</link> for
more details.
</para>
</sect1>

</chapter>

<chapter id="dictionaries">
<title>Dictionaries</title>
<!-- FIXME: to work -->
<para>
&kbabel; come with 3 modes for searching translated PO strings:
translation database, PO compendium an auxiliary PO file.
</para>

<sect1 id="database">
<!-- FIXME: to work -->
<title>Translation database</title>
<para>
You can configure this searching mode by selecting
<menuchoice>
  <guimenuitem>Settings</guimenuitem>
  <guimenuitem>Configure Dictionary</guimenuitem>
  <guimenuitem>Translation Database</guimenuitem>
</menuchoice>
in &kbabel; menu.
</para>
</sect1>

<sect1 id="auxiliary">
<title>Auxiliary PO file</title>
<para>
This searching mode is based on matching the same original
string (msgid) in an auxiliary PO file, translated in
other language. It's very common that romanic languages have
similar words. Same for anglosaxone and slavone ones. For
example, I want to translate then word "on" in Romanian from
<filename>kdelibs.po</filename>, but have no clue. I look
in the same file for French and found "actif". In Spanish one
I found "activado". So, I conclude that the best one in
Romanian will be "activ". &kbabel; automate this task. Currently
you can define only one auxiliary file to search.
</para>
<para>
You can configure this searching mode by selecting
<menuchoice>
  <guimenuitem>Settings</guimenuitem>
  <guimenuitem>Configure Dictionary</guimenuitem>
  <guimenuitem>PO Auxiliary</guimenuitem>
</menuchoice>
in &kbabel; menu.
In "Configure Dictionary PO Auxiliary" dialog you can select
the path to auxiliary PO file. To automate PO file switching
when you change current edited file, there are many variables
delimited by "@" char which are replaced by appropriate values:
<variablelist>
  <varlistentry>
    <term>@PACKAGE@</term>
    <listitem><para>
      The name of currently translated application or package.
      For example can expand to: kbabel, kdelibs, konqueror etc.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>@LANG@</term>
    <listitem><para>
      The language code.
      For example can expand to: de, ro, fr etc.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>@DIRn@</term>
    <listitem><para>
      where "n" is a positive integer. This expand to
      the "n"-th directory counted from filename (right to
      left).
    </para></listitem>
  </varlistentry>
</variablelist>

In editline is displayed the actual path to auxiliary PO file. While
you best use provided variables in path, it's possible to choose
an absolute, real path to an existing PO file. Let's take an example.
I'm Romanian and I have some knowledge about French language and I work
on KDE translation.
First step is to download a very fresh <filename>kde-i18n-fr.tar.bz2</filename>
from <ulink url="ftp://ftp.kde.org/pub/kde/snapshots/current/kde-i18n">KDE FTP site</ulink> or to use CVS system to put on my hard-disk a French translation
tree. I do this on <filename>/home/clau/cvs-cvs.kde.org/kde-i18n/fr</filename>.
My PO sources directory is in
<filename>/home/clau/cvs-cvs.kde.org/kde-i18n/ro</filename>.
Don't forget to select "PO Auxiliary" as default dictionary and check
<guilabel>Automatically start search</guilabel> in <guilabel>Search</guilabel>
tab from &kbabel; "Preferences" dialog.
</para>
</sect1>

<sect1 id="compendium">
<!-- FIXME: to work -->
<title>PO compendium searching</title>
<para>
You can configure this searching mode by selecting
<menuchoice>
  <guimenuitem>Settings</guimenuitem>
  <guimenuitem>Configure Dictionary</guimenuitem>
  <guimenuitem>PO Compedium</guimenuitem>
</menuchoice>
in &kbabel; menu.
</para>
</sect1>

</chapter>

<chapter id="preferences">
<!-- FIXME: to update -->
<title>Preferences Dialog</title>
<para> You could show Preferences dialog by choosing
<menuchoice><guimenu>Settings</guimenu>
<guimenuitem>Configure KBabel...</guimenuitem></menuchoice> from
&kbabel; menu. It uses a structured configuration dialog which makes it very easy
to find every option without extensive search. The left side of the
preferences dialog lists categories for customizable items and the right side
shows the corresponding tab for the selected category. &kbabel; keeps changes
if you move between categories, so, finally, when you're happy click the
<guibutton>OK</guibutton> button. At any moment you can use quick help.
Just click on the question mark on the title bar and, after the cursor changed
like an arrow with a question mark, click on buttons, labels, entries to obtain
more info on the specified item.
</para>

<sect1 id="preferences-identity">
<title>Identity</title>
<para>
This section allows you to set standard fields for every translated PO file.
These are your name, email address, full language name, email address for
your translation team mailing list. Also, there is even timezone
to track last modified time for PO file. You can specify it as character
sequence like EEST or offset from GMT time like +0200 (i.e. for Romania).
This information is used when updating file header.
You can find the options if and what fields in the header should be
updated on section <link linkend="preferences-save">Save</link> in Preferences dialog.
</para>
</sect1>

<sect1 id="preferences-editor">
<title>Editor</title>
<para>
The editor preferences category is divided in 3 subwindows:
<guilabel>General</guilabel>, <guilabel>Appearance</guilabel>,
<guilabel>Spell Check</guilabel>, and  <guilabel>Fonts</guilabel>.
All these settings customize how the editor behaves and looks.
</para>

<sect2 id="preferences-editor-general">
<title>General</title>
<para>Here is a set of checkboxes.
First checkbox in upper side sets if fuzzy status is reseted
automatically at first character input in MsgStr editor.
When this option is disabled you have to  manually choose
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Unset Fuzzy Status
</guimenuitem></menuchoice>
or press the
<keycombo><keycap>Ctrl</keycap><keycap>U</keycap></keycombo>
shortcut. This means the string "<literal>, fuzzy</literal>"
is removed from the entry's comment.
</para>
<para>
The downside checkboxes group are very usefull in assisting
not for translation corectness, but for logical. Many messages
represent menu items with keyboard accelerator and C-like formated
strings.
</para>
<variablelist>
  <varlistentry>
    <term>Check Arguments</term>
    <listitem>
    <para>
    When is checked C-format strings in original and
    translation are checked to find if number of
    format sequences is identical and also order.
    </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Check Accelerator</term>
    <listitem>
    <para>
    Check to find if number of accelerator characters
    is identical in both original and translated string.
    Please note that accelerator marker is &amp;,
    but not in every programming toolkit. See
    <link linkend="preferences-miscellaneous">Miscellaneous</link> section below
    to find how to change keyboard accelerator.
    </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Check Equation</term>
    <listitem>
    <para>
    This is a feature for KDE project development.
    <filename>.desktop</filename> files are simply
    text files which store various parameters in
    <literal>value=key</literal> format. Some of
    these <literal>key</literal> are translatable.
    The only restriction is to maintain the left
    side of equality unchanged. Equation check
    allow you to spot many errors determined
    by fuzzy <command>msgmerge</command> algorithm.
    Note that are situations where this function
    generate false errors on some PO-files.
    </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Look for Translated Context Info</term>
    <listitem>
    <para>
    Some original messages are marked with
    context information to make them unique even
    they represent same word. This is because
    in the simple "Save" word is translated in
    many kinds in other languages. Context info
    is marked with <literal>_:</literal>. Many
    unexperienced translators do even
    context info translation and fill their PO-files
    with garbage. Check this box to make
    sure you will be warned about these errors in file.
    </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Beep on error</term>
    <listitem>
    <para>
    Your system bell will beep when you switch
    on entries with errors like those described above.
    </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Change text color on error</term>
    <listitem>
    <para>
    This is another type of warning about
    errors in current message. For persons
    deaf impaired or are bored by
    bell noise, here is a good solution.
    Check this. See also
    <link linkend="preferences-editor-appearance">Appearance</link> tab
    to know how to change text color on errors.
    </para>
    </listitem>
  </varlistentry>
</variablelist>

</sect2>

<sect2 id="preferences-editor-appearance">
<title>Appearance</title>
<para>
These options let
you configure the appearance for the message editor. In upper part there
are 4 checkboxes:
</para>
<variablelist>
  <varlistentry>
    <term>Highlight syntax</term>
    <listitem><para>
    Setting this option will enable syntax highlighting for
    special characters, accelerators and text background in msgid viewer
    and msgstr editor. If don't have a monochrome display or
    have a visual impairment, you should enable this option.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Highlight background</term>
    <listitem><para>
    Background will be highlighted only for existing characters in
    msgid and msgstr. This includes spaces. That is useful, if you don't want
    to see surrounding quotes (see below) for the PO entry, you will still
    be able to observe starting and ending spaces in a text line.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Mark whitespaces with points</term>
    <listitem><para>
    When you feel the need to count spaces right from an eye
    or background highlighting is not your taste, then you can
    check this option to view whitespaces filled with points.
    Note that point is a point sign in the center of a character box,
    and not a decimal point.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Show surrounding quotes</term>
    <listitem><para>
    If you think that viewing terminal char in msgstr or msgids text line
    is better for you then check this option to view surrounding quotes for
    every text line. Same thing if your experience editing PO files with
    ordinary text editors make you feel safe if you can track starting and
    ending double quotes in PO entry lines.
    </para></listitem>
  </varlistentry>
</variablelist>

<para>
For different items in edited text there are different color choices to make
editing easy. Colors can be changed by clicking on color-picker buttons.
From select color dialogs you can choose from standard colors, custom colors
or just pick color from any part of your screen.
</para>

<variablelist>
  <varlistentry>
    <term>Background color</term>
    <listitem><para>
    This sets the background color for characters in MsgID view
    and MsgStr editor. For general background color of edit box
    you must use KDE Control Center.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Color for quoted characters</term>
    <listitem><para>
    Here you can adjust the color for escaped characters like
    (\") double quotes or (\n) newline.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Color for syntax errors</term>
    <listitem><para>
    This is the color for the entire text entry if errors are
    detected when you try to save PO file. Errors are
    triggered by not terminating identically both msgid and msgstr, or
    escaping characters incorrectly.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Color for c-format characters</term>
    <listitem><para>
    This sets the color for a characters sequence like in
    C language printf or scanf functions. In general these start with
    (%) percent char and are continued by one char.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Color for keyboard accelerators</term>
    <listitem><para>
     Keyboard accelerators start with (&amp;) <quote>ampersand</quote>
     character in KDE but if
     you are translating for other projects there might be an different
     character marking the accelerator key.
     See
     <link linkend="preferences-miscellaneous">Miscellaneous</link> section below
     to find how to change keyboard accelerator.
    </para></listitem>
  </varlistentry>
</variablelist>

<para>
The status for the current edited entry is marked by three LEDs. For your
convenience you can choose where to put these LEDs: in statusbar or in
editor (between msgid and msgstr entry). If have difficulties to view some
colors or you want to make sure you can track LED status changes easily
without moving your eye, you can select the prefered color using the color
button chooser.
</para>
</sect2>

<sect2 id="preferences-editor-spellcheck">
<title>Spell Check</title>
<para>
Here you can  set your spell checking preferences.
These is for interest if you have dictionary file
for your translating language. Bellow are items
to consider setting:
</para>

<variablelist>
  <varlistentry>
    <term>Create root/affix combinations not in dictionary</term>
    <listitem><para>
    For new words added to personal dictionary,
    spell check engine will create root/affix
    combinations to match more than one word (variations).
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Consider run-together words as spelling errors</term>
    <listitem><para>
    If this is turned on, then joined words  will be treated
    as errors. However, this situations is very usual in
    German language which have a very large number of
    compound words.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Dictionary</term>
    <listitem><para>
    From the popup list you can choose which dictionary to use. Note
    that you must install apropiate dictionary for your language.
    Check your ispell or aspell distribution to figure out
    if you have one.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Encoding</term>
    <listitem><para>
    Here you choose encoding for your text. This options is passed
    to spellchecker. It is encoding for your words dictionary.
    See <ulink url="help:/kspell">kspell</ulink> documentation for more details.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Client</term>
    <listitem><para>
    Backend program for spell checking. Currently are to:
    ispell (International Ispell) and aspell.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Remember ignored words</term>
    <listitem><para>
    Keep track of user ignored words when spell check
    PO-files. It's very convenient to ignore abbreviations
    or strange letter combinations you meet in GUI interfaces.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>File to store ignored words</term>
    <listitem><para>
    Here you can set location of file for ignored words. Clicking
    on folder icon from editline right side you can choose
    path and name for ignored words file. Default is
    <filename>$(HOME)/.kde/share/apps/kbabel/spellignores</filename>,
    where <filename>$(HOME)</filename> is your home directory.
    </para></listitem>
  </varlistentry>
</variablelist>
</sect2>


<sect2 id="preferences-editor-fonts">
<title>Fonts</title>
<para>
This is a classic font chooser dialog with a little addition. You can
select to view only fixed fonts by checking the
<guibutton>Show only fixed fonts</guibutton> option.
This is highly recomended for easy translating. The font dialog let you set
font family, style, size and encoding. The bottom box shows a preview of the
current for user convenience.
</para>
</sect2>
</sect1>

<sect1 id="preferences-search">
<title>Search</title>
<para>
The search section allows you to customize various settings
for searching in previous translated strings.
</para>

<sect2 id="preferences-search-general">
<title>General</title>
<para>
General settings are common for all search types. If you check
<guibutton>Automatically start search</guibutton> option then search is
automatically started whenever you switch to another entry in the editor.
At the moment there are at three posibilies you can choose from. But
since &kbabel; can use dictionary plugins the available dictionaries depends
what is actually installed.
With <menuchoice><guimenuitem>Settings</guimenuitem>
<guimenuitem>Configure Dictionary</guimenuitem>
<guimenuitem>...</guimenuitem></menuchoice>
you can configure every search engine plugin.
The default installed dictionarys plugins are:
</para>

<itemizedlist>
  <listitem><para>
    <emphasis>KDE Database Search Engine</emphasis>:
     This new method is still in alpha stage of development
     and base it task on &kbabeldict; which acompany &kbabel;.
     See &kbabeldict; documentation for further info on
     configuring search engine.
  </para></listitem>
  <listitem><para>
    <emphasis>PO Compendium</emphasis>: The compendium is a normal PO file,
    which should contain a list of standard translation from your translation
    team. If you don't have one, you can also use a file that contains all
    used translations of your team (e.g. the <filename>$lang.messages</filename>
    file in the  KDE Project, that can be found at
    <ulink url="http://i18n.kde.org/po_overview/">i18n.kde.org</ulink>).
  </para></listitem>
  <listitem><para>
    <emphasis>PO Auxiliary</emphasis>: The auxiliary should help you finding the
    context of a translation by looking up the same message in a message
    catalog of the same package but translated to another language. This way
    you can have a look how this message is translated in another language.
  </para></listitem>
</itemizedlist>

<para>
You can also start searching manually by choosing an
entry in the popup menu that appears either when clicking at
<menuchoice>
<guimenu>Dictionaries</guimenu><guimenuitem>Search Text</guimenuitem>
<guimenuitem>PO Compendium</guimenuitem></menuchoice>
or keeping the search button in the toolbar pressed for a while.
</para>
</sect2>

</sect1>

<sect1 id="preferences-save">
<title>Save</title>
<para>
This section allows you to edit the options for PO file saving.
The first checkboxes group control general hehaviour for actions
performed at PO-file saving command.
</para>

<variablelist>
  <varlistentry>
    <term>Update header when saving</term>
    <listitem><para>
      Check this button, to update the header information of the file everytime
      when it is saved. The header normally keeps information about the date and
      time the file was last updated,the last translator etc. You can choose
      which information you want to update from the <guilabel>Fields to update</guilabel>
      checkboxes area below. Fields that do not exist are added to the header.
      If you want to add additional fields to the header you can edit the header
      manually by choosing <menuchoice><guimenu>Edit</guimenu>
      <guimenuitem>Edit Header</guimenuitem></menuchoice> in the editor window.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Check syntax of file when saving</term>
    <listitem><para>
      Check this to automatically check syntax of file with <userinput>msgfmt
      --statistics</userinput> when saving a file. You will only get a message,
      if an error occured. You should keep this options enabled unless know
      what you're doing.
    </para></listitem>
  </varlistentry>
</variablelist>

<para>
If you don't want to touch some fields in PO-file header or want to force updating
specific fields, there are five checkboxes which control: revision date, PO-file
language, text encoding, last translator name, charset. If a field does not exist,
it is appended to the header. If you want to add other information to the header,
you have to edit the header manually by choosing
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Edit Header</guimenuitem></menuchoice>
in the editor window. Deactivate <guibutton>Update header when saving</guibutton>
above if you don't want to have the header updated.
</para>
<para>
For date and time of the header field <emphasis>PO-Revision-Date</emphasis> you
can choose one from bellow formats:
</para>

<itemizedlist>
  <listitem><para>
    <emphasis>Default</emphasis> is the format normally used in PO-files.
  </para></listitem>
  <listitem><para>
    <emphasis>Local</emphasis> is the format specific to your country.
  </para></listitem>
  <listitem><para>
    <emphasis>Custom</emphasis> let you define your own format, where you
    can use the following C-like format strings:
    <table>
      <title>Year</title>
      <tgroup cols="3">
        <thead>
          <row>
            <entry>Format</entry><entry>Meaning</entry><entry>Range</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>%y</entry><entry>year</entry><entry>00 to 99</entry>
          </row>
          <row>
            <entry>%Y</entry><entry>year</entry><entry>0001 to 9999</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
    <table>
      <title>Month</title>
      <tgroup cols="3">
        <thead>
          <row>
            <entry>Format</entry><entry>Meaning</entry><entry>Range</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>%m</entry><entry>month of year</entry><entry>01 to 12</entry>
          </row>
          <row>
            <entry>%f</entry><entry>month of year</entry><entry>1 to 12</entry>
          </row>
          <row>
            <entry>%b,%h</entry><entry>month abbreviation</entry><entry>Jan to Dec</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
    <table>
      <title>Day</title>
      <tgroup cols="3">
        <thead>
          <row>
            <entry>Format</entry><entry>Meaning</entry><entry>Range</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>%j</entry><entry>day of the year</entry><entry>001 to 366</entry>
          </row>
          <row>
            <entry>%d</entry><entry>day of month</entry><entry>01 to 31</entry>
          </row>
          <row>
            <entry>%e</entry><entry>day of month</entry><entry>1 to 31</entry>
          </row>
          <row>
            <entry>%a</entry><entry>weekday abbreviation</entry><entry>Sun to Sat</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
    <table>
      <title>Hour</title>
      <tgroup cols="3">
        <thead>
          <row>
            <entry>Format</entry><entry>Meaning</entry><entry>Range</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>%H</entry><entry>hour</entry><entry>00 to 23</entry>
          </row>
          <row>
            <entry>%k</entry><entry>hour</entry><entry>0 to 23</entry>
          </row>
          <row>
            <entry>%i</entry><entry>hour</entry><entry>1 to 12</entry>
          </row>
          <row>
            <entry>%I</entry><entry>hour</entry><entry>01 to 12</entry>
          </row>
          <row>
            <entry>%p</entry><entry></entry><entry>AM or PM</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
    <table>
      <title>Minute, Second, Timezone</title>
      <tgroup cols="3">
        <thead>
          <row>
            <entry>Format</entry><entry>Meaning</entry><entry>Range</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>%M</entry><entry>minute</entry><entry>00 to 59</entry>
          </row>
          <row>
            <entry>%S</entry><entry>second</entry><entry>00 to 59</entry>
          </row>
          <row>
            <entry>%Z</entry><entry>timezone</entry><entry>(given in identity settings)</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
  </para></listitem>
</itemizedlist>

<para>
Downside part group encoding options for PO-file when saving. If you work
on KDE project you should be aware that at least <filename>desktop.po</filename>
file <emphasis>must</emphasis> be UTF-8 encoded. Popup list let you select
messages encoding. At least your language setting and UTF-8 must be.
If, for some reasons, you don't want accidentaly change current PO-file
encoding, turn on <guibutton>Keep the encoding of the file</guibutton>.

</para>
</sect1>

<sect1 id="preferences-catalogmanager">
<title>Catalog Manager</title>
<para>
This section allows you to edit the options for the Catalog Manager.
</para>

<sect2 id="preferences-catalogmanager-general">
<title>General</title>
<para>
Here are two editlines with <guibutton>Browse...</guibutton> buttons.
Type in the directories which contains all your PO- and respectively
POT-files. The files and the directories in these directories will then be
merged into one tree in Catalog Manager window.
</para>

<para>
Below you can turn on and off if:
</para>

<variablelist>
  <varlistentry>
    <term><guibutton>Open files in new window</guibutton></term>
    <listitem><para>
      If this is activated all files that are opened from the Catalog
      Manager are opened in a new window.
    </para></listitem>
  </varlistentry>
  <varlistentry>
    <term><guibutton>Kill processes on exit</guibutton></term>
    <listitem><para>
      If you check this &kbabel; tries to kill the processes, that are not
      exited already when program close by sending a kill signal to them.
     <note><para>
       It's not guaranteed, that the processes are killed.
     </para></note>
    </para></listitem>
  </varlistentry>
</variablelist>
</sect2>

<sect2 id="preferences-catalogmanager-directories">
<title>Directory Commands</title>
<para>
Here you can insert commands you want to execute in directories from the
Catalog Manager. The commands are then shown in the submenu
<menuchoice><guimenuitem>Commands</guimenuitem></menuchoice>
in the Catalog Manager's context menu.

</para><para>
Insert in field <guilabel>Name</guilabel> the
name of the command. The name can be chosen freely and is only used to be displayed
in the menu. In field <guilabel>Command</guilabel> insert the command, you want to
have executed when selecting the corresponding menu item. Then press <guibutton>Add</guibutton>
button to add the command to your available commands.
To edit a command, select it, press
<guibutton>Edit</guibutton> button and press <guibutton>Add</guibutton> after you have
finished. To remove a command, select one from list and press
<guibutton>Remove</guibutton> button. If you want different order in contexual
submenu, you can use up and down buttons.

</para><para>
The command is executed through your default shell, so you can execute
multiple commands at once by separating them with a semicolon, and you can set environment
variables, if you need. The commands are executed in the (PO-file) directory, you have
selected in the Catalog Manager.

</para><para>
The following strings will be replaced in a command:
</para>

<itemizedlist>
  <listitem><para>
    <userinput>@PACKAGE@</userinput>: The name of the directory without path
  </para></listitem>
  <listitem><para>
    <userinput>@PODIR@</userinput>: The name of the PO-directory with path
  </para></listitem>
  <listitem><para>
    <userinput>@POTDIR@</userinput>: The name of the template directory with path
  </para></listitem>
</itemizedlist>

<para>
E.g.: If you want to execute <command>make</command> and then <command>make
install</command> you could insert in field <guilabel>Name</guilabel>
<userinput>Make install</userinput> and in field <guilabel>Command</guilabel>
<userinput>make; make install</userinput>. If you then select
<menuchoice><guimenuitem>Commands</guimenuitem>
<guimenuitem>Make install</guimenuitem></menuchoice>
from the context menu of a directory, the commands listed above will be
executed in this directory.
</para>
</sect2>

<sect2>
<title>File Commands</title>
<para>
Here you can insert the commands you want to execute on files from the Catalog
Manager. The commands are then shown in the submenu
<menuchoice><guimenuitem>Commands</guimenuitem></menuchoice> in the Catalog
Manager's context menu.
</para>

<para>
Insert in field <guilabel>Name</guilabel> the name of the command. The name can be
chosen freely and is only used to be displayed in the menu. In field
<guilabel>Command</guilabel> insert the command, you want to have executed when
selecting the corresponding menu item. Then press <guibutton>Add</guibutton> button
to add the command to your available commands. To edit a command, select it, press
<guibutton>Edit</guibutton> and press <guibutton>Add</guibutton> after you have
finished. To remove a command, select one from list and press
<guibutton>Remove</guibutton> button. If you want different order in contexual
submenu, you can use up and down buttons.

</para><para>
The command is executed through your default shell, so you can execute
multiple commands at once by separating them with a semicolon, and you can
set environment variables, if you need. The commands are executed in the
(PO-file) directory, in which the file, you have selected in the Catalog
Manager, is.

</para><para>
The following strings will be replaced in a command:
</para>

<itemizedlist>
  <listitem><para>
    <userinput>@PACKAGE@</userinput>: The name of the file without path and extension
  </para></listitem>
  <listitem><para>
    <userinput>@POFILE@</userinput>: The name of the PO-file with path and extension
  </para></listitem>
  <listitem><para>
    <userinput>@POTFILE@</userinput>: The name of the corresponding template file
    with path and extension
  </para></listitem>
  <listitem><para>
    <userinput>@PODIR@</userinput>: The name of the directory, the PO-file is in, with path
  </para></listitem>
  <listitem><para>
    <userinput>@POTDIR@</userinput>: The name of the directory, the template file is
    in, with path
  </para></listitem>
</itemizedlist>


<para>
E.g.: If you want to merge the template file into your PO-file you could
insert in field <guilabel>Name</guilabel> <userinput>Merge</userinput> and
in field <guilabel>Command</guilabel>
<userinput>msgmerge @POFILE@ @POTFILE@ &gt; @PACKAGE@.new &amp;&amp; mv @PACKAGE@.new
"@PACKAGE@.po</userinput>.
If you then select
<menuchoice><guimenuitem>Commands</guimenuitem><guimenuitem>Merge</guimenuitem></menuchoice>
from a file's context menu, the PO-file will be merged with its template file.
</para>
</sect2>
</sect1>

<sect1 id="preferences-miscellaneous">
<title>Miscellaneous</title>
<para>
<guilabel>Miscellaneous</guilabel> section
hold settings which don't feet anywhere. Currently are two:
</para>

<variablelist>
  <varlistentry>
  <term>Marker for keyboard accelerator</term>
  <listitem><para>
  Here you can put your own character which serve
  as marker for keyboard accelerator indicator in <acronym>GUI</acronym>.
  By default it is &amp; (ampersand), but in some
  programing toolkits it may vary.
  For example in Gnome/GTK translations the underscore
  character <quote>_</quote>
  is the marker for the keyboard accelerator.
  </para></listitem>
  </varlistentry>
  <varlistentry>
  <term>Regular expression for context information</term>
  <listitem><para>
  For unexperienced user "regular expression" sound strange.
  However, you're advised to change default value
  only you know what you are doing. Some GUI programming
  toolkits provide own context information description
  methods. Consult an experienced developer if you
  translate PO files other than KDE specifics.
  For the sake of completness I "translate" for you what
  default regular expression mean:
  "the text match if it start with _: and is followed
  by one or more characters and end with a newline".
  </para></listitem>
  </varlistentry>
</variablelist>
</sect1>
</chapter>

<chapter id="commands">
<title>Command Reference</title>

<sect1 id="kbabel-menu">
<title>The KBabel menu</title>

<sect2>
<title>The File Menu</title>
<variablelist>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>O</keycap>
          </keycombo>
        </shortcut>
        <guimenu>File</guimenu>
        <guimenuitem>Open</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          Open PO-file. If current file
          is modified you will be prompted to save it first.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>File</guimenu>
        <guimenuitem>Open Recent</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          More used documents list menu is displayed, allowing you to open recently
          edited PO-files.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>S</keycap>
          </keycombo>
        </shortcut>
        <guimenu>File</guimenu>
        <guimenuitem>Save</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          Saves current PO-file. If it's not modified no action is taken.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>File</guimenu>
        <guimenuitem>Save As</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          Save current PO-file under new name.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>File</guimenu>
        <guimenuitem>New View</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          Open a new window with current file loaded. 
        </action>
          Very useful if you have to translate large
          files and you need to keep an eye back to some strings.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>File</guimenu>
        <guimenuitem>New Window</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          Open a new empty window.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>Q</keycap>
          </keycombo>
        </shortcut>
        <guimenu>File</guimenu>
        <guimenuitem>Quit</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>Quits KBabel</action>
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>

<sect2>
<title>The Edit Menu</title>
<variablelist>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>Z</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Undo</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Undo last edit action in translation edit box.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>Shift</keycap><keycap>Z</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Redo</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Redo last undoed edit action in translation edit box.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>X</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Cut</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Cut selected text and move it in clipboard.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>C</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Copy</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Copy selected in clipboard.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>V</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Paste</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Paste clipboard content at current cursor position in
         translation edit box.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Edit</guimenu>
        <guimenuitem>Select All</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Select all text from translation edit box.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>F</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Find...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open Find dialog for searching strings in current PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>F3</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Find Next</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Find next occurrence of string from previous search action.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>R</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Replace...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open Replace dialog for searching and replacing strings in current PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>Space</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Copy msgid to msgstr</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          Original english string is copied below in translation edit box. This useful when
          you need to make from no adjustment to minor changes in original english text (msgstr).
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Space</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Copy search result to msgstr</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
          String found after translation searching
          is copied in MsgStr edit box. This
          very useful if you don't want to work
          on retranslating same message again and again.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>U</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Edit</guimenu>
        <guimenuitem>Unset Fuzzy Status</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
           Reset fuzzy status for all entries in current PO-file. You should
           not do this unless you know what you are doing. Probably this
           will let many strings bad translated.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Edit</guimenu>
        <guimenuitem>Edit Header...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Edit PO-file header. Actually there are many header lines, which
         keep last translated date, translator name and email, language and
         translated text encoding etc.
        </action>
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>


<sect2>
<title>The Go Menu</title>
<variablelist>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>PgUp</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Previous</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Skip to previous entry in PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>PgDown</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Next</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Skip to next entry in PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Go</guimenu>
        <guimenuitem>Go to...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open dialog to jump to specified entry number from PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Go</guimenu>
        <guimenuitem>First Entry</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to first entry in PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Go</guimenu>
        <guimenuitem>Last Entry</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to last entry in PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>PgUp</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Previous fuzzy or untranslated</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to first previous entry which is untranslated or
         marked as fuzzy.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>PgDown</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Next fuzzy or untranslated</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to first next entry which is untranslated or
         marked as fuzzy.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>PgUp</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Previous fuzzy</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to first previous fuzzy entry.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>PgDown</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Next fuzzy</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to first next fuzzy entry.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Alt</keycap><keycap>PgUp</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Previous untranslated</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to first previous untranslated entry.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Alt</keycap><keycap>PgDown</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Next untranslated</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to first next untranslated entry.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Shift</keycap><keycap>PgUp</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Previous error</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to previous entry with error. It's likely to happen when you
         forget to escape doublequotes or original string end in
         "return" (\n) char and translated string don't (and vice versa).
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Shift</keycap><keycap>PgDown</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Next error</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to next entry with error. It's likely to happen when you
         forget to escape doublequotes or original string end in
         "return" (\n) char and translated string don't (and vice versa).
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Alt</keycap><keycap>Left</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Back</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to last visited entry in PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Alt</keycap><keycap>Right</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Go</guimenu>
        <guimenuitem>Forward</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Jump to previous visited entry in PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>


<sect2>
<title>The Dictionaries Menu</title>
<para>
Note that this menu is dynamic. It depend on installed dictionaries plugins.
By default are three.
</para>

<variablelist>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Dictionaries</guimenu>
        <guimenuitem>Search Text</guimenuitem>
        <guimenuitem>KDE Database Search Engine</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start searching translation for current original
         english message using KDE Database Search Engine.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Dictionaries</guimenu>
        <guimenuitem>Search Text</guimenuitem>
        <guimenuitem>PO Auxiliary</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start searching translation for current original
         english message in PO file defined by user.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Dictionaries</guimenu>
        <guimenuitem>Search Text</guimenuitem>
        <guimenuitem>PO Compendium</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start searching translation for current original
         english message in compendium file (made
         by merging all translated messages for
         one language).
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Dictionaries</guimenu>
        <guimenuitem>Search Selected Text</guimenuitem>
        <guimenuitem>KDE Database Search Engine</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start searching selected text
         using KDE Database Search Engine.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Dictionaries</guimenu>
        <guimenuitem>Search Selected Text</guimenuitem>
        <guimenuitem>PO Auxiliary</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start searching selected text
         using file defined by user.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Dictionaries</guimenu>
        <guimenuitem>Search Selected Text</guimenuitem>
        <guimenuitem>PO Compendium</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start searching selected text
         using compendium file with
         all language translated messages.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Dictionaries</guimenu>
        <guimenuitem>Edit Dictionary</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Allow you to edit content
         of current dictionary. Usefull
         if you found errors in dictionary
         and want to not be bored by errors
         when searching and replacing
         strings.
        </action>
        <emphasis>(Not implemented yet)</emphasis>
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>



<sect2>
<title>The Tools Menu</title>
<variablelist>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Tools</guimenu>
        <guimenuitem>Spelling</guimenuitem>
        <guimenuitem>Spell check...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Bring up spell check configuration dialog.
         After you select desired options hit
         OK and the normal spell
         checking dialog will appear.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Tools</guimenu>
        <guimenuitem>Spelling</guimenuitem>
        <guimenuitem>Check All...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start spell checking all words
         for opened PO file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Tools</guimenu>
        <guimenuitem>Spelling</guimenuitem>
        <guimenuitem>Check From Curson Position...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Start spell checking
         from current cursor position.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Tools</guimenu>
        <guimenuitem>Spelling</guimenuitem>
        <guimenuitem>Check Current...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Spell check only current
         entry from PO-file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Tools</guimenu>
        <guimenuitem>Spelling</guimenuitem>
        <guimenuitem>Check Marked Text...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Spell check only
         selected text in MsgStr editbox.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>T</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Tools</guimenu>
        <guimenuitem>Validation</guimenuitem>
        <guimenuitem>Check Syntax</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Check syntax for current PO-file.
        Errors may appear from CVS merging
        or users mistakes when translating
        process is made by hand.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>D</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Tools</guimenu>
        <guimenuitem>Validation</guimenuitem>
        <guimenuitem>Check Arguments</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Check if number of arguments, types
        ans order is same in strings C-format
        like.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>H</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Tools</guimenu>
        <guimenuitem>Validation</guimenuitem>
        <guimenuitem>Check Accelerators</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Check if number of accelerator
        characters is same both in original
        and translated text.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>K</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Tools</guimenu>
        <guimenuitem>Validation</guimenuitem>
        <guimenuitem>Look for Translated Context Info</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Check if PO file contain context information translated
        by mistake.
	</action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Ctrl</keycap><keycap>J</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Tools</guimenu>
        <guimenuitem>Validation</guimenuitem>
        <guimenuitem>Check Equations</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Check if left side from translated string
        is same with left side from original string.
        Sides are delimited by equal sign character.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Tools</guimenu>
        <guimenuitem>Catalog Manager...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open Catalog Manager window. Read Catalog Manager section
         for more details.
        </action>
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>

<sect2>
<title>The Settings Menu</title>
<variablelist>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Show Toolbar</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        When checked, standard toolbar is displayed.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Show Statusbar</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        When checked, bottom statusbar is displayed.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Show Navigationbar</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        When checked, navigationbar is displayed.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Show Comments</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        When checked, upper right part of main window
        which contain current entry comments will be displayed.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Show Tools</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        When checked, bottom right part of main window
        which contain search results through
        dictionary will be displayed.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Configure Key Bindings...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Open configure dialog for keys bindings to
        actions. This will let you to customize default
        key bindings to suite your needs.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Configure Toolbars...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Standard toolbars configuration dialog will open. You can
        choose which actions will go in toolbars and what toolbar
        you customize.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Configure Kbabel...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        All KBabel specific settings go here.
	</action>
	Please read <link linkend="preferences">Preferences</link> section for specific topics.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Configure Dictionary</guimenuitem>
        <guimenuitem>KDE Database Search Engine</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Open dialog for KDE Database Search Engine
        configuration.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Configure Dictionary</guimenuitem>
        <guimenuitem>PO Auxiliary</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Open dialog for PO auxiliary file
        configuration.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Settings</guimenu>
        <guimenuitem>Configure Dictionary</guimenuitem>
        <guimenuitem>PO Compendium</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
        Open dialog for PO compendium file
        configuration.
        </action>
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>

<sect2>
<title>The Help Menu</title>
<variablelist>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>F1</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Help</guimenu>
        <guimenuitem>Contents</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open the KBabel handbook. It's what
         you read now.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <shortcut>
          <keycombo>
            <keycap>Shift</keycap><keycap>F1</keycap>
          </keycombo>
        </shortcut>
        <guimenu>Help</guimenu>
        <guimenuitem>What's This?</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Cursor change to arrow with question mark and you can click with it
         on various elements on main window. A quick help window will open.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Help</guimenu>
        <guimenuitem>Gettext Info</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open the gettext manual page in KDE Help Center.
         This package of tools help in process of
         POT and PO files handling.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Help</guimenu>
        <guimenuitem>Report Bug...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         This will open KDE standard error reporting dialog. 
	</action>
	It's useful if
         you experience abnormal behavior of &kbabel;.
         &kbabel; developer will be glad to receive any comments, wishes and
         bug reports.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Help</guimenu>
        <guimenuitem>About KBabel...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open message box which inform you about KBabel's version, developer
         name and e-mail address.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Help</guimenu>
        <guimenuitem>About KDE...</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Open message box which inform you about KDE project,
         contact information and how you can report bugs and
         whishes.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Help</guimenu>
        <guimenuitem>About Dictionary</guimenuitem>
        <guimenuitem>KDE Database Search Engine</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Show up an message box with information
         about people who made KDE Database Search Engine.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Help</guimenu>
        <guimenuitem>About Dictionary</guimenuitem>
        <guimenuitem>PO Auxiliary</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Show up an message box with information
         about people who made searching in auxiliary file.
        </action>
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <menuchoice>
        <guimenu>Help</guimenu>
        <guimenuitem>About Dictionary</guimenuitem>
        <guimenuitem>PO Compendium</guimenuitem>
      </menuchoice>
    </term>
    <listitem>
      <para>
        <action>
         Show up an message box with information
         about people who made searching in compendium file.
        </action>
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>
</sect1>

<sect1 id="kbabel-toolbars">
<title>The KBabel toolbars</title>

<sect2 id="standard-toolbar">
<title>Standard Toolbar</title>
<variablelist>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="fileopen.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Open
    </term>
    <listitem>
    <para>Load PO-file in &kbabel; for editing.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="filesave.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Save
    </term>
    <listitem>
    <para>Save current PO-file if it's modified.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="undo.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Undo
    </term>
    <listitem>
    <para>Undo last operation.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="redo.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Redo
    </term>
    <listitem>
    <para>Redo last operation.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="editcut.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Cut
    </term>
    <listitem>
    <para>Cut selected text and move it in clipboard.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="editcopy.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Copy
    </term>
    <listitem>
    <para>Copy selected text in clipboard.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="editpaste.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Paste
    </term>
    <listitem>
    <para>Paste text from clipboard at current cursor position.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="find.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Find
    </term>
    <listitem>
    <para>Find specified string in current PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="previous.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Previous
    </term>
    <listitem>
    <para>Skip to previous entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="next.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Next
    </term>
    <listitem>
    <para>Skip to next entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="msgid2msgstr.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Copy msgid to msgstr
    </term>
    <listitem>
    <para>Copy original string to translated string edit box.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="transsearch.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Search Translations
    </term>
    <listitem>
    <para>Drop down toolbar for searching selected text using:
     KDE Database Search Engine, PO auxiliary file, PO compendium file
     and others dictionary plugins if available.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="stop.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Stop
    </term>
    <listitem>
    <para>Stop current searching in progress.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="catalogmanager.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Catalog Manager
    </term>
    <listitem>
    <para>Open Catalog Manager window.</para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>

<sect2 id="navigation-toolbar">
<title>Navigation Toolbar</title>
<variablelist>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="previous.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Previous
    </term>
    <listitem>
    <para>Skip to previous entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="next.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Next
    </term>
    <listitem>
    <para>Skip to next entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="top.png" format="PNG"/>
</imageobject>
</inlinemediaobject> First Entry
    </term>
    <listitem>
    <para>Jump to first entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="bottom.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Last Entry
    </term>
    <listitem>
    <para>Jump to last entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="prevfuzzyuntrans.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Previous fuzzy or untranslated
    </term>
    <listitem>
    <para>Jump to previous fuzzy or untranslated entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="nextfuzzyuntrans.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Next fuzzy or untranslated
    </term>
    <listitem>
    <para>Jump to next fuzzy or untranslated entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="prevfuzzy.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Previous fuzzy
    </term>
    <listitem>
    <para>Jump to previous fuzzy entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="nextfuzzy.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Next fuzzy
    </term>
    <listitem>
    <para>Jump to next fuzzy entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="prevuntranslated.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Previous untranslated
    </term>
    <listitem>
    <para>Jump to previous untranslated entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="nextuntranslated.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Next untranslated
    </term>
    <listitem>
    <para>Jump to next untranslated entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="preverror.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Previous error
    </term>
    <listitem>
    <para>Jump to previous error in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="nexterror.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Next error
    </term>
    <listitem>
    <para>Jump to next error in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="back.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Back
    </term>
    <listitem>
    <para>Jump to last visited entry in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>
      <inlinemediaobject>
<imageobject>
<imagedata fileref="forward.png" format="PNG"/>
</imageobject>
</inlinemediaobject> Forward
    </term>
    <listitem>
    <para>Jump to previous visited entry in PO-file.</para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>

<sect2 id="status-bar">
<title>Status Bar</title>
<variablelist>
  <varlistentry>
    <term>Current</term>
    <listitem>
    <para>Current message in edited PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Total</term>
    <listitem>
    <para>Total number of messages in PO-file.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Fuzzy</term>
    <listitem>
    <para>Number of messages marked as fuzzy. They should be revised
    and translated if needed.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Untranslated</term>
    <listitem>
    <para>Number of yet untranslated messages.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Editor status</term>
    <listitem>
    <para>INS - insert, and OVR - overwrite.
    Same meaning like in every ordinary text editor.
    </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>PO-file status</term>
    <listitem>
    <para>RO - read-only file, RW - read-write access on file.
    When file is read-only you cannot modify entries
    in editor.
    </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Progress bar</term>
    <listitem>
    <para>
    Usualy, this bar is hidden. It is displayed
    only when saving is done or you search messages
    in PO-file, compendium or else.
    </para>
    </listitem>
  </varlistentry>
</variablelist>
</sect2>

</sect1>
</chapter>


<chapter id="faq">
<title>Questions and Answers</title>
<qandaset>
  <qandaentry>
    <question>
      <para>
      Why does &kbabel; show question marks when entering language specific
      characters?
      </para>
    </question>
    <answer>
      <para>
        This is a problem with your locale settings. The following might help:
        Exit &kbabel;, in a shell set the environment variable "LANG" to a locale,
        valid for your language. If you use <command>bash</command> do
        <userinput>export LANG=&lt;change this&gt;</userinput>. For example, when you
        use german characters, do
        <userinput>export LANG=de_DE.88591</userinput>. Then start &kbabel; from this
        shell. If the problem is gone, insert
        this command in your <filename>~/.profile</filename>.
      </para>
    </answer>
  </qandaentry>
  <qandaentry>
    <question>
      <para>
      Why does &kbabel; show question marks instead of language specific characters
      after loading a po-file?</para>
    </question>
    <answer>
      <para>
      The text contains characters, which can not be displayed with your system font.
      If you are sure, that the text contains no such characters, the file might have
      been corrupted somehow. In this case, mark such a question mark and press
      <keycombo><keycap>Ctrl</keycap><keycap>F</keycap></keycombo> to find all the
      corrupted characters and replace them.
      <note>
        <para>
        Do not search for real question marks, because
        these characters are only displayed as question marks, but internally they
        are different characters.
        </para>
      </note>
      Otherwise you might want to install an unicode font, which contains all
      necessary characters.
      </para>
    </answer>
  </qandaentry>
</qandaset>
</chapter>

<!--
<chapter id="appendix">
<title>Appendix</title>
-->
<glossary id="glossary">
<title>Glossary</title>

<glossdiv><title>A</title>
  <glossentry id="gloss-auxiliary">
    <glossterm>Auxiliary file</glossterm>
    <glossdef>
      <para>
      is a &kbabel; specific issue. It is an option for user to
      setup one PO-file where searching is for original messages. That,
      if you're a member of French team  and have some Spanish or Italian
      knowledge, you can grab and setup an auxiliary Spanish PO-file
      associated with your in-translation file. That,
      you can find yet unthinked synonimes.
      </para>
    </glossdef>
  </glossentry>
</glossdiv>

<glossdiv><title>C</title>
  <glossentry id="gloss-compendium">
    <glossterm>Compendium file</glossterm>
    <glossdef>
      <para>
      is a collection of all translations
      for one language. This big PO-file
      is made by unique messages from all
      applications PO-files. It can
      be used to fill in all already translated
      strings into new yet untranslated
      or partially translated PO-file.
      &kbabel; use such file in <quote>PO Compendium</quote>
      search engine.
      </para>
    </glossdef>
  </glossentry>
</glossdiv>

<glossdiv><title>F</title>
  <glossentry id="fuzzy">
    <glossterm>Fuzzy</glossterm>
    <glossdef>
      <para>
      This is a flag generated in general
      by <command>msgmerge</command>. It show
      that <acronym>msgstr</acronym> string
      might not be a correct translation.
      Translator must see and make modifications
      if string requires. After that
      <quote>fuzzy</quote> flag must be removed
      from message comment.
      </para>
    </glossdef>
  </glossentry>
</glossdiv>

<glossdiv><title>I</title>
  <glossentry id="i18n">
    <glossterm>Internationalization</glossterm>
    <acronym>i18n</acronym>
    <glossdef>
      <para>
      is the operation by which an application
      is made aware and able to support multiple
      languages. The <quote>internationalization</quote>
      word have 20 characters and is quite a long word.
      To short it, people started to write only
      the first and last characters and between them
      write the number of intermediate characters (18).
      </para>
      <glossseealso otherterm="l10n"></glossseealso>
    </glossdef>
  </glossentry>
</glossdiv>

<glossdiv><title>L</title>
  <glossentry id="l10n">
    <glossterm>Localization</glossterm>
    <acronym>l10n</acronym>
    <glossdef>
      <para>
      is the operation by which an application
      already internationalized is made
      to process input and output in a fashion
      desired by some cultural and language habits.
      The <quote>localization</quote>
      word have 12 characters and is a long word.
      For convenience, people started to write only
      the first and last characters and between them
      write the number of intermediate characters (10).
      </para>
      <glossseealso otherterm="i18n"></glossseealso>
    </glossdef>
  </glossentry>
</glossdiv>

<glossdiv><title>M</title>
  <glossentry id="mofile">
    <glossterm>MO file</glossterm>
    <acronym>MO</acronym>
    <glossdef>
      <para>
      MO means Machine Object and this file
      contain binary data suitable
      for reading by computers.
      MO-file content is organized as
      a database to minimize lookup time
      for translated strings. MO-files
      are obtained by compiling PO-files
      with <command>msgfmt</command>.
      </para>
      <glossseealso otherterm="pofile"></glossseealso>
      <glossseealso otherterm="potfile"></glossseealso>
    </glossdef>
  </glossentry>
  <glossentry id="msgid">
    <glossterm>Message ID</glossterm>
    <acronym>msgid</acronym>
    <glossdef>
      <para>
      <acronym>msgid</acronym> is the keyword
      which introduce the original string in PO file.
      It is followed by C-like string that span
      on one or multiple lines.
      </para>
      <glossseealso otherterm="msgstr"></glossseealso>
    </glossdef>
  </glossentry>
  <glossentry id="msgstr">
    <glossterm>Message String</glossterm>
    <acronym>msgstr</acronym>
    <glossdef>
      <para>
      <acronym>msgstr</acronym> is the keyword
      which introduce the translated string in PO file.
      It is followed by C-like string that span
      on one or multiple lines.
      </para>
      <glossseealso otherterm="msgid"></glossseealso>
    </glossdef>
  </glossentry>
</glossdiv>

<glossdiv><title>P</title>
  <glossentry id="pofile">
    <glossterm>PO file</glossterm>
    <acronym>PO</acronym>
    <glossdef>
      <para>
      PO means Portable Object and PO files
      contain sets of strings which
      associate each translatable string
      with its translation in a particular
      language. A single PO-file relate
      only to one language. PO-file is
      derived from an POT-file and is
      meant to be edited by humans.
      </para>
      <glossseealso otherterm="potfile"></glossseealso>
      <glossseealso otherterm="mofile"></glossseealso>
    </glossdef>
  </glossentry>
  <glossentry id="potfile">
    <glossterm>POT file</glossterm>
    <acronym>POT</acronym>
    <glossdef>
      <para>
      POT means Portable Object Template.
      This file is build by extracting
      translatable strings from application
      source files. POT-file does not
      contain translations and is used
      by each translator as template.
      </para>
      <glossseealso otherterm="pofile"></glossseealso>
      <glossseealso otherterm="mofile"></glossseealso>
    </glossdef>
  </glossentry>
</glossdiv>

</glossary>

<chapter id="credits">
<title>Credits and License</title>

<para>
&kbabel;
</para>
<para>
Program copyright 1999-2000 Matthias Kiefer <email>matthias.kiefer@gmx.de</email>
</para>
<para>
Contributors:
<itemizedlist>
<listitem><para>Thomas Diehl <email>thd@kde.org</email></para>
</listitem>
<listitem><para>Stephan Kulow <email>coolo@kde.org</email></para>
</listitem>
</itemizedlist>
</para>

<para>
Documentation copyright 2000 Claudiu Costin
<email>claudiuc@geocities.com</email> and
Matthias Kiefer <email>matthias.kiefer@gmx.de</email>
</para>

<para>
This program is licensed under the terms of the
<ulink url="common/gpl-license.html">GNU GPL</ulink>.
</para>
</chapter>

<appendix id="installation">
<title>Installation</title>

<sect1 id="getting-kbabel">
<title>How to obtain KBabel</title>

<para>
&kbabel; is part of the KDE project
<ulink url="http://www.kde.org">http://www.kde.org</ulink>.
&kbabel; can be found in the <filename>kdesdk</filename> package on
<ulink url="ftp://ftp.kde.org/pub/kde/">ftp://ftp.kde.org/pub/kde/</ulink>, the
main ftp site of the KDE project. </para>
</sect1>

<sect1 id="requirements">
<title>Requirements</title>


<para>
In order to successfully use &kbabel;, you need a current snapshot of KDE 2.x
series.
</para>

<para>
All required libraries as well as &kbabel; itself can be found
on <ulink url="ftp://ftp.kde.org">ftp://ftp.kde.org/pub/kde/</ulink>.
</para>

</sect1>

<sect1 id="compilation">
<title>Compilation and Installation</title>

<para>
In order to compile and install &kbabel; on your system, type the following in the base
directory of the <filename>kdesdk</filename> distribution:
<screen width="40">
<prompt>%</prompt> <userinput>./configure</userinput>
<prompt>%</prompt> <userinput>make</userinput>
<prompt>%</prompt> <userinput>make install</userinput>
</screen>
</para>

<para>Since &kbabel; uses autoconf and automake you should have not trouble
compiling it. Along with &kbabel; you will have installed rest of tools
from <filename>kdesdk</filename> package.
Should you run into problems please report them to the author
Matthias Kiefer <email>matthias.kiefer@gmx.de</email></para>

</sect1>

</appendix>

</book>

