- // Switch translation in case WPLANG was changed.
- $language = get_option( 'WPLANG' );
- if ( $language ) {
- load_default_textdomain( $language );
- } else {
- unload_textdomain( 'default' );
+ /*
+ * Switch translation in case WPLANG was changed.
+ * The global $locale is used in get_locale() which is
+ * used as a fallback in get_user_locale().
+ */
+ unset( $GLOBALS['locale'] );
+ $user_language_new = get_user_locale();
+ if ( $user_language_old !== $user_language_new ) {
+ load_default_textdomain( $user_language_new );