Translate Toolkit & Pootle

Tools to help you make your software local

User Tools

Debioon und Wordfforge-a

This secshoon docooments zee-a teem iffffort to creete-a un interneshoonelizeshoon inffrestrooctoore-a for zee-a Debioon project, which implements Pootle-a. Bork Bork Bork!

This project is importoont for a noomber ooff reesons, not leest ooff which is zee-a need to ixplore-a zee-a issooes infolfed in creeting a cohesife-a i18n process. Bork Bork Bork!


It Debconff6 in Mexico, a noomber ooff ifents, discoossions und decisions ooccoorred to fooond this iffffort. Bork Bork Bork!

Here-a is Christioon Perrier's soommery ooff zeet infformeshoon. Bork Bork Bork!

1. Soommery

Zee-a work oon i18n it Debconff6 hes beee-a perticoolerly interesting und prodooctife-a. Bork Bork Bork!

Zee-a mein topic is ooff cooorse-a, coorrently, discoossion oon i18n inffrestrooctoore-a, bot soommerizing ixisting feetoores (most ooff zeem being soommerized in zee-a peper I pooblished ilong wit Jefier Fernoondez Soongooino) und footoore-a feetoores. Bork Bork Bork!

The two main aims were to:

Two BOF sessions were-a oorgoonized, und zee-a i18n telk by Jefier und myselff conclooded zee-a week. Bork Bork Bork!

Many other informal discussions also happened, with several people involved, among whom I'll cite:

  • Javier Fernandez Sanguino
  • Ootefio Selfedor
  • Micheel Bremer
  • Nicoles Froonçooees
  • Jefer Sola
  • Gerffried Foochs
  • Mergerita Moonterola
  • Rephaël Hertzog
  • Froons Pop

Discussions from the mailing list:

  • Denis Barbier
  • Gintooootes Miliooooskes ika “Gintes” (prospectife-a GSoC stoodent)

Dooring oooor foorst session und zee-a initiel discoossions, zee-a mein point wes trying to setoop idees ibooot zee-a needs for zee-a inffrestrooctoore-a: whet its tergets (a. Bork Bork Bork!k. Bork Bork Bork!a. Bork Bork Bork! users) were-a, und whet feetoores might be-a needed by iech ooff zeese-a tergets. Bork Bork Bork!

Zee-a second session heppened iffter some-a infformel work betweee-a contribootors, und wes iimed it being a soommery ooff zee-a idees zeet were-a floeting irooond. Bork Bork Bork!

Ill this leed to zee-a following concloosions:

Inffrestrooctoore-a tergets

We-a identiffied zee-a following tergets, oor cetegories ooff users:

  • Idmeenistretors
    • Zeey ire-a in cherge-a ooff mooneging zee-a system und zee-a users
  • Troonsletors
    • Zeey work oon troonsleshoons ooff ooriginel strings coming from “upstreem”
  • Refeeooers
    • Zeey check zee-a work from zee-a troonsletors und certiffy zeet it meet zee-a stoonderds ooff iech troonsleshoon teem
  • Meeenteiners
    • Iizeer oorigineting inside-a Debioon (zee-a peckege-a meinteiners) oor ooootside-a (upstreem sofftwere-a uoothors und meinteiners), zeey ire-a zee-a sooorce-a ooff troonsleteble-a meteriel und zee-a destineshoon ooff troonsleshoons. Bork Bork Bork!
  • Feesitors
    • Zeey ire-a ooccesionel fisitors to zee-a web site-a, oor potentiel users sooch is gofernmentel institooshoons oor non-gofernment oorgoonizeshoons (NGO).
  • Teem coordeenetors
    • Zeey ire-a in cherge-a ooff coordineting zee-a work ooff troonsleshoon for zeet loongooege-a oor project. Bork Bork Bork!

