There is a business rule - Change Own Profile - sys_script.do?sys_id=e1d271450a0a0b440098a39d7d36903e It reflects the following user profile changes to user session:
- Language
- Timezone
- Time format
- Date format It runs if user changes own profile. The script uses API which isn't documented though. The interesting thing is that language session changes doesn't apply through session API calls.
Generally, the following system objects are used to manage user preferences:
- GlideSession
- GlideUser
- User preference 'user.language'
// Date format
gs.getSession().setDateFormat(current.date_format);
gs.getUser().setDateFormat(current.date_format);
// Time format
gs.getSession().setTimeFormat(current.time_format);
gs.getUser().setTimeFormat(current.time_format);
// Time zone
gs.getSession().setTimeZoneName(current.time_zone);
// Language
var user = gs.getUser();
user.setPreference('user.language', language);
user.savePreferences();
// Language (invalid code, but interesting)
gs.getSession().setLanguage(current.preferred_language);
gs.getSession().loadUserByID(gs.getUser().getID());