How To  Getting started with Transtats ...

Check Inventory

Graphs will be generated for enabled languages, aliases are used while syncing. One can create a language set, which can be associated with a release branch. Multiple instances of a translation platform can be added. A release branch (for example - Fedora 28) should have a language set and a schedule. Transtats jobs sync with upstream repository, translation platform and build system to keep stats, build tags and schedule latest.

Add and Configure Packages

While adding a package, upstream URL is required. And package name is verified with selected translation platform. Translation of a package can be tracked for multiple release streams. Package should be sync'd with translation platform and build system. Once sync'd, branch mapping can be created. It maps Transtats release branches with most suitable project versions available at translation platform and with appropriate build tags. Package can be sync'd with upstream repo as well.

Generate Diff

Once we have all versions / tags mentioned in branch mapping of a package sync'd with either translation platform or build system, differences can be created and observed. This answers - for a package - latest translations are packaged or not? If not, is some patch applied at the last moment? Which languages need attention?

Add Graph Rule

Translation coverages (translation status of a group of packages in a set of languages to a given release) are based on rules. Slug form of rule name would be saved. This should be specific for a release branch. Packages having branch mapping created can only be included here. Languages could be picked from language set associated with the release branch or from enabled ones. Somehow if a package is not tracked for a release stream and selected for inclusion Transtats would show an error.


Transtats has two traversal options: releases and packages. One can see high level summary and can pick any one release or a package for details. Summary can tell you - packages which are out of sync, translation workload estimate for each language per release, and much more. Detailed views contain language wise stats, translation position etc. Another form is coverage, which depends on graph rules and branch mapping.


Is Transtats project opensource? Where we have docs written?

Yes. Source is available at GitHub. Projects website is and point your browser to for docs.

Which translation platforms and build systems are currently supported?

Transtats supports DamnedLies and Zanata. Transtats can talk to koji build system.

What is branch mapping? And why is it important?

Every package has its own branch mapping. This establishes mapping between:

Transtats release_branchtranslation platform project_versionbuild system build_tag
On the basis of this, translation differences/gaps are calculated/located.

How to figure out which languages need attention for any of the packages?

Please navigate to package details page. Sync the package with translation platform and build system. Use shortcuts. Update branch mapping.
Once all the branches mapped got sync'd, update statistics diff. Here you could find an answer to this!

What jobs are available?

Broadly two categories: Predefined and YAML based.
Predefined jobs fill data required by various work flows. syncbuildtags should be run first (one-time), as it is required for branch mapping and syncdownstream job. Three templates are available in YAML based jobs: syncupstream, syncdownstream and stringchange.

Why YAML based jobs are introduced?

YAML based jobs add great level of flexibility by broadening capabilities to interact with build systems, translation platforms and source repositories.

Which YAML job to run when and why?

They can be run in any order. Just that required values should be obeyed.
  • To collect translation statistics from package source repository, syncupstream job can be triggered. This job can only be run for added packages.
  • Using syncdownstream job, one can inspect translation files and generate statistics in latest built SRPM. Applies patches (in SPEC file) also.
  • Translation string change can be detected using stringchange job. This is highly flexible. Requires package branch mapping and POT command.

How to look and share for details about a YAML job ran?

Please navigate to job log details page. Here you would find the YAML supplied to the job and respective output of each task. If the job type is stringchange msgid diff found in translation template would be available along with full line-by-line file diff. This URL can be copied and shared.

I like the idea and want to contribute, how should I start?

Please look out for contributing guide to get you started.

While working with Transtats I got an issue, how should I report it?

You're welcome! Please create a GitHub Issue or join #transtats channel at IRC freenode.

Where to find what features will be available in coming Transtats release?

Please see Roadmap section in docs. You may also like going through changelog.