This question is about a big, continuously growing project with 'frequent' releases.
Translations to a handful of languages are needed for every change. Obtaining all the translations takes fairly long, like half a release sprint or more.
But the release isn't finished without translations (plus they're in VCS, so can't make a release tag). Requesting the translations when the code is done would delay the release substantially.
One way to deal with this is by trying to predict every sentence beforehand and request translations for them at the start of a sprint. But:
It feels like this problem is likely already solved somewhere in the world. What do people use?
Mark
A service like Transifex seems like it could help decouple translations from code, though I haven't seen how it works when using a remote translator.
I only know 3 classic approaches to translations regardless of scale also we only have 3 possible modi operandi
post processing
pre has the problem of flexibility and missing cases
So those are the classic trades we can mix them to some degree as you know but in my experience those are the obvious problems of each application. And you need to find a process that works good for your team.
About the solutions:
Personally I worked with the first two technologies and with all 3 operational modi.
If you ask me what is best .... I don't know the only thing I am pretty sure is that you should start with a base language where you easily get translators so you only use 1 level of semantics between languages.
These are my only thoughts atm.
The frequency is not the issue, the coverage can be on the other hand if you give your translators and services the right tools this can be easy and efficient.
The problem with any system is state to time where you would need to track the current version + translations catalog just to be sure.
Also the next questions are mixed stacks who make this problem even more interesting.
about VCS maybe don't make a release tag :) just do the checkout and rsync the files to a package folder? without vcs? I know it's hacky .... just thinking out loud
well, i have experience with the translations in prestashop or wordpress, and less in full custom applications. BUT.. i would advise you to use the () from php, that is if your application uses php, if it uses other languages, look at the documentation to see if it has something thats like this function () or gettext.
more info here :
Back to you: i youl'd use .mo and .po files when dealing with translations, because you can see them as an associative array that has the key = your words and value = the translations text. And i feel you'd have the flexibility to search the web and download already made files and use them in your existing application, if the words are the same.
Well this is my idea. if you guys have any new ones, i'd like to hear them out.
Marco Alka
Software Engineer, Technical Consultant & Mentor
If you already decoupled the translations from your code and maintain them separately, then it's a problem with your translation agency. Have you thought about trying a different one which is faster?
For decoupling, we store a JSON file with the translations in the versioning system, and we use a script to generate an EXCEL sheet from it for the translation agency (which we can easily convert back to JSON) and another script which generates optimized resource files for release.