We might be on to something here…
“The purpose of this paper is to describe the solution we implemented to manage the translation cost of the localisation of a massively multiplayer online text based role playing game (MMORPG). The problem we faced was the translation of large sets of sentences that were structured very similarly, contained similar content and that needed to be scalable. In this context, the scalability of the translation content referred to the ability to add more content as desired.”
Flavours are a good idea, but after a lot of investigation this month I think they need to be decoupled from translations to an extent. There’s a few reasons for this.
The translations are in a different format to the core languages, are not mod-friendly (all in one file) and are kind of difficult to use. That’s specific to our implementation but it still is a consideration if we want to make translations easy.
Some of our flavours (eg
DeliverPackage) have weighting values in them. That’s fine, but its most certainly not language data. And it does make a difference, because if flavours and weights were substantially different between two languages, then the game could end up being harder or easier depending on which language you choose. That’s wrong.
So the plan is to start using Transifex for all our translations. It makes it really easy for anyone to add or update even a single string (dumb website, no git, no PR, no anything). The problem for flavours is that strings are simple key/value pairs, and all languages have exactly the same set of strings.
Fortunately the existing set of translations we have all the same number of flavours for each translation, so I’ve been able to implement a form of flavours using fixed strings. The main difference is that if you want to add a new flavour, it needs to be translated to all languages.
Is this a problem in practice? I don’t know. It does reduce flexibility in some ways, but it makes things much better in others. There’s likely still more work to be done because as the above paper shows, localisation often is not just a 1:1 conversion, but sometimes needs to add, remove or reorder text to better fit the language. For now though, this should be a good improvement.