Opened 4 years ago
Last modified 5 months ago
#47547 new defect (bug)
switch_to_locale( 'en_US' ) is unreliable
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Awaiting Review | Priority: | normal |
Severity: | normal | Version: | |
Component: | I18N | Keywords: | needs-patch reporter-feedback |
Focuses: | administration | Cc: |
Description (last modified by )
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.
- ❌The return value of
determine_locale()
is the user's language, noten_US
. - ✅Localised text without a textdomain (ie. text from core) is correctly displayed in
en_US
. - ❌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.
Change History (4)
#2
@
4 years ago
- Description modified (diff)
Sorry about the emoji's disappearing, was fixed in meta#3838 so added them back.
Note: See
TracTickets for help on using
tickets.
I may be off-base but I believe some findings 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."