Projects/Summer of Code/2007/Projects/KAider

From KDE TechBase
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

See KAider/Introduction

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

Ideas

Further work:

  • Research on dividing into sentences rules (e.g. srx)

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 windows package

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>