Saturday, March 27, 2010

git-pull from

I don't like localization services (portals) that require a write access to the upstream VCS, because distributed version control systems (e.g. git) are designed for a different type of work flow.

Unfortunately, the access to VCS is a preferred method used by (note that now transifex allows to pull .po files from .tar.gz and then the final translations are send by e-mail (!) to the package maintainer).

So... I started to use 3 years ago. And it works. It works very successfully without any automatic interaction with upstream VCS. The final translated .po files are available by HTTP or RSYNC. For example:
  rsync  -Lrtvz  rsync://$PROJECT/$LANG.po  po
downloads selected .po file to the po/ directory. I usually sync my private GIT repository with the latest PO stuff from few hours before package release. The next step after .po files download is to call git-add (for new .po files) and git-commit. The ideal solution is to commit with the --author= option where the author name is a "Last-Translator" from PO file.

Because I'm lazy, I have a script for this task:
  git-tp-sync <project-name> [<lang> ...]
And here is an example from git-log:
  commit d609d0fb8ba1d2302d8bfd0c85903316af83c402
Author: Clytie Siddall
Date: Mon Mar 22 09:36:51 2010 +0100

po: update vi.po (from


  1. Contributing by Translation Project is a real nightmare for translator. :(

  2. translation project is horrible.