Projects/Summer of Code/2007/Projects/KAider

    From KDE TechBase

    WARNING KAider was renamed to Lokalize and will be included in kdesdk package for KDE 4.1

    Lokalize is a computer-aided translation system that focuses on productivity and performance. Translator does only creative work (of delivering message in his/her mother language in laconic and easy to understand form). Lokalize implies paragraph-by-paragraph translation approach (when translating documentation) and message-by-message approach (when translating GUI). See KAider/Introduction

    Current state

    Already has:

    • syntax highlighting
    • spellcheck (sonnet needs improvement)
    • search-n-replace, ignoring accel marks
    • formats .po file output better so less diff is generated by scripty
    • small features like quick tag insert, placing text cursor right after the tag in the beginning (e.g. '<qt>|foobar</qt>' where "|" is a cursor), entry bookmarks
    • viewer of the difference between current msgid and previous one (i.e. msgid translation of which current msgstr really is -- for fuzzies generated with --previous gettext option)
    • merge mode for editors (QA) or when several translators work on the same file screenshot
    • basic projectmanager functionality screenshot
    • Translation Memory (threaded) with shortcuts for inserting suggestions into current 'msgstr', scores are computed based on common/total length ratio, removed+added length, and count of removed+added parts screenshot
    • for difference representation in all places word-by-word algorithm is used (based on the Longest Common Sequence o(n*n) algorithm and my own experience)
    • glossary with basic tbx format support. Lokalize displays relevant entries on-the-fly and provides shortcuts to insert them. also, you can add new glossary terms via context menu of the glossary. screenshot 1 screenshot 2
    • Search/Replace functions in multiple files at once.
    • Spellchecking of multiple files at once.
    • beginnings of XLIFF support


    After you set kde env up (compiling kdelibs+kdebase is enough):

    svn checkout -N svn://
    cd kdesdk && svn up cmake doc lokalize
    mkdir kdesdk/build && chmod a+w kdesdk/build
    su kde-devel
    cd kdesdk/build
    cmakekde ..

    as a root, run sshd and then from the usual shell:

    ssh -XC kde-devel@localhost

    you can get catalogmanager by specifying --project option

    lokalize --project /path/to/index.ktp

    See Projects/Summer_of_Code/2007/Projects/KAider#Setup.

    Debian users

    You can install the latest version of lokalize from experimental repository: [1]


    • Create project, saving *.ktp file to l10n-kde4/<LangCode>/ dir
    • Populate Glossary via GlossaryView context menu (.tbx file will be created automatically for you on the first entry addition).
    • Populate Translation Memory by dropping .po files onto TM View

    See [2] for an example project structure


    • Majority of actions must be accessible via keyboard (because it is faster to press a shotcut than to be frustrated with a mouse)
    • Do automatization _everywhere_ possible
    • Focus on translation quality. This is open source -- so source code is available (for change)

    Further work

    • WebQuery for twin languages (like Ukrainian and Russian)
    • xliff+qt-linguist support (see KBabel features to be implemented)
    • Glossary checklists: check for forbidden terms in new translation
    • project-wise and program-wise: webquery scripts, glossaries, TMs
    • check for different translations of the same msgid (use strigi?)
    • back-checking, to see whether a term/string in the target language has been used as translation for different things, not just that one source has the same translation everywhere.
    • Tighten SVN support: svn diff-like feature
    • Automatic Glossary building
    • Research on dividing into sentences rules (e.g. srx)
    • Automate submitting translation suggestions to [Kross action]
    • fill TM with content of /usr/share/locale/<lang>/LC_MESSAGES/*.mo [Kross action]

    Not for KDE:

    • Be complete computer-aided translation system by providing e.g. actions to import+export openoffice, txt and documents of other formats by calling appropriate scripts/commands. Define for that general kross actions interface.
    • Make nice windoze package for the windowzerz

    Competitors (ideas):

    Converters (use, acting as a front-end):

    KBabel features to be implemented a smarter way :)

    • persistent bookmarks for messages in a file saved in the project
    • extended marking of .po and .pot files (e.g. translator that currently works on the file and cince when) saved in the project
    • A plugin framework for validation tools for consistency checks [Kross action triggered on saving]
    • Sending the file using email [Kross (project) action]
    • Automatic syntax check with msgfmt when saving and, if an error occured, easy navigation to messages, which contain errors. == Syntax check (msgfmt --statistics) for existing files to control if the translated files will compile and, accordingly, work when distributed [Kross (project) action]
    • PO File Header change [Kross action (+triggered on saving)]
    • Printing of selected messages (eg fuzzy ) [Kross action]


    • msgid-diff-msgstr from [4] (features for all other commands are already implemented, if you haven't noticed this)

    KBabel features NOT to be implemented

    • Character selection tool integration, sort by the frequency

    Why? Better improve system-wide charselect tool, OR... modify your xorg keyboard layout!