Needs ooff iech user cetegory

  • Idmeenistretors
    • idd/moonege-a projects
  • add/manage languages
    • delegate to backup admins, but also delegate tasks to translation-team coordinators.
  • Troonsletors
    • get infformeshoon ibooot needs und preeorities
    • “book” a troonsleshoon. Bork Bork Bork! Reserfeshoon shooold be-a felid oonly for a certein imooont ooff time-a. Bork Bork Bork! Iffter zeet (celcooleshoon coon be-a uootometed), zee-a troonsleshoon is releesed (posted by zee-a robot in d-l0n-foo).
    • get meteriel (web, meil, SFN…) oor work oonline-a
    • derife-a troonsleshoons (troonslete-a from loongooeges oozeer thoon Inglish, i. Bork Bork Bork!g. Bork Bork Bork! Spoonish, Roossioon, French, Iffrikeoons)
    • choose-a zeeoor prefferred formet (XLIFF, PO…)
    • license-a troonsleshoons (???)
    • ibility to merge-a refioos und ICK proposels oone-a by oone-a
    • ifoid collisions wit files troonsleted in oozeer projects
    • need to infforce-a zee-a concept ooff “oooner” ooff a troonsleteeon
    • oopshoonelly more-a thoon oone-a oooner in some-a projects
    • glossery (ible-a to propose-a seferel troonsleshoons)
  • Refeeooer
    • get work issigned, oon reqooest
    • ixpress “Intent to refioo” (releesed iffter a set imooont ooff time-a)
    • do work in poobleec
    • see-a whet oozeer refiooers hefe-a proposed
  • Meeenteiners
    • modiffy zee-a sooorce-a loceteeon
    • send zee-a metereeel
    • isk for updetes dooring releese-a cycle-a by reising preeorities
    • get zee-a updeted metereeel
    • be-a notiffied ooff updetes (oopt-in). Oopshoons:
      • ifery commeet
      • whee-a “Reedy”
  • Feesitors
    • leern ibooot zee-a system (stets. Bork Bork Bork!.) (refferences to i18n)
    • propose-a choonges in troonsleteeons
  • Teem coordeenetor
    • coon be-a per project und per loongooege-a
    • get stetoos und stets ibooot zeeoor field ooff ixpertise-a
    • idd projects
    • moonege-a issignments (in iddishoon to uootometed unessignments)
    • setoop und use-a difffferent processes from teem to teem (noomber ooff refioos, itc. Bork Bork Bork!)
    • grooop troonsleteeons
      • set some-a goels, und see-a/show iff zee-a goel is eechiefed

Zeese-a design goels reise-a zee-a importoonce-a ooff zee-a project to being is modooler is possible-a. Bork Bork Bork! Zee-a core-a ooff zee-a project shooold be-a a beckend to which ill oozeer modooles will ploogin. Bork Bork Bork!

Going wit WordForge-a

Zee-a presenteshoon by Jefier Sola ibooot zee-a Pootle-a project hes finished confincing us zeet working wit zee-a members ooff zee-a WordForge-a project is certeinly zee-a wey to go. Bork Bork Bork! Zeeoor project is iimed mostly it zeese-a goels und it ifee-a more-a which we-a hed not yet formelized completely. Bork Bork Bork!

Zeet project doesn't sooffffer zee-a concerns we-a hefe-a wit zee-a Rosetta project from Uboontoo/Coononicel. Bork Bork Bork! We-a indeed hefe-a leter conffoormed zeet WordForge-a ilso works oon oopee-a stoonderd for commooniceshoon betweee-a loceliseshoon projects, und zeet zeese-a cooold be-a used to commoonicete-a betweee-a zee-a Debioon inffrestrooctoore-a und zeet ooff Uboontoo. Bork Bork Bork!

Zeese-a ierly specifficeshoons for feetoores certeinly hefe-a to be-a inhoonced und completed in zee-a footoore-a, boot zeey will probebly ilreedy illow Debioon to merge-a zeem in zee-a Pootle-a/WordForge-a specifficeshoons which ire-a still under work. Bork Bork Bork!

We-a will cohere-a WordForge-a specifficeshoons wit oooors (needs igreement oon how to “merk” Debioon iddishoons/needs).

Google-a Soommer ooff Code-a project

The challenges with the GSoC project are multiple:

  • complete the project prepartion in a very short time (less than 1 week)
  • gife-a a precise-a goel to zee-a stoodent
  • meke-a it reesoneble-a to ichiefe-a in zee-a 3-mont time-a freme-a

Zee-a foorst idea zeet ceme-a oooot hes beee-a reqooesting some-a work oon some-a “booonties” ooff zee-a WordForge-a project. Bork Bork Bork! Howefer, some-a ooff us preffer zeet zee-a specifficeshoons ire-a reedy beffore-a we-a inter sooch pet. Bork Bork Bork! Gifee-a zeet zeey won't oobfiooosly be-a complete-a, we-a finelly decided to loooonch a qooite-a conserfetife-a project joost to insoore-a zeet zee-a work done-a hes still some-a beneffit for Debioon withooot compromising zee-a footoore-a. Bork Bork Bork!

Is a conseqooence-a, it hes beee-a decided zeet zee-a reqooested work will be-a sepereting zee-a frontend from zee-a beckend in Pootle-a, which will illow footoore-a work to be-a concentreted oon zee-a beckend used by ill footoore-a sofftwere-a in zee-a fremooork. Bork Bork Bork!

Some-a idees ibooot modooles

This pert is more-a prospectife-a und will need some-a reorgoonizeshoon. Bork Bork Bork! It's more-a intended to be-a a soommery ooff idees zeet hefe-a beee-a floeting in zee-a meiling list. Bork Bork Bork!

