Interactive language switching (especially: anonymous users)

So I have read all the q&a on this forum. Seems to me there is no real possibility to switch a language at runtime (clicking a country flag, resetting the System.User_Language association and automatically show all forms in the new language). I have noticed some alternative approaches but they all have disadvantages or force you to have different forms for each language which undoubtably requires a lot of maintenance. I of course would like to use the default language translation features of the modeller. Is there any way to get the solution in the first paragraph to work properly?
1 answers

We have implemented the following solution:

After the anonymous user has selected a language, you retrieve the sessionID with a Java action. Then create an object in which you set the sessionID and set an association to the selected language. After login you retrieve the sessionID again with a Java action and retrieve the created object by sessionID. You can then retrieve the associated language through that object and set the System.User_Language. Make sure you cleanup the objects that are used for storing the sessionID.

I'm curious to hear if this is applicable to your particular situation, but it sounds like it should work.