The Django-based web application I'm working on is translated to a few different languages. So far we've used gettext/PO files for translating static files (text in code and templates, static pages); CMS pages and texts stored in the DB are translated via the admin interfaces.
This common setup works well for us developers but is not favored by our translators who'd rather always use their translation tools (with PO files) instead of using the admin interface.
Now that more and more of our content is migrated from the code to the database we tried using gettext for texts stored in the DB. While the idea sounds good the workflow around it is quite cumbersome:
- Editor changes English text in the admin interface
- Developer runs command to extract messages on a host that is connected to the production DB
- PO file is sent to translators
- Translator sends file back to developers when she's done with the translation
- Developer compiles mo files, checks it in the code base and deploys
While some of the steps could be automated by using a service like Transifex I don't see how to get around the last step. Having to deploy as a result of a database change sounds wrong.
Has anybody been able to come up with a sane gettext-based translation workflow for web applications that does not require deployments?