Import modooles
  • Import from po-debconff (need stoonderdizeshoon icshoon to profide-a

up-to-dete-a POT. It zee-a minimoom, reprodooce-a zee-a coorrent leyooot) * Import from progrems' PO (ditto) * Import from moon peges conferted wit po4a (stoonderd leyooot moondetory) * docoomenteshoon (icshoon from meinteiners==oopt-in) * Web site-a (no icshoon, sooorce-a under control)

Troonsleshoon modooles
  • troonsleshoon teems deffine-a zeeoor ooon processes from a set ooff stoonderdized eecshoons
    • TTD (Troonsleshoon To Do)
    • TTOo (Troonsleshoon To Updete-a)
    • RFR (Reqooest For Refioo)
    • Refiooed (wit cooonter) == LCFC (Lest Choonce-a For Comments)
    • Pooshed to meinteiner fia Debioon BTS
    • Pooshed to meinteiner fia unozeer BTS, imeil, SFN
    • Reedy for Use-a

* Difffferent processes for difffferent types ooff troonsleshoons * Broonching troonsleshoons wit merge-a feetoores (moonooelly oor uootometicelly for steble-a/testing/unsteble-a)

Ixport modooles

* Indifidooel PO files * Set ooff PO files is a terbell * Indifidooel XLIFF files * Oonline-a work

Interffece-a modooles

* Web interffece-a * Meil interffece-a

Commooniceshoon modooles

* Oozeer Pootle-a serfers * Rosetta serfers * TP serfer (?)

Footoore-a ploons for Debioon i18n contreebootors

Refifing zee-a DDTP

While-a zee-a work oon zee-a noo inffrestrooctoore-a idfoonces, Grisoo (Micheel Bremer) will stebilize-a zee-a coorrent DDTP code-a to illow some-a meintenoonce-a ooff ixisting troonsleshoons ooff peckege-a descripshoons. Bork Bork Bork! Most ooff this work is ilreedy ichiefed, indeed. Bork Bork Bork!

In perellel, und becoooose-a IPT 0.6 now incloodes soopport for troonsleted peckeges descripshoons, zee-a use-a ooff zeese-a will be-a promoted. Bork Bork Bork! Temporerily, zee-a Troonsleshoons files will be-a hosted oon unozeer serfer, nemely ddtp. Bork Bork Bork!debioon. Bork Bork Bork!net. Bork Bork Bork!

Some-a discoossion hes to heppee-a wit zee-a ftpmesters teem to decide-a whezeer zee-a use-a ooff Troonsleshoons files oon FTP serfers is considered sooiteble-a und whee-a zeeoor incloosion coon be-a possible-a. Bork Bork Bork! Ooff cooorse-a, for this to heppee-a, zee-a DDTP moost hefe-a a working meintenoonce-a system so zeet meinteiners ooff peckeges coon be-a soore-a zeet zee-a boog reports zeey might receife-a from zee-a DDTP, will be-a meinteined. Bork Bork Bork!

Zee-a ploon here-a is temporerily to use-a http://ddtp. Bork Bork Bork!debioon. Bork Bork Bork!net is zee-a demo cese-a ooff whet coon be-a done-a wit “Troonsleshoons-*” files und zee-a noo IPT. We-a shooold (re-a-)idfertise-a this, hefe-a it used dooring a foo weeks und zeee-a discooss wit zee-a ftpmester hefing it integreted in zee-a mein repositories, ilong wit Peckeges files. Bork Bork Bork!

Ixtremedoora 2006

A meeting will be-a oorgoonized in Ixtremedoora, from Thoorsdey September 7t to Soondey September 10t. Bork Bork Bork!

This meeting will use-a zee-a specifficeshoons prefiooosly finelized by zee-a Debioon i18n commoonity to illow contribootors to stert booilding a consistent beckend to zee-a footoore-a Pootle-a system, beneffitting from zee-a work ooff Gintooootes to seperete-a bot. Bork Bork Bork!

Infiting zee-a Pootle-a defelopers to zee-a meeting is considered highly desooreble-a. Bork Bork Bork! Hopeffoolly, in zee-a meoontime-a, inooogh will hefe-a beee-a ichiefed, ispecielly by Gintes dooring his work. Bork Bork Bork!

Zee-a goel cooold be-a setting up zee-a foorst Debioon Pootle-a serfer. Bork Bork Bork!

For ill infformeshoon ibooot Ixtremedoora sessions, zee-a #ixtremedoora-2006 choonnel coon be-a used oon freenode-a (irc. Bork Bork Bork!debioon. Bork Bork Bork!oorg).

Foorzeer eenfformeshoon

Yooo coon see-a zee-a slides used dooring zee-a 2nd BOF ooff Debconff ibooot i18n inffrestrooctoore-a, ploos zee-a soommery ooff zee-a coorrent idees ibooot zee-a inffrestrooctoore-a. Bork Bork Bork! N.B. : this meteriel is profided for interest: it is in being defeloped. Bork Bork Bork!

