“Hey, Code Crew! We’ve secured an event in Germany. Can we have a version of the system in German, please?”
Because that’s just far too limiting and would lead to having multiple versions of the system based purely on a national language. A maintenance nightmare.
After a bit of a discussion about the particular event we put in a way for the system to allow a selection of languages to be made available, and for the customer using the system to be able to choose which one they want to interact in, and for the system to then dynamically populate buttons and labels, etc. accordingly.
From a database point of view that change is quite straightforward (event-language relationship, language-keyed texts, and so on). The majority of the work was converting the customer-facing app to use the dynamic data and for there to be a small administration area in the business app.
This was a good piece of work to put in as if my client gets an event in France then it’s just a case of creating the idiomatic French for the buttons and labels and specifying that the event can use French. Of course, if the event only has the French language as an option then the system does not waste time offering a selection of 1 language, it will make the choice autmatically and move straight on to the main app.
* although I didn’t put it quite like that 🙂