Projects/Summer of Code/2007/Projects/KAider: Difference between revisions

    From KDE TechBase
    No edit summary
    Line 1: Line 1:
    KAider is a computer-aided system that focuses on productivity.
    See [[Projects/Summer_of_Code/2007/Projects/KAider/Introduction|KAider/Introduction]]
    See [[Projects/Summer_of_Code/2007/Projects/KAider/Introduction|KAider/Introduction]]


    ==Current state==
    ==Current state==

    Revision as of 13:44, 12 July 2007

    KAider is a computer-aided system that focuses on productivity. See KAider/Introduction

    Current state

    Already has:

    • syntax highlighting
    • spellcheck (problems with dividing filter:doesnt check the last word)
    • search-n-replace, ignoring accel marks
    • 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
    • glossary with basic tbx format support. KAider 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

    Compiling

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

    cd trunk
    svn up playground/devtools/kaider
    su kde-devel
    mkdir playground/devtools/kaider/build
    cd playground/devtools/kaider/build
    cmakekde ..
    

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

    ssh -XC kde-devel@localhost
    kaider
    

    Roadmap

    • [basic framework DONE] project management -- 1-2 weeks
    • [DONE] context glossary -- 0.5-1 week
    • translation DB (QtSql) -- 2 weeks
    • [DONE] mode for merging translations for editors (QA) -- 1 week
    • scripting API + sipping on google translate for live glossary (kross) - 2 weeks
    • the remaining time is for perfection/polishing/small improvements and xliff+qt-linguist support

    What i'm doing these days

    • kross WebQuery framework - testing, final refinements
    • impovements on ProjectView (dbus, etc), Glossary

    Ideas

    Current:

    • Webquery scripts for close languages;
    • project-wise and program-wise: webquery scripts, glossaries, TMs

    Further work:

    • Research on dividing into sentences rules (e.g. srx)
    • Automate submitting translation suggestions to translate.google.com [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

    KBabel features to be implemented

    ...in the smarter way :). After or during the summer.

    • Character selection tool integration (kdelibs rule); sort by the frequency
    • 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
    • Search/Replace functions in multiple files at once.
    • Spellchecking of multiple files at once.
    • Opening source code by references in message comments [Kross action]
    • 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]
    • CVS and SVN support [Kross project action] (is 'svn ci' so hard?)
    • Automatic comparisons and statistics of POT and PO files for a quick overview which and how many files are translated (or not) and which files may be obsolete + [Kross (project) action] that merges translations with updated template
    • PO File Header change [Kross action (+triggered on saving)]
    • Printing of selected messages (eg fuzzy ) [Kross action]

    Setup

    • Create project, saving *.ktp file to l10n-kde4/<LangCode>
    • Create in the same dir file called terms.tbx, and fill it with initial contents:

    Glossary

    This is how a TBX glossary looks like:

       <?xml version="1.0" encoding="UTF-8"?>
       <!DOCTYPE martif PUBLIC "ISO 12200:1999A//DTD MARTIF core (DXFcdV04)//EN" "TBXcdv04.dtd">
       
       <martif type="TBX" xml:lang="en">
           <martifHeader>
               <fileDesc>
                   <titleStmt>
                       <title>KDE Russian Team Glossary</title>
                   </titleStmt>
               </fileDesc>
           </martifHeader>
           <text>
               <body>
                   <termEntry id="1">
                       <descrip type="subjectField">Security</descrip>
                       <descrip type="relatedConcept">authorization</descrip>
                       <langSet xml:lang="en">
                           <ntig>
                               <termGrp>
                                   <term>authentication</term>
                                   <termNote type="partOfSpeech">noun</termNote>
                               </termGrp>
                               <descrip type="context">.</descrip>
                           </ntig>
                       </langSet>
                       <langSet xml:lang="ru">
                           <ntig>
                               <termGrp>
                                   <term>идентификация</term>
                                   <termNote type="partOfSpeech">сущ.</termNote>
                               </termGrp>
                           </ntig>
                       </langSet>
                       <langSet xml:lang="ru">
                           <ntig>
                               <termGrp>
                                   <term>подтверждение подлинности</term>
                                   <termNote type="partOfSpeech">сущ.</termNote>
                               </termGrp>
                           </ntig>
                       </langSet>
                   </termEntry>
                   <termEntry id="2">
                       <descrip type="subjectField">Security</descrip>
                       <descrip type="relatedConcept">authentication</descrip>
                       <langSet xml:lang="en">
                           <ntig>
                               <termGrp>
                                   <term>authorization</term>
                                   <termNote type="partOfSpeech">noun</termNote>
                               </termGrp>
                               <descrip type="context"></descrip>
                           </ntig>
                       </langSet>
                       <langSet xml:lang="ru">
                           <ntig>
                               <termGrp>
                                   <term>определение прав</term>
                                   <termNote type="partOfSpeech">сущ.</termNote>
                               </termGrp>
                           </ntig>
                       </langSet>
                   </termEntry>
               </body>
           </text>
       </martif>