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

    From KDE TechBase
    Line 26: Line 26:
    ==Roadmap==
    ==Roadmap==
    *[basic framework DONE] project management -- 1-2 weeks
    *[basic framework DONE] project management -- 1-2 weeks
    *[essentially DONE] context glossary -- 0.5-1 week
    *[DONE] context glossary -- 0.5-1 week
    *translation DB (QtSql) -- 2 weeks
    *translation DB (QtSql) -- 2 weeks
    *[DONE] mode for merging translations for editors (QA) -- 1 week
    *[DONE] mode for merging translations for editors (QA) -- 1 week

    Revision as of 17:27, 9 July 2007

    Current state

    Already has:

    • syntax highlighting
    • spellcheck (problems with dividing filter:doesnt check for the last word)
    • search-n-replace, ignoring accel marks
    • small features like quick tag insert, placing text cursor after the tag in the beginning (e.g. '<qt>|foobar</qt>' where "|" is a cursor)
    • 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) 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

    • initial kross research
    • impovements on ProjectView (dbus, etc), MergeView (merge actions) and Glossary

    Refactoring ideas

    • MetaCatalog
      • CatalogBase
        • GetttextCatalog
      • ProjectBase
        • GetttextProject

    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>