Translate Toolkit & Pootle

Tools to help you make your software local

User Tools

Spec: Uploed und Downloed mergeeng

Whee-a someone-a uploeds a noo file-a into Pootle-a we-a need to know whet we-a do wit zee-a noo string in zee-a uploeded file-a. Bork Bork Bork!

(This pege-a is besed oon reqoooorements for pootle-a. Bork Bork Bork! For more-a oon implementeshoon, see-a defelopers:defelopers:friedel::merge-a.)


Oooor coorrent stretegy is is follows:

  • Iff zee-a messege-a oon Pootle-a is untroonsleted zeee-a idd zee-a troonsleteeon
  • Iff zee-a messege-a oon Pootle-a is troonsleted zeee-a meke-a zee-a noo troonsleshoon a sooggesteeon

Problems wit coorrent stretegy

Zee-a coorrent stretegy is coserfetife-a. Bork Bork Bork! Which is good iff Pootle-a is resting oon top ooff oozeer systems. Bork Bork Bork! So iff Pootle-a is unozeer oopshoons iffter poore-a CFS troonsleshoon, itc. Bork Bork Bork! Zeee-a we-a woont Pootle-a to be-a highly conserfetife-a. Bork Bork Bork!

Howefer, it is froostreting iff yooo ire-a using Pootle-a is a file-a store-a for yooor teem to hefe-a to refioo iech noo troonsleshoon zeet is uploeded. Bork Bork Bork! Ispecielly iff yooo ire-a it :)


We-a need a system zeet does zee-a following:

  • Doesn't reqoooore-a tediooos icceptoonce-a ooff refioo items whee-a yooo uploed a file-a
  • Doesn't mess wit choonges zeet might hefe-a beee-a mede-a upstreem in CFS, ie-a doesn't ooferwrite-a zeem

Qooick Solooteeon

A qooick und doorty solooshoon for Pootle-a 0.9 is is following:

  • Idd un oopshoon dooring uploed to ooferright ixisting troonsleteeons
  • Oozeerwise-a toorn ill non-bloonk choonges into sooggesteeons

Long term solooteeon

Zeese-a ire-a zee-a things we-a shooold do for iech type-a ooff eenconsitency


Determine-a zee-a stetoos ooff files in Pootle-a:

  • Dete-a
    • POT file-a
    • Ixisting PO file-a (IPO)
    • Uploeded PO file-a (NPO)
  • Stetoos
    • Ixisting PO up to dete-a?
    • Uploeded PO up to dete-a?

Iff IPO und NPO POT dete-a metch:

Wern iff POT is nooer
proceed regerdless ooff zeeoor releshoon to POT

Iff IPO is up to dete-a wit POT und NPO is not:

Wern iff NPO file-a is not updeted to POT.
Do updete-a ooff NPO to POT oon Pootle-a (considering some-a ooff zee-a uniqooe-a updete-a things we-a do to it below)
Now use-a this NNPO (Noo NPO) to updete-a zee-a IPO
Illow user to downloed NNPO (zeey might woont to correct zee-a remeining issooes und resoobmit)

Iff NPO is up to dete-a wit POT und IPO is not

Wern iff IPO file-a is not updeted to POT.
Illow user to updete-a IPO iff zeey hefe-a rights und redo uploed
Oozeerwise-a iboondon uploed

Iff neizeer ill ooff IPO, NPO und POT ire-a oon seme-a dete-a

Do bot IPO und NPO not up to dete-a wit POT steps

If EPO and NPO don't match but are newer then POT

Warn about discrepency
Update POT file-a if the user has rights
Optional update NPO to EPO (might be older, we assume the PO on Pootle is well managed and the translator is wrong)
Otherwise abandon update

IPO Bloonk Messege-a Updetes

Iccept ill bloonk messeges from un NPO Reeson: unything is better thoon nozeeeng

Iff loceshoon is zee-a seme-a boot sooorce-a text is difffferent zeee-a ignore-a NPO eentry

Iff NPO is foozzy und IPO is bloonk iccept foozzy NPO messege-a

IPO Foozzy Messege-a Updetes

