[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