I suggest that you don't allow users to switch language dynamically through the UI. Instead let users specify their language (locale) when they sign up for the system (this will be the value of the Locale attribute in the RegularUser object).
So for every user that logs in you will know his/her locale. So to be able to display a different Visual perspective for different users, create a process:
If LoggedInSystemUser.Locale = 'Dutch' Then
DISPLAY PERSPECTIVE 'MyDutch_VP
ELSE If LoggedInSystemUser.Locale = 'French' Then
DISPLAY PERSPECTIVE 'MyFrench_VP
etc
Then get this process to be executed after the default VP is shown (check the General tab of the VP)
By the way, there is another way of doing it. If you just want to change the HTML that is displayed on startup, you may be better off creating different "presentations" for a RegularUser object. Then you will only have one VP and several presentations - one for each locale. The process above will display a presentation rather than a perspective.