Make WordPress Core


Ignore:
Timestamp:
01/30/2023 10:25:53 AM (21 months ago)
Author:
swissspidy
Message:

I18N: Introduce switch_to_user_locale().

This new function makes it easier to switch to a specific user’s locale by reducing duplicate code and storing the user’s ID as additional context for plugins to consume. Existing usage of switch_to_locale() in core has been replaced with switch_to_user_locale() where appropriate.

Also, this change ensures WP_Locale_Switcher properly filters determine_locale so that anyyone using the determine_locale() function will get the correct locale information when switching is in effect.

Props costdev.
Fixes #57123.
See #26511.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/privacy-tools.php

    r54891 r55161  
    596596    // Localize message content for user; fallback to site default for visitors.
    597597    if ( ! empty( $request->user_id ) ) {
    598         $locale = get_user_locale( $request->user_id );
     598        $switched_locale = switch_to_user_locale( $request->user_id );
    599599    } else {
    600         $locale = get_locale();
    601     }
    602 
    603     $switched_locale = switch_to_locale( $locale );
     600        $switched_locale = switch_to_locale( get_locale() );
     601    }
    604602
    605603    /** This filter is documented in wp-includes/functions.php */
Note: See TracChangeset for help on using the changeset viewer.