Lost in Translation - Development Log #451

Martin and Michi finally tackle how to handle languages across all systems and Michi fixes another cause of the white screen of death bug.

Avatar Michi

Michi (molp)

A while ago we started the community translation project and were (pleasantly) surprised about the amount of feedback. The translation team has grown to 16 people in the meantime and lots of progress translating into eight languages has been made! Thanks so much!

If you have ever worked with locales you might be aware that dealing with them is on a similar difficulty level as handling dates and times on a computer. It's a mess. If you never heard of locales, it basically is a representation of a language, a region and local variants of the language. Sounds trivial, right?

For example as a German I prefer the locale de for German. I could add DE to specify that I want the German that's being spoken in Germany. German is spoken in other regions as well. One locale representation for that would be de_DE.

Since computers have to deal with different languages for ages now, there are different standards and best practices to build these locale strings. It seems every software we use on the server and client side interprets these locale strings slightly different or requires a specific format. For example, another common form would be de-DE, other systems skip the region part and just use de or DE. It gets more complicated for other languages..

Martin and I decided that it is finally time to spend some time to read up on current best practices and adjust the way we handle languages across all systems: AirlineSim, Prosperous Universe, the forums, our backend systems and so on.

Most of the work was done by Martin, I just fixed the issues with Prosperous Universe. You can read more about it in his AirlineSim devlog.

I also had a look at the white screen of death error more and more users reported lately. A few weeks ago I thought I fixed it, but it seems there are more causes than I previously thought. The latest problem stems from invalid sessions. Usually we keep sessions around for two days, or a long time if you select the "I trust this computer" check box during login. Once the session is no longer valid we used to display a red error "Your session expired, click here to login". This error message wasn't shown any more and the game just showed the loading animation while trying to load game data from the server. The server didn't send game data due to the missing authentication and thus the loading animation never disappeared.

I will deploy a fix for this bug along with the latest community translations in the next days.

As always: we'd love to hear what you think: join us on Discord or the forums!

Happy trading!