[wp-trac] [WordPress Trac] #47547: switch_to_locale( 'en_US' ) is unreliable

WordPress Trac noreply at wordpress.org
Tue Jun 18 01:03:26 UTC 2019


#47547: switch_to_locale( 'en_US' ) is unreliable
--------------------------+------------------------------
 Reporter:  johnbillion   |       Owner:  (none)
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Awaiting Review
Component:  I18N          |     Version:
 Severity:  normal        |  Resolution:
 Keywords:  needs-patch   |     Focuses:  administration
--------------------------+------------------------------

Old description:

> Given a site that uses `en_US` as its language, a user with their user
> language set to something else, and that user logged into the admin
> dashboard, calling `switch_to_locale( 'en_US' )` appears to be
> unreliable.
>
> 1. ❌ The return value of `determine_locale()` is the user's language,
> not `en_US`.
> 2. ✅ Localised text without a textdomain (ie. text from core) is
> correctly displayed in `en_US`.
> 3. ❌ Localised text with a textdomain (ie. text from plugins or themes)
> is incorrectly displayed in the user's language. This may be related to
> #39210.
>
> Given a site that itself uses a language other than `en_US`, calling
> `switch_to_locale( 'en_US' )` does appear to work although I haven't
> tested it extensively.

New description:

 Given a site that uses `en_US` as its language, a user with their user
 language set to something else, and that user logged into the admin
 dashboard, calling `switch_to_locale( 'en_US' )` appears to be unreliable.

 1.  The return value of `determine_locale()` is the user's language, not
 `en_US`.
 2.  Localised text without a textdomain (ie. text from core) is correctly
 displayed in `en_US`.
 3.  Localised text with a textdomain (ie. text from plugins or themes) is
 incorrectly displayed in the user's language. This may be related to
 #39210.

 Given a site that itself uses a language other than `en_US`, calling
 `switch_to_locale( 'en_US' )` does appear to work although I haven't
 tested it extensively.

--

Comment (by garrett-eclipse):

 I may be off-base but I believe some findings
 [https://core.trac.wordpress.org/ticket/43985#comment:39 here] can shed
 some light;
 "switch_to_locale() only does something if the locale passed to it is
 different than the value of get_locale() outside of the admin. Inside the
 admin, it only switches if it's different than the locale of the current
 user."

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/47547#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list