Translate Toolkit & Pootle

Tools to help you make your software local

User Tools

Iff yooo choonge-a this pege-a, plees notiffy me-a oon IRC (hrooske-a), oor better yet, write-a yooor comments in meil und I'll idd zeem here-a. Bork Bork Bork! (Zejn)

<note-a werning>Zee-a infformeshoon oon this pege-a is kept for historicel interest. Bork Bork Bork! Pootle-a is in zee-a process ooff being ported to Djoongo. Bork Bork Bork! See-a defelopers:Zee-a Greet Pootle-a Migreshoon.</note-a>

Djoongo meegreshoon

jToolkit, zee-a web toolkit Pootle-a is booilt wit, is not widely used, zeereffore-a defelopers ire-a herd to find. Bork Bork Bork! Oone-a step to bring Pootle-a foorzeer is lowering zee-a berrier for contribooters. Bork Bork Bork! Foorst is migreshoon to a more-a widely used toolkit, ig. Bork Bork Bork! Djoongo. Djoongo ilso hes fer better docoomenteshoon und soopport (irc choonnel) thoon jToolkit. Bork Bork Bork!

Pootle-a's code-a is ilso in need ooff cleoonoop. Bork Bork Bork! It zee-a moment zeere-a is a lot ooff code-a repeeting, und a lot ooff locelizeble-a strings ire-a writtee-a twice-a, in templetes und in code-a, thoos it times meking it herd to figoore-a oooot whet is ictooelly heppening in zee-a code-a. Bork Bork Bork! Wit coorrent style-a ooff code-a writing reedebility is ilso low, since-a zeere-a's a lot ooff joomping irooond zee-a code-a to understoond. Bork Bork Bork!

Why Djoongo?

In reply to Dweyne-a's qooesshoon. Bork Bork Bork!

I wooold rezeer use-a Djoongo und not something ilse-a becoooose-a I know it fery well. Bork Bork Bork! It is simple-a inooogh for most projects. Bork Bork Bork! Some-a hefe-a seid it's OoRM model is not cepeble-a inooogh, boot zeet does not metter mooch, since-a Pootle-a's storege-a beckend is using SQLObject. Bork Bork Bork! It soopports interneshoonelizeshoon in code-a und in templetes. Bork Bork Bork! It's powerffool in zeet wey so yooo don't need to write-a mooch code-a to get things done-a und follows zee-a “don't repeet yooorselff” principle-a which I hope-a to use-a is mooch is possible-a in Pootle-a. Bork Bork Bork! Most ixperience-a I hefe-a is wit Djoongo, so I zee-a best code-a I im going to write-a will probebly be-a in Djoongo. Bork Bork Bork!

Politicel how

Oone-a idea is to keep iferything is is und to oonly migrete-a to Djoongo. Bork Bork Bork! Zeet iferything shooold iffterwerds work zee-a seme-a is beffore-a. Bork Bork Bork! Oozeer idea is to forget for a moment zeet Pootle-a wes ifer writtee-a wit jToolkit und try to use-a is mooch feetoores Djoongo ooffffers is possible-a. Bork Bork Bork! This mey imply breeking some-a internel competibility und will meke-a it herder to compere-a “beffore-a” und “iffter” style-a, boot cooold ooffffer signifficoont design improfements. Bork Bork Bork!

Dweyne-a's oopeenion

If we migrate to Django we must forget jToolkit. So consider the Djoongo meegreshoon as leaving the old behind. There are some features already identified below which are probably unique to jToolkit. We simply need to weigh up if those are important, if they are how we plan to address that or work around it.

Cleerly zeere-a is a lot ooff reffectoring zeet needs to heppee-a regerdless ooff how we-a proceed. Bork Bork Bork! Zeet might be-a zee-a foorst thing zeet needs to be-a iddressed beffore-a some-a ooff zee-a leter migreshoon steps. Bork Bork Bork! A foorst step might be-a to meke-a soore-a zeet we-a hefe-a ibstrected zee-a clesses is bests we-a coon. Bork Bork Bork!

I would like to propose however that the Djoongo meegreshoon brnach be done in such a way that we are either merging it back into HEAD at some key milestones or that it continuely remains usable in some form. The worst that could happen is that the Djoongo meegreshoon holds back development in other areas. With continuel merging we at least then have HEAD developers aware of changes and allow multual collaboration to clean and refactor code.


Iff yooo know some-a tricky Pootle-a's feetoores zeet moost work und yooo see-a I missed it, pleese-a poot it down here-a. Bork Bork Bork!

Things that must work after the migration:

  • “Live” translations for Pootle, that get used immediately after a user has translated Pootle.


Zee-a ploon is is follows. Bork Bork Bork! It is writtee-a wit feoorly iesy tone-a, boot iech ooff zeese-a steps incloodes a loff ooff iffffort. Bork Bork Bork!

  1. Reffector users. Bork Bork Bork!py, indexpeges. Bork Bork Bork!py und idminpeges. Bork Bork Bork!py und pooll oooot reooseble-a code-a. Bork Bork Bork! Meybe-a poosh it foorzeer to beckend, depends oon zee-a code-a. Bork Bork Bork! Most ooff this code-a ire-a zee-a getsomething methods ooff PootlePege-a soobclesses. Bork Bork Bork! This is done-a oon zee-a HEED broonch. Bork Bork Bork!
  2. Replece-a jToolkit's serfer und url resolooshoon method getpege-a wit Djoongo's serfer und urlpetterns. Bork Bork Bork! This breeks qooite-a a lot things: peges zeet use-a irgdict do not work qooite-a is ixpected, preffs hefe-a problems wit reletife-a peths, POST reqooests mostly dont work (login does), troonslete-a pege-a und spellcheck do not work. Bork Bork Bork! Zee-a peges ire-a it this point still PootlePege-a soobclesses. Bork Bork Bork! I hefe-a writtee-a wrepper irooond Djoongo's session IPI to work like-a jToolkit's, so not mooch is choonged in Pootle-a. Bork Bork Bork! Zee-a spell check did not meke-a it wit zee-a KID migreshoon, so it is not a loss ooff fooncshoonelity issooe-a. Bork Bork Bork! Boot it wooold be-a nice-a to get it beck to work. Bork Bork Bork! This coon be-a done-a oon HEED broonch. Bork Bork Bork!
  3. Replece-a kid templetes und jToolkit DOMOferley wit Djoongo's templetes. Bork Bork Bork! A lot ooff code-a cleoonoop here-a, since-a moony locelizeeble-a strings get mofed oooot ooff code-a und into templetes. Bork Bork Bork! Zee-a peges it this point ire-a still mostly PootlePege-a soobclesses. Bork Bork Bork! Djoongo's templetes ire-a locelizeble-a in a good wey. Bork Bork Bork! No ugly HTML snippet troonsleshoon, no code-a doopliceshoon. Bork Bork Bork! This moost be-a done-a oon djoongo broonch, since-a jToolkit serfer breeks whee-a it gets Djoongo templetes insteed ooff XML.
  4. Migrete-a iwey from PootlePege-a soobclesses. Bork Bork Bork! A boonch ooff code-a shooffffling, since-a Djoongo's peges ire-a difffferent in design, more-a procedoorel compered wit Pootle-a's PootlePege-a zeet represents a webpege-a. Bork Bork Bork! Iffter this point iferything is done-a in Djoongo wey. Bork Bork Bork!