+
+-----------------
+7. Language setup
+-----------------
+SquirrelMail uses set_up_language() function to setup language environment.
+Environment is setup automatically when include/validate.php is loaded.
+
+SquirrelMail gets interface language from three places:
+ a) user preference. It is set in Options -> Display Preferences -> Language.
+ preference uses language key. If user's preferences are not available (user
+ is not logged in), system tries to extract language value from
+ 'squirrelmail_language' cookie.
+ b) default squirrelmail language that is set in configuration
+ ($squirrelmail_default_language variable).
+ c) preferred language setting provided by browser. It is used only when default
+ squirrelmail language is set to empty string
+
+If language information is not available, SquirrelMail falls back to US English
+translation.
+
+-------------
+8. Time zones
+-------------
+If php install allows modifying environment variable TZ, SquirrelMail allows
+end users to select different time zone in their preferences. It can be set in
+Options -> Personal Information -> Your current timezone. Time zone is
+setup automatically when include/validate.php is loaded.
+
+If TZ variable can't be modified (php is running is safe mode and variable
+is not listed in php safe_mode_allowed_env_vars), user's time zone options are
+not visible and interface use default webserver's time zone.
+
+List of available time zones is stored in locale/timezones.cfg. Current list
+of time zones uses some time zone names that depend on webserver's system
+libraries. These names are not compatible with Windows operating system.
+
+TODO: move time zone information to php array in order to be able to translate
+it and make sure that time zone names are compatible with Windows operating
+system. Or at least provide 'default' and 'strict' time zone options in
+SquirrelMail configuration. Maybe even provide 'custom' time zone list
+options.
+
+If modifications in TZ environment are visible in your webserver's logs (time
+offset is changed), make sure that you can reproduce such behavior in latest php
+version and report bug to php developers. Issue can be fixed by blocking use of
+time zone (php safe mode and TZ is not listed in safe_mode_allowed_env_vars
+setting or forced_prefs plugin) or by attaching special php script with
+putenv('TZ=some time zone') call in php auto_append_file setting (suggestion is
+not tested and you might have to fix all SquirrelMail exit calls).
+
+Please note, that use of auto_append_file provides only temporally workaround
+and does not fix your php setup. Script that runs as unprivileged user, should
+be unable to affect webserver's logging system.
+