summaryrefslogtreecommitdiffstats
path: root/klatin
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 (patch)
treed3bb9f5d25a2dc09ca81adecf39621d871534297 /klatin
downloadtdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.tar.gz
tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeedu@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'klatin')
-rw-r--r--klatin/AUTHORS1
-rw-r--r--klatin/COPYING340
-rw-r--r--klatin/ChangeLog0
-rw-r--r--klatin/INSTALL167
-rw-r--r--klatin/Makefile.am11
-rw-r--r--klatin/README1
-rw-r--r--klatin/TODO3
-rw-r--r--klatin/klatin.lsm14
-rw-r--r--klatin/klatin/Makefile.am40
-rw-r--r--klatin/klatin/data/Makefile.am1
-rw-r--r--klatin/klatin/data/grammar/Makefile.am2
-rw-r--r--klatin/klatin/data/grammar/bellum.klat40
-rw-r--r--klatin/klatin/data/grammar/genu.klat40
-rw-r--r--klatin/klatin/data/grammar/gradus.klat40
-rw-r--r--klatin/klatin/data/grammar/opus.klat40
-rw-r--r--klatin/klatin/data/grammar/puella.klat40
-rw-r--r--klatin/klatin/data/grammar/res.klat40
-rw-r--r--klatin/klatin/data/grammar/rex.klat40
-rw-r--r--klatin/klatin/data/grammar/servus.klat40
-rw-r--r--klatin/klatin/data/verbs/Makefile.am6
-rw-r--r--klatin/klatin/data/verbs/amo-indicative-active.klat148
-rw-r--r--klatin/klatin/data/verbs/amo-indicative-passive.klat148
-rw-r--r--klatin/klatin/data/verbs/amo-subjunctive-active.klat100
-rw-r--r--klatin/klatin/data/verbs/amo-subjunctive-passive.klat100
-rw-r--r--klatin/klatin/data/verbs/audio-indicative-active.klat148
-rw-r--r--klatin/klatin/data/verbs/audio-indicative-passive.klat148
-rw-r--r--klatin/klatin/data/verbs/audio-subjunctive-active.klat100
-rw-r--r--klatin/klatin/data/verbs/audio-subjunctive-passive.klat100
-rw-r--r--klatin/klatin/data/verbs/moneo-indicative-active.klat148
-rw-r--r--klatin/klatin/data/verbs/moneo-indicative-passive.klat148
-rw-r--r--klatin/klatin/data/verbs/moneo-subjunctive-active.klat100
-rw-r--r--klatin/klatin/data/verbs/moneo-subjunctive-passive.klat100
-rw-r--r--klatin/klatin/data/verbs/rego-indicative-active.klat148
-rw-r--r--klatin/klatin/data/verbs/rego-indicative-passive.klat148
-rw-r--r--klatin/klatin/data/verbs/rego-subjunctive-active.klat100
-rw-r--r--klatin/klatin/data/verbs/rego-subjunctive-passive.klat100
-rw-r--r--klatin/klatin/data/verbs/sum-indicative-active.klat148
-rw-r--r--klatin/klatin/data/verbs/sum-subjunctive-active.klat100
-rw-r--r--klatin/klatin/data/vocab/Makefile.am1
-rw-r--r--klatin/klatin/data/vocab/de/A.kvtml197
-rw-r--r--klatin/klatin/data/vocab/de/BC.kvtml229
-rw-r--r--klatin/klatin/data/vocab/de/D.kvtml133
-rw-r--r--klatin/klatin/data/vocab/de/EF.kvtml173
-rw-r--r--klatin/klatin/data/vocab/de/GHI1.kvtml173
-rw-r--r--klatin/klatin/data/vocab/de/I2L.kvtml189
-rw-r--r--klatin/klatin/data/vocab/de/M.kvtml129
-rw-r--r--klatin/klatin/data/vocab/de/Makefile.am3
-rw-r--r--klatin/klatin/data/vocab/de/N.kvtml157
-rw-r--r--klatin/klatin/data/vocab/de/OP1.kvtml145
-rw-r--r--klatin/klatin/data/vocab/de/P2.kvtml153
-rw-r--r--klatin/klatin/data/vocab/de/QR.kvtml149
-rw-r--r--klatin/klatin/data/vocab/de/S.kvtml225
-rw-r--r--klatin/klatin/data/vocab/de/TU.kvtml165
-rw-r--r--klatin/klatin/data/vocab/de/V.kvtml125
-rw-r--r--klatin/klatin/data/vocab/en/A.kvtml192
-rw-r--r--klatin/klatin/data/vocab/en/BC.kvtml224
-rw-r--r--klatin/klatin/data/vocab/en/D.kvtml128
-rw-r--r--klatin/klatin/data/vocab/en/EF.kvtml168
-rw-r--r--klatin/klatin/data/vocab/en/GHI1.kvtml168
-rw-r--r--klatin/klatin/data/vocab/en/I2L.kvtml184
-rw-r--r--klatin/klatin/data/vocab/en/M.kvtml124
-rw-r--r--klatin/klatin/data/vocab/en/Makefile.am3
-rw-r--r--klatin/klatin/data/vocab/en/N.kvtml152
-rw-r--r--klatin/klatin/data/vocab/en/OP1.kvtml140
-rw-r--r--klatin/klatin/data/vocab/en/P2.kvtml148
-rw-r--r--klatin/klatin/data/vocab/en/QR.kvtml144
-rw-r--r--klatin/klatin/data/vocab/en/S.kvtml220
-rw-r--r--klatin/klatin/data/vocab/en/TU.kvtml160
-rw-r--r--klatin/klatin/data/vocab/en/V.kvtml120
-rw-r--r--klatin/klatin/data/vocab/pl/A.kvtml192
-rw-r--r--klatin/klatin/data/vocab/pl/BC.kvtml224
-rw-r--r--klatin/klatin/data/vocab/pl/D.kvtml128
-rw-r--r--klatin/klatin/data/vocab/pl/EF.kvtml168
-rw-r--r--klatin/klatin/data/vocab/pl/GHI1.kvtml168
-rw-r--r--klatin/klatin/data/vocab/pl/I2L.kvtml184
-rw-r--r--klatin/klatin/data/vocab/pl/M.kvtml124
-rw-r--r--klatin/klatin/data/vocab/pl/Makefile.am3
-rw-r--r--klatin/klatin/data/vocab/pl/N.kvtml152
-rw-r--r--klatin/klatin/data/vocab/pl/OP1.kvtml140
-rw-r--r--klatin/klatin/data/vocab/pl/P2.kvtml148
-rw-r--r--klatin/klatin/data/vocab/pl/QR.kvtml144
-rw-r--r--klatin/klatin/data/vocab/pl/S.kvtml220
-rw-r--r--klatin/klatin/data/vocab/pl/TU.kvtml160
-rw-r--r--klatin/klatin/data/vocab/pl/V.kvtml120
-rw-r--r--klatin/klatin/data/vocab/sk/A.kvtml192
-rw-r--r--klatin/klatin/data/vocab/sk/BC.kvtml224
-rw-r--r--klatin/klatin/data/vocab/sk/D.kvtml128
-rw-r--r--klatin/klatin/data/vocab/sk/EF.kvtml168
-rw-r--r--klatin/klatin/data/vocab/sk/GHI1.kvtml168
-rw-r--r--klatin/klatin/data/vocab/sk/I2L.kvtml184
-rw-r--r--klatin/klatin/data/vocab/sk/M.kvtml124
-rw-r--r--klatin/klatin/data/vocab/sk/N.kvtml152
-rw-r--r--klatin/klatin/data/vocab/sk/OP1.kvtml140
-rw-r--r--klatin/klatin/data/vocab/sk/P2.kvtml147
-rw-r--r--klatin/klatin/data/vocab/sk/QR.kvtml144
-rw-r--r--klatin/klatin/data/vocab/sk/S.kvtml220
-rw-r--r--klatin/klatin/data/vocab/sk/TU.kvtml160
-rw-r--r--klatin/klatin/data/vocab/sk/V.kvtml120
-rw-r--r--klatin/klatin/icons/Makefile.am1
-rw-r--r--klatin/klatin/icons/hi128-app-klatin.pngbin0 -> 3448 bytes
-rw-r--r--klatin/klatin/icons/hi16-app-klatin.pngbin0 -> 589 bytes
-rw-r--r--klatin/klatin/icons/hi22-app-klatin.pngbin0 -> 727 bytes
-rw-r--r--klatin/klatin/icons/hi32-app-klatin.pngbin0 -> 1046 bytes
-rw-r--r--klatin/klatin/icons/hi48-app-klatin.pngbin0 -> 1386 bytes
-rw-r--r--klatin/klatin/icons/hi64-app-klatin.pngbin0 -> 1880 bytes
-rw-r--r--klatin/klatin/icons/hisc-app-klatin.svgzbin0 -> 2027 bytes
-rw-r--r--klatin/klatin/keduvocdata.h49
-rw-r--r--klatin/klatin/klatin.cpp217
-rw-r--r--klatin/klatin/klatin.desktop125
-rw-r--r--klatin/klatin/klatin.h93
-rw-r--r--klatin/klatin/klatin.kcfg59
-rw-r--r--klatin/klatin/klatinchoose.ui264
-rw-r--r--klatin/klatin/klatingrammar.cpp243
-rw-r--r--klatin/klatin/klatingrammar.h63
-rw-r--r--klatin/klatin/klatingrammarwidget.ui382
-rw-r--r--klatin/klatin/klatinresultsdialog.ui223
-rw-r--r--klatin/klatin/klatinsettings_vocabpage.ui181
-rw-r--r--klatin/klatin/klatinui.rc12
-rw-r--r--klatin/klatin/klatinverbs.cpp272
-rw-r--r--klatin/klatin/klatinverbs.h83
-rw-r--r--klatin/klatin/klatinverbswidget.ui426
-rw-r--r--klatin/klatin/klatinvocab.cpp398
-rw-r--r--klatin/klatin/klatinvocab.h110
-rw-r--r--klatin/klatin/klatinvocabwidget.ui392
-rw-r--r--klatin/klatin/main.cpp62
-rw-r--r--klatin/klatin/settings.kcfgc5
126 files changed, 15965 insertions, 0 deletions
diff --git a/klatin/AUTHORS b/klatin/AUTHORS
new file mode 100644
index 00000000..eddaf195
--- /dev/null
+++ b/klatin/AUTHORS
@@ -0,0 +1 @@
+George Wright <george.wright@kdemail.net>
diff --git a/klatin/COPYING b/klatin/COPYING
new file mode 100644
index 00000000..37ba36f1
--- /dev/null
+++ b/klatin/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/klatin/ChangeLog b/klatin/ChangeLog
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/klatin/ChangeLog
diff --git a/klatin/INSTALL b/klatin/INSTALL
new file mode 100644
index 00000000..02a4a074
--- /dev/null
+++ b/klatin/INSTALL
@@ -0,0 +1,167 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes a while. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 4. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made.
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
+
diff --git a/klatin/Makefile.am b/klatin/Makefile.am
new file mode 100644
index 00000000..7b9d8819
--- /dev/null
+++ b/klatin/Makefile.am
@@ -0,0 +1,11 @@
+####### kdevelop will overwrite this part!!! (begin)##########
+
+# po and doc do not exist. autmake 1.5 does not accept not existing pathes
+SUBDIRS = klatin
+
+EXTRA_DIST = AUTHORS COPYING ChangeLog INSTALL README TODO klatin.lsm
+
+AUTOMAKE_OPTIONS = foreign
+
+
+include ../admin/Doxyfile.am
diff --git a/klatin/README b/klatin/README
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/klatin/README
@@ -0,0 +1 @@
+
diff --git a/klatin/TODO b/klatin/TODO
new file mode 100644
index 00000000..564fcd38
--- /dev/null
+++ b/klatin/TODO
@@ -0,0 +1,3 @@
+Add subjunctive verb listings to the revision notes (verbs section)
+
+Add a way to allow the user to add Grammar and Verbs data
diff --git a/klatin/klatin.lsm b/klatin/klatin.lsm
new file mode 100644
index 00000000..52ec73ab
--- /dev/null
+++ b/klatin/klatin.lsm
@@ -0,0 +1,14 @@
+Begin4
+Title: KLatin -- An educational program to help revise/learn Latin
+Version: 1.0
+Entered-date: 2003-08-19
+Description:
+Keywords: KDE3 Qt
+Author: George Wright <gwright@users.sourceforge.net>
+Maintained-by: George Wright <gwright@users.sourceforge.net>
+Home-page:
+Alternate-site:
+Primary-site: http://edu.kde.org/klatin
+Platform: Linux. Needs KDE 3.1 or higher
+Copying-policy: GPL
+End
diff --git a/klatin/klatin/Makefile.am b/klatin/klatin/Makefile.am
new file mode 100644
index 00000000..048d3c7f
--- /dev/null
+++ b/klatin/klatin/Makefile.am
@@ -0,0 +1,40 @@
+## Makefile.am for klatin
+
+# this has all of the subdirectories that make will recurse into. if
+# there are none, comment this out
+SUBDIRS = . data icons
+
+# this is the program that gets installed. it's name is used for all
+# of the other Makefile.am variables
+bin_PROGRAMS = klatin
+
+# set the include path for X, qt and KDE
+INCLUDES = $(all_includes)
+
+# the library search path.
+klatin_LDFLAGS = $(KDE_RPATH) $(all_libraries)
+
+# the libraries to link against.
+klatin_LDADD = $(LIB_KFILE) $(top_builddir)/libkdeedu/kdeeducore/libkdeeducore.la
+
+# which sources should be compiled for klatin
+klatin_SOURCES = main.cpp klatin.cpp klatingrammar.cpp klatinverbs.cpp klatinvocab.cpp \
+ klatinchoose.ui settings.kcfgc klatingrammarwidget.ui klatinvocabwidget.ui klatinverbswidget.ui \
+ klatinresultsdialog.ui klatinsettings_vocabpage.ui
+
+# these are the headers for your project
+noinst_HEADERS = klatin.h klatinverbs.h klatinvocab.h klatingrammar.h
+
+# let automoc handle all of the meta source files (moc)
+METASOURCES = AUTO
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/klatin.pot
+
+xdg_apps_DATA = klatin.desktop
+kde_kcfg_DATA = klatin.kcfg
+
+# this is where the XML-GUI resource file goes
+rcdir = $(kde_datadir)/klatin
+rc_DATA = klatinui.rc
+
diff --git a/klatin/klatin/data/Makefile.am b/klatin/klatin/data/Makefile.am
new file mode 100644
index 00000000..92cc07c9
--- /dev/null
+++ b/klatin/klatin/data/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = . vocab grammar verbs \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/Makefile.am b/klatin/klatin/data/grammar/Makefile.am
new file mode 100644
index 00000000..0b4f3bf8
--- /dev/null
+++ b/klatin/klatin/data/grammar/Makefile.am
@@ -0,0 +1,2 @@
+grammardir = $(kde_datadir)/klatin/data/grammar
+grammar_DATA = puella.klat servus.klat bellum.klat rex.klat opus.klat gradus.klat genu.klat res.klat \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/bellum.klat b/klatin/klatin/data/grammar/bellum.klat
new file mode 100644
index 00000000..8f600ffc
--- /dev/null
+++ b/klatin/klatin/data/grammar/bellum.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>bellum</o>
+</e>
+<e>
+<o>bellum</o>
+</e>
+<e>
+<o>bellum</o>
+</e>
+<e>
+<o>belli</o>
+</e>
+<e>
+<o>bello</o>
+</e>
+<e>
+<o>bello</o>
+</e>
+<e>
+<o>bella</o>
+</e>
+<e>
+<o>bella</o>
+</e>
+<e>
+<o>bella</o>
+</e>
+<e>
+<o>bellorum</o>
+</e>
+<e>
+<o>bellis</o>
+</e>
+<e>
+<o>bellis</o>
+</e>
+</kvtml> \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/genu.klat b/klatin/klatin/data/grammar/genu.klat
new file mode 100644
index 00000000..adcf1553
--- /dev/null
+++ b/klatin/klatin/data/grammar/genu.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>genu</o>
+</e>
+<e>
+<o>genu</o>
+</e>
+<e>
+<o>genu</o>
+</e>
+<e>
+<o>genus</o>
+</e>
+<e>
+<o>genu</o>
+</e>
+<e>
+<o>genu</o>
+</e>
+<e>
+<o>genua</o>
+</e>
+<e>
+<o>genua</o>
+</e>
+<e>
+<o>genua</o>
+</e>
+<e>
+<o>genuum</o>
+</e>
+<e>
+<o>genibus</o>
+</e>
+<e>
+<o>genibus</o>
+</e>
+</kvtml> \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/gradus.klat b/klatin/klatin/data/grammar/gradus.klat
new file mode 100644
index 00000000..d0b598fe
--- /dev/null
+++ b/klatin/klatin/data/grammar/gradus.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>gradus</o>
+</e>
+<e>
+<o>gradus</o>
+</e>
+<e>
+<o>gradum</o>
+</e>
+<e>
+<o>gradus</o>
+</e>
+<e>
+<o>gradui</o>
+</e>
+<e>
+<o>gradu</o>
+</e>
+<e>
+<o>gradus</o>
+</e>
+<e>
+<o>gradus</o>
+</e>
+<e>
+<o>gradus</o>
+</e>
+<e>
+<o>graduum</o>
+</e>
+<e>
+<o>gradibus</o>
+</e>
+<e>
+<o>gradibus</o>
+</e>
+</kvtml> \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/opus.klat b/klatin/klatin/data/grammar/opus.klat
new file mode 100644
index 00000000..1af36a98
--- /dev/null
+++ b/klatin/klatin/data/grammar/opus.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>opus</o>
+</e>
+<e>
+<o>opus</o>
+</e>
+<e>
+<o>opus</o>
+</e>
+<e>
+<o>operis</o>
+</e>
+<e>
+<o>operi</o>
+</e>
+<e>
+<o>opere</o>
+</e>
+<e>
+<o>opera</o>
+</e>
+<e>
+<o>opera</o>
+</e>
+<e>
+<o>opera</o>
+</e>
+<e>
+<o>operum</o>
+</e>
+<e>
+<o>operibus</o>
+</e>
+<e>
+<o>operibus</o>
+</e>
+</kvtml> \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/puella.klat b/klatin/klatin/data/grammar/puella.klat
new file mode 100644
index 00000000..c379afe6
--- /dev/null
+++ b/klatin/klatin/data/grammar/puella.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>puella</o>
+</e>
+<e>
+<o>puella</o>
+</e>
+<e>
+<o>puellam</o>
+</e>
+<e>
+<o>puellae</o>
+</e>
+<e>
+<o>puellae</o>
+</e>
+<e>
+<o>puella</o>
+</e>
+<e>
+<o>puellae</o>
+</e>
+<e>
+<o>puellae</o>
+</e>
+<e>
+<o>puellas</o>
+</e>
+<e>
+<o>puellarum</o>
+</e>
+<e>
+<o>puellis</o>
+</e>
+<e>
+<o>puellis</o>
+</e>
+</kvtml> \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/res.klat b/klatin/klatin/data/grammar/res.klat
new file mode 100644
index 00000000..4f4f5a59
--- /dev/null
+++ b/klatin/klatin/data/grammar/res.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>res</o>
+</e>
+<e>
+<o>res</o>
+</e>
+<e>
+<o>rem</o>
+</e>
+<e>
+<o>rei</o>
+</e>
+<e>
+<o>rei</o>
+</e>
+<e>
+<o>re</o>
+</e>
+<e>
+<o>res</o>
+</e>
+<e>
+<o>res</o>
+</e>
+<e>
+<o>res</o>
+</e>
+<e>
+<o>rerum</o>
+</e>
+<e>
+<o>rebus</o>
+</e>
+<e>
+<o>rebus</o>
+</e>
+</kvtml>
diff --git a/klatin/klatin/data/grammar/rex.klat b/klatin/klatin/data/grammar/rex.klat
new file mode 100644
index 00000000..41a81e05
--- /dev/null
+++ b/klatin/klatin/data/grammar/rex.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>rex</o>
+</e>
+<e>
+<o>rex</o>
+</e>
+<e>
+<o>regem</o>
+</e>
+<e>
+<o>regis</o>
+</e>
+<e>
+<o>regi</o>
+</e>
+<e>
+<o>rege</o>
+</e>
+<e>
+<o>reges</o>
+</e>
+<e>
+<o>reges</o>
+</e>
+<e>
+<o>reges</o>
+</e>
+<e>
+<o>regum</o>
+</e>
+<e>
+<o>regibus</o>
+</e>
+<e>
+<o>regibus</o>
+</e>
+</kvtml> \ No newline at end of file
diff --git a/klatin/klatin/data/grammar/servus.klat b/klatin/klatin/data/grammar/servus.klat
new file mode 100644
index 00000000..1bb6a4b0
--- /dev/null
+++ b/klatin/klatin/data/grammar/servus.klat
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+<e>
+<o>servus</o>
+</e>
+<e>
+<o>serve</o>
+</e>
+<e>
+<o>servum</o>
+</e>
+<e>
+<o>servi</o>
+</e>
+<e>
+<o>servo</o>
+</e>
+<e>
+<o>servo</o>
+</e>
+<e>
+<o>servi</o>
+</e>
+<e>
+<o>servi</o>
+</e>
+<e>
+<o>servos</o>
+</e>
+<e>
+<o>servorum</o>
+</e>
+<e>
+<o>servis</o>
+</e>
+<e>
+<o>servis</o>
+</e>
+</kvtml> \ No newline at end of file
diff --git a/klatin/klatin/data/verbs/Makefile.am b/klatin/klatin/data/verbs/Makefile.am
new file mode 100644
index 00000000..75d2dc9c
--- /dev/null
+++ b/klatin/klatin/data/verbs/Makefile.am
@@ -0,0 +1,6 @@
+verbsdir = $(kde_datadir)/klatin/data/verbs
+verbs_DATA = amo-indicative-active.klat amo-indicative-passive.klat amo-subjunctive-active.klat amo-subjunctive-passive.klat \
+moneo-indicative-active.klat moneo-indicative-passive.klat moneo-subjunctive-active.klat moneo-subjunctive-passive.klat \
+rego-indicative-active.klat rego-indicative-passive.klat rego-subjunctive-active.klat rego-subjunctive-passive.klat \
+audio-indicative-active.klat audio-indicative-passive.klat audio-subjunctive-active.klat audio-subjunctive-passive.klat \
+sum-indicative-active.klat sum-subjunctive-active.klat
diff --git a/klatin/klatin/data/verbs/amo-indicative-active.klat b/klatin/klatin/data/verbs/amo-indicative-active.klat
new file mode 100644
index 00000000..bb7379f3
--- /dev/null
+++ b/klatin/klatin/data/verbs/amo-indicative-active.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>amo</o>
+ <t>amo</t>
+ </e>
+ <e>
+ <o>amas</o>
+ <t>amas</t>
+ </e>
+ <e>
+ <o>amat</o>
+ <t>amat</t>
+ </e>
+ <e>
+ <o>amamus</o>
+ <t>amamus</t>
+ </e>
+ <e>
+ <o>amatis</o>
+ <t>amatis</t>
+ </e>
+ <e>
+ <o>amant</o>
+ <t>amant</t>
+ </e>
+ <e>
+ <o>amabo</o>
+ <t>amabo</t>
+ </e>
+ <e>
+ <o>amabis</o>
+ <t>amabit</t>
+ </e>
+ <e>
+ <o>amabit</o>
+ <t>amabit</t>
+ </e>
+ <e>
+ <o>amabimus</o>
+ <t>amabimus</t>
+ </e>
+ <e>
+ <o>amabitis</o>
+ <t>amabitis</t>
+ </e>
+ <e>
+ <o>amabunt</o>
+ <t>amabunt</t>
+ </e>
+ <e>
+ <o>amabam</o>
+ <t>amabam</t>
+ </e>
+ <e>
+ <o>amabas</o>
+ <t>amabas</t>
+ </e>
+ <e>
+ <o>amabat</o>
+ <t>amabat</t>
+ </e>
+ <e>
+ <o>amabamus</o>
+ <t>amabamus</t>
+ </e>
+ <e>
+ <o>amabatis</o>
+ <t>amabatis</t>
+ </e>
+ <e>
+ <o>amabant</o>
+ <t>amabant</t>
+ </e>
+ <e>
+ <o>amavi</o>
+ <t>amavi</t>
+ </e>
+ <e>
+ <o>amavisti</o>
+ <t>amavisti</t>
+ </e>
+ <e>
+ <o>amavit</o>
+ <t>amavit</t>
+ </e>
+ <e>
+ <o>amavimus</o>
+ <t>amavimus</t>
+ </e>
+ <e>
+ <o>amavistis</o>
+ <t>amavistis</t>
+ </e>
+ <e>
+ <o>amaverunt</o>
+ <t>amaverunt</t>
+ </e>
+ <e>
+ <o>amaveram</o>
+ <t>amaveram</t>
+ </e>
+ <e>
+ <o>amaveras</o>
+ <t>amaveras</t>
+ </e>
+ <e>
+ <o>amaverat</o>
+ <t>amaverat</t>
+ </e>
+ <e>
+ <o>amaveramus</o>
+ <t>amaveramus</t>
+ </e>
+ <e>
+ <o>amaveratis</o>
+ <t>amaveratis</t>
+ </e>
+ <e>
+ <o>amaverant</o>
+ <t>amaverant</t>
+ </e>
+ <e>
+ <o>amavero</o>
+ <t>amavero</t>
+ </e>
+ <e>
+ <o>amaveris</o>
+ <t>amaveris</t>
+ </e>
+ <e>
+ <o>amaverit</o>
+ <t>amaverit</t>
+ </e>
+ <e>
+ <o>amaverimus</o>
+ <t>amaverimus</t>
+ </e>
+ <e>
+ <o>amaveritis</o>
+ <t>amaveritis</t>
+ </e>
+ <e>
+ <o>amaverint</o>
+ <t>amaverint</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/amo-indicative-passive.klat b/klatin/klatin/data/verbs/amo-indicative-passive.klat
new file mode 100644
index 00000000..3789b3f4
--- /dev/null
+++ b/klatin/klatin/data/verbs/amo-indicative-passive.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>amor</o>
+ <t>amor</t>
+ </e>
+ <e>
+ <o>amaris</o>
+ <t>amaris</t>
+ </e>
+ <e>
+ <o>amatur</o>
+ <t>amatur</t>
+ </e>
+ <e>
+ <o>amamur</o>
+ <t>amamur</t>
+ </e>
+ <e>
+ <o>amamini</o>
+ <t>amamini</t>
+ </e>
+ <e>
+ <o>amantur</o>
+ <t>amantur</t>
+ </e>
+ <e>
+ <o>amabor</o>
+ <t>amabor</t>
+ </e>
+ <e>
+ <o>amaberis</o>
+ <t>amaberis</t>
+ </e>
+ <e>
+ <o>amabitur</o>
+ <t>amabitur</t>
+ </e>
+ <e>
+ <o>amabimur</o>
+ <t>amabimur</t>
+ </e>
+ <e>
+ <o>amabimini</o>
+ <t>amabimini</t>
+ </e>
+ <e>
+ <o>amabuntur</o>
+ <t>amabuntur</t>
+ </e>
+ <e>
+ <o>amabar</o>
+ <t>amabar</t>
+ </e>
+ <e>
+ <o>amabaris</o>
+ <t>amabaris</t>
+ </e>
+ <e>
+ <o>amabatur</o>
+ <t>amabatur</t>
+ </e>
+ <e>
+ <o>amabamur</o>
+ <t>amabamur</t>
+ </e>
+ <e>
+ <o>amabamini</o>
+ <t>amabamini</t>
+ </e>
+ <e>
+ <o>amabantur</o>
+ <t>amabantur</t>
+ </e>
+ <e>
+ <o>amatus sum</o>
+ <t>amatus sum</t>
+ </e>
+ <e>
+ <o>amatus es</o>
+ <t>amatus es</t>
+ </e>
+ <e>
+ <o>amatus est</o>
+ <t>amatus est</t>
+ </e>
+ <e>
+ <o>amati sumus</o>
+ <t>amati sumus</t>
+ </e>
+ <e>
+ <o>amati estis</o>
+ <t>amati estis</t>
+ </e>
+ <e>
+ <o>amati sunt</o>
+ <t>amati sunt</t>
+ </e>
+ <e>
+ <o>amatus eram</o>
+ <t>amatus eram</t>
+ </e>
+ <e>
+ <o>amatus eras</o>
+ <t>amatus eras</t>
+ </e>
+ <e>
+ <o>amatus erat</o>
+ <t>amatus erat</t>
+ </e>
+ <e>
+ <o>amati eramus</o>
+ <t>amati eramus</t>
+ </e>
+ <e>
+ <o>amati eratis</o>
+ <t>amati eratis</t>
+ </e>
+ <e>
+ <o>amati erant</o>
+ <t>amati erant</t>
+ </e>
+ <e>
+ <o>amatus ero</o>
+ <t>amatus ero</t>
+ </e>
+ <e>
+ <o>amatus eris</o>
+ <t>amatus eris</t>
+ </e>
+ <e>
+ <o>amatus erit</o>
+ <t>amatus erit</t>
+ </e>
+ <e>
+ <o>amati erimus</o>
+ <t>amati erimus</t>
+ </e>
+ <e>
+ <o>amati eritis</o>
+ <t>amati eritis</t>
+ </e>
+ <e>
+ <o>amati erunt</o>
+ <t>amati erunt</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/amo-subjunctive-active.klat b/klatin/klatin/data/verbs/amo-subjunctive-active.klat
new file mode 100644
index 00000000..2710602c
--- /dev/null
+++ b/klatin/klatin/data/verbs/amo-subjunctive-active.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>amem</o>
+ <t>amem</t>
+ </e>
+ <e>
+ <o>ames</o>
+ <t>ames</t>
+ </e>
+ <e>
+ <o>amet</o>
+ <t>amet</t>
+ </e>
+ <e>
+ <o>amemus</o>
+ <t>amemus</t>
+ </e>
+ <e>
+ <o>ametis</o>
+ <t>ametis</t>
+ </e>
+ <e>
+ <o>ament</o>
+ <t>ament</t>
+ </e>
+ <e>
+ <o>amarem</o>
+ <t>amarem</t>
+ </e>
+ <e>
+ <o>amares</o>
+ <t>amares</t>
+ </e>
+ <e>
+ <o>amaret</o>
+ <t>amaret</t>
+ </e>
+ <e>
+ <o>amaremus</o>
+ <t>amaremus</t>
+ </e>
+ <e>
+ <o>amaretis</o>
+ <t>amaretis</t>
+ </e>
+ <e>
+ <o>amarent</o>
+ <t>amarent</t>
+ </e>
+ <e>
+ <o>amaverim</o>
+ <t>amaverim</t>
+ </e>
+ <e>
+ <o>amaveris</o>
+ <t>amaveris</t>
+ </e>
+ <e>
+ <o>amaverit</o>
+ <t>amaverit</t>
+ </e>
+ <e>
+ <o>amaverimus</o>
+ <t>amaverimus</t>
+ </e>
+ <e>
+ <o>amaveritis</o>
+ <t>amaveritis</t>
+ </e>
+ <e>
+ <o>amaverint</o>
+ <t>amaverint</t>
+ </e>
+ <e>
+ <o>amavissem</o>
+ <t>amavissem</t>
+ </e>
+ <e>
+ <o>amavisses</o>
+ <t>amavisses</t>
+ </e>
+ <e>
+ <o>amavisset</o>
+ <t>amavisset</t>
+ </e>
+ <e>
+ <o>amavissemus</o>
+ <t>amavissemus</t>
+ </e>
+ <e>
+ <o>amavissetis</o>
+ <t>amavissetis</t>
+ </e>
+ <e>
+ <o>amavissent</o>
+ <t>amavissent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/amo-subjunctive-passive.klat b/klatin/klatin/data/verbs/amo-subjunctive-passive.klat
new file mode 100644
index 00000000..78940ebf
--- /dev/null
+++ b/klatin/klatin/data/verbs/amo-subjunctive-passive.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>amer</o>
+ <t>amer</t>
+ </e>
+ <e>
+ <o>ameris</o>
+ <t>ameris</t>
+ </e>
+ <e>
+ <o>ametur</o>
+ <t>ametur</t>
+ </e>
+ <e>
+ <o>amemur</o>
+ <t>amemur</t>
+ </e>
+ <e>
+ <o>amemini</o>
+ <t>amemini</t>
+ </e>
+ <e>
+ <o>amentur</o>
+ <t>amentur</t>
+ </e>
+ <e>
+ <o>amarer</o>
+ <t>amarer</t>
+ </e>
+ <e>
+ <o>amareris</o>
+ <t>amareris</t>
+ </e>
+ <e>
+ <o>amaretur</o>
+ <t>amaretur</t>
+ </e>
+ <e>
+ <o>amaremur</o>
+ <t>amaremur</t>
+ </e>
+ <e>
+ <o>amaremini</o>
+ <t>amaremini</t>
+ </e>
+ <e>
+ <o>amarentur</o>
+ <t>amarentur</t>
+ </e>
+ <e>
+ <o>amatus sim</o>
+ <t>amatus sim</t>
+ </e>
+ <e>
+ <o>amatus sis</o>
+ <t>amatus sis</t>
+ </e>
+ <e>
+ <o>amatus sit</o>
+ <t>amatus sit</t>
+ </e>
+ <e>
+ <o>amati simus</o>
+ <t>amati simus</t>
+ </e>
+ <e>
+ <o>amati sitis</o>
+ <t>amati sitis</t>
+ </e>
+ <e>
+ <o>amati sint</o>
+ <t>amati sint</t>
+ </e>
+ <e>
+ <o>amatus essem</o>
+ <t>amatus essem</t>
+ </e>
+ <e>
+ <o>amatus esses</o>
+ <t>amatus esses</t>
+ </e>
+ <e>
+ <o>amatus esset</o>
+ <t>amatus esset</t>
+ </e>
+ <e>
+ <o>amati essemus</o>
+ <t>amati essemus</t>
+ </e>
+ <e>
+ <o>amati essetis</o>
+ <t>amati essetis</t>
+ </e>
+ <e>
+ <o>amati essent</o>
+ <t>amati essent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/audio-indicative-active.klat b/klatin/klatin/data/verbs/audio-indicative-active.klat
new file mode 100644
index 00000000..a140c01e
--- /dev/null
+++ b/klatin/klatin/data/verbs/audio-indicative-active.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>audio</o>
+ <t>audio</t>
+ </e>
+ <e>
+ <o>audis</o>
+ <t>audis</t>
+ </e>
+ <e>
+ <o>audit</o>
+ <t>audit</t>
+ </e>
+ <e>
+ <o>audimus</o>
+ <t>audimus</t>
+ </e>
+ <e>
+ <o>auditis</o>
+ <t>auditis</t>
+ </e>
+ <e>
+ <o>audiunt</o>
+ <t>audiunt</t>
+ </e>
+ <e>
+ <o>audiam</o>
+ <t>audiam</t>
+ </e>
+ <e>
+ <o>audies</o>
+ <t>audies</t>
+ </e>
+ <e>
+ <o>audiet</o>
+ <t>audiet</t>
+ </e>
+ <e>
+ <o>audiemus</o>
+ <t>audiemus</t>
+ </e>
+ <e>
+ <o>audietis</o>
+ <t>audietis</t>
+ </e>
+ <e>
+ <o>audient</o>
+ <t>audient</t>
+ </e>
+ <e>
+ <o>audibam</o>
+ <t>audibam</t>
+ </e>
+ <e>
+ <o>audibas</o>
+ <t>audibas</t>
+ </e>
+ <e>
+ <o>audibat</o>
+ <t>audibat</t>
+ </e>
+ <e>
+ <o>audibamus</o>
+ <t>audibamus</t>
+ </e>
+ <e>
+ <o>audibatis</o>
+ <t>audibatis</t>
+ </e>
+ <e>
+ <o>audibant</o>
+ <t>audibant</t>
+ </e>
+ <e>
+ <o>audivi</o>
+ <t>audivi</t>
+ </e>
+ <e>
+ <o>audivisti</o>
+ <t>audivisti</t>
+ </e>
+ <e>
+ <o>audivit</o>
+ <t>audivit</t>
+ </e>
+ <e>
+ <o>audivimus</o>
+ <t>audivimus</t>
+ </e>
+ <e>
+ <o>audivistis</o>
+ <t>audivistis</t>
+ </e>
+ <e>
+ <o>audiverunt</o>
+ <t>audiverunt</t>
+ </e>
+ <e>
+ <o>audiveram</o>
+ <t>audiveram</t>
+ </e>
+ <e>
+ <o>audiveras</o>
+ <t>audiveras</t>
+ </e>
+ <e>
+ <o>audiverat</o>
+ <t>audiverat</t>
+ </e>
+ <e>
+ <o>audiveramus</o>
+ <t>audiveramus</t>
+ </e>
+ <e>
+ <o>audiveratis</o>
+ <t>audiveratis</t>
+ </e>
+ <e>
+ <o>audiverant</o>
+ <t>audiverant</t>
+ </e>
+ <e>
+ <o>audivero</o>
+ <t>audivero</t>
+ </e>
+ <e>
+ <o>audiveris</o>
+ <t>audiveris</t>
+ </e>
+ <e>
+ <o>audiverit</o>
+ <t>audiverit</t>
+ </e>
+ <e>
+ <o>audiverimus</o>
+ <t>audiverimus</t>
+ </e>
+ <e>
+ <o>audiveritis</o>
+ <t>audiveritis</t>
+ </e>
+ <e>
+ <o>audiverint</o>
+ <t>audiverint</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/audio-indicative-passive.klat b/klatin/klatin/data/verbs/audio-indicative-passive.klat
new file mode 100644
index 00000000..be6f9d10
--- /dev/null
+++ b/klatin/klatin/data/verbs/audio-indicative-passive.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>audior</o>
+ <t>audior</t>
+ </e>
+ <e>
+ <o>audieris</o>
+ <t>audieris</t>
+ </e>
+ <e>
+ <o>auditur</o>
+ <t>auditur</t>
+ </e>
+ <e>
+ <o>audimur</o>
+ <t>audimur</t>
+ </e>
+ <e>
+ <o>audimini</o>
+ <t>audimini</t>
+ </e>
+ <e>
+ <o>audiunt</o>
+ <t>audiunt</t>
+ </e>
+ <e>
+ <o>audiar</o>
+ <t>audiar</t>
+ </e>
+ <e>
+ <o>audieris</o>
+ <t>audieris</t>
+ </e>
+ <e>
+ <o>audietur</o>
+ <t>audietur</t>
+ </e>
+ <e>
+ <o>audiemur</o>
+ <t>audiemur</t>
+ </e>
+ <e>
+ <o>audiemini</o>
+ <t>audiemini</t>
+ </e>
+ <e>
+ <o>audientur</o>
+ <t>audientur</t>
+ </e>
+ <e>
+ <o>audiebar</o>
+ <t>audiebar</t>
+ </e>
+ <e>
+ <o>audiebaris</o>
+ <t>audiebaris</t>
+ </e>
+ <e>
+ <o>audiebatur</o>
+ <t>audiebatur</t>
+ </e>
+ <e>
+ <o>audiebamur</o>
+ <t>audiebamur</t>
+ </e>
+ <e>
+ <o>audiebamini</o>
+ <t>audiebamini</t>
+ </e>
+ <e>
+ <o>audiebantur</o>
+ <t>audiebantur</t>
+ </e>
+ <e>
+ <o>auditus sum</o>
+ <t>auditus sum</t>
+ </e>
+ <e>
+ <o>auditus es</o>
+ <t>auditus es</t>
+ </e>
+ <e>
+ <o>auditus est</o>
+ <t>auditus est</t>
+ </e>
+ <e>
+ <o>auditi sumus</o>
+ <t>auditi sumus</t>
+ </e>
+ <e>
+ <o>auditi estis</o>
+ <t>auditi estis</t>
+ </e>
+ <e>
+ <o>auditi sunt</o>
+ <t>auditi sunt</t>
+ </e>
+ <e>
+ <o>auditus eram</o>
+ <t>auditus eram</t>
+ </e>
+ <e>
+ <o>auditus eras</o>
+ <t>auditus eras</t>
+ </e>
+ <e>
+ <o>auditus erat</o>
+ <t>auditus erat</t>
+ </e>
+ <e>
+ <o>auditi eramus</o>
+ <t>auditi eramus</t>
+ </e>
+ <e>
+ <o>auditi eratis</o>
+ <t>auditi eratis</t>
+ </e>
+ <e>
+ <o>auditi erant</o>
+ <t>auditi erant</t>
+ </e>
+ <e>
+ <o>auditus ero</o>
+ <t>auditus ero</t>
+ </e>
+ <e>
+ <o>auditus eris</o>
+ <t>auditus eris</t>
+ </e>
+ <e>
+ <o>auditus erit</o>
+ <t>auditus erit</t>
+ </e>
+ <e>
+ <o>auditi erimus</o>
+ <t>auditi erimus</t>
+ </e>
+ <e>
+ <o>auditi eritis</o>
+ <t>auditi eritis</t>
+ </e>
+ <e>
+ <o>auditi erunt</o>
+ <t>auditi erunt</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/audio-subjunctive-active.klat b/klatin/klatin/data/verbs/audio-subjunctive-active.klat
new file mode 100644
index 00000000..896ca98f
--- /dev/null
+++ b/klatin/klatin/data/verbs/audio-subjunctive-active.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>audiam</o>
+ <t>audiam</t>
+ </e>
+ <e>
+ <o>audias</o>
+ <t>audias</t>
+ </e>
+ <e>
+ <o>audiat</o>
+ <t>audiat</t>
+ </e>
+ <e>
+ <o>audiamus</o>
+ <t>audiamus</t>
+ </e>
+ <e>
+ <o>audiatis</o>
+ <t>audiatis</t>
+ </e>
+ <e>
+ <o>audiant</o>
+ <t>audiant</t>
+ </e>
+ <e>
+ <o>audirem</o>
+ <t>audirem</t>
+ </e>
+ <e>
+ <o>audires</o>
+ <t>audires</t>
+ </e>
+ <e>
+ <o>audiret</o>
+ <t>audiret</t>
+ </e>
+ <e>
+ <o>audiremus</o>
+ <t>audiremus</t>
+ </e>
+ <e>
+ <o>audiretis</o>
+ <t>audiretis</t>
+ </e>
+ <e>
+ <o>audirent</o>
+ <t>audirent</t>
+ </e>
+ <e>
+ <o>audiverim</o>
+ <t>audiverim</t>
+ </e>
+ <e>
+ <o>audiveris</o>
+ <t>audiveris</t>
+ </e>
+ <e>
+ <o>audiverit</o>
+ <t>audiverit</t>
+ </e>
+ <e>
+ <o>audiverimus</o>
+ <t>audiverimus</t>
+ </e>
+ <e>
+ <o>audiveritis</o>
+ <t>audiveritis</t>
+ </e>
+ <e>
+ <o>audiverint</o>
+ <t>audiverint</t>
+ </e>
+ <e>
+ <o>audivissem</o>
+ <t>audivissem</t>
+ </e>
+ <e>
+ <o>audivisses</o>
+ <t>audivisses</t>
+ </e>
+ <e>
+ <o>audivisset</o>
+ <t>audivisset</t>
+ </e>
+ <e>
+ <o>audivissemus</o>
+ <t>audivissemus</t>
+ </e>
+ <e>
+ <o>audivissetis</o>
+ <t>audivissetis</t>
+ </e>
+ <e>
+ <o>audivissent</o>
+ <t>audivissent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/audio-subjunctive-passive.klat b/klatin/klatin/data/verbs/audio-subjunctive-passive.klat
new file mode 100644
index 00000000..0a86c492
--- /dev/null
+++ b/klatin/klatin/data/verbs/audio-subjunctive-passive.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>audiar</o>
+ <t>audiar</t>
+ </e>
+ <e>
+ <o>audiaris</o>
+ <t>audiaris</t>
+ </e>
+ <e>
+ <o>audiatur</o>
+ <t>audiatur</t>
+ </e>
+ <e>
+ <o>audiamur</o>
+ <t>audiamur</t>
+ </e>
+ <e>
+ <o>audiamini</o>
+ <t>audiamini</t>
+ </e>
+ <e>
+ <o>audiantur</o>
+ <t>audiantur</t>
+ </e>
+ <e>
+ <o>audirer</o>
+ <t>audirer</t>
+ </e>
+ <e>
+ <o>audireris</o>
+ <t>audireris</t>
+ </e>
+ <e>
+ <o>audiretur</o>
+ <t>audiretur</t>
+ </e>
+ <e>
+ <o>audiremur</o>
+ <t>audiremur</t>
+ </e>
+ <e>
+ <o>audiremini</o>
+ <t>audiremini</t>
+ </e>
+ <e>
+ <o>audirentur</o>
+ <t>audirentur</t>
+ </e>
+ <e>
+ <o>auditus sim</o>
+ <t>auditus sim</t>
+ </e>
+ <e>
+ <o>auditus sis</o>
+ <t>auditus sis</t>
+ </e>
+ <e>
+ <o>auditus sit</o>
+ <t>auditus sit</t>
+ </e>
+ <e>
+ <o>auditi simus</o>
+ <t>auditi simus</t>
+ </e>
+ <e>
+ <o>auditi sitis</o>
+ <t>auditi sitis</t>
+ </e>
+ <e>
+ <o>auditi sint</o>
+ <t>auditi sint</t>
+ </e>
+ <e>
+ <o>auditus essem</o>
+ <t>auditus essem</t>
+ </e>
+ <e>
+ <o>auditus esses</o>
+ <t>auditus esses</t>
+ </e>
+ <e>
+ <o>auditus esset</o>
+ <t>auditus esset</t>
+ </e>
+ <e>
+ <o>auditi essemus</o>
+ <t>auditi essemus</t>
+ </e>
+ <e>
+ <o>auditi essetis</o>
+ <t>auditi essetis</t>
+ </e>
+ <e>
+ <o>auditi essent</o>
+ <t>auditi essent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/moneo-indicative-active.klat b/klatin/klatin/data/verbs/moneo-indicative-active.klat
new file mode 100644
index 00000000..e6f4f70f
--- /dev/null
+++ b/klatin/klatin/data/verbs/moneo-indicative-active.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>moneo</o>
+ <t>moneo</t>
+ </e>
+ <e>
+ <o>mones</o>
+ <t>mones</t>
+ </e>
+ <e>
+ <o>monet</o>
+ <t>monet</t>
+ </e>
+ <e>
+ <o>monemus</o>
+ <t>monemus</t>
+ </e>
+ <e>
+ <o>monetis</o>
+ <t>monetis</t>
+ </e>
+ <e>
+ <o>monent</o>
+ <t>monent</t>
+ </e>
+ <e>
+ <o>monebo</o>
+ <t>monebo</t>
+ </e>
+ <e>
+ <o>monebis</o>
+ <t>monebis</t>
+ </e>
+ <e>
+ <o>monebit</o>
+ <t>monebit</t>
+ </e>
+ <e>
+ <o>monebimus</o>
+ <t>monebimus</t>
+ </e>
+ <e>
+ <o>monebitis</o>
+ <t>monebitis</t>
+ </e>
+ <e>
+ <o>monebunt</o>
+ <t>monebunt</t>
+ </e>
+ <e>
+ <o>monebam</o>
+ <t>monebam</t>
+ </e>
+ <e>
+ <o>monebas</o>
+ <t>monebas</t>
+ </e>
+ <e>
+ <o>monebat</o>
+ <t>monebat</t>
+ </e>
+ <e>
+ <o>monebamus</o>
+ <t>monebamus</t>
+ </e>
+ <e>
+ <o>monebatis</o>
+ <t>monebatis</t>
+ </e>
+ <e>
+ <o>monebant</o>
+ <t>monebant</t>
+ </e>
+ <e>
+ <o>monui</o>
+ <t>monui</t>
+ </e>
+ <e>
+ <o>monuisti</o>
+ <t>monuisti</t>
+ </e>
+ <e>
+ <o>monuit</o>
+ <t>monuit</t>
+ </e>
+ <e>
+ <o>monuimus</o>
+ <t>monuimus</t>
+ </e>
+ <e>
+ <o>monuistis</o>
+ <t>monuistis</t>
+ </e>
+ <e>
+ <o>monuerunt</o>
+ <t>monuerunt</t>
+ </e>
+ <e>
+ <o>monueram</o>
+ <t>monueram</t>
+ </e>
+ <e>
+ <o>monueras</o>
+ <t>monueras</t>
+ </e>
+ <e>
+ <o>monuerat</o>
+ <t>monuerat</t>
+ </e>
+ <e>
+ <o>monueramus</o>
+ <t>monueramus</t>
+ </e>
+ <e>
+ <o>monueratis</o>
+ <t>monueratis</t>
+ </e>
+ <e>
+ <o>monuerant</o>
+ <t>monuerant</t>
+ </e>
+ <e>
+ <o>monuero</o>
+ <t>monuero</t>
+ </e>
+ <e>
+ <o>monueris</o>
+ <t>monueris</t>
+ </e>
+ <e>
+ <o>monuerit</o>
+ <t>monuerit</t>
+ </e>
+ <e>
+ <o>monuerimus</o>
+ <t>monuerimus</t>
+ </e>
+ <e>
+ <o>monueritis</o>
+ <t>monueritis</t>
+ </e>
+ <e>
+ <o>monuerint</o>
+ <t>monuerint</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/moneo-indicative-passive.klat b/klatin/klatin/data/verbs/moneo-indicative-passive.klat
new file mode 100644
index 00000000..8b61f28e
--- /dev/null
+++ b/klatin/klatin/data/verbs/moneo-indicative-passive.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>moneor</o>
+ <t>moneor</t>
+ </e>
+ <e>
+ <o>moneris</o>
+ <t>moneris</t>
+ </e>
+ <e>
+ <o>monetur</o>
+ <t>monetur</t>
+ </e>
+ <e>
+ <o>monemur</o>
+ <t>monemur</t>
+ </e>
+ <e>
+ <o>monemini</o>
+ <t>monemini</t>
+ </e>
+ <e>
+ <o>monentur</o>
+ <t>monentur</t>
+ </e>
+ <e>
+ <o>monebor</o>
+ <t>monebor</t>
+ </e>
+ <e>
+ <o>moneberis</o>
+ <t>moneberis</t>
+ </e>
+ <e>
+ <o>monebitur</o>
+ <t>monebitur</t>
+ </e>
+ <e>
+ <o>monebimur</o>
+ <t>monebimur</t>
+ </e>
+ <e>
+ <o>monebimini</o>
+ <t>monebimini</t>
+ </e>
+ <e>
+ <o>monebuntur</o>
+ <t>monebuntur</t>
+ </e>
+ <e>
+ <o>monebar</o>
+ <t>monebar</t>
+ </e>
+ <e>
+ <o>monebaris</o>
+ <t>monebaris</t>
+ </e>
+ <e>
+ <o>monebatur</o>
+ <t>monebatur</t>
+ </e>
+ <e>
+ <o>monebamur</o>
+ <t>monebamur</t>
+ </e>
+ <e>
+ <o>monebamini</o>
+ <t>monebamini</t>
+ </e>
+ <e>
+ <o>monebantur</o>
+ <t>monebantur</t>
+ </e>
+ <e>
+ <o>monitus sum</o>
+ <t>monitus sum</t>
+ </e>
+ <e>
+ <o>monitus es</o>
+ <t>monitus es</t>
+ </e>
+ <e>
+ <o>monitus est</o>
+ <t>monitus est</t>
+ </e>
+ <e>
+ <o>moniti sumus</o>
+ <t>moniti sumus</t>
+ </e>
+ <e>
+ <o>moniti estis</o>
+ <t>moniti estis</t>
+ </e>
+ <e>
+ <o>moniti sunt</o>
+ <t>moniti sunt</t>
+ </e>
+ <e>
+ <o>monitus eram</o>
+ <t>monitus eram</t>
+ </e>
+ <e>
+ <o>monitus eras</o>
+ <t>monitus eras</t>
+ </e>
+ <e>
+ <o>monitus erat</o>
+ <t>monitus erat</t>
+ </e>
+ <e>
+ <o>moniti eramus</o>
+ <t>moniti eramus</t>
+ </e>
+ <e>
+ <o>moniti eratis</o>
+ <t>moniti eratis</t>
+ </e>
+ <e>
+ <o>moniti erant</o>
+ <t>moniti erant</t>
+ </e>
+ <e>
+ <o>monitus ero</o>
+ <t>monitus ero</t>
+ </e>
+ <e>
+ <o>monitus eris</o>
+ <t>monitus eris</t>
+ </e>
+ <e>
+ <o>monitus erit</o>
+ <t>monitus erit</t>
+ </e>
+ <e>
+ <o>moniti erimus</o>
+ <t>moniti erimus</t>
+ </e>
+ <e>
+ <o>moniti eritis</o>
+ <t>moniti eritis</t>
+ </e>
+ <e>
+ <o>moniti erunt</o>
+ <t>moniti erunt</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/moneo-subjunctive-active.klat b/klatin/klatin/data/verbs/moneo-subjunctive-active.klat
new file mode 100644
index 00000000..5742269b
--- /dev/null
+++ b/klatin/klatin/data/verbs/moneo-subjunctive-active.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>moneam</o>
+ <t>moneam</t>
+ </e>
+ <e>
+ <o>moneas</o>
+ <t>moneas</t>
+ </e>
+ <e>
+ <o>moneat</o>
+ <t>moneat</t>
+ </e>
+ <e>
+ <o>moneamus</o>
+ <t>moneamus</t>
+ </e>
+ <e>
+ <o>moneatis</o>
+ <t>moneatis</t>
+ </e>
+ <e>
+ <o>moneant</o>
+ <t>moneant</t>
+ </e>
+ <e>
+ <o>monerem</o>
+ <t>monerem</t>
+ </e>
+ <e>
+ <o>moneres</o>
+ <t>moneres</t>
+ </e>
+ <e>
+ <o>moneret</o>
+ <t>moneret</t>
+ </e>
+ <e>
+ <o>moneremus</o>
+ <t>moneremus</t>
+ </e>
+ <e>
+ <o>moneretis</o>
+ <t>moneretis</t>
+ </e>
+ <e>
+ <o>monerent</o>
+ <t>monerent</t>
+ </e>
+ <e>
+ <o>monuerim</o>
+ <t>monuerim</t>
+ </e>
+ <e>
+ <o>monueris</o>
+ <t>monueris</t>
+ </e>
+ <e>
+ <o>monuerit</o>
+ <t>monuerit</t>
+ </e>
+ <e>
+ <o>monuerimus</o>
+ <t>monuerimus</t>
+ </e>
+ <e>
+ <o>monueritis</o>
+ <t>monueritis</t>
+ </e>
+ <e>
+ <o>monuerint</o>
+ <t>monuerint</t>
+ </e>
+ <e>
+ <o>monuissem</o>
+ <t>monuissem</t>
+ </e>
+ <e>
+ <o>monuisses</o>
+ <t>monuisses</t>
+ </e>
+ <e>
+ <o>monuisset</o>
+ <t>monuisset</t>
+ </e>
+ <e>
+ <o>monuissemus</o>
+ <t>monuissemus</t>
+ </e>
+ <e>
+ <o>monuissetis</o>
+ <t>monuissetis</t>
+ </e>
+ <e>
+ <o>monuissent</o>
+ <t>monuissent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/moneo-subjunctive-passive.klat b/klatin/klatin/data/verbs/moneo-subjunctive-passive.klat
new file mode 100644
index 00000000..693a9e5d
--- /dev/null
+++ b/klatin/klatin/data/verbs/moneo-subjunctive-passive.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>monear</o>
+ <t>monear</t>
+ </e>
+ <e>
+ <o>monearis</o>
+ <t>monearis</t>
+ </e>
+ <e>
+ <o>moneatur</o>
+ <t>moneatur</t>
+ </e>
+ <e>
+ <o>moneamur</o>
+ <t>moneamur</t>
+ </e>
+ <e>
+ <o>moneamini</o>
+ <t>moneamini</t>
+ </e>
+ <e>
+ <o>moneantur</o>
+ <t>moneantur</t>
+ </e>
+ <e>
+ <o>monerer</o>
+ <t>monerer</t>
+ </e>
+ <e>
+ <o>monereris</o>
+ <t>monereris</t>
+ </e>
+ <e>
+ <o>moneretur</o>
+ <t>moneretur</t>
+ </e>
+ <e>
+ <o>moneremur</o>
+ <t>moneremur</t>
+ </e>
+ <e>
+ <o>moneremini</o>
+ <t>moneremini</t>
+ </e>
+ <e>
+ <o>monerentur</o>
+ <t>monerentur</t>
+ </e>
+ <e>
+ <o>monitus sum</o>
+ <t>monitus sum</t>
+ </e>
+ <e>
+ <o>monitus sis</o>
+ <t>monitus sis</t>
+ </e>
+ <e>
+ <o>monitus sit</o>
+ <t>monitus sit</t>
+ </e>
+ <e>
+ <o>moniti simus</o>
+ <t>moniti simus</t>
+ </e>
+ <e>
+ <o>moniti sitis</o>
+ <t>moniti sitis</t>
+ </e>
+ <e>
+ <o>moniti sint</o>
+ <t>moniti sint</t>
+ </e>
+ <e>
+ <o>monitus essem</o>
+ <t>monitus essem</t>
+ </e>
+ <e>
+ <o>monitus esses</o>
+ <t>monitus esses</t>
+ </e>
+ <e>
+ <o>monitus esset</o>
+ <t>monitus esset</t>
+ </e>
+ <e>
+ <o>moniti essemus</o>
+ <t>moniti essemus</t>
+ </e>
+ <e>
+ <o>moniti essetis</o>
+ <t>moniti essetis</t>
+ </e>
+ <e>
+ <o>moniti essent</o>
+ <t>moniti essent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/rego-indicative-active.klat b/klatin/klatin/data/verbs/rego-indicative-active.klat
new file mode 100644
index 00000000..75c78dd0
--- /dev/null
+++ b/klatin/klatin/data/verbs/rego-indicative-active.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>rego</o>
+ <t>rego</t>
+ </e>
+ <e>
+ <o>regis</o>
+ <t>regis</t>
+ </e>
+ <e>
+ <o>regit</o>
+ <t>regit</t>
+ </e>
+ <e>
+ <o>regimus</o>
+ <t>regimus</t>
+ </e>
+ <e>
+ <o>regitis</o>
+ <t>regitis</t>
+ </e>
+ <e>
+ <o>regunt</o>
+ <t>regunt</t>
+ </e>
+ <e>
+ <o>regam</o>
+ <t>regam</t>
+ </e>
+ <e>
+ <o>reges</o>
+ <t>reges</t>
+ </e>
+ <e>
+ <o>reget</o>
+ <t>reget</t>
+ </e>
+ <e>
+ <o>regemus</o>
+ <t>regemus</t>
+ </e>
+ <e>
+ <o>regetis</o>
+ <t>regetis</t>
+ </e>
+ <e>
+ <o>regent</o>
+ <t>regent</t>
+ </e>
+ <e>
+ <o>regebam</o>
+ <t>regebam</t>
+ </e>
+ <e>
+ <o>regebas</o>
+ <t>regebas</t>
+ </e>
+ <e>
+ <o>regebat</o>
+ <t>regebat</t>
+ </e>
+ <e>
+ <o>regebamus</o>
+ <t>regebamus</t>
+ </e>
+ <e>
+ <o>regebatis</o>
+ <t>regebatis</t>
+ </e>
+ <e>
+ <o>regebant</o>
+ <t>regebant</t>
+ </e>
+ <e>
+ <o>rexi</o>
+ <t>rexi</t>
+ </e>
+ <e>
+ <o>rexisti</o>
+ <t>rexisti</t>
+ </e>
+ <e>
+ <o>rexit</o>
+ <t>rexit</t>
+ </e>
+ <e>
+ <o>reximus</o>
+ <t>reximus</t>
+ </e>
+ <e>
+ <o>rexistis</o>
+ <t>rexistis</t>
+ </e>
+ <e>
+ <o>rexerunt</o>
+ <t>rexerunt</t>
+ </e>
+ <e>
+ <o>rexeram</o>
+ <t>rexeram</t>
+ </e>
+ <e>
+ <o>rexeras</o>
+ <t>rexeras</t>
+ </e>
+ <e>
+ <o>rexerat</o>
+ <t>rexerat</t>
+ </e>
+ <e>
+ <o>rexeramus</o>
+ <t>rexeramus</t>
+ </e>
+ <e>
+ <o>rexeratis</o>
+ <t>rexeratis</t>
+ </e>
+ <e>
+ <o>rexerant</o>
+ <t>rexerant</t>
+ </e>
+ <e>
+ <o>rexero</o>
+ <t>rexero</t>
+ </e>
+ <e>
+ <o>rexeris</o>
+ <t>rexeris</t>
+ </e>
+ <e>
+ <o>rexerit</o>
+ <t>rexerit</t>
+ </e>
+ <e>
+ <o>rexerimus</o>
+ <t>rexerimus</t>
+ </e>
+ <e>
+ <o>rexeritis</o>
+ <t>rexeritis</t>
+ </e>
+ <e>
+ <o>rexerint</o>
+ <t>rexerint</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/rego-indicative-passive.klat b/klatin/klatin/data/verbs/rego-indicative-passive.klat
new file mode 100644
index 00000000..1ea54b6d
--- /dev/null
+++ b/klatin/klatin/data/verbs/rego-indicative-passive.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>regor</o>
+ <t>regor</t>
+ </e>
+ <e>
+ <o>regeris</o>
+ <t>regeris</t>
+ </e>
+ <e>
+ <o>regitur</o>
+ <t>regitur</t>
+ </e>
+ <e>
+ <o>regimur</o>
+ <t>regimur</t>
+ </e>
+ <e>
+ <o>regimini</o>
+ <t>regimini</t>
+ </e>
+ <e>
+ <o>reguntur</o>
+ <t>reguntur</t>
+ </e>
+ <e>
+ <o>regar</o>
+ <t>regar</t>
+ </e>
+ <e>
+ <o>regeris</o>
+ <t>regeris</t>
+ </e>
+ <e>
+ <o>regetur</o>
+ <t>regetur</t>
+ </e>
+ <e>
+ <o>regemur</o>
+ <t>regemur</t>
+ </e>
+ <e>
+ <o>regemini</o>
+ <t>regemini</t>
+ </e>
+ <e>
+ <o>regentur</o>
+ <t>regentur</t>
+ </e>
+ <e>
+ <o>regebar</o>
+ <t>regebar</t>
+ </e>
+ <e>
+ <o>regebaris</o>
+ <t>regebaris</t>
+ </e>
+ <e>
+ <o>regebatur</o>
+ <t>regebatur</t>
+ </e>
+ <e>
+ <o>regebamur</o>
+ <t>regebamur</t>
+ </e>
+ <e>
+ <o>regebamini</o>
+ <t>regebamini</t>
+ </e>
+ <e>
+ <o>regebantur</o>
+ <t>regebantur</t>
+ </e>
+ <e>
+ <o>rectus sum</o>
+ <t>rectus sum</t>
+ </e>
+ <e>
+ <o>rectus es</o>
+ <t>rectus es</t>
+ </e>
+ <e>
+ <o>rectus est</o>
+ <t>rectus est</t>
+ </e>
+ <e>
+ <o>recti sumus</o>
+ <t>recti sumus</t>
+ </e>
+ <e>
+ <o>recti estis</o>
+ <t>recti estis</t>
+ </e>
+ <e>
+ <o>recti sunt</o>
+ <t>recti sunt</t>
+ </e>
+ <e>
+ <o>rectus eram</o>
+ <t>rectus eram</t>
+ </e>
+ <e>
+ <o>rectus eras</o>
+ <t>rectus eras</t>
+ </e>
+ <e>
+ <o>rectus erat</o>
+ <t>rectus erat</t>
+ </e>
+ <e>
+ <o>recti eramus</o>
+ <t>recti eramus</t>
+ </e>
+ <e>
+ <o>recti eratis</o>
+ <t>recti eratis</t>
+ </e>
+ <e>
+ <o>recti erant</o>
+ <t>recti erant</t>
+ </e>
+ <e>
+ <o>rectus ero</o>
+ <t>rectus ero</t>
+ </e>
+ <e>
+ <o>rectus eris</o>
+ <t>rectus eris</t>
+ </e>
+ <e>
+ <o>rectus erit</o>
+ <t>rectus erit</t>
+ </e>
+ <e>
+ <o>recti erimus</o>
+ <t>recti erimus</t>
+ </e>
+ <e>
+ <o>recti eritis</o>
+ <t>recti eritis</t>
+ </e>
+ <e>
+ <o>recti erunt</o>
+ <t>recti erunt</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/rego-subjunctive-active.klat b/klatin/klatin/data/verbs/rego-subjunctive-active.klat
new file mode 100644
index 00000000..3a97d2d0
--- /dev/null
+++ b/klatin/klatin/data/verbs/rego-subjunctive-active.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>regam</o>
+ <t>regam</t>
+ </e>
+ <e>
+ <o>regas</o>
+ <t>regas</t>
+ </e>
+ <e>
+ <o>regat</o>
+ <t>regat</t>
+ </e>
+ <e>
+ <o>regamus</o>
+ <t>regamus</t>
+ </e>
+ <e>
+ <o>regatis</o>
+ <t>regatis</t>
+ </e>
+ <e>
+ <o>regant</o>
+ <t>regant</t>
+ </e>
+ <e>
+ <o>regerem</o>
+ <t>regerem</t>
+ </e>
+ <e>
+ <o>regeres</o>
+ <t>regeres</t>
+ </e>
+ <e>
+ <o>regeret</o>
+ <t>regeret</t>
+ </e>
+ <e>
+ <o>regeremus</o>
+ <t>regeremus</t>
+ </e>
+ <e>
+ <o>regeretis</o>
+ <t>regeretis</t>
+ </e>
+ <e>
+ <o>regerent</o>
+ <t>regerent</t>
+ </e>
+ <e>
+ <o>rexerim</o>
+ <t>rexerim</t>
+ </e>
+ <e>
+ <o>rexeris</o>
+ <t>rexeris</t>
+ </e>
+ <e>
+ <o>rexerit</o>
+ <t>rexerit</t>
+ </e>
+ <e>
+ <o>rexerimus</o>
+ <t>rexerimus</t>
+ </e>
+ <e>
+ <o>rexeritis</o>
+ <t>rexeritis</t>
+ </e>
+ <e>
+ <o>rexerint</o>
+ <t>rexerint</t>
+ </e>
+ <e>
+ <o>rexissem</o>
+ <t>rexissem</t>
+ </e>
+ <e>
+ <o>rexisses</o>
+ <t>rexisses</t>
+ </e>
+ <e>
+ <o>rexisset</o>
+ <t>rexisset</t>
+ </e>
+ <e>
+ <o>rexissemus</o>
+ <t>rexissemus</t>
+ </e>
+ <e>
+ <o>rexissetis</o>
+ <t>rexissetis</t>
+ </e>
+ <e>
+ <o>rexissent</o>
+ <t>rexissent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/rego-subjunctive-passive.klat b/klatin/klatin/data/verbs/rego-subjunctive-passive.klat
new file mode 100644
index 00000000..1758e9b5
--- /dev/null
+++ b/klatin/klatin/data/verbs/rego-subjunctive-passive.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>regar</o>
+ <t>regar</t>
+ </e>
+ <e>
+ <o>regaris</o>
+ <t>regaris</t>
+ </e>
+ <e>
+ <o>regatur</o>
+ <t>regatur</t>
+ </e>
+ <e>
+ <o>regamur</o>
+ <t>regamur</t>
+ </e>
+ <e>
+ <o>regamini</o>
+ <t>regamini</t>
+ </e>
+ <e>
+ <o>regantur</o>
+ <t>regantur</t>
+ </e>
+ <e>
+ <o>regerer</o>
+ <t>regerer</t>
+ </e>
+ <e>
+ <o>regereris</o>
+ <t>regereris</t>
+ </e>
+ <e>
+ <o>regeretur</o>
+ <t>regeretur</t>
+ </e>
+ <e>
+ <o>regeremur</o>
+ <t>regeremur</t>
+ </e>
+ <e>
+ <o>regeremini</o>
+ <t>regeremini</t>
+ </e>
+ <e>
+ <o>regerentur</o>
+ <t>regerentur</t>
+ </e>
+ <e>
+ <o>rectus sim</o>
+ <t>rectus sim</t>
+ </e>
+ <e>
+ <o>rectus sis</o>
+ <t>rectus sis</t>
+ </e>
+ <e>
+ <o>rectus sit</o>
+ <t>rectus sit</t>
+ </e>
+ <e>
+ <o>recti simus</o>
+ <t>recti simus</t>
+ </e>
+ <e>
+ <o>recti sitis</o>
+ <t>recti sitis</t>
+ </e>
+ <e>
+ <o>recti sint</o>
+ <t>recti sint</t>
+ </e>
+ <e>
+ <o>rectus essem</o>
+ <t>rectus essem</t>
+ </e>
+ <e>
+ <o>rectus esses</o>
+ <t>rectus esses</t>
+ </e>
+ <e>
+ <o>rectus esset</o>
+ <t>rectus esset</t>
+ </e>
+ <e>
+ <o>recti essemus</o>
+ <t>recti essemus</t>
+ </e>
+ <e>
+ <o>recti essetis</o>
+ <t>recti essetis</t>
+ </e>
+ <e>
+ <o>recti essent</o>
+ <t>recti essent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/sum-indicative-active.klat b/klatin/klatin/data/verbs/sum-indicative-active.klat
new file mode 100644
index 00000000..b77fcc88
--- /dev/null
+++ b/klatin/klatin/data/verbs/sum-indicative-active.klat
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>sum</o>
+ <t>sum</t>
+ </e>
+ <e>
+ <o>es</o>
+ <t>es</t>
+ </e>
+ <e>
+ <o>est</o>
+ <t>est</t>
+ </e>
+ <e>
+ <o>sumus</o>
+ <t>sumus</t>
+ </e>
+ <e>
+ <o>estis</o>
+ <t>estis</t>
+ </e>
+ <e>
+ <o>sunt</o>
+ <t>sunt</t>
+ </e>
+ <e>
+ <o>ero</o>
+ <t>ero</t>
+ </e>
+ <e>
+ <o>eris</o>
+ <t>eris</t>
+ </e>
+ <e>
+ <o>erit</o>
+ <t>erit</t>
+ </e>
+ <e>
+ <o>erimus</o>
+ <t>erimus</t>
+ </e>
+ <e>
+ <o>eritis</o>
+ <t>eritis</t>
+ </e>
+ <e>
+ <o>erunt</o>
+ <t>erunt</t>
+ </e>
+ <e>
+ <o>eram</o>
+ <t>eram</t>
+ </e>
+ <e>
+ <o>eras</o>
+ <t>eras</t>
+ </e>
+ <e>
+ <o>erat</o>
+ <t>erat</t>
+ </e>
+ <e>
+ <o>eramus</o>
+ <t>eramus</t>
+ </e>
+ <e>
+ <o>eratis</o>
+ <t>eratis</t>
+ </e>
+ <e>
+ <o>erant</o>
+ <t>erant</t>
+ </e>
+ <e>
+ <o>fui</o>
+ <t>fui</t>
+ </e>
+ <e>
+ <o>fuisti</o>
+ <t>fuisti</t>
+ </e>
+ <e>
+ <o>fuit</o>
+ <t>fuit</t>
+ </e>
+ <e>
+ <o>fuimus</o>
+ <t>fuimus</t>
+ </e>
+ <e>
+ <o>fuistis</o>
+ <t>fuistis</t>
+ </e>
+ <e>
+ <o>fuerunt</o>
+ <t>fuerunt</t>
+ </e>
+ <e>
+ <o>fueram</o>
+ <t>fueram</t>
+ </e>
+ <e>
+ <o>fueras</o>
+ <t>fueras</t>
+ </e>
+ <e>
+ <o>fuerat</o>
+ <t>fuerat</t>
+ </e>
+ <e>
+ <o>fueramus</o>
+ <t>fueramus</t>
+ </e>
+ <e>
+ <o>fueratis</o>
+ <t>fueratis</t>
+ </e>
+ <e>
+ <o>fuerant</o>
+ <t>fuerant</t>
+ </e>
+ <e>
+ <o>fuero</o>
+ <t>fuero</t>
+ </e>
+ <e>
+ <o>fueris</o>
+ <t>fueris</t>
+ </e>
+ <e>
+ <o>fuerit</o>
+ <t>fuerit</t>
+ </e>
+ <e>
+ <o>fuerimus</o>
+ <t>fuerimus</t>
+ </e>
+ <e>
+ <o>fueritis</o>
+ <t>fueritis</t>
+ </e>
+ <e>
+ <o>fuerint</o>
+ <t>fuerint</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/verbs/sum-subjunctive-active.klat b/klatin/klatin/data/verbs/sum-subjunctive-active.klat
new file mode 100644
index 00000000..c552986a
--- /dev/null
+++ b/klatin/klatin/data/verbs/sum-subjunctive-active.klat
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>sim</o>
+ <t>sim</t>
+ </e>
+ <e>
+ <o>sis</o>
+ <t>sis</t>
+ </e>
+ <e>
+ <o>sit</o>
+ <t>sit</t>
+ </e>
+ <e>
+ <o>simus</o>
+ <t>simus</t>
+ </e>
+ <e>
+ <o>sitis</o>
+ <t>sitis</t>
+ </e>
+ <e>
+ <o>sint</o>
+ <t>sint</t>
+ </e>
+ <e>
+ <o>essem</o>
+ <t>essem</t>
+ </e>
+ <e>
+ <o>esses</o>
+ <t>esses</t>
+ </e>
+ <e>
+ <o>esset</o>
+ <t>esset</t>
+ </e>
+ <e>
+ <o>essemus</o>
+ <t>essemus</t>
+ </e>
+ <e>
+ <o>essetis</o>
+ <t>essetis</t>
+ </e>
+ <e>
+ <o>essent</o>
+ <t>essent</t>
+ </e>
+ <e>
+ <o>fuerim</o>
+ <t>fuerim</t>
+ </e>
+ <e>
+ <o>fueris</o>
+ <t>fueris</t>
+ </e>
+ <e>
+ <o>fuerit</o>
+ <t>fuerit</t>
+ </e>
+ <e>
+ <o>fuerimus</o>
+ <t>fuerimus</t>
+ </e>
+ <e>
+ <o>fueritis</o>
+ <t>fueritis</t>
+ </e>
+ <e>
+ <o>fuerint</o>
+ <t>fuerint</t>
+ </e>
+ <e>
+ <o>fuissem</o>
+ <t>fuissem</t>
+ </e>
+ <e>
+ <o>fuisses</o>
+ <t>fuisses</t>
+ </e>
+ <e>
+ <o>fuisset</o>
+ <t>fuisset</t>
+ </e>
+ <e>
+ <o>fuissemus</o>
+ <t>fuissemus</t>
+ </e>
+ <e>
+ <o>fuissetis</o>
+ <t>fuissetis</t>
+ </e>
+ <e>
+ <o>fuissent</o>
+ <t>fuissent</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/Makefile.am b/klatin/klatin/data/vocab/Makefile.am
new file mode 100644
index 00000000..54cb7de5
--- /dev/null
+++ b/klatin/klatin/data/vocab/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = $(AUTODIRS)
diff --git a/klatin/klatin/data/vocab/de/A.kvtml b/klatin/klatin/data/vocab/de/A.kvtml
new file mode 100644
index 00000000..01b5c074
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/A.kvtml
@@ -0,0 +1,197 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="47"
+ title="A.kvtml">
+
+ <e>
+ <o width="250" l="1">a, ab + abl</o>
+ <t width="250" l="2">von, seit</t>
+ </e>
+ <e>
+ <o>absum (irreg)</o>
+ <t>abwesend, fort, weg, fehlen</t>
+ </e>
+ <e>
+ <o>ac, atque</o>
+ <t>und</t>
+ </e>
+ <e>
+ <o>accido (3)</o>
+ <t>hinfallen, sich ereignen</t>
+ </e>
+ <e>
+ <o>accipio (3)</o>
+ <t>annehmen, entgegennehmen</t>
+ </e>
+ <e>
+ <o>accuso (1)</o>
+ <t>anklagen, beschuldigen</t>
+ </e>
+ <e>
+ <o>ad + acc</o>
+ <t>zu, an, nahe bei</t>
+ </e>
+ <e>
+ <o>adeo</o>
+ <t>so sehr</t>
+ </e>
+ <e>
+ <o>adhuc</o>
+ <t>bis jetzt, immer noch</t>
+ </e>
+ <e>
+ <o>adiuvo (1)</o>
+ <t>helfen</t>
+ </e>
+ <e>
+ <o>adsum (irreg)</o>
+ <t>hier sein, anwesend sein</t>
+ </e>
+ <e>
+ <o>advenio (4)</o>
+ <t>ankommen</t>
+ </e>
+ <e>
+ <o>adversus</o>
+ <t>entgegen, ungünstig</t>
+ </e>
+ <e>
+ <o>aedificium</o>
+ <t>Gebäude</t>
+ </e>
+ <e>
+ <o>aedifico (1)</o>
+ <t>bauen</t>
+ </e>
+ <e>
+ <o>ago (1)</o>
+ <t>in Bewegung setzen, handeln</t>
+ </e>
+ <e>
+ <o>gratias ago (1)</o>
+ <t>Dank, bedanken</t>
+ </e>
+ <e>
+ <o>agricola (1)</o>
+ <t>Bauer</t>
+ </e>
+ <e>
+ <o>aliquis</o>
+ <t>jemand, etwas</t>
+ </e>
+ <e>
+ <o>alius</o>
+ <t>ein anderer</t>
+ </e>
+ <e>
+ <o>alii...alii</o>
+ <t>die anderen, andere</t>
+ </e>
+ <e>
+ <o>alter</o>
+ <t>der andere, der zweite</t>
+ </e>
+ <e>
+ <o>altus</o>
+ <t>hoch, tief</t>
+ </e>
+ <e>
+ <o>ambulo (1)</o>
+ <t>wandern</t>
+ </e>
+ <e>
+ <o>amitto (3)</o>
+ <t>weggehen lassen, entkommen lassen</t>
+ </e>
+ <e>
+ <o>amo (1)</o>
+ <t>lieben, gern haben</t>
+ </e>
+ <e>
+ <o>amor (3)</o>
+ <t>Liebe</t>
+ </e>
+ <e>
+ <o>ancilla (1)</o>
+ <t>Dienerin, Magd</t>
+ </e>
+ <e>
+ <o>animus (2)</o>
+ <t>Geist, Seele, Sinn</t>
+ </e>
+ <e>
+ <o>annus (2)</o>
+ <t>Jahr</t>
+ </e>
+ <e>
+ <o>ante + acc</o>
+ <t>vorher, vor</t>
+ </e>
+ <e>
+ <o>antea</o>
+ <t>vorher</t>
+ </e>
+ <e>
+ <o>aperio (4)</o>
+ <t>öffnen</t>
+ </e>
+ <e>
+ <o>appareo (2)</o>
+ <t>erscheinen</t>
+ </e>
+ <e>
+ <o>appropinquo (1)</o>
+ <t>nahekommen</t>
+ </e>
+ <e>
+ <o>apud + acc</o>
+ <t>bei, in Nähe von</t>
+ </e>
+ <e>
+ <o>aqua (1)</o>
+ <t>Wasser</t>
+ </e>
+ <e>
+ <o>ara (1)</o>
+ <t>Altar</t>
+ </e>
+ <e>
+ <o>arcesso (3)</o>
+ <t>kommen lassen, herbeiführen</t>
+ </e>
+ <e>
+ <o>ars (3)</o>
+ <t>Handwerk, Kunst</t>
+ </e>
+ <e>
+ <o>ascendo (3)</o>
+ <t>besteigen</t>
+ </e>
+ <e>
+ <o>audax</o>
+ <t>kühn, frech, verwegen</t>
+ </e>
+ <e>
+ <o>audeo (2)</o>
+ <t>Lust haben, wagen</t>
+ </e>
+ <e>
+ <o>audio (4)</o>
+ <t>hören können, erfahren</t>
+ </e>
+ <e>
+ <o>aufero (3)</o>
+ <t>wegtragen, wegnehmen, stehlen</t>
+ </e>
+ <e>
+ <o>autem</o>
+ <t>aber, jedoch</t>
+ </e>
+ <e>
+ <o>auxilium (2)</o>
+ <t>Hilfe</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/BC.kvtml b/klatin/klatin/data/vocab/de/BC.kvtml
new file mode 100644
index 00000000..6aaac787
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/BC.kvtml
@@ -0,0 +1,229 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="55"
+ title="BC.kvtml">
+
+ <e>
+ <o width="250" l="1">bellum (2)</o>
+ <t width="250" l="2">Krieg</t>
+ </e>
+ <e>
+ <o>bellum gerere</o>
+ <t>Krieg führen</t>
+ </e>
+ <e>
+ <o>bene</o>
+ <t>gut, wohl, günstig</t>
+ </e>
+ <e>
+ <o>bibo (3)</o>
+ <t>trinken</t>
+ </e>
+ <e>
+ <o>bonus, a, um</o>
+ <t>gut</t>
+ </e>
+ <e>
+ <o>brevis</o>
+ <t>kurz</t>
+ </e>
+ <e>
+ <o>caelum (2)</o>
+ <t>Himmel, Wetter</t>
+ </e>
+ <e>
+ <o>canis (3)</o>
+ <t>Hund</t>
+ </e>
+ <e>
+ <o>canto (1)</o>
+ <t>singen, spielen (Musical)</t>
+ </e>
+ <e>
+ <o>capio (3)</o>
+ <t>erfassen, aussuchen</t>
+ </e>
+ <e>
+ <o>captivus (2)</o>
+ <t>gefangen, Gefangener</t>
+ </e>
+ <e>
+ <o>caput (3)</o>
+ <t>Kopf</t>
+ </e>
+ <e>
+ <o>carmen (3)</o>
+ <t>Lied, Gedicht</t>
+ </e>
+ <e>
+ <o>carus</o>
+ <t>lieb, teuer</t>
+ </e>
+ <e>
+ <o>castra (2)</o>
+ <t>Lager</t>
+ </e>
+ <e>
+ <o>celer</o>
+ <t>schnell, rasch</t>
+ </e>
+ <e>
+ <o>celo (1)</o>
+ <t>verstecken</t>
+ </e>
+ <e>
+ <o>cena (1)</o>
+ <t>Mahlzeit</t>
+ </e>
+ <e>
+ <o>centum</o>
+ <t>hundert</t>
+ </e>
+ <e>
+ <o>ceteri</o>
+ <t>die übrigen, die anderen</t>
+ </e>
+ <e>
+ <o>cibus (2)</o>
+ <t>Nahrung</t>
+ </e>
+ <e>
+ <o>circum</o>
+ <t>um herum</t>
+ </e>
+ <e>
+ <o>civis (3)</o>
+ <t>Bürger</t>
+ </e>
+ <e>
+ <o>clamo (1)</o>
+ <t>schreien</t>
+ </e>
+ <e>
+ <o>clamor (3)</o>
+ <t>Ruf, Schrei, Lärm</t>
+ </e>
+ <e>
+ <o>coepi (past tenses only)</o>
+ <t>beginnen</t>
+ </e>
+ <e>
+ <o>cogito (1)</o>
+ <t>denken</t>
+ </e>
+ <e>
+ <o>cognosco (3)</o>
+ <t>erkennen</t>
+ </e>
+ <e>
+ <o>cogo (3)</o>
+ <t>versammeln, erzwingen</t>
+ </e>
+ <e>
+ <o>comes (3)</o>
+ <t>Begleiter, Kamerad</t>
+ </e>
+ <e>
+ <o>conficio (3)</o>
+ <t>zustandebringen, fertig werden</t>
+ </e>
+ <e>
+ <o>conor (1)</o>
+ <t>versuchen</t>
+ </e>
+ <e>
+ <o>consentio (4)</o>
+ <t>übereinstimmen</t>
+ </e>
+ <e>
+ <o>consilium (2)</o>
+ <t>Plan, Entschluß, Beratung</t>
+ </e>
+ <e>
+ <o>conspicio (3)</o>
+ <t>anblicken</t>
+ </e>
+ <e>
+ <o>consisto (3)</o>
+ <t>anhalten, stehen bleiben</t>
+ </e>
+ <e>
+ <o>constituo (3)</o>
+ <t>entschließen</t>
+ </e>
+ <e>
+ <o>consumo (3)</o>
+ <t>verbrauchen</t>
+ </e>
+ <e>
+ <o>contendo (3)</o>
+ <t>vergleichen</t>
+ </e>
+ <e>
+ <o>contra</o>
+ <t>gegen</t>
+ </e>
+ <e>
+ <o>convenio (4)</o>
+ <t>zusammenkommen,sich einigen</t>
+ </e>
+ <e>
+ <o>corpus (3)</o>
+ <t>Körper</t>
+ </e>
+ <e>
+ <o>cotidie</o>
+ <t>täglich</t>
+ </e>
+ <e>
+ <o>cras</o>
+ <t>morgen</t>
+ </e>
+ <e>
+ <o>crudelis</o>
+ <t>grausam</t>
+ </e>
+ <e>
+ <o>cum</o>
+ <t>wenn</t>
+ </e>
+ <e>
+ <o>credo (3)</o>
+ <t>glauben, vertrauen</t>
+ </e>
+ <e>
+ <o>cum + abl</o>
+ <t>mit</t>
+ </e>
+ <e>
+ <o>cupio (3)</o>
+ <t>begehren, wünschen</t>
+ </e>
+ <e>
+ <o>cur?</o>
+ <t>warum</t>
+ </e>
+ <e>
+ <o>cura (1)</o>
+ <t>Vorsorge, Sorge</t>
+ </e>
+ <e>
+ <o>curo (1)</o>
+ <t>sorgen, besorgen</t>
+ </e>
+ <e>
+ <o>curro (3)</o>
+ <t>laufen</t>
+ </e>
+ <e>
+ <o>custodio (4)</o>
+ <t>bewachen</t>
+ </e>
+ <e>
+ <o>custos (3)</o>
+ <t>Wächter</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/D.kvtml b/klatin/klatin/data/vocab/de/D.kvtml
new file mode 100644
index 00000000..afb08499
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/D.kvtml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="31"
+ title="D.kvtml">
+
+ <e>
+ <o width="250" l="1">de + abl</o>
+ <t width="250" l="2">unten, über, an</t>
+ </e>
+ <e>
+ <o>dea (1)</o>
+ <t>Göttin</t>
+ </e>
+ <e>
+ <o>debeo (2)</o>
+ <t>schulden, müssen</t>
+ </e>
+ <e>
+ <o>decem</o>
+ <t>zehn</t>
+ </e>
+ <e>
+ <o>decido (3)</o>
+ <t>herabfallen</t>
+ </e>
+ <e>
+ <o>defendo (3)</o>
+ <t>abwehren</t>
+ </e>
+ <e>
+ <o>deinde</o>
+ <t>dann</t>
+ </e>
+ <e>
+ <o>deleo (2)</o>
+ <t>zerstören</t>
+ </e>
+ <e>
+ <o>descendo (3)</o>
+ <t>absteigen</t>
+ </e>
+ <e>
+ <o>despero (1)</o>
+ <t>verzweifeln</t>
+ </e>
+ <e>
+ <o>deus (2)</o>
+ <t>Gott</t>
+ </e>
+ <e>
+ <o>dico (3)</o>
+ <t>sagen</t>
+ </e>
+ <e>
+ <o>dies (5)</o>
+ <t>Tag</t>
+ </e>
+ <e>
+ <o>difficilis</o>
+ <t>schwierig</t>
+ </e>
+ <e>
+ <o>dirus</o>
+ <t>unglückverkündend</t>
+ </e>
+ <e>
+ <o>diligenter</o>
+ <t>sorgfältig</t>
+ </e>
+ <e>
+ <o>discedo (3)</o>
+ <t>auseinandergehen, verlassen</t>
+ </e>
+ <e>
+ <o>diu</o>
+ <t>lange</t>
+ </e>
+ <e>
+ <o>dives</o>
+ <t>reich</t>
+ </e>
+ <e>
+ <o>do (1)</o>
+ <t>geben</t>
+ </e>
+ <e>
+ <o>doceo (2)</o>
+ <t>lehren</t>
+ </e>
+ <e>
+ <o>doctus</o>
+ <t>gelehrt</t>
+ </e>
+ <e>
+ <o>domina (1)</o>
+ <t>Herrin</t>
+ </e>
+ <e>
+ <o>dominus (2)</o>
+ <t>Herr</t>
+ </e>
+ <e>
+ <o>domus (4)</o>
+ <t>Haus</t>
+ </e>
+ <e>
+ <o>donum (2)</o>
+ <t>Gabe, Geschenk</t>
+ </e>
+ <e>
+ <o>dormio (4)</o>
+ <t>schlafen</t>
+ </e>
+ <e>
+ <o>duco (3)</o>
+ <t>führen</t>
+ </e>
+ <e>
+ <o>dum</o>
+ <t>während, solange bis</t>
+ </e>
+ <e>
+ <o>duo</o>
+ <t>zwei</t>
+ </e>
+ <e>
+ <o>dux (3)</o>
+ <t>Führer</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/EF.kvtml b/klatin/klatin/data/vocab/de/EF.kvtml
new file mode 100644
index 00000000..2b9b259f
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/EF.kvtml
@@ -0,0 +1,173 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="41"
+ title="EF.kvtml">
+
+ <e>
+ <o width="250" l="1">e, ex + abl</o>
+ <t width="250" l="2">an, aus</t>
+ </e>
+ <e>
+ <o>ecce!</o>
+ <t>siehe da</t>
+ </e>
+ <e>
+ <o>efficio (3)</o>
+ <t>hervorbringen, durchsetzen</t>
+ </e>
+ <e>
+ <o>effugio (3)</o>
+ <t>entfliehen</t>
+ </e>
+ <e>
+ <o>ego</o>
+ <t>ich</t>
+ </e>
+ <e>
+ <o>egredior (3)</o>
+ <t>herausgehen</t>
+ </e>
+ <e>
+ <o>emo (3)</o>
+ <t>kaufen</t>
+ </e>
+ <e>
+ <o>enim</o>
+ <t>denn</t>
+ </e>
+ <e>
+ <o>eo (irreg)</o>
+ <t>gehen</t>
+ </e>
+ <e>
+ <o>epistula (1)</o>
+ <t>Brief</t>
+ </e>
+ <e>
+ <o>eques (2)</o>
+ <t>Reiter, Ritter</t>
+ </e>
+ <e>
+ <o>equus (2)</o>
+ <t>Pferd</t>
+ </e>
+ <e>
+ <o>et</o>
+ <t>und</t>
+ </e>
+ <e>
+ <o>et... et</o>
+ <t>sowohl ... als auch</t>
+ </e>
+ <e>
+ <o>etiam</o>
+ <t>auch, sogar</t>
+ </e>
+ <e>
+ <o>expecto (1)</o>
+ <t>erwarten</t>
+ </e>
+ <e>
+ <o>fabula (1)</o>
+ <t>Erzählung, Schauspiel</t>
+ </e>
+ <e>
+ <o>facilis</o>
+ <t>leicht</t>
+ </e>
+ <e>
+ <o>facio (3)</o>
+ <t>machen, tun</t>
+ </e>
+ <e>
+ <o>faveo (2)</o>
+ <t>begünstigen</t>
+ </e>
+ <e>
+ <o>femina (1)</o>
+ <t>Frau</t>
+ </e>
+ <e>
+ <o>fero (irreg)</o>
+ <t>tragen, erfordern</t>
+ </e>
+ <e>
+ <o>ferox</o>
+ <t>mutig, wild</t>
+ </e>
+ <e>
+ <o>ferrum (2)</o>
+ <t>Eisen</t>
+ </e>
+ <e>
+ <o>fessus</o>
+ <t>müde</t>
+ </e>
+ <e>
+ <o>festino (1)</o>
+ <t>eilen</t>
+ </e>
+ <e>
+ <o>fidelis</o>
+ <t>treu</t>
+ </e>
+ <e>
+ <o>fides (5)</o>
+ <t>Zuversicht</t>
+ </e>
+ <e>
+ <o>filia (1)</o>
+ <t>Tochter</t>
+ </e>
+ <e>
+ <o>filius (2)</o>
+ <t>Sohn</t>
+ </e>
+ <e>
+ <o>flos (3)</o>
+ <t>Blume</t>
+ </e>
+ <e>
+ <o>flumen (3)</o>
+ <t>Fluß</t>
+ </e>
+ <e>
+ <o>forte</o>
+ <t>energisch</t>
+ </e>
+ <e>
+ <o>fortis</o>
+ <t>stark</t>
+ </e>
+ <e>
+ <o>forum (2)</o>
+ <t>Forum, Markplatz</t>
+ </e>
+ <e>
+ <o>frango (3)</o>
+ <t>brechen</t>
+ </e>
+ <e>
+ <o>frater (3)</o>
+ <t>Bruder</t>
+ </e>
+ <e>
+ <o>frumentum (2)</o>
+ <t>Getreide</t>
+ </e>
+ <e>
+ <o>frustra</o>
+ <t>vergeblich</t>
+ </e>
+ <e>
+ <o>fugio (3)</o>
+ <t>fliehen</t>
+ </e>
+ <e>
+ <o>fundo (3)</o>
+ <t>gießen</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/GHI1.kvtml b/klatin/klatin/data/vocab/de/GHI1.kvtml
new file mode 100644
index 00000000..c172567b
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/GHI1.kvtml
@@ -0,0 +1,173 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="41"
+ title="GHI1.kvtml">
+
+ <e>
+ <o width="250" l="1">gaudeo (2)</o>
+ <t width="250" l="2">sich freuen</t>
+ </e>
+ <e>
+ <o>gaudium (2)</o>
+ <t>Freude</t>
+ </e>
+ <e>
+ <o>gero (3)</o>
+ <t>tragen, ausführen</t>
+ </e>
+ <e>
+ <o>gladius (2)</o>
+ <t>Schwert</t>
+ </e>
+ <e>
+ <o>gratias ago</o>
+ <t>danken, Dank sagen</t>
+ </e>
+ <e>
+ <o>gravis</o>
+ <t>schwer, ernst</t>
+ </e>
+ <e>
+ <o>habeo (2)</o>
+ <t>haben</t>
+ </e>
+ <e>
+ <o>habito (1)</o>
+ <t>bewohnen</t>
+ </e>
+ <e>
+ <o>heri</o>
+ <t>gestern</t>
+ </e>
+ <e>
+ <o>hic</o>
+ <t>hier</t>
+ </e>
+ <e>
+ <o>hic, haec, hoc</o>
+ <t>dies</t>
+ </e>
+ <e>
+ <o>hodie</o>
+ <t>heute</t>
+ </e>
+ <e>
+ <o>homo (3)</o>
+ <t>Mann, Mensch</t>
+ </e>
+ <e>
+ <o>honor (3)</o>
+ <t>Ehre</t>
+ </e>
+ <e>
+ <o>hora (1)</o>
+ <t>Stunde</t>
+ </e>
+ <e>
+ <o>hortor (1)</o>
+ <t>ermuntern</t>
+ </e>
+ <e>
+ <o>hortus (2)</o>
+ <t>Garten</t>
+ </e>
+ <e>
+ <o>hospes (3)</o>
+ <t>Gast, Fremder</t>
+ </e>
+ <e>
+ <o>hostis (3)</o>
+ <t>Feind</t>
+ </e>
+ <e>
+ <o>humus (2)</o>
+ <t>Boden</t>
+ </e>
+ <e>
+ <o>iaceo (2)</o>
+ <t>liegen</t>
+ </e>
+ <e>
+ <o>iacio (3)</o>
+ <t>werfen</t>
+ </e>
+ <e>
+ <o>de-/e-/in-icio</o>
+ <t>abwerfen/ausstoßen/hineinwerfen</t>
+ </e>
+ <e>
+ <o>iam</o>
+ <t>bereits, schon</t>
+ </e>
+ <e>
+ <o>ianua (1)</o>
+ <t>Tür</t>
+ </e>
+ <e>
+ <o>ibi</o>
+ <t>da, dort</t>
+ </e>
+ <e>
+ <o>idem</o>
+ <t>derselbe, dieselbe, dasselbe</t>
+ </e>
+ <e>
+ <o>igitur</o>
+ <t>also, daher</t>
+ </e>
+ <e>
+ <o>ignarus</o>
+ <t>unkundig, unwissend</t>
+ </e>
+ <e>
+ <o>ille</o>
+ <t>jener, jene, jenes</t>
+ </e>
+ <e>
+ <o>imperator (3)</o>
+ <t>Kaiser</t>
+ </e>
+ <e>
+ <o>imperium (2)</o>
+ <t>Reich, Befehl, Gebot</t>
+ </e>
+ <e>
+ <o>impero (1)</o>
+ <t>befehlen</t>
+ </e>
+ <e>
+ <o>impetus (4)</o>
+ <t>Angriff</t>
+ </e>
+ <e>
+ <o>in + abl</o>
+ <t>in, auf</t>
+ </e>
+ <e>
+ <o>in + acc</o>
+ <t>hinein, hinauf</t>
+ </e>
+ <e>
+ <o>incendo (3)</o>
+ <t>anzünden</t>
+ </e>
+ <e>
+ <o>infelix</o>
+ <t>unglücklich</t>
+ </e>
+ <e>
+ <o>ingenium (2)</o>
+ <t>Begabung</t>
+ </e>
+ <e>
+ <o>ingens</o>
+ <t>riesig</t>
+ </e>
+ <e>
+ <o>ingredior (3)</o>
+ <t>einherschreiten</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/I2L.kvtml b/klatin/klatin/data/vocab/de/I2L.kvtml
new file mode 100644
index 00000000..6f84d94f
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/I2L.kvtml
@@ -0,0 +1,189 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="45"
+ title="I2L.kvtml">
+
+ <e>
+ <o width="250" l="1">inquit (irreg)</o>
+ <t width="250" l="2">sagen</t>
+ </e>
+ <e>
+ <o>inspicio (3)</o>
+ <t>besichtigen, einsehen</t>
+ </e>
+ <e>
+ <o>insula (1)</o>
+ <t>Insel</t>
+ </e>
+ <e>
+ <o>intellego (3)</o>
+ <t>verstehen</t>
+ </e>
+ <e>
+ <o>inter + acc</o>
+ <t>unter, zwischen</t>
+ </e>
+ <e>
+ <o>interea</o>
+ <t>inzwischen</t>
+ </e>
+ <e>
+ <o>interficio (3)</o>
+ <t>töten</t>
+ </e>
+ <e>
+ <o>intro (1)</o>
+ <t>eintreten</t>
+ </e>
+ <e>
+ <o>invenio (3)</o>
+ <t>finden, erfinden</t>
+ </e>
+ <e>
+ <o>invito (1)</o>
+ <t>einladen</t>
+ </e>
+ <e>
+ <o>invitus</o>
+ <t>unwillig</t>
+ </e>
+ <e>
+ <o>ipse</o>
+ <t>selbst</t>
+ </e>
+ <e>
+ <o>ira (1)</o>
+ <t>Zorn</t>
+ </e>
+ <e>
+ <o>iratus</o>
+ <t>zornig</t>
+ </e>
+ <e>
+ <o>is, ea, id</o>
+ <t>dies, das, er, sie, es</t>
+ </e>
+ <e>
+ <o>ita</o>
+ <t>so</t>
+ </e>
+ <e>
+ <o>ita vero</o>
+ <t>ja</t>
+ </e>
+ <e>
+ <o>itaque</o>
+ <t>und so, deshalb</t>
+ </e>
+ <e>
+ <o>iter (3)</o>
+ <t>Reise</t>
+ </e>
+ <e>
+ <o>iterum</o>
+ <t>noch einmal</t>
+ </e>
+ <e>
+ <o>iubeo (2)</o>
+ <t>verordnen</t>
+ </e>
+ <e>
+ <o>iudex (3)</o>
+ <t>richten</t>
+ </e>
+ <e>
+ <o>iuvenis (3)</o>
+ <t>junger Mann, Jüngling</t>
+ </e>
+ <e>
+ <o>labor (3)</o>
+ <t>Arbeit</t>
+ </e>
+ <e>
+ <o>laboro (1)</o>
+ <t>arbeiten</t>
+ </e>
+ <e>
+ <o>lacrima (1)</o>
+ <t>Tränen</t>
+ </e>
+ <e>
+ <o>lacrimo (1)</o>
+ <t>weinen</t>
+ </e>
+ <e>
+ <o>laetus</o>
+ <t>fröhlich</t>
+ </e>
+ <e>
+ <o>latus</o>
+ <t>weit</t>
+ </e>
+ <e>
+ <o>laudo (1)</o>
+ <t>loben</t>
+ </e>
+ <e>
+ <o>legatus (2)</o>
+ <t>Gesandter</t>
+ </e>
+ <e>
+ <o>legio (3)</o>
+ <t>Legion</t>
+ </e>
+ <e>
+ <o>lego (3)</o>
+ <t>lesen</t>
+ </e>
+ <e>
+ <o>lente</o>
+ <t>slowly</t>
+ </e>
+ <e>
+ <o>leo (3)</o>
+ <t>Löwe</t>
+ </e>
+ <e>
+ <o>libenter</o>
+ <t>gern</t>
+ </e>
+ <e>
+ <o>liber</o>
+ <t>Buch</t>
+ </e>
+ <e>
+ <o>liberi (2)</o>
+ <t>Kinder</t>
+ </e>
+ <e>
+ <o>libero (1)</o>
+ <t>befreien</t>
+ </e>
+ <e>
+ <o>libertus (2)</o>
+ <t>der Freigelassene</t>
+ </e>
+ <e>
+ <o>locus (2)</o>
+ <t>Platz, Ort</t>
+ </e>
+ <e>
+ <o>longus</o>
+ <t>lang</t>
+ </e>
+ <e>
+ <o>loquor (3)</o>
+ <t>sprechen</t>
+ </e>
+ <e>
+ <o>luna (1)</o>
+ <t>Mond</t>
+ </e>
+ <e>
+ <o>lux (3)</o>
+ <t>Licht</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/M.kvtml b/klatin/klatin/data/vocab/de/M.kvtml
new file mode 100644
index 00000000..ede7e1b9
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/M.kvtml
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="30"
+ title="M.kvtml">
+
+ <e>
+ <o width="250" l="1">magnopere</o>
+ <t width="250" l="2">sehr</t>
+ </e>
+ <e>
+ <o>magnus</o>
+ <t>groß</t>
+ </e>
+ <e>
+ <o>malo (irreg)</o>
+ <t>lieber wollen</t>
+ </e>
+ <e>
+ <o>malus</o>
+ <t>böse, schlecht</t>
+ </e>
+ <e>
+ <o>maneo (2)</o>
+ <t>bleiben</t>
+ </e>
+ <e>
+ <o>manus (4)</o>
+ <t>Hand, Schar</t>
+ </e>
+ <e>
+ <o>mare (3)</o>
+ <t>Meer</t>
+ </e>
+ <e>
+ <o>maritus (2)</o>
+ <t>Ehemann</t>
+ </e>
+ <e>
+ <o>mater (3)</o>
+ <t>Mutter</t>
+ </e>
+ <e>
+ <o>maximus</o>
+ <t>der größte</t>
+ </e>
+ <e>
+ <o>medius</o>
+ <t>Mitte</t>
+ </e>
+ <e>
+ <o>mercator (3)</o>
+ <t>Kaufmann</t>
+ </e>
+ <e>
+ <o>meus</o>
+ <t>mein</t>
+ </e>
+ <e>
+ <o>miles (3)</o>
+ <t>Sodat</t>
+ </e>
+ <e>
+ <o>mille (irreg)</o>
+ <t>tausend</t>
+ </e>
+ <e>
+ <o>minimus</o>
+ <t>sehr klein, kleinster</t>
+ </e>
+ <e>
+ <o>minime</o>
+ <t>am wenigsten</t>
+ </e>
+ <e>
+ <o>mirabilis</o>
+ <t>wunderlich</t>
+ </e>
+ <e>
+ <o>miser</o>
+ <t>elend, unglücklich</t>
+ </e>
+ <e>
+ <o>mitto (3)</o>
+ <t>senden</t>
+ </e>
+ <e>
+ <o>modus (2)</o>
+ <t>Maßstab, Art</t>
+ </e>
+ <e>
+ <o>moneo (2)</o>
+ <t>warnen, erinnern</t>
+ </e>
+ <e>
+ <o>mons (3)</o>
+ <t>Berg</t>
+ </e>
+ <e>
+ <o>morior (3)</o>
+ <t>sterben</t>
+ </e>
+ <e>
+ <o>mors (3)</o>
+ <t>Tod</t>
+ </e>
+ <e>
+ <o>moveo (2)</o>
+ <t>bewegen</t>
+ </e>
+ <e>
+ <o>mox</o>
+ <t>bald</t>
+ </e>
+ <e>
+ <o>multo</o>
+ <t>viel</t>
+ </e>
+ <e>
+ <o>multus</o>
+ <t>viel, zahlreich</t>
+ </e>
+ <e>
+ <o>murus (2)</o>
+ <t>Mauer</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/Makefile.am b/klatin/klatin/data/vocab/de/Makefile.am
new file mode 100644
index 00000000..454b81b9
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/Makefile.am
@@ -0,0 +1,3 @@
+de_vocabdir = $(kde_datadir)/klatin/data/vocabs/de
+de_vocab_DATA = A.kvtml BC.kvtml D.kvtml EF.kvtml GHI1.kvtml I2L.kvtml M.kvtml N.kvtml \
+ OP1.kvtml P2.kvtml QR.kvtml S.kvtml TU.kvtml V.kvtml
diff --git a/klatin/klatin/data/vocab/de/N.kvtml b/klatin/klatin/data/vocab/de/N.kvtml
new file mode 100644
index 00000000..33ba97ab
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/N.kvtml
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="37"
+ title="N.kvtml">
+
+ <e>
+ <o width="250" l="1">nuntio (1)</o>
+ <t width="250" l="2">verkündigen</t>
+ </e>
+ <e>
+ <o>nascor (3)</o>
+ <t>geboren</t>
+ </e>
+ <e>
+ <o>numero (1)</o>
+ <t>zählen</t>
+ </e>
+ <e>
+ <o>nam</o>
+ <t>denn</t>
+ </e>
+ <e>
+ <o>-ne</o>
+ <t>fragend</t>
+ </e>
+ <e>
+ <o>neco (1)</o>
+ <t>töten</t>
+ </e>
+ <e>
+ <o>notus</o>
+ <t>bekannt</t>
+ </e>
+ <e>
+ <o>nuntius (2)</o>
+ <t>Bote, Botschaft</t>
+ </e>
+ <e>
+ <o>nomen (3)</o>
+ <t>Name</t>
+ </e>
+ <e>
+ <o>nec... nec</o>
+ <t>weder... noch</t>
+ </e>
+ <e>
+ <o>numquam</o>
+ <t>nie</t>
+ </e>
+ <e>
+ <o>novus</o>
+ <t>neu</t>
+ </e>
+ <e>
+ <o>nox (3)</o>
+ <t>Nacht</t>
+ </e>
+ <e>
+ <o>novem</o>
+ <t>neun</t>
+ </e>
+ <e>
+ <o>nemo (irreg)</o>
+ <t>keiner, niemand</t>
+ </e>
+ <e>
+ <o>nobilis</o>
+ <t>vornehm, adelig</t>
+ </e>
+ <e>
+ <o>non </o>
+ <t>nicht</t>
+ </e>
+ <e>
+ <o>nullus</o>
+ <t>keiner, niemand</t>
+ </e>
+ <e>
+ <o>ne quidem</o>
+ <t>nicht einmal</t>
+ </e>
+ <e>
+ <o>nescio (4)</o>
+ <t>nicht wissen</t>
+ </e>
+ <e>
+ <o>nolo (irreg)</o>
+ <t>nicht wollen</t>
+ </e>
+ <e>
+ <o>nihil (irreg)</o>
+ <t>nichts</t>
+ </e>
+ <e>
+ <o>nunc</o>
+ <t>jetzt</t>
+ </e>
+ <e>
+ <o>nusquam</o>
+ <t>nirgends</t>
+ </e>
+ <e>
+ <o>numerus (2)</o>
+ <t>Zahl, Nummer</t>
+ </e>
+ <e>
+ <o>noster</o>
+ <t>unser</t>
+ </e>
+ <e>
+ <o>navigo (1)</o>
+ <t>schiffen</t>
+ </e>
+ <e>
+ <o>nauta (1)</o>
+ <t>Seemann</t>
+ </e>
+ <e>
+ <o>navis (3)</o>
+ <t>Schiff</t>
+ </e>
+ <e>
+ <o>nonnulli</o>
+ <t>einige, manche</t>
+ </e>
+ <e>
+ <o>num...?</o>
+ <t>nun doch</t>
+ </e>
+ <e>
+ <o>nonne?</o>
+ <t>nicht wahr</t>
+ </e>
+ <e>
+ <o>narro (1)</o>
+ <t>erzählen</t>
+ </e>
+ <e>
+ <o>ne</o>
+ <t>nicht, damit nicht</t>
+ </e>
+ <e>
+ <o>nisi</o>
+ <t>wenn nicht</t>
+ </e>
+ <e>
+ <o>nos</o>
+ <t>wir, uns</t>
+ </e>
+ <e>
+ <o>num</o>
+ <t>nun doch</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/OP1.kvtml b/klatin/klatin/data/vocab/de/OP1.kvtml
new file mode 100644
index 00000000..70d023f5
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/OP1.kvtml
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="34"
+ title="OP1.kvtml">
+
+ <e>
+ <o width="250" l="1">occido (3)</o>
+ <t width="369" l="2">töten</t>
+ </e>
+ <e>
+ <o>octo</o>
+ <t>acht</t>
+ </e>
+ <e>
+ <o>oculus (2)</o>
+ <t>Auge</t>
+ </e>
+ <e>
+ <o>odi (defect)</o>
+ <t>hassen</t>
+ </e>
+ <e>
+ <o>offero (irref)</o>
+ <t>anbieten</t>
+ </e>
+ <e>
+ <o>olim</o>
+ <t>einst, ehemals</t>
+ </e>
+ <e>
+ <o>omnis</o>
+ <t>alles, jeder</t>
+ </e>
+ <e>
+ <o>opprimo (3)</o>
+ <t>niederdrücken</t>
+ </e>
+ <e>
+ <o>oppugno (1)</o>
+ <t>angreifen</t>
+ </e>
+ <e>
+ <o>optimus</o>
+ <t>sehr gut, der beste</t>
+ </e>
+ <e>
+ <o>opus (3)</o>
+ <t>Werk</t>
+ </e>
+ <e>
+ <o>oro (1)</o>
+ <t>beten</t>
+ </e>
+ <e>
+ <o>ostendo (3)</o>
+ <t>zeigen</t>
+ </e>
+ <e>
+ <o>paene</o>
+ <t>fast, beinahe</t>
+ </e>
+ <e>
+ <o>pareo (2)</o>
+ <t>gehorchen</t>
+ </e>
+ <e>
+ <o>paro (1)</o>
+ <t>vorbereiten</t>
+ </e>
+ <e>
+ <o>pars (3)</o>
+ <t>Teil</t>
+ </e>
+ <e>
+ <o>parvus</o>
+ <t>klein</t>
+ </e>
+ <e>
+ <o>pater (3)</o>
+ <t>Vater</t>
+ </e>
+ <e>
+ <o>patior (3)</o>
+ <t>ertragen</t>
+ </e>
+ <e>
+ <o>pauci</o>
+ <t>wenige</t>
+ </e>
+ <e>
+ <o>pauper</o>
+ <t>arm</t>
+ </e>
+ <e>
+ <o>pax (3)</o>
+ <t>Frieden</t>
+ </e>
+ <e>
+ <o>pecunia (1)</o>
+ <t>Geld</t>
+ </e>
+ <e>
+ <o>per + acc</o>
+ <t>aus, durch</t>
+ </e>
+ <e>
+ <o>periculum (2)</o>
+ <t>Gefahr</t>
+ </e>
+ <e>
+ <o>periculosus </o>
+ <t>gefährlich</t>
+ </e>
+ <e>
+ <o>persuadeo (2)</o>
+ <t>überzeugen</t>
+ </e>
+ <e>
+ <o>perterritus</o>
+ <t>erschrecken</t>
+ </e>
+ <e>
+ <o>pervenio (4)</o>
+ <t>ankommen</t>
+ </e>
+ <e>
+ <o>pes (3)</o>
+ <t>Fuss, Schritt</t>
+ </e>
+ <e>
+ <o>pessimus</o>
+ <t>am schlechtesten</t>
+ </e>
+ <e>
+ <o>peto (3)</o>
+ <t>aufsuchen, beanspruchen</t>
+ </e>
+ <e>
+ <o>placet (2, impersonal)</o>
+ <t>gefallen</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/P2.kvtml b/klatin/klatin/data/vocab/de/P2.kvtml
new file mode 100644
index 00000000..b6468ae7
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/P2.kvtml
@@ -0,0 +1,153 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="36"
+ title="P2.kvtml">
+
+ <e>
+ <o width="250" l="1">plenus</o>
+ <t width="250" l="2">voll</t>
+ </e>
+ <e>
+ <o>plurimus</o>
+ <t>das meiste, sehr viel</t>
+ </e>
+ <e>
+ <o>plus</o>
+ <t>mehr</t>
+ </e>
+ <e>
+ <o>poena (1)</o>
+ <t>Strafe</t>
+ </e>
+ <e>
+ <o>poenas do</o>
+ <t>bestrafen</t>
+ </e>
+ <e>
+ <o>pono (3)</o>
+ <t>zurücklegen</t>
+ </e>
+ <e>
+ <o>pons (3)</o>
+ <t>Brücke</t>
+ </e>
+ <e>
+ <o>populus (2) </o>
+ <t>Volk</t>
+ </e>
+ <e>
+ <o>porta (1)</o>
+ <t>Tor</t>
+ </e>
+ <e>
+ <o>porto (1)</o>
+ <t>tragen</t>
+ </e>
+ <e>
+ <o>portus (4)</o>
+ <t>Hafen</t>
+ </e>
+ <e>
+ <o>possum (irreg)</o>
+ <t>können</t>
+ </e>
+ <e>
+ <o>post + acc</o>
+ <t>hinter, nach</t>
+ </e>
+ <e>
+ <o>postea</o>
+ <t>nachher</t>
+ </e>
+ <e>
+ <o>postquam</o>
+ <t>nachdem</t>
+ </e>
+ <e>
+ <o>postridie</o>
+ <t>am folgenden Tag</t>
+ </e>
+ <e>
+ <o>postulo (1)</o>
+ <t>fordern</t>
+ </e>
+ <e>
+ <o>praebeo (2)</o>
+ <t>darreichen, gewähren</t>
+ </e>
+ <e>
+ <o>praemium (2)</o>
+ <t>Lohn, Belohnung</t>
+ </e>
+ <e>
+ <o>pretium (2)</o>
+ <t>Preis</t>
+ </e>
+ <e>
+ <o>primus</o>
+ <t>erste, erster, erstes</t>
+ </e>
+ <e>
+ <o>princeps (3)</o>
+ <t>Fürst</t>
+ </e>
+ <e>
+ <o>priusquam</o>
+ <t>bevor</t>
+ </e>
+ <e>
+ <o>pro + abl</o>
+ <t>für</t>
+ </e>
+ <e>
+ <o>procedo (3)</o>
+ <t>vorwärtsschreiten</t>
+ </e>
+ <e>
+ <o>procul</o>
+ <t>fern</t>
+ </e>
+ <e>
+ <o>proficiscor (3)</o>
+ <t>aufbrechen</t>
+ </e>
+ <e>
+ <o>progredior (3)</o>
+ <t>vorschreiten</t>
+ </e>
+ <e>
+ <o>promitto (3)</o>
+ <t>versprechen</t>
+ </e>
+ <e>
+ <o>prope + acc</o>
+ <t>nahe</t>
+ </e>
+ <e>
+ <o>proximus</o>
+ <t>nächster</t>
+ </e>
+ <e>
+ <o>puella (1)</o>
+ <t>Mädchen</t>
+ </e>
+ <e>
+ <o>puer (2)</o>
+ <t>Junge</t>
+ </e>
+ <e>
+ <o>pugno (1)</o>
+ <t>kämpfen</t>
+ </e>
+ <e>
+ <o>pulcher</o>
+ <t>hübsch, schön</t>
+ </e>
+ <e>
+ <o>punio (4)</o>
+ <t>strafen</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/QR.kvtml b/klatin/klatin/data/vocab/de/QR.kvtml
new file mode 100644
index 00000000..4e40e318
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/QR.kvtml
@@ -0,0 +1,149 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="35"
+ title="QR.kvtml">
+
+ <e>
+ <o width="250" l="1">quaero (3)</o>
+ <t width="250" l="2">suchen, forschen</t>
+ </e>
+ <e>
+ <o>qualis</o>
+ <t>wie beschaffen</t>
+ </e>
+ <e>
+ <o>quam</o>
+ <t>wie, als</t>
+ </e>
+ <e>
+ <o>quamquam</o>
+ <t>obwohl</t>
+ </e>
+ <e>
+ <o>quantus?</o>
+ <t>wie groß</t>
+ </e>
+ <e>
+ <o>quattuor</o>
+ <t>vier</t>
+ </e>
+ <e>
+ <o>-que</o>
+ <t>und</t>
+ </e>
+ <e>
+ <o>qui</o>
+ <t>welcher, wie</t>
+ </e>
+ <e>
+ <o>quidam</o>
+ <t>ein gewisser</t>
+ </e>
+ <e>
+ <o>quinque</o>
+ <t>fünf</t>
+ </e>
+ <e>
+ <o>quis?</o>
+ <t>wer, jemand</t>
+ </e>
+ <e>
+ <o>quo?</o>
+ <t>wohin</t>
+ </e>
+ <e>
+ <o>quod</o>
+ <t>weil</t>
+ </e>
+ <e>
+ <o>quo modo?</o>
+ <t>wie, auf welche Weise</t>
+ </e>
+ <e>
+ <o>quoque</o>
+ <t>auch</t>
+ </e>
+ <e>
+ <o>quot?</o>
+ <t>wie viele</t>
+ </e>
+ <e>
+ <o>rapio (3)</o>
+ <t>rauben, wegschleppen</t>
+ </e>
+ <e>
+ <o>re-</o>
+ <t>-zurück</t>
+ </e>
+ <e>
+ <o>reddo (3)</o>
+ <t>zurückgeben</t>
+ </e>
+ <e>
+ <o>redeo (irreg)</o>
+ <t>zurückgehen</t>
+ </e>
+ <e>
+ <o>refero (irreg)</o>
+ <t>zurücktragen</t>
+ </e>
+ <e>
+ <o>reficio (3)</o>
+ <t>wiederherstellen</t>
+ </e>
+ <e>
+ <o>regina (1)</o>
+ <t>Königin</t>
+ </e>
+ <e>
+ <o>regnum (2)</o>
+ <t>Königreich</t>
+ </e>
+ <e>
+ <o>regredior (3)</o>
+ <t>zurückgehen</t>
+ </e>
+ <e>
+ <o>relinquo (3)</o>
+ <t>aufgeben, zurücklassen</t>
+ </e>
+ <e>
+ <o>res (5)</o>
+ <t>Sache, Angelegenheit</t>
+ </e>
+ <e>
+ <o>resisto (3)</o>
+ <t>stehen bleiben widerstehen</t>
+ </e>
+ <e>
+ <o>respondeo (2)</o>
+ <t>antworten</t>
+ </e>
+ <e>
+ <o>rex (3)</o>
+ <t>König</t>
+ </e>
+ <e>
+ <o>rideo (2)</o>
+ <t>lachen</t>
+ </e>
+ <e>
+ <o>rogo (1)</o>
+ <t>holen, fragen</t>
+ </e>
+ <e>
+ <o>Roma (1)</o>
+ <t>Rom</t>
+ </e>
+ <e>
+ <o>Romanus</o>
+ <t>Römer</t>
+ </e>
+ <e>
+ <o>rursus</o>
+ <t>rückwärts</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/S.kvtml b/klatin/klatin/data/vocab/de/S.kvtml
new file mode 100644
index 00000000..3359d9f1
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/S.kvtml
@@ -0,0 +1,225 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="54"
+ title="S.kvtml">
+
+ <e>
+ <o width="250" l="1">sacer</o>
+ <t width="250" l="2">heilig</t>
+ </e>
+ <e>
+ <o>sacerdos (3)</o>
+ <t>Priester</t>
+ </e>
+ <e>
+ <o>saepe</o>
+ <t>oft</t>
+ </e>
+ <e>
+ <o>saevus</o>
+ <t>tobend, wild</t>
+ </e>
+ <e>
+ <o>salus (3)</o>
+ <t>Sicherheit, Wohlbefinden</t>
+ </e>
+ <e>
+ <o>saluto (1)</o>
+ <t>grüßen</t>
+ </e>
+ <e>
+ <o>salve!</o>
+ <t>Sei gegrüßt</t>
+ </e>
+ <e>
+ <o>sanguis (3)</o>
+ <t>Blut</t>
+ </e>
+ <e>
+ <o>sapiens</o>
+ <t>weise</t>
+ </e>
+ <e>
+ <o>satis</o>
+ <t>genug</t>
+ </e>
+ <e>
+ <o>saxum (2)</o>
+ <t>Felsen</t>
+ </e>
+ <e>
+ <o>scio (4)</o>
+ <t>wissen</t>
+ </e>
+ <e>
+ <o>scribo (3)</o>
+ <t>schreiben</t>
+ </e>
+ <e>
+ <o>se</o>
+ <t>sich</t>
+ </e>
+ <e>
+ <o>sed</o>
+ <t>aber</t>
+ </e>
+ <e>
+ <o>sedeo (2)</o>
+ <t>sitzen</t>
+ </e>
+ <e>
+ <o>semper</o>
+ <t>immer</t>
+ </e>
+ <e>
+ <o>senator (3)</o>
+ <t>Senator</t>
+ </e>
+ <e>
+ <o>senex (3)</o>
+ <t>Greis</t>
+ </e>
+ <e>
+ <o>sentio (4)</o>
+ <t>fühlen</t>
+ </e>
+ <e>
+ <o>septem</o>
+ <t>sieben</t>
+ </e>
+ <e>
+ <o>sequor (3)</o>
+ <t>folgen</t>
+ </e>
+ <e>
+ <o>sermo (3)</o>
+ <t>Gespräch</t>
+ </e>
+ <e>
+ <o>servo (1)</o>
+ <t>retten, beobachten</t>
+ </e>
+ <e>
+ <o>servus (2)</o>
+ <t>Sklave</t>
+ </e>
+ <e>
+ <o>severus</o>
+ <t>streng</t>
+ </e>
+ <e>
+ <o>sex</o>
+ <t>sechs</t>
+ </e>
+ <e>
+ <o>si</o>
+ <t>wenn</t>
+ </e>
+ <e>
+ <o>sic</o>
+ <t>so, auf diese Weise</t>
+ </e>
+ <e>
+ <o>sicut</o>
+ <t>sowie</t>
+ </e>
+ <e>
+ <o>signum (2)</o>
+ <t>Zeichen, Merkmal</t>
+ </e>
+ <e>
+ <o>silva (1)</o>
+ <t>Wald</t>
+ </e>
+ <e>
+ <o>simulac</o>
+ <t>sobald als</t>
+ </e>
+ <e>
+ <o>sine + abl</o>
+ <t>ohne</t>
+ </e>
+ <e>
+ <o>sol (3)</o>
+ <t>Sonne</t>
+ </e>
+ <e>
+ <o>soleo (2)</o>
+ <t>gewohnt sein</t>
+ </e>
+ <e>
+ <o>solus</o>
+ <t>allein, einsam</t>
+ </e>
+ <e>
+ <o>sonitus (4)</o>
+ <t>Klang</t>
+ </e>
+ <e>
+ <o>soror (3)</o>
+ <t>Schwester</t>
+ </e>
+ <e>
+ <o>specto (1)</o>
+ <t>schauen, betrachten</t>
+ </e>
+ <e>
+ <o>spero (1)</o>
+ <t>hoffen, erwarten</t>
+ </e>
+ <e>
+ <o>spes (5)</o>
+ <t>Hoffnung</t>
+ </e>
+ <e>
+ <o>statim</o>
+ <t>sofort, gleich</t>
+ </e>
+ <e>
+ <o>sto (1)</o>
+ <t>stehen</t>
+ </e>
+ <e>
+ <o>stultus</o>
+ <t>dumm, töricht</t>
+ </e>
+ <e>
+ <o>suavis</o>
+ <t>angenehm</t>
+ </e>
+ <e>
+ <o>sub + acc/abl</o>
+ <t>unter, darunter</t>
+ </e>
+ <e>
+ <o>subito</o>
+ <t>plötzlich</t>
+ </e>
+ <e>
+ <o>sum (irreg)</o>
+ <t>sein</t>
+ </e>
+ <e>
+ <o>summus</o>
+ <t>höchster, größter</t>
+ </e>
+ <e>
+ <o>superbus</o>
+ <t>stolz, hochmütig</t>
+ </e>
+ <e>
+ <o>supero (1)</o>
+ <t>überwinden, übertreffen</t>
+ </e>
+ <e>
+ <o>surgo (3)</o>
+ <t>aufstehen, errichten</t>
+ </e>
+ <e>
+ <o>suus</o>
+ <t>sein, ihr</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/TU.kvtml b/klatin/klatin/data/vocab/de/TU.kvtml
new file mode 100644
index 00000000..2d32cf4b
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/TU.kvtml
@@ -0,0 +1,165 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="39"
+ title="TU.kvtml">
+
+ <e>
+ <o width="250" l="1">taberna (1)</o>
+ <t width="250" l="2">Geschäft, Wirtshaus</t>
+ </e>
+ <e>
+ <o>taceo (2)</o>
+ <t>schweigen</t>
+ </e>
+ <e>
+ <o>talis</o>
+ <t>solcher</t>
+ </e>
+ <e>
+ <o>tam</o>
+ <t>so</t>
+ </e>
+ <e>
+ <o>tamen</o>
+ <t>jedoch</t>
+ </e>
+ <e>
+ <o>tandem</o>
+ <t>endlich</t>
+ </e>
+ <e>
+ <o>tantus</o>
+ <t>so groß</t>
+ </e>
+ <e>
+ <o>templum (2)</o>
+ <t>Tempel</t>
+ </e>
+ <e>
+ <o>tempestas (3)</o>
+ <t>Sturm</t>
+ </e>
+ <e>
+ <o>tempus (3)</o>
+ <t>Zeit</t>
+ </e>
+ <e>
+ <o>teneo (2)</o>
+ <t>halten</t>
+ </e>
+ <e>
+ <o>terra (1)</o>
+ <t>Boden, Land</t>
+ </e>
+ <e>
+ <o>terreo (2)</o>
+ <t>erschrecken</t>
+ </e>
+ <e>
+ <o>timeo (2)</o>
+ <t>fürchten, sich ängstigen</t>
+ </e>
+ <e>
+ <o>tollo (3)</o>
+ <t>aufheben, hochheben</t>
+ </e>
+ <e>
+ <o>tot</o>
+ <t>so viele</t>
+ </e>
+ <e>
+ <o>totus</o>
+ <t>ganz</t>
+ </e>
+ <e>
+ <o>trado (3)</o>
+ <t>übergeben</t>
+ </e>
+ <e>
+ <o>traho (3)</o>
+ <t>ziehen</t>
+ </e>
+ <e>
+ <o>trans + acc</o>
+ <t>hinüber</t>
+ </e>
+ <e>
+ <o>tres </o>
+ <t>drei</t>
+ </e>
+ <e>
+ <o>tristis</o>
+ <t>traurig</t>
+ </e>
+ <e>
+ <o>tu</o>
+ <t>du</t>
+ </e>
+ <e>
+ <o>tum</o>
+ <t>dann</t>
+ </e>
+ <e>
+ <o>turba (1)</o>
+ <t>Menge</t>
+ </e>
+ <e>
+ <o>tutus</o>
+ <t>sicher</t>
+ </e>
+ <e>
+ <o>tuus</o>
+ <t>dein</t>
+ </e>
+ <e>
+ <o>ubi</o>
+ <t>wo?, als, da</t>
+ </e>
+ <e>
+ <o>ultimus</o>
+ <t>äußerste, letzte</t>
+ </e>
+ <e>
+ <o>umquam</o>
+ <t>jemals</t>
+ </e>
+ <e>
+ <o>unda (1)</o>
+ <t>Welle</t>
+ </e>
+ <e>
+ <o>unde</o>
+ <t>woher</t>
+ </e>
+ <e>
+ <o>unus</o>
+ <t>eins</t>
+ </e>
+ <e>
+ <o>urbs (3)</o>
+ <t>Stadt</t>
+ </e>
+ <e>
+ <o>ut + indic</o>
+ <t>wie</t>
+ </e>
+ <e>
+ <o>ut + subj</o>
+ <t>dass, so dass</t>
+ </e>
+ <e>
+ <o>utilis</o>
+ <t>brauchbar</t>
+ </e>
+ <e>
+ <o>utrum... an</o>
+ <t>ob ... oder</t>
+ </e>
+ <e>
+ <o>uxor (3)</o>
+ <t>Ehefrau</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/de/V.kvtml b/klatin/klatin/data/vocab/de/V.kvtml
new file mode 100644
index 00000000..334b1b1d
--- /dev/null
+++ b/klatin/klatin/data/vocab/de/V.kvtml
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml
+ generator="kwordquiz 0.7"
+ cols="2"
+ lines="29"
+ title="V.kvtml">
+
+ <e>
+ <o width="250" l="1">valde</o>
+ <t width="250" l="2">sehr</t>
+ </e>
+ <e>
+ <o>vale</o>
+ <t>Lebewohl</t>
+ </e>
+ <e>
+ <o>vehementer</o>
+ <t>heftig</t>
+ </e>
+ <e>
+ <o>veho (3)</o>
+ <t>tragen</t>
+ </e>
+ <e>
+ <o>vendo (3)</o>
+ <t>verkaufen</t>
+ </e>
+ <e>
+ <o>venio (4)</o>
+ <t>kommen</t>
+ </e>
+ <e>
+ <o>ventus (2)</o>
+ <t>Wind</t>
+ </e>
+ <e>
+ <o>verbum (2)</o>
+ <t>Wort</t>
+ </e>
+ <e>
+ <o>verto (3)</o>
+ <t>wenden</t>
+ </e>
+ <e>
+ <o>verus</o>
+ <t>echt, wahr</t>
+ </e>
+ <e>
+ <o>vester</o>
+ <t>euer</t>
+ </e>
+ <e>
+ <o>vestimenta (2)</o>
+ <t>Kleidung</t>
+ </e>
+ <e>
+ <o>via (1)</o>
+ <t>Straße, Weg</t>
+ </e>
+ <e>
+ <o>video (2)</o>
+ <t>sehen</t>
+ </e>
+ <e>
+ <o>villa (1)</o>
+ <t>Haus, Bauernhof</t>
+ </e>
+ <e>
+ <o>vinco (3)</o>
+ <t>siegen</t>
+ </e>
+ <e>
+ <o>vinum (2)</o>
+ <t>Wein</t>
+ </e>
+ <e>
+ <o>vir (2)</o>
+ <t>Mann</t>
+ </e>
+ <e>
+ <o>vita (1)</o>
+ <t>Leben</t>
+ </e>
+ <e>
+ <o>vivo (3)</o>
+ <t>leben</t>
+ </e>
+ <e>
+ <o>vivus</o>
+ <t>lebend</t>
+ </e>
+ <e>
+ <o>vix</o>
+ <t>kaum</t>
+ </e>
+ <e>
+ <o>voco (1)</o>
+ <t>rufen</t>
+ </e>
+ <e>
+ <o>volo (irreg)</o>
+ <t>wollen</t>
+ </e>
+ <e>
+ <o>vos</o>
+ <t>Ihr (plural)</t>
+ </e>
+ <e>
+ <o>vox (3)</o>
+ <t>Stimme, Ruf</t>
+ </e>
+ <e>
+ <o>vulnero (1)</o>
+ <t>verwunden, verletzen</t>
+ </e>
+ <e>
+ <o>vulnus (3)</o>
+ <t>Wunde</t>
+ </e>
+ <e>
+ <o>vultus (4)</o>
+ <t>Miene, Gesicht</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/A.kvtml b/klatin/klatin/data/vocab/en/A.kvtml
new file mode 100644
index 00000000..7c0c8e98
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/A.kvtml
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>a, ab + abl</o>
+ <t>from, by</t>
+ </e>
+ <e>
+ <o>absum (irreg)</o>
+ <t>be out, be absent, be away</t>
+ </e>
+ <e>
+ <o>ac, atque</o>
+ <t>and</t>
+ </e>
+ <e>
+ <o>accido (3)</o>
+ <t>happen</t>
+ </e>
+ <e>
+ <o>accipio (3)</o>
+ <t>accept, take in, receive</t>
+ </e>
+ <e>
+ <o>accuso (1)</o>
+ <t>accuse</t>
+ </e>
+ <e>
+ <o>ad + acc</o>
+ <t>to, towards, at</t>
+ </e>
+ <e>
+ <o>adeo</o>
+ <t>so much, so greatly</t>
+ </e>
+ <e>
+ <o>adhuc</o>
+ <t>up till now, still</t>
+ </e>
+ <e>
+ <o>adiuvo (1)</o>
+ <t>help</t>
+ </e>
+ <e>
+ <o>adsum (irreg)</o>
+ <t>be here, be present</t>
+ </e>
+ <e>
+ <o>advenio (4)</o>
+ <t>arrive</t>
+ </e>
+ <e>
+ <o>adversus</o>
+ <t>hostile, unfavourable</t>
+ </e>
+ <e>
+ <o>aedificium</o>
+ <t>building</t>
+ </e>
+ <e>
+ <o>aedifico (1)</o>
+ <t>build</t>
+ </e>
+ <e>
+ <o>ago (1)</o>
+ <t>do, act</t>
+ </e>
+ <e>
+ <o>gratias ago (1)</o>
+ <t>thank, give thanks</t>
+ </e>
+ <e>
+ <o>agricola (1)</o>
+ <t>farmer</t>
+ </e>
+ <e>
+ <o>aliquis</o>
+ <t>someone, something</t>
+ </e>
+ <e>
+ <o>alius</o>
+ <t>other, another, else</t>
+ </e>
+ <e>
+ <o>alii...alii</o>
+ <t>some...others</t>
+ </e>
+ <e>
+ <o>alter</o>
+ <t>the other, the second of two, another</t>
+ </e>
+ <e>
+ <o>altus</o>
+ <t>high, deep</t>
+ </e>
+ <e>
+ <o>ambulo (1)</o>
+ <t>walk</t>
+ </e>
+ <e>
+ <o>amitto (3)</o>
+ <t>lose</t>
+ </e>
+ <e>
+ <o>amo (1)</o>
+ <t>love, like</t>
+ </e>
+ <e>
+ <o>amor (3)</o>
+ <t>love</t>
+ </e>
+ <e>
+ <o>ancilla (1)</o>
+ <t>slave girl, maid</t>
+ </e>
+ <e>
+ <o>animus (2)</o>
+ <t>spirit, soul, mind</t>
+ </e>
+ <e>
+ <o>annus (2)</o>
+ <t>year</t>
+ </e>
+ <e>
+ <o>ante + acc</o>
+ <t>before, in front of</t>
+ </e>
+ <e>
+ <o>antea</o>
+ <t>before</t>
+ </e>
+ <e>
+ <o>aperio (4)</o>
+ <t>open</t>
+ </e>
+ <e>
+ <o>appareo (2)</o>
+ <t>appear</t>
+ </e>
+ <e>
+ <o>appropinquo (1)</o>
+ <t>approach, come near to</t>
+ </e>
+ <e>
+ <o>apud + acc</o>
+ <t>among, with, at the house of</t>
+ </e>
+ <e>
+ <o>aqua (1)</o>
+ <t>water</t>
+ </e>
+ <e>
+ <o>ara (1)</o>
+ <t>altar</t>
+ </e>
+ <e>
+ <o>arcesso (3)</o>
+ <t>summon, send for</t>
+ </e>
+ <e>
+ <o>ars (3)</o>
+ <t>art, skill</t>
+ </e>
+ <e>
+ <o>ascendo (3)</o>
+ <t>climb</t>
+ </e>
+ <e>
+ <o>audax</o>
+ <t>bold, daring</t>
+ </e>
+ <e>
+ <o>audeo (2)</o>
+ <t>dare</t>
+ </e>
+ <e>
+ <o>audio (4)</o>
+ <t>hear, listen to</t>
+ </e>
+ <e>
+ <o>aufero (3)</o>
+ <t>take away, carry off, steal</t>
+ </e>
+ <e>
+ <o>autem</o>
+ <t>but, however</t>
+ </e>
+ <e>
+ <o>auxilium (2)</o>
+ <t>help</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/BC.kvtml b/klatin/klatin/data/vocab/en/BC.kvtml
new file mode 100644
index 00000000..5daf4b83
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/BC.kvtml
@@ -0,0 +1,224 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>bellum (2)</o>
+ <t>war</t>
+ </e>
+ <e>
+ <o>bellum gerere</o>
+ <t>wage war, campaign</t>
+ </e>
+ <e>
+ <o>bene</o>
+ <t>well</t>
+ </e>
+ <e>
+ <o>bibo (3)</o>
+ <t>drink</t>
+ </e>
+ <e>
+ <o>bonus, a, um</o>
+ <t>good</t>
+ </e>
+ <e>
+ <o>brevis</o>
+ <t>short, brief</t>
+ </e>
+ <e>
+ <o>caelum (2)</o>
+ <t>sky, heaven</t>
+ </e>
+ <e>
+ <o>canis (3)</o>
+ <t>dog</t>
+ </e>
+ <e>
+ <o>canto (1)</o>
+ <t>sing, play (musical)</t>
+ </e>
+ <e>
+ <o>capio (3)</o>
+ <t>take, catch, capture</t>
+ </e>
+ <e>
+ <o>captivus (2)</o>
+ <t>captive, prisoner</t>
+ </e>
+ <e>
+ <o>caput (3)</o>
+ <t>head</t>
+ </e>
+ <e>
+ <o>carmen (3)</o>
+ <t>song, poem</t>
+ </e>
+ <e>
+ <o>carus</o>
+ <t>dear</t>
+ </e>
+ <e>
+ <o>castra (2)</o>
+ <t>camp</t>
+ </e>
+ <e>
+ <o>celer</o>
+ <t>quick, fast</t>
+ </e>
+ <e>
+ <o>celo (1)</o>
+ <t>hide</t>
+ </e>
+ <e>
+ <o>cena (1)</o>
+ <t>dinner</t>
+ </e>
+ <e>
+ <o>centum</o>
+ <t>a hundred</t>
+ </e>
+ <e>
+ <o>ceteri</o>
+ <t>the rest, the others</t>
+ </e>
+ <e>
+ <o>cibus (2)</o>
+ <t>food</t>
+ </e>
+ <e>
+ <o>circum</o>
+ <t>around</t>
+ </e>
+ <e>
+ <o>civis (3)</o>
+ <t>citizen</t>
+ </e>
+ <e>
+ <o>clamo (1)</o>
+ <t>shout</t>
+ </e>
+ <e>
+ <o>clamor (3)</o>
+ <t>shout, shouting, noise</t>
+ </e>
+ <e>
+ <o>coepi (past tenses only)</o>
+ <t>begin</t>
+ </e>
+ <e>
+ <o>cogito (1)</o>
+ <t>think</t>
+ </e>
+ <e>
+ <o>cognosco (3)</o>
+ <t>get to know, find out</t>
+ </e>
+ <e>
+ <o>cogo (3)</o>
+ <t>force, compel</t>
+ </e>
+ <e>
+ <o>comes (3)</o>
+ <t>comrade, companion</t>
+ </e>
+ <e>
+ <o>conficio (3)</o>
+ <t>finish; wear out, exhaust</t>
+ </e>
+ <e>
+ <o>conor (1)</o>
+ <t>try</t>
+ </e>
+ <e>
+ <o>consentio (4)</o>
+ <t>agree</t>
+ </e>
+ <e>
+ <o>consilium (2)</o>
+ <t>plan, idea, advice</t>
+ </e>
+ <e>
+ <o>conspicio (3)</o>
+ <t>catch sight of, notice</t>
+ </e>
+ <e>
+ <o>consisto (3)</o>
+ <t>halt, stop, stand still</t>
+ </e>
+ <e>
+ <o>constituo (3)</o>
+ <t>decide</t>
+ </e>
+ <e>
+ <o>consumo (3)</o>
+ <t>eat</t>
+ </e>
+ <e>
+ <o>contendo (3)</o>
+ <t>hurry</t>
+ </e>
+ <e>
+ <o>contra</o>
+ <t>against</t>
+ </e>
+ <e>
+ <o>convenio (4)</o>
+ <t>come together, gather, meet</t>
+ </e>
+ <e>
+ <o>corpus (3)</o>
+ <t>body</t>
+ </e>
+ <e>
+ <o>cotidie</o>
+ <t>every day</t>
+ </e>
+ <e>
+ <o>cras</o>
+ <t>tomorrow</t>
+ </e>
+ <e>
+ <o>crudelis</o>
+ <t>cruel</t>
+ </e>
+ <e>
+ <o>cum</o>
+ <t>when</t>
+ </e>
+ <e>
+ <o>credo (3)</o>
+ <t>believe, trust, have faith in</t>
+ </e>
+ <e>
+ <o>cum + abl</o>
+ <t>with</t>
+ </e>
+ <e>
+ <o>cupio (3)</o>
+ <t>want, desire</t>
+ </e>
+ <e>
+ <o>cur?</o>
+ <t>why?</t>
+ </e>
+ <e>
+ <o>cura (1)</o>
+ <t>care, worry</t>
+ </e>
+ <e>
+ <o>curo (1)</o>
+ <t>look after, care for, supervise</t>
+ </e>
+ <e>
+ <o>curro (3)</o>
+ <t>run</t>
+ </e>
+ <e>
+ <o>custodio (4)</o>
+ <t>guard</t>
+ </e>
+ <e>
+ <o>custos (3)</o>
+ <t>guard</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/D.kvtml b/klatin/klatin/data/vocab/en/D.kvtml
new file mode 100644
index 00000000..f0d12dc9
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/D.kvtml
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>de + abl</o>
+ <t>from, down from; about</t>
+ </e>
+ <e>
+ <o>dea (1)</o>
+ <t>goddess</t>
+ </e>
+ <e>
+ <o>debeo (2)</o>
+ <t>owe, ought, should, must</t>
+ </e>
+ <e>
+ <o>decem</o>
+ <t>ten</t>
+ </e>
+ <e>
+ <o>decido (3)</o>
+ <t>fall down</t>
+ </e>
+ <e>
+ <o>defendo (3)</o>
+ <t>defend</t>
+ </e>
+ <e>
+ <o>deinde</o>
+ <t>then</t>
+ </e>
+ <e>
+ <o>deleo (2)</o>
+ <t>destroy</t>
+ </e>
+ <e>
+ <o>descendo (3)</o>
+ <t>go down, come down</t>
+ </e>
+ <e>
+ <o>despero (1)</o>
+ <t>despair</t>
+ </e>
+ <e>
+ <o>deus (2)</o>
+ <t>god</t>
+ </e>
+ <e>
+ <o>dico (3)</o>
+ <t>say</t>
+ </e>
+ <e>
+ <o>dies (5)</o>
+ <t>day</t>
+ </e>
+ <e>
+ <o>difficilis</o>
+ <t>difficult</t>
+ </e>
+ <e>
+ <o>dirus</o>
+ <t>dreadful</t>
+ </e>
+ <e>
+ <o>diligenter</o>
+ <t>carefully</t>
+ </e>
+ <e>
+ <o>discedo (3)</o>
+ <t>depart, leave</t>
+ </e>
+ <e>
+ <o>diu</o>
+ <t>for a long time</t>
+ </e>
+ <e>
+ <o>dives</o>
+ <t>rich</t>
+ </e>
+ <e>
+ <o>do (1)</o>
+ <t>give</t>
+ </e>
+ <e>
+ <o>doceo (2)</o>
+ <t>teach</t>
+ </e>
+ <e>
+ <o>doctus</o>
+ <t>learned, educated, skilful, clever</t>
+ </e>
+ <e>
+ <o>domina (1)</o>
+ <t>mistress</t>
+ </e>
+ <e>
+ <o>dominus (2)</o>
+ <t>master</t>
+ </e>
+ <e>
+ <o>domus (4)</o>
+ <t>home</t>
+ </e>
+ <e>
+ <o>donum (2)</o>
+ <t>gift, present</t>
+ </e>
+ <e>
+ <o>dormio (4)</o>
+ <t>sleep</t>
+ </e>
+ <e>
+ <o>duco (3)</o>
+ <t>lead, take</t>
+ </e>
+ <e>
+ <o>dum</o>
+ <t>while, until</t>
+ </e>
+ <e>
+ <o>duo</o>
+ <t>two</t>
+ </e>
+ <e>
+ <o>dux (3)</o>
+ <t>leader</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/EF.kvtml b/klatin/klatin/data/vocab/en/EF.kvtml
new file mode 100644
index 00000000..6875c9d2
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/EF.kvtml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>e, ex + abl</o>
+ <t>from, out of</t>
+ </e>
+ <e>
+ <o>ecce!</o>
+ <t>see! look!</t>
+ </e>
+ <e>
+ <o>efficio (3)</o>
+ <t>carry out, accomplish</t>
+ </e>
+ <e>
+ <o>effugio (3)</o>
+ <t>escape</t>
+ </e>
+ <e>
+ <o>ego</o>
+ <t>I, me</t>
+ </e>
+ <e>
+ <o>egredior (3)</o>
+ <t>go out</t>
+ </e>
+ <e>
+ <o>emo (3)</o>
+ <t>buy</t>
+ </e>
+ <e>
+ <o>enim</o>
+ <t>for</t>
+ </e>
+ <e>
+ <o>eo (irreg)</o>
+ <t>go</t>
+ </e>
+ <e>
+ <o>epistula (1)</o>
+ <t>letter</t>
+ </e>
+ <e>
+ <o>eques (2)</o>
+ <t>horseman, equestrian</t>
+ </e>
+ <e>
+ <o>equus (2)</o>
+ <t>horse</t>
+ </e>
+ <e>
+ <o>et</o>
+ <t>and</t>
+ </e>
+ <e>
+ <o>et... et</o>
+ <t>both... and</t>
+ </e>
+ <e>
+ <o>etiam</o>
+ <t>also, even</t>
+ </e>
+ <e>
+ <o>expecto (1)</o>
+ <t>wait for</t>
+ </e>
+ <e>
+ <o>fabula (1)</o>
+ <t>story, play</t>
+ </e>
+ <e>
+ <o>facilis</o>
+ <t>easy</t>
+ </e>
+ <e>
+ <o>facio (3)</o>
+ <t>make, do</t>
+ </e>
+ <e>
+ <o>faveo (2)</o>
+ <t>favour, support</t>
+ </e>
+ <e>
+ <o>femina (1)</o>
+ <t>woman</t>
+ </e>
+ <e>
+ <o>fero (irreg)</o>
+ <t>bring, carry</t>
+ </e>
+ <e>
+ <o>ferox</o>
+ <t>fierce, ferocious</t>
+ </e>
+ <e>
+ <o>ferrum (2)</o>
+ <t>iron, sword</t>
+ </e>
+ <e>
+ <o>fessus</o>
+ <t>tired</t>
+ </e>
+ <e>
+ <o>festino (1)</o>
+ <t>hurry</t>
+ </e>
+ <e>
+ <o>fidelis</o>
+ <t>faithful, loyal</t>
+ </e>
+ <e>
+ <o>fides (5)</o>
+ <t>loyalty, trustworthiness</t>
+ </e>
+ <e>
+ <o>filia (1)</o>
+ <t>daughter</t>
+ </e>
+ <e>
+ <o>filius (2)</o>
+ <t>son</t>
+ </e>
+ <e>
+ <o>flos (3)</o>
+ <t>flower</t>
+ </e>
+ <e>
+ <o>flumen (3)</o>
+ <t>river</t>
+ </e>
+ <e>
+ <o>forte</o>
+ <t>by chance</t>
+ </e>
+ <e>
+ <o>fortis</o>
+ <t>brave</t>
+ </e>
+ <e>
+ <o>forum (2)</o>
+ <t>forum, market place</t>
+ </e>
+ <e>
+ <o>frango (3)</o>
+ <t>break</t>
+ </e>
+ <e>
+ <o>frater (3)</o>
+ <t>brother</t>
+ </e>
+ <e>
+ <o>frumentum (2)</o>
+ <t>grain</t>
+ </e>
+ <e>
+ <o>frustra</o>
+ <t>in vain</t>
+ </e>
+ <e>
+ <o>fugio (3)</o>
+ <t>run away, flee</t>
+ </e>
+ <e>
+ <o>fundo (3)</o>
+ <t>pour</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/GHI1.kvtml b/klatin/klatin/data/vocab/en/GHI1.kvtml
new file mode 100644
index 00000000..00aa7e13
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/GHI1.kvtml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>gaudeo (2)</o>
+ <t>be pleased, rejoice</t>
+ </e>
+ <e>
+ <o>gaudium (2)</o>
+ <t>joy, pleasure</t>
+ </e>
+ <e>
+ <o>gero (3)</o>
+ <t>wear (clothes), wage (war)</t>
+ </e>
+ <e>
+ <o>gladius (2)</o>
+ <t>sword</t>
+ </e>
+ <e>
+ <o>gratias ago</o>
+ <t>thank, give thanks</t>
+ </e>
+ <e>
+ <o>gravis</o>
+ <t>heavy, serious</t>
+ </e>
+ <e>
+ <o>habeo (2)</o>
+ <t>have</t>
+ </e>
+ <e>
+ <o>habito (1)</o>
+ <t>live</t>
+ </e>
+ <e>
+ <o>heri</o>
+ <t>yesterday</t>
+ </e>
+ <e>
+ <o>hic</o>
+ <t>here</t>
+ </e>
+ <e>
+ <o>hic, haec, hoc</o>
+ <t>this</t>
+ </e>
+ <e>
+ <o>hodie</o>
+ <t>today</t>
+ </e>
+ <e>
+ <o>homo (3)</o>
+ <t>man, human being</t>
+ </e>
+ <e>
+ <o>honor (3)</o>
+ <t>honour, official position</t>
+ </e>
+ <e>
+ <o>hora (1)</o>
+ <t>hour</t>
+ </e>
+ <e>
+ <o>hortor (1)</o>
+ <t>encourage, urge</t>
+ </e>
+ <e>
+ <o>hortus (2)</o>
+ <t>garden</t>
+ </e>
+ <e>
+ <o>hospes (3)</o>
+ <t>guest, host</t>
+ </e>
+ <e>
+ <o>hostis (3)</o>
+ <t>enemy</t>
+ </e>
+ <e>
+ <o>humus (2)</o>
+ <t>ground</t>
+ </e>
+ <e>
+ <o>iaceo (2)</o>
+ <t>lie</t>
+ </e>
+ <e>
+ <o>iacio (3)</o>
+ <t>throw</t>
+ </e>
+ <e>
+ <o>de-/e-/in-icio</o>
+ <t>throw down/out/in</t>
+ </e>
+ <e>
+ <o>iam</o>
+ <t>now, already</t>
+ </e>
+ <e>
+ <o>ianua (1)</o>
+ <t>door</t>
+ </e>
+ <e>
+ <o>ibi</o>
+ <t>there</t>
+ </e>
+ <e>
+ <o>idem</o>
+ <t>the same</t>
+ </e>
+ <e>
+ <o>igitur</o>
+ <t>therefore, and so</t>
+ </e>
+ <e>
+ <o>ignarus</o>
+ <t>not knowing, unaware</t>
+ </e>
+ <e>
+ <o>ille</o>
+ <t>that, he, she, it</t>
+ </e>
+ <e>
+ <o>imperator (3)</o>
+ <t>emperor</t>
+ </e>
+ <e>
+ <o>imperium (2)</o>
+ <t>empire, power, command</t>
+ </e>
+ <e>
+ <o>impero (1)</o>
+ <t>order, command</t>
+ </e>
+ <e>
+ <o>impetus (4)</o>
+ <t>attack</t>
+ </e>
+ <e>
+ <o>in + abl</o>
+ <t>in, on</t>
+ </e>
+ <e>
+ <o>in + acc</o>
+ <t>into, onto</t>
+ </e>
+ <e>
+ <o>incendo (3)</o>
+ <t>burn, set on fire</t>
+ </e>
+ <e>
+ <o>infelix</o>
+ <t>unlucky, unhappy</t>
+ </e>
+ <e>
+ <o>ingenium (2)</o>
+ <t>character</t>
+ </e>
+ <e>
+ <o>ingens</o>
+ <t>huge</t>
+ </e>
+ <e>
+ <o>ingredior (3)</o>
+ <t>enter</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/I2L.kvtml b/klatin/klatin/data/vocab/en/I2L.kvtml
new file mode 100644
index 00000000..367475ba
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/I2L.kvtml
@@ -0,0 +1,184 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>inquit (irreg)</o>
+ <t>say, said</t>
+ </e>
+ <e>
+ <o>inspicio (3)</o>
+ <t>look at, inspect, examine</t>
+ </e>
+ <e>
+ <o>insula (1)</o>
+ <t>island, block of flats</t>
+ </e>
+ <e>
+ <o>intellego (3)</o>
+ <t>understand</t>
+ </e>
+ <e>
+ <o>inter + acc</o>
+ <t>among, between</t>
+ </e>
+ <e>
+ <o>interea</o>
+ <t>meanwhile</t>
+ </e>
+ <e>
+ <o>interficio (3)</o>
+ <t>kill</t>
+ </e>
+ <e>
+ <o>intro (1)</o>
+ <t>enter</t>
+ </e>
+ <e>
+ <o>invenio (3)</o>
+ <t>find</t>
+ </e>
+ <e>
+ <o>invito (1)</o>
+ <t>invite</t>
+ </e>
+ <e>
+ <o>invitus</o>
+ <t>unwilling, reluctant</t>
+ </e>
+ <e>
+ <o>ipse</o>
+ <t>himself, herself, itself</t>
+ </e>
+ <e>
+ <o>ira (1)</o>
+ <t>anger</t>
+ </e>
+ <e>
+ <o>iratus</o>
+ <t>angry</t>
+ </e>
+ <e>
+ <o>is, ea, id</o>
+ <t>this, that, he, she, it</t>
+ </e>
+ <e>
+ <o>ita</o>
+ <t>in this way</t>
+ </e>
+ <e>
+ <o>ita vero</o>
+ <t>yes</t>
+ </e>
+ <e>
+ <o>itaque</o>
+ <t>and so, therefore</t>
+ </e>
+ <e>
+ <o>iter (3)</o>
+ <t>journey</t>
+ </e>
+ <e>
+ <o>iterum</o>
+ <t>again</t>
+ </e>
+ <e>
+ <o>iubeo (2)</o>
+ <t>order</t>
+ </e>
+ <e>
+ <o>iudex (3)</o>
+ <t>judge</t>
+ </e>
+ <e>
+ <o>iuvenis (3)</o>
+ <t>young man</t>
+ </e>
+ <e>
+ <o>labor (3)</o>
+ <t>work</t>
+ </e>
+ <e>
+ <o>laboro (1)</o>
+ <t>to work</t>
+ </e>
+ <e>
+ <o>lacrima (1)</o>
+ <t>tear</t>
+ </e>
+ <e>
+ <o>lacrimo (1)</o>
+ <t>weep, cry</t>
+ </e>
+ <e>
+ <o>laetus</o>
+ <t>happy</t>
+ </e>
+ <e>
+ <o>latus</o>
+ <t>wide</t>
+ </e>
+ <e>
+ <o>laudo (1)</o>
+ <t>praise</t>
+ </e>
+ <e>
+ <o>legatus (2)</o>
+ <t>commander</t>
+ </e>
+ <e>
+ <o>legio (3)</o>
+ <t>legion</t>
+ </e>
+ <e>
+ <o>lego (3)</o>
+ <t>read, choose</t>
+ </e>
+ <e>
+ <o>lente</o>
+ <t>slowly</t>
+ </e>
+ <e>
+ <o>leo (3)</o>
+ <t>lion</t>
+ </e>
+ <e>
+ <o>libenter</o>
+ <t>willingly, gladly</t>
+ </e>
+ <e>
+ <o>liber</o>
+ <t>book</t>
+ </e>
+ <e>
+ <o>liberi (2)</o>
+ <t>children</t>
+ </e>
+ <e>
+ <o>libero (1)</o>
+ <t>free, set free</t>
+ </e>
+ <e>
+ <o>libertus (2)</o>
+ <t>freedman, ex-slave</t>
+ </e>
+ <e>
+ <o>locus (2)</o>
+ <t>place</t>
+ </e>
+ <e>
+ <o>longus</o>
+ <t>long</t>
+ </e>
+ <e>
+ <o>loquor (3)</o>
+ <t>speak</t>
+ </e>
+ <e>
+ <o>luna (1)</o>
+ <t>moon</t>
+ </e>
+ <e>
+ <o>lux (3)</o>
+ <t>light, daylight</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/M.kvtml b/klatin/klatin/data/vocab/en/M.kvtml
new file mode 100644
index 00000000..1380e063
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/M.kvtml
@@ -0,0 +1,124 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>magnopere</o>
+ <t>greatly</t>
+ </e>
+ <e>
+ <o>magnus</o>
+ <t>big, large, great</t>
+ </e>
+ <e>
+ <o>malo (irreg)</o>
+ <t>prefer</t>
+ </e>
+ <e>
+ <o>malus</o>
+ <t>evil, bad</t>
+ </e>
+ <e>
+ <o>maneo (2)</o>
+ <t>remain stay</t>
+ </e>
+ <e>
+ <o>manus (4)</o>
+ <t>hand, group of people</t>
+ </e>
+ <e>
+ <o>mare (3)</o>
+ <t>sea</t>
+ </e>
+ <e>
+ <o>maritus (2)</o>
+ <t>husband</t>
+ </e>
+ <e>
+ <o>mater (3)</o>
+ <t>mother</t>
+ </e>
+ <e>
+ <o>maximus</o>
+ <t>very big/great, biggest, greatest</t>
+ </e>
+ <e>
+ <o>medius</o>
+ <t>middle</t>
+ </e>
+ <e>
+ <o>mercator (3)</o>
+ <t>merchant</t>
+ </e>
+ <e>
+ <o>meus</o>
+ <t>my</t>
+ </e>
+ <e>
+ <o>miles (3)</o>
+ <t>soldier</t>
+ </e>
+ <e>
+ <o>mille (irreg)</o>
+ <t>thousand</t>
+ </e>
+ <e>
+ <o>minimus</o>
+ <t>very little, smallest</t>
+ </e>
+ <e>
+ <o>minime</o>
+ <t>very little, least, no</t>
+ </e>
+ <e>
+ <o>mirabilis</o>
+ <t>strange, extraordinary, wonderful</t>
+ </e>
+ <e>
+ <o>miser</o>
+ <t>miserable, wretched, sad</t>
+ </e>
+ <e>
+ <o>mitto (3)</o>
+ <t>send</t>
+ </e>
+ <e>
+ <o>modus (2)</o>
+ <t>manner, way, kind</t>
+ </e>
+ <e>
+ <o>moneo (2)</o>
+ <t>warn, advise</t>
+ </e>
+ <e>
+ <o>mons (3)</o>
+ <t>mountain</t>
+ </e>
+ <e>
+ <o>morior (3)</o>
+ <t>die</t>
+ </e>
+ <e>
+ <o>mors (3)</o>
+ <t>death</t>
+ </e>
+ <e>
+ <o>moveo (2)</o>
+ <t>move</t>
+ </e>
+ <e>
+ <o>mox</o>
+ <t>soon</t>
+ </e>
+ <e>
+ <o>multo</o>
+ <t>much</t>
+ </e>
+ <e>
+ <o>multus</o>
+ <t>much, many</t>
+ </e>
+ <e>
+ <o>murus (2)</o>
+ <t>wall</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/Makefile.am b/klatin/klatin/data/vocab/en/Makefile.am
new file mode 100644
index 00000000..46f763f6
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/Makefile.am
@@ -0,0 +1,3 @@
+en_vocabdir = $(kde_datadir)/klatin/data/vocabs/en
+en_vocab_DATA = A.kvtml BC.kvtml D.kvtml EF.kvtml GHI1.kvtml I2L.kvtml M.kvtml N.kvtml \
+ OP1.kvtml P2.kvtml QR.kvtml S.kvtml TU.kvtml V.kvtml
diff --git a/klatin/klatin/data/vocab/en/N.kvtml b/klatin/klatin/data/vocab/en/N.kvtml
new file mode 100644
index 00000000..2f971a4b
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/N.kvtml
@@ -0,0 +1,152 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>nuntio (1)</o>
+ <t>accounce</t>
+ </e>
+ <e>
+ <o>nascor (3)</o>
+ <t>be born</t>
+ </e>
+ <e>
+ <o>numero (1)</o>
+ <t>count</t>
+ </e>
+ <e>
+ <o>nam</o>
+ <t>for</t>
+ </e>
+ <e>
+ <o>-ne</o>
+ <t>introduces question</t>
+ </e>
+ <e>
+ <o>neco (1)</o>
+ <t>kill</t>
+ </e>
+ <e>
+ <o>notus</o>
+ <t>known, well-known, famous</t>
+ </e>
+ <e>
+ <o>nuntius (2)</o>
+ <t>messenger, message, news</t>
+ </e>
+ <e>
+ <o>nomen (3)</o>
+ <t>name</t>
+ </e>
+ <e>
+ <o>nec... nec</o>
+ <t>neither... nor</t>
+ </e>
+ <e>
+ <o>numquam</o>
+ <t>never</t>
+ </e>
+ <e>
+ <o>novus</o>
+ <t>new</t>
+ </e>
+ <e>
+ <o>nox (3)</o>
+ <t>night</t>
+ </e>
+ <e>
+ <o>novem</o>
+ <t>nine</t>
+ </e>
+ <e>
+ <o>nemo (irreg)</o>
+ <t>no one, nobody</t>
+ </e>
+ <e>
+ <o>nobilis</o>
+ <t>noble, of noble birth</t>
+ </e>
+ <e>
+ <o>non </o>
+ <t>not</t>
+ </e>
+ <e>
+ <o>nullus</o>
+ <t>not any, no</t>
+ </e>
+ <e>
+ <o>ne quidem</o>
+ <t>not even</t>
+ </e>
+ <e>
+ <o>nescio (4)</o>
+ <t>not know</t>
+ </e>
+ <e>
+ <o>nolo (irreg)</o>
+ <t>not want</t>
+ </e>
+ <e>
+ <o>nihil (irreg)</o>
+ <t>nothing</t>
+ </e>
+ <e>
+ <o>nunc</o>
+ <t>now</t>
+ </e>
+ <e>
+ <o>nusquam</o>
+ <t>nowhere</t>
+ </e>
+ <e>
+ <o>numerus (2)</o>
+ <t>number</t>
+ </e>
+ <e>
+ <o>noster</o>
+ <t>our</t>
+ </e>
+ <e>
+ <o>navigo (1)</o>
+ <t>sail</t>
+ </e>
+ <e>
+ <o>nauta (1)</o>
+ <t>sailor</t>
+ </e>
+ <e>
+ <o>navis (3)</o>
+ <t>ship</t>
+ </e>
+ <e>
+ <o>nonnulli</o>
+ <t>some, several</t>
+ </e>
+ <e>
+ <o>num...?</o>
+ <t>surely not?</t>
+ </e>
+ <e>
+ <o>nonne?</o>
+ <t>surely?</t>
+ </e>
+ <e>
+ <o>narro (1)</o>
+ <t>tell, relate</t>
+ </e>
+ <e>
+ <o>ne</o>
+ <t>that... not, so that... not</t>
+ </e>
+ <e>
+ <o>nisi</o>
+ <t>unless, except</t>
+ </e>
+ <e>
+ <o>nos</o>
+ <t>we, us</t>
+ </e>
+ <e>
+ <o>num</o>
+ <t>whether</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/OP1.kvtml b/klatin/klatin/data/vocab/en/OP1.kvtml
new file mode 100644
index 00000000..287b461c
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/OP1.kvtml
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>occido (3)</o>
+ <t>kill</t>
+ </e>
+ <e>
+ <o>octo</o>
+ <t>eight</t>
+ </e>
+ <e>
+ <o>oculus (2)</o>
+ <t>eye</t>
+ </e>
+ <e>
+ <o>odi (defect)</o>
+ <t>I hate</t>
+ </e>
+ <e>
+ <o>offero (irref)</o>
+ <t>offer</t>
+ </e>
+ <e>
+ <o>olim</o>
+ <t>once, some time ago</t>
+ </e>
+ <e>
+ <o>omnis</o>
+ <t>all, every</t>
+ </e>
+ <e>
+ <o>opprimo (3)</o>
+ <t>crush</t>
+ </e>
+ <e>
+ <o>oppugno (1)</o>
+ <t>attack</t>
+ </e>
+ <e>
+ <o>optimus</o>
+ <t>very good, excellent, best</t>
+ </e>
+ <e>
+ <o>opus (3)</o>
+ <t>work, construction</t>
+ </e>
+ <e>
+ <o>oro (1)</o>
+ <t>beg</t>
+ </e>
+ <e>
+ <o>ostendo (3)</o>
+ <t>show</t>
+ </e>
+ <e>
+ <o>paene</o>
+ <t>almost, nearly</t>
+ </e>
+ <e>
+ <o>pareo (2)</o>
+ <t>obey</t>
+ </e>
+ <e>
+ <o>paro (1)</o>
+ <t>prepare</t>
+ </e>
+ <e>
+ <o>pars (3)</o>
+ <t>part</t>
+ </e>
+ <e>
+ <o>parvus</o>
+ <t>small</t>
+ </e>
+ <e>
+ <o>pater (3)</o>
+ <t>father</t>
+ </e>
+ <e>
+ <o>patior (3)</o>
+ <t>suffer, eundure</t>
+ </e>
+ <e>
+ <o>pauci</o>
+ <t>few, a few</t>
+ </e>
+ <e>
+ <o>pauper</o>
+ <t>poor</t>
+ </e>
+ <e>
+ <o>pax (3)</o>
+ <t>peace</t>
+ </e>
+ <e>
+ <o>pecunia (1)</o>
+ <t>money</t>
+ </e>
+ <e>
+ <o>per + acc</o>
+ <t>through, along</t>
+ </e>
+ <e>
+ <o>periculum (2)</o>
+ <t>danger</t>
+ </e>
+ <e>
+ <o>periculosus </o>
+ <t>dangerous</t>
+ </e>
+ <e>
+ <o>persuadeo (2)</o>
+ <t>persuade</t>
+ </e>
+ <e>
+ <o>perterritus</o>
+ <t>terrified</t>
+ </e>
+ <e>
+ <o>pervenio (4)</o>
+ <t>reach, arrive at</t>
+ </e>
+ <e>
+ <o>pes (3)</o>
+ <t>foot, paw</t>
+ </e>
+ <e>
+ <o>pessimus</o>
+ <t>very bad, worst</t>
+ </e>
+ <e>
+ <o>peto (3)</o>
+ <t>make for, seek, beg/ask for, attack</t>
+ </e>
+ <e>
+ <o>placet (2, impersonal)</o>
+ <t>it pleases, suits</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/P2.kvtml b/klatin/klatin/data/vocab/en/P2.kvtml
new file mode 100644
index 00000000..39ed0c5a
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/P2.kvtml
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>plenus</o>
+ <t>full</t>
+ </e>
+ <e>
+ <o>plurimus</o>
+ <t>most, very much, very many</t>
+ </e>
+ <e>
+ <o>plus</o>
+ <t>more</t>
+ </e>
+ <e>
+ <o>poena (1)</o>
+ <t>punishment</t>
+ </e>
+ <e>
+ <o>poenas do</o>
+ <t>pay the penalty, be punished</t>
+ </e>
+ <e>
+ <o>pono (3)</o>
+ <t>put, place, put up</t>
+ </e>
+ <e>
+ <o>pons (3)</o>
+ <t>bridge</t>
+ </e>
+ <e>
+ <o>populus (2) </o>
+ <t>people, nation</t>
+ </e>
+ <e>
+ <o>porta (1)</o>
+ <t>gate</t>
+ </e>
+ <e>
+ <o>porto (1)</o>
+ <t>carry</t>
+ </e>
+ <e>
+ <o>portus (4)</o>
+ <t>harbour, port</t>
+ </e>
+ <e>
+ <o>possum (irreg)</o>
+ <t>can, be able</t>
+ </e>
+ <e>
+ <o>post + acc</o>
+ <t>after, behind</t>
+ </e>
+ <e>
+ <o>postea</o>
+ <t>afterwards</t>
+ </e>
+ <e>
+ <o>postquam</o>
+ <t>after, when</t>
+ </e>
+ <e>
+ <o>postridie</o>
+ <t>on the next day</t>
+ </e>
+ <e>
+ <o>postulo (1)</o>
+ <t>demand</t>
+ </e>
+ <e>
+ <o>praebeo (2)</o>
+ <t>provide</t>
+ </e>
+ <e>
+ <o>praemium (2)</o>
+ <t>prize, reward, profit</t>
+ </e>
+ <e>
+ <o>pretium (2)</o>
+ <t>price</t>
+ </e>
+ <e>
+ <o>primus</o>
+ <t>first</t>
+ </e>
+ <e>
+ <o>princeps (3)</o>
+ <t>chief, chieftain, emperor</t>
+ </e>
+ <e>
+ <o>priusquam</o>
+ <t>before, until</t>
+ </e>
+ <e>
+ <o>pro + abl</o>
+ <t>in front of, for, in return for</t>
+ </e>
+ <e>
+ <o>procedo (3)</o>
+ <t>advance, proceed</t>
+ </e>
+ <e>
+ <o>procul</o>
+ <t>far off</t>
+ </e>
+ <e>
+ <o>proficiscor (3)</o>
+ <t>set out</t>
+ </e>
+ <e>
+ <o>progredior (3)</o>
+ <t>advance</t>
+ </e>
+ <e>
+ <o>promitto (3)</o>
+ <t>promise</t>
+ </e>
+ <e>
+ <o>prope + acc</o>
+ <t>near</t>
+ </e>
+ <e>
+ <o>proximus</o>
+ <t>nearest, next to</t>
+ </e>
+ <e>
+ <o>puella (1)</o>
+ <t>girl</t>
+ </e>
+ <e>
+ <o>puer (2)</o>
+ <t>boy</t>
+ </e>
+ <e>
+ <o>pugno (1)</o>
+ <t>fight</t>
+ </e>
+ <e>
+ <o>pulcher</o>
+ <t>beautiful, handsome</t>
+ </e>
+ <e>
+ <o>punio (4)</o>
+ <t>punish</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/QR.kvtml b/klatin/klatin/data/vocab/en/QR.kvtml
new file mode 100644
index 00000000..bb164992
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/QR.kvtml
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>quaero (3)</o>
+ <t>search for, look for, ask</t>
+ </e>
+ <e>
+ <o>qualis</o>
+ <t>what sort of</t>
+ </e>
+ <e>
+ <o>quam</o>
+ <t>how; than</t>
+ </e>
+ <e>
+ <o>quamquam</o>
+ <t>although</t>
+ </e>
+ <e>
+ <o>quantus?</o>
+ <t>how big?</t>
+ </e>
+ <e>
+ <o>quattuor</o>
+ <t>four</t>
+ </e>
+ <e>
+ <o>-que</o>
+ <t>and</t>
+ </e>
+ <e>
+ <o>qui</o>
+ <t>who, which</t>
+ </e>
+ <e>
+ <o>quidam</o>
+ <t>one, a certain, some</t>
+ </e>
+ <e>
+ <o>quinque</o>
+ <t>five</t>
+ </e>
+ <e>
+ <o>quis?</o>
+ <t>who? what?</t>
+ </e>
+ <e>
+ <o>quo?</o>
+ <t>where to?</t>
+ </e>
+ <e>
+ <o>quod</o>
+ <t>because</t>
+ </e>
+ <e>
+ <o>quo modo?</o>
+ <t>how? in what way?</t>
+ </e>
+ <e>
+ <o>quoque</o>
+ <t>also, too</t>
+ </e>
+ <e>
+ <o>quot?</o>
+ <t>how many?</t>
+ </e>
+ <e>
+ <o>rapio (3)</o>
+ <t>seize, grab</t>
+ </e>
+ <e>
+ <o>re-</o>
+ <t>-back</t>
+ </e>
+ <e>
+ <o>reddo (3)</o>
+ <t>give back, restore</t>
+ </e>
+ <e>
+ <o>redeo (irreg)</o>
+ <t>go back, come back, return</t>
+ </e>
+ <e>
+ <o>refero (irreg)</o>
+ <t>bring/carry back; report, tell</t>
+ </e>
+ <e>
+ <o>reficio (3)</o>
+ <t>repair</t>
+ </e>
+ <e>
+ <o>regina (1)</o>
+ <t>queen</t>
+ </e>
+ <e>
+ <o>regnum (2)</o>
+ <t>kingdom</t>
+ </e>
+ <e>
+ <o>regredior (3)</o>
+ <t>go back, return</t>
+ </e>
+ <e>
+ <o>relinquo (3)</o>
+ <t>leave, leave behind</t>
+ </e>
+ <e>
+ <o>res (5)</o>
+ <t>thing, business</t>
+ </e>
+ <e>
+ <o>resisto (3)</o>
+ <t>resist</t>
+ </e>
+ <e>
+ <o>respondeo (2)</o>
+ <t>reply</t>
+ </e>
+ <e>
+ <o>rex (3)</o>
+ <t>king</t>
+ </e>
+ <e>
+ <o>rideo (2)</o>
+ <t>laugh, smile</t>
+ </e>
+ <e>
+ <o>rogo (1)</o>
+ <t>ask, ask for</t>
+ </e>
+ <e>
+ <o>Roma (1)</o>
+ <t>Rome</t>
+ </e>
+ <e>
+ <o>Romanus</o>
+ <t>Roman</t>
+ </e>
+ <e>
+ <o>rursus</o>
+ <t>again</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/S.kvtml b/klatin/klatin/data/vocab/en/S.kvtml
new file mode 100644
index 00000000..ea548f8e
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/S.kvtml
@@ -0,0 +1,220 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>sacer</o>
+ <t>sacred</t>
+ </e>
+ <e>
+ <o>sacerdos (3)</o>
+ <t>priest</t>
+ </e>
+ <e>
+ <o>saepe</o>
+ <t>often</t>
+ </e>
+ <e>
+ <o>saevus</o>
+ <t>savage, cruel</t>
+ </e>
+ <e>
+ <o>salus (3)</o>
+ <t>safety, health</t>
+ </e>
+ <e>
+ <o>saluto (1)</o>
+ <t>greet</t>
+ </e>
+ <e>
+ <o>salve!</o>
+ <t>hello!</t>
+ </e>
+ <e>
+ <o>sanguis (3)</o>
+ <t>blood</t>
+ </e>
+ <e>
+ <o>sapiens</o>
+ <t>wise</t>
+ </e>
+ <e>
+ <o>satis</o>
+ <t>enough</t>
+ </e>
+ <e>
+ <o>saxum (2)</o>
+ <t>rock</t>
+ </e>
+ <e>
+ <o>scio (4)</o>
+ <t>know</t>
+ </e>
+ <e>
+ <o>scribo (3)</o>
+ <t>write</t>
+ </e>
+ <e>
+ <o>se</o>
+ <t>himself, herself, itself</t>
+ </e>
+ <e>
+ <o>sed</o>
+ <t>but</t>
+ </e>
+ <e>
+ <o>sedeo (2)</o>
+ <t>sit</t>
+ </e>
+ <e>
+ <o>semper</o>
+ <t>always</t>
+ </e>
+ <e>
+ <o>senator (3)</o>
+ <t>senator</t>
+ </e>
+ <e>
+ <o>senex (3)</o>
+ <t>old man</t>
+ </e>
+ <e>
+ <o>sentio (4)</o>
+ <t>feel, notice</t>
+ </e>
+ <e>
+ <o>septem</o>
+ <t>seven</t>
+ </e>
+ <e>
+ <o>sequor (3)</o>
+ <t>follow</t>
+ </e>
+ <e>
+ <o>sermo (3)</o>
+ <t>conversation</t>
+ </e>
+ <e>
+ <o>servo (1)</o>
+ <t>save, look after</t>
+ </e>
+ <e>
+ <o>servus (2)</o>
+ <t>slave</t>
+ </e>
+ <e>
+ <o>severus</o>
+ <t>severe, strict</t>
+ </e>
+ <e>
+ <o>sex</o>
+ <t>six</t>
+ </e>
+ <e>
+ <o>si</o>
+ <t>if</t>
+ </e>
+ <e>
+ <o>sic</o>
+ <t>thus, in this way</t>
+ </e>
+ <e>
+ <o>sicut</o>
+ <t>like, just as</t>
+ </e>
+ <e>
+ <o>signum (2)</o>
+ <t>sign, signal, seal</t>
+ </e>
+ <e>
+ <o>silva (1)</o>
+ <t>wood</t>
+ </e>
+ <e>
+ <o>simulac</o>
+ <t>as soon as</t>
+ </e>
+ <e>
+ <o>sine + abl</o>
+ <t>without</t>
+ </e>
+ <e>
+ <o>sol (3)</o>
+ <t>sun</t>
+ </e>
+ <e>
+ <o>soleo (2)</o>
+ <t>be accustomed</t>
+ </e>
+ <e>
+ <o>solus</o>
+ <t>alone, lonely, only</t>
+ </e>
+ <e>
+ <o>sonitus (4)</o>
+ <t>noise</t>
+ </e>
+ <e>
+ <o>soror (3)</o>
+ <t>sister</t>
+ </e>
+ <e>
+ <o>specto (1)</o>
+ <t>look at, watch</t>
+ </e>
+ <e>
+ <o>spero (1)</o>
+ <t>hope, expect</t>
+ </e>
+ <e>
+ <o>spes (5)</o>
+ <t>hope</t>
+ </e>
+ <e>
+ <o>statim</o>
+ <t>at once, immediately</t>
+ </e>
+ <e>
+ <o>sto (1)</o>
+ <t>stand</t>
+ </e>
+ <e>
+ <o>stultus</o>
+ <t>stupid, foolish</t>
+ </e>
+ <e>
+ <o>suavis</o>
+ <t>sweet</t>
+ </e>
+ <e>
+ <o>sub + acc/abl</o>
+ <t>under, beneath</t>
+ </e>
+ <e>
+ <o>subito</o>
+ <t>suddenly</t>
+ </e>
+ <e>
+ <o>sum (irreg)</o>
+ <t>be</t>
+ </e>
+ <e>
+ <o>summus</o>
+ <t>highest, greatest, top (of)</t>
+ </e>
+ <e>
+ <o>superbus</o>
+ <t>proud, arrogant</t>
+ </e>
+ <e>
+ <o>supero (1)</o>
+ <t>overcome, overpower</t>
+ </e>
+ <e>
+ <o>surgo (3)</o>
+ <t>get up, stand up, rise</t>
+ </e>
+ <e>
+ <o>suus</o>
+ <t>his, her, its, their (own)</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/TU.kvtml b/klatin/klatin/data/vocab/en/TU.kvtml
new file mode 100644
index 00000000..299e3cbc
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/TU.kvtml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>taberna (1)</o>
+ <t>shop, inn</t>
+ </e>
+ <e>
+ <o>taceo (2)</o>
+ <t>be silent, be quiet</t>
+ </e>
+ <e>
+ <o>talis</o>
+ <t>such</t>
+ </e>
+ <e>
+ <o>tam</o>
+ <t>so</t>
+ </e>
+ <e>
+ <o>tamen</o>
+ <t>however</t>
+ </e>
+ <e>
+ <o>tandem</o>
+ <t>at last, finally</t>
+ </e>
+ <e>
+ <o>tantus</o>
+ <t>so great, such a great</t>
+ </e>
+ <e>
+ <o>templum (2)</o>
+ <t>temple</t>
+ </e>
+ <e>
+ <o>tempestas (3)</o>
+ <t>storm</t>
+ </e>
+ <e>
+ <o>tempus (3)</o>
+ <t>time</t>
+ </e>
+ <e>
+ <o>teneo (2)</o>
+ <t>hold</t>
+ </e>
+ <e>
+ <o>terra (1)</o>
+ <t>ground, land</t>
+ </e>
+ <e>
+ <o>terreo (2)</o>
+ <t>frighten</t>
+ </e>
+ <e>
+ <o>timeo (2)</o>
+ <t>fear, be afraid</t>
+ </e>
+ <e>
+ <o>tollo (3)</o>
+ <t>raise, lift up, hold up</t>
+ </e>
+ <e>
+ <o>tot</o>
+ <t>so many</t>
+ </e>
+ <e>
+ <o>totus</o>
+ <t>whole</t>
+ </e>
+ <e>
+ <o>trado (3)</o>
+ <t>hand over</t>
+ </e>
+ <e>
+ <o>traho (3)</o>
+ <t>drag</t>
+ </e>
+ <e>
+ <o>trans + acc</o>
+ <t>across</t>
+ </e>
+ <e>
+ <o>tres </o>
+ <t>three</t>
+ </e>
+ <e>
+ <o>tristis</o>
+ <t>sad</t>
+ </e>
+ <e>
+ <o>tu</o>
+ <t>you (singular)</t>
+ </e>
+ <e>
+ <o>tum</o>
+ <t>then</t>
+ </e>
+ <e>
+ <o>turba (1)</o>
+ <t>crowd</t>
+ </e>
+ <e>
+ <o>tutus</o>
+ <t>safe</t>
+ </e>
+ <e>
+ <o>tuus</o>
+ <t>your (singular), yours</t>
+ </e>
+ <e>
+ <o>ubi</o>
+ <t>where? where, when</t>
+ </e>
+ <e>
+ <o>iltimus</o>
+ <t>furthest, last</t>
+ </e>
+ <e>
+ <o>umquam</o>
+ <t>ever</t>
+ </e>
+ <e>
+ <o>unda (1)</o>
+ <t>wave</t>
+ </e>
+ <e>
+ <o>unde</o>
+ <t>from where</t>
+ </e>
+ <e>
+ <o>unus</o>
+ <t>one</t>
+ </e>
+ <e>
+ <o>urbs (3)</o>
+ <t>city</t>
+ </e>
+ <e>
+ <o>ut + indic</o>
+ <t>as</t>
+ </e>
+ <e>
+ <o>ut + subj</o>
+ <t>that, so that, in order that</t>
+ </e>
+ <e>
+ <o>utilis</o>
+ <t>useful</t>
+ </e>
+ <e>
+ <o>utrum... an</o>
+ <t>whether... or</t>
+ </e>
+ <e>
+ <o>uxor (3)</o>
+ <t>wife</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/en/V.kvtml b/klatin/klatin/data/vocab/en/V.kvtml
new file mode 100644
index 00000000..29fd7b09
--- /dev/null
+++ b/klatin/klatin/data/vocab/en/V.kvtml
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>valde</o>
+ <t>very much, very</t>
+ </e>
+ <e>
+ <o>vale</o>
+ <t>goodbye, farewell</t>
+ </e>
+ <e>
+ <o>vehementer</o>
+ <t>violently, loudly</t>
+ </e>
+ <e>
+ <o>veho (3)</o>
+ <t>carry</t>
+ </e>
+ <e>
+ <o>vendo (3)</o>
+ <t>sell</t>
+ </e>
+ <e>
+ <o>venio (4)</o>
+ <t>come</t>
+ </e>
+ <e>
+ <o>ventus (2)</o>
+ <t>wind</t>
+ </e>
+ <e>
+ <o>verbum (2)</o>
+ <t>word</t>
+ </e>
+ <e>
+ <o>verto (3)</o>
+ <t>turn</t>
+ </e>
+ <e>
+ <o>verus</o>
+ <t>true, real</t>
+ </e>
+ <e>
+ <o>vester</o>
+ <t>you (plural), yours</t>
+ </e>
+ <e>
+ <o>vestimenta (2)</o>
+ <t>clothes</t>
+ </e>
+ <e>
+ <o>via (1)</o>
+ <t>street, road, way</t>
+ </e>
+ <e>
+ <o>video (2)</o>
+ <t>see</t>
+ </e>
+ <e>
+ <o>villa (1)</o>
+ <t>house, country villa</t>
+ </e>
+ <e>
+ <o>vinco (3)</o>
+ <t>conquer</t>
+ </e>
+ <e>
+ <o>vinum (2)</o>
+ <t>wine</t>
+ </e>
+ <e>
+ <o>vir (2)</o>
+ <t>man</t>
+ </e>
+ <e>
+ <o>vita (1)</o>
+ <t>life</t>
+ </e>
+ <e>
+ <o>vivo (3)</o>
+ <t>live, be alive</t>
+ </e>
+ <e>
+ <o>vivus</o>
+ <t>alive, living</t>
+ </e>
+ <e>
+ <o>vix</o>
+ <t>hardly, scarcely, with difficulty</t>
+ </e>
+ <e>
+ <o>voco (1)</o>
+ <t>call</t>
+ </e>
+ <e>
+ <o>volo (irreg)</o>
+ <t>want</t>
+ </e>
+ <e>
+ <o>vos</o>
+ <t>you (plural)</t>
+ </e>
+ <e>
+ <o>vox (3)</o>
+ <t>voice, shout</t>
+ </e>
+ <e>
+ <o>vulnero (1)</o>
+ <t>wound, injure</t>
+ </e>
+ <e>
+ <o>vulnus (3)</o>
+ <t>wound</t>
+ </e>
+ <e>
+ <o>vultus (4)</o>
+ <t>expression, face</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/A.kvtml b/klatin/klatin/data/vocab/pl/A.kvtml
new file mode 100644
index 00000000..3ccf4856
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/A.kvtml
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>a, ab + abl</o>
+ <t>z </t>
+ </e>
+ <e>
+ <o>absum (irreg)</o>
+ <t>być nieobecnym</t>
+ </e>
+ <e>
+ <o>ac, atque</o>
+ <t>i</t>
+ </e>
+ <e>
+ <o>accido (3)</o>
+ <t>zdarzać się</t>
+ </e>
+ <e>
+ <o>accipio (3)</o>
+ <t>akceptować</t>
+ </e>
+ <e>
+ <o>accuso (1)</o>
+ <t>oskarżać</t>
+ </e>
+ <e>
+ <o>ad + acc</o>
+ <t>do, w kierunku</t>
+ </e>
+ <e>
+ <o>adeo</o>
+ <t>tak wiele, tak wielki</t>
+ </e>
+ <e>
+ <o>adhuc</o>
+ <t>do tej pory, wciąż</t>
+ </e>
+ <e>
+ <o>adiuvo (1)</o>
+ <t>pomagać</t>
+ </e>
+ <e>
+ <o>adsum (irreg)</o>
+ <t>być tu, być obecnym</t>
+ </e>
+ <e>
+ <o>advenio (4)</o>
+ <t>przybywać</t>
+ </e>
+ <e>
+ <o>adversus</o>
+ <t>wrogi, nieprzyjazny</t>
+ </e>
+ <e>
+ <o>aedificium</o>
+ <t>budynek</t>
+ </e>
+ <e>
+ <o>aedifico (1)</o>
+ <t>budować</t>
+ </e>
+ <e>
+ <o>ago (1)</o>
+ <t>robić, działać</t>
+ </e>
+ <e>
+ <o>gratias ago (1)</o>
+ <t>dziękować</t>
+ </e>
+ <e>
+ <o>agricola (1)</o>
+ <t>rolnik</t>
+ </e>
+ <e>
+ <o>aliquis</o>
+ <t>ktoś, coś</t>
+ </e>
+ <e>
+ <o>alius</o>
+ <t>inny</t>
+ </e>
+ <e>
+ <o>alii...alii</o>
+ <t>niektórzy...inni</t>
+ </e>
+ <e>
+ <o>alter</o>
+ <t>ten drugi, alternatywny</t>
+ </e>
+ <e>
+ <o>altus</o>
+ <t>wysoki, głęboki</t>
+ </e>
+ <e>
+ <o>ambulo (1)</o>
+ <t>spacerować</t>
+ </e>
+ <e>
+ <o>amitto (3)</o>
+ <t>przegrywać</t>
+ </e>
+ <e>
+ <o>amo (1)</o>
+ <t>kochać</t>
+ </e>
+ <e>
+ <o>amor (3)</o>
+ <t>miłość</t>
+ </e>
+ <e>
+ <o>ancilla (1)</o>
+ <t>niewolnica</t>
+ </e>
+ <e>
+ <o>animus (2)</o>
+ <t>duch, umysł, dusza</t>
+ </e>
+ <e>
+ <o>annus (2)</o>
+ <t>rok</t>
+ </e>
+ <e>
+ <o>ante + acc</o>
+ <t>przed (czas), przed czymś</t>
+ </e>
+ <e>
+ <o>antea</o>
+ <t>przed</t>
+ </e>
+ <e>
+ <o>aperio (4)</o>
+ <t>otwierać</t>
+ </e>
+ <e>
+ <o>appareo (2)</o>
+ <t>pojawiać się</t>
+ </e>
+ <e>
+ <o>appropinquo (1)</o>
+ <t>nadchodzić, zbliżać się</t>
+ </e>
+ <e>
+ <o>apud + acc</o>
+ <t>pomiędzy, z, w domu ...</t>
+ </e>
+ <e>
+ <o>aqua (1)</o>
+ <t>woda</t>
+ </e>
+ <e>
+ <o>ara (1)</o>
+ <t>ołtarz</t>
+ </e>
+ <e>
+ <o>arcesso (3)</o>
+ <t>wezwać</t>
+ </e>
+ <e>
+ <o>ars (3)</o>
+ <t>sztuka, umiejętność</t>
+ </e>
+ <e>
+ <o>ascendo (3)</o>
+ <t>wspinać się</t>
+ </e>
+ <e>
+ <o>audax</o>
+ <t>śmiały</t>
+ </e>
+ <e>
+ <o>audeo (2)</o>
+ <t>ośmielać się</t>
+ </e>
+ <e>
+ <o>audio (4)</o>
+ <t>słyszeć, słuchać</t>
+ </e>
+ <e>
+ <o>aufero (3)</o>
+ <t>odbierać, kraść</t>
+ </e>
+ <e>
+ <o>autem</o>
+ <t>ale, aczkolwiek</t>
+ </e>
+ <e>
+ <o>auxilium (2)</o>
+ <t>pomoc</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/BC.kvtml b/klatin/klatin/data/vocab/pl/BC.kvtml
new file mode 100644
index 00000000..adddfcdf
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/BC.kvtml
@@ -0,0 +1,224 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>bellum (2)</o>
+ <t>wojna</t>
+ </e>
+ <e>
+ <o>bellum gerere</o>
+ <t>prowadzić wojnę</t>
+ </e>
+ <e>
+ <o>bene</o>
+ <t>dobrze</t>
+ </e>
+ <e>
+ <o>bibo (3)</o>
+ <t>pić</t>
+ </e>
+ <e>
+ <o>bonus, a, um</o>
+ <t>dobry</t>
+ </e>
+ <e>
+ <o>brevis</o>
+ <t>krótki</t>
+ </e>
+ <e>
+ <o>caelum (2)</o>
+ <t>niebo, niebiosa</t>
+ </e>
+ <e>
+ <o>canis (3)</o>
+ <t>pies</t>
+ </e>
+ <e>
+ <o>canto (1)</o>
+ <t>śpiewać</t>
+ </e>
+ <e>
+ <o>capio (3)</o>
+ <t>chwytać, brać</t>
+ </e>
+ <e>
+ <o>captivus (2)</o>
+ <t>schwytany, więzień</t>
+ </e>
+ <e>
+ <o>caput (3)</o>
+ <t>głowa</t>
+ </e>
+ <e>
+ <o>carmen (3)</o>
+ <t>pieśń, poemat</t>
+ </e>
+ <e>
+ <o>carus</o>
+ <t>drogi</t>
+ </e>
+ <e>
+ <o>castra (2)</o>
+ <t>obóz</t>
+ </e>
+ <e>
+ <o>celer</o>
+ <t>szybki</t>
+ </e>
+ <e>
+ <o>celo (1)</o>
+ <t>ukryć się</t>
+ </e>
+ <e>
+ <o>cena (1)</o>
+ <t>wieczerza</t>
+ </e>
+ <e>
+ <o>centum</o>
+ <t>sto</t>
+ </e>
+ <e>
+ <o>ceteri</o>
+ <t>reszta, pozostali</t>
+ </e>
+ <e>
+ <o>cibus (2)</o>
+ <t>jedzenie</t>
+ </e>
+ <e>
+ <o>circum</o>
+ <t>wokoło</t>
+ </e>
+ <e>
+ <o>civis (3)</o>
+ <t>obywatel</t>
+ </e>
+ <e>
+ <o>clamo (1)</o>
+ <t>krzyczeć, wołać</t>
+ </e>
+ <e>
+ <o>clamor (3)</o>
+ <t>krzyk, hałas</t>
+ </e>
+ <e>
+ <o>coepi (past tenses only)</o>
+ <t>zaczynać</t>
+ </e>
+ <e>
+ <o>cogito (1)</o>
+ <t>myśleć</t>
+ </e>
+ <e>
+ <o>cognosco (3)</o>
+ <t>poznawać</t>
+ </e>
+ <e>
+ <o>cogo (3)</o>
+ <t>zmuszać</t>
+ </e>
+ <e>
+ <o>comes (3)</o>
+ <t>towarzysz</t>
+ </e>
+ <e>
+ <o>conficio (3)</o>
+ <t>skończyć, zmęczyć się</t>
+ </e>
+ <e>
+ <o>conor (1)</o>
+ <t>próbować</t>
+ </e>
+ <e>
+ <o>consentio (4)</o>
+ <t>zgadzać się</t>
+ </e>
+ <e>
+ <o>consilium (2)</o>
+ <t>plan, pomysł, rada</t>
+ </e>
+ <e>
+ <o>conspicio (3)</o>
+ <t>zauważyć</t>
+ </e>
+ <e>
+ <o>consisto (3)</o>
+ <t>zatrzymywać, stać bez ruchu</t>
+ </e>
+ <e>
+ <o>constituo (3)</o>
+ <t>decydować</t>
+ </e>
+ <e>
+ <o>consumo (3)</o>
+ <t>jeść</t>
+ </e>
+ <e>
+ <o>contendo (3)</o>
+ <t>śpieszyć się</t>
+ </e>
+ <e>
+ <o>contra</o>
+ <t>przeciw</t>
+ </e>
+ <e>
+ <o>convenio (4)</o>
+ <t>iść razem, spotykać się, zbierać się</t>
+ </e>
+ <e>
+ <o>corpus (3)</o>
+ <t>ciało</t>
+ </e>
+ <e>
+ <o>cotidie</o>
+ <t>każdego dnia</t>
+ </e>
+ <e>
+ <o>cras</o>
+ <t>jutro</t>
+ </e>
+ <e>
+ <o>crudelis</o>
+ <t>okrutny</t>
+ </e>
+ <e>
+ <o>cum</o>
+ <t>kiedy</t>
+ </e>
+ <e>
+ <o>credo (3)</o>
+ <t>wierzyć, mieć nadzieję w</t>
+ </e>
+ <e>
+ <o>cum + abl</o>
+ <t>z</t>
+ </e>
+ <e>
+ <o>cupio (3)</o>
+ <t>chcieć, pragnąć</t>
+ </e>
+ <e>
+ <o>cur?</o>
+ <t>dlaczego?</t>
+ </e>
+ <e>
+ <o>cura (1)</o>
+ <t>dbać, martwić się</t>
+ </e>
+ <e>
+ <o>curo (1)</o>
+ <t>opiekować się, nadzorować</t>
+ </e>
+ <e>
+ <o>curro (3)</o>
+ <t>biec</t>
+ </e>
+ <e>
+ <o>custodio (4)</o>
+ <t>bronić</t>
+ </e>
+ <e>
+ <o>custos (3)</o>
+ <t>bronić</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/D.kvtml b/klatin/klatin/data/vocab/pl/D.kvtml
new file mode 100644
index 00000000..ca491f41
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/D.kvtml
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>de + abl</o>
+ <t>od, z</t>
+ </e>
+ <e>
+ <o>dea (1)</o>
+ <t>bogini</t>
+ </e>
+ <e>
+ <o>debeo (2)</o>
+ <t>mieć powinność, musieć</t>
+ </e>
+ <e>
+ <o>decem</o>
+ <t>dziesięć</t>
+ </e>
+ <e>
+ <o>decido (3)</o>
+ <t>fall down</t>
+ </e>
+ <e>
+ <o>defendo (3)</o>
+ <t>bronić</t>
+ </e>
+ <e>
+ <o>deinde</o>
+ <t>wtedy</t>
+ </e>
+ <e>
+ <o>deleo (2)</o>
+ <t>niszczyć</t>
+ </e>
+ <e>
+ <o>descendo (3)</o>
+ <t>iść w dół, zstępować</t>
+ </e>
+ <e>
+ <o>despero (1)</o>
+ <t>rozpaczać</t>
+ </e>
+ <e>
+ <o>deus (2)</o>
+ <t>bóg</t>
+ </e>
+ <e>
+ <o>dico (3)</o>
+ <t>mówić</t>
+ </e>
+ <e>
+ <o>dies (5)</o>
+ <t>dzień</t>
+ </e>
+ <e>
+ <o>difficilis</o>
+ <t>trudny</t>
+ </e>
+ <e>
+ <o>dirus</o>
+ <t>straszny</t>
+ </e>
+ <e>
+ <o>diligenter</o>
+ <t>ostrożny</t>
+ </e>
+ <e>
+ <o>discedo (3)</o>
+ <t>opuszczać</t>
+ </e>
+ <e>
+ <o>diu</o>
+ <t>na długi czas</t>
+ </e>
+ <e>
+ <o>dives</o>
+ <t>bogaty</t>
+ </e>
+ <e>
+ <o>do (1)</o>
+ <t>dawać</t>
+ </e>
+ <e>
+ <o>doceo (2)</o>
+ <t>uczyć</t>
+ </e>
+ <e>
+ <o>doctus</o>
+ <t>nauczony, wykształcony, mądry</t>
+ </e>
+ <e>
+ <o>domina (1)</o>
+ <t>pani</t>
+ </e>
+ <e>
+ <o>dominus (2)</o>
+ <t>pan</t>
+ </e>
+ <e>
+ <o>domus (4)</o>
+ <t>dom</t>
+ </e>
+ <e>
+ <o>donum (2)</o>
+ <t>prezent, dar</t>
+ </e>
+ <e>
+ <o>dormio (4)</o>
+ <t>spać</t>
+ </e>
+ <e>
+ <o>duco (3)</o>
+ <t>prowadzić</t>
+ </e>
+ <e>
+ <o>dum</o>
+ <t>podczas</t>
+ </e>
+ <e>
+ <o>duo</o>
+ <t>dwa</t>
+ </e>
+ <e>
+ <o>dux (3)</o>
+ <t>przywódca</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/EF.kvtml b/klatin/klatin/data/vocab/pl/EF.kvtml
new file mode 100644
index 00000000..952766c3
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/EF.kvtml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>e, ex + abl</o>
+ <t>z</t>
+ </e>
+ <e>
+ <o>ecce!</o>
+ <t>oto, patrz</t>
+ </e>
+ <e>
+ <o>efficio (3)</o>
+ <t>osiągnąć</t>
+ </e>
+ <e>
+ <o>effugio (3)</o>
+ <t>uciekać</t>
+ </e>
+ <e>
+ <o>ego</o>
+ <t>ja</t>
+ </e>
+ <e>
+ <o>egredior (3)</o>
+ <t>wychodzić</t>
+ </e>
+ <e>
+ <o>emo (3)</o>
+ <t>kupować</t>
+ </e>
+ <e>
+ <o>enim</o>
+ <t>dla</t>
+ </e>
+ <e>
+ <o>eo (irreg)</o>
+ <t>iść</t>
+ </e>
+ <e>
+ <o>epistula (1)</o>
+ <t>list</t>
+ </e>
+ <e>
+ <o>eques (2)</o>
+ <t>jeździec</t>
+ </e>
+ <e>
+ <o>equus (2)</o>
+ <t>koń</t>
+ </e>
+ <e>
+ <o>et</o>
+ <t>i</t>
+ </e>
+ <e>
+ <o>et... et</o>
+ <t>oba... oraz</t>
+ </e>
+ <e>
+ <o>etiam</o>
+ <t>także, nawet</t>
+ </e>
+ <e>
+ <o>expecto (1)</o>
+ <t>oczekiwać</t>
+ </e>
+ <e>
+ <o>fabula (1)</o>
+ <t>historia, fabuła</t>
+ </e>
+ <e>
+ <o>facilis</o>
+ <t>łatwy</t>
+ </e>
+ <e>
+ <o>facio (3)</o>
+ <t>czynić, robić</t>
+ </e>
+ <e>
+ <o>faveo (2)</o>
+ <t>wspierać, popierać</t>
+ </e>
+ <e>
+ <o>femina (1)</o>
+ <t>kobieta</t>
+ </e>
+ <e>
+ <o>fero (irreg)</o>
+ <t>przynosić, nieść</t>
+ </e>
+ <e>
+ <o>ferox</o>
+ <t>gwałtowny</t>
+ </e>
+ <e>
+ <o>ferrum (2)</o>
+ <t>iron, sword</t>
+ </e>
+ <e>
+ <o>fessus</o>
+ <t>zmęczony</t>
+ </e>
+ <e>
+ <o>festino (1)</o>
+ <t>śpieszyć się</t>
+ </e>
+ <e>
+ <o>fidelis</o>
+ <t>wierny, lojalny</t>
+ </e>
+ <e>
+ <o>fides (5)</o>
+ <t>lojalność, wierność</t>
+ </e>
+ <e>
+ <o>filia (1)</o>
+ <t>córka</t>
+ </e>
+ <e>
+ <o>filius (2)</o>
+ <t>syn</t>
+ </e>
+ <e>
+ <o>flos (3)</o>
+ <t>kwiat</t>
+ </e>
+ <e>
+ <o>flumen (3)</o>
+ <t>rzeka</t>
+ </e>
+ <e>
+ <o>forte</o>
+ <t>szczęśliwie</t>
+ </e>
+ <e>
+ <o>fortis</o>
+ <t>dzielny</t>
+ </e>
+ <e>
+ <o>forum (2)</o>
+ <t>plac, targ</t>
+ </e>
+ <e>
+ <o>frango (3)</o>
+ <t>łamać</t>
+ </e>
+ <e>
+ <o>frater (3)</o>
+ <t>brat</t>
+ </e>
+ <e>
+ <o>frumentum (2)</o>
+ <t>ziarno</t>
+ </e>
+ <e>
+ <o>frustra</o>
+ <t>na próżno</t>
+ </e>
+ <e>
+ <o>fugio (3)</o>
+ <t>uciekać</t>
+ </e>
+ <e>
+ <o>fundo (3)</o>
+ <t>wylewać</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/GHI1.kvtml b/klatin/klatin/data/vocab/pl/GHI1.kvtml
new file mode 100644
index 00000000..4637bcc3
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/GHI1.kvtml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>gaudeo (2)</o>
+ <t>radować się</t>
+ </e>
+ <e>
+ <o>gaudium (2)</o>
+ <t>radość, przyjemność</t>
+ </e>
+ <e>
+ <o>gero (3)</o>
+ <t>nosić (ubrania), prowadzić (wojnę)</t>
+ </e>
+ <e>
+ <o>gladius (2)</o>
+ <t>miecz</t>
+ </e>
+ <e>
+ <o>gratias ago</o>
+ <t>dziękować</t>
+ </e>
+ <e>
+ <o>gravis</o>
+ <t>ciężki, poważny</t>
+ </e>
+ <e>
+ <o>habeo (2)</o>
+ <t>mieć</t>
+ </e>
+ <e>
+ <o>habito (1)</o>
+ <t>żyć</t>
+ </e>
+ <e>
+ <o>heri</o>
+ <t>wczoraj</t>
+ </e>
+ <e>
+ <o>hic</o>
+ <t>tutaj</t>
+ </e>
+ <e>
+ <o>hic, haec, hoc</o>
+ <t>to</t>
+ </e>
+ <e>
+ <o>hodie</o>
+ <t>dziś</t>
+ </e>
+ <e>
+ <o>homo (3)</o>
+ <t>człowiek</t>
+ </e>
+ <e>
+ <o>honor (3)</o>
+ <t>zaszczyt, urząd</t>
+ </e>
+ <e>
+ <o>hora (1)</o>
+ <t>godzina</t>
+ </e>
+ <e>
+ <o>hortor (1)</o>
+ <t>zachęcać</t>
+ </e>
+ <e>
+ <o>hortus (2)</o>
+ <t>ogród</t>
+ </e>
+ <e>
+ <o>hospes (3)</o>
+ <t>gość, gospodarz</t>
+ </e>
+ <e>
+ <o>hostis (3)</o>
+ <t>wróg</t>
+ </e>
+ <e>
+ <o>humus (2)</o>
+ <t>ziemia</t>
+ </e>
+ <e>
+ <o>iaceo (2)</o>
+ <t>kłamać</t>
+ </e>
+ <e>
+ <o>iacio (3)</o>
+ <t>rzucać</t>
+ </e>
+ <e>
+ <o>de-/e-/in-icio</o>
+ <t>zrzucać, wyrzucać, wrzucać</t>
+ </e>
+ <e>
+ <o>iam</o>
+ <t>teraz, już</t>
+ </e>
+ <e>
+ <o>ianua (1)</o>
+ <t>drzwi</t>
+ </e>
+ <e>
+ <o>ibi</o>
+ <t>tam</t>
+ </e>
+ <e>
+ <o>idem</o>
+ <t>ten sam</t>
+ </e>
+ <e>
+ <o>igitur</o>
+ <t>dlatego</t>
+ </e>
+ <e>
+ <o>ignarus</o>
+ <t>nie wiedzący, nieświadomy</t>
+ </e>
+ <e>
+ <o>ille</o>
+ <t>ten, on, ona, to</t>
+ </e>
+ <e>
+ <o>imperator (3)</o>
+ <t>cesarz</t>
+ </e>
+ <e>
+ <o>imperium (2)</o>
+ <t>imperium, potęga, dowodzenie</t>
+ </e>
+ <e>
+ <o>impero (1)</o>
+ <t>rozkazywać, dowodzić</t>
+ </e>
+ <e>
+ <o>impetus (4)</o>
+ <t>atak</t>
+ </e>
+ <e>
+ <o>in + abl</o>
+ <t>w, na</t>
+ </e>
+ <e>
+ <o>in + acc</o>
+ <t>w, na (zmiana stanu)</t>
+ </e>
+ <e>
+ <o>incendo (3)</o>
+ <t>palić, podpalać</t>
+ </e>
+ <e>
+ <o>infelix</o>
+ <t>nieszczęśliwy</t>
+ </e>
+ <e>
+ <o>ingenium (2)</o>
+ <t>charakter</t>
+ </e>
+ <e>
+ <o>ingens</o>
+ <t>duży</t>
+ </e>
+ <e>
+ <o>ingredior (3)</o>
+ <t>wchodzić</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/I2L.kvtml b/klatin/klatin/data/vocab/pl/I2L.kvtml
new file mode 100644
index 00000000..712cba87
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/I2L.kvtml
@@ -0,0 +1,184 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>inquit (irreg)</o>
+ <t>mówić, powiedzieć</t>
+ </e>
+ <e>
+ <o>inspicio (3)</o>
+ <t>spojrzeć na, sprawdzać</t>
+ </e>
+ <e>
+ <o>insula (1)</o>
+ <t>wyspa</t>
+ </e>
+ <e>
+ <o>intellego (3)</o>
+ <t>rozumieć</t>
+ </e>
+ <e>
+ <o>inter + acc</o>
+ <t>pomiędzy, między</t>
+ </e>
+ <e>
+ <o>interea</o>
+ <t>podczas</t>
+ </e>
+ <e>
+ <o>interficio (3)</o>
+ <t>zabić</t>
+ </e>
+ <e>
+ <o>intro (1)</o>
+ <t>wejść</t>
+ </e>
+ <e>
+ <o>invenio (3)</o>
+ <t>znaleźć</t>
+ </e>
+ <e>
+ <o>invito (1)</o>
+ <t>zapraszać</t>
+ </e>
+ <e>
+ <o>invitus</o>
+ <t>niechętny</t>
+ </e>
+ <e>
+ <o>ipse</o>
+ <t>on sam, ona sama, to samo</t>
+ </e>
+ <e>
+ <o>ira (1)</o>
+ <t>gniew</t>
+ </e>
+ <e>
+ <o>iratus</o>
+ <t>gniewny</t>
+ </e>
+ <e>
+ <o>is, ea, id</o>
+ <t>ten, to, on, ona, to</t>
+ </e>
+ <e>
+ <o>ita</o>
+ <t>tym sposobem</t>
+ </e>
+ <e>
+ <o>ita vero</o>
+ <t>zaprawdę, tak</t>
+ </e>
+ <e>
+ <o>itaque</o>
+ <t>i tak, dlatego</t>
+ </e>
+ <e>
+ <o>iter (3)</o>
+ <t>podróż</t>
+ </e>
+ <e>
+ <o>iterum</o>
+ <t>znowu</t>
+ </e>
+ <e>
+ <o>iubeo (2)</o>
+ <t>rozkazywać</t>
+ </e>
+ <e>
+ <o>iudex (3)</o>
+ <t>sądzić</t>
+ </e>
+ <e>
+ <o>iuvenis (3)</o>
+ <t>młodzieniec</t>
+ </e>
+ <e>
+ <o>labor (3)</o>
+ <t>praca</t>
+ </e>
+ <e>
+ <o>laboro (1)</o>
+ <t>pracować</t>
+ </e>
+ <e>
+ <o>lacrima (1)</o>
+ <t>łza</t>
+ </e>
+ <e>
+ <o>lacrimo (1)</o>
+ <t>płakać</t>
+ </e>
+ <e>
+ <o>laetus</o>
+ <t>szczęśliwy</t>
+ </e>
+ <e>
+ <o>latus</o>
+ <t>szeroki</t>
+ </e>
+ <e>
+ <o>laudo (1)</o>
+ <t>chwalić</t>
+ </e>
+ <e>
+ <o>legatus (2)</o>
+ <t>dowódca</t>
+ </e>
+ <e>
+ <o>legio (3)</o>
+ <t>legion</t>
+ </e>
+ <e>
+ <o>lego (3)</o>
+ <t>czytać, wybierać</t>
+ </e>
+ <e>
+ <o>lente</o>
+ <t>powoli</t>
+ </e>
+ <e>
+ <o>leo (3)</o>
+ <t>lew</t>
+ </e>
+ <e>
+ <o>libenter</o>
+ <t>chętnie, z radością</t>
+ </e>
+ <e>
+ <o>liber</o>
+ <t>książka</t>
+ </e>
+ <e>
+ <o>liberi (2)</o>
+ <t>dzieci</t>
+ </e>
+ <e>
+ <o>libero (1)</o>
+ <t>uwalniać</t>
+ </e>
+ <e>
+ <o>libertus (2)</o>
+ <t>wyzwoleniec, były niewolnik</t>
+ </e>
+ <e>
+ <o>locus (2)</o>
+ <t>miejsce</t>
+ </e>
+ <e>
+ <o>longus</o>
+ <t>długi</t>
+ </e>
+ <e>
+ <o>loquor (3)</o>
+ <t>mówić</t>
+ </e>
+ <e>
+ <o>luna (1)</o>
+ <t>księżyc</t>
+ </e>
+ <e>
+ <o>lux (3)</o>
+ <t>światło</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/M.kvtml b/klatin/klatin/data/vocab/pl/M.kvtml
new file mode 100644
index 00000000..907484b3
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/M.kvtml
@@ -0,0 +1,124 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>magnopere</o>
+ <t>wspaniale</t>
+ </e>
+ <e>
+ <o>magnus</o>
+ <t>wielki, duży</t>
+ </e>
+ <e>
+ <o>malo (irreg)</o>
+ <t>woleć</t>
+ </e>
+ <e>
+ <o>malus</o>
+ <t>zły</t>
+ </e>
+ <e>
+ <o>maneo (2)</o>
+ <t>pozostawać</t>
+ </e>
+ <e>
+ <o>manus (4)</o>
+ <t>ręka, grupa ludzi</t>
+ </e>
+ <e>
+ <o>mare (3)</o>
+ <t>morze</t>
+ </e>
+ <e>
+ <o>maritus (2)</o>
+ <t>mąż</t>
+ </e>
+ <e>
+ <o>mater (3)</o>
+ <t>matka</t>
+ </e>
+ <e>
+ <o>maximus</o>
+ <t>największy, bardzo dużo</t>
+ </e>
+ <e>
+ <o>medius</o>
+ <t>średni</t>
+ </e>
+ <e>
+ <o>mercator (3)</o>
+ <t>kupiec</t>
+ </e>
+ <e>
+ <o>meus</o>
+ <t>mój</t>
+ </e>
+ <e>
+ <o>miles (3)</o>
+ <t>żołnierz</t>
+ </e>
+ <e>
+ <o>mille (irreg)</o>
+ <t>tysiąc</t>
+ </e>
+ <e>
+ <o>minimus</o>
+ <t>najmniejszy, bardzo mało</t>
+ </e>
+ <e>
+ <o>minime</o>
+ <t>bardzo mało, najmniej</t>
+ </e>
+ <e>
+ <o>mirabilis</o>
+ <t>dziwny, cudowny</t>
+ </e>
+ <e>
+ <o>miser</o>
+ <t>żałosny, smutny</t>
+ </e>
+ <e>
+ <o>mitto (3)</o>
+ <t>wysyłać</t>
+ </e>
+ <e>
+ <o>modus (2)</o>
+ <t>sposób</t>
+ </e>
+ <e>
+ <o>moneo (2)</o>
+ <t>ostrzegać, doradzać</t>
+ </e>
+ <e>
+ <o>mons (3)</o>
+ <t>góra</t>
+ </e>
+ <e>
+ <o>morior (3)</o>
+ <t>umierać</t>
+ </e>
+ <e>
+ <o>mors (3)</o>
+ <t>śmierć</t>
+ </e>
+ <e>
+ <o>moveo (2)</o>
+ <t>ruszać</t>
+ </e>
+ <e>
+ <o>mox</o>
+ <t>wkrótce</t>
+ </e>
+ <e>
+ <o>multo</o>
+ <t>dużo</t>
+ </e>
+ <e>
+ <o>multus</o>
+ <t>liczny</t>
+ </e>
+ <e>
+ <o>murus (2)</o>
+ <t>mur</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/Makefile.am b/klatin/klatin/data/vocab/pl/Makefile.am
new file mode 100644
index 00000000..fe184430
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/Makefile.am
@@ -0,0 +1,3 @@
+pl_vocabdir = $(kde_datadir)/klatin/data/vocabs/pl
+pl_vocab_DATA = A.kvtml BC.kvtml D.kvtml EF.kvtml GHI1.kvtml I2L.kvtml M.kvtml N.kvtml \
+ OP1.kvtml P2.kvtml QR.kvtml S.kvtml TU.kvtml V.kvtml
diff --git a/klatin/klatin/data/vocab/pl/N.kvtml b/klatin/klatin/data/vocab/pl/N.kvtml
new file mode 100644
index 00000000..af7afc55
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/N.kvtml
@@ -0,0 +1,152 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>nuntio (1)</o>
+ <t>ogłaszać</t>
+ </e>
+ <e>
+ <o>nascor (3)</o>
+ <t>rodzić się, pochodzić</t>
+ </e>
+ <e>
+ <o>numero (1)</o>
+ <t>liczyć</t>
+ </e>
+ <e>
+ <o>nam</o>
+ <t>dla</t>
+ </e>
+ <e>
+ <o>-ne</o>
+ <t>wprowadza pytanie</t>
+ </e>
+ <e>
+ <o>neco (1)</o>
+ <t>zabić</t>
+ </e>
+ <e>
+ <o>notus</o>
+ <t>znany, sławny</t>
+ </e>
+ <e>
+ <o>nuntius (2)</o>
+ <t>posłaniec, wiadomość</t>
+ </e>
+ <e>
+ <o>nomen (3)</o>
+ <t>imię</t>
+ </e>
+ <e>
+ <o>nec... nec</o>
+ <t>ani... ani</t>
+ </e>
+ <e>
+ <o>numquam</o>
+ <t>nigdy</t>
+ </e>
+ <e>
+ <o>novus</o>
+ <t>nowy</t>
+ </e>
+ <e>
+ <o>nox (3)</o>
+ <t>noc</t>
+ </e>
+ <e>
+ <o>novem</o>
+ <t>dziewięć</t>
+ </e>
+ <e>
+ <o>nemo (irreg)</o>
+ <t>nikt</t>
+ </e>
+ <e>
+ <o>nobilis</o>
+ <t>szlachetny, dobrze urodzony</t>
+ </e>
+ <e>
+ <o>non </o>
+ <t>nie</t>
+ </e>
+ <e>
+ <o>nullus</o>
+ <t>nic, żaden</t>
+ </e>
+ <e>
+ <o>ne quidem</o>
+ <t>nawet nie</t>
+ </e>
+ <e>
+ <o>nescio (4)</o>
+ <t>nie wiedzieć</t>
+ </e>
+ <e>
+ <o>nolo (irreg)</o>
+ <t>nie chcieć</t>
+ </e>
+ <e>
+ <o>nihil (irreg)</o>
+ <t>nic</t>
+ </e>
+ <e>
+ <o>nunc</o>
+ <t>teraz</t>
+ </e>
+ <e>
+ <o>nusquam</o>
+ <t>nigdzie</t>
+ </e>
+ <e>
+ <o>numerus (2)</o>
+ <t>liczba</t>
+ </e>
+ <e>
+ <o>noster</o>
+ <t>nasz</t>
+ </e>
+ <e>
+ <o>navigo (1)</o>
+ <t>żeglować</t>
+ </e>
+ <e>
+ <o>nauta (1)</o>
+ <t>żeglarz</t>
+ </e>
+ <e>
+ <o>navis (3)</o>
+ <t>statek</t>
+ </e>
+ <e>
+ <o>nonnulli</o>
+ <t>kilka, trochę</t>
+ </e>
+ <e>
+ <o>num...?</o>
+ <t>na pewno nie?</t>
+ </e>
+ <e>
+ <o>nonne?</o>
+ <t>na pewno?</t>
+ </e>
+ <e>
+ <o>narro (1)</o>
+ <t>opowiadać, relacjonować</t>
+ </e>
+ <e>
+ <o>ne</o>
+ <t>to... nie, tak więc... nie</t>
+ </e>
+ <e>
+ <o>nisi</o>
+ <t>jeśli nie, z wyjątkiem</t>
+ </e>
+ <e>
+ <o>nos</o>
+ <t>my, nas</t>
+ </e>
+ <e>
+ <o>num</o>
+ <t>jeśli</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/OP1.kvtml b/klatin/klatin/data/vocab/pl/OP1.kvtml
new file mode 100644
index 00000000..f82a7557
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/OP1.kvtml
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>occido (3)</o>
+ <t>zabić</t>
+ </e>
+ <e>
+ <o>octo</o>
+ <t>osiem</t>
+ </e>
+ <e>
+ <o>oculus (2)</o>
+ <t>oko</t>
+ </e>
+ <e>
+ <o>odi (defect)</o>
+ <t>nienawidzę</t>
+ </e>
+ <e>
+ <o>offero (irref)</o>
+ <t>oferować</t>
+ </e>
+ <e>
+ <o>olim</o>
+ <t>raz, jakiś czas temu</t>
+ </e>
+ <e>
+ <o>omnis</o>
+ <t>wszystko, zawsze</t>
+ </e>
+ <e>
+ <o>opprimo (3)</o>
+ <t>zmiażdżyć</t>
+ </e>
+ <e>
+ <o>oppugno (1)</o>
+ <t>atakować</t>
+ </e>
+ <e>
+ <o>optimus</o>
+ <t>bardzo dobry, znakomity, najlepszy</t>
+ </e>
+ <e>
+ <o>opus (3)</o>
+ <t>pracować, dzieło</t>
+ </e>
+ <e>
+ <o>oro (1)</o>
+ <t>błagać, żebrać</t>
+ </e>
+ <e>
+ <o>ostendo (3)</o>
+ <t>pokazywać</t>
+ </e>
+ <e>
+ <o>paene</o>
+ <t>prawie, blisko</t>
+ </e>
+ <e>
+ <o>pareo (2)</o>
+ <t>być posłusznym</t>
+ </e>
+ <e>
+ <o>paro (1)</o>
+ <t>przygotowywać</t>
+ </e>
+ <e>
+ <o>pars (3)</o>
+ <t>część</t>
+ </e>
+ <e>
+ <o>parvus</o>
+ <t>mały</t>
+ </e>
+ <e>
+ <o>pater (3)</o>
+ <t>ojciec</t>
+ </e>
+ <e>
+ <o>patior (3)</o>
+ <t>cierpieć</t>
+ </e>
+ <e>
+ <o>pauci</o>
+ <t>odrobina, mało</t>
+ </e>
+ <e>
+ <o>pauper</o>
+ <t>biedny</t>
+ </e>
+ <e>
+ <o>pax (3)</o>
+ <t>pokój</t>
+ </e>
+ <e>
+ <o>pecunia (1)</o>
+ <t>pieniądze</t>
+ </e>
+ <e>
+ <o>per + acc</o>
+ <t>przez</t>
+ </e>
+ <e>
+ <o>periculum (2)</o>
+ <t>niebezpieczeństwo</t>
+ </e>
+ <e>
+ <o>periculosus </o>
+ <t>niebezpieczny</t>
+ </e>
+ <e>
+ <o>persuadeo (2)</o>
+ <t>perswadować</t>
+ </e>
+ <e>
+ <o>perterritus</o>
+ <t>przerażony</t>
+ </e>
+ <e>
+ <o>pervenio (4)</o>
+ <t>osiągać, przybywać</t>
+ </e>
+ <e>
+ <o>pes (3)</o>
+ <t>stopa, pazur</t>
+ </e>
+ <e>
+ <o>pessimus</o>
+ <t>bardzo źle, najgorzej</t>
+ </e>
+ <e>
+ <o>peto (3)</o>
+ <t>szukać, błagać, prosić, atakować</t>
+ </e>
+ <e>
+ <o>placet (2, impersonal)</o>
+ <t>zadowalać, pasować</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/P2.kvtml b/klatin/klatin/data/vocab/pl/P2.kvtml
new file mode 100644
index 00000000..72ccf9ab
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/P2.kvtml
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>plenus</o>
+ <t>pełny</t>
+ </e>
+ <e>
+ <o>plurimus</o>
+ <t>większość, bardzo dużo</t>
+ </e>
+ <e>
+ <o>plus</o>
+ <t>więcej</t>
+ </e>
+ <e>
+ <o>poena (1)</o>
+ <t>kara</t>
+ </e>
+ <e>
+ <o>poenas do</o>
+ <t>płacić karę, zostać ukaranym</t>
+ </e>
+ <e>
+ <o>pono (3)</o>
+ <t>położyć, umieścić</t>
+ </e>
+ <e>
+ <o>pons (3)</o>
+ <t>most</t>
+ </e>
+ <e>
+ <o>populus (2) </o>
+ <t>lud, ludzie, naród</t>
+ </e>
+ <e>
+ <o>porta (1)</o>
+ <t>brama</t>
+ </e>
+ <e>
+ <o>porto (1)</o>
+ <t>nieść</t>
+ </e>
+ <e>
+ <o>portus (4)</o>
+ <t>port</t>
+ </e>
+ <e>
+ <o>possum (irreg)</o>
+ <t>móc, być w stanie</t>
+ </e>
+ <e>
+ <o>post + acc</o>
+ <t>za, poza</t>
+ </e>
+ <e>
+ <o>postea</o>
+ <t>potem</t>
+ </e>
+ <e>
+ <o>postquam</o>
+ <t>potym, kiedy</t>
+ </e>
+ <e>
+ <o>postridie</o>
+ <t>następnego dnia, jutro</t>
+ </e>
+ <e>
+ <o>postulo (1)</o>
+ <t>żądanie</t>
+ </e>
+ <e>
+ <o>praebeo (2)</o>
+ <t>zapewniać</t>
+ </e>
+ <e>
+ <o>praemium (2)</o>
+ <t>nagroda, zysk</t>
+ </e>
+ <e>
+ <o>pretium (2)</o>
+ <t>cena</t>
+ </e>
+ <e>
+ <o>primus</o>
+ <t>pierwszy</t>
+ </e>
+ <e>
+ <o>princeps (3)</o>
+ <t>dowódca, przywódca, cesarz</t>
+ </e>
+ <e>
+ <o>priusquam</o>
+ <t>przed, dopóki</t>
+ </e>
+ <e>
+ <o>pro + abl</o>
+ <t>przed czymś, dla, w zamian</t>
+ </e>
+ <e>
+ <o>procedo (3)</o>
+ <t>postępować, iść do przodu</t>
+ </e>
+ <e>
+ <o>procul</o>
+ <t>daleko</t>
+ </e>
+ <e>
+ <o>proficiscor (3)</o>
+ <t>wyruszyć, podróżować</t>
+ </e>
+ <e>
+ <o>progredior (3)</o>
+ <t>posuwać się do przodu</t>
+ </e>
+ <e>
+ <o>promitto (3)</o>
+ <t>obiecywać</t>
+ </e>
+ <e>
+ <o>prope + acc</o>
+ <t>blisko</t>
+ </e>
+ <e>
+ <o>proximus</o>
+ <t>najbliższy, następny</t>
+ </e>
+ <e>
+ <o>puella (1)</o>
+ <t>dziewczyna</t>
+ </e>
+ <e>
+ <o>puer (2)</o>
+ <t>chłopiec</t>
+ </e>
+ <e>
+ <o>pugno (1)</o>
+ <t>walczyć</t>
+ </e>
+ <e>
+ <o>pulcher</o>
+ <t>piękny, przystojny</t>
+ </e>
+ <e>
+ <o>punio (4)</o>
+ <t>karać</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/QR.kvtml b/klatin/klatin/data/vocab/pl/QR.kvtml
new file mode 100644
index 00000000..f43207b3
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/QR.kvtml
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>quaero (3)</o>
+ <t>szukać, pytać</t>
+ </e>
+ <e>
+ <o>qualis</o>
+ <t>co za jeden</t>
+ </e>
+ <e>
+ <o>quam</o>
+ <t>jak; niż</t>
+ </e>
+ <e>
+ <o>quamquam</o>
+ <t>chociać</t>
+ </e>
+ <e>
+ <o>quantus?</o>
+ <t>jak duży?</t>
+ </e>
+ <e>
+ <o>quattuor</o>
+ <t>cztery</t>
+ </e>
+ <e>
+ <o>-que</o>
+ <t>i</t>
+ </e>
+ <e>
+ <o>qui</o>
+ <t>kto, który</t>
+ </e>
+ <e>
+ <o>quidam</o>
+ <t>jeden, pewien, jakiś</t>
+ </e>
+ <e>
+ <o>quinque</o>
+ <t>pięć</t>
+ </e>
+ <e>
+ <o>quis?</o>
+ <t>kto? co?</t>
+ </e>
+ <e>
+ <o>quo?</o>
+ <t>gdzie?</t>
+ </e>
+ <e>
+ <o>quod</o>
+ <t>ponieważ</t>
+ </e>
+ <e>
+ <o>quo modo?</o>
+ <t>jak? w jaki sposób?</t>
+ </e>
+ <e>
+ <o>quoque</o>
+ <t>także</t>
+ </e>
+ <e>
+ <o>quot?</o>
+ <t>jak dużo?</t>
+ </e>
+ <e>
+ <o>rapio (3)</o>
+ <t>schwytać, złapać</t>
+ </e>
+ <e>
+ <o>re-</o>
+ <t>-znowu</t>
+ </e>
+ <e>
+ <o>reddo (3)</o>
+ <t>zwrócić, przywrócić</t>
+ </e>
+ <e>
+ <o>redeo (irreg)</o>
+ <t>wracać, wrócić</t>
+ </e>
+ <e>
+ <o>refero (irreg)</o>
+ <t>przynieść z powrotem; zdawać relację, opowiadać</t>
+ </e>
+ <e>
+ <o>reficio (3)</o>
+ <t>reperować</t>
+ </e>
+ <e>
+ <o>regina (1)</o>
+ <t>królowa</t>
+ </e>
+ <e>
+ <o>regnum (2)</o>
+ <t>królestwo</t>
+ </e>
+ <e>
+ <o>regredior (3)</o>
+ <t>wracać, cofać się</t>
+ </e>
+ <e>
+ <o>relinquo (3)</o>
+ <t>opuszczać</t>
+ </e>
+ <e>
+ <o>res (5)</o>
+ <t>rzecz, interes</t>
+ </e>
+ <e>
+ <o>resisto (3)</o>
+ <t>opierać się</t>
+ </e>
+ <e>
+ <o>respondeo (2)</o>
+ <t>odpowiadać</t>
+ </e>
+ <e>
+ <o>rex (3)</o>
+ <t>król</t>
+ </e>
+ <e>
+ <o>rideo (2)</o>
+ <t>śmiać się, uśmiechać się</t>
+ </e>
+ <e>
+ <o>rogo (1)</o>
+ <t>pytać, dowiadywać</t>
+ </e>
+ <e>
+ <o>Roma (1)</o>
+ <t>Rzym</t>
+ </e>
+ <e>
+ <o>Romanus</o>
+ <t>Rzymianin</t>
+ </e>
+ <e>
+ <o>rursus</o>
+ <t>znowu</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/S.kvtml b/klatin/klatin/data/vocab/pl/S.kvtml
new file mode 100644
index 00000000..2b0f38f3
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/S.kvtml
@@ -0,0 +1,220 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>sacer</o>
+ <t>święty</t>
+ </e>
+ <e>
+ <o>sacerdos (3)</o>
+ <t>kapłan</t>
+ </e>
+ <e>
+ <o>saepe</o>
+ <t>często</t>
+ </e>
+ <e>
+ <o>saevus</o>
+ <t>dziki, okrutny</t>
+ </e>
+ <e>
+ <o>salus (3)</o>
+ <t>bezpieczny, zdrowy</t>
+ </e>
+ <e>
+ <o>saluto (1)</o>
+ <t>witać, pozdrawiać</t>
+ </e>
+ <e>
+ <o>salve!</o>
+ <t>witam!</t>
+ </e>
+ <e>
+ <o>sanguis (3)</o>
+ <t>krew</t>
+ </e>
+ <e>
+ <o>sapiens</o>
+ <t>mądry</t>
+ </e>
+ <e>
+ <o>satis</o>
+ <t>wystarczająco, dość</t>
+ </e>
+ <e>
+ <o>saxum (2)</o>
+ <t>skała</t>
+ </e>
+ <e>
+ <o>scio (4)</o>
+ <t>wiedzieć</t>
+ </e>
+ <e>
+ <o>scribo (3)</o>
+ <t>pisać</t>
+ </e>
+ <e>
+ <o>se</o>
+ <t>on sam, ona sama, to</t>
+ </e>
+ <e>
+ <o>sed</o>
+ <t>lecz, ale</t>
+ </e>
+ <e>
+ <o>sedeo (2)</o>
+ <t>siedzieć</t>
+ </e>
+ <e>
+ <o>semper</o>
+ <t>zawsze</t>
+ </e>
+ <e>
+ <o>senator (3)</o>
+ <t>senator</t>
+ </e>
+ <e>
+ <o>senex (3)</o>
+ <t>starzec</t>
+ </e>
+ <e>
+ <o>sentio (4)</o>
+ <t>czuć, zauważać</t>
+ </e>
+ <e>
+ <o>septem</o>
+ <t>siedem</t>
+ </e>
+ <e>
+ <o>sequor (3)</o>
+ <t>podążać</t>
+ </e>
+ <e>
+ <o>sermo (3)</o>
+ <t>rozmowa</t>
+ </e>
+ <e>
+ <o>servo (1)</o>
+ <t>pilnować, obserwować</t>
+ </e>
+ <e>
+ <o>servus (2)</o>
+ <t>niewolnik</t>
+ </e>
+ <e>
+ <o>severus</o>
+ <t>ciężki, rygorystyczny</t>
+ </e>
+ <e>
+ <o>sex</o>
+ <t>sześć</t>
+ </e>
+ <e>
+ <o>si</o>
+ <t>jeśli</t>
+ </e>
+ <e>
+ <o>sic</o>
+ <t>tak, w ten sposób</t>
+ </e>
+ <e>
+ <o>sicut</o>
+ <t>tak jak</t>
+ </e>
+ <e>
+ <o>signum (2)</o>
+ <t>znak, pieczęć</t>
+ </e>
+ <e>
+ <o>silva (1)</o>
+ <t>las, drzewo</t>
+ </e>
+ <e>
+ <o>simulac</o>
+ <t>tak szybko jak</t>
+ </e>
+ <e>
+ <o>sine + abl</o>
+ <t>bez</t>
+ </e>
+ <e>
+ <o>sol (3)</o>
+ <t>słońce</t>
+ </e>
+ <e>
+ <o>soleo (2)</o>
+ <t>być przyzwyczajonym</t>
+ </e>
+ <e>
+ <o>solus</o>
+ <t>sam, samotny, tylko</t>
+ </e>
+ <e>
+ <o>sonitus (4)</o>
+ <t>hałas</t>
+ </e>
+ <e>
+ <o>soror (3)</o>
+ <t>siostra</t>
+ </e>
+ <e>
+ <o>specto (1)</o>
+ <t>spojrzeć na, obserwować</t>
+ </e>
+ <e>
+ <o>spero (1)</o>
+ <t>mieć nadzieję, oczekiwać</t>
+ </e>
+ <e>
+ <o>spes (5)</o>
+ <t>nadzieja</t>
+ </e>
+ <e>
+ <o>statim</o>
+ <t>natychmiast</t>
+ </e>
+ <e>
+ <o>sto (1)</o>
+ <t>stać</t>
+ </e>
+ <e>
+ <o>stultus</o>
+ <t>głupi, głupio</t>
+ </e>
+ <e>
+ <o>suavis</o>
+ <t>słodki</t>
+ </e>
+ <e>
+ <o>sub + acc/abl</o>
+ <t>pod, pod spodem</t>
+ </e>
+ <e>
+ <o>subito</o>
+ <t>nagle</t>
+ </e>
+ <e>
+ <o>sum (irreg)</o>
+ <t>być</t>
+ </e>
+ <e>
+ <o>summus</o>
+ <t>najwyższy, największy, szczyt (czegoś)</t>
+ </e>
+ <e>
+ <o>superbus</o>
+ <t>dumny, arogancki</t>
+ </e>
+ <e>
+ <o>supero (1)</o>
+ <t>zwyciężać, przewyższać</t>
+ </e>
+ <e>
+ <o>surgo (3)</o>
+ <t>podnieść się, wstać, unieść się</t>
+ </e>
+ <e>
+ <o>suus</o>
+ <t>jego, jej, tego, ich (własny)</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/TU.kvtml b/klatin/klatin/data/vocab/pl/TU.kvtml
new file mode 100644
index 00000000..64524d94
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/TU.kvtml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>taberna (1)</o>
+ <t>sklep, karczma</t>
+ </e>
+ <e>
+ <o>taceo (2)</o>
+ <t>być cicho</t>
+ </e>
+ <e>
+ <o>talis</o>
+ <t>taki</t>
+ </e>
+ <e>
+ <o>tam</o>
+ <t>tak bardzo</t>
+ </e>
+ <e>
+ <o>tamen</o>
+ <t>jednak</t>
+ </e>
+ <e>
+ <o>tandem</o>
+ <t>w końcu</t>
+ </e>
+ <e>
+ <o>tantus</o>
+ <t>tak wielki</t>
+ </e>
+ <e>
+ <o>templum (2)</o>
+ <t>świątynia</t>
+ </e>
+ <e>
+ <o>tempestas (3)</o>
+ <t>burza, sztorm</t>
+ </e>
+ <e>
+ <o>tempus (3)</o>
+ <t>czas</t>
+ </e>
+ <e>
+ <o>teneo (2)</o>
+ <t>trzymać</t>
+ </e>
+ <e>
+ <o>terra (1)</o>
+ <t>ziemia, kraj</t>
+ </e>
+ <e>
+ <o>terreo (2)</o>
+ <t>straszyć</t>
+ </e>
+ <e>
+ <o>timeo (2)</o>
+ <t>bać się</t>
+ </e>
+ <e>
+ <o>tollo (3)</o>
+ <t>podnieść</t>
+ </e>
+ <e>
+ <o>tot</o>
+ <t>tak wiele</t>
+ </e>
+ <e>
+ <o>totus</o>
+ <t>cały</t>
+ </e>
+ <e>
+ <o>trado (3)</o>
+ <t>przekazać</t>
+ </e>
+ <e>
+ <o>traho (3)</o>
+ <t>ciągnąć</t>
+ </e>
+ <e>
+ <o>trans + acc</o>
+ <t>w poprzek</t>
+ </e>
+ <e>
+ <o>tres </o>
+ <t>drzewo</t>
+ </e>
+ <e>
+ <o>tristis</o>
+ <t>smutny</t>
+ </e>
+ <e>
+ <o>tu</o>
+ <t>ty, twój</t>
+ </e>
+ <e>
+ <o>tum</o>
+ <t>potem</t>
+ </e>
+ <e>
+ <o>turba (1)</o>
+ <t>tłum</t>
+ </e>
+ <e>
+ <o>tutus</o>
+ <t>bezpieczny</t>
+ </e>
+ <e>
+ <o>tuus</o>
+ <t>twój (singular), wasz</t>
+ </e>
+ <e>
+ <o>ubi</o>
+ <t>gdzie? gdzie, kiedy</t>
+ </e>
+ <e>
+ <o>iltimus</o>
+ <t>najdalszy, ostatni</t>
+ </e>
+ <e>
+ <o>umquam</o>
+ <t>zawsze</t>
+ </e>
+ <e>
+ <o>unda (1)</o>
+ <t>fala</t>
+ </e>
+ <e>
+ <o>unde</o>
+ <t>skąd</t>
+ </e>
+ <e>
+ <o>unus</o>
+ <t>jeden</t>
+ </e>
+ <e>
+ <o>urbs (3)</o>
+ <t>miasto</t>
+ </e>
+ <e>
+ <o>ut + indic</o>
+ <t>jak, jak bardzo</t>
+ </e>
+ <e>
+ <o>ut + subj</o>
+ <t>jak tylko</t>
+ </e>
+ <e>
+ <o>utilis</o>
+ <t>użyteczny</t>
+ </e>
+ <e>
+ <o>utrum... an</o>
+ <t>czy... czy</t>
+ </e>
+ <e>
+ <o>uxor (3)</o>
+ <t>żona</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/pl/V.kvtml b/klatin/klatin/data/vocab/pl/V.kvtml
new file mode 100644
index 00000000..6ace2e9a
--- /dev/null
+++ b/klatin/klatin/data/vocab/pl/V.kvtml
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>valde</o>
+ <t>bardzo, mocno, gwałtownie</t>
+ </e>
+ <e>
+ <o>vale</o>
+ <t>do widzenia, pożegnanie</t>
+ </e>
+ <e>
+ <o>vehementer</o>
+ <t>gwałtowny, głośny</t>
+ </e>
+ <e>
+ <o>veho (3)</o>
+ <t>nieść</t>
+ </e>
+ <e>
+ <o>vendo (3)</o>
+ <t>sprzedawać</t>
+ </e>
+ <e>
+ <o>venio (4)</o>
+ <t>przychodzić</t>
+ </e>
+ <e>
+ <o>ventus (2)</o>
+ <t>wiatr</t>
+ </e>
+ <e>
+ <o>verbum (2)</o>
+ <t>słowo</t>
+ </e>
+ <e>
+ <o>verto (3)</o>
+ <t>obracać</t>
+ </e>
+ <e>
+ <o>verus</o>
+ <t>prawdziwy, rzeczywisty</t>
+ </e>
+ <e>
+ <o>vester</o>
+ <t>wy, wasz</t>
+ </e>
+ <e>
+ <o>vestimenta (2)</o>
+ <t>ubrania</t>
+ </e>
+ <e>
+ <o>via (1)</o>
+ <t>ulica, droga</t>
+ </e>
+ <e>
+ <o>video (2)</o>
+ <t>widzieć</t>
+ </e>
+ <e>
+ <o>villa (1)</o>
+ <t>dom, willa</t>
+ </e>
+ <e>
+ <o>vinco (3)</o>
+ <t>zdobywać</t>
+ </e>
+ <e>
+ <o>vinum (2)</o>
+ <t>wino</t>
+ </e>
+ <e>
+ <o>vir (2)</o>
+ <t>mąż</t>
+ </e>
+ <e>
+ <o>vita (1)</o>
+ <t>życie</t>
+ </e>
+ <e>
+ <o>vivo (3)</o>
+ <t>żyć</t>
+ </e>
+ <e>
+ <o>vivus</o>
+ <t>żywy</t>
+ </e>
+ <e>
+ <o>vix</o>
+ <t>trudno, prawie nie, z trudnością</t>
+ </e>
+ <e>
+ <o>voco (1)</o>
+ <t>wołać</t>
+ </e>
+ <e>
+ <o>volo (irreg)</o>
+ <t>chcieć</t>
+ </e>
+ <e>
+ <o>vos</o>
+ <t>wy</t>
+ </e>
+ <e>
+ <o>vox (3)</o>
+ <t>głos, krzyk</t>
+ </e>
+ <e>
+ <o>vulnero (1)</o>
+ <t>ranić, krzywdzić</t>
+ </e>
+ <e>
+ <o>vulnus (3)</o>
+ <t>rana</t>
+ </e>
+ <e>
+ <o>vultus (4)</o>
+ <t>mina, twarz</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/A.kvtml b/klatin/klatin/data/vocab/sk/A.kvtml
new file mode 100644
index 00000000..f8cbd879
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/A.kvtml
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>a, ab + abl</o>
+ <t>od</t>
+ </e>
+ <e>
+ <o>absum (irreg)</o>
+ <t>byť mimo, byť neprítomný, byť preč</t>
+ </e>
+ <e>
+ <o>ac, atque</o>
+ <t>a, i</t>
+ </e>
+ <e>
+ <o>accido (3)</o>
+ <t>diať sa, stávať sa, prihodiť sa</t>
+ </e>
+ <e>
+ <o>accipio (3)</o>
+ <t>prijímať, brať, dostávať</t>
+ </e>
+ <e>
+ <o>accuso (1)</o>
+ <t>obžalovať</t>
+ </e>
+ <e>
+ <o>ad + acc</o>
+ <t>k, u, do</t>
+ </e>
+ <e>
+ <o>adeo</o>
+ <t>do tej miery, tak ďaleko, tak veľa</t>
+ </e>
+ <e>
+ <o>adhuc</o>
+ <t>doposiaľ, ešte</t>
+ </e>
+ <e>
+ <o>adiuvo (1)</o>
+ <t>pomôcť</t>
+ </e>
+ <e>
+ <o>adsum (irreg)</o>
+ <t>byť tu, byť prítomný</t>
+ </e>
+ <e>
+ <o>advenio (4)</o>
+ <t>približovať sa, prichádzať</t>
+ </e>
+ <e>
+ <o>adversus</o>
+ <t>nepriateľský, nevýhodný, nepriaznivý</t>
+ </e>
+ <e>
+ <o>aedificium</o>
+ <t>budova, zakladanie</t>
+ </e>
+ <e>
+ <o>aedifico (1)</o>
+ <t>budovať, zakladať</t>
+ </e>
+ <e>
+ <o>ago (1)</o>
+ <t>robiť, činiť</t>
+ </e>
+ <e>
+ <o>gratias ago (1)</o>
+ <t>vďaka, ďakovať</t>
+ </e>
+ <e>
+ <o>agricola (1)</o>
+ <t>roľník, poľnohospodár</t>
+ </e>
+ <e>
+ <o>aliquis</o>
+ <t>niekto, niečo</t>
+ </e>
+ <e>
+ <o>alius</o>
+ <t>iný, iní, druhý, ostatný</t>
+ </e>
+ <e>
+ <o>alii...alii</o>
+ <t>niektorý...iný</t>
+ </e>
+ <e>
+ <o>alter</o>
+ <t>druhý, iný, jeden z dvoch, opačný</t>
+ </e>
+ <e>
+ <o>altus</o>
+ <t>hlboký, vysoký, hrdý</t>
+ </e>
+ <e>
+ <o>ambulo (1)</o>
+ <t>obchádzať, prechádzať</t>
+ </e>
+ <e>
+ <o>amitto (3)</o>
+ <t>stratiť</t>
+ </e>
+ <e>
+ <o>amo (1)</o>
+ <t>milovať, mať rád</t>
+ </e>
+ <e>
+ <o>amor (3)</o>
+ <t>láska</t>
+ </e>
+ <e>
+ <o>ancilla (1)</o>
+ <t>slúžka</t>
+ </e>
+ <e>
+ <o>animus (2)</o>
+ <t>duch, myseľ, odvaha</t>
+ </e>
+ <e>
+ <o>annus (2)</o>
+ <t>rok</t>
+ </e>
+ <e>
+ <o>ante + acc</o>
+ <t>pred, skôr</t>
+ </e>
+ <e>
+ <o>antea</o>
+ <t>pred tým, skôr</t>
+ </e>
+ <e>
+ <o>aperio (4)</o>
+ <t>otvorený</t>
+ </e>
+ <e>
+ <o>appareo (2)</o>
+ <t>objaviť sa</t>
+ </e>
+ <e>
+ <o>appropinquo (1)</o>
+ <t>blížiť sa, prichádzať bližšie</t>
+ </e>
+ <e>
+ <o>apud + acc</o>
+ <t>blízko, pri, u</t>
+ </e>
+ <e>
+ <o>aqua (1)</o>
+ <t>voda</t>
+ </e>
+ <e>
+ <o>ara (1)</o>
+ <t>oltár</t>
+ </e>
+ <e>
+ <o>arcesso (3)</o>
+ <t>povolávať, zvolávať</t>
+ </e>
+ <e>
+ <o>ars (3)</o>
+ <t>umenie</t>
+ </e>
+ <e>
+ <o>ascendo (3)</o>
+ <t>vystupovať, stúpať</t>
+ </e>
+ <e>
+ <o>audax</o>
+ <t>odvážny, statočný, drzý</t>
+ </e>
+ <e>
+ <o>audeo (2)</o>
+ <t>odvážiť sa</t>
+ </e>
+ <e>
+ <o>audio (4)</o>
+ <t>počuť, počúvať</t>
+ </e>
+ <e>
+ <o>aufero (3)</o>
+ <t>odniesť, odnášať, ukradnúť</t>
+ </e>
+ <e>
+ <o>autem</o>
+ <t>ale, avšak</t>
+ </e>
+ <e>
+ <o>auxilium (2)</o>
+ <t>podpora, pomoc</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/BC.kvtml b/klatin/klatin/data/vocab/sk/BC.kvtml
new file mode 100644
index 00000000..fc4da165
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/BC.kvtml
@@ -0,0 +1,224 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>bellum (2)</o>
+ <t>vojna, bitka; pekné, spanilé</t>
+ </e>
+ <e>
+ <o>bellum gerere</o>
+ <t>viesť vojnu, vojnové ťaženie</t>
+ </e>
+ <e>
+ <o>bene</o>
+ <t>dobre</t>
+ </e>
+ <e>
+ <o>bibo (3)</o>
+ <t>piť</t>
+ </e>
+ <e>
+ <o>bonus, a, um</o>
+ <t>dobrý, správny</t>
+ </e>
+ <e>
+ <o>brevis</o>
+ <t>krátky, stručný, malý</t>
+ </e>
+ <e>
+ <o>caelum (2)</o>
+ <t>nebo, oblaky</t>
+ </e>
+ <e>
+ <o>canis (3)</o>
+ <t>pes, psí</t>
+ </e>
+ <e>
+ <o>canto (1)</o>
+ <t>spievať, hrať (hud.)</t>
+ </e>
+ <e>
+ <o>capio (3)</o>
+ <t>brať, uchopiť, chápať, zmocniť sa</t>
+ </e>
+ <e>
+ <o>captivus (2)</o>
+ <t>chytený, zajatec</t>
+ </e>
+ <e>
+ <o>caput (3)</o>
+ <t>hlava, hlavné mesto</t>
+ </e>
+ <e>
+ <o>carmen (3)</o>
+ <t>pieseň, báseň</t>
+ </e>
+ <e>
+ <o>carus</o>
+ <t>drahý, milý</t>
+ </e>
+ <e>
+ <o>castra (2)</o>
+ <t>kasáreň</t>
+ </e>
+ <e>
+ <o>celer</o>
+ <t>rýchly, mrštný</t>
+ </e>
+ <e>
+ <o>celo (1)</o>
+ <t>ukrývať, utajiť</t>
+ </e>
+ <e>
+ <o>cena (1)</o>
+ <t>obed, hlavné jedlo</t>
+ </e>
+ <e>
+ <o>centum</o>
+ <t>sto</t>
+ </e>
+ <e>
+ <o>ceteri</o>
+ <t>ostatné, zvyšok</t>
+ </e>
+ <e>
+ <o>cibus (2)</o>
+ <t>jedlo, pokrm</t>
+ </e>
+ <e>
+ <o>circum</o>
+ <t>okolo, vôkol</t>
+ </e>
+ <e>
+ <o>civis (3)</o>
+ <t>občan</t>
+ </e>
+ <e>
+ <o>clamo (1)</o>
+ <t>kričať, volať</t>
+ </e>
+ <e>
+ <o>clamor (3)</o>
+ <t>krik, pokrik, hluk</t>
+ </e>
+ <e>
+ <o>coepi (past tenses only)</o>
+ <t>začal som</t>
+ </e>
+ <e>
+ <o>cogito (1)</o>
+ <t>myslieť, uvažovať</t>
+ </e>
+ <e>
+ <o>cognosco (3)</o>
+ <t>poznávať, skúmať, skúšať</t>
+ </e>
+ <e>
+ <o>cogo (3)</o>
+ <t>nútiť, donucovať</t>
+ </e>
+ <e>
+ <o>comes (3)</o>
+ <t>sprievodca, spoločník</t>
+ </e>
+ <e>
+ <o>conficio (3)</o>
+ <t>urobiť, dokončiť; vyčerpať, unaviť</t>
+ </e>
+ <e>
+ <o>conor (1)</o>
+ <t>pokúšať sa</t>
+ </e>
+ <e>
+ <o>consentio (4)</o>
+ <t>súhlasiť</t>
+ </e>
+ <e>
+ <o>consilium (2)</o>
+ <t>úmysel, zámer, rada</t>
+ </e>
+ <e>
+ <o>conspicio (3)</o>
+ <t>postrehnúť, uvidieť, všimnúť si</t>
+ </e>
+ <e>
+ <o>consisto (3)</o>
+ <t>zastaviť, ostať nehybný</t>
+ </e>
+ <e>
+ <o>constituo (3)</o>
+ <t>ustanoviť, zakladať, tvoriť</t>
+ </e>
+ <e>
+ <o>consumo (3)</o>
+ <t>spotrebovať, vynakladať</t>
+ </e>
+ <e>
+ <o>contendo (3)</o>
+ <t>napínať, bojovať, porovnávať</t>
+ </e>
+ <e>
+ <o>contra</o>
+ <t>naopak, proti</t>
+ </e>
+ <e>
+ <o>convenio (4)</o>
+ <t>schádzať sa, prichádzať, priliehať</t>
+ </e>
+ <e>
+ <o>corpus (3)</o>
+ <t>telo, ložisko</t>
+ </e>
+ <e>
+ <o>cotidie</o>
+ <t>každodenne</t>
+ </e>
+ <e>
+ <o>cras</o>
+ <t>zajtra</t>
+ </e>
+ <e>
+ <o>crudelis</o>
+ <t>surový, krutý, nemilosrdný</t>
+ </e>
+ <e>
+ <o>cum</o>
+ <t>keď</t>
+ </e>
+ <e>
+ <o>credo (3)</o>
+ <t>veriť, zdôverovať sa, byť dôverčivý</t>
+ </e>
+ <e>
+ <o>cum + abl</o>
+ <t>s</t>
+ </e>
+ <e>
+ <o>cupio (3)</o>
+ <t>chcenie, žiadosť, túžba</t>
+ </e>
+ <e>
+ <o>cur?</o>
+ <t>prečo?</t>
+ </e>
+ <e>
+ <o>cura (1)</o>
+ <t>starostlivosť, liečenie</t>
+ </e>
+ <e>
+ <o>curo (1)</o>
+ <t>starať sa, kontrolovať, dbať</t>
+ </e>
+ <e>
+ <o>curro (3)</o>
+ <t>bežať, hnať sa, behať</t>
+ </e>
+ <e>
+ <o>custodio (4)</o>
+ <t>strážiť, chrániť</t>
+ </e>
+ <e>
+ <o>custos (3)</o>
+ <t>strážca, dozorca</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/D.kvtml b/klatin/klatin/data/vocab/sk/D.kvtml
new file mode 100644
index 00000000..43cc45f1
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/D.kvtml
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>de + abl</o>
+ <t>od, z; o</t>
+ </e>
+ <e>
+ <o>dea (1)</o>
+ <t>bohyňa</t>
+ </e>
+ <e>
+ <o>debeo (2)</o>
+ <t>dlžiť, mať niečo ako povinnosť, musieť</t>
+ </e>
+ <e>
+ <o>decem</o>
+ <t>desať</t>
+ </e>
+ <e>
+ <o>decido (3)</o>
+ <t>spadnúť, klesnúť</t>
+ </e>
+ <e>
+ <o>defendo (3)</o>
+ <t>odháňať, odpudzovať, brániť</t>
+ </e>
+ <e>
+ <o>deinde</o>
+ <t>od tej doby, potom, odtiaľ ďalej</t>
+ </e>
+ <e>
+ <o>deleo (2)</o>
+ <t>ničiť, hubiť, vyhladiť</t>
+ </e>
+ <e>
+ <o>descendo (3)</o>
+ <t>zostupovať, zísť, zostúpiť</t>
+ </e>
+ <e>
+ <o>despero (1)</o>
+ <t>nemať nádej, strácať nádej</t>
+ </e>
+ <e>
+ <o>deus (2)</o>
+ <t>boh</t>
+ </e>
+ <e>
+ <o>dico (3)</o>
+ <t>hovoriť, vravieť</t>
+ </e>
+ <e>
+ <o>dies (5)</o>
+ <t>deň, doba, čas</t>
+ </e>
+ <e>
+ <o>difficilis</o>
+ <t>ťažký, neľahký, obtiažny</t>
+ </e>
+ <e>
+ <o>dirus</o>
+ <t>krutý, strašný, príšerný</t>
+ </e>
+ <e>
+ <o>diligenter</o>
+ <t>svedomito, poriadne</t>
+ </e>
+ <e>
+ <o>discedo (3)</o>
+ <t>rozchádzať sa, odchádzať, ustúpiť</t>
+ </e>
+ <e>
+ <o>diu</o>
+ <t>dlho, cez deň</t>
+ </e>
+ <e>
+ <o>dives</o>
+ <t>bohatý, úrodný, výnosný</t>
+ </e>
+ <e>
+ <o>do (1)</o>
+ <t>dať, dávať</t>
+ </e>
+ <e>
+ <o>doceo (2)</o>
+ <t>učiť, vyučovať, vysvetlovať</t>
+ </e>
+ <e>
+ <o>doctus</o>
+ <t>učený, vzdelaný, schopný, šikovný</t>
+ </e>
+ <e>
+ <o>domina (1)</o>
+ <t>pani, majiteľka, gazdiná</t>
+ </e>
+ <e>
+ <o>dominus (2)</o>
+ <t>majiteľ, gazda, vládca</t>
+ </e>
+ <e>
+ <o>domus (4)</o>
+ <t>dom, byt, rod</t>
+ </e>
+ <e>
+ <o>donum (2)</o>
+ <t>dar, obeť</t>
+ </e>
+ <e>
+ <o>dormio (4)</o>
+ <t>spať</t>
+ </e>
+ <e>
+ <o>duco (3)</o>
+ <t>viesť, ťahať, odvádzať</t>
+ </e>
+ <e>
+ <o>dum</o>
+ <t>kým, pokiaľ, tu</t>
+ </e>
+ <e>
+ <o>duo</o>
+ <t>dva, dve</t>
+ </e>
+ <e>
+ <o>dux (3)</o>
+ <t>knieža, vojvodca</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/EF.kvtml b/klatin/klatin/data/vocab/sk/EF.kvtml
new file mode 100644
index 00000000..3fd250b7
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/EF.kvtml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>e, ex + abl</o>
+ <t>z, z vnútra</t>
+ </e>
+ <e>
+ <o>ecce!</o>
+ <t>hľa! aha!</t>
+ </e>
+ <e>
+ <o>efficio (3)</o>
+ <t>urobiť, zvládnuť, splniť, vykonať</t>
+ </e>
+ <e>
+ <o>effugio (3)</o>
+ <t>utiecť, uniknúť</t>
+ </e>
+ <e>
+ <o>ego</o>
+ <t>ja</t>
+ </e>
+ <e>
+ <o>egredior (3)</o>
+ <t>vyjsť, vykročiť</t>
+ </e>
+ <e>
+ <o>emo (3)</o>
+ <t>brať, kupovať, vykúpiť</t>
+ </e>
+ <e>
+ <o>enim</o>
+ <t>totiž, lebo, určite</t>
+ </e>
+ <e>
+ <o>eo (irreg)</o>
+ <t>ísť, bežať</t>
+ </e>
+ <e>
+ <o>epistula (1)</o>
+ <t>list</t>
+ </e>
+ <e>
+ <o>eques (2)</o>
+ <t>jazdec</t>
+ </e>
+ <e>
+ <o>equus (2)</o>
+ <t>kôň, osol</t>
+ </e>
+ <e>
+ <o>et</o>
+ <t>a</t>
+ </e>
+ <e>
+ <o>et... et</o>
+ <t>aj... aj</t>
+ </e>
+ <e>
+ <o>etiam</o>
+ <t>tiež, dokonca aj</t>
+ </e>
+ <e>
+ <o>expecto (1)</o>
+ <t>čakať na</t>
+ </e>
+ <e>
+ <o>fabula (1)</o>
+ <t>príbeh, bájka, rozprávka</t>
+ </e>
+ <e>
+ <o>facilis</o>
+ <t>ľahký, jednoduchý</t>
+ </e>
+ <e>
+ <o>facio (3)</o>
+ <t>vyrobiť, urobiť</t>
+ </e>
+ <e>
+ <o>faveo (2)</o>
+ <t>vyhovieť, vyhovovať</t>
+ </e>
+ <e>
+ <o>femina (1)</o>
+ <t>žena, samica</t>
+ </e>
+ <e>
+ <o>fero (irreg)</o>
+ <t>niesť, držať, znášať</t>
+ </e>
+ <e>
+ <o>ferox</o>
+ <t>bujný, prudký, divoký</t>
+ </e>
+ <e>
+ <o>ferrum (2)</o>
+ <t>železo, meč</t>
+ </e>
+ <e>
+ <o>fessus</o>
+ <t>unavený, slabý, vysilený</t>
+ </e>
+ <e>
+ <o>festino (1)</o>
+ <t>náhliť sa, ponáhľať sa</t>
+ </e>
+ <e>
+ <o>fidelis</o>
+ <t>verný, lojálny, spoľahlivý</t>
+ </e>
+ <e>
+ <o>fides (5)</o>
+ <t>dôvera, vernosť, lojalita</t>
+ </e>
+ <e>
+ <o>filia (1)</o>
+ <t>priateľstvo, priazeň, dcéra</t>
+ </e>
+ <e>
+ <o>filius (2)</o>
+ <t>syn</t>
+ </e>
+ <e>
+ <o>flos (3)</o>
+ <t>kvet, kvetina</t>
+ </e>
+ <e>
+ <o>flumen (3)</o>
+ <t>tok, rieka, prúd</t>
+ </e>
+ <e>
+ <o>forte</o>
+ <t>náhodou, zrovna</t>
+ </e>
+ <e>
+ <o>fortis</o>
+ <t>silný, pevný, udatný</t>
+ </e>
+ <e>
+ <o>forum (2)</o>
+ <t>námestie, nádvorie</t>
+ </e>
+ <e>
+ <o>frango (3)</o>
+ <t>lámať, zlomiť, polámať</t>
+ </e>
+ <e>
+ <o>frater (3)</o>
+ <t>brat</t>
+ </e>
+ <e>
+ <o>frumentum (2)</o>
+ <t>obilie, obilný</t>
+ </e>
+ <e>
+ <o>frustra</o>
+ <t>sklamane, bezvýsledne, márne</t>
+ </e>
+ <e>
+ <o>fugio (3)</o>
+ <t>utekať, ubiehať</t>
+ </e>
+ <e>
+ <o>fundo (3)</o>
+ <t>liať, vylievať</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/GHI1.kvtml b/klatin/klatin/data/vocab/sk/GHI1.kvtml
new file mode 100644
index 00000000..3a37603c
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/GHI1.kvtml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>gaudeo (2)</o>
+ <t>byť rád, tešiť sa, radovať sa</t>
+ </e>
+ <e>
+ <o>gaudium (2)</o>
+ <t>radosť, potešenie</t>
+ </e>
+ <e>
+ <o>gero (3)</o>
+ <t>nosiť (šaty), viesť (vojnu)</t>
+ </e>
+ <e>
+ <o>gladius (2)</o>
+ <t>meč</t>
+ </e>
+ <e>
+ <o>gratias ago</o>
+ <t>ďakovať, prejavovať vďaku</t>
+ </e>
+ <e>
+ <o>gravis</o>
+ <t>ťažký, vážny</t>
+ </e>
+ <e>
+ <o>habeo (2)</o>
+ <t>držať, udržovať, chovať</t>
+ </e>
+ <e>
+ <o>habito (1)</o>
+ <t>bývať, byť</t>
+ </e>
+ <e>
+ <o>heri</o>
+ <t>včera</t>
+ </e>
+ <e>
+ <o>hic</o>
+ <t>tu, sem</t>
+ </e>
+ <e>
+ <o>hic, haec, hoc</o>
+ <t>túto, tieto, toto, tento</t>
+ </e>
+ <e>
+ <o>hodie</o>
+ <t>dnes, v dnešnej dobe</t>
+ </e>
+ <e>
+ <o>homo (3)</o>
+ <t>človek, ľudská bytosť</t>
+ </e>
+ <e>
+ <o>honor (3)</o>
+ <t>úcta, česť, poklona</t>
+ </e>
+ <e>
+ <o>hora (1)</o>
+ <t>hodina, doba</t>
+ </e>
+ <e>
+ <o>hortor (1)</o>
+ <t>povzbudzovať, súriť</t>
+ </e>
+ <e>
+ <o>hortus (2)</o>
+ <t>záhrada</t>
+ </e>
+ <e>
+ <o>hospes (3)</o>
+ <t>hosť, hostiteľ</t>
+ </e>
+ <e>
+ <o>hostis (3)</o>
+ <t>cudzinec, nepriateľ v boji</t>
+ </e>
+ <e>
+ <o>humus (2)</o>
+ <t>zem, hlina</t>
+ </e>
+ <e>
+ <o>iaceo (2)</o>
+ <t>ležať</t>
+ </e>
+ <e>
+ <o>iacio (3)</o>
+ <t>hádzať, vrhať</t>
+ </e>
+ <e>
+ <o>de-/e-/in-icio</o>
+ <t>hádzať dole/z/do</t>
+ </e>
+ <e>
+ <o>iam</o>
+ <t>už, teraz</t>
+ </e>
+ <e>
+ <o>ianua (1)</o>
+ <t>dvere, vchod</t>
+ </e>
+ <e>
+ <o>ibi</o>
+ <t>tam, na tom mieste</t>
+ </e>
+ <e>
+ <o>idem</o>
+ <t>ten istý</t>
+ </e>
+ <e>
+ <o>igitur</o>
+ <t>teda, a preto</t>
+ </e>
+ <e>
+ <o>ignarus</o>
+ <t>neznalý</t>
+ </e>
+ <e>
+ <o>ille</o>
+ <t>onen, ona</t>
+ </e>
+ <e>
+ <o>imperator (3)</o>
+ <t>vládca, cisár</t>
+ </e>
+ <e>
+ <o>imperium (2)</o>
+ <t>vláda, zvrchovaná moc, rozkaz</t>
+ </e>
+ <e>
+ <o>impero (1)</o>
+ <t>panovať, ovládať, rozkazovať</t>
+ </e>
+ <e>
+ <o>impetus (4)</o>
+ <t>útok, nával, nápor</t>
+ </e>
+ <e>
+ <o>in + abl</o>
+ <t>na, v</t>
+ </e>
+ <e>
+ <o>in + acc</o>
+ <t>do, dovnútra</t>
+ </e>
+ <e>
+ <o>incendo (3)</o>
+ <t>páliť, zapáliť</t>
+ </e>
+ <e>
+ <o>infelix</o>
+ <t>nešťastný, neplodný</t>
+ </e>
+ <e>
+ <o>ingenium (2)</o>
+ <t>prirodzenosť, duševná povaha</t>
+ </e>
+ <e>
+ <o>ingens</o>
+ <t>nesmierny, obrovský</t>
+ </e>
+ <e>
+ <o>ingredior (3)</o>
+ <t>vkročiť, vstúpiť</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/I2L.kvtml b/klatin/klatin/data/vocab/sk/I2L.kvtml
new file mode 100644
index 00000000..12ed2a61
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/I2L.kvtml
@@ -0,0 +1,184 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>inquit (irreg)</o>
+ <t>povedal</t>
+ </e>
+ <e>
+ <o>inspicio (3)</o>
+ <t>hľadieť dovnútra, skúmať, nazerať</t>
+ </e>
+ <e>
+ <o>insula (1)</o>
+ <t>ostrov, ostrovček</t>
+ </e>
+ <e>
+ <o>intellego (3)</o>
+ <t>rozumieť</t>
+ </e>
+ <e>
+ <o>inter + acc</o>
+ <t>medzi</t>
+ </e>
+ <e>
+ <o>interea</o>
+ <t>zatiaľ čo</t>
+ </e>
+ <e>
+ <o>interficio (3)</o>
+ <t>zabiť</t>
+ </e>
+ <e>
+ <o>intro (1)</o>
+ <t>vstúpiť, vojsť</t>
+ </e>
+ <e>
+ <o>invenio (3)</o>
+ <t>nachádzať, objaviť</t>
+ </e>
+ <e>
+ <o>invito (1)</o>
+ <t>pozývať, zvať</t>
+ </e>
+ <e>
+ <o>invitus</o>
+ <t>nerád</t>
+ </e>
+ <e>
+ <o>ipse</o>
+ <t>sám</t>
+ </e>
+ <e>
+ <o>ira (1)</o>
+ <t>hnev, zlosť</t>
+ </e>
+ <e>
+ <o>iratus</o>
+ <t>nahnevaný, zlostný</t>
+ </e>
+ <e>
+ <o>is, ea, id</o>
+ <t>ten, tá, to, on, ona, ono</t>
+ </e>
+ <e>
+ <o>ita</o>
+ <t>tak, takým spôsobom</t>
+ </e>
+ <e>
+ <o>ita vero</o>
+ <t>áno</t>
+ </e>
+ <e>
+ <o>itaque</o>
+ <t>a tak, teda, preto</t>
+ </e>
+ <e>
+ <o>iter (3)</o>
+ <t>cesta, pochod</t>
+ </e>
+ <e>
+ <o>iterum</o>
+ <t>ešte raz</t>
+ </e>
+ <e>
+ <o>iubeo (2)</o>
+ <t>prikazovať, kázať</t>
+ </e>
+ <e>
+ <o>iudex (3)</o>
+ <t>sudca</t>
+ </e>
+ <e>
+ <o>iuvenis (3)</o>
+ <t>mladík, mladý muž</t>
+ </e>
+ <e>
+ <o>labor (3)</o>
+ <t>práca, námaha, úsilie</t>
+ </e>
+ <e>
+ <o>laboro (1)</o>
+ <t>pracovať, namáhať sa</t>
+ </e>
+ <e>
+ <o>lacrima (1)</o>
+ <t>slza, plač</t>
+ </e>
+ <e>
+ <o>lacrimo (1)</o>
+ <t>roniť slzy, plakať</t>
+ </e>
+ <e>
+ <o>laetus</o>
+ <t>veselý, šťastný</t>
+ </e>
+ <e>
+ <o>latus</o>
+ <t>rozsiahly, priestorný, ďaleký</t>
+ </e>
+ <e>
+ <o>laudo (1)</o>
+ <t>chváliť, schvalovať, vychvaľovať</t>
+ </e>
+ <e>
+ <o>legatus (2)</o>
+ <t>vyslanec, pobočník</t>
+ </e>
+ <e>
+ <o>legio (3)</o>
+ <t>légia, výber</t>
+ </e>
+ <e>
+ <o>lego (3)</o>
+ <t>voliť, zbierať</t>
+ </e>
+ <e>
+ <o>lente</o>
+ <t>pomaly, váhavo</t>
+ </e>
+ <e>
+ <o>leo (3)</o>
+ <t>lev</t>
+ </e>
+ <e>
+ <o>libenter</o>
+ <t>voľne, ochotne, nenásilne</t>
+ </e>
+ <e>
+ <o>liber</o>
+ <t>kniha, závitok</t>
+ </e>
+ <e>
+ <o>liberi (2)</o>
+ <t>deti</t>
+ </e>
+ <e>
+ <o>libero (1)</o>
+ <t>oslobodzovať, uvoľňovať</t>
+ </e>
+ <e>
+ <o>libertus (2)</o>
+ <t>prepustený z otroctva</t>
+ </e>
+ <e>
+ <o>locus (2)</o>
+ <t>miesto, nálezisko, kraj</t>
+ </e>
+ <e>
+ <o>longus</o>
+ <t>dlhý</t>
+ </e>
+ <e>
+ <o>loquor (3)</o>
+ <t>hovoriť, vravieť, povedať</t>
+ </e>
+ <e>
+ <o>luna (1)</o>
+ <t>mesiac, luna</t>
+ </e>
+ <e>
+ <o>lux (3)</o>
+ <t>svetlo, denné svetlo</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/M.kvtml b/klatin/klatin/data/vocab/sk/M.kvtml
new file mode 100644
index 00000000..ea61fd1d
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/M.kvtml
@@ -0,0 +1,124 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>magnopere</o>
+ <t>veľmi, moc</t>
+ </e>
+ <e>
+ <o>magnus</o>
+ <t>veľký, silný, dôležitý, vážny</t>
+ </e>
+ <e>
+ <o>malo (irreg)</o>
+ <t>uprednostňovať</t>
+ </e>
+ <e>
+ <o>malus</o>
+ <t>zlý, škodlivý, biedny</t>
+ </e>
+ <e>
+ <o>maneo (2)</o>
+ <t>zostávať, trvať</t>
+ </e>
+ <e>
+ <o>manus (4)</o>
+ <t>ruka, hŕstka</t>
+ </e>
+ <e>
+ <o>mare (3)</o>
+ <t>more</t>
+ </e>
+ <e>
+ <o>maritus (2)</o>
+ <t>manžel, ženích</t>
+ </e>
+ <e>
+ <o>mater (3)</o>
+ <t>matka, žena</t>
+ </e>
+ <e>
+ <o>maximus</o>
+ <t>veľmi veľký, najväčší, obrovský</t>
+ </e>
+ <e>
+ <o>medius</o>
+ <t>stredný, priemerný, prostredný</t>
+ </e>
+ <e>
+ <o>mercator (3)</o>
+ <t>kupec, obchodník</t>
+ </e>
+ <e>
+ <o>meus</o>
+ <t>môj</t>
+ </e>
+ <e>
+ <o>miles (3)</o>
+ <t>vojak, rytier</t>
+ </e>
+ <e>
+ <o>mille (irreg)</o>
+ <t>tisíc</t>
+ </e>
+ <e>
+ <o>minimus</o>
+ <t>najmenší, veľmi malý</t>
+ </e>
+ <e>
+ <o>minime</o>
+ <t>najmenej, veľmi málo</t>
+ </e>
+ <e>
+ <o>mirabilis</o>
+ <t>zvláštny, podivuhodný, pozoruhodný</t>
+ </e>
+ <e>
+ <o>miser</o>
+ <t>biedny, úbohý, smutný</t>
+ </e>
+ <e>
+ <o>mitto (3)</o>
+ <t>posielať, poslať, venovať</t>
+ </e>
+ <e>
+ <o>modus (2)</o>
+ <t>spôsob, pravidlo, druh</t>
+ </e>
+ <e>
+ <o>moneo (2)</o>
+ <t>upozorňovať, kárať, upomínať</t>
+ </e>
+ <e>
+ <o>mons (3)</o>
+ <t>hora, vrch</t>
+ </e>
+ <e>
+ <o>morior (3)</o>
+ <t>umierať, zomrieť</t>
+ </e>
+ <e>
+ <o>mors (3)</o>
+ <t>smrť</t>
+ </e>
+ <e>
+ <o>moveo (2)</o>
+ <t>hýbať, hnúť, pohybovať sa</t>
+ </e>
+ <e>
+ <o>mox</o>
+ <t>skoro</t>
+ </e>
+ <e>
+ <o>multo</o>
+ <t>veľa, mnoho</t>
+ </e>
+ <e>
+ <o>multus</o>
+ <t>mnohý, početný</t>
+ </e>
+ <e>
+ <o>murus (2)</o>
+ <t>stena, hradba</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/N.kvtml b/klatin/klatin/data/vocab/sk/N.kvtml
new file mode 100644
index 00000000..d13c83fd
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/N.kvtml
@@ -0,0 +1,152 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>nuntio (1)</o>
+ <t>oznámiť, ohlásiť, zvestovať</t>
+ </e>
+ <e>
+ <o>nascor (3)</o>
+ <t>narodiť sa</t>
+ </e>
+ <e>
+ <o>numero (1)</o>
+ <t>počítať, vypočítať</t>
+ </e>
+ <e>
+ <o>nam</o>
+ <t>pretože, totiž</t>
+ </e>
+ <e>
+ <o>-ne</o>
+ <t>uvádza otázku</t>
+ </e>
+ <e>
+ <o>neco (1)</o>
+ <t>usmrtiť, zabiť, zničiť</t>
+ </e>
+ <e>
+ <o>notus</o>
+ <t>známy, preslávený</t>
+ </e>
+ <e>
+ <o>nuntius (2)</o>
+ <t>posol, správa, novinka</t>
+ </e>
+ <e>
+ <o>nomen (3)</o>
+ <t>meno, rod</t>
+ </e>
+ <e>
+ <o>nec... nec</o>
+ <t>ani... ani</t>
+ </e>
+ <e>
+ <o>numquam</o>
+ <t>nikdy</t>
+ </e>
+ <e>
+ <o>novus</o>
+ <t>nový, neslýchaný, iný</t>
+ </e>
+ <e>
+ <o>nox (3)</o>
+ <t>noc, spánok</t>
+ </e>
+ <e>
+ <o>novem</o>
+ <t>deväť</t>
+ </e>
+ <e>
+ <o>nemo (irreg)</o>
+ <t>nikto, žiadny</t>
+ </e>
+ <e>
+ <o>nobilis</o>
+ <t>urodzený, sľachetný, sľachtic</t>
+ </e>
+ <e>
+ <o>non </o>
+ <t>nie</t>
+ </e>
+ <e>
+ <o>nullus</o>
+ <t>žiadny, bezvýznamný, nikto</t>
+ </e>
+ <e>
+ <o>ne quidem</o>
+ <t>vôbec nie</t>
+ </e>
+ <e>
+ <o>nescio (4)</o>
+ <t>neviem</t>
+ </e>
+ <e>
+ <o>nolo (irreg)</o>
+ <t>nechcieť</t>
+ </e>
+ <e>
+ <o>nihil (irreg)</o>
+ <t>nič</t>
+ </e>
+ <e>
+ <o>nunc</o>
+ <t>teraz</t>
+ </e>
+ <e>
+ <o>nusquam</o>
+ <t>nikde, nikam</t>
+ </e>
+ <e>
+ <o>numerus (2)</o>
+ <t>časť, množstvo, počet</t>
+ </e>
+ <e>
+ <o>noster</o>
+ <t>náš</t>
+ </e>
+ <e>
+ <o>navigo (1)</o>
+ <t>plaviť sa</t>
+ </e>
+ <e>
+ <o>nauta (1)</o>
+ <t>námorník, obchodník, kupec</t>
+ </e>
+ <e>
+ <o>navis (3)</o>
+ <t>loď, plavidlo</t>
+ </e>
+ <e>
+ <o>nonnulli</o>
+ <t>niektorí</t>
+ </e>
+ <e>
+ <o>num...?</o>
+ <t>určite nie?</t>
+ </e>
+ <e>
+ <o>nonne?</o>
+ <t>bezpečne? určite?</t>
+ </e>
+ <e>
+ <o>narro (1)</o>
+ <t>hovoriť, podávať správu</t>
+ </e>
+ <e>
+ <o>ne</o>
+ <t>že... nie, takže... nie</t>
+ </e>
+ <e>
+ <o>nisi</o>
+ <t>ak nie, ibaže</t>
+ </e>
+ <e>
+ <o>nos</o>
+ <t>my, nás</t>
+ </e>
+ <e>
+ <o>num</o>
+ <t>či</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/OP1.kvtml b/klatin/klatin/data/vocab/sk/OP1.kvtml
new file mode 100644
index 00000000..a9b37353
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/OP1.kvtml
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>occido (3)</o>
+ <t>zabiť, usmrtiť</t>
+ </e>
+ <e>
+ <o>octo</o>
+ <t>osem</t>
+ </e>
+ <e>
+ <o>oculus (2)</o>
+ <t>oko</t>
+ </e>
+ <e>
+ <o>odi (defect)</o>
+ <t>nenávidím, mám odpor</t>
+ </e>
+ <e>
+ <o>offero (irref)</o>
+ <t>ponúkať, núkať</t>
+ </e>
+ <e>
+ <o>olim</o>
+ <t>kedysi, raz, skôr</t>
+ </e>
+ <e>
+ <o>omnis</o>
+ <t>všetko, každý</t>
+ </e>
+ <e>
+ <o>opprimo (3)</o>
+ <t>pritláčať, prepadnúť, napadnúť</t>
+ </e>
+ <e>
+ <o>oppugno (1)</o>
+ <t>napadnúť</t>
+ </e>
+ <e>
+ <o>optimus</o>
+ <t>najlepší, excelentný</t>
+ </e>
+ <e>
+ <o>opus (3)</o>
+ <t>dielo, práca, výtvor</t>
+ </e>
+ <e>
+ <o>oro (1)</o>
+ <t>prosiť, prosebne žiadať</t>
+ </e>
+ <e>
+ <o>ostendo (3)</o>
+ <t>ukázať</t>
+ </e>
+ <e>
+ <o>paene</o>
+ <t>skoro, takmer, temer</t>
+ </e>
+ <e>
+ <o>pareo (2)</o>
+ <t>poslúchať</t>
+ </e>
+ <e>
+ <o>paro (1)</o>
+ <t>pripravovať, strojiť, chystať sa</t>
+ </e>
+ <e>
+ <o>pars (3)</o>
+ <t>diel, časť</t>
+ </e>
+ <e>
+ <o>parvus</o>
+ <t>malý, nepatrný</t>
+ </e>
+ <e>
+ <o>pater (3)</o>
+ <t>otec, hlava rodiny, pán</t>
+ </e>
+ <e>
+ <o>patior (3)</o>
+ <t>snášať, trpieť, zakúšať</t>
+ </e>
+ <e>
+ <o>pauci</o>
+ <t>máloktorí, len niekoľkí</t>
+ </e>
+ <e>
+ <o>pauper</o>
+ <t>chudák, nemajetný</t>
+ </e>
+ <e>
+ <o>pax (3)</o>
+ <t>pokoj, mier, kľud</t>
+ </e>
+ <e>
+ <o>pecunia (1)</o>
+ <t>peniaze, majetok</t>
+ </e>
+ <e>
+ <o>per + acc</o>
+ <t>skrz, cez, popri</t>
+ </e>
+ <e>
+ <o>periculum (2)</o>
+ <t>nebezpečie, pokus, skúška</t>
+ </e>
+ <e>
+ <o>periculosus </o>
+ <t>nebezpečný</t>
+ </e>
+ <e>
+ <o>persuadeo (2)</o>
+ <t>naviesť, presvedčiť</t>
+ </e>
+ <e>
+ <o>perterritus</o>
+ <t>zhrozený</t>
+ </e>
+ <e>
+ <o>pervenio (4)</o>
+ <t>dostať sa, dôjsť niekam</t>
+ </e>
+ <e>
+ <o>pes (3)</o>
+ <t>úpätie, noha, kopyto</t>
+ </e>
+ <e>
+ <o>pessimus</o>
+ <t>najhorší, veľmi zlý</t>
+ </e>
+ <e>
+ <o>peto (3)</o>
+ <t>siahať, hľadať, žiadať o, prosiť, útočiť</t>
+ </e>
+ <e>
+ <o>placet (2, impersonal)</o>
+ <t>teší, sadne, vyhovuje</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/P2.kvtml b/klatin/klatin/data/vocab/sk/P2.kvtml
new file mode 100644
index 00000000..9b2cf3aa
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/P2.kvtml
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>plenus</o>
+ <t>plný, dostatočný, tehotná</t>
+ </e>
+ <e>
+ <o>plurimus</o>
+ <t>najpočetnejší</t>
+ </e>
+ <e>
+ <o>plus</o>
+ <t>viac, ešte viacej, najviac, veľmi veľa</t>
+ </e>
+ <e>
+ <o>poena (1)</o>
+ <t>trest</t>
+ </e>
+ <e>
+ <o>poenas do</o>
+ <t>byť trestaným</t>
+ </e>
+ <e>
+ <o>pono (3)</o>
+ <t>ukladať, vzdávať sa</t>
+ </e>
+ <e>
+ <o>pons (3)</o>
+ <t>most, lávka</t>
+ </e>
+ <e>
+ <o>populus (2) </o>
+ <t>ľudia, národ, obecenstvo</t>
+ </e>
+ <e>
+ <o>porta (1)</o>
+ <t>brána, dvere, vchod</t>
+ </e>
+ <e>
+ <o>porto (1)</o>
+ <t>niesť, voziť, dopravovať</t>
+ </e>
+ <e>
+ <o>portus (4)</o>
+ <t>prístav, útočisko</t>
+ </e>
+ <e>
+ <o>possum (irreg)</o>
+ <t>môcť, byť schopný, mať moc, dokázať</t>
+ </e>
+ <e>
+ <o>post + acc</o>
+ <t>po, vzadu, za</t>
+ </e>
+ <e>
+ <o>postea</o>
+ <t>potom, neskôr</t>
+ </e>
+ <e>
+ <o>postquam</o>
+ <t>keď, akonáhle</t>
+ </e>
+ <e>
+ <o>postridie</o>
+ <t>druhý deň, druhého dňa</t>
+ </e>
+ <e>
+ <o>postulo (1)</o>
+ <t>žiadať, požadovať, navrhovať, vymáhať</t>
+ </e>
+ <e>
+ <o>praebeo (2)</o>
+ <t>dávať, poskytovať, pôsobiť</t>
+ </e>
+ <e>
+ <o>praemium (2)</o>
+ <t>výhoda, výsada, korisť</t>
+ </e>
+ <e>
+ <o>pretium (2)</o>
+ <t>cena, výkupné, odmena, zisk</t>
+ </e>
+ <e>
+ <o>primus</o>
+ <t>prvý, predný</t>
+ </e>
+ <e>
+ <o>princeps (3)</o>
+ <t>vodca, veliteľ, knieža</t>
+ </e>
+ <e>
+ <o>priusquam</o>
+ <t>pred, až do</t>
+ </e>
+ <e>
+ <o>pro + abl</o>
+ <t>pred, za, neďaleko</t>
+ </e>
+ <e>
+ <o>procedo (3)</o>
+ <t>predstupujem, postupujem</t>
+ </e>
+ <e>
+ <o>procul</o>
+ <t>ďaleko, v diali</t>
+ </e>
+ <e>
+ <o>proficiscor (3)</o>
+ <t>vydať sa na cestu, vyjsť, vytiahnuť</t>
+ </e>
+ <e>
+ <o>progredior (3)</o>
+ <t>kráčať vpred, postupovať, vyťahovať</t>
+ </e>
+ <e>
+ <o>promitto (3)</o>
+ <t>sľubujem</t>
+ </e>
+ <e>
+ <o>prope + acc</o>
+ <t>blízko</t>
+ </e>
+ <e> <o>proximus</o>
+ <t>najbližší</t>
+ </e>
+ <e>
+ <o>puella (1)</o>
+ <t>dievča, pani</t>
+ </e>
+ <e>
+ <o>puer (2)</o>
+ <t>dieťa, chlapec</t>
+ </e>
+ <e>
+ <o>pugno (1)</o>
+ <t>bojovať, zápasiť</t>
+ </e>
+ <e>
+ <o>pulcher</o>
+ <t>krásny, pekný</t>
+ </e>
+ <e>
+ <o>punio (4)</o>
+ <t>trestať, mstiť</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/QR.kvtml b/klatin/klatin/data/vocab/sk/QR.kvtml
new file mode 100644
index 00000000..7db08854
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/QR.kvtml
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>quaero (3)</o>
+ <t>hľadať, vyhľadávať, chcieť, želať si</t>
+ </e>
+ <e>
+ <o>qualis</o>
+ <t>aký</t>
+ </e>
+ <e>
+ <o>quam</o>
+ <t>ako; ktorú</t>
+ </e>
+ <e>
+ <o>quamquam</o>
+ <t>aj keď, a predsa</t>
+ </e>
+ <e>
+ <o>quantus?</o>
+ <t>aký veľký?</t>
+ </e>
+ <e>
+ <o>quattuor</o>
+ <t>štyri, štyridsať</t>
+ </e>
+ <e>
+ <o>-que</o>
+ <t>a</t>
+ </e>
+ <e>
+ <o>qui</o>
+ <t>kto, aký, ktorý, ako</t>
+ </e>
+ <e>
+ <o>quidam</o>
+ <t>ktosi, čosi, niekto</t>
+ </e>
+ <e>
+ <o>quinque</o>
+ <t>päť</t>
+ </e>
+ <e>
+ <o>quis?</o>
+ <t>kto? čo?</t>
+ </e>
+ <e>
+ <o>quo?</o>
+ <t>kam?</t>
+ </e>
+ <e>
+ <o>quod</o>
+ <t>a preto, aby</t>
+ </e>
+ <e>
+ <o>quo modo?</o>
+ <t>ako? akým spôsobom?</t>
+ </e>
+ <e>
+ <o>quoque</o>
+ <t>tiež, aj, i</t>
+ </e>
+ <e>
+ <o>quot?</o>
+ <t>koľko?</t>
+ </e>
+ <e>
+ <o>rapio (3)</o>
+ <t>uchvátiť, zmocniť sa</t>
+ </e>
+ <e>
+ <o>re-</o>
+ <t>-späť</t>
+ </e>
+ <e>
+ <o>reddo (3)</o>
+ <t>vracať, obnovovať</t>
+ </e>
+ <e>
+ <o>redeo (irreg)</o>
+ <t>vracať sa, ísť späť</t>
+ </e>
+ <e>
+ <o>refero (irreg)</o>
+ <t>nosiť naspäť; hlásiť, hovoriť</t>
+ </e>
+ <e>
+ <o>reficio (3)</o>
+ <t>opraviť, znovu stavať, znovu robiť</t>
+ </e>
+ <e>
+ <o>regina (1)</o>
+ <t>kráľovná, princezná</t>
+ </e>
+ <e>
+ <o>regnum (2)</o>
+ <t>najvyššia moc, kráľovstvo, majetok</t>
+ </e>
+ <e>
+ <o>regredior (3)</o>
+ <t>kráčať späť, vracať sa</t>
+ </e>
+ <e>
+ <o>relinquo (3)</o>
+ <t>zanechávam, opúšťam</t>
+ </e>
+ <e>
+ <o>res (5)</o>
+ <t>vec, skutočnosť, podnik</t>
+ </e>
+ <e>
+ <o>resisto (3)</o>
+ <t>odolávať</t>
+ </e>
+ <e>
+ <o>respondeo (2)</o>
+ <t>odvetiť, súhlasiť, zodpovedať</t>
+ </e>
+ <e>
+ <o>rex (3)</o>
+ <t>pán, vládca, kráľ</t>
+ </e>
+ <e>
+ <o>rideo (2)</o>
+ <t>smiať sa, usmievať sa</t>
+ </e>
+ <e>
+ <o>rogo (1)</o>
+ <t>pýtať sa, žiadať, prosiť</t>
+ </e>
+ <e>
+ <o>Roma (1)</o>
+ <t>Rím</t>
+ </e>
+ <e>
+ <o>Romanus</o>
+ <t>rímsky</t>
+ </e>
+ <e>
+ <o>rursus</o>
+ <t>naspäť, znovu</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/S.kvtml b/klatin/klatin/data/vocab/sk/S.kvtml
new file mode 100644
index 00000000..edba5bcd
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/S.kvtml
@@ -0,0 +1,220 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>sacer</o>
+ <t>svätý, posvätný</t>
+ </e>
+ <e>
+ <o>sacerdos (3)</o>
+ <t>kňaz, duchovný</t>
+ </e>
+ <e>
+ <o>saepe</o>
+ <t>často, mnohokrát</t>
+ </e>
+ <e>
+ <o>saevus</o>
+ <t>zúrivý, divoký, besný</t>
+ </e>
+ <e>
+ <o>salus (3)</o>
+ <t>bezpečnost, zdravie, život, spása</t>
+ </e>
+ <e>
+ <o>saluto (1)</o>
+ <t>zdraviť, pozdravovať, nazývať</t>
+ </e>
+ <e>
+ <o>salve!</o>
+ <t>buď vítaný!</t>
+ </e>
+ <e>
+ <o>sanguis (3)</o>
+ <t>krv</t>
+ </e>
+ <e>
+ <o>sapiens</o>
+ <t>múdry, rozumný, mudrc</t>
+ </e>
+ <e>
+ <o>satis</o>
+ <t>dosť, dostatočne</t>
+ </e>
+ <e>
+ <o>saxum (2)</o>
+ <t>kameň, skala</t>
+ </e>
+ <e>
+ <o>scio (4)</o>
+ <t>vedieť, rozumieť, rozhodovať</t>
+ </e>
+ <e>
+ <o>scribo (3)</o>
+ <t>písať, ryť, spísať</t>
+ </e>
+ <e>
+ <o>se</o>
+ <t>seba, sa, sebe, si, sebou</t>
+ </e>
+ <e>
+ <o>sed</o>
+ <t>ale, avšak</t>
+ </e>
+ <e>
+ <o>sedeo (2)</o>
+ <t>sedieť, zasadať, trvať</t>
+ </e>
+ <e>
+ <o>semper</o>
+ <t>vždy, stále, ustavične</t>
+ </e>
+ <e>
+ <o>senator (3)</o>
+ <t>senátor</t>
+ </e>
+ <e>
+ <o>senex (3)</o>
+ <t>starec, starý človek, kmeť</t>
+ </e>
+ <e>
+ <o>sentio (4)</o>
+ <t>vnímať, zaznamenať, cítiť, znamenať</t>
+ </e>
+ <e>
+ <o>septem</o>
+ <t>sedem</t>
+ </e>
+ <e>
+ <o>sequor (3)</o>
+ <t>nasledovať, ísť za, držať sa</t>
+ </e>
+ <e>
+ <o>sermo (3)</o>
+ <t>rozhovor, konverzácia, reč</t>
+ </e>
+ <e>
+ <o>servo (1)</o>
+ <t>strážiť, dávať pozor, ochraňovať</t>
+ </e>
+ <e>
+ <o>servus (2)</o>
+ <t>otrok, služobník, podrobený</t>
+ </e>
+ <e>
+ <o>severus</o>
+ <t>prísny, svedomitý, ukrutný, tvrdý</t>
+ </e>
+ <e>
+ <o>sex</o>
+ <t>šesť</t>
+ </e>
+ <e>
+ <o>si</o>
+ <t>ak, keby</t>
+ </e>
+ <e>
+ <o>sic</o>
+ <t>takto, takým spôsobom</t>
+ </e>
+ <e>
+ <o>sicut</o>
+ <t>ako, práve tak</t>
+ </e>
+ <e>
+ <o>signum (2)</o>
+ <t>znamenie, signál, pečať</t>
+ </e>
+ <e>
+ <o>silva (1)</o>
+ <t>drevo, strom, les</t>
+ </e>
+ <e>
+ <o>simulac</o>
+ <t>akonáhle, hneď ako</t>
+ </e>
+ <e>
+ <o>sine + abl</o>
+ <t>bez</t>
+ </e>
+ <e>
+ <o>sol (3)</o>
+ <t>slnko</t>
+ </e>
+ <e>
+ <o>soleo (2)</o>
+ <t>často robiť, byť zvyknutý</t>
+ </e>
+ <e>
+ <o>solus</o>
+ <t>jediný, opustený, sám</t>
+ </e>
+ <e>
+ <o>sonitus (4)</o>
+ <t>hučanie, hluk</t>
+ </e>
+ <e>
+ <o>soror (3)</o>
+ <t>sestra</t>
+ </e>
+ <e>
+ <o>specto (1)</o>
+ <t>dívať sa, pozorovať, mieriť</t>
+ </e>
+ <e>
+ <o>spero (1)</o>
+ <t>očakávať, dúfať, mať nádej</t>
+ </e>
+ <e>
+ <o>spes (5)</o>
+ <t>nádej, obava, starosť</t>
+ </e>
+ <e>
+ <o>statim</o>
+ <t>ihneď, okamžite, pevne</t>
+ </e>
+ <e>
+ <o>sto (1)</o>
+ <t>stáť, vydržať, zastaviť</t>
+ </e>
+ <e>
+ <o>stultus</o>
+ <t>hlúpy, bláznivý, blázon</t>
+ </e>
+ <e>
+ <o>suavis</o>
+ <t>chutný, ľúbezný, milý</t>
+ </e>
+ <e>
+ <o>sub + acc/abl</o>
+ <t>pod, za</t>
+ </e>
+ <e>
+ <o>subito</o>
+ <t>náhle, bez prípravy</t>
+ </e>
+ <e>
+ <o>sum (irreg)</o>
+ <t>byť, vyskytovať sa, týkať sa</t>
+ </e>
+ <e>
+ <o>summus</o>
+ <t>najvyšší, vrchný</t>
+ </e>
+ <e>
+ <o>superbus</o>
+ <t>hrdý, spupný, arogantný</t>
+ </e>
+ <e>
+ <o>supero (1)</o>
+ <t>vynikať, predčiť, prečnievať</t>
+ </e>
+ <e>
+ <o>surgo (3)</o>
+ <t>zdvihnúť sa, týčiť sa</t>
+ </e>
+ <e>
+ <o>suus</o>
+ <t>svoj, vlastný, osobný</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/TU.kvtml b/klatin/klatin/data/vocab/sk/TU.kvtml
new file mode 100644
index 00000000..a9d9c264
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/TU.kvtml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>taberna (1)</o>
+ <t>obchod, krčma, chatrč</t>
+ </e>
+ <e>
+ <o>taceo (2)</o>
+ <t>mlčať, zamlčať</t>
+ </e>
+ <e>
+ <o>talis</o>
+ <t>taký, aký</t>
+ </e>
+ <e>
+ <o>tam</o>
+ <t>do tej miery, tak</t>
+ </e>
+ <e>
+ <o>tamen</o>
+ <t>ale predsa, však, aspoň</t>
+ </e>
+ <e>
+ <o>tandem</o>
+ <t>konečne, konečne predsa</t>
+ </e>
+ <e>
+ <o>tantus</o>
+ <t>tak veľký, len toľko, mocný, slávny</t>
+ </e>
+ <e>
+ <o>templum (2)</o>
+ <t>svätyňa, sieň</t>
+ </e>
+ <e>
+ <o>tempestas (3)</o>
+ <t>búrka</t>
+ </e>
+ <e>
+ <o>tempus (3)</o>
+ <t>čas, doba</t>
+ </e>
+ <e>
+ <o>teneo (2)</o>
+ <t>držať, mať v moci</t>
+ </e>
+ <e>
+ <o>terra (1)</o>
+ <t>zem, svet, zemský okrsok</t>
+ </e>
+ <e>
+ <o>terreo (2)</o>
+ <t>triasť, strašiť, zastrašovať</t>
+ </e>
+ <e>
+ <o>timeo (2)</o>
+ <t>báť sa, obávať sa, mať strach</t>
+ </e>
+ <e>
+ <o>tollo (3)</o>
+ <t>zdvíhať, niesť, držať, ničiť</t>
+ </e>
+ <e>
+ <o>tot</o>
+ <t>toľko</t>
+ </e>
+ <e>
+ <o>totus</o>
+ <t>celý, všetok</t>
+ </e>
+ <e>
+ <o>trado (3)</o>
+ <t>podať, vydať, prenechať</t>
+ </e>
+ <e>
+ <o>traho (3)</o>
+ <t>ťahať, vliecť</t>
+ </e>
+ <e>
+ <o>trans + acc</o>
+ <t>cez, za, pre-</t>
+ </e>
+ <e>
+ <o>tres </o>
+ <t>tri</t>
+ </e>
+ <e>
+ <o>tristis</o>
+ <t>smutný, žalostný</t>
+ </e>
+ <e>
+ <o>tu</o>
+ <t>ty</t>
+ </e>
+ <e>
+ <o>tum</o>
+ <t>potom, vtedy</t>
+ </e>
+ <e>
+ <o>turba (1)</o>
+ <t>ruch, nával, zmätok</t>
+ </e>
+ <e>
+ <o>tutus</o>
+ <t>chránený, bezpečný, opatrný</t>
+ </e>
+ <e>
+ <o>tuus</o>
+ <t>tvoj, tvoj majetok, tvoja vec</t>
+ </e>
+ <e>
+ <o>ubi</o>
+ <t>kde, kedy</t>
+ </e>
+ <e>
+ <o>ultimus</o>
+ <t>najvzdialenejší, posledný</t>
+ </e>
+ <e>
+ <o>umquam</o>
+ <t>niekedy, vôbec</t>
+ </e>
+ <e>
+ <o>unda (1)</o>
+ <t>voda, rieka, vodstvo</t>
+ </e>
+ <e>
+ <o>unde</o>
+ <t>odkiaľ, z čoho</t>
+ </e>
+ <e>
+ <o>unus</o>
+ <t>jeden, jediný, spoločný</t>
+ </e>
+ <e>
+ <o>urbs (3)</o>
+ <t>mesto</t>
+ </e>
+ <e>
+ <o>ut + indic</o>
+ <t>ako</t>
+ </e>
+ <e>
+ <o>ut + subj</o>
+ <t>aby, tak aby, akonáhle</t>
+ </e>
+ <e>
+ <o>utilis</o>
+ <t>prospešný, užitočný</t>
+ </e>
+ <e>
+ <o>utrum... an</o>
+ <t>buď... alebo</t>
+ </e>
+ <e>
+ <o>uxor (3)</o>
+ <t>žena, manželka</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/data/vocab/sk/V.kvtml b/klatin/klatin/data/vocab/sk/V.kvtml
new file mode 100644
index 00000000..3009a82a
--- /dev/null
+++ b/klatin/klatin/data/vocab/sk/V.kvtml
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!DOCTYPE kvtml SYSTEM "kvoctrain.dtd">
+<kvtml>
+ <e>
+ <o>valde</o>
+ <t>veľmi, tuho, silno</t>
+ </e>
+ <e>
+ <o>vale</o>
+ <t>dovidenia, zbohom</t>
+ </e>
+ <e>
+ <o>vehementer</o>
+ <t>prudko, náhle, rázne, hlasno</t>
+ </e>
+ <e>
+ <o>veho (3)</o>
+ <t>viesť, voziť</t>
+ </e>
+ <e>
+ <o>vendo (3)</o>
+ <t>predávať, doporučovať</t>
+ </e>
+ <e>
+ <o>venio (4)</o>
+ <t>prichádzať, prísť, vznikať</t>
+ </e>
+ <e>
+ <o>ventus (2)</o>
+ <t>vietor</t>
+ </e>
+ <e>
+ <o>verbum (2)</o>
+ <t>slovo, sloveso, výrok</t>
+ </e>
+ <e>
+ <o>verto (3)</o>
+ <t>točiť, obracať, zničiť</t>
+ </e>
+ <e>
+ <o>verus</o>
+ <t>skutočný, pravý</t>
+ </e>
+ <e>
+ <o>vester</o>
+ <t>váš</t>
+ </e>
+ <e>
+ <o>vestimenta (2)</o>
+ <t>šat, odev</t>
+ </e>
+ <e>
+ <o>via (1)</o>
+ <t>cesta, cestička, spôsob</t>
+ </e>
+ <e>
+ <o>video (2)</o>
+ <t>vidieť, navštíviť</t>
+ </e>
+ <e>
+ <o>villa (1)</o>
+ <t>statok, dvor, osada</t>
+ </e>
+ <e>
+ <o>vinco (3)</o>
+ <t>víťaziť, vyhrávať, vynikať</t>
+ </e>
+ <e>
+ <o>vinum (2)</o>
+ <t>víno</t>
+ </e>
+ <e>
+ <o>vir (2)</o>
+ <t>muž, manžel, vojak, človek</t>
+ </e>
+ <e>
+ <o>vita (1)</o>
+ <t>život</t>
+ </e>
+ <e>
+ <o>vivo (3)</o>
+ <t>žiť, byť živým</t>
+ </e>
+ <e>
+ <o>vivus</o>
+ <t>živý, žijúci, čerstvý</t>
+ </e>
+ <e>
+ <o>vix</o>
+ <t>sotva, tažko, s problémami, ani nie</t>
+ </e>
+ <e>
+ <o>voco (1)</o>
+ <t>volať, privolať, hnať</t>
+ </e>
+ <e>
+ <o>volo (irreg)</o>
+ <t>chcieť, mať chuť</t>
+ </e>
+ <e>
+ <o>vos</o>
+ <t>vy, vás</t>
+ </e>
+ <e>
+ <o>vox (3)</o>
+ <t>hlas, krik, slovo</t>
+ </e>
+ <e>
+ <o>vulnero (1)</o>
+ <t>raniť, ublížiť</t>
+ </e>
+ <e>
+ <o>vulnus (3)</o>
+ <t>rana, poranenie, úraz, útrapa</t>
+ </e>
+ <e>
+ <o>vultus (4)</o>
+ <t>tvár, výraz, podoba</t>
+ </e>
+</kvtml>
diff --git a/klatin/klatin/icons/Makefile.am b/klatin/klatin/icons/Makefile.am
new file mode 100644
index 00000000..a4b97f06
--- /dev/null
+++ b/klatin/klatin/icons/Makefile.am
@@ -0,0 +1 @@
+KDE_ICON=AUTO
diff --git a/klatin/klatin/icons/hi128-app-klatin.png b/klatin/klatin/icons/hi128-app-klatin.png
new file mode 100644
index 00000000..ff4771dd
--- /dev/null
+++ b/klatin/klatin/icons/hi128-app-klatin.png
Binary files differ
diff --git a/klatin/klatin/icons/hi16-app-klatin.png b/klatin/klatin/icons/hi16-app-klatin.png
new file mode 100644
index 00000000..5cfc2e1e
--- /dev/null
+++ b/klatin/klatin/icons/hi16-app-klatin.png
Binary files differ
diff --git a/klatin/klatin/icons/hi22-app-klatin.png b/klatin/klatin/icons/hi22-app-klatin.png
new file mode 100644
index 00000000..4bfa629e
--- /dev/null
+++ b/klatin/klatin/icons/hi22-app-klatin.png
Binary files differ
diff --git a/klatin/klatin/icons/hi32-app-klatin.png b/klatin/klatin/icons/hi32-app-klatin.png
new file mode 100644
index 00000000..71eb1b59
--- /dev/null
+++ b/klatin/klatin/icons/hi32-app-klatin.png
Binary files differ
diff --git a/klatin/klatin/icons/hi48-app-klatin.png b/klatin/klatin/icons/hi48-app-klatin.png
new file mode 100644
index 00000000..af019976
--- /dev/null
+++ b/klatin/klatin/icons/hi48-app-klatin.png
Binary files differ
diff --git a/klatin/klatin/icons/hi64-app-klatin.png b/klatin/klatin/icons/hi64-app-klatin.png
new file mode 100644
index 00000000..aca23ceb
--- /dev/null
+++ b/klatin/klatin/icons/hi64-app-klatin.png
Binary files differ
diff --git a/klatin/klatin/icons/hisc-app-klatin.svgz b/klatin/klatin/icons/hisc-app-klatin.svgz
new file mode 100644
index 00000000..d6198363
--- /dev/null
+++ b/klatin/klatin/icons/hisc-app-klatin.svgz
Binary files differ
diff --git a/klatin/klatin/keduvocdata.h b/klatin/klatin/keduvocdata.h
new file mode 100644
index 00000000..eede664a
--- /dev/null
+++ b/klatin/klatin/keduvocdata.h
@@ -0,0 +1,49 @@
+/* This file is part of the KDE Edu Library
+ Copyright (C) 2002 Scott Wheeler <wheeler@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2 as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KEDUVOCDATA_H
+#define KEDUVOCDATA_H
+
+#include <qdom.h>
+
+class KEduVocDataItem
+{
+public:
+ KEduVocDataItem();
+ KEduVocDataItem(QDomElement &entry);
+ virtual ~KEduVocDataItem();
+
+ QString originalText() const;
+ QString translatedText() const;
+
+protected:
+ QString getText(const QString &tagName) const;
+
+private:
+ QDomElement domElement;
+};
+
+typedef QValueList<KEduVocDataItem> KEduVocDataItemList;
+
+class KEduVocData
+{
+public:
+ static KEduVocDataItemList parse(const QString &fileName);
+};
+
+#endif // KEDUVOCDATA_H
diff --git a/klatin/klatin/klatin.cpp b/klatin/klatin/klatin.cpp
new file mode 100644
index 00000000..118c89a1
--- /dev/null
+++ b/klatin/klatin/klatin.cpp
@@ -0,0 +1,217 @@
+/***************************************************************************
+ begin : Thu Jul 17
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qradiobutton.h>
+
+#include <kapplication.h>
+#include <kconfigdialog.h>
+#include <kfiledialog.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kpushbutton.h>
+#include <kstandarddirs.h>
+#include <kstatusbar.h>
+#include <kurlrequester.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+#include "klatin.h"
+#include "settings.h"
+
+KLatin::KLatin(QWidget* parent, const char *name)
+ : KMainWindow(parent, name)
+{
+ m_section = 0;
+
+ // Setup the actions for the menubar
+ setupActions();
+
+ // Used for resetting the GUI after leaving
+ // a section, but used here to initialise
+ // the GUI for the first time.
+ resetGUI();
+}
+
+KLatin::~KLatin()
+{
+}
+
+void KLatin::setupActions()
+{
+ // Setup various menu actions
+ KStdAction::preferences(this, SLOT(loadSettings()), actionCollection());
+ m_loadVocab = new KAction(i18n("Load &Vocabulary"), 0, this, SLOT(loadVocab()), actionCollection(), "go_vocab");
+ m_loadGrammar = new KAction(i18n("Load &Grammar"), 0, this, SLOT(loadGrammar()), actionCollection(), "go_grammar");
+ m_loadVerbs = new KAction(i18n("Load V&erbs"), 0, this, SLOT(loadVerbs()), actionCollection(), "go_verbs");
+ m_loadRevision = new KAction(i18n("Load &Revision"), 0, this, SLOT(loadRevision()), actionCollection(), "go_revision");
+ KStdAction::quit(kapp, SLOT(quit()), actionCollection());
+}
+
+void KLatin::startClicked()
+{
+ if (klatinchoose->VocabOption->isOn())
+ loadVocab();
+ if (klatinchoose->GrammarOption->isOn())
+ loadGrammar();
+ if (klatinchoose->VerbsOption->isOn())
+ loadVerbs();
+ if (klatinchoose->RevisionOption->isOn())
+ loadRevision();
+}
+
+// Start of section loading code
+
+void KLatin::loadVocab()
+{
+ klatinchoose->close();
+
+ klatinvocabsection = new KLatinVocab(this);
+ klatinvocabsection->show();
+
+ slotWriteMsg(i18n("Ready"));
+
+ // Set this widget as the central widget
+ setCentralWidget(klatinvocabsection);
+
+ updateSection(FALSE);
+
+ // When the child emits the signal exitted(),
+ // then reset the GUI to go back to the menu
+ connect(klatinvocabsection, SIGNAL(exited()), this, SLOT(resetGUI()));
+
+ // Set the section variable
+ m_section = 1;
+}
+
+void KLatin::loadGrammar()
+{
+ klatinchoose->close();
+
+ klatingrammarsection = new KLatinGrammar(this);
+ klatingrammarsection->show();
+
+ slotWriteMsg(i18n("Grammar"));
+
+ // Disable all the menu entries under Section/
+ updateSection(FALSE);
+
+ // Set this widget as the central widget
+ setCentralWidget(klatingrammarsection);
+
+ // When the child emits the signal exited(),
+ // then reset the GUI to go back to the menu
+ connect(klatingrammarsection, SIGNAL(exited()), this, SLOT(resetGUI()));
+ connect(klatingrammarsection, SIGNAL(statusMsg(const QString&)), this, SLOT(slotWriteMsg(const QString&)));
+ // Set the section variable
+ m_section = 2;
+}
+
+void KLatin::slotWriteMsg(const QString& message)
+{
+ statusBar()->message(message);
+}
+
+void KLatin::loadVerbs()
+{
+ klatinchoose->close();
+
+ klatinverbssection = new KLatinVerbs(this);
+ klatinverbssection->show();
+
+ slotWriteMsg(i18n("Verbs"));
+
+ // Disable all the menu entries under Section/
+ updateSection(FALSE);
+
+ // Set this widget as the central widget
+ setCentralWidget(klatinverbssection);
+
+ // When the child emits the signal exited(),
+ // then reset the GUI to go back to the menu
+ connect(klatinverbssection, SIGNAL(exited()), this, SLOT(resetGUI()));
+ connect(klatinverbssection, SIGNAL(statusMsg(const QString&)), this, SLOT(slotWriteMsg(const QString&)));
+
+ // Set the section variable
+ m_section = 3;
+}
+
+void KLatin::loadRevision()
+{
+ kapp->invokeHelp("klatin-index", "klatin");
+}
+
+void KLatin::loadSettings()
+{
+ if (KConfigDialog::showDialog("settings"))
+ return;
+
+ KConfigDialog *dialog = new KConfigDialog(this, "settings", Settings::self());
+
+ vocabPage = new VocabPage(0);
+ vocabPage->kcfg_DefaultFile->setMode(KFile::File | KFile::LocalOnly);
+ vocabPage->kcfg_DefaultFile->setFilter("*.kvtml");
+ vocabPage->kcfg_DefaultFile->setCaption(i18n("Load Vocabulary File"));
+ dialog->addPage(vocabPage, i18n("Vocabulary"), "kdict");
+ connect(dialog, SIGNAL(settingsChanged()), this, SLOT(settingsChanged()));
+ dialog->show();
+}
+
+void KLatin::settingsChanged()
+{
+ // Only the vocab section so far needs config refreshed for it
+ if (m_section == 1) {
+ klatinvocabsection->changeVocab(Settings::defaultFile());
+ }
+}
+
+void KLatin::resetGUI()
+{
+ // Load the central widget to show the user the
+ // various options that are available to choose
+ // and setCentralWidget it.
+ klatinchoose = new KLatinChoose(this);
+ klatinchoose->QuitButton->setIconSet(KGlobal::iconLoader()->loadIconSet("exit", KIcon::Small));
+ klatinchoose->show();
+ setCentralWidget(klatinchoose);
+
+ // Connect the "Start" button to slot StartPressed()
+ connect(klatinchoose->StartButton, SIGNAL(clicked()), this, SLOT(startClicked()));
+ // Make the quit button quit the application :)
+ connect(klatinchoose->QuitButton, SIGNAL(clicked()), kapp, SLOT(quit()));
+
+ // Enable all the menu entries under Section/
+ updateSection(TRUE);
+
+ // Use XML GUI to construct the menubar
+ setupGUI();
+
+ // Reset the section variable
+ m_section = 0;
+
+ slotWriteMsg(i18n("Ready"));
+}
+
+void KLatin::updateSection(bool m_bool)
+{
+ // Disable all the menu entries under Section/
+ m_loadVocab->setEnabled(m_bool);
+ m_loadGrammar->setEnabled(m_bool);
+ m_loadVerbs->setEnabled(m_bool);
+ m_loadRevision->setEnabled(m_bool);
+}
+
+#include "klatin.moc"
diff --git a/klatin/klatin/klatin.desktop b/klatin/klatin/klatin.desktop
new file mode 100644
index 00000000..d2938fb7
--- /dev/null
+++ b/klatin/klatin/klatin.desktop
@@ -0,0 +1,125 @@
+[Desktop Entry]
+Type=Application
+Exec=klatin -caption "%c" %i %m
+Icon=klatin
+DocPath=klatin/index.html
+Comment=A program to help revise Latin
+Comment[af]='n Program om Latyn te help hersien
+Comment[be]=Праграма, якая дапамагае вывучыць латынь
+Comment[bg]=Самоучител по латински
+Comment[bn]=ল্যাটিন ভাষা চর্চায় সহায়তা করার একটি প্রোগ্রাম
+Comment[bs]=Program za pomoć pri revidiranju Latinskog
+Comment[ca]=Un programa per ajudar a revisar el llatí
+Comment[cs]=Program na procvičování latiny
+Comment[csb]=Programa do pòwtórzaniô łacëznë
+Comment[cy]=Rhaglen i helpu adolygu Lladin
+Comment[da]=Et program til at hjælpe med at revidere Latin
+Comment[de]=Ein Programm, das beim Erlernen der lateinischen Sprache hilft
+Comment[el]=Μία εφαρμογή για να ξαναθυμηθείτε τα Λατινικά
+Comment[eo]=Programo por plistudi latinan
+Comment[es]=Un programa de ayuda para la corrección del latín
+Comment[et]=Ladina keele õpiprogramm
+Comment[eu]=Latina errepasatzeko tresna bat
+Comment[fa]=برنامه‌ای برای کمک به بازبینی لاتین
+Comment[fi]=Ohjelma latinan harjoitteluun
+Comment[fr]=Un programme pour aider à réviser le latin
+Comment[gl]=Programa que axuda a repasar latín
+Comment[he]=תכנה לעזרה בהגיית לטינית
+Comment[hi]=एक प्रोग्राम जो आपको लेटिन को सुधारने में मदद करता है
+Comment[hr]=Program koji pomaže u korekcijama latinskog jezika
+Comment[hu]=Oktatóprogram a latin nyelv gyakorlásához
+Comment[is]=Forrit til að fara yfir Latínu
+Comment[it]=Un programma per ripassare il Latino
+Comment[ja]=ラテン語を学習するプログラム
+Comment[ka]=ლათინურის შესასწავლი პროგრამა
+Comment[km]=កម្មវិធី​សម្រាប់​ជួយ​កែប្រែ​ភាសា​ឡាតាំង
+Comment[lt]=Programa lotynų kalbos studijavimui
+Comment[mk]=Програма која ќе ви помогне да го повторите латинскиот јазик
+Comment[nb]=Et øvelsesprogram i latin
+Comment[nds]=En Programm för't Öven vun Latiensch
+Comment[ne]=ल्याटिन पुनरावलोकन गर्न मद्दत गर्ने कार्यक्रम
+Comment[nl]=Een programme om uw Latijn op te halen
+Comment[nn]=Eit øvingsprogram i latin
+Comment[pl]=Program do powtarzania łaciny
+Comment[pt]=Programa para rever Latim
+Comment[pt_BR]=Um programa para ajudar a revisar o Latim
+Comment[ru]=Программа обучения латыни
+Comment[sk]=Program pre latinčinu
+Comment[sl]=Program za pregled latinščine
+Comment[sr]=Програм за помоћ у обнови латинског
+Comment[sr@Latn]=Program za pomoć u obnovi latinskog
+Comment[sv]=Ett program för att hjälpa till med latinrepetition
+Comment[ta]=லத்தீனை மறு ஆய்வு செய்ய உதவும் ஒரு நிரல்
+Comment[tg]=Банома барои хондани забони Лотинӣ
+Comment[tr]=Latince'yi gözden geçirmenize yardım eden bir uygulama
+Comment[uk]=Програма для повторення латині
+Comment[vi]=Một chương trình giúp ôn tập tiếng Latin
+Comment[zh_CN]=帮助复习拉丁语的程序
+Comment[zh_TW]=練習拉丁文的程式
+Terminal=false
+Name=KLatin
+Name[af]=K-Latyn
+Name[bn]=কে-ল্যাটিন
+Name[hi]=के-लेटिन
+Name[is]=KLatína
+Name[ne]=केडीई ल्याटिन
+Name[pl]=Łacina
+Name[sv]=Klatin
+Name[ta]=கேலத்தின்
+Name[tg]=KЛотинӣ
+Name[ven]=Tshilatini tsha K
+GenericName=Latin Reviser
+GenericName[af]=Latyn Hersiener
+GenericName[be]=Праверка ведаў латыні
+GenericName[bg]=Самоучител по латински
+GenericName[bn]=ল্যাটিন চর্চা
+GenericName[bs]=Revidiranje Latinskog
+GenericName[ca]=Revisor de llatí
+GenericName[cs]=Procvičování latiny
+GenericName[csb]=Programa do pòwtórzaniô łacëznë
+GenericName[cy]=Adolygydd Lladin
+GenericName[da]=Latin-reviderer
+GenericName[de]=Latein-Übungen
+GenericName[el]=Εφαρμογή φρεσκαρίσματος των Λατινικών
+GenericName[eo]=Latina plistudado
+GenericName[es]=Revisor de latín
+GenericName[et]=Ladina keele õpiprogramm
+GenericName[eu]=Latin errepasatzailea
+GenericName[fa]=بازبینی لاتین
+GenericName[fi]=Latinan harjoitukset
+GenericName[fr]=Outil de révision du latin
+GenericName[ga]=Leasaitheoir Laidine
+GenericName[gl]=Utilidade de repaso de latín
+GenericName[he]=הגייה לטינית
+GenericName[hi]=लेटिन सुधारक
+GenericName[hr]=Korekcije latinskog
+GenericName[hu]=Latinoktató
+GenericName[is]=Latínupúki
+GenericName[it]=Studio del Latino
+GenericName[ja]=ラテン語の学習
+GenericName[ka]=ლათინურის შემოწმება
+GenericName[km]=កម្មវិធី​កែប្រែ​ភាសា​ឡាតាំង
+GenericName[lt]=Pagalbinė lotynų kalbos priemonė
+GenericName[ms]=Ulangkaji Latin
+GenericName[nb]=Øvingsprogram i latin
+GenericName[nds]=Latiensch öven
+GenericName[ne]=ल्याटिन पुनरावलोकनकर्ता
+GenericName[nl]=Latijn
+GenericName[nn]=Øvingsprogram i latin
+GenericName[pl]=Program do powtarzania łaciny
+GenericName[pt]=Revisão de Latim
+GenericName[pt_BR]=Revisor de latim
+GenericName[ru]=Обучение латыни
+GenericName[sk]=Výuka latinčiny
+GenericName[sl]=Pregled latinščine
+GenericName[sr]=Обнављач латинског
+GenericName[sr@Latn]=Obnavljač latinskog
+GenericName[sv]=Latinrepetition
+GenericName[ta]=லத்தீன் மறு ஆய்வி
+GenericName[tg]=Намоишгари Лотинӣ
+GenericName[tr]=Latince Gözden Geçiricisi
+GenericName[uk]=Повторення латині
+GenericName[vi]=Ôn tập Latin
+GenericName[zh_CN]=拉丁语复习工具
+GenericName[zh_TW]=拉丁語復習
+Categories=Qt;KDE;Education;Languages;
diff --git a/klatin/klatin/klatin.h b/klatin/klatin/klatin.h
new file mode 100644
index 00000000..8adb2cbe
--- /dev/null
+++ b/klatin/klatin/klatin.h
@@ -0,0 +1,93 @@
+/***************************************************************************
+ begin : Thu Jul 17
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef KLATIN_H
+#define KLATIN_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <kactionclasses.h>
+#include <klineedit.h>
+#include <kmainwindow.h>
+
+#include "klatinchoose.h"
+#include "klatingrammar.h"
+#include "klatinverbs.h"
+#include "klatinvocab.h"
+
+#include "klatinsettings_vocabpage.h"
+
+/** @short Main application class */
+class KLatin : public KMainWindow
+{
+ Q_OBJECT
+public:
+ KLatin(QWidget* parent=0, const char *name=0);
+ ~KLatin();
+
+ void setupActions();
+
+public slots:
+ /// Load vocabulary revision section
+ void loadVocab();
+ /// Load grammar revision section
+ void loadGrammar();
+ /// Load verb revision section
+ void loadVerbs();
+ /// Load revision notes in Konqueror
+ void loadRevision();
+ /// Parse settings from config file
+ void loadSettings();
+
+ /// Slot for the start button
+ void startClicked();
+ /// Reloads the section choose screen
+ void resetGUI();
+
+private slots:
+ /// Slot for when settings are changed in the KConfig XT dialog
+ void settingsChanged();
+
+ void slotWriteMsg(const QString&);
+
+private:
+
+ KAction *m_loadVocab;
+ KAction *m_loadGrammar;
+ KAction *m_loadVerbs;
+ KAction *m_loadRevision;
+
+ KLatinChoose *klatinchoose;
+ KLatinGrammar *klatingrammarsection;
+ KLatinVocab *klatinvocabsection;
+ KLatinVerbs *klatinverbssection;
+
+ VocabPage *vocabPage;
+
+ /// Current section loaded
+ int m_section;
+
+private:
+ /**
+ * Enable/Disable the items in the Section menu
+ *@param bool if bool is true then the menu items are enabled
+ */
+ void updateSection(bool);
+};
+
+#endif // KLATIN_H
diff --git a/klatin/klatin/klatin.kcfg b/klatin/klatin/klatin.kcfg
new file mode 100644
index 00000000..407f47a2
--- /dev/null
+++ b/klatin/klatin/klatin.kcfg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
+ <kcfgfile name="klatinrc"/>
+ <group name="Language">
+ <entry name="UserLanguage" type="String">
+ <label>The language selected by the user</label>
+ <code>
+ KConfigBase *globalConf = KGlobal::config();
+ globalConf->setGroup("Locale");
+ QString m_language = globalConf->readEntry("Language", "en");
+ //keep only the first 2 characters
+ m_language = m_language.left(2);
+ QString filename = locate("data", "klatin/data/vocabs/");
+ filename += m_language;
+ QDir check(filename);
+
+ if (check.exists() == FALSE) {
+ m_language = "en";
+ }
+ kdDebug()&lt;&lt; m_language &lt;&lt;endl;
+ </code>
+ <default code="true">m_language</default>
+ </entry>
+ </group>
+ <group name="Vocabulary">
+ <entry name="NumOfQuestions" type="Int">
+ <label>how many questions are asked in one session.</label>
+ <default>10</default>
+ </entry>
+ <entry name="UnlimitedQuestions" type="Int">
+ <label>whether KLatin should ask unlimited questions.</label>
+ <default>0</default>
+ </entry>
+ <entry name="DefaultFile" type="String">
+ <label>the default vocabulary file.</label>
+ <code>
+ QString fileDir = locate("data", "klatin/data/vocabs/");
+ fileDir += m_language;
+ QDir vocabDirectory(fileDir, "*.kvtml");
+ kdDebug()&lt;&lt; m_language &lt;&lt;endl;
+
+ QString defaultFile = (fileDir + "/" + vocabDirectory[0]);
+ kdDebug()&lt;&lt; defaultFile &lt;&lt;endl;
+ </code>
+ <default code="true">defaultFile</default>
+ </entry>
+ <entry name="LatinToLang" type="Bool">
+ <label>whether the questions should be Latin to the user's language.</label>
+ <default>true</default>
+ </entry>
+ <entry name="LangToLatin" type="Bool">
+ <label>whether the questions should be the user's language to Latin.</label>
+ <default>false</default>
+ </entry>
+ </group>
+</kcfg> \ No newline at end of file
diff --git a/klatin/klatin/klatinchoose.ui b/klatin/klatin/klatinchoose.ui
new file mode 100644
index 00000000..98115187
--- /dev/null
+++ b/klatin/klatin/klatinchoose.ui
@@ -0,0 +1,264 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KLatinChoose</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>KLatinChoose</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>490</width>
+ <height>230</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout81</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>WelcomeLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>16</pointsize>
+ <bold>1</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Welcome to KLatin
+Please Choose Section of Revision</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout80</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>Options</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Revision Sections</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>VocabOption</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Vocabulary</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Test on Vocabulary</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Multiple choice vocabulary test</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>GrammarOption</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Grammar</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Test on noun grammar</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Test on common nouns and endings</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>VerbsOption</cstring>
+ </property>
+ <property name="text">
+ <string>Ver&amp;bs</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Test on verb forms</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Test on common verbs and endings</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>RevisionOption</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Revision notes</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Load revision notes</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>The KLatin revision notes with
+verb and noun tables</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout79</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>34</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>StartButton</cstring>
+ </property>
+ <property name="text">
+ <string>S&amp;tart</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Start chosen area of revision</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Start the section you have chosen</string>
+ </property>
+ </widget>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>QuitButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Quit</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Quits</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Quit KLatin</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>33</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+</widget>
+<customwidgets>
+</customwidgets>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>
diff --git a/klatin/klatin/klatingrammar.cpp b/klatin/klatin/klatingrammar.cpp
new file mode 100644
index 00000000..f320fd5b
--- /dev/null
+++ b/klatin/klatin/klatingrammar.cpp
@@ -0,0 +1,243 @@
+/***************************************************************************
+ begin : Thu Jul 17
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qfile.h>
+#include <qlabel.h>
+
+#include <kapplication.h>
+#include <kcombobox.h>
+#include <kiconloader.h>
+#include <klineedit.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpushbutton.h>
+#include <kstandarddirs.h>
+
+#include <stdlib.h>
+#include <time.h>
+
+#include "klatingrammar.h"
+
+KLatinGrammar::KLatinGrammar(QWidget* parent, const char *name)
+ : KLatinGrammarWidget(parent, name)
+{
+ // Set defaults
+ m_total = 0;
+ m_totalCorrect = 0;
+ m_numWrong = 0;
+
+ OKButton->setIconSet(KGlobal::iconLoader()->loadIconSet("button_ok", KIcon::Small));
+ BackButton->setIconSet(KGlobal::iconLoader()->loadIconSet("back", KIcon::Small));
+
+ // Set connections
+ connect(BackButton, SIGNAL(clicked()), this, SLOT(goBack()));
+ connect(OKButton, SIGNAL(clicked()), this, SLOT(checkAnswer()));
+ connect(AnswerBox, SIGNAL(returnPressed()), this, SLOT(checkAnswer()));
+ connect(ChooseSection, SIGNAL(activated(int)), this, SLOT(loadDatabase()));
+
+ // Insert the various declensions
+ ChooseSection->insertItem(i18n("All Declensions"));
+ ChooseSection->insertItem(i18n("1st Feminine"));
+ ChooseSection->insertItem(i18n("2nd Masculine"));
+ ChooseSection->insertItem(i18n("2nd Neuter"));
+ ChooseSection->insertItem(i18n("3rd Masc/Fem"));
+ ChooseSection->insertItem(i18n("3rd Neuter"));
+ ChooseSection->insertItem(i18n("4th Masc/Fem"));
+ ChooseSection->insertItem(i18n("4th Neuter"));
+ ChooseSection->insertItem(i18n("5th Feminine"));
+
+ // Load the database of nouns
+ loadDatabase();
+
+ AnswerBox->setFocus();
+}
+
+KLatinGrammar::~KLatinGrammar()
+{
+}
+
+void KLatinGrammar::loadDatabase()
+{
+ int curitem = ChooseSection->currentItem();
+ if ( curitem != 0 ) {
+ curitem--;
+ }
+ else
+ {
+ // Seed the random number generator
+ srandom(time(NULL));
+
+ curitem = (random() % 8);
+ }
+
+ // Various files that are used for each declension
+ QString file = "klatin/data/grammar/";
+ switch (curitem) {
+ case 0:
+ file += "puella.klat";
+ break;
+ case 1:
+ file += "servus.klat";
+ break;
+ case 2:
+ file += "bellum.klat";
+ break;
+ case 3:
+ file += "rex.klat";
+ break;
+ case 4:
+ file += "opus.klat";
+ break;
+ case 5:
+ file += "gradus.klat";
+ break;
+ case 6:
+ file += "genu.klat";
+ break;
+ case 7:
+ file += "res.klat";
+ break;
+ default: // fake case...
+ file += "foo.klat";
+ }
+
+ // Check whether the file actually exists
+ // If not - warn user.
+ if (QFile::exists(locate("data", file)) == FALSE) {
+ KMessageBox::error(this, i18n("Could not load grammar-definition file, check KLatin installation."), i18n("Error with KLatin"));
+ QuestionLabel->setText(i18n("Error."));
+ return;
+ }
+
+ KEduVocDataItemList grammar = KEduVocData::parse(locate("data", file));
+
+ // Load XML file into memory
+ int numberOfWords = 0;
+ for(KEduVocDataItemList::Iterator dataIt = grammar.begin(); dataIt != grammar.end(); ++dataIt) {
+ m_noun[numberOfWords] = grammar[numberOfWords].originalText();
+ numberOfWords++;
+ }
+
+ nextQuestion();
+}
+
+void KLatinGrammar::goBack()
+{
+ emit exited();
+ close();
+}
+
+void KLatinGrammar::nextQuestion()
+{
+ emit statusMsg(i18n("Grammar"));
+
+ // Seed the random number generator
+ srandom(time(NULL));
+
+ m_grammarNumber = (random() % 12) + 1;
+
+ QString questionString;
+
+ // Question string...
+ switch (m_grammarNumber) {
+ case 1:
+ questionString = i18n("What is the nominative singular of %1?").arg(m_noun[0]);
+ break;
+ case 2:
+ questionString = i18n("What is the vocative singular of %1?").arg(m_noun[0]);
+ break;
+ case 3:
+ questionString = i18n("What is the accusative singular of %1?").arg(m_noun[0]);
+ break;
+ case 4:
+ questionString = i18n("What is the genitive singular of %1?").arg(m_noun[0]);
+ break;
+ case 5:
+ questionString = i18n("What is the dative singular of %1?").arg(m_noun[0]);
+ break;
+ case 6:
+ questionString = i18n("What is the ablative singular of %1?").arg(m_noun[0]);
+ break;
+ case 7:
+ questionString = i18n("What is the nominative plural of %1?").arg(m_noun[0]);
+ break;
+ case 8:
+ questionString = i18n("What is the vocative plural of %1?").arg(m_noun[0]);
+ break;
+ case 9:
+ questionString = i18n("What is the accusative plural of %1?").arg(m_noun[0]);
+ break;
+ case 10:
+ questionString = i18n("What is the genitive plural of %1?").arg(m_noun[0]);
+ break;
+ case 11:
+ questionString = i18n("What is the dative plural of %1?").arg(m_noun[0]);
+ break;
+ case 12:
+ questionString = i18n("What is the ablative plural of %1?").arg(m_noun[0]);
+ break;
+ }
+
+ // Set question on screen
+ QuestionLabel->setText(questionString);
+}
+
+void KLatinGrammar::checkAnswer()
+{
+ if (m_noun[m_grammarNumber - 1] != AnswerBox->text().lower()) {
+ m_numWrong++;
+
+ // Allow a tolerance of 1 retry
+ if (m_numWrong == 2) {
+ m_numWrong = 0;
+ KMessageBox::information(this, i18n("The correct answer was %1.").arg(m_noun[m_grammarNumber - 1]), i18n("Wrong"));
+ if (ChooseSection->currentItem()==0)
+ loadDatabase();
+ else
+ nextQuestion();
+ } else {
+ if (AnswerBox->text().isEmpty()) {
+ emit statusMsg(i18n("Please enter an answer"));
+ }
+ }
+ } else {
+ m_totalCorrect++;
+
+ // Reset the number of questions that were wrong
+ m_numWrong = 0;
+
+ if (ChooseSection->currentItem()==0)
+ loadDatabase();
+ else
+ nextQuestion();
+ }
+ m_total++;
+
+ AnswerBox->setText(NULL);
+
+ updateScores();
+}
+
+void KLatinGrammar::updateScores()
+{
+ // Update the score labels
+ Score1Label->setNum(m_totalCorrect);
+ Score2Label->setNum(m_total);
+
+ // Set percentage
+ PercentageLabel->setText(QString::number(int(double(m_totalCorrect) / m_total * 100))+QString("%"));
+}
+
+#include "klatingrammar.moc"
diff --git a/klatin/klatin/klatingrammar.h b/klatin/klatin/klatingrammar.h
new file mode 100644
index 00000000..5c00d6b7
--- /dev/null
+++ b/klatin/klatin/klatingrammar.h
@@ -0,0 +1,63 @@
+/***************************************************************************
+ begin : Thu Jul 17 2003
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef KLATINGRAMMAR_H
+#define KLATINGRAMMAR_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "keduvocdata.h"
+#include "klatingrammarwidget.h"
+
+/** @short Main class for testing grammar*/
+class KLatinGrammar : public KLatinGrammarWidget
+{
+ Q_OBJECT
+public:
+ KLatinGrammar(QWidget* parent=0, const char *name=0);
+ ~KLatinGrammar();
+
+ /// Load next question
+ void nextQuestion();
+ /// Update score of test so far
+ void updateScores();
+public slots:
+ /// Load grammar definitions database
+ void loadDatabase();
+ /// Destroys the widget
+ void goBack();
+ /// Check whether the answer is correct
+ void checkAnswer();
+signals:
+ /// Signal that is emitted when the widget is closed
+ void exited();
+ void statusMsg(const QString&);
+private:
+ /// Array that holds the 12 cases of a noun
+ QString m_noun[12];
+ /// The case of the noun being tested
+ int m_grammarNumber;
+ /// Total number of questions attempted that are wrong
+ int m_numWrong;
+
+ /// Total number of questions attempted that are correct
+ int m_totalCorrect;
+ /// Total number of questions attempted
+ int m_total;
+};
+
+#endif // KLATINGRAMMAR_H
diff --git a/klatin/klatin/klatingrammarwidget.ui b/klatin/klatin/klatingrammarwidget.ui
new file mode 100644
index 00000000..2e8046fb
--- /dev/null
+++ b/klatin/klatin/klatingrammarwidget.ui
@@ -0,0 +1,382 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>KLatinGrammarWidget</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>KLatinGrammarWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>439</width>
+ <height>320</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>KLatin</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TitleGrammar</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>22</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Grammar Section</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout39</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KComboBox">
+ <property name="name">
+ <cstring>ChooseSection</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Choice of nouns for testing</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout40</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>QuestionLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>17</pointsize>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <property name="text">
+ <string>Question Word
+Line 2
+Line 3
+Line 4</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>The question will appear here</string>
+ </property>
+ <property name="wordwrap" stdset="0">
+ </property>
+ </widget>
+ <widget class="QFrame">
+ <property name="name">
+ <cstring>Frame10</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout41_2</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>ScoreLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>19</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Score</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout40_2</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout39</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Score1Label</cstring>
+ </property>
+ <property name="text">
+ <string>0</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>SeparatorLabel</cstring>
+ </property>
+ <property name="text">
+ <string>/</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Score2Label</cstring>
+ </property>
+ <property name="text">
+ <string>0</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PercentageLabel</cstring>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Your test percentage so far</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout37</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AnswerLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Answer:</string>
+ </property>
+ </widget>
+ <widget class="KLineEdit">
+ <property name="name">
+ <cstring>AnswerBox</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Your answer goes here</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enter your answer here</string>
+ </property>
+ </widget>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>OKButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="default">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Check answer</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout21</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer20</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>294</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>BackButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Back</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Go back to the selection screen</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Return to selection screen</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<customwidgets>
+</customwidgets>
+<tabstops>
+ <tabstop>AnswerBox</tabstop>
+ <tabstop>OKButton</tabstop>
+ <tabstop>BackButton</tabstop>
+ <tabstop>ChooseSection</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>klineedit.h</includehint>
+</includehints>
+</UI>
diff --git a/klatin/klatin/klatinresultsdialog.ui b/klatin/klatin/klatinresultsdialog.ui
new file mode 100644
index 00000000..f81f0bc2
--- /dev/null
+++ b/klatin/klatin/klatinresultsdialog.ui
@@ -0,0 +1,223 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KLatinResultsDialog</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>KLatinResultsDialog</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>408</width>
+ <height>309</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Results</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>ResultsLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>16</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>&lt;b&gt;Your Results&lt;/b&gt;</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Question</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Your Answer</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Correct Answer</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>ResultsView</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="showSortIndicator">
+ <bool>false</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Table of results</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout83</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PercentageLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Percentage:</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Percentage of correct answers</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This shows the percentage of the questions you answered correctly out of those attempted.</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PercentageValue</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Percentage of correct answers</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This shows the percentage of the questions you answered correctly out of those attempted.</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AttemptedLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Number attempted:</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Number of questions attempted</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This shows the number of questions you answered.</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AttemptedValue</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Number of questions attempted</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This shows the number of questions you answered.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout70</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer23</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>291</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>CloseButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Close</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Close this dialog</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Close this dialog and return to KLatin's main window.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>CloseButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KLatinResultsDialog</receiver>
+ <slot>close()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>
diff --git a/klatin/klatin/klatinsettings_vocabpage.ui b/klatin/klatin/klatinsettings_vocabpage.ui
new file mode 100644
index 00000000..7db9e38a
--- /dev/null
+++ b/klatin/klatin/klatinsettings_vocabpage.ui
@@ -0,0 +1,181 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>VocabPage</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>VocabPage</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>182</width>
+ <height>203</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Configure Vocabulary</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QButtonGroup" row="1" column="0">
+ <property name="name">
+ <cstring>ButtonGroup</cstring>
+ </property>
+ <property name="title">
+ <string>Testing Style</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout24</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>kcfg_LatinToLang</cstring>
+ </property>
+ <property name="text">
+ <string>To Latin</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Question in your language and answers in Latin</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Choose to be tested from your language to Latin, which means the word will be displayed in your language and you will have to choose from 4 Latin translations.</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>kcfg_LangToLatin</cstring>
+ </property>
+ <property name="text">
+ <string>From Latin</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Question in Latin and answers in your language</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Choose to be tested from Latin to your language, which means the word will be displayed in Latin and you will have to choose from 4 translations in your language.</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>MiscGroup</cstring>
+ </property>
+ <property name="title">
+ <string>Miscellaneous</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KURLRequester">
+ <property name="name">
+ <cstring>kcfg_DefaultFile</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>The file you are tested on in vocabulary</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>You can change the file you are tested on for the vocabulary section</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>QuestionsLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Number of questions:</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter</set>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Set the number of questions you want to be tested on</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Here you can set the number of questions you want to be tested on. When this number is reached, a result dialog appears.</string>
+ </property>
+ </widget>
+ <widget class="KIntSpinBox">
+ <property name="name">
+ <cstring>kcfg_NumOfQuestions</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>50</number>
+ </property>
+ <property name="value">
+ <number>10</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Number of questions to be asked before ending</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Numbers of questions to ask at a time</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>kurlrequester.h</includehint>
+ <includehint>klineedit.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>knuminput.h</includehint>
+</includehints>
+</UI>
diff --git a/klatin/klatin/klatinui.rc b/klatin/klatin/klatinui.rc
new file mode 100644
index 00000000..76ce8a94
--- /dev/null
+++ b/klatin/klatin/klatinui.rc
@@ -0,0 +1,12 @@
+<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
+<kpartgui name="klatin" version="3">
+<MenuBar>
+
+ <Menu name="section" noMerge="1"><text>S&amp;ection</text>
+ <Action name="go_vocab" />
+ <Action name="go_grammar" />
+ <Action name="go_verbs" />
+ <Action name="go_revision" />
+ </Menu>
+</MenuBar>
+</kpartgui>
diff --git a/klatin/klatin/klatinverbs.cpp b/klatin/klatin/klatinverbs.cpp
new file mode 100644
index 00000000..8b6f956c
--- /dev/null
+++ b/klatin/klatin/klatinverbs.cpp
@@ -0,0 +1,272 @@
+/***************************************************************************
+ begin : Fri Aug 15
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qfile.h>
+#include <qlabel.h>
+
+#include <kapplication.h>
+#include <kcombobox.h>
+#include <kiconloader.h>
+#include <klineedit.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpushbutton.h>
+#include <kstandarddirs.h>
+
+#include <stdlib.h>
+#include <time.h>
+
+#include "klatinverbs.h"
+
+KLatinVerbs::KLatinVerbs(QWidget* parent, const char *name)
+ : KLatinVerbsWidget(parent, name)
+{
+ OKButton->setIconSet(KGlobal::iconLoader()->loadIconSet("button_ok", KIcon::Small));
+ BackButton->setIconSet(KGlobal::iconLoader()->loadIconSet("back", KIcon::Small));
+ ChangeButton->setIconSet(KGlobal::iconLoader()->loadIconSet("apply", KIcon::Small));
+
+ ChooseConjugation->insertItem(i18n("1st"));
+ ChooseConjugation->insertItem(i18n("2nd"));
+ ChooseConjugation->insertItem(i18n("3rd"));
+ ChooseConjugation->insertItem(i18n("4th"));
+ ChooseConjugation->insertItem("sum"); // Does not need translating as it's in Latin
+
+ ChooseMood->insertItem(i18n("Indicative"));
+ ChooseMood->insertItem(i18n("Subjunctive"));
+
+ ChooseVoice->insertItem(i18n("Active"));
+ ChooseVoice->insertItem(i18n("Passive"));
+
+ m_total = 0;
+ m_totalCorrect = 0;
+ m_numWrong = 0;
+
+ // Initializing the data structures
+ // These are words in Latin and do not need i18n
+ verbparts.declension.push_back("amo");
+ verbparts.declension.push_back("moneo");
+ verbparts.declension.push_back("rego");
+ verbparts.declension.push_back("audio");
+ verbparts.declension.push_back("sum");
+
+ verbparts.mood.push_back(I18N_NOOP("indicative"));
+ verbparts.mood.push_back(I18N_NOOP("subjunctive"));
+
+ verbparts.voice.push_back(I18N_NOOP("active"));
+ verbparts.voice.push_back(I18N_NOOP("passive"));
+
+ question.person.push_back(I18N_NOOP("first"));
+ question.person.push_back(I18N_NOOP("second"));
+ question.person.push_back(I18N_NOOP("third"));
+
+ question.number.push_back(I18N_NOOP("singular"));
+ question.number.push_back(I18N_NOOP("plural"));
+
+ question.tense.push_back(I18N_NOOP("present"));
+ question.tense.push_back(I18N_NOOP("future"));
+ question.tense.push_back(I18N_NOOP("imperfect"));
+ question.tense.push_back(I18N_NOOP("perfect"));
+ question.tense.push_back(I18N_NOOP("pluperfect"));
+ question.tense.push_back(I18N_NOOP("future perfect"));
+
+ connect(ChooseConjugation, SIGNAL(activated(int)), this, SLOT(conjugationActivated(int)));
+ connect(BackButton, SIGNAL(clicked()), this, SLOT(goBack()));
+ connect(ChangeButton, SIGNAL(clicked()), this, SLOT(loadDatabase()));
+ connect(AnswerBox, SIGNAL(returnPressed()), this, SLOT(checkAnswer()));
+ connect(OKButton, SIGNAL(clicked()), this, SLOT(checkAnswer()));
+
+ loadDatabase();
+
+ AnswerBox->setFocus();
+}
+
+KLatinVerbs::~KLatinVerbs()
+{
+}
+
+void KLatinVerbs::loadDatabase()
+{
+ QString databaseFile = verbparts.declension[ChooseConjugation->currentItem()];
+ m_currentVerb = databaseFile;
+ databaseFile += "-" + QString(verbparts.mood[ChooseMood->currentItem()]);
+ databaseFile += "-" + QString(verbparts.voice[ChooseVoice->currentItem()]) + ".klat";
+
+ QString fileName = "klatin/data/verbs/" + databaseFile;
+
+ if (QFile::exists(locate("data", fileName)) == FALSE) {
+ KMessageBox::error(this, i18n("Could not load verb-definition file, check KLatin installation."), i18n("Error with KLatin"));
+ goBack();
+ }
+
+ int numberOfWords = 0;
+
+ KEduVocDataItemList verbs = KEduVocData::parse(locate("data", fileName));
+
+ for(KEduVocDataItemList::Iterator dataIt = verbs.begin(); dataIt != verbs.end(); ++dataIt) {
+ m_verb[numberOfWords] = verbs[numberOfWords].originalText();
+ numberOfWords++;
+ }
+
+ nextQuestion();
+}
+
+void KLatinVerbs::nextQuestion()
+{
+ emit statusMsg(i18n("Verbs"));
+
+ // Seed the random number generator
+ srandom(time(NULL));
+
+ if (ChooseMood->currentText() == i18n("Indicative"))
+ m_verbNumber = (random() % 35) + 1;
+ if (ChooseMood->currentText() == i18n("Subjunctive"))
+ m_verbNumber = (random() % 23) + 1;
+
+ QString QuestionString;
+
+ int person = 0, number = 0, tense = 0;
+
+ switch (m_verbNumber % 6) {
+ case 1:
+ person = 0;
+ number = 0;
+ break;
+ case 2:
+ person = 1;
+ number = 0;
+ break;
+ case 3:
+ person = 2;
+ number = 0;
+ break;
+ case 4:
+ person = 0;
+ number = 1;
+ break;
+ case 5:
+ person = 1;
+ number = 1;
+ break;
+ case 0:
+ person = 2;
+ number = 1;
+ break;
+ }
+
+ switch ((int) (m_verbNumber - 1) / 6) {
+ case 0:
+ tense = 0;
+ break;
+ case 1:
+ if (ChooseMood->currentText() == i18n("Indicative"))
+ tense = 1;
+ else
+ tense = 2;
+ break;
+ case 2:
+ if (ChooseMood->currentText() == i18n("Indicative"))
+ tense = 2;
+ else
+ tense = 3;
+ break;
+ case 3:
+ if (ChooseMood->currentText() == i18n("Indicative"))
+ tense = 3;
+ else
+ tense = 4;
+ break;
+ case 4:
+ tense = 4;
+ break;
+ case 5:
+ tense = 5;
+ break;
+ }
+
+ QuestionString = i18n("Note: ARGUMENT %1 is an ordinal number (1st, 2nd, 3rd). "
+ "ARGUMENT %2 indicates whether the person is singular or plural. "
+ "ARGUMENT %3 is the tense of the verb (Present, Imperfect, Perfect). "
+ "ARGUMENT %4 is the mood of the verb (Indicative, Subjunctive). "
+ "ARGUMENT %5 is the voice of the verb (Active, Passive). "
+ "ARGUMENT %6 is the verb name (amo, moneo etc). This is in Latin and should not be translated. "
+ "The output string in English is something like: What is the first person singular present indicative active of amo?",
+ "What is the %1 person %2 %3 %4 %5 of %6?").arg(i18n(question.person[person]))
+ .arg(i18n(question.number[number]))
+ .arg(i18n(question.tense[tense]))
+ .arg(i18n(verbparts.mood[ChooseMood->currentItem()]))
+ .arg(i18n(verbparts.voice[ChooseVoice->currentItem()]))
+ .arg(m_currentVerb);
+
+ QuestionLabel->setText(QuestionString);
+}
+
+void KLatinVerbs::checkAnswer()
+{
+ if (AnswerBox->text().isEmpty()) {
+ emit statusMsg(i18n("Please enter an answer"));
+ return;
+ }
+
+ if (m_verb[m_verbNumber - 1] != AnswerBox->text().lower()) {
+ // Iterate...
+ m_numWrong++;
+
+ // Retry tolerance...
+ if (m_numWrong == 2) {
+ m_numWrong = 0;
+ KMessageBox::information(this, i18n("The correct answer was %1.").arg(m_verb[m_verbNumber - 1]), i18n("Wrong"));
+ nextQuestion();
+ }
+ } else {
+ // Iterate...
+ m_totalCorrect++;
+
+ m_numWrong = 0;
+
+ nextQuestion();
+ }
+
+ m_total++;
+ AnswerBox->setText(NULL);
+
+ updateScores();
+}
+
+void KLatinVerbs::conjugationActivated(int itemNumber)
+{
+ if (itemNumber == 4)
+ ChooseVoice->removeItem(1);
+ else
+ if (ChooseVoice->count() == 1)
+ ChooseVoice->insertItem(i18n("Passive"));
+}
+
+void KLatinVerbs::updateScores()
+{
+ // Update the score labels
+ Score1Label->setNum(m_totalCorrect);
+ Score2Label->setNum(m_total);
+
+ // Set percentage
+ PercentageLabel->setText(QString::number(int(double(m_totalCorrect) / m_total * 100))+QString("%"));
+}
+
+void KLatinVerbs::goBack()
+{
+ emit exited();
+ close();
+}
+
+#include "klatinverbs.moc"
diff --git a/klatin/klatin/klatinverbs.h b/klatin/klatin/klatinverbs.h
new file mode 100644
index 00000000..b389102e
--- /dev/null
+++ b/klatin/klatin/klatinverbs.h
@@ -0,0 +1,83 @@
+/***************************************************************************
+ begin : Fri Aug 15 2003
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef KLATINVERBS_H
+#define KLATINVERBS_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <vector>
+
+#include "keduvocdata.h"
+#include "klatinverbswidget.h"
+
+struct fileparts {
+ std::vector<QString> declension;
+ std::vector<const char*> mood;
+ std::vector<const char*> voice;
+};
+
+struct questionparts {
+ std::vector<const char*> person;
+ std::vector<const char*> number;
+ std::vector<const char*> tense;
+};
+
+/** @short Main class for testing verb forms */
+class KLatinVerbs : public KLatinVerbsWidget
+{
+ Q_OBJECT
+public:
+ KLatinVerbs(QWidget* parent=0, const char *name=0);
+ ~KLatinVerbs();
+
+ /// Load next question
+ void nextQuestion();
+ /// Update current scores
+ void updateScores();
+public slots:
+ /// Destroy the widget
+ void goBack();
+ /// Called when the combobox is clicked
+ /** @param itemNumber is the index of the item selected */
+ void conjugationActivated(int itemNumber);
+ /// Load the verb definitions database
+ void loadDatabase();
+ /// Check the user's input
+ void checkAnswer();
+signals:
+ /// Signal that is emitted when the widget wishes to terminate
+ void exited();
+ void statusMsg(const QString&);
+private:
+ /// These are structs containing information required to generate a question
+ struct fileparts verbparts;
+ struct questionparts question;
+ /// String array for the various verbs
+ QString m_verb[36];
+ QString m_currentVerb;
+ /// Number to reference the verb form given
+ int m_verbNumber;
+ /// Total number of wrong answers given
+ int m_numWrong;
+ /// Total number of answers given
+ int m_total;
+ /// Total number of correct answers given
+ int m_totalCorrect;
+};
+
+#endif // KLATINVERBS_H
diff --git a/klatin/klatin/klatinverbswidget.ui b/klatin/klatin/klatinverbswidget.ui
new file mode 100644
index 00000000..a00b72f0
--- /dev/null
+++ b/klatin/klatin/klatinverbswidget.ui
@@ -0,0 +1,426 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>KLatinVerbsWidget</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>KLatinVerbsWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>442</width>
+ <height>320</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>KLatin</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TitleVerbs</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>1</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>22</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Verbs Section</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout29</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KComboBox">
+ <property name="name">
+ <cstring>ChooseConjugation</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Choice of verb conjugation</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Conjugation of verb to be
+tested on</string>
+ </property>
+ </widget>
+ <widget class="KComboBox">
+ <property name="name">
+ <cstring>ChooseVoice</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>120</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Choice of verb voice</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Voice of verb to be
+tested on</string>
+ </property>
+ </widget>
+ <widget class="KComboBox">
+ <property name="name">
+ <cstring>ChooseMood</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Choice of verb mood</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Mood of verb to be
+tested on</string>
+ </property>
+ </widget>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>ChangeButton</cstring>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>25</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Apply</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Change test to new type</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>QuestionLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>17</pointsize>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <property name="text">
+ <string>Question Word
+Line 2
+Line 3
+Line 4</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>The question will appear here</string>
+ </property>
+ <property name="wordwrap" stdset="0">
+ </property>
+ </widget>
+ <widget class="QFrame">
+ <property name="name">
+ <cstring>Frame10</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout41_2</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>ScoreLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>19</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Score</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout40_2</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout39</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Score1Label</cstring>
+ </property>
+ <property name="text">
+ <string>0</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>SeparatorLabel</cstring>
+ </property>
+ <property name="text">
+ <string>/</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Score2Label</cstring>
+ </property>
+ <property name="text">
+ <string>0</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PercentageLabel</cstring>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Your test percentage so far</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout9</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AnswerLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Answer:</string>
+ </property>
+ </widget>
+ <widget class="KLineEdit">
+ <property name="name">
+ <cstring>AnswerBox</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enter your answer here</string>
+ </property>
+ </widget>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>OKButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Check your answer</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout29</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer20</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>297</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>BackButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Back</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Go back to the selection screen</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Return to selection screen</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<customwidgets>
+</customwidgets>
+<tabstops>
+ <tabstop>AnswerBox</tabstop>
+ <tabstop>OKButton</tabstop>
+ <tabstop>BackButton</tabstop>
+ <tabstop>ChooseConjugation</tabstop>
+ <tabstop>ChooseVoice</tabstop>
+ <tabstop>ChooseMood</tabstop>
+ <tabstop>ChangeButton</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>klineedit.h</includehint>
+</includehints>
+</UI>
diff --git a/klatin/klatin/klatinvocab.cpp b/klatin/klatin/klatinvocab.cpp
new file mode 100644
index 00000000..27c2481c
--- /dev/null
+++ b/klatin/klatin/klatinvocab.cpp
@@ -0,0 +1,398 @@
+/***************************************************************************
+ begin : Thu Jul 17
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qdir.h>
+#include <qlabel.h>
+#include <qlistview.h>
+
+#include <kapplication.h>
+#include <kcombobox.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpushbutton.h>
+#include <kstandarddirs.h>
+#include <kstdguiitem.h>
+
+#include <stdlib.h>
+#include <time.h>
+
+#include "klatinvocab.h"
+#include "settings.h"
+
+KLatinVocab::KLatinVocab(QWidget* parent, const char *name)
+ : KLatinVocabWidget(parent, name)
+{
+ BackButton->setIconSet(KGlobal::iconLoader()->loadIconSet("back", KIcon::Small));
+
+ m_vocabFile = QString::null;
+
+ // Goes back to the last dialog
+ connect(BackButton, SIGNAL(clicked()), this, SLOT(goBack()));
+
+ // Set default settings
+ m_numberOfQuestions = Settings::numOfQuestions();
+ m_total = 0;
+ m_totalCorrect = 0;
+ m_questionNumber = 0;
+ m_dialogShown = true;
+
+ // Parse the kvtml vocab file
+ parseVocab();
+
+ // Connect the multiple choice buttons to the various slots
+ connect(Answer1, SIGNAL(clicked()), this, SLOT(checkAnswerOne()));
+ connect(Answer2, SIGNAL(clicked()), this, SLOT(checkAnswerTwo()));
+ connect(Answer3, SIGNAL(clicked()), this, SLOT(checkAnswerThree()));
+ connect(Answer4, SIGNAL(clicked()), this, SLOT(checkAnswerFour()));
+}
+
+KLatinVocab::~KLatinVocab()
+{
+}
+
+void KLatinVocab::parseVocab(QString customFile)
+{
+ m_vocabFile = customFile;
+
+ m_texts.clear();
+
+ QString fileName;
+
+ // Load all the config variables
+ if (Settings::numOfQuestions() != 0) {
+ m_numberOfQuestions = Settings::numOfQuestions();
+ }
+
+ // Load default file as defined in settings
+ fileName = Settings::defaultFile();
+
+ kdDebug() << fileName << endl;
+
+ if (!customFile.isNull())
+ fileName = customFile;
+
+ // Check whether file exists or not
+ // If not then regenerate working default
+ if (QFile::exists(fileName) == FALSE) {
+ KConfigBase *globalConf = KGlobal::config();
+ globalConf->setGroup("Locale");
+
+ QString language = globalConf->readEntry("Language", "en");
+ language = language.left(2);
+
+ QString fileNameLang = locate("data", "klatin/data/vocabs/");
+ fileNameLang += language;
+
+ QDir checkLang(fileNameLang);
+
+ if (checkLang.exists() == FALSE) {
+ language = "en";
+ }
+
+ QDir vocabDirectory(fileNameLang, "*.kvtml");
+
+ QString defaultFile = (fileNameLang + "/" + vocabDirectory[0]);
+
+ if (QFile::exists(defaultFile) == FALSE) {
+ KMessageBox::error(this, i18n("Could not load vocabulary file; there is a problem with your KLatin installation."), i18n("Error with KLatin"));
+ kapp->quit();
+ } else {
+ fileName = defaultFile;
+ Settings::setDefaultFile(defaultFile);
+ }
+ }
+
+ // Load XML file into memory
+ KEduVocDataItemList vocabulary = KEduVocData::parse(fileName);
+
+ int it = 0;
+
+ // Start parsing file and allocating words to the QValueList<QStringPair>
+ for(KEduVocDataItemList::Iterator dataIt = vocabulary.begin(); dataIt != vocabulary.end(); ++dataIt) {
+ if (Settings::langToLatin()) {
+ m_texts.append(qMakePair(vocabulary[it].originalText(), vocabulary[it].translatedText()));
+ } else {
+ m_texts.append(qMakePair(vocabulary[it].translatedText(), vocabulary[it].originalText()));
+ }
+ it++;
+ }
+
+ // Number of words in the list
+ m_numberOfWords = it - 1;
+
+ // Create a random sequence to follow in the test
+ createRandomSequence();
+
+ // Ask a question
+ newQuestion();
+}
+
+void KLatinVocab::createRandomSequence()
+{
+ // Seed the random number generator
+ srandom(time(NULL));
+
+ // This works by assigning an array with 1, 2, 3, 4, 5 etc
+ // and then shuffling them into m_sequence.
+ // This sequence is then followed for testing purposes
+
+ // TODO Change implementation to use KRandomSequence
+
+ int i;
+ int randomSequence[256];
+ m_numberOfQuestions++;
+
+ for (i = 0; i < m_numberOfWords; i++) {
+ randomSequence[i] = i;
+ }
+
+ // Courtesy of Neil Stevens
+ for (i = 0; i < m_numberOfQuestions * 2; i++) {
+ const int x = i % m_numberOfWords;
+ const int y = x + (rand() % (m_numberOfWords - x));
+ const int swap = randomSequence[x];
+ randomSequence[x] = randomSequence[y];
+ randomSequence[y] = swap;
+ }
+
+ if (m_numberOfQuestions <= m_numberOfWords) {
+ for (i = 0; i < m_numberOfQuestions; i++) {
+ m_sequence[i] = randomSequence[i];
+ }
+ }
+
+ if (m_numberOfQuestions > m_numberOfWords) {
+ int j = 0;
+
+ for (i = 0; i < m_numberOfQuestions; i++) {
+ if (j < m_numberOfWords) {
+ m_sequence[i] = randomSequence[j];
+ j++;
+ }
+ if (j >= m_numberOfWords) {
+ j = 0;
+ }
+ }
+ }
+}
+
+void KLatinVocab::newQuestion()
+{
+ int randNum = 0;
+
+ // If we have already asked the number of questions required
+ // then show the results dialogue
+ if (m_questionNumber == (m_numberOfQuestions - 1)) {
+ resultsDialog();
+ return;
+ }
+
+ // Seed the random number generator
+ srandom(time(NULL));
+
+ // Grab number from random sequence
+ randNum = m_sequence[m_questionNumber];
+
+ QuestionLabel->setText(m_texts[randNum].first);
+ m_previousQuestion += QuestionLabel->text();
+
+ // Initialise a couple of temporary variables
+ int i = 0, j = 0, tempRand[4];
+ bool override = FALSE;
+
+ // Assign m_choiceWords with the 4 words
+ // to go into the multiple choice. Make sure
+ // none of them are the same.
+ while (i < 4) {
+ tempRand[i] = (random() % (m_numberOfWords - 1)) + 1;
+ if (i > 0) {
+ j = 0;
+ while (j < i) {
+ if (tempRand[j] == tempRand[i]) {
+ tempRand[i] = (random() % (m_numberOfWords - 1)) + 1;
+ } else
+ j++;
+ }
+ }
+ i++;
+ }
+
+ // Assign the four words to m_choiceWords.
+ if (m_choiceWords.count() == 0) {
+ for (i = 0; i < 4; i++)
+ m_choiceWords += m_texts[tempRand[i]].second;
+ m_choiceWords += m_texts[randNum].second;
+ } else {
+ for (i = 0; i < 4; i++)
+ m_choiceWords[i] = m_texts[tempRand[i]].second;
+ m_choiceWords[4] = m_texts[randNum].second;
+ }
+
+ // Make sure the actual answer isn't already in m_choiceWords
+ // If it is, set override to be TRUE
+ for (i = 0; i < 4; i++) {
+ if (m_choiceWords[4] == m_choiceWords[i]) {
+ m_lastAnswerNumber = i;
+ override = TRUE;
+ }
+ }
+
+ bool exitLoop = FALSE;
+
+ // Override a random variable with the correct
+ // answer
+ if (!override) {
+ int answerNumber = (random() % 3);
+ while (!exitLoop) {
+ if (answerNumber != m_lastAnswerNumber) {
+ m_choiceWords[answerNumber] = m_texts[randNum].second;
+ m_lastAnswerNumber = answerNumber;
+ exitLoop = TRUE;
+ } else {
+ answerNumber = (random() % 3);
+ }
+ }
+ }
+
+ // Add the correct answer to the list (for use
+ // when the results dialogue is called)
+ m_correctAnswer += m_choiceWords[4];
+
+ // The four values that will go into the four
+ // Option boxes.
+ Answer1->setText(m_choiceWords[0]);
+ Answer2->setText(m_choiceWords[1]);
+ Answer3->setText(m_choiceWords[2]);
+ Answer4->setText(m_choiceWords[3]);
+
+ // We have now asked another question so iterate this int.
+ m_questionNumber++;
+}
+
+// Slots
+
+void KLatinVocab::goBack()
+{
+ // If the dialogue isn't already shown then show it
+ if (!m_dialogShown)
+ resultsDialog();
+
+ emit exited();
+ close();
+}
+
+// Slots for each of the multiple choice buttons
+
+void KLatinVocab::checkAnswer(int button)
+{
+ m_dialogShown = false;
+
+ if (m_choiceWords[button] == m_choiceWords[4]) {
+ // Update the total answered correctly
+ m_totalCorrect++;
+ }
+ // Update the total questions faced
+ m_total++;
+
+ m_previousAnswer += m_choiceWords[button];
+ updateScores();
+ // Setup a new question
+ newQuestion();
+}
+
+// TODO Use one slot and check the sender() instead
+void KLatinVocab::checkAnswerOne()
+{
+ checkAnswer(0);
+}
+
+void KLatinVocab::checkAnswerTwo()
+{
+ checkAnswer(1);
+}
+
+void KLatinVocab::checkAnswerThree()
+{
+ checkAnswer(2);
+}
+
+void KLatinVocab::checkAnswerFour()
+{
+ checkAnswer(3);
+}
+
+void KLatinVocab::updateScores()
+{
+ // Update the score labels
+ Score1Label->setNum(m_totalCorrect);
+ Score2Label->setNum(m_total);
+
+ // Set percentage
+ PercentageLabel->setText(QString::number(int(double(m_totalCorrect) / m_total * 100))+QString("%"));
+}
+
+void KLatinVocab::resultsDialog()
+{
+ // Show the results dialog
+
+ results = new KLatinResultsDialog(this, 0, TRUE);
+ results->CloseButton->setGuiItem(KStdGuiItem::close());
+
+ int temp = Score2Label->text().toInt();
+
+ // Set the lists
+ for (int i = 0 ; i < temp; i++) {
+ if (m_previousAnswer[i] != 0)
+ new QListViewItem(results->ResultsView, m_previousQuestion[i], m_previousAnswer[i], m_correctAnswer[i]);
+ }
+
+ // Set the scores
+ results->PercentageValue->setText(PercentageLabel->text());
+ results->AttemptedValue->setText(Score2Label->text());
+
+ results->show();
+ results->resize(QSize(420, 280));
+
+ // Set some variables.
+ m_dialogShown = true;
+
+ changeVocab(Settings::defaultFile());
+}
+
+void KLatinVocab::changeVocab(const QString &filename)
+{
+ // Reset to defaults
+ m_total = 0;
+ m_totalCorrect = 0;
+ m_questionNumber = 0;
+ m_numberOfQuestions = Settings::numOfQuestions();
+
+ // Reset the StringLists as we are now on a new testing session
+ m_correctAnswer.clear();
+ m_previousAnswer.clear();
+ m_previousQuestion.clear();
+
+ // Reset score labels
+ Score1Label->setNum(m_totalCorrect);
+ Score2Label->setNum(m_total);
+ PercentageLabel->setText(0);
+
+ // Load the vocabulary file again (and thus create a new random sequence)
+ parseVocab(filename);
+}
+
+
+#include "klatinvocab.moc"
diff --git a/klatin/klatin/klatinvocab.h b/klatin/klatin/klatinvocab.h
new file mode 100644
index 00000000..c33081df
--- /dev/null
+++ b/klatin/klatin/klatinvocab.h
@@ -0,0 +1,110 @@
+/***************************************************************************
+ begin : Thu Jul 17
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef KLATINVOCAB_H
+#define KLATINVOCAB_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <qdir.h>
+#include <qpair.h>
+
+#include "keduvocdata.h"
+#include "klatinresultsdialog.h"
+#include "klatinvocabwidget.h"
+
+class KLatinVocab : public KLatinVocabWidget
+{
+ Q_OBJECT
+public:
+ KLatinVocab(QWidget* parent=0, const char *name=0);
+ ~KLatinVocab();
+
+ /// Load vocabulary from file @p customFile
+ void parseVocab(QString customFile = QString::null);
+ /// Generate a new question
+ void newQuestion();
+ /// Update the scores of the test so far
+ void updateScores();
+ /// Show the results dialog
+ void resultsDialog();
+ /// Shuffle the words into a random sequence
+ void createRandomSequence();
+ /// Check the answer given (forwarded to from checkAnswer*)
+ void checkAnswer(int button);
+private slots:
+ /// Destory the widget
+ void goBack();
+ /// Check if answer is correct if button 1 is pressed
+ void checkAnswerOne();
+ /// Check if answer is correct if button 2 is pressed
+ void checkAnswerTwo();
+ /// Check if answer is correct if button 3 is pressed
+ void checkAnswerThree();
+ /// Check if answer is correct if button 4 is pressed
+ void checkAnswerFour();
+public slots:
+ /// Load a different vocabulary file in the standard install
+ void changeVocab(const QString &filename);
+signals:
+ /// Emitted when goBack() is called
+ void exited();
+private:
+ /// The list in which the native language and Latin words are assigned
+ typedef QPair<QString, QString> QStringPair;
+ QValueList<QStringPair> m_texts;
+
+ QString m_fileDir;
+ /// The filename of the vocabulary file being tested on
+ QString m_vocabFile;
+ /// A list of the 4 words used for assigning to the 4 multiple choice buttons
+ QStringList m_choiceWords;
+ /// The previous question's answer
+ QStringList m_correctAnswer;
+ /// The user's answer to the previous question
+ QStringList m_previousAnswer;
+ /// The previous question asked
+ QStringList m_previousQuestion;
+
+ QDir m_vocabDirectory;
+
+ /// The question number in this session
+ int m_questionNumber;
+ /// The number of questions to ask (defined in Settings)
+ int m_numberOfQuestions;
+ /// The number of words in the vocabulary list
+ int m_numberOfWords;
+
+ /// The button on which the last correct answer was assigned
+ int m_lastAnswerNumber;
+
+ /// Determines whether the results dialog is currently shown or not
+ bool m_dialogShown;
+ /// Total number of questions answered correctly
+ int m_totalCorrect;
+ /// Total number of questions answered
+ int m_total;
+
+ /// Array to assign random sequence of words to
+ int m_sequence[256];
+
+ KLatinResultsDialog *results;
+
+};
+
+#endif // KLATINVOCAB_H
diff --git a/klatin/klatin/klatinvocabwidget.ui b/klatin/klatin/klatinvocabwidget.ui
new file mode 100644
index 00000000..db6ad834
--- /dev/null
+++ b/klatin/klatin/klatinvocabwidget.ui
@@ -0,0 +1,392 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KLatinVocabWidget</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>KLatinVocabWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>582</width>
+ <height>376</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>KLatin</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TitleLabel</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>500</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>22</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Vocabulary Section</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout52</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>QuestionLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>17</pointsize>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <property name="text">
+ <string>Question Word</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>The question word will appear here</string>
+ </property>
+ </widget>
+ <widget class="QFrame">
+ <property name="name">
+ <cstring>Frame10</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Your current score</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Your score appears on this display. Number of correct answers/total number of answers.</string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout41</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>ScoreLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>19</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Score</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout40</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout39</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Score1Label</cstring>
+ </property>
+ <property name="text">
+ <string>0</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Separator</cstring>
+ </property>
+ <property name="text">
+ <string>/</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Score2Label</cstring>
+ </property>
+ <property name="text">
+ <string>0</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PercentageLabel</cstring>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Your test percentage so far</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout53</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>Answer1</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Answer 1</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Click this if you think it is the right answer.</string>
+ </property>
+ </widget>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>Answer2</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Answer 2</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Click this if you think it is the right answer.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout64</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>Answer3</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Answer 3</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Click this if you think it is the right answer.</string>
+ </property>
+ </widget>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>Answer4</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Answer 4</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Click this if you think it is the right answer.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout18</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer405</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>326</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KPushButton">
+ <property name="name">
+ <cstring>BackButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Back</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Go back to the selection screen</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Return to the selection screen</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<tabstops>
+ <tabstop>Answer1</tabstop>
+ <tabstop>Answer2</tabstop>
+ <tabstop>Answer3</tabstop>
+ <tabstop>Answer4</tabstop>
+ <tabstop>BackButton</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>
diff --git a/klatin/klatin/main.cpp b/klatin/klatin/main.cpp
new file mode 100644
index 00000000..8de40ff0
--- /dev/null
+++ b/klatin/klatin/main.cpp
@@ -0,0 +1,62 @@
+/***************************************************************************
+ begin : Tue Dec 18 17:47:22 GMT 2001
+ copyright : (C) 2001-2004 by George Wright
+ email : gwright@kde.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+
+#include "klatin.h"
+
+static const char description[] =
+ I18N_NOOP("KLatin - a program to help revise Latin");
+// INSERT A DESCRIPTION FOR YOUR APPLICATION HERE
+
+
+static KCmdLineOptions options[] =
+{
+ KCmdLineLastOption
+};
+
+int main(int argc, char *argv[])
+{
+
+ KAboutData aboutData( "klatin", I18N_NOOP("KLatin"),
+ "0.9", description, KAboutData::License_GPL,
+ "(C) 2001-2004, George Wright", 0, "http://edu.kde.org/klatin", "submit@bugs.kde.org");
+
+ aboutData.addAuthor("George Wright",I18N_NOOP("Author and Maintainer"), "gwright@kde.org");
+ aboutData.addCredit("Anne-Marie Mahfouf",I18N_NOOP("Bug fixes, documentation"), "annma@kde.org");
+ aboutData.addCredit("Neil Stevens",I18N_NOOP("Vocabulary shuffling code"), "neil@hakubi.us");
+
+ aboutData.addCredit("Danny Allen",I18N_NOOP("SVG icon"), "danny@dannyallen.co.uk");
+ aboutData.addCredit("Pino Toscano",I18N_NOOP("Bug fixes and code improvement, Italian Vocabulary Data Translation"), "toscano.pino@tiscali.it");
+ aboutData.addCredit("Mikolaj Machowski",I18N_NOOP("Polish Vocabulary Data Translation"), "mikmach@wp.pl");
+
+ KCmdLineArgs::init( argc, argv, &aboutData );
+ KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
+
+ KApplication a;
+
+ KLatin *klatin = new KLatin();
+
+ if (a.isRestored()) {
+ RESTORE(KLatin);
+ } else {
+ a.setMainWidget(klatin);
+ klatin->show();
+ }
+
+ return a.exec();
+}
diff --git a/klatin/klatin/settings.kcfgc b/klatin/klatin/settings.kcfgc
new file mode 100644
index 00000000..f9475d28
--- /dev/null
+++ b/klatin/klatin/settings.kcfgc
@@ -0,0 +1,5 @@
+File=klatin.kcfg
+ClassName=Settings
+IncludeFiles=kstandarddirs.h,qdir.h,klocale.h,kdebug.h
+Singleton=true
+Mutators=true \ No newline at end of file