I'm not sure if it's the best idea to open up modification of language preference to the users. It seems to me this would be a setting that once properly set, would never need to be changed again. Why not have the users submit a request/ticket to have it changed, and someone with address book Change access can do it on their behalf. The language preference for a user is kept in the Address Book, the data item alias is LNGP, which is accessed via application P01012, on the "Additional 1" tab.
I am with the point that users should not be allowed to change this , this should be controlled in your org by a CNC . The application which opens is P0085 and when you click on user profile it goes to P0092 where you can select user and also set this language when defining the setup and giving him address book #