Translate Toolkit & Pootle

Tools to help you make your software local

User Tools


This is the current roadmap for the WordForge project (view completed work)

Current work


  • Roadmap
  • Specification of the editor functionalties
  • Specification of rights and user management
  • Specification of goals and statistics functionality

Translate Toolkit 0.9

  • Work towards milestone 1.
  • Roundtrip testing - GSI→PO→GSI, Mozilla→PO→Mozilla without loss

Compiler Farm and misc tools

  • Documentation of locale-creation (C, cldr and OOo)
  • Compiler Farm: Windows Build Server
  • XML-RPC Specification
  • Linux Build Benchmarking
  • Pootle bug tracking

Milestone Overview

These are the planned milestones for the WordForge project.

Milestone 1 - 2 June 2006 - Pootle 0.9 stable ready to work

Goal: Availability of a basic Pootle server that can allow translators to work with PO files stored in Pootle

By this date we will make the Pootle server public, allowing localisers to either translate the files on-line with the Pootle editor, or download them, translate them with an off-line translator editor for PO files, and then upload them again. In particular, for projects, the server will be connected to a compiler farm that will compile OpenOffice 2.0.2 stable version for Linux (Windows will have to wait until the next milestone).

Versions 0.9 of Pootle and the Toolkit should be ready for testing on the 15th of March. They should include the following functionalities:

  • Toolkit 0.9 (sorry, this is the techy part)
    • String processing within storage class (ongoing - DTD on HEAD, OOo not yet done).
    • Integration of GSIcheck's tagtest.cxx functionalities into po2oo
      • Make pofilter do all the check tagtest can do. And/or
      • Integrate same tests into po2oo to catch problems before integrating into GSI
    • Documentation
      • Wiki documents reviewed and up to date (Pootle docs not reviewed)
      • Can extract docuwiki docs for inclusion in Toolkit
  • Pootle 0.9
    • Pootle migrated to 0.9 toolkit
    • Upload PO files (Matching the existing structure single or multifile for that language)
    • Download PO file(s) - single or multiple PO files in archive format
    • Rights
      • Enough to allow upload rights
    • New look - integrate new Pootle and WF graphics
      • Pootle templating complete
      • Redo Pootle look
  • Compile Farm
    • Compile farm for in Linux operational
      • Can do multilingual builds on Linux
      • Can integrate major patches
    • Farm machines can retrieve translations from Pootle
  • Localisation tools
    • Locale Generator 1.0 stable.

Milestone 2 - 1 July 2006 --- We love the X-Files

Goal: Pootle works internally with XLIFF while users can choose to work in PO or XLIFF format. Provide statistics like KDE that will direct localisers work

At this stage, we change Pootle internally, so that it always works with XLIFF files. User can choose to either use these XLIFF files, or - if they prefer PO files - these files will be generated on demand from the internal XLIFF files, and it will be transparent for the user, s/he will just have to click on the XLIFF button or the PO button. In the same way, when the files are uploaded back, the new information will be used to update the XLIFF internal file, independently of the format of the files being uploaded (PO or XLIFF). We also expect to have completed our compiler farm for, generating Linux and Windows versions of OpenOffice 2.0.2 based on the last changes in the Pootle server. We also expect to have finished a tool that will automatically generate patches for adding languages to the source of

In order to make Pootle useful for localiser at a higher level than a simple file server, statistics on the state of the files of each project are offered to the user, centering his/her attention on the amount of work that needs to be done for a given project or the files that need attention (because they have messages that need translation or improvement). We like the status pages of KDE and Gnome, and our goal is to give a similar service, and to improve it slightly by allowing the user to only see work that needs to be done.

  • Toolkit 1.0
    • Migrate all filters to (Migrated: HTML, DTD, .properties and PO; Not migated:, Qt TS)
    • po2xliff works according to spec
    • Can merge new PO changes to XLIFF
    • Can merge XLIFF into XLIFF (complex states will need some work)
    • Can produce minimally changed PO files from any format ie PO→XXXX→PO should not produce any formatting changes.
  • Pootle 1.0
    • All internal file handling is with XLIFF files
    • Can XLIFF or generate and export PO.
      • Caching of generated files
    • Uploads back PO or XLIFF interchangably, modifying the master XLIFF files.
    • Version Control
      • Can work with files stored in CVS/SVN
      • Have a method to commit changes back to CVS/SVN (within Pootle currently no simple tool to do commits outside Pootle except the mormal command line)
    • Emulate KDE style drilldown
    • Can filter to view only files that need attention
  • Compiler farm
    • Compilation on Windows
    • Integration of non-language patches
    • RPC-XML First Specification for Compiler farm

FIXME {DB: iCalander for goals}

Milestone 3 - 1 August 2006 --- Role games

Goal: Pootle can handle process, roles, rights and delegation