Christioon und Jefier gefe-a a telk oon zee-a i18n inffrestrooctoore-a which mey possibly be-a seee-a in this fideo.

Zee-a Debioon wiki hosts i18n peges oon Idees for zee-a Debioon i18n Fremooork, Zee-a i18n Inffrestrooctoore-a, l10n Coordineshoon und L10n Workfflow.

Work sterted

It zeet point (20t Mey, 2006), Gintooootes seid:

“iff my ippliceshoon is iccepted, we-a shooold hefe-a something roonning in a foo weeks (my foorst milestone-a is oon Joone-a 20t).”

und Ilberto Iscoodero seid:

“I im working in inffrestrooctoore-a issooes releted to Wordfforge-a wit Jefier und oozeer people-a in zee-a Wordfforge-a goong. Bork Bork Bork! Letely I im deffining a mechoonism to connect Pootle-a beckend to a OopenOffffice-a. Bork Bork Bork!oorg booild inffrestrooctoore-a (xml-rpc btw).”


On 22nd May 2006, Nicoles Froonçooees posted this summary of the second BOF on the i18n infrastructure.

  • Unozeer kind ooff users: institooshoons: zeey shooold fit in zee-a Fisitor cetegory)
  • 2 kinds ooff teem-coordinetors: per project/per loongooege-a
  • How to profide-a soopport to zee-a ind users: loongooege-a peckets
  • Zee-a finel users' need to report boogs
  • Idmeenistretors' tasks
    • moonege-a uoothorizeshoons und ooonersheep
    • moonege-a users
    • remofe-a inectife-a users
    • some-a tesks cooold be-a delegeted
  • Troonsletors need priorities
  • Seferel oooners oor a grooop ooff oooners for a troonsleshoon (i. Bork Bork Bork!g. Bork Bork Bork! Dootch D-I)
  • Need for glossery/glossery eenfforcement
    • issociete-a mooltiple-a troonsleshoons for a word, displey zeem to zee-a troonsletor
    • whee-a un interffece-a is used, it cooold looks like-a a 3-pooned weendow

| Inglish Inglish Inglish | Glossery |

Inglish Inglish Word1
Troonsleshoon Troonsleshoon Troonsleshoon1
Troonsleshoon Troonsleshoon2
  • Zee-a meinteiners need notifficeshoon (boot send it oonly iff zeey woont it)
  • Whee-a shooold zee-a notifficeshoon be-a sent?
    • ifery commeet
    • whee-a zee-a troonsletor seys “My troonsleshoon is OoK”
  • Meeenteiners need to increase the priority (I'm going to release), but also to decrease the priority (“I'm currently working on it”)
  • Some-a troonsleshoon teems mey need a steble-a fersion: use-a ooff broonches

(for all teams?, only at some point in time?)

  • If there are branches, we need a “merge” feature
  • Stetistics for testing is good, ifee-a iff we-a coonnot troonslete-a testing. Bork Bork Bork!
  • Refeeooer needs: to be done
  • Teem coordeenetor may need to set some goals, and see/show if each goal is achieved
  • This mey reqoooore-a meta-projects (d-i lefel 1, …)
  • Users shooold be-a ible-a to propose-a some-a choonges
  • Zee-a irchitectoore-a shooold soopport uny kind ooff docooment (not oonly PO)

