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

<book lang="&language;">
<bookinfo>
<title>The &kvoctrain; Handbook</title>

<authorgroup>
<author>
<firstname>Ewald</firstname>
<surname>Arnold</surname>
<affiliation><address><email>ewald@ewald-arnold.de</email>
</address></affiliation>
</author>

<othercredit role="reviewer">
<firstname>Eric</firstname>
<surname>Bischoff</surname>
<affiliation><address><email>e.bischoff@noos.fr</email>
</address></affiliation>
<contrib>Reviewer</contrib>
</othercredit>

<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
<year>1999</year><year>2000</year><year>2001</year><year>2002</year>
<holder>Ewald Arnold</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2001-30-12</date>
<releaseinfo>0.08.00</releaseinfo>

<abstract><para>This handbook describes &kvoctrain; version 0.8.0.
&kvoctrain; is a little utility to help you train your vocabulary,
when you are trying to learn a foreign language.</para></abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>KVocTrain</keyword>
<keyword>vocabulary</keyword>
<keyword>training</keyword>
<keyword>learning</keyword>
</keywordset>
</bookinfo>

<chapter id="introduction">
<title>Introduction</title>

<mediaobject>
<imageobject><imagedata fileref="logo-kvoctrain.png" format="PNG" /></imageobject>
</mediaobject>

<sect1 id="what-is-it">
<title>What is it?</title>

<para>&kvoctrain; is a little utility to help you train your vocabulary,
when you are trying to learn a foreign language. You can create your
own database with the words you need.</para>

<para>It is intended as a replacement for index (flash) cards.</para>

<para>You probably remember flashcards from school.  The teacher would
write the original expression on the front side of the card and the
translation on the back. Then look at the cards one after another. If
you knew the translation, you could put it away. If you failed, you
put it back to try again.</para>

<para>&kvoctrain; is not intended to teach you grammer or other
sophisticated things. This is and probably will stay beyond the scope
of this application.</para>

</sect1>

<!--
<sect1 id="changes">
<title>Changes</title>

<variablelist>
<varlistentry>
<term>0.7.0 2001 January 2.</term>
<listitem><para><itemizedlist>
      <listitem><para>further steps towards KDE 2. Runs almost as
 reliable as previous
            versions under KDE1</para></listitem>
      <listitem><para>new file format for vocabbox</para></listitem>
      <listitem><para>new doc properties "license" and
 "remark"</para></listitem>
      <listitem><para>new vocabulary properties "usage label" and
 "paraphrase"</para></listitem>
      <listitem><para>experimental unicode support with utf-8 encoding
 of kvtml files
            (QT2.x only)</para></listitem>
      <listitem><para>invoke header menu with left mouse button (instead
 right mouse button)
            similar to menu buttons in toolbars</para></listitem>
      <listitem><para>customizable action after query
 timeout</para></listitem>
      <listitem><para>provide the possibility to enable different
 charsets and fonts per
            language</para></listitem>
      <listitem><para>query dialogs for synonyms, antonyms, examples and
 paraphrases.</para></listitem>
      <listitem><para>Synonyms and antonys may form a list of several
 lines and answering
            one of them is good.</para></listitem>
      <listitem><para>reduced size of executable by almost 1000kb ;-) by
 eleminating
            multiple instatiations of templates.</para></listitem>
      <listitem><para>query may contain arbitrary many lessons, not just
 one (or all).</para></listitem>
      <listitem><para>user defined names for
 conjugations</para></listitem>
      <listitem><para>found some minor bugs</para></listitem>
      <listitem><para>adopted spotlight2kvtml to differing file
 format</para></listitem>
      <listitem><para>several properties may spawn multiple
 lines</para></listitem>
      <listitem><para>switch to have settings always saved on exit (not
 only upon request)</para></listitem>
      <listitem><para>Thanks to Hans Kottmann there is also a
 localisation for french and
            Grzegorz Ilzuk has created one for polish.</para></listitem>
      <listitem><para>lesson which are included for the next query are
 now stored with the
             document instead of the global configuration
 file.</para></listitem>
      <listitem><para>as always: fixed a bunch of new and old
 bugs...</para></listitem>
</itemizedlist></para></listitem>
</varlistentry>

<varlistentry>
<term>0.6.0 2000 February 6.</term>
<listitem><para><itemizedlist>
      <listitem><para>extended query dialog (properties and progress
 chart)</para></listitem>
      <listitem><para>support up to 7 levels</para></listitem>
      <listitem><para>new property "faux ami"</para></listitem>
      <listitem><para>added blocking/expiring query
 dates</para></listitem>
      <listitem><para>setting groups for the query</para></listitem>
      <listitem><para>new properties "article", "conjugation" and
 "comparison"
            for querying</para></listitem>
      <listitem><para>reorganized source tree</para></listitem>
      <listitem><para>first preparations for KDE 2.x: compiles but does
 not
            run correctly</para></listitem>
      <listitem><para>substituted all pictures *.gif by
 *.png</para></listitem>
      <listitem><para>simple verify functions in query
 dialogs</para></listitem>
</itemizedlist></para></listitem>
</varlistentry>

<varlistentry>
<term>0.5.0 1999 October 24.</term>
<listitem><para><itemizedlist>
      <listitem><para>show progress while
 loading/saving</para></listitem>
      <listitem><para>customize resizing strategy of
 columns</para></listitem>
      <listitem><para>mark arbitrary ranges to work on</para></listitem>
      <listitem><para>binary file format (for my testing purposes
 only)</para></listitem>
      <listitem><para>added import/export filter for *.lex and *.csv
 files</para></listitem>
      <listitem><para>limit time for each query</para></listitem>
      <listitem><para>tried to be more conforming to the style
 guidelines</para></listitem>
      <listitem><para>some minor corrections and
 improvements</para></listitem>
      <listitem><para>user defined expression types, revised internal
 types</para></listitem>
      <listitem><para>added converter for <ulink
 url="http://www.spotlight-online.de">Spotlight-Online</ulink>
            vocabulary list ==> spotlight2kvtml</para></listitem>
      <listitem><para>access header buttons and lesson box also with
 keyboard</para></listitem>
</itemizedlist></para></listitem>
</varlistentry>

<varlistentry>
<term>0.4.0 1999 August 15.</term>
<listitem><para><itemizedlist>
      <listitem><para>improved learning support</para></listitem>
      <listitem><para>german handbook</para></listitem>
      <listitem><para>some nicer icons</para></listitem>
      <listitem><para>fixed a serious bug</para></listitem>
      <listitem><para>lots of minor improvements</para></listitem>
</itemizedlist></para></listitem>
</varlistentry>

