[Kbabel] Google Summer of Code: Implement support for OASIS XLIFF 1.1 in KBabel

Asgeir Frimannsson asgeirf at gmail.com
Wed Jun 29 02:10:06 CEST 2005


Hi folks,

I've been accepted for the Google Summer of Code program, and will be
working heavily on KBabel over the next two months... ..So I thought
I'd start off by introducing the project :) See below for my proposal.

KBabel currently has some support for QT TS files and XLIFF, but the
underlaying datamodel is very strongly built around the PO format. In
order to support a rich format such as XLIFF we need to refactor the
data model (KBabel::Catalog).

Now, changing a data model for an application is never trivial, and
I've only got 2 months to do the initial work. To make it doable, I
would like to limit the scope of the project to the Kbabel Editor, and
exclude Catalog Manager support and KBabelDict.

I would like, if feasible, to do the development in a QT4 environment,
so I'll spend a few days now first trying to port it to QT4. If that
works, I'll branch it from there and start working on implementing
XLIFF support. If however the porting is too complicated (I'm not
*that* familiar with QT yet..) I'll go with QT3..

Any thoughts or help (KDE4 porting anyone?) on the above issues would
be greatly appreciated!

I'll be on freenode's #kde-soc as well as #kde-devel

cheers,
asgeir

---------- Forwarded message ----------
From: Asgeir Frimannsson <asgeirf at gmail.com>
Date: Sat, 4 Jun 2005 22:08:24 +1000
Subject: Bounty proposal: Implement support for OASIS XLIFF 1.1 in KBabel
To: bounties at kde.org
Cc: visnovsky at kde.org

Hello KDE folks,

As I'm graduating mid-July, I have a bounty proposal I would like to take on 
for the Google Summer of Code. I propose KBabel maintainer Stanislav 
Visnovsky (cc'd) as a mentor.

[Name and Email]
Asgeir Frimannsson <asgeirf at gmail.com>

[About Me]
I'm 24 years old, Norwegian, but have been living in Brisbane Australia the 
last 4 years. Currently completing Bachelor of Information Technology 
(Honours) at Queensland University of Technology, graduating mid-July. In my 
final year I've been receiving a scholarship from Red Hat for working on a 
thesis entitled 'Adopting Standards Based XML File Formats in Open Source 
Localisation'. In this research I've been looking at current localisation 
practices in open source, and identified ways of improving the localisation 
process through adopting industry standards such as the XML Localisation 
File Format (XLIFF), the TermBase eXchange (TBX) file format, the 
Translation Memory eXchange (TMX) file format and Translation Web Services. 
I'm hoping to continue this research as a Ph.d. student starting later this 
year. 
I have previous experience in open source through maintaining the XLIFF 
Tools project [http://xliff-tools.freedesktop.org/] as part of my honours 
project, and have previously also submitted patches and worked on KBabel and 
GNU Gettext (KDE svn account name 'asgeir').

[Project Title] 
Implement support for OASIS XLIFF 1.1 in KBabel

[Synopsis]
Localisation of open source (including KDE and Gnome) is in a majority of 
projects handled by the GNU Gettext library and the associated PO file 
format. The PO file format is a simple string table used by translators to 
translate the English sources to their native language. Several tools exists 
for editing PO files, and the most used (and most advanced) of these is 
KDE's KBabel. 
In recent years, industry standards have been developed in the area of 
software localisation, including the OASIS XLIFF file format for storage and 
exchange of localisable resources in the localisation process. The 
philosophy behind XLIFF is to extract resources from native formats into a 
common standard localisation format (XLIFF), and merge the translated 
resources back into the native format when translation is complete. Filters 
and specifications for converting to and from XLIFF have been developed for 
a number of file types, including PO, HTML and DocBook. KBabel has very 
limited support for XLIFF, and this project aims to implement support for 
many of the rich features of XLIFF, including abstraction of inline codes, 
viewing/approval of translation suggestions, viewing of context information 
and the ability for translators to attach notes to translations. 

[Goals]
 1) Contribute to making KBabel the best open source XLIFF localisation tool
2) Expand KBabel's user base by implementing support for localisation 
industry standard file formats.

By implementing support for the industry standard XLIFF format in KBabel, 
the KDE project will have a fully fledged native XLIFF localisation tool. As 
we move towards and beyond KDE 4, we then have a stronger argument for 
considering adopting XLIFF in KDE's localisation process, with its inherent 
benefits:
- Better handling of context information (by not including context as part 
of the source string)
- Abstraction of inline codes such as XML tags and parameters
- Identification and tagging of terms (better terminology management)
- Easy adoption of new formats in the localisation process (all you need is 
a filter to/from xliff)
- Inclusion of translation suggestions (possibility of future server based 
translation memory)
- Allow translators / developers to add comments to translations. 
- Better change tracking (tracking of who translated what)
- All the benefits of XML based processing

[Project Details]
The XLIFF file format is a very rich super-set of the PO format, and hence, 
some of the underlying data model in KBabel may change in the process, 
allowing support for features such as context info, translation suggestions, 
hierarchical data structures, inline codes, sub-segmentation, translator 
comments and other meta-data. The first step of this process will be (if not 
already done when starting) to port KBabel to QT4 (need some help here). 
After the initial porting to QT4, XLIFF features can be added incrementally, 
starting with the most important ones:
- Honouring common attributes (such as fuzzy handling, translate yes/no)
- Abstraction of inline codes (with some visual elements representing tags)
- Display of context information
- View / Add notes
- view / approve translation suggestions
- Workflow meta-data such as 'phase' information
I realize that there is also a looming usability issue here, as KBabel is 
becoming more and more bloated with features, some serious evaluation is 
also needed in considering how to best implement the rich features of XLIFF 
in a way that's user friendly to translators. 

[Project Schedule]
June 24: Project Start (I finish exams June 23)
June 24- July 10: Discuss requirements / Design & port to QT4
July 10 - Sept 1: Incrementally implements XLIFF features in KBabel
Sept 1: Project deadline

[Motivation]
My main motivation is to make the localisation process more user friendly so 
that more potential translators can contribute. I see XLIFF as the long term 
solution to many of the challenges facing open source localisation, and the 
format provides a way of standardizing the localisation processes across 
open source projects.
I am also a big KDE-fan, and would like to get more hands-on experience in 
KDE/QT/C++ development - I want to contribute, and not just observe :)

That's about it. Let me know if you are interested in this :)

cheers,
asgeir


More information about the kbabel mailing list