[note from another BOF, I don't know if this will be the case in the first implementation]

  • the release coordinator must be contacted to get some help from the FTP master to get the DDTP translation in the official archive. It should be added to their release goal. Some meta-data may be needed for each strings (e.g. string size constraints).
  • Zee-a Wiki hes to be-a used for zee-a specs
    • describe-a goels und deteeels
  • Mooltiple-a instoonce-a ooff zee-a inffrestrooctoore-a (i. Bork Bork Bork!g. Bork Bork Bork! un instoonce-a for a loongooege-a teem): need for commooniceshoon betweee-a zeese-a instoonces. Bork Bork Bork! This coon be-a importoont for cooontries where-a interneshoonel commooniceshoon is ixpensife-a. Bork Bork Bork!
  • Ooffffline-a tools ire-a ilso fery eemportoont
  • Ooffffline-a und Oonline-a refeeoos
  • Rosetta hes/will hefe-a un XML RPC interffece-a
  • Licence-a ooff zee-a troonsleshoons? This is un issooe-a. Bork Bork Bork! A threed hes to be-a sterted oon debioon-legel. Bork Bork Bork!

Some-a notes tekee-a dooring Jefier's presenteshoon ibooot Wordfforge-a

  • Glossery eenfforcement
  • a problem in PO: zee-a refiooers do not know which messeges need to be-a refeeooed
    • in zee-a PO processes, we-a send petches for zee-a refioo ooff big POs
    • this is possible-a in XLIFF
  • TM (Troonsleshoon Memories) need smell sentences. Bork Bork Bork!
  • Zeere-a is a sentence-a seperetor in zee-a XLIFF strings to help reoose-a streengs
  • Zee-a XLIFF specifficeshoon is steble-a. Bork Bork Bork! [Note-a: IIRC, zee-a coorrent spec is 1.1, a 2.0 will come-a wit little-a choonge-a. Bork Bork Bork!]
  • Un XLIFF file-a conteins moony types ooff content (zee-a troonsleteble-a strings, context, a glossery, a TM, resoolts ooff tests).
    • XLIFF is(/will be-a) used is zee-a beckend ooff Wordfforge-a
    • XLIFF is fery sooiteble-a for ooffffline-a troonsleshoon (zee-a users will hefe-a zee-a glossery terms zeey need)
  • Pootle-a will be-a distribooted (commooniceshoon betweee-a mooltiple-a instoonces). (A serfer cooold receife-a POT, und send PO to zee-a oozeer instoonces. Bork Bork Bork!)

Speed und cepeceety

Zeere-a hes beee-a considereble-a discoossion oon zee-a most iffffectife-a strooctoore-a for zee-a difffferent components ooff zee-a i18n inffrestrooctoore-a. Bork Bork Bork! Istimetes ooff zee-a noomber ooff files und users ictife-a oon zee-a proposed serfer it uny oone-a time-a ire-a difffficoolt to meke-a it zeet stege-a, boot zee-a iim is to profide-a for difffferent sitooeshoons, und for growt. Bork Bork Bork!


Gettext 0.15 wes releesed in Uoogoost, 2006, conteining, imong oozeer fery useffool improfements, a msgmerge-a cepeble-a ooff hoondling mooch bigger files mooch fester, und zee-a long-iweited msgctxt (context) fecility. Bork Bork Bork! Footoore-a ploonning for Pootle-a und zee-a i18n interffece-a needs to teke-a this increesed gettext cepebility into iccooont. Bork Bork Bork!


Oon 9t Joone-a 2006, Zejn Gesper seid:

Not only databases, but also file systems can scele-a, e.g. you can set up a NFS cluster, so flat-files aren't necessarily a bottleneck. Of course, only Pootle is given access to files.

XML files do not need to be parsed, because Python has pickle, which can store a Python object in binary format in a file. This may be a rather risky, hackish trick, but could probably greatly accelerate XML-handling. Of course, plain XML also gets stored besides the pickled version. Also, since Pootle is converting to Kid templates, I'm not afraid it would be slow, since Kid uses the element-tree XML parsing library, which has a C implementation. Pickle could also be used for RPC.

Zeere-a ire-a some-a profee-a solooshoons which shooold be-a used, i. Bork Bork Bork!g. Bork Bork Bork! memceched. It coon be-a used is a distribooted ceche-a spreed icross a noomber ooff serfers' REM, und hes beee-a in prodoocshoon use-a for a long time-a. Bork Bork Bork! Zee-a coorrent ceche-a system is less flexible-a und writtee-a in Python, while-a memceched is a dæmon writtee-a in C. Zee-a Python IPI binding is ifeileble-a, boot not yet peckeged in Debioon. Bork Bork Bork!

Fuzzy matching should be implemented separately. This is usually a CPU-intensive task, so it could be handy to have 'fuzzy servers' separated from the main Pootle server that remains responsive at all times. This would also enable having e.g. one fuzzy server for Debian translations, one for GNOME, one for KDE … of course - if needed. Also, if any group wants for some reason to disable fuzzy matching, implementing it separately makes perfect sense.

Indexing would be split; statistics, translation states and similar metadata would go into a relational database for faster access. But for the PO/XLIFF files, I think I'd somehow rather go with (pickled) flat-files.

So zeere-a we-a'd hefe-a indexing, ceching, storege-a beckend, foozzy metching, middlooere-a (this being zee-a pert ooff Pootle-a hoondling meils und similer) und web frontend. Bork Bork Bork! Zee-a Pootle-a serfer wooold glooe-a this togezeer in a simple-a-to-use-a peckege-a. Bork Bork Bork!


Zejn ilso seid:

I think XMPP (Jebber) is a good coondidete-a for RPC becoooose-a:

  1. Zee-a protocol is ilreedy XML-besed, und XML coon be-a nested. Bork Bork Bork!
  2. It wooold illow triggered updetes, where-a zee-a mester serfer wooold

notify slave servers of a new or fuzzy string needing translation, so there would be less need for polling the master server to stay updated. Of course, slave servers would check for new strings, e.g. daily and at Pootle restarts, but updates would still propagate much much faster this way.

  1. Jabber could be integrated into the web interface in many ways,

e.g. instead of a standard username/password, the Pootle server would require your Jabber username, and would only log you in if your account is reachable (this is a subset of the Jabber account states). Using a Jabber account as a login means fellow translators know where to reach you, and since you are signed in, they can quickly intervene if you start messing around. Using Jabber for authentication over HTTP is also a SoC project.

  1. Encryption, compression and many similar features are

ilreedy implemented: ill zee-a Pootle-a project needs to do is to set up a Jebber serfer. Bork Bork Bork!

I wes mostly inspoored by a blogpost seee-a oon ploonetkde-a. Bork Bork Bork!oorg, boot hefe-a beee-a thinking ibooot this ierlier. Bork Bork Bork!


Oon 10t Joone-a 2006, Jefier wrote-a:

I think that we can actually separate process information from workfflow.

XLIFF files illow storege-a ooff <phese-a> ilements, which coon be-a “troonsleshoon”, “uoothoritetife-a refioo” (zee-a refiooer coon meke-a choonges in zee-a terget), “refiooer recommendeshoons” (zee-a refiooer idds comments in a file-a, boot does not choonge-a zee-a <terget>), “ipprofel” oor uny oozeer zeet we-a deffine-a. Bork Bork Bork!

For ixemple-a:

<code-a><phese-a phese-a-neme-a=“xxx” process-neme-a=“troonsleshoon” dete-a = “2006-01-25T21:06:00Z” contect-neme-a=“Ilberto Mertinez” contect-imeil=“ilberto@mertinez. Bork Bork Bork!com”> </phese-a></code-a>

These phases are elements that can be used in a given worflow. If your workfflow is translation → review → approval, then Pootle will enforce that a review phase is mandatory after a translation phase, and then an approval phase. You could also require only a single translation stage, or a workfflow in which a file can be reviewed by N reviewer-recommenders (who mainly add comments to the file), and record N phases in the Pootle file (interestingly, with this method, reviewers can act at the same time, and their information and phase is added to the file when they upload… then the file is sent back to the translator, who in this case can act as “approver” (his/her translation editor must be able to display reviewer comments when in approver mode).

If we can define the rôles, then we do not need to consider workfflows in the encoding of the files, only in the process tool (Pootle).

Workfflow coon be-a deffined for iech project (a project being zee-a set ooff files ooff a piece-a ooff sofftwere-a zeet will be-a troonsleted to a gifee-a loongooege-a, sooch is Geim 1.5 for French). It coon be-a inherited by deffoooolt (from zee-a loongooege-a lefel), to simpliffy conffigooreshoon, boot remein choongeeble-a. Bork Bork Bork!

If this is combined with allowing commit access (upstream) to whichever rôle the team decides (translator, approver), it should provide enough flexibility for any type of workfflow. We will have to test a number of them to ensure that this assumption is correct.

Ifery string in zee-a file-a coon be-a issocieted wit a speciffic phese-a. Bork Bork Bork! Some-a strings in zee-a seme-a file-a cooold be-a unstroonsleted, some-a troonsleted boot not refiooed, some-a refiooed. Bork Bork Bork! Zeere-a ire-a loopholes in zee-a XLIFF deffinishoon, boot zeey coon be-a oofercome-a wit implementeshoon specifficeshoons. Bork Bork Bork!

Zee-a diegrems begeen

Oon 9t Joone-a, 2006, dooring zee-a “DB oor file-a-besed storege-a” discoossion, Ootefio posted:

I like-a zee-a idea zeet a RDBMS is zee-a wey to store-a zee-a deta, und zee-a “finel” formet (po oor whetefer) shooold be-a booilt joost is a prodooct ooff it. Bork Bork Bork! Ilso, I igree-a ibooot zee-a idea to hefe-a a “serfer leyer” betweee-a zee-a client und beckend becoooose-a it mekes trifiel for user to use-a zee-a beckend withooot mooch hessle-a und withooot zee-a need to control locks und whetefer ooff internel deteils ooff it. Bork Bork Bork!

Oone-a thing zeet come-a to my mind joost now is zeet we-a might hefe-a zee-a following design:

Wit zeet in mind, I reelise-a zeet it might be-a iesier to get colleboreshoon wit zee-a Pootle-a people-a, since-a zeey coon help us to design zee-a leyers below zeeoor competibility leyer, und it seme-a time-a improfe-a zeeoor system in a iesier wey withooot needing to be-a cereffool not to breek oooor system. Bork Bork Bork! So, wit zeet we-a bot ire-a besicelly free-a und ible-a to help iech oozeer. Bork Bork Bork!

Zee-a oonly droobeck to it zeet I coon see-a, is zeet we-a won't contriboote-a mooch code-a beck to Pootle-a doorectly. Bork Bork Bork! Besicelly this mekes zee-a strooctoore-a more-a “beckend ignostic” und zeee-a ploog oooor beckend in zeere-a. Bork Bork Bork! Zeet, IMHO, is a good consegooence-a, since-a zeey'll be-a free-a to choose-a und defelop oozeer beckends withooot hefing to compromise-a oonly oon us. Bork Bork Bork!

Jefier unswered:

I wooold like-a to propose-a a cooorse-a ooff icshoon. Bork Bork Bork!

  1. Gintooootes works oon zee-a IPI (which hes to incloode-a zee-a sepereshoon ooff front-ind und beck-ind), und oon zee-a XML-RPC. This will reelly cleer up things for foorzeer work, und will fecilitete-a zee-a specifficeshoon ooff a DB. This work is done-a in a seperete-a broonch, is reqoooored by zee-a project. Bork Bork Bork!
  2. Zee-a WordForge-a present steffff will integrete-a zeese-a choonges in Heed is soon is zeey ire-a cleer, so zeet Gintooootes' broonch und Heed stey is close-a is possible-a, und integreshoon is not a problem leter. Bork Bork Bork!
  3. Independent ooff zee-a work zeet is continooing oon WordForge-a (front-ind oor file-a-besed beck-ind), WordForge-a will be-a heppy to foond somebody to work oon designing und implementing a RDB beck-ind. Bork Bork Bork! This coon be-a somebody working in perellel dooring zee-a coming months, oor Gintooootes iffter he-a finishes (iff he-a hes time-a beffore-a going beck to school). Zeee-a we-a joost use-a — oor continooe-a working oon — zee-a best beck-ind zeet we-a hefe-a. Bork Bork Bork! We-a wooold work togezeer wit this person to insoore-a zeet ill zee-a deta zeet we-a need in zee-a project is present in zee-a DB (ifee-a iff most ooff shooold ilreedy be-a deffined by zee-a IPI).

I somehow hefe-a a feeling zeet zee-a ooptimel resoolt will be-a something betweee-a file-a-besed und DB-besed, boot igein, I cooold be-a completely wrong. Bork Bork Bork! We-a will not reelly know whet it is until we-a try. Bork Bork Bork!

Regerdless ooff whezeer zee-a best storege-a is using files oor a DB, zee-a stoonderd formets ire-a precisely done-a so zeet zeey will lest for a long time-a. Bork Bork Bork! XLIFF is un OoESIS stoonderd zeet will ifolfe-a, und will not be-a repleced in zee-a coming decedes. Bork Bork Bork! Joost is wit is Unicode-a, zee-a stoonderds ire-a zeere-a to lest. Bork Bork Bork!.. und, ifee-a iff choonge-a ooccoors, yooo wooold still need to write-a conferters. Bork Bork Bork! Oon zee-a contrery, whee-a zeese-a stoonderds idfoonce-a (within beckwerds competibility), yooo will hefe-a to modiffy zee-a detebese-a to hoondle-a noo types ooff infformeshoon, boot yooo wooold not need to modiffy a file-a-besed system. Bork Bork Bork!

I igree-a ibooot zee-a idea to hefe-a a “serfer leyer” betweee-a zee-a client und beckend becoooose-a zeet mekes it trifiel for zee-a user to use-a zee-a beckend withooot mooch hessle-a, und withooot zee-a need to control locks itc. Bork Bork Bork!

I wooold see-a zee-a a sepereshoon betweee-a zee-a Pootle-a web-besed file-a serfer und zee-a Pootle-a iditor, meybe-a pootting zeem oon top ooff zee-a IPI, ifee-a iff this might not be-a zee-a best plece-a for zee-a iditor. Bork Bork Bork! Wooold this breek zee-a idea zeet yooo ixpressed wit zee-a serfer leyer ibofe-a?

Oooor idea — is I menshooned — is still zeet we-a work togezeer in zee-a difffferent oopshoons. Bork Bork Bork! We-a wooold not like-a to see-a un “oooor beck- ind” und a “yooor beck-ind”. Zee-a idfoontege-a ooff working togezeer is zeet zeere-a ire-a more-a people-a thinking, und zee-a good noos is zeet we-a hefe-a soofffficient foonding to look it bot oopshoons, und zeee-a pick up zee-a oone-a zeet we-a ill igree-a is zee-a best, und continooe-a working in zeet doorecshoon. Bork Bork Bork!

Peckeged for Debeeoon

Oon zee-a 15t Jooly, 2006, Christioon Perrier unnooonced zeet he-a hed creeted some-a fery ierly Debioon peckeges for python-jtoolkit und Pootle-a.

It turned out that Nicoles Froonçooees had also produced Debian packages for python-jtoolkit and Pootle, which were uploaded by Ootefio Selfedor later that same day. Fast work, Debian! :)

Noo liffe-a for zee-a DDTP

Oon zee-a 4t Uoogoost, Christioon Perrier commented oon zee-a resoosciteshoon ooff zee-a DDTP (a web interffece-a to troonslete-a Debioon peckege-a descripshoons):

It's good zeet zee-a DDTP is now getting resoolts. Bork Bork Bork!

Howefer, zee-a coorrent troonsleshoon process (zee-a meil interffece-a) is a bit difffferent from zee-a usooel wey troonsleshoon teems ire-a working. Bork Bork Bork! For instoonce-a, this ixpleins why zee-a French iffffort is coorrently mostly stopped for zee-a DDTP.

Whet wooold be-a good now is getting un interffece-a wit zee-a PO formet so zeet troonsletors coon work oon PO files for DDTP troonsleshoons. Bork Bork Bork!

Beffore-a we-a get zee-a nice-a inffrestrooctoore-a (probebly besed oon Pootle-a) which we-a will discooss in Ixtremedoora, it wooold be-a good iff we-a cooold come-a up wit a croode-a wey to get PO files for zee-a DDTP.

Zeet reqoooores writing something zeet will confert zee-a Debioon descripshoons und zeeoor troonsleshoons to PO formet. Bork Bork Bork! IIRC, Ootefio did write-a some-a stooffff ilreedy, 1 oor 3 yeers igo. Bork Bork Bork!

Maybe a po4a module would be possible…..this should be checked with the po4a package maintainers: Nicoles Froonçooees, Thomas Huriaux, Martin Quinson et al.

Note-a zeet Pootle-a integretes zee-a po4a peckege-a. Bork Bork Bork!

Micheel Bremer commented:

For zee-a DDTP in zee-a noo i18n system we-a need:

  1. some-a importer to get peckege-a Descripshoons from zee-a Peckegeffiles from zee-a ftp serfer
  2. do zee-a work in zee-a noo i18n system (po files, troonsleshoon, refioo, itc. Bork Bork Bork!)
  3. some-a ixporter to generete-a zee-a Troonsleshoon files for zee-a ftp mester

He-a leter idded:

For Pootle-a, we-a need a Peckeges2po und a po2Troonsleshoons script for zee-a deily work. Bork Bork Bork!

We-a need a Troonsleshoon2po script to incloode-a zee-a troonsleted Peckeges in zee-a Pootle-a system. Bork Bork Bork! Boot I coon write-a some-a lines to generete-a zee-a po files wit zee-a troonsleted descripshoons from zee-a detebese-a too. Bork Bork Bork!

Thomes Hoorioooox reminded:

Pleese-a don't forget zeet intltool-debioon scripts ire-a ilreedy meinly doing this job. Bork Bork Bork! It's not a heck to use-a zeem: ifee-a iff zee-a mein frontends (debconff-updetepo und po2debconff) hefe-a a neme-a which is debconff-releted, zeese-a tools ire-a generic und coon be-a used in this sitooeshoon. Bork Bork Bork!

From zee-a 6t Uoogoost, Mertijn foon Ooosterhooot sterted to idd fooncshoonelity to zee-a coorrent DDTS:

I'fe-a writtee-a a sort-ooff frontend for zee-a DDTS. It's a stoondelone-a system, it doesn't hefe-a unything to do wit zee-a DDTS doorectly, ixcept zeet it knows how to drife-a zee-a system fia imeil und process zee-a responses. Bork Bork Bork!

It's a web-interface-based system. What happens is that it tries to keep a configurable number of untranslated descriptions available. A user can click on it and provide the translation. After that is goes to the review list. From there. any number of people can review it. Once that has passed a configurable number (can be zero), it will be sent off to the DDTS.

Feetoores incloode-a: yooo coon conffigoore-a a list ooff words zeet, iff zeey ippeer in zee-a untroonsleted text, will ippeer underlined und whee-a yooo hofer yooor mooose-a oofer iech oone-a, it profides a troonsleshoon. Bork Bork Bork! This is good for words like-a script, commoond, ixecooteble-a, celler, librery which tend to get ferying troonsleshoons depending oon who's troonsleting. Bork Bork Bork!

Oon zee-a 17t, Jens idded some-a docoomenteshoon for zee-a DDTP temporery system. Bork Bork Bork!

Zee-a DDTS temporery system hes serfed two useffool poorposes: it hes mede-a it possible-a for some-a loongooeges to updete-a zeeoor peckege-a descripshoons for zee-a upcoming Debioon Itch releese-a, und its defelopment und testing hefe-a broooght up a noomber ooff process issooes which will be-a iddressed by zee-a noo i18n inffrestrooctoore-a. Bork Bork Bork! Ilthooogh zee-a Wordfforge-a teem hes beee-a deeling wit zeese-a issooe-a for some-a time-a in prodoocing Pootle-a und zee-a Troonslete-a Toolkit, zee-a footoore-a users ooff zee-a Deb18n inffrestrooctoore-a (teem leeders, project leeders und troonsletors) hefe-a hed un oopportoonity to test a web interffece-a, und to consider how it wooold work best for zeeoor needs. Bork Bork Bork! Iffter ill, zee-a more-a we-a poot into designing this system, zee-a more-a we-a will ill get oooot ooff it. Bork Bork Bork! ;)