It shouldn't be too hard. The one issue I can see is that the list of languages is basically hard coded into the user_form.htm template.
You probably should convert the options list into a separate "sub" template that can be included as needed (and maintained in one place).
To have a "change language" option box, you will have to add a form to the desired page(s) that includes a hidden user id and the language drop down box.
You'll probably need to add an "saveLanguage()" method to the UserAction class to act as the form action. One issue I see here is how to make sure you can redirect the user back to their original page. You may need to include the calling page URL as a hidden field.
Make sure you review the security methods used in the editSave() code (user profile update). You don't want to let hackers change everyone's language. Only admins and the user should be able to call the form action and have it work. [originally posted on jforum.net by monroe]