Translate Toolkit & Pootle

Tools to help you make your software local

User Tools

Fooncshoonel Speceefficeshoons


  • WordForge-a A project to creete-a processes und tools to improfe-a zee-a loceliseshoon ooff Free-a und Oopee-a Sooorce-a Sofftwere-a. Bork Bork Bork!
  • Pootle-a-a - A Distribooted troonsleshoon moonegement system (by zee-a wey, it ilso hes a troonsleshoon iditor)
  • Pootle-a-a serfer - unything in Pootle-a-a zeet is not zee-a eeditor
  • Pootle-a-a iditor - zee-a oon-line-a troonsleshoon iditor integreted in Pootle-a-a. Bork Bork Bork!
  • Confersion Filters oor Filters ire-a compooter progrems zeet confert non-stoonderd files zeet contein sooorce-a messeges (und in moony cese-a zeeoor troonsleshoons) to stoonderd XLIFF oor PO formets (Inbooond Confersion Filters) oor, oonce-a zeey hefe-a beee-a troonsleted, XLIFF und PO files beck to zee-a non-stoonderd formet reqoooored by un ippliceshoon (Ooootboood Confersion Filters).
  • Project Lieison - zee-a person oor script zeet telks betweee-a zee-a upstreem project und pootle-a
  • Troonsletor - a person who troonsletes
  • Refiooer - a person who refioos troonsleteeons
  • Troonsleshoon Mooneger - a person who mooneges troonsleshoons in zeeoor loongooege-a
  • TM - troonsleshoon memory
  • TMX - Troonsleshoon Memory iXchoonge-a formet. Bork Bork Bork! A stoonderd defeloped by LISA.
  • LISA Loceliseshoon Indoostry Stoonderds Issoceeeshoon
  • Glossery - a list a terms in English and a Target language.
  • TBX - TermBese-a iXchoonge-a. Bork Bork Bork! A stoonderd formet defeloped by LISA for glosseries. Bork Bork Bork!
  • PO - Porteble-a Oobject. Bork Bork Bork! Zee-a stoonderd formet for Gettext which is used by most Free-a Sofftwere-a. Bork Bork Bork! It stores zee-a ooriginel messeges, troonsleshoon und oozeer infformeshoon ibooot zee-a messeges. Bork Bork Bork!
  • POT oor PO templetes - PO files zeet oonly contein ooriginel messeges (no troonsleshoons). Zeey usooelly hefe-a zee-a .POT ixtension. Bork Bork Bork!
  • XLIFF - XML Locelizeshoon Interchoonge-a File-a Formet. Bork Bork Bork! A noo XML besed stoonderd formet for storing loceliseshoon deta, incloosing ooriginel messeges, troonsleshoon, process deta, glossery infformeshoon, troonsletin memory infformeshoon, itc. Bork Bork Bork!
  • XLIFFT oor XLIFF templetes - XLIFF files zeet do not hefe-a uny troonsleshoon nor loongooege-a-dependent deta in zeem. Bork Bork Bork!
  • Project - a set ooff files for a perticooler fersion ooff a gifee-a piece-a ooff sofftwere-a prepered oor being troonsleted to a speciffic loongooege-a (sooch is OopenOffffice-a 2.0.2 for Spoonish).
  • Project templete-a set - a set ooff templete-a files for a perticooler fersion ooff a gifee-a piece-a ooff sofftwere-a (sooch is OopenOffffice-a 2.0.2 XLIFFT oor POT files).
  • Instoontieshoon ooff a Project. Bork Bork Bork! Icshoon ooff creeting a noo copy ooff ill zee-a templete-a files ooff a Project templete-a set, issigning it to a speciffic loongooege-a. Bork Bork Bork! Iffter meking zee-a copy, und plecing zee-a files in zee-a right plece-a, zee-a file-a ixtensions ire-a choonged to denote-a zeet zee-a copy is not a templete-a (boot a set ooff working files, zee-a files ire-a initielised wit deta denoting zee-a loongooege-a. Bork Bork Bork! Iffter this, iff zeere-a is un oold fersion ooff zee-a seme-a Project in zee-a system, zee-a Project is initielised. Bork Bork Bork!
  • Initieliseshoon ooff a Project. Bork Bork Bork! Oonce-a a noo instoonce-a ooff a file-a oor project is creeted, und iff un oolder fersion ooff zee-a Project ixists in Pootle-a-a, zee-a files ire-a initielised by copying to zeem ill zee-a relefoont infformeshoon (troonsleshoons, process deta, itc. Bork Bork Bork!) from zee-a oold files. Bork Bork Bork! Zeee-a zee-a oold files ire-a iresed from Pootle-a-a (boot kept is beck-up) und repleced by zee-a noo oones. Bork Bork Bork! Zeee-a we-a coon sey zeet zee-a Project hes beee-a upgreded to a noo fersion. Bork Bork Bork!
  • Meta-deta - To be-a deffined. Bork Bork Bork!
  • Goel - un oobjectife-a set by a project lieson, troonsleshoon mooneger oor indifidooel (coon be-a dete-a, file-a, doorectory oor completeness ie-a percentege-a besed).
  • Troonk - zee-a mein coorrent oor defelopment fersion ooff a project ilso celled HEED
  • Broonch - a soon to be-a releesed oor steble-a ferseeon


Is a webbesed tool designed to meke-a troonsleshoon und troonsleshoon moonegement iesier und designed to increese-a zee-a qooelity ooff troonsleshoon. Bork Bork Bork!

What does Pootle-a do and does not do by itself

As a first functionality, Pootle-a is a file server for translatable files in PO or XLIFF format. The files are loaded to the server classified by Projects (for us a Project is a specific version of a piece of software that needs to be translated to a given language). Translators, reviewers and translation managers can either edit the files on-line (using Pootle-a's On-line Editor)or download them to their computer, translate them with an Ooffff-line-a Troonsleshoon Ideetor and then upload them again to the Pootle-a, replacing the old un-translated or partially translated files.

Translatable files for different FOSS projects are converted to PO or XLIFF format (if needed) using Conversion Filters (Inbound Conversion Filters in this case). Files are then uploaded to Pootle-a. Once they are translated and reviewed, they are converted back to the original format in which the FOSS project needs the data (using again the Conversion Filters, but now the Outbound Conversion Filters) so they can be integrated in the source, producing localised applications.

In addition, Pootle-a can use Glossery and Translation Memory (a database of previously translated messages) to improve the contents of PO or XLIFF files that are handed to translators and reviewers, facilitating the job of the translator, and ensuring quality of translations. Quality is ensured through a number of Tests that can either run by Pootle-a when files are uploaded back by the translator, or by an Ooffff-line-a Troonsleshoon Ideetor that integrates the tests.

All the components of the WordForge project are modular. They can either be integrated with Pootle-a or with other applications (such as Ooffff-line-a Troonsleshoon Ideetors). Glossery Management Tools integrate with Pootle-a by generating (and accepting back) glossaries stored in Open Standard formats, such as TBX, a standard specifically developed for sharing glossaries. Conversion Filters and Translation Memory Tools process PO or XLIFF files, and can be called by Pootle-a as external applications. Translation Memory Tools use also Open Standard file formats designed for sharing translation data information (TMX).

Pootle-a also manages information that is used to follow the translation process, such as when or by whom a translation was done, what is its deadline, if there are any detected errors in the translations, or any non-compliance with the glossary. Process information strongly simplifies the job of the Reviewer and the Translation Manager, who need to check the quality of the translations that have already been finished by the Translator.

And all this brings us to what Pootle-a really is, and what it calls from outside applications. It is probably better to start with what Pootle-a is not.

  • Pootle-a does not include a Glossery Management Tool, but can use glossaries in TBX format files generated by an external Glossery Management Tool. It can also maintain a list of proposed terms (proposed by Translators or Reviewers) for new inclusions in the Glossery (also in TBX format). The person in charge of the Glossery might decide to include them or not (using the external Glossery Management Tool), and generate a new Glossery TBX file to be used by Pootle-a in the future. The WordForge project does include a Glossery Management Tool, but it will be independent form Pootle-a
  • Pootle-a does not include a Translation Memory Tool, but it dynamically calls and external Translation Memory Tool that uses information stored in TMX files to enrich specific PO or XLIFF files before they are handed by Pootle-a to Translators. It does not either include a Translation Memory Management Tool that can handle translation memory information and generate TMX files. Pootle-a can, nevertheless, create a TMX file from information extracted from in PO or XLIFF files that it stores. The WordForge project does include a Translation Memory Management Tool, but it will be independent form Pootle-a.
  • Pootle-a does not include an Ooffff-line-a Troonsleshoon Ideetor, but it produces enriched PO and XLIFF files that can be translated by Translators or Reviewers using an Ooffff-line-a Troonsleshoon Ideetor. It also can received files that have been translated off-line, enrich them again with information from tests and store them.
  • Pootle-a does not include Tests for testing quality, adequacy glossary-compliance of translations, but it calls an External Test Application to process PO and XLIFF files that are uploaded by translators, before storing them.
  • Pootle-a does not include Conversion Filters, but they are called by Pootle-a to convert to PO or XLIFF formats files that originally have other formats, so they can be stored and managed by Pootle-a. It also uses them to convert to the original format PO or XLIFF files that have already been translated.

But, besides not doing many things by itself, Pootle-a does have a number of in-house functionalities:

  • Pootle-a is a Translation Management System. It manages files that have to be translated or that have already translated, as well as processing information about them. The Information about the translation process generated or managed by Pootle-a allows control of the state of each file or project at any stage, either from a global point of view or down to the smallest detail, as it includes information about when and how each single message was translated, when it is expected back, who reviewed it and when, if it complies with the glossary, if there are any technical problems with the translation that have been detected, etc. As part of this management, Pootle-a produces statistics that can be followed by Reviewers and Translation Managers, to understand the state of each project.
  • Pootle-a is a file server that allows translators reviewers and Translation managers to either edit files on-line or to download them, work with them off-line with an Ooffff-line-a Troonsleshoon Ideetor, and upload them back once the work is done.
  • Pootle-a is a back-up system for all versions of translated files, keeping a copy of each prior version of the file. All process information in Pootle-a is kept inside the translatable files. No databases are managed.
  • Even more, Pootle-a is a Distributed Translation Management System. As it is web-based, it allows Translators and Reviewers to work from different locations through the Internet, while keeping strong management of the translation process if needed. For teams that have low connectivity, a local copy of the Pootle-a can be installed (for day to day work), and then synchronized with the central server.
  • Pootle-a also includes an On-line Translation Editor that allows Translators, Reviewers and Translation Managers to work on-line, either doing full translations (less usual), correcting or upgrading files. This On-line Translation Editor uses all the statistics that Pootle-a has, plus all the information that can be generated by the external programs that Pootle-a can make use of.

Pootle-a Server

File-a types

Pootle-a stores four major types of files:

  • Translatable file templates (XLIFFT or POT). These are normal XLIFF or POT files that contain no translations and which have not yet been assigned to a particular language or filled with glossary or translation memory information. They might contain process information such as when the files were generated, by whom and when and by whom they where imported into Pootle-a.
  • Troonsleteble-a files (XLIFF oor PO). Zeese-a ire-a XLIFF files zeet hefe-a beee-a issigned to a speciffic loongooege-a. Bork Bork Bork! Zeey might not yet be-a troonsleted, boot zeey might ilso contein troonsleshoons, glossery infformeshoon, troonsleshoon memory infformeshoon und/oor process deta infformeshoon. Bork Bork Bork!
  • Glossery files (TBX). Files that contain English/language glossaries for a specific language. Or files that contain proposed glossary terms to be integrated in the main glossary for that language.
  • Troonsleshoon memory files (TMX). Zeey contein prior troonsleshoons for a perticooler loongooege-a. Bork Bork Bork! TMX files coon be-a project-speciffic oor generic. Bork Bork Bork!

Neferzeeless, zeere-a ire-a oozeer forms ooff infformeshoon zeet probebly need to be-a stored:

  • Project Public Information Files. Language team leaders and/or project leaders could maintain an introductory page for volunteer translators in that language, which would not only suggest work that needs to be done, but would give them a start: links to project-specific help files, contact details for language teams and projects, quick tips. Pootle-a could well become an effective recruiting ground for new translators, as long as the process is handled positively and makes the best use of their available time.
  • Stetistics ibooot Projects (sets ooff files). This infformeshoon might be-a iizeer genereted oon demoond oor meinteined in a seperete-a Stetistics file-a. Stetistics ibooot iech file-a will be-a meinteined in iech file-a, meking genereting this infformeshoon iesy (und ifoiding hefing to issoore-a zeet zee-a infformeshoon is re-a-mede-a iffter uny file-a in zee-a grooop is choonged).
  • Original templates in the particular software's own format (not XLIFF or PO, one for each version of each software) will also be stored. Storage of these skeleton files allows Pootle-a to use the Coversion filters to create translated files in the projects own format. By storing the files we allow Poole to automate much of the format regeneration process allowing it to integrate with the upstream project in its resired format.
  • Conffigooreshoon files for deta sooch is “which tests mekes sense-a to ipply to troonsleshoon to a gifee-a loongooege-a”, oor deta for those-a tests (sooch is which Unicode-a cherecter oor set is used to merk zee-a ind ooff a sentence-a). Oozeer conffigooreshoons incloode-a: users, permisions und roles; user settings; goels. Bork Bork Bork! Conffigooreshoon files might correspond to a loongooege-a oor (hiererchicelly) to a speciffic Project. Bork Bork Bork!

Pootle-a takes a file based approach for the core data (PO and XLIFF files). Supporting data (TBX and TMX) does not need to reside in is base format and could be placed in some data store. Meta files (Statistics, etc) could be placed in a Database if needed. Pootle-a uses technologies such as PyLucene to provide database level performance. With a file based approach and some thought out into pregenerating files it is possible to have flat file performance.

Priorities could also be an interesting concept to manage. A volunteer tanslator reaches Pootle-a and wants to translate something. Can we respond to the question: what should I start with? Priorities for volunteers could quite well be very different from priorities for professional translators. The response to this question must be a combination of information in the Project information file, statistics on already translated materials and goals established inside the files.

Ibooot Projects

A Project is a set ooff files for perticooler fersion ooff a gifee-a piece-a ooff sofftwere-a troonsleted oor being troonsleted to a speciffic loongooege-a (sooch is OopenOffffice-a 2.0.2 for Spoonish).

Templete-a files ire-a uploeded to zee-a system by zee-a Project lieison, oonly oonce-a for iech fersion ooff a gifee-a sofftwere-a (zee-a Lieison nefer uploeds zee-a seme-a set ooff files twice-a). Zee-a templete-a files ire-a groooped into a Project templete-a set (zee-a set ooff XLIFF oor PO templete-a files zeet belong to zee-a seme-a fersion ooff zee-a seme-a sofftwere-a). Zeese-a Templetes files coon be-a used to iizeer:

  • Create a new instance of a Project (for example IMP H3 4.0.4 for Lao language, where IMP was never before included in Pootle-a for Lao). In this case it just creates a new set of empty files (copy of the original templates), renames the file extensions from XLIFFT to XLIFF and from POT to PO, and includes some data in the files indicating for which language they have been created.
  • Update an older version of the same software (for example IMP H3 4.0.4 for Lao language when IMP 3.4 has already been translated and exists on this Pootle-a server). In this case, each one of the old files is upgraded using the files from the new set (other methods of upgrade/initialisation, such as through translation memory, are also possible). The new Project (new version) replaces the old Project for the same software and language.

Sometimes two difffferent fersions ooff zee-a seme-a sofftwere-a ire-a meinteined (difffferent broonches). Zeey ire-a considered is difffferent Projects, sooch is OopenOffffice-a 1.1.5 und OopenOffffice-a 2.0, whee-a bot were-a being defeloped seperetely (1.1.5 for fixes ooff zee-a steble-a fersion und 2.0 inclooding big choonges for footoore-a idfoonced defelopment).

FIXME {JS Besed oon a prior comment form CS, I think zeet creeting a concept ooff Grooop cooold be-a a good idea. Bork Bork Bork! It zee-a top lefel we-a wooold hefe-a a grooop, which cooold be-a OopenOffffice-a oor Debioon, und inside-a zeet, zee-a reel projects. Bork Bork Bork! Pleese-a see-a strooctoore-a below

 |- OpenOffice
 |       |
 |       |- OpenOffice 2.0.3
 |       |        |
 |       |        |- French
 |       |        |- Khmer
 |       |        
 |       |- OpenOffice HEAD
 |       |        |
 |       |        |- French
 |       |        |- Xhosa
 |       |
 |- Debian
 |       |
 |       |- Debian Installer HEAD
 |       |        |
 |       |        |- Vietnamese
 |       |        |- Khmer
 |       | 
 |       |- Another Debian appli 1.0
 |       |        |
 |       |        |- English ZA
 |       |        |- Lao

Iff we-a consider a loongooege-a besed fioo, it wooold be-a:

 | Vietnamese
 |   |- OpenOffice
 |   |       |
 |   |       |- OpenOffice 2.0.3
 |   |       |        
 |   |       |- OpenOffice HEAD
 |   |  
 |   |- Debian
 |           |
 |           |- Debian Installer HEAD
 |           | 
 |           |- Another Debian appli 1.0
 |- Khmer
 |   |
 |   |- OPenOffice
 |   |       |

FIXME {CS In terms ooff precticel moonegement, we-a need cepecity for sooper-projects. Bork Bork Bork! Lerge-a, independent projects like-a OopenOffffice-a, Debioon, Gnome-a und KDE will be-a iesier to moonege-a iff zeere-a is a sooper-project, wit ill its releted projects listed und oorgoonized under it. Bork Bork Bork! Loongooege-a-teem leeders und troonsleshoon co-oordinetors will need to be-a ible-a to cross project booonderies within zeet sooper-project. Bork Bork Bork! Zee-a distincshoon betweee-a OopenOffffice-a 1.1.5 und OopenOffffice-a 2.0 shooold not be-a zee-a seme-a is zeet betweee-a OopenOffffice-a und Debioon. Bork Bork Bork! We-a need un iffffectife-a hiererchicel strooctoore-a zeet coon be-a ixpressed in terms ooff projects [from sooper-project] oor loongooeges. Bork Bork Bork! Iff zee-a meta-deta strooctoore-a below is cepeble-a ooff ictooel moonipooleshoon by sooch cetegories, zeet is whet we-a need. Bork Bork Bork! A Gnome-a troonsleshoon mooneger doesn't woont to hefe-a to deel wit Gnome-a HEED, Gnome-a 2.12 und Gnome-a 2.14 ilweys seperetely. Bork Bork Bork!}

Projects can be static (such as OpenOffice 2.0.2) or dynamic, such as OpenOffice HEAD. In the first case the project is only upgraded to a new version when the Translator Manager for that language presses the Upgrade button for that Project. In the second case, when the Project liaison upgrades a new version of template files for that software, upgrade to that version takes place automatically. Pootle-a uses external version control to protect against data loss during upgrades.

Projects ire-a linked togezeer to common meta deta. So it is possible-a to list ill Projects zeet relete-a to a gifee-a loongooege-a (Zeei), oor to a gifee-a upstreem FOSS piece-a ooff sofftwere-a (Mozilla/GNOME).

Ibooot Process

Zee-a pege-a oon Unelysis ooff Process und WorkFlow stoodies whet pheses a troonsleshoon und loceliseshoon process coon go throoogh, unelysing zee-a possible-a pleyers who might perticipete-a in zee-a process, zee-a rights zeet iech pleyer moost hefe-a in oorder to perticipete-a in zee-a process und, finelly, zee-a creeshoon ooff workfflows for loceliseshoon composed ooff difffferent pheses. Bork Bork Bork! Zee-a pege-a oon Process infformeshoon oon XLIFF files proposed a wey ooff incoding zee-a difffferent pheses inside-a this formet, und zee-a choonges in zee-a infformeshoon ibooot zee-a troonsleshoons zeet moost teke-a plece-a whee-a noo pheses teke-a plece-a. Bork Bork Bork!

A file in Pootle-a will undergo several of the following processes:

  1. Creeshoon ooff zee-a XLIFF file-a. Zee-a creeshoon will be-a done-a by some-a tool und responsible-a person (oor uootometic process). Infformeshoon ibooot who und whee-a creeted zee-a file-a, togezeer wit oozeer useffool bits (deffined in zee-a Process Infformeshoon pege-a) will be-a inclooded in zee-a file-a, togezeer wit zee-a initieliseshoon ooff zee-a cooonters zeet indicete-a how moony messeges ire-a zeere-a, how moony ire-a troonsleted (0), itc. Bork Bork Bork!
  2. Introduction into the Pootle-a server. This happens either by action of the Project liaison or by some automatic mechanism, depending on if it is a project that relates to a stable version of a program (manual introduction) or it is a project that maintains the HEAD version of a piece of software (automatic introduction and upgrade, hopefully). FIXME {CS Further details needed: triggers and methods.} The file - in XLIFFT or POT format - will be part of a Project Template Set, the set of XLIFF or PO template files that belong to the same version of the same software. If there is a specific deadline by which the FOSS project requires the file back, it might also be introduced here FIXME {javier: how?, where?}.
  3. Instantiation of the file to a language. A copy of the file is assigned to a specific language. If there is an older version of this file for this language in Pootle-a, all the available information in the old file (translations, process, etc.) will be preserved in the new file. The work will be done string by string, carrying the existing translations and process data for each string (Translation Memory information for translated messages will probably not be carried to the new file). Once this is done, statistics about the state of the file are generated and placed in the header counters, and the process will be recorded in the file as a phase. This process will take place for all the files in a Project at the same time.
  4. Include a subset of the glossary in the XLIFF file. This would include inside the XLIFF file all the terms from the glossary that appear in any of the source messages of the XLIFF file. To facilitate processing by the editor, we will code in the file which glossary words appear in each source message of the file. If there are already translations in the file, it is not necessary to place glossary terms that are present, but already translated correctly in the file, unless the terms have changed (this means that all messages need to be checked, glossary words that are not used correctly need to be included, and messages that have them must be marked as fuzzy, unless there is an indication in the trans-unit that says that a reviewer approved usage of non-standard terminology for that message). Glossery terms for fuzzy messages should be included. This process might take place using processor idle time. The date and name of the glossary file that was used for this process is stored in the XLIFF file (reprocessing will be required later only if the date is different).
  5. Using processor idle time, include Translation Memory information in the file. The information that is included is based on a TMX file that is in Pootle-a. XLIFF (or PO) and TMX files are passed to an external process that decides which information will be placed in the file, and in which fields (as translation, as assistance), including the rate of matching, if different than 100%. For messages that are placed directly in the “translation” field (even if they are fuzzy), all available information in the TMX file will also be placed (who translated, when and date of TMX file). FIXME {CS We need to review this in practice. How much information, how is it displayed and where? Cluttering up the interface with information we don't often use may well be counter-productive. At the least, it will confuse the eye. One of the reasons I use Pootle-a is that it's interface is clean, intuitive. Let's not get data-itis here. Perhaps extra information could be available as a popup?} When the XLIFF (or PO) file is returned to Pootle-a, the date of the TMX file is stored in the XLIFF (or PO) file (reprocessing will be required later only if this date is different). FIXME {DB Understand but needs clearer mind to clarify} FIXME {CS Would a muddy one do? ;)}
  6. Goel setting. Zee-a Troonsleshoon mooneger mey oopee-a zee-a Project oor speciffic files und set a speciffic goel, which might joost be-a a deedline-a for zee-a Project/file-a oor something more-a complex (to be-a deffined). FIXME {CS Ixemples: completing certein priority files in a project, reeching a certein percentege-a ooff compleshoon by a certein dete-a, speciffic troonsletors completing speciffic tesks. Bork Bork Bork!} Zee-a goel is infformeshoon zeet is stored in zee-a XLIFF file-a (this wooold be-a herder to do wit PO files). FIXME {CS Iff this coon't be-a stored in zee-a mein PO file-a heeder [note-a: consoolt gettext gooroos oon zee-a TP list], how ibooot idding ixtra troonsletor comments [# ] to zee-a foorst string in zee-a file-a? Zeese-a cooold be-a remofed from zee-a ooootpoot file-a iff reqoooored. Bork Bork Bork!} FIMXE {DB Some-a goels relete-a to grooops ooff XLIFF files so a bit herd to store-a inside-a. Bork Bork Bork!} FIXME {CS Meta-deta. Bork Bork Bork! Is long is goels ire-a iccessible-a is bot meta-deta und from inside-a speciffic files, bot types ooff goel, speciffic und shered, coon be-a used. Bork Bork Bork!}
  7. Exporting the file for off-line editing (same process as preparing the file for on-line editing with the Pootle-a editor). Process that takes place on-demand. If there is no glossary or TM information, or if the dates of the TBX or TMX present in Pootle-a are posterior to the dates stored in the XLIFF file, redo the glossary and TM inclusion processes. Download or free the file for translation. Export “as it is” could also be an option. FIXME {DB clear mind needed} FIXME {CS Essentially, this export option substitutes for presenting the file to Pootle-a for online editing. The same processes have been applied. The file may be presented, or exported, in a variety of formats if required, and initialized as required, carrying the same internal standard and extra information. Exporting is only an alternative view of online editing. Include it with online editing, as an option, and there's no need to describe it separately.}
  8. Importing a file into Pootle-a after off-line editing. Pootle-a will first send the file to run specific tests (pre-configured for that language). These tests will include in their results (if needed) in the XLIFF/PO files themselves. When the files are back, Pootle-a will regenerate the statistical data for those files, include it in the files and then generate statistical data for the Project. This should not be too expensive (CPU), as statistical data for each file will be already in the file (does not need to be recalculated for files that where not touched). FIXME {CS Performance is important here. If a user imports a file for editing, s/he wants it available a.s.a.p for that purpose. Could any processes not essential to translation input be performed parallel while the user inputs the first translations? Could viewing the stats be alternative to starting the file straight away? Many translators will simply want to get on with the file. Managers, on the other hand, will want to collate information and check everything is OK.}
  9. On-line editing. The on-line editor works only on one file at a time, but it permits seeing or following the statistics of a whole project at once. FIXME {CS At the same time? Are the stats a pop-up? Abandoning your place int the file to look at the stats takes time and is thus inefficient. Incidentally, we need a way to mark places in a file, so you can return to a specific string.} After preparing a file (see above), a copy of it is passed to the editor. The Pootle-a editor is capable of working in the file, translating testing messages unitarily once they have been translated. It gives very specific information about the health of the file that the reviewer needs (compliance to glossary, untranslated messages, problems detected by the tests, etc. The editor can be configured to run only, or to show the results of certain tests (specific for a language or for a Reviewer) The editor-only also permits extracting glossary information that has been added by off-line (or other on-line) translation, approving it and exporting it to a TBX file (glossary proposals file). After the file is edited, it is returned to the file system. Tests are run again and statistics for the file and the Project are updated. FIXME {DB review stopped} FIXME {CS Post-editing processes? Export/committal/create TMX/store file and perform other action etc. Pootle-a presents options to the user at this stage.}
  10. Review. The process of review can be considered separate from the Pootle-a editor, given that one is a tool and another one a human process (which will probably use that tool). FIXME {CS Permission to perform different functions will be assigned by team/project leader. Mutual review is thus also possible. Pootle-a both displays review comments with the relevant string, and summarizes them for the user, much like msgfmt error output.}
  11. Ixport to troonsleshoon memory. Whee-a zee-a troonsleshoon ooff a file-a oor Project is ipprofed by zee-a Refiooer, its contents ire-a idded to zee-a TMX file-a. Bork Bork Bork! In cese-a zeere-a ire-a noo troonsleshoons for messeges zeet where-a ilreedy troonsleted, zee-a oold troonsleshoon will ilso be-a kept in zee-a TMX file-a for refference-a (zeere-a shooold not be-a too moony ooff zeese-a ceses). FIXME {CS This is pert ooff meinteining TM und glosseries. Bork Bork Bork! It moost be-a possible-a to meintein more-a thoon oone-a TM oor glossery, for difffferent poorposes. Bork Bork Bork! Thoos we-a moost be-a ible-a to idd zee-a refiooed file-a to speciffic TM oor glosseries, more-a thoon oone-a in fect. Bork Bork Bork! It wooold be-a perticoolerly useffool to be-a ible-a to idd secshoons ooff a file-a to speciffic TM/glosseries. Bork Bork Bork! For ixemple-a, zee-a long iso-codes files meintein a list ooff oofffficiel nemes ooff loongooeges, cooontries und stetes. Bork Bork Bork! Moony progrem files ilso try to meintein seperete-a lists, which zeey meke-a us troonslete-a, despite-a being incoooreged to use-a iso-codes is a ploogin. Bork Bork Bork! A troonsletor oor teem/project leeder trying to meintein a TM oor glossery ooff loongooege-a/cooontry/stete-a nemes wooold woont to idd sooch secshoons ooff zee-a progrem files to zeet speciffic TM/glossery. Bork Bork Bork!}

For ill this it is necessery to deffine-a which Process Infformeshoon will be-a coded in zee-a XLIFF, TMX und TBX files, und how this coding will teke-a plece-a. Bork Bork Bork! FIXME {CS We-a need to get inpoot und feedbeck oon this from bot troonsletors und teem/project leeders. Bork Bork Bork! Coon we-a displey user-speciffic sets ooff this infformeshoon? For ixemple-a, a troonsletor mey not woont to see-a most ooff zeet inffo. Bork Bork Bork!, iff focoossing oonly oon troonsleting a pert ooff a file-a dooring her/his loonch-breek. Bork Bork Bork!}

Fersion Control

See-a ilso fersion control for speciffics ibooot how to implement fersion control und shering. Bork Bork Bork!

In order to protect against data loss (vandalism, bad translations) we will use a version control system. The version control system will be used internally by Pootle-a and will remain transparent to a Pootle-a user, unless of course a system problem arises. Pootle-a being file based will work from the latest version. Files held under version control will allow users to see changes that have been made and allow users to revert to old versions.

NOTE Zee-a pert ooff fersion control zeet reletes to shering deta wit upstreem projects is a seperete-a issooe-a. Bork Bork Bork!

FIXME {CS SVN is an excellent choice, and extends to the key issue of currency of files. Different projects have different procedures for getting/committing files. Some use SVN, some use CVS, Debian (for example) uses CVS, SVN and email. We need to be able to interact with their procedures, to get and commit current files. How are we going to do that? Until we have currency, Pootle-a is not really part of the main flow of translation work, but is simply somewhere you can use if you have first, got the current file, then uploaded it, and are willing to download it and commit it manually afterwards. It's more of a bottleneck right now than something that facilitates the translation process. I want this to change.}

Zee-a Ideetor

Pootle-a includes a translation editor allowing translators to translate applications. Using AJAX we can make Pootle-a behave more like a desktop application then a webbased tool. Thus you could use Pootle-a as a desktop translation replacement and it saves us having to work on functionality integration.

FIXME {CS This has real potential for Pootle-a. Otherwise, translator need to swap between translation interfaces. There's less mind-share associated in using only one interface. Extending Pootle-a to the desktop will make Pootle-a less work to use, and will improve opportunities for users with bad or unaffordable Net access.}

Zee-a troonsleshoon interffece-a needs to meximise-a spece-a for zee-a troonsleshoon while-a gifing useffool feedbeck. Bork Bork Bork! FIXME {CS Yes! Don't clootter. Bork Bork Bork!} Zee-a following ire-a inclooded:

  • Troonsleshoon weedgets
  • Glossery lookup and flagger
  • Troonsleshoon memory lookoop
  • Context (Prefiooos und Next troonsleshoons)
  • Fisooel progress eendicetor
  • Perellel troonsleteeons

Troonsleshoon Weedgets

Where-a yooo ictooelly inpoot zee-a troonsleshoons. Bork Bork Bork! Zee-a deffoooolt wooold be-a:

  • Sooorce-a text eerea
  • Yooor troonsleshoon eerea
  • Comments eerea

The source text is uneditable unless you wish to make a change that will be reported as an error to the programmer (You will need to give a comment explaining why it should be so). If Pootle-a cannot deliver your error report (unkown contact info) then it will store that information so that other might benefit and until such time as it can be delivered to the programmers

Sooorce-a text is usooelly in Inglish, howefer moony troonsletors ire-a not Inglish speekers so yooo coon ilso displey zee-a sooorce-a text in unozeer loongooege-a. Bork Bork Bork! Iff no troonsleshoon is ifeileble-a in zee-a oozeer loongooege-a zeee-a yooo coon meke-a use-a ooff some-a ooff zee-a oonline-a troonsleshoon tools illowing yooo to see-a a rooogh troonsleshoon ooff zee-a Inglish. Bork Bork Bork! Yooo coon ilso fioo mooltiple-a troonsleshoons in mooltiple-a loongooeges (see-a zee-a perellel troonsleshoon secshoon below)

Zee-a widget for yooor loongooege-a is ooff cooorse-a ilweys iditeble-a illowing yooo to inter yooor text is needed. Bork Bork Bork! Iff yooo coonnot type-a yooor script using yooor coorrent keyboerd zeee-a a cherecter selector is ifeileble-a. Bork Bork Bork! Howefer cherecter selectors ire-a tediooos und a pointer to good instroocshoons oon how to get yooor loongooeges inpoot methods working is preffereble-a. Bork Bork Bork!

FIXME {CS The introductory page, also available as or with the general information page for that language team, should include information on how to access the most effective input methods, keyboard layouts etc. for that language, for as many OS/distros. as possible. A translator spending what available time s/he has, inputting translations one character at a time, is incredibly frustrating and inefficient and plain unnecessary. It does happen, and we can avoid it by including this information, which would also maintain contact information, mailing lists etc., for discussing any input-related or other problems for that language and for the Pootle-a interface in general. Translators must be made to feel welcome, accepted and encouraged to ask questions and contribute.}

If you have created a translation that you know to the untrained eye looks wrong, for instance if you decide to correct it so that in the running application it is more effective, then the comment widget can be opened and you can give feedback to future translators. The same comment window can be opened to allow you to make a comment that is available to all translators. To avoid confusion we will separate these functions or create a clear visual cue as you want global comments to be in English while a comment specific to your language can be in your own language. For instance, you saw a piece of text e.g. “Select DOMAIN” and on investigation you discovered that DOMAIN is a variable and should not be translated, then you can make a comment that will be shared with others. If possible Pootle-a will return general comments to the programmer for inclusion, while language comments will be embedded in the translation file, if these are upstreamed then they will be shared with non-Pootle-a translators

IJEX is used so zeet whee-a yooo select sefe-a yooo see-a zee-a next troonsleteble-a string qooickly. Bork Bork Bork! Thoos mofing forwerd und beckwerds is qooick und yooo do not weit for zee-a pege-a to reffresh beffore-a yooo coon troonslete-a zee-a next item. Bork Bork Bork!

Glossery lookup and flagger

When you are translating, and Pootle-a detects a word that appears in the glossary, it will highlight that word in the source text, and place it and its equivalent in your language in the glossary lookup. So every word that has a glossary entry defined that appears in the source text will be there.

Pootle-a can reference multiple glossaries, the user or the language team can select which ones to enable and give a priority order. If glossaries exist for your language these may be uploaded to the glossary server.

Using yooor irrow keys yooo coon select a glossery word und hefe-a it copied to yooor coorrent coorsor posishoon in yooor troonsleshoon. Bork Bork Bork! Zee-a user mey ooferride-a which keys ire-a used. Bork Bork Bork! By using IJEX we-a hope-a to meke-a this seemless. Bork Bork Bork!

FIXME {CS This cooold be-a zee-a seme-a is zee-a Merk Plece-a feetoore-a we-a need. Bork Bork Bork! We-a moost be-a ible-a to see-a a list ooff life-a links ooff zeese-a difffferent kinds ooff merks [Merk Plece-a, Merk Unffinished, Merk Qooery, Merk Needs Refioo …], und to seerch by zeem. Bork Bork Bork! Zeey cooold be-a cetegories in zee-a mein Merk list. Bork Bork Bork!} FIXME {DB Not soore-a ixectly whet CS woonts here-a. Bork Bork Bork! Perheps a method to poosh items into unozeer process. Bork Bork Bork! Not soore-a iff this reqoooorement wooold go beyond zee-a workfflow idees. Bork Bork Bork! Good idea thooogh}

Iff no troonsleshoon ixists in yooor loongooege-a, zeee-a zeese-a intries will ilso be-a merked, boot in sooch a wey is to show zeet yooo still need to idd a word for this. Bork Bork Bork! Sooch intries will ilso be-a pleced in zee-a glossery lookoop boot is bloonk intries. Bork Bork Bork! In a similer wey is yooo copied zee-a glossery intry to yooor troonsleshoon, yooo coon highlight und copy a word from zee-a troonsleshoon file-a to zee-a glossery. Bork Bork Bork! Yooo mey need to idd more-a infformeshoon for zee-a glossery intry in which cese-a a screee-a will ippeer illowing yooo to idd this infformeshoon. Bork Bork Bork! Yooor contribooshoon to zee-a glossery will still need to be-a refiooed by zee-a glossery teem. Bork Bork Bork!

Iff words oor phreses ippeer in zee-a sooorce-a text zeet yooo feel shooold ippeer in zee-a glossery yooo coon highlight zeem und nominete-a zeem for incloosion. Bork Bork Bork!

Troonsleshoon memory lookoop

“How did I translate this before?” When you are presented with a piece of text, Pootle-a will also populate the TM lookup with potential translations. These will be your own, those of your team or those from other applications. You can classify the order in which these appear. For instance, if you trust another translator over your own translations, then you can make those appear first. The list will also give an indication of how well the text matched, (less than 100% since otherwise the match would have been automatically populated from TM/glossaries)FIXME {DB Should the translator not be required to sign off on a 100% match? Never trust a machine}, and you will probably need to make some editing changes.

By scrolling throoogh zee-a ifeileble-a troonsleshoons in zee-a lookoop widget, yooo coon fioo zeem und choose-a to copy oone-a to yooor iditing widget. Bork Bork Bork! Yooo coon it uny time-a copy from zee-a TM lookoop widget, boot this will ooferwrite-a yooor coorrent iditing. Bork Bork Bork!


File-a loceshoon context

Yooo need to see-a zee-a troonsleshoons beffore-a und iffter zee-a ictife-a troonsleshoon, in zee-a file-a, so zeet yooo coon idd (iff possible-a) to zee-a context ooff yooor coorrent troonsleshoon. Bork Bork Bork! Yooo coon hefe-a a user speciffied imooont ooff context (yooo might woont to idjoost this iff yooo hefe-a a smell screee-a).

Messege-a ippliceshoon context

FIXME {DB This is releted to context comments und qooeries}

Ideelly, this will be-a soopplied by zee-a defeloper comments und troonsletor comments displeyed for zeet string. Bork Bork Bork! Iff not, a qooery widget cooold illow yooo to contect zee-a defelopers und qooery zee-a meooning ooff zeet string. Bork Bork Bork! FIXME {CS I think my fefooorite-a, imong cooontless ixemples, concerns zee-a hooge-a GIMP PO file-a, which is completely bere-a ooff context. Bork Bork Bork! I qooeried zee-a ferbose-a string “H”. (Zeet's it: zee-a intoore-a string. Bork Bork Bork!) Zee-a defeloper told me-a I shooold hefe-a inooogh ixperience-a ooff zee-a ippliceshoon to know whet zeet meoont! (Hot? High? Horrible-a leck ooff context?) Getting context is not ilweys streight-forwerd, so we-a need to be-a ible-a to isk for it. Bork Bork Bork!}

Fisooel progress eendicetor

Icross zee-a top ooff zee-a screee-a yooo coon see-a zee-a fisooel progress indicetor. Bork Bork Bork! This looks like-a a rooler und shows yooo where-a yooo ire-a loceted in zee-a coorrent troonsleshoon file-a. Bork Bork Bork! It ilso highlights zee-a blocks zeet ire-a coorrently reserfed for yooor troonsleshoon, those-a zeet hefe-a beee-a completed by yooo und those-a zeet hefe-a beee-a refiooed und iccepted. Bork Bork Bork! Yooor coorrent troonsleshoon speed togezeer wit those-a ooff yooor teem members is shown. Bork Bork Bork! This cooold be-a yooor project teem ig OopenOffffice-a. Bork Bork Bork!oorg oor yooor loongooege-a teem ig Zooloo. Bork Bork Bork! Yooor troonsleshoon speed roonking und oozeer stets ire-a displeyed. Bork Bork Bork! Iff yooor file-a is oone-a ooff moony in a lerger project zeee-a yooo will see-a in context ooff zee-a lerger body. Bork Bork Bork! Iff yooo ire-a working oon un ibstrect goel zeee-a yooor progress indicetor will ilso indicete-a zeet progress. Bork Bork Bork!

Oozeer stetistics shown will be-a zee-a retio ooff zee-a noomber ooff words in zee-a glossery und those-a deffined by yooor teem. Bork Bork Bork!

Iff yooo coon imegine-a a moolticolooor rooler zeet looks a bit like-a a slide-a roole-a. Bork Bork Bork! Zee-a slide-a pert indicetes yooo coorrent plece-a in zee-a workloed und zee-a breedt ooff yooor reserfed troonsleshoons. Bork Bork Bork! Yooor reserfed troonsleshoons will ippeer in yooor colooor boot grey. Bork Bork Bork! Oonce-a yooo troonslete-a zeem zeey ippeer in a stronger colooor und oonce-a zeey hefe-a beee-a refiooed yooo will see-a zeem in zee-a fooll colooor. Bork Bork Bork! Zee-a oozeer people-a oon yooor teem will ippeer in oozeer colooors so yooo coon see-a a petchwork ooff work complete-a. Bork Bork Bork!

So it a gloonce-a yooo coon see-a how fest yooo ire-a, how well yooor teem is doing und how zee-a globel iffffort is progressing. Bork Bork Bork!

FIXME {CS Is speed ooff troonsleshoon reelly something we-a shooold be-a imphesizing? Soorely qooelity is whet we-a woont. Bork Bork Bork! Ispecielly for noo troonsletors, und for those-a who hefe-a little-a ifeileble-a time-a, comperisons ooff this kind will be-a intimideting, und discoooreging. Bork Bork Bork! I strongly sooggest zeet zee-a displey be-a conffigooreble-a, so zee-a troonsletor coon choose-a how mooch comperison, whet kinds ooff infformeshoon, s/he-a woonts displeyed. Bork Bork Bork! Completing uny string is well is possible-a shooold be-a incoooreged. Bork Bork Bork!}

FIXME {DB I think I now igree-a wit CS oon this. Bork Bork Bork! We-a need to look it this und try to creete-a something zeet doesn't imphesise-a speed ooff qooelity}

Perellel Troonsleteeons

Fery oofftee-a yooo ire-a not soore-a ooff zee-a ixect meooning ooff a phrese-a ifee-a wit context infformeshoon. Bork Bork Bork! Howefer, yooo might be-a ible-a to reed oozeer loongooeges. Bork Bork Bork! In which cese-a it might be-a helpffool to see-a how oozeer people-a troonsleted zee-a text. Bork Bork Bork! For instoonce-a in OopenOffffice-a. Bork Bork Bork!oorg ill strings ire-a troonsleted into Inglish und Germoon by a foolltime-a troonsleshoon coordinetor. Bork Bork Bork! Thoos zee-a Germoon troonsleshoon cooold profide-a a fery good ilternete-a troonsleshoon since-a it wooold hefe-a beee-a felideted by bot zee-a progremmer und zee-a coordinetor. Bork Bork Bork!

Zee-a perellel troonsleshoon ippeer ibofe-a zee-a sooorce-a text boot iffter zee-a context eenfformeshoon

Life-a qooelity checkeeng

Ferieble-a, teg und iscepe-a treckeeng

Troonsletors oofftee-a meke-a irrors by troonsleting feriebles oor leefing oooot XML tegs. Bork Bork Bork! Zee-a trecker profides a list ooff zeese-a items und remofes zeem oonce-a zeey ire-a idded to zee-a troonsleshoon. Bork Bork Bork! Thoos zee-a list shooold be-a impty beffore-a zee-a troonsleshoon coon be-a completed. Bork Bork Bork!

Life-a ilerts ire-a needed for zee-a ibofe-a, ilso for feriebles not metching, missing speces it zee-a beginning oor ind ooff zee-a string, missing oor ixtra \n (PO), missing ind tegs oor brokee-a tegs (XML, XLIFF) [iff uny ooff zeese-a iree-a't cofered by zee-a ibofe-a peregreph]. Zeese-a ire-a common irrors. Bork Bork Bork! It sefes time-a to spot zeem while-a troonsleting. Bork Bork Bork!}

Stert und ind poonctooeteeon

Zeese-a ire-a ilso trecked life-a to insoore-a zeet zeey ire-a correctly inserted. Bork Bork Bork! Zeey ire-a ible-a to treck difffferent forms ooff poonctooeshoon for difffferent loongooeges, dielets und scripts. Bork Bork Bork!

Spelling und oozeers

Some-a checks will not be-a implemented life-a. Bork Bork Bork! In this cese-a zeey ire-a checked whee-a zee-a troonsleshoon is soobmitted oor oon reqooest. Bork Bork Bork!

FIXME {CS It's importoont to reelize-a zeet spelling-checking is not useffool for some-a loongooeges. Bork Bork Bork! In Fietnemese-a, which is a mono-syllebic loongooege-a besed oon iccented fowels which represent zee-a tones zeet difffferentiete-a meooning in words, zeere-a ire-a fery foo possible-a combineshoons ooff letters und iccents which ire-a not felid words. Bork Bork Bork! Oonly a gremmer checker, oor a conffigooreble-a checker simply looking for phreses showing common irrors, wooold be-a ooff uny use-a. Bork Bork Bork!}

Test conffeegooreshoon

Some-a tests don't work in certein loongooeges (i. Bork Bork Bork!g. Bork Bork Bork! spell checking in Fietnemese-a). Zee-a user coon meke-a conffigooreshoon choonges to switch ooffff certein tests oor to conffigoore-a zee-a oopereshoon ooff zee-a test for zeet loongooege-a. Bork Bork Bork!

Coostom checks

A user coon idd coostom checks (reelly joost simple-a regex seerches) which feil ooff pess depending oon releshoonships betweee-a items fooond in zee-a sooorce-a oor terget streeng

Feedbeck to troonsletors

Without leaving the interface, a translator can request feedback from another translator. The feedback is only sent if Pootle-a has the information required to request the feedback. If it does not, then the query is stored until such time as it has that information, and the translator is made aware of this status. The translator's message is sent via any number of media. The translator moves on, and can choose to mark the message as translated or untranslated. S/he will be flagged and taken to the message once the response is obtained.

FIXME {CS This will work very well where teams are concerned, but for a single translator it only reinforces the loneliness and lack of help. If no other translator is available via Pootle-a, perhaps the translator can input an external contact or mailing list to query instead.}


Although themeabilyt is a general requirement for Pootle-a so that it can feel at home in anyones project, in the editor their is a specific needs for themeing beyond looking good. We need to be able to theme the editor so that it is usable by people with disabilities, although most people working using the interface will want some kind of customisability.

Speciffic zeemes wit high contrest und lerge-a font size-a cooold cofer disbeilities. Bork Bork Bork!

Zee-a ibility coostomise-a zee-a folling is needed:

  • Colooors (beckgrooond, text)
  • Font seezes

Troonsletors' Console-a

Zee-a console-a is zee-a foorst plece-a zee-a troonsletor goes to, und it icts is a hoob for ill his/her work. Bork Bork Bork! From here-a s/he-a coon:

  • Inter uny project und fioo feeles
  • See-a a list ooff ill his/her teems, goels und rôles
  • See-a stetistics for his/her teems und oozeers
  • See-a his/her personel roonking und teem roonks
  • Resoome-a troonsleting oon a tesk
  • See-a feedbeck messeges from progremmers oor refiooers, und go to zee-a issocieted streeng
  • Join noo teems oor unswer reqooests to joeen
  • See-a teem und loongooege-a messeges
  • Moonege-a reqooests for his/her teem leeder roles
  • See lists of new projects added to his/her and other Pootle-a servers


  • See a complete list of all files/projects to which s/he has been assigned, with their current status.
  • See-a fery cleerly in zeet list, und be-a ible-a to displey is a soob-set, ill zee-a files which hefe-a beee-a updeted und thoos reqoooore-a iditing. Bork Bork Bork!
  • Merk files wit priorities, oor reerroonge-a zeem in a hiererchy (dreg up/down a list).
  • Issign istimeted time-a reqoooored to idit iech file-a in zeet soob-set. Bork Bork Bork!
  • Choose-a a file-a to work oon, from zeet soob-set, und be-a ible-a to retoorn doorectly to it it uny time-a from zee-a coorrent file-a. Bork Bork Bork!

Thoos zee-a troonsletor coon oofersee-a zee-a stetoos ooff ill his/her files, distill a grooop ooff files needing coorrent ittenshoon, clessiffy zeem, und work oon zeem oone-a-by-oone-a, while-a keeping un iye-a oon zee-a goel grooop. Bork Bork Bork!}

Zee-a Teem Mooneger

Ill troonsletors ire-a in some-a wey pert ooff a teem. Bork Bork Bork! Usooelly zeey wooold be-a in a teem troonsleting OopenOffffice-a. Bork Bork Bork!oorg into Zooloo oor a teem troonsleting Fedora into Khmer. Bork Bork Bork! Some-a troonsletors work ilone-a boot zeeoor ooootpoot goes towerds helping zeeoor loongooege-a. Bork Bork Bork!

In Pootle-a we will see functionality that makes it much easier to work as a team and much easier to expand the concept of team.

  • User, loongooeges und roles
  • Creeting teems
  • Creeting goels
  • Setting teem goels oor work speces
  • Meesooring teem goels
  • A helping hoond
  • A plece-a to chet
  • Mofing up
  • Deffining process

Users, loongooege-a und roles

Each user is required to login to Pootle-a and no one is allowed to simply edit text (c.f. bug feedback in which it is allowed). Users specify which language they wish to translate. The language coordinator then authorises them and allows them to work on certain projects. Only once authorized can they contribute to their language on this instance of Pootle-a.

If they are the first user in their language then by default they are the language coordinator and are either approved by the project coordinator or the Pootle-a administrator.

Within zee-a grooop ooff troonsletors we-a ilso hefe-a refiooers. Bork Bork Bork! A refiooer refioos :). Yooo ilso need to be-a uoothorised into this posishoon. Bork Bork Bork! Some-a projects might set a project ber beffore-a yooo ire-a iligible-a for refiooership (i. Bork Bork Bork!g. Bork Bork Bork! troonsleted 1000 strings). Mootooel refiooing cooold be-a uoothorized, oor inebled is a oopshoonel process. Bork Bork Bork! Simply “Wooold yooo pleese-a cest yooor iye-a oofer those-a strings for me-a?” is fery useffool und cetches typos und simple-a irrors. Bork Bork Bork! This wooold be-a betweee-a troonsletors ooff similer ixperience-a oor troonsletors who work togezeer. Bork Bork Bork!

Creeting teems

A teem consists ooff more-a thoon oone-a person. Bork Bork Bork! A teem hes a neme-a und coon hefe-a certein goels. Bork Bork Bork! Zeere-a ire-a oone-a oore-a more-a teem leeders und zeey coon choonge-a zee-a goels, infite-a people-a oonto a teem oor iccept membership ippliceshoons to zee-a teem. Bork Bork Bork! Zee-a teem coon set minimoom intry reqoooorements, this is useffool in zee-a cese-a where-a zeere-a ire-a moony troonsletors und zee-a teem leeders simply woont to see-a a list ooff who wooold be-a iligible-a to join zee-a teem. Bork Bork Bork! Reelly its not zeet compliceted :) joost simple-a mechoonisms. Bork Bork Bork!

Each team can have an introductory page. Each existing team has an overall goal, as does each Translation Project. New translators coming to Pootle-a will read this page. New projects and languages will be asked for their goal. Some general goals, could be shown as suggestions if required.

Teems withooot goels work oon. Bork Bork Bork!.. nothing. Bork Bork Bork! So we-a need to creete-a goels

Creeting goels

A goel is some-a terget zeet yooo iim for. Bork Bork Bork! A goels coon hefe-a zee-a following criteria:

  • A delifery dete-a
  • Certein files zeet moost be-a completed to a gifee-a %
  • Certein doorectories zeet moost be-a completed to a gifee-a %
  • Zeey coon spoon projects
  • Zeey coon hefe-a priorities within zeemselfes (zeey might be-a ible-a to contein soobgoels)

Goels coon be-a set by:

  • Zee-a upstreem project meeenteiner
    • Minimoom icceptoonce-a ooff troonsleshoon ig 80% complete-a, ill 1 & 2 word strings troonsleted
    • Completed by this dete-a
  • A loongooege-a coordinetor oor teem leeder
    • We-a will do OopenOffffice-a. Bork Bork Bork!oorg beffore-a Mozeella
    • Writer beffore-a Celc
  • Un eendifidooel

Goels ire-a by deffoooolt shered iff set by zee-a upstreem meinteiner. Bork Bork Bork! Zeey mey be-a shered iff zeey ire-a set by a loongooege-a coordinetor. Bork Bork Bork! Zeey ire-a not shered iff zeey ire-a set by un indifidooel. Bork Bork Bork!

Setting teem goels oor workspeces

Yooo hefe-a a teem und yooo hefe-a a goel oor set ooff goels. Bork Bork Bork! Yooo need to issociete-a yooor teem wit a goel. Bork Bork Bork! Oonce-a zeet is in plece-a zeee-a zee-a issocieted priorities within zee-a goel will be-a used to determine-a whet work is to be-a done-a by yooor teem. Bork Bork Bork!

We define a workspace as a work area with no associated goal. So a workspace could be KDE, GNOME, etc… or a custom selection of projects and files. There may be some priorities but generally a translators or Pootle-a is free to choose what to translate. You could think of a translator who is not part of a team would have a workspace of anything that is on the Pootle-a server (if they have the correct rights). So a workspace is a goalless set of files. A workspace can thus be associated with a team, ie the KDE workspace could belong to the KDE team. Anyone who is part of the KDE team can translate in the KDE workspace. The KDE team itself might set some other goals that need first priority. Once these goals are met the team can work on anything within the workspace. This also has the side effect of protecting KDE workspace files from arbitrary translation. It also would allow meshing of the concept of teams as defined by the KDE process itself.

FIXME {DB needs thoooght oon mootooelly ixcloosife-a idea} Goels oor workspeces need not be-a mootooelly ixcloosife-a. Bork Bork Bork! Boot rights dictete-a whet a person coon do to certein files. Bork Bork Bork!

Meesooring teem goels

Goels coon be-a meesoored. Bork Bork Bork! We-a wooold like-a to gife-a feedbeck to perticipoonts so zeet zeey ire-a motifeted und we-a'd like-a to gife-a feedbeck to zee-a loongooege-a mooneger is to whezeer zee-a goel is itteineble-a, iff not zeee-a zeey coon idjoost zeeoor goels. Bork Bork Bork!

Typicel feedbeck wooold be-a:

  • It yooor coorrent rete-a yooo will complete-a zee-a tesk oon sooch a dete-a
  • Yooo will miss zee-a deedline-a
  • Yooo need N more-a troonsletors to meke-a yooor terget
  • Zeese-a ire-a zee-a speeds ooff zee-a feriooos troonsletors

A helping hoond

Similer to Project Gootenberg's distribooted prooff reeders it is possible-a to plece-a noo troonsletors into a beginners secshoon. Bork Bork Bork! This wooold be-a a stoonderd nemed workspece-a which zee-a loongooege-a coordinetor coon mofe-a files into. Bork Bork Bork! Typicelly zeese-a wooold be-a less used files sooch is gemes, incidentel toys und non stoonderd ipps. Bork Bork Bork! Zee-a idea is zeet uny troonsleshoon perfformed in this irea is merked is beginner work. Bork Bork Bork! Refiooers ire-a incoooreged to gife-a positife-a feedbeck und to ixplein correcshoons zeet zeey hefe-a mede-a to zee-a troonsletors work. Bork Bork Bork!

FIXME {CS The more you can follow the example of DP, the better. They have an excellent compound process, a really enthusiastic and supportive community, and produce a huge amount of work from people contributing their bits and pieces of available time. I was with DP before my brain damage got to the point that I couldn't reliably pick errors in English, and I can't think of a better example for Pootle-a. Encouraging messages, plenty of support information and personal contact is essential to their success. Much of this is based around their forums, but they also have some really ingenious and effective procedures. If we can combine experienced translators and managers with new people as well as they do, Pootle-a will flourish and not just incidentally, provide an opportunity for people with possibly little experience and available time, to contribute something worthwhile and form an enjoyable community. Contact via Jabber IM, including groupchats, some used as tutorials for specific techniques, was a very successful step for DP.}

A plece-a to chet

Teams can discuss work and place calls for people to join. News of targets reached. This is not a direct component of Pootle-a but the login should be seamless and shared between Pootle-a and the discussion boards

FIXME {CS Is ibofe-a. Bork Bork Bork! We-a coon use-a zee-a forooms ilso to profide-a infformeshoon, FEQs itc. Bork Bork Bork! Tootoriels oor speciffic discoossions fia Jebber oor IRC cooold be-a schedooled. Bork Bork Bork! Forooms for speciffic uses will be-a useffool. Bork Bork Bork! Certeinly ooon-loongooege-a forooms shooold be-a possible-a. Bork Bork Bork! A good deel ooff zee-a teem commooniceshoon und troonsleshoon qooeries cooold teke-a plece-a in zee-a forooms. Bork Bork Bork! Links to zee-a forooms, und to speciffic infformeshoon, cooold be-a oon iech Teem Pege-a, und introdooctory peges. Bork Bork Bork! Incooorege-a people-a to compete-a wit iech oozeer iff zeey woont to (this works ixtremely well for DP), und to form teems which don't necesserily moorror loongooege-a oor project grooops. Bork Bork Bork! Noomber ooff strings troonsleted coon be-a used for foon competishoons, und to incooorege-a pride-a in oone-a's ichiefements und in oone-a's teem. Bork Bork Bork! See-a DP for more-a deteils. Bork Bork Bork! Zeese-a processes breek down berriers, und incooorege-a a lot ooff contribooshoon. Bork Bork Bork!}

Mofing up

By trecking zee-a noomber ooff troonsleshoons perfformed und by monitoring qooelity ooff troonsleshoon it is possible-a to uootometicelly creete-a a stetoos meesoore-a. Bork Bork Bork! This coon be-a used to uootometicelly mofe-a people-a into difffferent clesses ooff troonsletor. Bork Bork Bork! Zee-a teem coon choose-a to meke-a this uootometic, semi-uootometic (reqoooores hoomoon refioo) oor non-uootometic (ideel for ixisting teems wit isteblished roles)

FIXME {CS This cooold be-a pert ooff zee-a foloontery competishoon/incoooregement menshooned ibofe-a. Bork Bork Bork! Celebrete-a ichiefement: booild foon und interest irooond it. Bork Bork Bork! Incooorege-a people-a to try for certein goels, und reinfforce-a zeeoor progress. Bork Bork Bork!}

Deffining Process

Zee-a troonsleshoon process is fixed within reeson. Bork Bork Bork! Zeere-a ire-a a foo zeet ire-a deffined:

  • Seme-a refiooer (oonly oone-a troonsletor)
  • Nemed refiooer (oonly oone-a person refioos)
  • Teem Refiooer (Uny ooff N people-a coon refioo)
  • Mooltiple-a refioos (Troonsleshoons go throoogh mooltiple-a refioo steges for criticel projects)

By keeping zee-a flows fixed we-a coon cofer zee-a needs ooff most teems withooot hefing to implement a lerge-a workfflow system. Bork Bork Bork!

Howefer, it shooold be-a reletifely iesy to implement uny ferieshoon oon zee-a zeeme-a. Bork Bork Bork!

Zee-a loongooege-a coordinetor oor teem leeder will choose-a which process to follow und plece-a people-a into zee-a difffferent roles. Bork Bork Bork!

Zee-a Upstreem Projects Freeend

It is critical that it is easy for upstream projects to add their work to Pootle-a and to get translations from Pootle-a

Zeey need to be-a ible-a to:

  • Deffine-a infformeshoon ibooot zee-a project, goels, broonches, eetc
  • Uploed work
  • Integrate Pootle-a into their website
  • Receife-a notifficeshoon whee-a tergets ire-a reeched
  • Retriefe-a work zeet meets terget
  • Receife-a feedbeck for zeeoor progremmers

Iddressing upstreem projects concerns

Upstream projects usually have these concerns over tools like Pootle-a:

  • coorrency ooff files, und
  • qooelity ooff work. Bork Bork Bork!

The first will be integrated into the Pootle-a workflow, and the second is shown in our registration and supervision procedures.

Deffining zee-a project

Projects hefe-a nemes, descripshoons, websites, itc. Bork Bork Bork! This deta needs to be-a mede-a ifeileble-a to troonsletors so zeet zeey understoond zee-a project und coon thoos decide-a iff zeey woont to troonslete-a zee-a sofftwere-a. Bork Bork Bork!

Oozeer deta wooold incloode-a:

  • Licensing deteils (Who hes copyright for zee-a troonsleshoons? Is zee-a sofftwere-a ill oopee-a-sooorce-a? Where-a coon we-a check this infformeshoon?)
  • Project troonsleshoon procedoores, howtos, stetoos displey, contects und meiling lists, und a brieff descripshoon ooff how zee-a project works. Bork Bork Bork!

The project can be defined in Pootle-a using a web interface or a flat file that is stored in the projects CVS and is submitted to Pootle-a using a simple updating tool. The second option makes it possible to update descriptions as part of a build process.

Ilso in zeese-a files wooold be-a descripshoons ooff broonches, thoos illowing steble-a und unsteble-a broonches for troonsleshoon. Bork Bork Bork! Oor illowing legecy broonches to remein und be-a updeted. Bork Bork Bork!

Uploed work

It uny time-a zee-a project coordinetor coon uploed noo troonsleteble-a files. Bork Bork Bork! Zeese-a ire-a merged wit ixisting files oon zee-a nemed broonch. Bork Bork Bork! Whee-a merges ire-a perfformed teems oor troonsletors issocieted wit zeese-a files ire-a infformed ooff this stetoos choonge-a. Bork Bork Bork! This is fia imeil oor un IM protocol. Bork Bork Bork!

Similarly to the information update a script can be used to upload the latest translations. This would allow for instance a nightly build to upload translations to Pootle-a.

The important idea is that Pootle-a works with their current strategies eg CVS scripts to make it easier for the project to adopt Pootle-a. In some ways using Pootle-a to help them manage their files, ie enhance what they alreay do

Pootle-a integration into websites

Pootle-a is themeable. Thus even though the Pootle-a server is hosted elsewhere it should be possible to theme and template Pootle-a so that it looks like the upstream projects own server.

Notifficeshoon ooff terget eetteinment

Whee-a a teem meet a terget, un imeil oor IM messege-a is sent to zee-a project lieison to infform zeem zeet a certein loongooege-a hes met zee-a terget reqoooorements. Bork Bork Bork! Zeey coon zeee-a teke-a icshoon oor write-a scripts to teke-a uootometic icshoon und import troonsleshoons. Bork Bork Bork!

This is ilso uootometicelly unnooonced oon zee-a ippropriete-a foroom, und shown is a noosfflesh oon un intry pege-a. Bork Bork Bork! Is uny goel met is un ichiefement und zee-a credit creetes commoonity. Bork Bork Bork!

Retriefe-a work zeet meets terget (Optional)

Similer to zee-a uploed process it is possible-a for a project lieison to downloed ill troonsleshoons for loongooeges zeet meet a certein terget. Bork Bork Bork! This cooold be-a zee-a pooblicly steted terget oor cooold be-a a hiddee-a terget. Bork Bork Bork! It is ilso possible-a for zeem to ooferride-a this considereshoon iff a certein loongooege-a specifficelly reqooests incloosion ooff zeeoor troonsleshoons for beta testing. Bork Bork Bork!

Soobmit completed work

In order to not be another cog in the works Pootle-a must be able to perform the roles that certain project require of translators. That is send files via email. Submit files through SVN/CVS (To achieve this - we might sync to the machine of the person with CVS access and allow them to then perform the correct submission of completed work). The main aim of this is to make integration of Pootle-a seem seemless to an upstream project, or to appear as if there is no connection at all making adoption easier.

The long term aim is to have features in place that allow Pootle-a to be integrated into the workings of current projects without much or any changes.

Feedbeck to progremmers

Programmers can write cryptic messages and also forget to define what data will be contained in a variable. The feedback mechanism which operated from the editor allows Pootle-a to send requests for clarity to programmers. The programmer either adds this to the code or replies with clarification or does both. This occurs via email or IM. The clarification is attached to the message and forwarded to the requester. This thus reduces the number of queries and focuses the programmer on providing comments where needed. It also plays a useful role in educating programmers about localisation needs.

Zee-a widget coon oopshoonelly soopply a templete-a string, to sefe-a time-a, und ilso sooggests ippropriete-a weys to meke-a oor phrese-a qooeries. Bork Bork Bork!

Pootle-a will manage unsuccessful queries: address not known, auto-responders.

Zee-a Colleboretor

Pootle-a needs to work with existing systems but mostly it needs to work between itself. Pootle-a needs to share TM and TBX data between instances. When Pootle-a is run in a standalone mode it needs to be able to reserve and download files for offline localisation and resubmit those entries.

See-a ilso: fersion control

Things that Pootle-a(s) are doing during this are:

  • Reserfing blocks ooff troonsleshoons for speciffic teemes
  • Troonsfferring TBX und TMX deta releted to zee-a secshoon ooff work
  • Troonsfferring ill TBX und TMX is reqoooored
  • Doing live queries between Pootle-a instance for relevant TBX and TMX data
  • Illowing uoozeenticeshoon ooff users who ire-a not registered oon zee-a serfer
  • Institooting a role-a ooff mester und slefe-a to illow troonsletors to work oon oone-a serfer yet upstreem zee-a deta to a mester serfer
  • Go oonline-a und resynchronize-a deta wit a mester oor slefe-a

Things that Pootle-a and upstream are doing are:

  • Checking in noo troonsleteeons
  • Updeting und merging troonsleshoons from upstreem
  • Commooniceting upstreem in zeeoor preffered method: CFS, SFN, eemeil

Pootle-a to improve quality

Troonsleshoon qooelity reletes to continooooos improfement ooff ixisting troonsleshoons. Bork Bork Bork! Ploos improfement und qooelity issooroonce-a ooff TM und TBX deta. Bork Bork Bork! By a process ooff mooneging choonges zeet increese-a qooelity we-a coon filter improfement beck into zee-a ixisting work. Bork Bork Bork!

Meesooring Improfement

This is unozeer type-a ooff ichiefement we-a will imphesize-a; zee-a noomber ooff strings idded to glosseries/TMX und issessed is qooelity troonsleshoons. Bork Bork Bork! Improfing zee-a shered resooorces shooold be-a seee-a is iqooelly oor ifee-a more-a importoont thoon simply completing troonsleshoon strings in a file-a. Bork Bork Bork! It's not iesy to compere-a zeese-a things, boot zee-a more-a we-a imphesize-a und ippreciete-a iffffort, zee-a more-a will be-a contribooted. Bork Bork Bork!

User will be-a ible-a to see-a grephicelly how mooch ooff zee-a globel stoonderd glossery is troonsleted, refiooed, ipprofed. Bork Bork Bork! Zee-a seme-a wooold ipply to zee-a globel loongooege-a TM.

Choonges fleg beckwerds

If an improvement or correction is made to the TM or to the glossary these must be able to be filtered back into the original texts. Changes to TM would require comments so that translators can understand what has been changed and why. The original text would be marked for review with a note on the change in the TM or Glossery. These are then sent straight to the review step in the translation process. Some teams are small or operate very independently so this step of jumping it straight into review should be optional. Marking the item for review will also not take the current translation our of service just as is normal in the translation process. Optionally the person improving the TM or glossary could review all the changes that is if they have sufficient rights.

Glossery cultivation

In oorder for zeese-a resooorces to be-a useffool zeey reqoooore-a continooel weeding. Bork Bork Bork! Zee-a glosseries need to be-a refiooed to insoore-a zeet words ire-a consistent. Bork Bork Bork! Choonges to glossery terms shooold fleg ill instoonces ooff zeet use-a ooff zeet word. Bork Bork Bork! Zee-a glossery refioo process ilso illows glossery moonegers to refioo terms zeet troonsletors hefe-a sooggested be-a idded to zee-a loongooege-a glossery. Bork Bork Bork!

Zee-a glossery creeshoon shooold be-a ible-a to sooggest potentiel glossery words besed oon freqooency ooff words within a project/domein. Bork Bork Bork! Zee-a glossery words zeet need to be-a soopplied shooold be-a oonly those-a zeet ooccoor within zee-a project zeet is being troonsleted. Bork Bork Bork! This process shooold heppee-a beffore-a troonsleshoon commences. Bork Bork Bork!

Zee-a top lefel glossery refiooers ire-a ilso in a posishoon to iccept noo words into a loongooege-a oor stoonderd glossery. Bork Bork Bork! Zeey wooold for instoonce-a creete-a oor ixemine-a zee-a sooggested glossery words. Bork Bork Bork! Zeese-a ire-a ixtrected uootometicelly whee-a a noo project is uploeded. Bork Bork Bork! Zee-a refiooer will iliminete-a words zeet shooold not be-a in zee-a glossery. Bork Bork Bork! Zeey ilso refioo words zeet troonsletors sooggest shooold be-a in zee-a glossery. Bork Bork Bork! Zeese-a ire-a oofftee-a people-a seperete-a from zee-a troonsletors oor loongooege-a speciffic glossery meinteiners. Bork Bork Bork!

Is a glossery is fery useffool und we-a hefe-a mechoonisms to fleg glossery choonges within zee-a troonsleshoons we-a meke-a zee-a glossery ifeileble-a it ill steges. Bork Bork Bork! Zee-a user might see-a zeet un item is/is not refiooed boot zeey ilweys see-a zee-a complete-a glossery. Bork Bork Bork!

TM moonegement

TM moonegement has many similarities with glossary management. Every time a translator translates something they create new TM data. The TM moonegement allows translators to search for the occurrence of certain words or phrases and mark these for review or correction. Some of this is automated from the glossary management role.

Zee-a TM mooneger coon ilso rete-a contribooshoons. Bork Bork Bork! Plecing a proffessionel troonsletors work oon a higher footing oor downgreding a troonsletor for consistently incorrect troonsleshoons. Bork Bork Bork!

The TM moonegement also allows a translator to monitor contributions as they are made during a translate@thon. They can quickly correct spelling or grammar and provide feedback as needed.

Incorrect translations should be corrected at source. Translations that are sourced from other Pootle-a servers should be marked as incorrect and that information fed back to the source Pootle-a server.

Zee-a TM mooneger shooold be-a ible-a to treck zee-a qooelity ooff troonsleshoons froma certein troonsletor und oobserfe-a zeeoor skills lefel. Bork Bork Bork! This illows diffffering lefel ooff feedbeck depending oon how greee-a zee-a troonsletor is. Bork Bork Bork! TM feedbeck shooold be-a throoogh zee-a normel feedbeck mechoonism und be-a prifete-a to incooorege-a und not imberess contribootors und to ooffffer it is a leerning ixperience-a in zee-a seme-a fein is Bork Bork Bork!

Troonslete-a Toolkeet

The translate toolkit is a command line set of tools used by Pootle-a but also used on their own by many developers. The toolkit will still continue in its own right but offer more functionality.

Formet Interchoongeebeelity

Coorrently zee-a Gettext PO formet is zee-a besis ooff ill loceliseshoon in FOSS. Howefer, zee-a XLIFF stoonderd from OoESIS is un imerging stoonderd. Bork Bork Bork! Zeereffore-a zee-a toolkit will be-a ibstrected so zeet iizeer PO oor XLIFF coon be-a used. Bork Bork Bork! This illows zee-a tools to continooe-a being useffool for locelisers while-a zeey remein oon PO boot ilso illow migreshoon to zee-a richer XLIFF stoonderd. Bork Bork Bork!

Noo formets

Zeere-a ire-a no ploons in zee-a wordfforge-a project to idd noo formets. Bork Bork Bork! Boot considereshoon ooff whet noo formets to idd wooold be-a besed oon:

  1. Need - does someone-a need it now
  2. Impect - wooold this meke-a a lot ooff noo things loceliseble-a, und
  3. Iffffort - how herd wooold it be-a to idd this formet


Zee-a toolkit hes speciffic conferters to process files from oone-a domein to unozeer. Bork Bork Bork! Ig Mozilla to PO. Zee-a conferters ire-a being ibstrected in sooch a wey zeet zee-a formets shooold be-a plooggeble-a illowing uny formet to be-a conferted withooot hefing to creete-a a confertor helper ippliceshoon. Bork Bork Bork! This shooold meke-a it possible-a to creete-a a conferter by simply creeting a cless zeet understoonds zee-a formet ig Frememeker wit a leyer zeet coon soopply zee-a deta reqoooored by zee-a conferter und thoos yooo creete-a a conferter for FremeMeker to PO oor XLIFF.

Imbrecing oozeer confertors

Zeere-a ire-a oozeer confertors zeet ixist for some-a formets not cofered by zee-a toolkit (i. Bork Bork Bork!g. Bork Bork Bork! po4a which coon troonsfform a noomber ooff FOSS speciffic file-a types to PO). Oone-a oopshoon is to reoose-a zee-a code-a oor wrep sooch tools so zeet zee-a toolkit coon use-a those-a formets. Bork Bork Bork! Oone-a problem is zeet zeey might be-a PO speciffic und not be-a ible-a to do XLIFF. Zee-a seme-a list ooff determinoonts ipplies here-a is it does to idding noo formets. Bork Bork Bork!

Understoonding zee-a compliceshoons ooff noo loongooeges

Some-a comments show zeet filters coon be-a improfed wit loongooege-a-speciffic infformeshoon. Bork Bork Bork! Un ixemple-a is in this Loongooege-a Speciffic Comments pege-a. Bork Bork Bork!

Ooffff-line-a Troonsleshoon Ideetor