<varlistentry>
<term>0.3.2 1999 June 12</term>
<listitem><para><itemizedlist>
      <listitem><para>smart search facility</para></listitem>
      <listitem><para>creation of lessons</para></listitem>
      <listitem><para>bidirectional query</para></listitem>
      <listitem><para>security backup before saving</para></listitem>
      <listitem><para>fixed loads of flaws :-(</para></listitem>
</itemizedlist></para></listitem>
</varlistentry>

<varlistentry>
<term>0.2 1999 May 1</term>
<listitem><para><itemizedlist>
    <listitem><para>First release</para></listitem>
</itemizedlist></para></listitem>
</varlistentry>

<varlistentry>
<term>0.1 1999 April 14</term>
<listitem><para><itemizedlist>
    <listitem><para>Basic functions completed</para></listitem>
</itemizedlist></para></listitem>
</varlistentry>

</variablelist>
</sect1>
-->

</chapter>

<chapter id="usage">
<title>Usage</title>

<sect1 id="overview">
<title>Overview</title>

<para>As you can see below, the entries of the vocabulary are arranged
similar to a spreadsheet. Each column represents an expression or word
in one language or some other information. The leftmost column contains
the name of the lesson
this entry belongs to. The second describes the state of the line and the
third is always the original word. The
others to the right of it represent the respective
translations.</para>

<screenshot>
<mediaobject>
<imageobject><imagedata fileref="mainview.png" format="PNG" /></imageobject>
<textobject><phrase>[main view]</phrase></textobject>
</mediaobject>
</screenshot>

<para>In the picture above, you can see that several properties of
the vocabulary have a visual representation:</para>

<itemizedlist>

<listitem><para>colors show the grade (Level 1 to 7) of your
knowledge</para></listitem>
<listitem><para>A green check mark in the second colums means that this
line is in use for a query (when you did not finish last time) whereas a
red cross appeares when you deactivated the line.</para></listitem>

<listitem><para>if you mark a range of entries to work with, they
appear with a different background.</para></listitem>
</itemizedlist>

<para>The color in the column with the original will vary if you have
two or more columns with translations. If the cursor is in one of the
translations the color represents its grade <quote>to the
original</quote>. See section <link linkend="entry6-dlg">entry
dialog</link> for more on this.</para>

<para>Of course it is also possible to use it as an ordinary dictionary
and <link linkend="smart-search">lookup manually</link>.</para>

<para>On the bottom of the main window you also see the status line
which usually contains the three areas that show important properties of the
current expression if available:</para>

<variablelist>
<varlistentry>
<term>T:</term>
<listitem><para>the <link linkend="types">type</link> of this
word</para></listitem>
</varlistentry>

<varlistentry>
<term>P:</term>
<listitem><para>how to pronunce this expression. If you have a
font installed, that contains IPA-characters you can also use the characters from
the phonetic alphabet. See more about this in the according
<link linkend="opt-dlg-ipa">options dialog page</link>.
</para></listitem>
</varlistentry>

<varlistentry><term>R:</term>
<listitem><para>your personal remarks</para></listitem>
</varlistentry>
</variablelist>

<para>While &kvoctrain; is loading, saving a large file or otherwise
busy doing something time consuming, you will see a progress bar in this
status line.</para>

</sect1>

<sect1 id="inline-edit">
<title>Inline editing</title>
<para>
  There are two modes that allow you to modify the content of the
  cells in the main view. You can select the desired mode in the
  <link linkend="opt-menu">options menu</link>.
</para>

<variablelist>
<varlistentry>
<term>Inline editing enabled</term>
<listitem><para>When this mode is enabled you can modify the lesson or
the state of a table row by selecting it from a listbox. The listbox appears
after clicking on it with the mouse or pressing space while the cursor is
in the cell.</para>
<para>To modify a word or an expression just start typing and press
<keycap>Return</keycap>
when you have finished.</para>

<para><emphasis>Please note:</emphasis> You can't invoke the
<link linkend="entry-dlg">entry dialog window</link> in this mode.
</para></listitem>
</varlistentry>

<varlistentry>
<term>Inline editing disabled</term>
<listitem><para>When inline editing is disabled you must press
<keycap>F2</keycap> to open a
listbox or an edit field to make you changes.</para>

<para>To invoke the
<link linkend="entry-dlg">entry dialog window</link> just press
<keycap>Return</keycap> when the cursor in the cell
or double click on it.
</para></listitem>
</varlistentry>

</variablelist>

</sect1>

<sect1 id="keyboard">
<title>Using the keyboard</title>

<para>I tried to optimize the work flow for the use with the keyboard.
So all of the important functions are reachable this way.</para>

<variablelist id="smart-search">
<varlistentry>
<term><keycap>Tab</keycap></term>
<listitem><para>The cursor is moved to the smart search input field. If
you start typing an expression in this field, &kvoctrain; will search
the next best match after each key. The cursor in the vocabulary is then
moved to this location.</para>

<para>If you press <keycap>Return</keycap> it will move to the next
match.</para>

<para>If you only want entries that match from the <emphasis>beginning</emphasis>
of the expression you must press <keycombo action="simul">&Ctrl;
<keycap>Return</keycap></keycombo>.</para>

<para>Pressing <keycombo action="simul">&Shift;
<keycap>Tab</keycap></keycombo> or <keycap>Tab</keycap> will move back
to the vocabulary.</para></listitem>
</varlistentry>

<varlistentry>
<term><keycap>Left Arrow</keycap></term>
<listitem><para>The cursor in the vocabulary is moved one column
to the left. If it has reached the leftmost column, nothing
happens.</para></listitem>
</varlistentry>

<varlistentry>
<term><keycap>Right Arrow</keycap></term>
<listitem><para>The cursor in the vocabulary is moved one column
to the right. If it has reached the rightmost column, nothing
happens.</para></listitem>
</varlistentry>

<varlistentry>
<term><keycap>Up Arrow</keycap></term>
<listitem><para>The cursor in the vocabulary is moved one row upwards.
 If
it has reached the topmost row, nothing happens.</para></listitem>
</varlistentry>

<varlistentry>
<term><keycap>Down Arrow</keycap></term>
<listitem><para>The cursor in the vocabulary is moved one row
downwards. If it has reached the bottommost row, nothing
happens.</para></listitem>
</varlistentry>

<varlistentry>
<term><keycap>Page Up</keycap></term>
<listitem><para>The cursor in the vocabulary is moved one page (the
amount of visible lines -1) upwards. If the cursor would exceed the
first possible row, nothing happens.</para></listitem>
</varlistentry>

<varlistentry>
<term><keycap>Page Down</keycap></term>
<listitem><para>The cursor in the vocabulary is moved one page
downwards. If the cursor would exceed the last possible row, nothing
happens.</para></listitem>
</varlistentry>

<varlistentry id="key-enter">
<term><keycap>Enter</keycap></term>
<listitem><para>Invoke dialog for modification of this
entry.</para></listitem>
</varlistentry>

<varlistentry id="key-insert">
<term><keycap>Ins</keycap></term>
<listitem><para>Invokes a dialog to enter a new original expression and
appends a new row with this expression at the end of the vocabulary. The
cursor is moved to the end of the vocabulary afterwards.</para>
<para>If you have selected smart appending you are prompted to enter
originals and their translations until you stop by pressing the ESC
key.</para></listitem>
</varlistentry>
    
<varlistentry id="key-delete">
<term><keycap>Del</keycap></term>
<listitem><para>After confirmation of a safety dialog,
the currently selected row or selection is removed from the
vocabulary.</para></listitem>
</varlistentry>

<varlistentry>
<term><keycap>+</keycap> or <keycap>-</keycap></term>
<listitem><para>By pressing &Ctrl; and one of the two number pad
keys, <keycap>+</keycap> or <keycap>-</keycap>, you can choose the
previous or next item in the combo box determining the current
lesson. If you don't have a number pad you may also use the normal
<keycap>+</keycap> or <keycap>-</keycap> keys.</para></listitem> 
</varlistentry>

</variablelist>

<!--  FIXME: Re-implement??
<para>The buttons on top of the rows are acessible by the keyboard. To
avoid clashes with the shortcuts for the main menu you have to press
<keycombo action="simul">&Shift;&Alt;</keycombo> and the key of
underlined letter in the button text. Then the corresponding <link
linkend="header-menu">header menu</link> will pop up.</para>
-->

</sect1>

<sect1 id="mouse">
<title>Using the mouse</title>

<para>Double clicking an expression in the table will invoke the
<link linkend="entry-dlg">dialog</link> to modify this entry.</para>
    
<para><mousebutton>Left</mousebutton> mouse click in of the header
buttons will sort this column in ascending order. The next click will
sort in descending order. When the colum is sorted you can see a triangle
in the button that shows the direction.</para>

<para>Keeping pressed the <mousebutton>left</mousebutton> mouse button
for about 1 second in on of the table header buttons will pop up its
<link linkend="header-menu">header menu</link>.</para>

</sect1>

<sect1 id="selections">
<title>Working on selections</title>

<para>It is possible to mark a range of expressions. You can then modify one
or more properties from the selection or save them as a new
file.</para>

<para>If you keep the &Ctrl; key pressed while clicking on an entry,
the whole row is marked for further processing. A click on a marked
entry will remove this selection.</para>

<para>When you additionally press a &Shift; key when clicking on an
entry, the selection will be extended from the current entry to the
point where the cursor was previously.</para>

<para>You invoke the edit dialog to modify the selection by pressing
<keycap>Return</keycap>. In this case the dialog
appears differently. Some properties are disabled. For example it does
not make sense to edit the expression itself or the remark of a
whole range.</para>

<para>All selectable fields are empty at the beginning to represent
the unmodified state. Once you have modified a property there will be
contents in its field and only those properties are altered in your
selection when you confirm the dialog.</para>

</sect1>

<sect1 id="file-formats">
<title>Available file formats</title>

<para>&kvoctrain; can read and write the following file formats:</para>

<itemizedlist>
<listitem><para>Its native xml-style document type with the extension
<literal role="extension">.kvtml</literal>.</para>

<para>If you want to share documents with others use this one as it is
the only file format that is capable of containing
<emphasis>all</emphasis> the properties in
&kvoctrain;.</para></listitem>

<listitem><para>Vocabulary files from <ulink
url="http://www.kiecza.de/daniel/linux/">vocabbox</ulink> which is the
leanest vocabulary trainer I know. I recommend this application if you
need a really compact one.</para></listitem>

<listitem><para>Files created by <ulink
url="http://ourworld.compuserve.com/homepages/michael_m_werner/">
Vocabulary
Trainer</ulink> This is an application for &Microsoft; &Windows;. It
uses the file extension <literal role="extension">lex</literal>.
Unfortunately the link to the original files at Compuserve is dead
but there may still be files available elsewhere so I kept it.
</para></listitem>

<listitem><para>Simple text files with special delimiters between the
entries which are also used by simple database programs. The
extension is <literal role="extension">csv</literal> in this
case. &kvoctrain; also detects if those files are encoded in UTF8
since such files are also available to preserve the correct characters,
see more about this in the section about <link
linkend="encodings">encodings and charsets.</link></para>

<para>There are a lot of dictionaries on the internet which use the
tabular character or one or two colons to separate the different
languages. To select this separator use the dialog for setting the <link
linkend="options4-dlg">clipboard options</link>.</para></listitem>

</itemizedlist>

<para>&kvoctrain; reads the first few bytes from a file and makes a
guess about the file format. When none of the special types like
<literal role="extension">kvtml</literal> or <literal
role="extension">lex</literal> are recognized, it uses the <literal
role="extension">csv</literal> format.</para>

</sect1>

<sect1 id="types">
<title>Available word types</title>

<para>&kvoctrain; has the following internal word types. Furthermore
every document can contain user derfined types.</para>

<informaltable><tgroup cols="3">
<thead>
<row>
<entry>Type name</entry>
<entry>Description</entry>
<entry>Example</entry>
</row>
</thead>

<tbody>
<row>
<entry>Adjective</entry>
<entry>describing the properties of things or persons</entry>
<entry>expensive, good</entry>
</row>

<row>
<entry>Adverb</entry>
<entry>tells you when, how, where .. something is happening</entry>
<entry>today, strongly</entry>
</row>

<row>
<entry><para>Article
  <itemizedlist>
     <listitem><para>definite article</para></listitem>
     <listitem><para>indefinite article</para></listitem>
  </itemizedlist></para></entry>
<entry><para></para></entry>
<entry><para>
  <itemizedlist>
     <listitem><para>a, an</para></listitem>
     <listitem><para>the</para></listitem>
  </itemizedlist></para></entry>
</row>

<row>
<entry><para>Conjunction</para></entry>
<entry><para>serves to bind words or sentences</para></entry>
<entry><para>and, but</para></entry>
</row>

<row>
<entry><para>Proper Noun</para></entry>
<!-- This was name - does this need changing in the app too? -->
<entry><para>name of a person, a creature, sometimes a
 thing</para></entry>
<entry><para>Big Ben, Tom</para></entry>
</row>

<row>
<entry><para>Noun          
  <itemizedlist>
     <listitem><para>male</para></listitem>
     <listitem><para>female</para></listitem>
     <listitem><para>neutral</para></listitem>
  </itemizedlist></para></entry>
<entry><para>naming of things, feelings</para></entry>
<entry><para>table, coffee (english does not distinguish
 here)</para></entry>
</row>

<row>
<entry><para>Numeral        
  <itemizedlist>
     <listitem><para>ordinal</para></listitem>
     <listitem><para>cardinal</para></listitem>
  </itemizedlist></para></entry>
<entry><para>counting or numbering of things</para></entry>
<entry><para>
  <itemizedlist>
     <listitem><para>first, second</para></listitem>
     <listitem><para>one, two</para></listitem>
  </itemizedlist></para></entry>
</row>
    
<row>
<entry><para>Phrase</para></entry>
<entry><para>special combination of words</para></entry>
<entry><para>to kill two birds with one stone</para></entry>
</row>

<row>
<entry><para>Preposition</para></entry>
<entry><para>tells you about the relationship or location</para></entry>
<entry><para>behind, between</para></entry>
</row>

<row>
<entry><para>Pronoun
  <itemizedlist>
      <listitem><para>Possessive pronoun</para></listitem>
      <listitem><para>Personal pronoun</para></listitem>
   </itemizedlist></para></entry>
<entry><para>
  <itemizedlist>
      <listitem><para>tells about the ownership of
 something</para></listitem>
      <listitem><para>stands as a replacement for a
 noun</para></listitem>
  </itemizedlist></para></entry>
<entry><para>
  <itemizedlist>
     <listitem><para>my, your</para></listitem>
     <listitem><para>you, she</para></listitem>
  </itemizedlist></para></entry>
</row>

<row>
<entry><para>Interrogatory</para></entry>
<entry><para>introduces questions</para></entry>
<entry><para>who, what</para></entry>
</row>

<row>
<entry><para>Verb           
  <itemizedlist>
     <listitem><para>regular verb</para></listitem>
     <listitem><para>irregular verb</para></listitem>
  </itemizedlist></para></entry>
<entry><para>who is doing something or what is happening</para></entry>
<entry><para>
   <itemizedlist>
     <listitem><para>to cook, cooked, cooked</para></listitem>
     <listitem><para>to go, went, gone</para></listitem>
    </itemizedlist></para></entry>
</row>

</tbody>
</tgroup></informaltable>
</sect1>

<sect1 id="encodings">
<title>About charsets, encodings, unicode and such strange
 things</title>

<para>Every human-readable text file is represented by a sequence of
<quote>bytes</quote> or <quote>octets</quote>. The actual meaning of
those bytes can happen in a lot of different ways, depending on the
system where it is displayed or which language the text is intended
for.</para>

<para>Since usually a <quote>byte</quote> is the smallest common unit
for data on computers each <quote>character</quote> you see on a
screen is represented by exactly one byte. Each byte can stand for a
value from 0 to 255 and therefore you are able to display up to 256
different characters within one file.</para>

<para>Usually you have the <quote>ascii</quote> characters, &eg; a
through z, A through Z, 0 through 9 and additional language dependent
characters. For example, the German umlauts &auml; or &uuml; or a lot
of other special symbols from Russian, Greek, Hebrew or even
Chinese. All this tots up to far more than 256 different
symbols.</para>

<para>At this point it should be obvious that you have to take care to
select the correct <quote>charset</quote>, which is needed on a lot of
computer systems to display
the bytes in the same way as they are intended.</para>

<para>A better approach is to combine two ore more bytes into a
representation for a single character on the screen. This is for
example what <quote>Unicode</quote> does. Unicode is a standard that
currently uses a range from 0 to 65535 (and even more) to designate a
given symbol. Almost each symbol
of almost any language on earth (and even a lot more, &eg; well known
icons or klingon) is assigned a unique and unabiguous number.</para>

<para>Unfortunately the handling of Unicode is a bit more complicated
and does not work with most of the current tools. Texts in unicode
might also be longer. A compromise is to use UTF-8 which uses 7 bits
(8 bits form one byte) for the most common characters from the ascii
set and switches to 2, 3 or even 4 or more bytes if needed.</para>

<para>Every vocabulary file for &kvoctrain; is basically such a simple
text file using Unicode.</para>

<para>To support as many languages as possible &kvoctrain; version 0.7
offered the possibility to choose a special charset for each language.
If you have saved your files
in the former <quote>8Bit-Mode</quote> you might see the wrong characters
when you load with version 0.8 and higher.
Contact <ulink url="mailto:kvoctrain@ewald-arnold.de">me</ulink> in this case.
</para>

<para>If you want to learn more about this issue you should visit the
following links:</para>

<itemizedlist>
<listitem><para>
<ulink
url="http://www.hut.fi/u/jkorpela/chars.html">http://www.hut.fi/u/jkorpe
la/chars.html</ulink>
</para></listitem>
<listitem><para>
<ulink
 url="http://linuxdoc.org/HOWTO/Unicode-HOWTO.html">http://linuxdoc.org/
HOWTO/Unicode-HOWTO.html</ulink>
</para></listitem>
<listitem><para>
<ulink
 url="http://czyborra.com/charsets/codepages.html">http://czyborra.com/c
harsets/codepages.html</ulink>
</para></listitem>
</itemizedlist>
              
</sect1>

<sect1 id="learning">
<title>And how should I learn?</title>

<para>The usual way to learn with &kvoctrain; is to use one of its
 random 
query functions.</para>

<para>It keeps track of your knowledge of the expressions by assigning
them one of seven grades ranging from <quote>Level 1</quote> to
<quote>Level 7</quote>.</para>

<para>Several possibilities are implemented which can be configured in
the dialog for the query options.</para>

<itemizedlist>
<listitem><para>To keep the amount of expressions reasonable, restrict
the query to a lesson and/or a word type. I personally prefer about 50
words per cycle and subdivide the lessons accordingly.</para></listitem>

<listitem><para>Furthermore, the range for the query can depend on the
current grade, the number of queries and the last query
date.</para></listitem>

<listitem><para>Learning is efficient, if you don't repeat the words
for a certain length of time, dependig on the current
grade.</para>

<para>There is a blocking and expiring mechanism for that
case, so you are not obliged to modify the settings after each
cycle. The known expression is blocked at least for the given time and
will be shown after the expiration time.</para></listitem>

<listitem><para>The direction of the learning can be changed randomly
to avoid one way learning.</para></listitem>

<listitem><para>For your personal taste or just for becoming
acquainted with a new word, you can choose a query that shows the
solution together with several other randomly chosen words (called
multiple choice).</para></listitem>

<listitem><para>Special word types need special queries.</para>
<para>For this reason there are queries for the conjugation of verbs,
comparision form of adjectives and the articles of
nouns.</para></listitem>
</itemizedlist>

<para>All these settings can be summarized into
<link linkend="q-opt1-dlg">query groups</link> and retained
under an arbitrarily name.</para>

<para>When querying &kvoctrain; shows the expressions in random order
until you confirm all as <quote>known</quote>. If you did not select a
special lesson, all lessons are queried one after the other.</para>

<para>Remaining expressions of a currently running query are
accordingly stored when you leave &kvoctrain;. After a later restart
you can resume the query (currently this does not apply to special queries
with verbs, articles and comparisons). Those expressions are marked with a
green check mark in the <link linkend="overview">main view</link>.</para>

</sect1>
</chapter>

<chapter id="menus">
<title>The Menubar</title>

<sect1 id="file-menu">
<title>The <guimenu>File</guimenu> Menu</title>

<variablelist>
<varlistentry>
<term>
<menuchoice>
<guimenu>File</guimenu>
<guimenuitem>New</guimenuitem>
</menuchoice>
</term>
<listitem><para><action>Creates</action> a new
 document.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><shortcut>
<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo></shortcut>
<guimenu>File</guimenu>
<guimenuitem>Open...</guimenuitem></menuchoice></term>
<listitem><para><action>Opens an existing document.</action>
</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<guimenu>File</guimenu>
<guimenuitem>Open recent...</guimenuitem></menuchoice></term>
<listitem><para><action>Opens one of the recently opened
 documents.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<guimenu>File</guimenu>
<guimenuitem>Open example file...</guimenuitem></menuchoice></term>
<listitem><para><action>Opens an example file</action> shipped with &kvoctrain;
</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>File</guimenu>
<guimenuitem>Merge..</guimenuitem></menuchoice></term>
<listitem><para><action>Merges another vocabulary to the
 current.</action></para>
<para>Only those parts of the second vocabulary are merged, that have
 the same 
<ulink url="http://www.loc.gov/standards/iso639-2/englangn.html">
 international
language code</ulink> as your current one.</para>
<para>So always use the correct codes. This helps you share vocabularies
with others. &kvoctrain; supports you in this and offers all codes in the
according <link linkend="options2-dlg">options page</link>
</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut><keycombo
 action="simul">&Ctrl;<keycap>S</keycap></keycombo></shortcut>
<guimenu>File</guimenu>
<guimenuitem>Save</guimenuitem></menuchoice></term>
<listitem><para><action>Saves the document.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<guimenu>File</guimenu>
<guimenuitem>Save as</guimenuitem></menuchoice></term>
<listitem><para><action>Saves the document under another
 name.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>File</guimenu>
<guimenuitem>Quit</guimenuitem></menuchoice></term>
<listitem><para><action>Exits</action> &kvoctrain;.</para></listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="edit-menu">
<title>The <guimenu>Edit</guimenu> Menu</title>

<variablelist>
<varlistentry>
<term>
<menuchoice>
<shortcut><keycombo action="simul">
&Ctrl;<keycap>C</keycap></keycombo></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Copy</guimenuitem></menuchoice></term>
<listitem><para><action>Copies the current row to the
 clipboard.</action> The entries are separated by a special sequence of
 characters which can be chosen in the <link
 linkend="options4-dlg">options dialog</link>.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut><keycombo action="simul">
&Ctrl;<keycap>V</keycap></keycombo></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Paste</guimenuitem></menuchoice></term>
<listitem><para><action>Pastes from clipboard.</action> The entries are
 divided by
the above mentioned <link linkend="cut-n-paste">separator</link>
character and inserted as a new row with one or more columns. You can
also <link linkend="options4-dlg">adjust the order</link> in which the
columns are concatenated bofore copying all to the clipboard.</para>
<para>Pasting multiple lines (&eg; from a <literal role="extension">CSV</literal>
 data base file) will
 append them all as new rows one after another.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut><keycombo action="simul">
&Ctrl;<keycap>A</keycap></keycombo></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Select all</guimenuitem></menuchoice></term>
<listitem><para><action>Marks the whole vocabulary</action> as
 <quote>selected</quote>
 for further processing.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut><keycombo action="simul">&Ctrl;
<keycap>Del</keycap></keycombo></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Clear selection</guimenuitem></menuchoice></term>
<listitem><para><action>Removes all multiple selection
 marks.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut><keycombo action="simul">
&Ctrl;<keycap>F</keycap></keycombo></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Search from clipboard</guimenuitem></menuchoice></term>
<listitem><para><action>Pastes the clipboard content</action> into the
 <link
linkend="smart-search">smart search</link> entry field and searches this
expression in all the entries in the current column.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut><keycap>Ins</keycap></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Append new entry</guimenuitem></menuchoice></term>
<listitem><para><action>Appends one or more new expressions.</action>
 See
<link linkend="key-insert">Insert key</link> section for more
information.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><shortcut><keycap>Enter</keycap></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Edit selected area</guimenuitem></menuchoice></term>
<listitem><para><action>Edits current expression.</action> See <link
linkend="key-enter">Enter key</link> section for more
information.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><shortcut><keycap>Del</keycap></shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Remove selected area</guimenuitem></menuchoice></term>
<listitem><para><action>Removes selection.</action> See <link
 linkend="key-delete">Delete
key</link> for more information.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Edit</guimenu>
<guimenuitem>Save selected area...</guimenuitem></menuchoice></term>
<listitem><para><action>Saves the selection to a
 file.</action></para></listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="voc-menu">
<title>The <guimenu>Vocabulary</guimenu> Menu</title>

<variablelist>
<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Show statistics</guimenuitem></menuchoice></term>
<listitem><para>Invokes the <link linkend="stat-dlg">statistics
dialog</link> to <action>display the most important facts about your
vocabulary.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Assign lessons</guimenuitem></menuchoice></term>
<listitem><para><action>Searches the vocabulary for entries that are
not yet assigned a lesson.</action> They are randomly assigned new
lessons.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Clean up</guimenuitem></menuchoice></term>
<listitem><para><action>Searches for entries which are exactly the
 same</action>
(original and all translations) and removes all but
 one.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Append language</guimenuitem></menuchoice></term>
<listitem><para><action>Appends a new column</action> (a new
 language).</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Set language</guimenuitem></menuchoice></term>
<listitem><para><action>Sets the language code and name for a column</action>.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Remove language</guimenuitem></menuchoice></term>
<listitem><para><action>Removes one of the
 translations.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Document properties</guimenuitem></menuchoice></term>
<listitem><para>Invokes the <link linkend="docprop-dlg">document
properties dialog</link>.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Vocabulary</guimenu>
<guimenuitem>Language properties</guimenuitem></menuchoice></term>
<listitem><para>Invokes the <link linkend="langprop-dlg">language
properties dialog</link>.</para></listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="learn-menu">
<title>The <guimenu>Learn</guimenu> Menu</title>

<variablelist>
<varlistentry>
<term>
<menuchoice>
<guimenu>Learn</guimenu>
<guimenuitem><replaceable>Language Names</replaceable></guimenuitem>
</menuchoice></term>
<listitem><para>Provides a submenu for each language with all the
query dialogs. Exactly the same as the menu appearing in a <link
linkend="header-menu">table header button</link>.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<guimenu>Learn</guimenu>
<guimenuitem>Resume random query</guimenuitem></menuchoice></term>
<listitem><para><action>Resumes the previous random query if you
 terminated one
before.</action> Remaining entries appear with a green check mark.
</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Learn</guimenu><guimenuitem>Resume multiple
 choice</guimenuitem>
</menuchoice></term>
<listitem><para><action>Resumes the previous random query with multiple
choice.</action></para></listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="opt-menu">
<title>The <guimenu>Options</guimenu> Menu</title>

<variablelist>
<varlistentry>
<term><menuchoice>
<guimenu>Options</guimenu>
<guimenuitem>Toolbar</guimenuitem></menuchoice></term>
<listitem><para><action>Toggles the visibility of the toolbar
buttons.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Options</guimenu>
<guimenuitem>Statusbar</guimenuitem></menuchoice></term>
<listitem><para><action>Toggles on or off the status line at the
bottom.</action></para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Options</guimenu>
<guimenuitem>Inline editing</guimenuitem></menuchoice></term>
<listitem><para>Toggles on or off <link linkend="inline-edit">
inline editing</link> in the
table cell.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Options</guimenu>
<guimenuitem>General options</guimenuitem></menuchoice></term>
<listitem><para>Invokes the <link linkend="options-dlg">general options
dialog</link>.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice><guimenu>Options</guimenu>
<guimenuitem>Query options</guimenuitem></menuchoice></term>
<listitem><para>Invokes the <link linkend="query-opt-dlg">query options
dialog</link>.</para></listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice><guimenu>Options</guimenu>
<guimenuitem>Save options</guimenuitem></menuchoice></term>
<listitem><para><action>Saves the options.</action> Only selectable if
 the options are
not already saved automatically.</para></listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="help-menu">
<title>The <guimenu>Help</guimenu> menu</title>

&help.menu.documentation;

</sect1>

<sect1 id="header-menu">
<title>Table header menu</title>

<para>The following context menu will appear when you keep the
third button (your original expressions) in the table header
pressed for about a second.</para>

<variablelist>
<varlistentry>
<term><guimenuitem>Create random query</guimenuitem></term>
<listitem><para>Creates a <link linkend="query-dlg">random query</link>
on this column with all unknown expressions according to your <link
linkend="q-opt3-dlg">threshholds</link>.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Create multiple choice</guimenuitem></term>
<listitem><para>Creates a <link linkend="mu-query-dlg">random multiple
choice query</link> on this column with all unknown expressions
 according to your <link
 linkend="q-opt3-dlg">threshholds</link>.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Query verbs</guimenuitem></term>
<listitem><para>All of the verbs with its conjugations are
queried.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Query articles</guimenuitem></term>
<listitem><para>Queries the articles if the gender of the nouns is
defined.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Query comparison</guimenuitem></term>
<listitem><para>Queries comparison forms.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Query synonyms</guimenuitem></term>
<listitem><para>Queries the synonyms.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Query antonyms</guimenuitem></term>
<listitem><para>Queries the antonyms.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Query the examples</guimenuitem></term>
<listitem><para>Queries the examples.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Query paraphrase</guimenuitem></term>
<listitem><para>Queries the paraphrases.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Sort</guimenuitem></term>
<listitem><para>Sorts this row in ascending resp. descending
order.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Set language</guimenuitem></term>
<listitem><para>Chooses a language for this column. If your desired
language does not yet exists in this menu, you have to add it with the
<link linkend="options2-dlg">options dialog</link>.</para></listitem>
</varlistentry>
</variablelist>

<para>The following two topics only appear if you keep a header button pressed
that belongs to a translation.
</para>

<variablelist>
<varlistentry>
<term><guimenuitem>Reset properties</guimenuitem></term>
<listitem><para>Resets the properties of all the selected entries to
their initial state as if you just had appended them.</para>
<para>If you have chosen a lesson in the appropriate box in the toolbar,
then only those lesson members are reset. Otherwise all entries are
affected.</para></listitem>
</varlistentry>

<varlistentry>
<term><guimenuitem>Remove language</guimenuitem></term>
<listitem><para>Removes this column and all its
 entries.</para></listitem>
</varlistentry>
</variablelist>

</sect1>

</chapter>

<chapter id="dialogs">
<title>Dialogs</title>

<sect1 id="docprop-dlg">
<title>Document properties dialog</title>

<para>This dialog also consists of several pages the determine
 properties that belong only to the current document. They are stored
 with the
vocabulary.</para>

<sect2 id="docprop1-dlg">
<title>General properties</title>

<screenshot>
<screeninfo>General document properties screenshot</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="docprop1-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>General document properties</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Title</guilabel></term>
<listitem><para>Here you enter the title of the document which is
displayed in the window's title bar.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Authors</guilabel></term>
<listitem><para>Usually you will enter your name in this field. If
there are more than one author you might use a line for each
person.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>License</guilabel></term>
<listitem><para>If you want to restrict (or better allow) the use
of you vocabulary you should enter the according permission or license
here.</para>
<para>I recommend something like the
<ulink url="http://www.gnu.org/philosophy/using-gfdl.html">Free Document License</ulink>
</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Remark</guilabel></term>
<listitem><para>This field should contain things that do not fall in
one of the other categories.</para></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="docprop2-dlg">
<title>Lesson descriptions</title>

<screenshot>
<screeninfo>Lesson descriptions dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="docprop2-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Lesson descriptions</phrase></textobject>
</mediaobject>
</screenshot>

<para>Here you add, modify or delete descriptions of your
 lessons.</para>

<para>The buttons should be pretty selfexplanatory except
 <guibutton>Clean up</guibutton>. This one will remove all lesson
 descriptions that are unused in the current document.</para>

</sect2>

<sect2 id="docprop3-dlg">
<title>Type descriptions</title>

<para>Similar to the previous section about lessons, you can edit your
own expression types on this page.</para>

<para>Since the dialog page looks the same as the one before there is
no picture.</para>

</sect2>

<sect2 id="docprop4-dlg">
<title>Tenses</title>

<para>On the next page you may add the tenses you need.</para>

</sect2>

<sect2 id="docprop5-dlg">
<title>Usage labels</title>

<para>The last page provides the possibilty to enter your own usage
 labels.</para>

<important><para>If you think an important item is missing (from the
above tense, type or usage label section) you should tell me, so I can
include them in the application as standard item.</para>
<para>This way all the other users can benefit.</para></important>

</sect2>

<sect2 id="docprop6-dlg">
<title>Document options</title>

<screenshot>
<screeninfo>Document options dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="docprop6-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Document Options</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>allow sorting</guilabel></term>
<listitem><para>If you have created your vocabulary with a certain
 order, you can use this checkbox to turn sorting off for this document. A click
in the header button will then no longer sort the row.</para></listitem>
</varlistentry>

</variablelist>

<para>Version 0.7 of &kvoctrain; additionally offered the choice to either use
<quote>8Bit</quote> or <quote>Unicode</quote> to store the vocabulary files.
This is no more supported. The files are always stored
in Unicode to prevent wrong rendering of characters.</para>
<para>Unfortunately there is no backwards
compatibility to versions below 0.6 any more but I think the benefit is worth it.</para>
<para>If you have important files that are rendered wrong in the new version
you may contact
<ulink url="mailto:kvoctrain@ewald-arnold.de">me</ulink>
since it might be worth the effort
to create some conversion tool.
</para>


</sect2>
</sect1>

<sect1 id="langprop-dlg">
<title>Language properties dialog</title>

<screenshot>
<screeninfo>Language Properties dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="lang1-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Language Elements</phrase></textobject>
</mediaobject>
</screenshot>

<para>The following pages of this dialog determine for each language
of this dictionary several elements that are used in the according
queries.</para>

<variablelist>
<varlistentry>
<term><guilabel>Article</guilabel></term>
<listitem><para>For every gender you enter here the definite and the
indefinite article. If there is none for this language, you leave the
field empty.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Conjugation</guilabel></term>
<listitem><para>In the similar manner you input the descriptor for the
first, second and third person each in plural and singular.</para>
<para>Because many languages do not distinguish in the third person
 plural, there is a checkbox to determine this.</para>
<para>Leave the uneccessary fields empty.</para></listitem>
</varlistentry>

</variablelist>

<para>Version 0.7 of &kvoctrain; also offered the choice for a special
<link linkend="encodings">charset.</link>
In &Qt; version 3 there is no need for this any more.</para>
<para>
If you have important files that are rendered wrong in the new version
you may contact
<ulink url="mailto:kvoctrain@ewald-arnold.de">me</ulink>
since it might be worth the effort
to create some conversion tool.
</para>

</sect1>

<sect1 id="options-dlg">
<title>Options dialog</title>

<para>The settings of this dialog are global and affect all vocabularies
equally.</para>

<sect2 id="options1-dlg">
<title>General options</title>

<screenshot>
<screeninfo>General options dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="options1-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>General Options Dialog</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Automatic backup interval</guilabel></term>
<listitem><para>&kvoctrain; will automatically save the document if it
was modified after the period you enter here when the option is
checked.</para>
<para>As a side effect it also does not ask for confirmation to save
 when quiting with modified data but saves the vocabulary without
 asking.</para>
<para>An interval of 0 also stops this behaviour.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Smart appending</guilabel></term>
<listitem><para>If this feature is activated, you will repeatedly be
prompted with the entry dialog. After entering the first original you
have to enter the corresponding translations. Afterwards you proceed
with the next original and its translations until you stop by pressing
the <keycap>ESC</keycap> key.</para>
<para>When you are in this mode and modify the lesson in the dialog it
has the same meaning as selecting the lesson in the toolbar.  This way
it is preselected when the next entry dialag appears.</para>
<para>The required lessons will have to be created in advance in the
document settings.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Save options automatically</guilabel></term>
<listitem><para>When checked, all options are save upon termination
of &kvoctrain;. Otherwise you have to select the appropriate menu
item.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Column resizing</guilabel></term>
<listitem><para>When you resize your main window it is convenient,
if the columns resize automatically, too.</para>
<para>This is possible in two manners:
  <variablelist>
  <varlistentry>
  <term><guilabel>Automatic</guilabel></term>
  <listitem><para>&kvoctrain; makes each columns the same width except
  the leftmost with the lesson names which has half the size of the
  others. The second column which contains the picture that describes the
  state of the row has a fixed width.</para></listitem>
  </varlistentry>

  <varlistentry>
  <term><guilabel>Percent</guilabel></term>
  <listitem><para>
  The widths of the columns are altered with the same
  factor the main window grew or shrunk.
  </para></listitem>
  </varlistentry>
  </variablelist></para>

<para>If the last button labeled <quote>fixed</quote> is set, no resizing of
the columns is done.</para></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="options2-dlg">
<title>Available languages</title>

<screenshot>
<screeninfo>Language options dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="options2-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Language options dialog</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Language code</guilabel></term>
<listitem><para>Each column can be assigned a
language. This is internally done with the usual <ulink
url="http://www.loc.gov/standards/iso639-2/englangn.html">international
language codes</ulink> &eg; <literal>en</literal>, <literal>de</literal>,
<literal>it</literal>. These codes are also stored with the document.</para>
<para>You should always use the correct codes to be able to share
vocabularies with others. Merging vocabularies also relies on the
 correct language codes.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Alternative code</guilabel></term>
<listitem><para>Sometimes it may be useful to have a second language
 code because some languages have the usual short code and one or two longer
codes. For German for example it is common to use <literal>de</literal>
but either <literal>deu</literal> or <literal>ger</literal> is also
possible according to ISO639-2.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Language name</guilabel></term>
<listitem><para>Here you can give the language code a descriptive name
in your own language which is shown in the header buttons in the
<link linkend="overview">main view</link>.
</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Picture</guilabel></term>
<listitem><para>Additionally you can add a nice icon to your language
which is shown in the table header button.</para>
<para>&kde; 2 stores those pixmaps under
<filename>$<envar>KDEDIR</envar>/share/locale/l10n/<replaceable>language
-code</replaceable></filename>.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Delete</guilabel></term>
<listitem><para>Deletes the currently selected language code in the
list.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Add</guilabel></term>
<listitem><para>After entering a new language code in the field to its left,
you use this button to append it to your list. After that you need to
fill in the fields for the long name and the picture for the header
button.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Add language from KDE database</guilabel></term>
<listitem><para>Pressing this button opens a menu that contains all the countries
that are known in your &kde; installation. Ordered by country you can add your
desired language properties to your personal list.</para>

<para>Maybe you want to change the
language name or the according picture but I strongly recommend you keep at least the
2-byte language code and its 3-byte alternative if you don't have a special reason.
This is to achieve compatible document files that can be shared among all users.
</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Add language from ISO639-1</guilabel></term>
<listitem><para>Pressing this button opens a menu that contains all the language codes
that are covered by <quote>ISO639-1</quote>.</para>

</listitem>
</varlistentry>

</variablelist>

<para>Basically the previous two button provide the same data. The former contains
the language codes known in &kde; sorted by country whereas the second contains
<emphasis>all</emphasis> <quote>ISO639-1</quote> codes sorted alphabetically.</para>

</sect2>

<sect2 id="options3-dlg">
<title>Table View</title>

<screenshot>
<mediaobject>
<imageobject><imagedata fileref="options3-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>[view options dialog]</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Table Font</guilabel></term>
<listitem><para>Lets you choose a font to display the vocabulary
in the
<link linkend="overview">main view</link>.
</para>
</listitem>
</varlistentry>

<varlistentry id="opt-dlg-ipa">
<term><guilabel>IPA Font</guilabel></term>
<listitem><para>Lets you choose a font to display the characters from the international
phonetic alphabet. This is used to show the pronounciation of the expression
on the bottom in the statusbar.</para>
<para>Probably you don't have an IPA enabled font since those characters are seldom used.
You may download a free font from
<ulink url="http://bibliofile.mc.duke.edu/gww/fonts/Unicode.html">http://bibliofile.mc.duke.edu/gww/fonts/Unicode.html
</ulink> or
<ulink url="http://www.hclrss.demon.co.uk/unicode/fonts.html">http://www.hclrss.demon.co.uk/unicode/fonts.html
</ulink>. Install these fonts for example with kfontinst.</para>

<para>If you have <application>StarOffice</application> installed you probably
have the font <quote>Lucida Sans Unicode</quote> which also contains most of the
needed characters (but be sure to select the font which ends with
<quote>Unicode</quote>).</para>

<para>I also found a <ulink url="http://esl.about.com/library/weekly/aa040998.htm">
Reference and Introduction to Phonetic Symbols</ulink> that explains a bit about
the background. There is also
<ulink url="http://www2.arts.gla.ac.uk/IPA/ipa.html">
The International Phonetic Association</ulink> where you can find even more information.
</para>

</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Grade colors</guilabel></term>
<listitem><para>Every grade can be assigned an individual color. For
example I prefer green for best grade and red for worst.</para>
<para>If you don't want any colors but just black on white, uncheck the
according check box.</para></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="options4-dlg">
<title>Clipboard</title>

<screenshot>
<screeninfo>Clipboard options dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="options4-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Clipboard options dialog</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry id="cut-n-paste">
<term><guilabel>Separator</guilabel></term>
<listitem><para>This is a sequence of one ore more characters which
divide the parts of an expression when transfering data from or to an
other application over the clipboard.</para>
<para>The most common item is <keycap>TAB</keycap> which uses the tabulator
character. Another possibility is to use the semicolon, if you want to
export data to a database file in <literal role="extension">CSV</literal>
 format.This character is also used to read such files correctly.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Order</guilabel></term>
<listitem><para>When pasting via the clipboard &kvoctrain; does not know
which languages the different fields belong to and just would insert
them from left to right.</para>
<para>To facilitate correct behaviour, if you arranged your vocabulary
 in an other way, you can determine your desired order with this area.</para>
<para>The buttons right to the list box move the current language up or
down. <guibutton>Skip</guibutton> will insert a hole which means that
 the later calculated field from the clipboard is skipped.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Use current document</guilabel></term>
<listitem><para>When checked, the items in the clipboard are assumend to
be in the same language order as the current document.</para></listitem>
</varlistentry>
</variablelist>

</sect2>
</sect1>

<sect1 id="query-opt-dlg">
<title>Query options dialog</title>

<sect2 id="q-opt1-dlg">
<title>Option groups</title>

<screenshot>
<screeninfo>Option groups dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="q-opt1-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Option groups</phrase></textobject>
</mediaobject>
</screenshot>

<para>Depending on the dictionary or the time you have to learn the
vocabulary different settings may be optimal.</para>

<para>For that reason all the settings of the pages of this dialog can
be summarized under an arbitrarily chosen name.  You can store the
settings and recall them whenever you want.</para>

<variablelist>
<varlistentry>
<term><guilabel>Retain</guilabel></term>
<listitem><para>Retains the settings of the other pages under the
current name.</para>
<para>Saving to disk is done as with all the other settings using the
according menu item of the
<link linkend="opt-menu">options menu</link>.
Some properties are stored
with the document. For example the lessons to include since this
depends on the document in use.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Recall</guilabel></term>
<listitem><para>Recalls the settings from the group in the
listbox.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>New</guilabel></term>
<listitem><para>Creates a new group with the current
settings.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Delete</guilabel></term>
<listitem><para>Removes the current group.</para></listitem>
</varlistentry>
</variablelist>
 
</sect2>

<sect2 id="q-opt2-dlg">
<title>General query options</title>

<screenshot>
<screeninfo>General query options dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="q-opt2-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>General query options</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Time per query</guilabel></term>
<listitem><para>Here you can influence the behaviour of &kvoctrain;
when you don't know the answer in time.
  <itemizedlist>
  <listitem><para>You may set a time limit &kvoctrain; grants you to
  remember the correct answer.</para></listitem>
  <listitem><para>Additionally you can tell &kvoctrain; what to do
  when this limit is reached. Besides of waiting unlimited time you may
  select to be shown the solution or to continue immediately with the next
  question.</para></listitem>
  <listitem><para>Furthermore you can activate a little progess bar to
  show the remaining time for the current answer.</para></listitem>
  </itemizedlist></para>
<para>If you exceed the time limit several times in series in continuous mode
&kvoctrain; will assume that there is currently no person in front of the screen
and stop the query.</para></listitem>
</varlistentry>

<!-- DEFERRED AFTER KDE RELEASE

<varlistentry>
<term><guilabel>Ask sub properties</guilabel></term>
<listitem><para>

</para></listitem>
</varlistentry>
</variablelist>
-->


<varlistentry>
<term><guilabel>Swap direction randomly</guilabel></term>
<listitem><para>Usually a query is only in one direction, depending on
 the column you used to start the query. With this checkbox you can
 determine, that the directions are altered randomly.</para></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="q-opt3-dlg">
<title>Query threshholds</title>

<screenshot>
<screeninfo>Query threshholds dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="q-opt3-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Query threshholds</phrase></textobject>
</mediaobject>
</screenshot>

<para id="threshholds">With this dialog you determine which entries are
included in the next selection for random query.</para>

<important><para>If you have activated the blocking mechanism on the next dialog
page, the threshholds from
<guilabel>Grade</guilabel>,
<guilabel>Query count</guilabel>,
<guilabel>Bad count</guilabel> and
<guilabel>Last query</guilabel>
are disabled and not taken into account.</para>
</important>

<variablelist>
<varlistentry>
<term><guilabel>Lesson</guilabel></term>
<listitem><para>Designate which lessons to include or leave out. An
arbitrary number of lessons can be selected for the calculation.</para>
<para>For convenience there are two additional buttons to selected all
entries or none.</para>
<para>Starting with version 0.7.0 this part is stored with the document
instead of storing globally.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Word type</guilabel></term>
<listitem><para>Select the word type. &kvoctrain; does not pay any
attention to subtypes.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Grade</guilabel></term>
<listitem><para>The same for the grade.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Query count</guilabel></term>
<listitem><para>Choose how often the selection must be
queried.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Bad count</guilabel></term>
<listitem><para>The same for the amount of times the entry was not
known.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Last query</guilabel></term>
<listitem><para>Include queries before or within the given time
 span.</para>
<para>Entries which have not been queried yet are always included if you
choose <emphasis>before</emphasis>.</para></listitem>
</varlistentry>
</variablelist>

<para>Entries are only included if all conditions are fulfilled. If you
want a property to be ignored, choose <guilabel>Dont care </guilabel>for it.</para>

</sect2>

<sect2 id="q-opt4-dlg">
<title>Blocking and expiring</title>

<screenshot>
<screeninfo>Query blocking dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="q-opt4-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Query blocking</phrase></textobject>
</mediaobject>
</screenshot>

<para>On this page you select the time, an known entry is excluded from
queries resp. when it must be queried at the latest.</para>

<para>There are two conditions which must be fullfilled, otherwise you
will be shown an according warning:</para>

<itemizedlist>
<listitem><para>The time must increase from level to level</para></listitem>

<listitem><para>The time for blocking must be less than for expiring in
the same level.</para></listitem>
</itemizedlist>

<para>If at least one of blocking or expiring is active, the threshholds from
<guilabel>Grade</guilabel>,
<guilabel>Query count</guilabel>,
<guilabel>Bad count</guilabel> and
<guilabel>Last query</guilabel>
on the previous dialog page are not taken into account.</para>

</sect2>
</sect1>

<sect1 id="entry-dlg">
<title>Entry dialog</title>

<sect2 id="entry1-dlg">
<title>General properties</title>

<para>Here you enter a new expression into a table cell or modify
 existing entries and their properties.</para>

<screenshot>
<screeninfo>Entry dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="entry1-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Entry dialog</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Expression</guilabel></term>
<listitem><para>Contains your words.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Lesson</guilabel></term>
<listitem><para>Selects the desired lesson.</para>
<para>The button on the right also invokes the
<link linkend="docprop2-dlg">document
properties page</link> where you can enter a new lesson.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Pronunciation</guilabel></term>
<listitem><para>In this field you can describe how the word is
pronunciated.</para>
<para>This is possible either by using simple ascii charaters and maybe an fancy
and very personal phonetic description or better by using the international
phonetic alphabet.
The button on the right invokes a
<link linkend="pron-window">dialog</link> where you can select
all the characters that belong to this alphabet.</para>

</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Type</guilabel></term>
<listitem><para>Lets you choose one of the predefined types for your
expression. If you change the type for an entry, all the other entries
in that row will be assigned the new type.</para>
<para>See the table for all <link linkend="types">available
types</link>.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Subtype</guilabel></term>
<listitem><para>Some types also include subtypes. If there is no subtype
available this field is disabled.</para>
<para>Every entry in a row can have a different subtype. This is
useful for nouns as the gender of a noun may be different in different
languages.</para>
<para>The button to the right of this field invokes the according page
from the
<link linkend="docprop3-dlg">document
properties dialog </link> so you can enter a new type
immediately.</para></listitem>
</varlistentry>
    
<varlistentry>
<term><guilabel>Usage label</guilabel></term>
<listitem><para>One or more usage labels can be selected to describe
the usual usage of the expression, &eg; medicine or chemistry.</para>
<para>The button on the right also invokes the according page from the
<link linkend="docprop3-dlg">document
properties dialog</link> to enter a new usage label.</para></listitem>
</varlistentry>
</variablelist>

<sect3 id="pron-window">
<title>Selecting from the international phonetic alphabet</title>

<para>If you have an IPA-enabled font installed your dialog
should look like this:</para>

<screenshot>
<screeninfo>IPA dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="pron-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>International phonetic alphabet dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>If you don't have such a font you can find a link to a free one in the section
about the <link linkend="opt-dlg-ipa">view options</link>.</para>
</sect3>

</sect2>

<sect2 id="entry2-dlg">
<title>Additional properties</title>

<para>Less important properties that did not find place on the previous
page are located here.</para>

<para>For most of these fields there are special queries, too.</para>

<screenshot>
<screeninfo>Additional entry dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="entry2-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Additional entry dialog</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Synonym</guilabel></term>
<listitem><para>Here you may enter words that have the same
meaning as the expression. There is also a query type for this
expression.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Antonym</guilabel></term>
<listitem><para>This is for words that have the opposite meaning. This
field can also be queried.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Example</guilabel></term>
<listitem><para>Additionally you may enter here an example sentence
for the expression. There is a simple query type which prompts you
with the content of this field but with dots instead of the word in
question.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Remark</guilabel></term>
<listitem><para>This is an optional field to store additional
information.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Paraphrase</guilabel></term>
<listitem><para>Here you may enter a description in different words.
 There is also a query type for this expression.</para></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="entry3-dlg">
<title>Suggestions for a multiple choice query</title>

<screenshot>
<screeninfo>Multiple choice dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="entry3-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Multiple choice dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>If you want to create an efficient multiple choice query it
is good to offer expressions that are similar to the solution to make
it more difficult. If you don't offer them, &kvoctrain; has only
the possibility
to create such queries with randomly chosen expresions which are rather
easy to guess.
You can enter up to five expressions for this purpose.</para>

</sect2>

<sect2 id="entry4-dlg">
<title>Additional properties for verbs</title>

<para>This page is only accessible when you selected
<guilabel>verb</guilabel> as word type.</para>

<screenshot>
<screeninfo>Verb entry dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="entry4-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Verb entry dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>For every tense &kvoctrain; knows you can enter the conjugations
of the verb for the different persons. The tense can be selected from
 the list. After doing this the entry fields are updated accordingly.</para>

<para>Because some languages don't distinguish in the 3rd person of the
plural you may use the according checkbox.</para>

<para><guibutton>Next</guibutton> searches for the next tense with
already entered conjugations.</para>

</sect2>

<sect2 id="entry5-dlg">
<title>Additional properties for adjectives</title>

<para>This page is only accessible when you selected
<guilabel>adjective</guilabel> as word type.</para>

<screenshot>
<screeninfo>Comparison entry dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="entry5-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Comparison entry dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>Here you enter the the comparison forms of the
 adjective.</para>

</sect2>

<sect2 id="entry6-dlg">
<title>Properties from or to the original</title>

<para>For some properties it is possible to set up values
<emphasis>from</emphasis> the original or <emphasis>to</emphasis> the
original. For example you can have a grade when querying the translation
(=> from the original). The opposite is the grade when querying the original when
one of the translations is given (=> to the original).</para>

<screenshot>
<screeninfo>From/to entry dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="entry6-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>From/to entry dialog</phrase></textobject>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term><guilabel>Grade</guilabel></term>
<listitem><para>Contains the current grade of this
expression.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>False friend</guilabel></term>
<listitem><para>Sometimes there is a word in a foreign language that
looks like a word in your native language so you think it must have the
same meaning. But in fact, it is not.</para>
<para>Enter such words in this field.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Last query date</guilabel></term>
<listitem><para>This is the date when this entry was
last queried. If it was never queried yet you only see
<computeroutput>--</computeroutput>.</para>
<para>For convinience reasons there are two buttons to set the current
date or reset to <quote>never queried</quote>.</para>
<para>Due to internal reasons, it is not possible to store dates before
August 12 1999 with every version of &kvoctrain;. Versions 0.8 and later
are no more affected.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>altogether</guilabel></term>
<listitem><para>Designates how often this entry was queried.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>wrong</guilabel></term>
<listitem><para>Shows the amount of times you did not know the right
answer.</para></listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2>
<title>Docking to the main window</title>

<para>If you have to enter or change a lot of words you may want to place the main
window next to the entry dialog and occupy the whole screen.

You may do this manually or use one of the two
buttons in the bottom left corner. The left one resizes the windows to an optimal
height and places them one upon the other. The second places them accordingly
side by side.</para>

<para>After closing the entry dialog the main window returns to its previous
position and size.</para>

</sect2>

</sect1>

<sect1 id="query-dlg">
<title>Query dialogs</title>

<sect2 id="norm-query-dlg">
<title>Normal random query</title>

<para>After selecting <guimenuitem>Create random query </guimenuitem>
the main window disappers.</para>

<para>Then all entries that match your current <link
linkend="q-opt3-dlg">threshholds</link> are put into a list and shown
in random order with the following dialog box.</para>

<screenshot>
<screeninfo>Random query dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="query-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Random query dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>In the dialog area with the original expression there are some properties
you can enable to give you some hints. You have to enter the solution in the
according text field.</para>
 
<variablelist>
<varlistentry>
<term><guilabel>Show all</guilabel></term>
<listitem><para>Shows the complete solution in the <guilabel>Translation</guilabel>
field.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Show more</guilabel></term>
<listitem><para>Each click on this button will show one more character
of the solution to give you a little help.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Verify</guilabel></term>
<listitem><para>Compares your answer with the correct solution. Currently
your solution must match exactly to be accepted. If the answer was correct the
color of the translation changes to green, otherwise to red</para></listitem>
</varlistentry>
   
<varlistentry>
<term><guilabel>Don`t know</guilabel></term>
<listitem><para>Tells &kvoctrain; that you did not know the answer and
that the according grade must be lowered.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Know it</guilabel></term>
<listitem><para>Click this button to tell &kvoctrain; that you
knew the answer correctly. This entry is then removed from the current<quote>bad
list</quote>.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Edit</guilabel></term>
<listitem><para>If you find a mistake with a query you can invoke the
edit dialog immediately and correct it.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Stop query</guilabel></term>
<listitem><para>Stop query mode and show vocabulary
again.</para></listitem>
</varlistentry>
   
</variablelist>

<para>In the right bottom corner you see two progressbars that indicate
the remaining time and the amount of queries to come.</para>

<para>The query of the current lesson is repeated until all its
expressions are known. The amount of retries of the current lesson is
shown below the progress indicator. Once the current lesson is
finished &kvoctrain; continues with the next (provided that you have set up
the <link linkend="q-opt3-dlg">query options</link> accordingly).</para>

<para>I regret to admit, but usually I don`t know the solution. For
this reason the <keycap>Return</keycap> key has special behaviour,
which I found convenient:

<itemizedlist>
<listitem><para>First pressing <keycap>Return</keycap> shows the
 complete solution (at the beginning the button <guibutton>Show more</guibutton>
is the default button) and makes <guibutton>Don`t know</guibutton>
the default button.</para></listitem>

<listitem><para>Pressing <keycap>Return</keycap> the second time
will leave this dialog and tell &kvoctrain; that you did not know the
answer.</para></listitem>
</itemizedlist></para>

<para>At the moment you must decide for yourself, if you knew the answer
or failed. Later versions may provide a more or less smart algorithm to
make this decision from the answer you entered.</para>

<para>If you knew the corrent answer, the grade is increased by one
step. If you did not know it, the grade is reset to level 1 which is worst.</para>

</sect2>

<sect2 id="mu-query-dlg">
<title>Random query with multiple choice</title>

<screenshot>
<screeninfo>Multiple choice query dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="mu-query-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Multiple choice query dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>This type of query works similar to the previous one. The solution
is shown together with random other expressions and you have to choose
one answer from the five provided.</para>

<para>This query works most efficiently if you provide similar solutions on the
<link linkend="entry2-dlg">according entry dialog pages</link>. Additionally
<link linkend="entry6-dlg">a false friend</link>
is added if available.</para>

</sect2>

<sect2 id="verb-query-dlg">
<title>Query of conjugations</title>

<screenshot>
<screeninfo>Conjugation query dialog</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="verb-query-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Conjugation query dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>This dialog appears after starting the query of the verbs.</para>

<para>All tenses are queried that have definitions for conjugations. Of
course you must know all of them for a successful result.</para>

</sect2>

<sect2 id="art-query-dlg">
<title>Query of articles</title>

<screenshot>
<screeninfo>Article query dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="art-query-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Article query dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>In this dialog the article of the noun is queried.</para>

<para>It is important to having selected the correct subtype in the
<link linkend="entry1-dlg">entry dialog</link>.</para>

</sect2>

<sect2 id="comp-query-dlg">
<title>Query of comparison forms</title>

<screenshot>
<screeninfo>Comparison query dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="comp-query-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Comparison query dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>All expressions that contain also
<link linkend="entry5-dlg">comparison forms</link> are shown. One
word is chosen randomly and you must complete the remaining two.</para>

</sect2>

<sect2 id="syn-query-dlg">
<title>Query of synonyms, antonyms, paraphrases and example
 sentences.</title>

<screenshot>
<screeninfo>Synonym query dialog screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="syn-query-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Synonym query dialog</phrase></textobject>
</mediaobject>
</screenshot>

<para>The queries for the above mentioned additional properties of your
expression look basically the same for all types.</para>

<para>You are prompted the expression and have to enter the according
property. Querying by <guilabel>example</guilabel> is a bit different
since &kvoctrain; takes the expression and replaces it by some dots so
this is mainly useful when your expression is a single word.</para>

</sect2>
</sect1>

<sect1 id="stat-dlg">
<title>Document statistics dialog</title>

<sect2 id="stat1-dlg">
<title>General</title>

<screenshot>
<screeninfo>General document statistics screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="stat1-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>General document statistics</phrase></textobject>
</mediaobject>
</screenshot>

<para>On this page you find the most important general information about
your document:</para>

<itemizedlist>
<listitem><para>The filename</para></listitem>
<listitem><para>The title</para></listitem>
<listitem><para>The name of the author</para></listitem>
<listitem><para>and the number of entries and lessons.</para></listitem>
</itemizedlist>

</sect2>

<sect2 id="stat2-dlg">
<title>All languages in the dictionary</title>

<screenshot>
<screeninfo>Per language statistics screenshot</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="stat2-dlg.png" format="PNG" /></imageobject>
<textobject><phrase>Per language statistics</phrase></textobject>
</mediaobject>
</screenshot>

<para>Depending on the amount of translations your document contains,
you will have none, one or more additional pages. Each page contains
two pictures for each lesson describing the amount of entries per grade
in each lesson.</para>

<para>A click with the <mousebutton>right</mousebutton> mouse button on one of the pixmaps will
popup a menu which shows the exact numbers.</para>

</sect2>
</sect1>
</chapter>

<chapter id="dictionaries">
<title>Dictionaries</title>

<sect1 id="dictionary">
<title>Contributing a dictionary to &kvoctrain;</title>

<para>If you have created a dictionary, please send an email to
<email>kvoctrain@ewald-arnold.de</email> and tell
me about it. I plan to collect pointers to those files and include
them in this handbook. If I find an electronic abode for &kvoctrain;
with enough space, I might also store them there.</para>

<para>But please:</para>
<itemizedlist>
<listitem><para>Don't send me any files before telling me. Maybe someone
else has already started this type of dictionary.</para></listitem>
<listitem><para>The dictionaries should have a reasonable good quality
as I don't want to do any revision.</para></listitem>
<listitem><para>If you modify existing vocabularies or create
vocabularies based on copyrighted material you must ask the author for
permission. Even taking literal examples from schoolbooks might be
problematic!</para></listitem>
</itemizedlist>

</sect1>

<sect1 id="other-dict">
<title>Other dictionaries on the web</title>

<itemizedlist>
<listitem><para>If you are German an want to learn English
(or vice versa) you can download the monthly vocabulary
list provided by the German magazine <ulink url="http://www.spotlight-online.de">Spotlight-Online</ulink>.</para>
<para>The &kvoctrain; distribution contains an executable called
<command>spotlight2kvtml</command> to transform those lists
in kvtml format. The original files come as &Windows; Word DOC-files
so you have to save them as ANSI-TXT files before starting
conversion. <application>StarOffice</application> or <application>kword</application>
can do this job.</para>
<para><command>spotlight2kvtml</command> needs the 3 parameters
<parameter>filename</parameter>, <parameter>month</parameter> and
<parameter>year</parameter> and produces a file in the same directory
with the same name and the extension <literal role="extension">kvtml</literal>:</para>
<para><userinput><command>spotlight2kvtml</command>
<replaceable>0199.txt 01 99</replaceable></userinput></para></listitem>

<listitem>
<para>Thanks to a contribution by Andreas Neuper you
can download files from
<ulink url="http://www.vokabeln.de/files.htm">Langenscheidt</ulink>.
This is a german site and contains files in several languages.
This distribution contains his perl script
<command>langen2kvtml</command> to transform those lists
in kvtml format.</para>

<para><command>langen2kvtml</command> needs only the original filename as parameter
and tries to extract as much information as possible from the source file.
For example is keeps the lesson names, conjugations and articles.</para>

<para>It produces a file in the same directory
with the same name and the extension <literal role="extension">kvtml</literal>.</para>
</listitem>

<listitem><para>Dictionaries in ascii-format are for example available
 at:</para>
  <itemizedlist>
  <listitem><para>
  <ulink
 url="ftp://ftp.uni-ulm.de/pub/misc/dict/english_german.tar.gz">ftp.uni-
ulm.de/pub/misc/dict/english_german.tar.gz</ulink> (approx. 350 kB)
  </para></listitem>
  <listitem><para>
  <ulink
 url="ftp://ftp.gwdg.de/pub/misc/dictionary/english/words.gz">ftp.gwdg.d
e/pub/misc/dictionary/english/words.gz</ulink> (approx. 1035 kB)
  </para></listitem>
  <listitem><para>
  <ulink
 url="ftp://sable.ox.ac.uk/pub/wordlists">
 sable.ox.ac.uk/pub/wordlists</ulink>
  </para></listitem>
  </itemizedlist>
</listitem>

<listitem><para>Dictionaries from the
<ulink url="http://www3.futureware.at/kquick.htm">*Quick project</ulink> in
<quote>CSV</quote> format but encoded in <quote>UTF8</quote> so you should have
all characters rendered correctly.

The files are available from its
<ulink url="http://www3.futureware.at/1dim.htm">download section</ulink>.
They are in compressed &Windows; <literal role="extension">.EXE</literal>
format so you have
to use <application>unzip</application> to extract the files.</para>
</listitem>

</itemizedlist>

<para>If you know another source please tell
<ulink url="mailto:kvoctrain@ewald-arnold.de">me</ulink>
to include it here.</para>
</sect1>

<sect1 id="translators">
<title>Translator applications</title>

<para>If you don't want to learn but just need quick translations of
expressions in larger dictionaries you might be unhappy with &kvoctrain;
if your computer doesn't have much memory and MHz. A 150000 entry
file consumes about 60M and takes ages to load if your system is short of memory.</para>

<para>In this case  you might want to try one of the following:</para>
<itemizedlist>
<listitem><para>
<ulink url="http://www.franken.de/users/duffy1/rjakob/">kdsing</ulink>
 (&kde;).
</para></listitem>

<listitem><para>
<ulink
 url="http://www.tm.informatik.uni-frankfurt.de/~razi/steak/steak.html">
steak/xsteak</ulink> (console/X).
</para></listitem>

<listitem><para>
<ulink
 url="http://www.tu-chemnitz.de/urz/netz/forms/ding.html">Ding</ulink>
 (TCL).
</para></listitem>

<listitem><para>
<ulink url="http://digilander.iol.it/merlim/english.html">qtrans</ulink>
 (&Qt; 2.x).
</para></listitem>
</itemizedlist>

</sect1>
</chapter>

<chapter id="links">
<title>Interesting links</title>

<sect1 id="similar">
<title>Similar projects</title>

<para>You might also want to try one of the other vocabulary trainers
I have found (sorted by the time when I found them):</para>
<itemizedlist>
<listitem><para><ulink
url="HTTP://www.daniel-graefe.de">QVocab</ulink> (&Qt;)</para></listitem>

<listitem><para><ulink
url="http://pweb.uunet.de/reger.kuen/">Vokabel-Trainer</ulink>
(Tcl/Tk)</para></listitem>

<listitem><para><ulink
url="ftp://ftp.inf.ru/mnt/.8/linux/apps/cai/Lingvisto-1.0.tar.gz">Lingvisto</ulink>
(X)</para></listitem>

<listitem><para><ulink
url="http://n.ethz.ch/student/dradovic/kvoclearn/index.html">
KVoclearn</ulink> (&kde;)</para></listitem>

<listitem><para><ulink
url="http://members.tripod.com/~planetphil/svt.html">SVT</ulink>
(console)</para></listitem>

<listitem><para><ulink
url="ftp://sunsite.unc.edu/pub/Linux/apps/chinese/chflashcard-0.1.tar.gz
">chflashcard</ulink>
(X11, for Chinese)</para></listitem>

<listitem><para><ulink
url="http://ourworld.compuserve.com/homepages/michael_m_werner/">Vocabul
ary
Trainer</ulink> (freeware, all flavours of &Windows;)</para></listitem>

<listitem><para><ulink
url="http://ella.phil.uni-freiburg.de/RomSeminar/Deutscher/Zula/index.ht
ml">Acavoc
(Java)</ulink></para>
<para>The author of this application has also written a theoretical
article about learning languages (German only).</para></listitem>

<listitem><para><ulink
url="http://www.daniel-graefe.de/">wordtrain</ulink>
(console)</para></listitem>

<listitem><para><ulink
url="http://www.kiecza.de/daniel/linux/">vocabbox</ulink> (Python
&Qt;/&kde;)</para></listitem>

<listitem><para><ulink
url="http://rcswww.urz.tu-dresden.de/~kossebau/dokvok">DokVok</ulink>
(&kde;)</para></listitem>

<listitem><para><ulink
url="http://www.stud.fernuni-hagen.de/q4576411/andreas/gvoc.shtml">
gvoc</ulink></para></listitem>

<listitem><para><ulink
url="http://www.brainsystems.com/english/index.html">Wordlearn</ulink>
(&Windows; 32/commercial)</para></listitem>

<listitem><para><ulink
url="http://www.stud.uni-wuppertal.de/~ma0035/gsoftware/gvoctra.html">
GVoctra</ulink>
(DOS)</para></listitem>

<listitem><para><ulink
url="http://a.die.supsi.ch/~gull/vocitrainer">Vocitrainer</ulink>
(Mac/Win32, commercial)</para></listitem>
</itemizedlist>

</sect1>

<sect1 id="other-links">
<title>Other interesting links</title>

<para>Maybe you are interrested in the one or the other links I found
while working on &kvoctrain;.</para>
<itemizedlist>
<listitem><para><ulink url="http://czyborra.com/unifont/">&GNU; Unifont
Projekt</ulink></para></listitem>

<listitem><para><ulink url="http://www.seul.org/edu/projects.html">SEUL
Educational Projects</ulink></para></listitem>

<listitem><para><ulink
url="http://www.lxschule.de/txt/software.html">&Linux; Schulserver</ulink>
(Linux at school, German)</para></listitem>

<listitem><para><ulink url="http://esl.about.com/library/weekly/aa040998.htm">
Reference and Introduction to Phonetic Symbols</ulink></para></listitem>

<listitem><para><ulink url="http://www2.arts.gla.ac.uk/IPA/ipa.html">
The International Phonetic Association</ulink></para></listitem>

</itemizedlist>

</sect1>
</chapter>

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

<sect1 id="credits">
<title>Thanks</title>

<para>&kvoctrain; is my first &GUI; application for &kde;, so I had to
borrow a lot of code from other applications. The biggest chunks are
taken from</para>
<itemizedlist>
<listitem><para>&klpq; (table functionality in versions up to 0.7)</para></listitem>
<listitem><para>&killustrator; (XML reading/writing).</para></listitem>
<listitem><para>&khexedit; (<quote>about</quote> dialog in versions up to
0.7).</para></listitem>
</itemizedlist>

<para>I'd like to thank the following people personally for their
contribution to &kvoctrain;:</para>
<itemizedlist>
<listitem><para>Andrea Marconi for localisation to
 Italian</para></listitem>
<listitem><para>Hans Kottman for localisation to
 French</para></listitem>
<listitem><para>Grzegorz Ilczuk for localisation to
 Polish</para></listitem>
<listitem><para>Eric Bischoff for converting the documentation to
DocBook</para></listitem>
</itemizedlist>

<para>I also want to thank all the other unamed persons, especially the
whole &kde; team,
for their help, constructive criticisim, suggestions or bug-reports.</para>

</sect1>

<sect1 id="copyright">
<title>Copyright</title>

<para>&kvoctrain; Program copyright 1999-2001 Ewald Arnold
<email>ewald@ewald-arnold.de</email></para>

<para>Documentation copyright 1999-2000 Ewald Arnold
<email>ewald@ewald-arnold.de</email></para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->

&underFDL;
&underGPL;

</sect1>
</chapter>

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

<sect1 id="obtaining">
<title>How to obtain kvoctrain</title>

&install.intro.documentation;

<para>Current snapshots and dictionary files
can be found on the <ulink
url="http://kvoctrain.sourceforge.net/download/download.html">kvoctrain
homepage</ulink>.</para>

<para><ulink url="http://www.kde.org/anoncvs.html">Anonymous
CVS download</ulink> is also available.</para>

<important><para>Don't use the CVS code from the Sourceforge server because ths
branch is obsolete.</para></important>

<para>You can find precompiled binaries as rpm packages
for the SuSE distribution (of almost all KDE apps): <ulink
url="http://www.suse.de/download/LinuKS/">LinuKS: SuSE Linux KDE
Service</ulink>.</para>

<para>Another place for precompiled packages is <ulink
url="http://xmission.linuxberg.com/kdehtml/ent_educational.html#kvoctrain">Linuxberg</ulink>.</para>

</sect1>

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

<para>In order to successfully compile &kvoctrain;,
you need the &kde; libraries as well as the &Qt; C++
library. All required libraries can be found on <ulink
url="ftp://ftp.kde.org/pub/kde/">ftp.kde.org/pub/kde/</ulink>.</para>

<para>&kvoctrain; is tested with &kde; 3.0 and &Qt; 3.0. It should also
basically run under &kde; 2.x and &Qt; 2.x if compiled accordingly
but I can't promise.</para>

</sect1>

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

&install.compile.documentation;

</sect1>
</appendix>

&documentation.index;

</book>
