The idea setup would be:
- The localizer gets the translation files through Narro import
- Translation begins (offline or online)
- The localizer pushes the translation files through Narro export
The current Mozilla setup is:
- Pull the entire Mozilla repository (> 500MB)
- Scan its directory for localization files and build through symlinks a folder structure that resembles the one that localizers need to push in their repository
- Run an import from that folder
- Translation begins
- Translation is exported in XPI format for testing purposes
- There's a script made by Axel Hecht, compare-locales that does some checks for validity, because translations can really break the product. To help, I'm running that after every export and post a link to a diff file that contains links to the texts that need fixing
- Translation is exported in the structure that should be comitted to Mercurial
- The localizer needs to have Mercurial through SSH with key authentication set up
- The localizer commits the structure exported from Narro (hg pull .../xx-XX.zip && unzip xx-XX.zip && hg commit && hg push)
- The localizer checks the tinderbox for any build failures
- The localizer checks the dashboard for any problems detected by compare-locales
- The localizer does a signoff (pushes a button for the revision he wants to release) in the dashboard
I may have forgotten some steps, but obviously this is not the perfect setup. I'm keen on helping making things easier as I'm a localizer myself but there are some blockers here:
- I can commit via Narro, but that causes problems because several localizers commit with the same account. I can't let localizers commit with their credentials because that would mean uploading their private SSH key and that defeats the purpose of a SSH key. From my experience, getting rid of that is a real advantage as you often want to fix only a few strings while you're on the road and don't feel like hg pull, hg commit, hg push or don't have Mercurial installed or your SSH key set up.
- I don't have access only to the localization files. I have to pull the entire repository.
- To build a language pack I need the whole repository.
Now don't think that Mozilla is the only software that has this complicated setup. But this localizer tool should be able to cope even with this situation, because it's not a perfect world we live in. It's a challenge.