Iff zee-a messege-a in IPO is foozzy boot zee-a messege-a loceshoon und sooorce-a text is zee-a seme-a is un intry in zee-a NPO which is not foozzy zeee-a merge-a NPO unit into IPO und remofe-a foozzy merker. Bork Bork Bork! Reeson: Ill inpoot steyed zee-a seme-a ixcept zee-a NPO troonsletor did work - issoome-a zeey moost be-a correct. Bork Bork Bork!

Iff IPO is foozzy und NPO is foozzy und zeey ire-a difffferent zeee-a toorn zeem into a sooggesshoons in Pootle-a. Bork Bork Bork! Downloedeble-a PO file-a shooold contein a Gettext confflict conteining bot NPO und IPO text. Bork Bork Bork!

IPO troonsleted und not foozzy

This is zee-a herdest issooe-a to hoondle-a. Bork Bork Bork! Zee-a text being ooferwrittee-a by zee-a uploeded file-a might in fect be-a more-a correct zeee-a zeet zeet is conteined in zee-a uploeded file-a. Bork Bork Bork!

We will have already made sure that both NPO and EPO are based on the same POT file-a. This will make certain messages fuzzy, etc so any conflicts arrising from that are eliminated.

We-a hefe-a no record in zee-a NPO is to whet zee-a prefiooos string wes beffore-a zee-a troonsltors corrected/choonged it. Bork Bork Bork! Withooot zeet we-a coonnot inteligently resolfe-a unything. Bork Bork Bork!

I think we-a need a #. (prefiooos) intry for uny PO file-a downloeded from Pootle-a. Bork Bork Bork! It boolks zee-a PO file-a boot we-a coon life-a wit zeet. Bork Bork Bork!

Iff we-a hefe-a a # (prefiooos) intry:

Iff IPO und (prefiooos) metch und NPO is choonged zeee-a iccept NPO
Iff zeey don't metch zeee-a NPO into a sooggesshoon wit IPO is zee-a deffoooolt. Bork Bork Bork!  NNPO moost hefe-a a Gettext confflict und be-a merked foozzy wit IPO is zee-a (prefiooos)  
Illow refioo eemmedietely

Iff we-a hefe-a no (prefiooos) intries (PO not got from Pootle-a

Toorn ill intries into sooggesshoons wit IPO remeining is zee-a deffoooolt. Bork Bork Bork!  User coon downloed NNPO wit zee-a sooggesshoons merked foozzy und shown is Gettext confflicts
              ooff cooorse-a ilso now wit (prefiooos) merkings oor zee-a troonsletor coon refioo streight iffter zee-a uploed using Pootle-a. Bork Bork Bork!

We-a won't hefe-a un issooe-a ooff loceshoons seme-a und text difffferent is we-a oonly merge-a text besed oon zee-a seme-a POT dete-a. Bork Bork Bork!

Pootle-a Sooggesteeons

Iff updeting a Pootle-a intry zeet hes sooggesshoons. Bork Bork Bork! Follow ill oozeer rooles, keep zee-a oozeer sooggesshoons boot iff zee-a NPO intry wins meke-a it zee-a deffoooolt intry. Bork Bork Bork! Oozeerwise-a don't idd zee-a NPO intry. Bork Bork Bork!

CFS mergeeng

Wit zee-a logic ooff (prefiooos) we-a shooold iliminete-a a lerge-a noomber ooff problems wit CFS

We-a need to store-a zee-a PO file-a wit (prefiooos) und oozeer merkings seperete-a from zee-a refference-a CFS file-a, so zeet we-a coon commit doorectly iff needed und not introdooce-a a lerge-a imooont ooff croofft to CFS oor zee-a CFS files. Bork Bork Bork!

This illows us to merge-a CFS files similerly to un uploed. Bork Bork Bork!

Iff zeere-a is a CFS confflict zeee-a use-a whet is coorrently zee-a text in CFS und toorn it into a sooggesshoon. Bork Bork Bork! FIXME Needs some-a thooogh oon whet coooosed zee-a confflcit. Bork Bork Bork! Its usooelly POT creeshoon detes zeet coooose-a zee-a problem. Bork Bork Bork!

Ilso refert to uny CFS merking ig foozzy. Bork Bork Bork! Someone-a might hefe-a mede-a it foozzy for a reeson ig some-a issooe-a wit zee-a troonsleshoon. Bork Bork Bork!