The localisation process can involve translators, reviewers and approvers (of the translations). Each one of these has different tasks, and should onlybe allow to do those tasks, and not those of the functions above. At this stage, a role will be assigned to each user of Pootle, giving him rights to do the functions expected of his/her tasks, and (in the case of the server or editor) present an interface that is well adapted to this function. There will also be a system for delegating power to functions of lower levels (in terms of permissions). The approver or language coordinator will have the right to include reviewers or translators for his/her language. The reviewer, if considered interesting, will be able to allow new translators in the system, etc. All proces information - about who does what and when - will be stored in the correct place of the XLIFF files.

  • Process information can be stored in XLIFF files
  • Pootle has defined processes and can manage XLIFF files through this process
  • Users can logon and register
  • Roles are defined in Pootle and can be associated with process
  • Permissions can be associated with a roles
  • Users with high level roles can assign roles to lower level users
    • Delegation revoking and overriding is implemented

Milestone 4 --- 1 September 2006 - Adding real value

Goal: Pootle server that integrates TM, Glossary and checks for quality of translation. Also, the front-end and back end will be effectivelly separated.

Having set the bases already, we can now start adding real value to Pootle by enriching the XLIFF files and testing them. On reaching this milestone, Pootle will already be able to include in the XLIFF files translation memory information (from a TMX file) and Glossary information specific for the messages in that file. I will also be able to run tests on files that are uploaded or edited by translators, to ensure that the traslations are technically correct. The results of the test will be stored in the XLIFF file itself, and will be available for the next step (review or approval).

Also, the process of making the back-end of Pootle independent from its from-end will be finished and integrated, preparing it for the implementation of an API that will permit access to all its information and operations.

FIXME {DB: TMX server}

  • Pootle calls the TM and Glossary wrapper to update TM and Glossary info in an XLIFF file
  • Seperate service runs checks on individual messages or on XLIFF files
    • Define how check result and overrides are stored in XLIFF files
    • Language specific configurations define check operation for Pootle
  • Integration of separation of front-end and back-end

Milestone 5 - 1 October 2006 - We can count real good now and we have direction too (Advanced Statistics & Goals) 1M

Goal: Provide advanced statistics that will help localisers strategise

  • Goals can be defined and assocaited with projects, languages or individuals
  • Relating statistics to goals
  • Estimating or projecting completion times
  • Stats for each task (translate, review, approve)

Pootle 1.5 --- Rock and Roll

Goal: Release Pootle Server 1.5

  • Check all documentation
  • Functionality and platform testing

Pootle 1.5.1 --- Steady mate

Goal: Stabalisation, optimisation and bug fixing of Pootle Server 1.5

  • Fix bugs that are reported
  • Performance tuning of Pootle Server

M XXXXX --- Distributed Pootle

Goal: Allow users to work on a slave Pootle server which can synchronise with a Master Pootle server

M XXXXX --- Tight integration with FOSS projects

Goal: Receive information automatically from upstream FOSS projects

  • Implement API to share information

Milestone Last - 30 Nov 2006

Objective: Pootle 2.0 complete and running, major development work finished

  • Pootle
    • Full process management (workflow, users, rights, etc)
    • Usefull statistics
    • Good TM and glossary integration
    • Distributed translation
      • Pootle servers can talk to each other and share information
  • Filters
    • API developed and documented
    • Major open formats for software and digital content integrated
      • Some filters contributed by community developers
    • Filters have a mechanism to correct or report issues that could break the destination file
    • Level 2 filters can mark internal markup in a neutral way so that editors can understand the markup rules.
  • Pootle Editor
    • Offers a different interface depending on your role
    • Can handle XLIFF markup
    • Uses and presents supporting information: TM, Glossary, checks
    • Editor can be driven by statistics and goals
  • Offline editor
    • Offers a different interface depending on your role
    • Can handle XLIFF markup
    • Uses and presents supporting information: TM, Glossary, checks
    • Editor can be driven by statistics and goals
    • Communicates with Pootle Server: uploads/downloads, rights, goals
  • Checks
    • Integrated and reused in editors and Pootle server (uploads)
    • Critical tests integrated in back conversion filters

Milestone Last - 31 Dec 2006

Objetive: Pootle 2.0.1 running smoothly and community created.

  • Pootle 2.0.1 server
    • Further optimisation
    • All major bugs fixed
    • Outside collaborators contributing to Pootle development
  • Pootle servers
    • Other major upstream projects using Pootle internally
    • Projects adopt Pootle to provide localisation methedology
    • A number of language teams using Pootle for cross project localisation
  • Community created
    • Community of participants outside of the core team who can help each other
    • Second level support structure provided by WordForge

Public Pootle Server


Public Pootle server starts operations. Focus on OpenOffice

A public Pootle server starts operations. This server works with PO files for any given product, but it is specially well prepared for OpenOffice. Besides allowing translators to download→translate→upload files, it will also be attached to a compiler farm that will produce builds OpenOffice with the translations included in the files (Windows and Linux platforms). The system will apply, before starting the builds, all the known checks for correctness of the transaltions.