[wp-trac] [WordPress Trac] #39210: switch_to_locale() unloads all plugin and theme translations

WordPress Trac noreply at wordpress.org
Tue Oct 20 16:04:15 UTC 2020


#39210: switch_to_locale() unloads all plugin and theme translations
----------------------------------------------------+----------------------
 Reporter:  gchtr                                   |       Owner:  ocean90
     Type:  defect (bug)                            |      Status:  closed
 Priority:  normal                                  |   Milestone:  5.6
Component:  I18N                                    |     Version:  4.7
 Severity:  normal                                  |  Resolution:  fixed
 Keywords:  has-patch has-unit-tests needs-testing  |     Focuses:
----------------------------------------------------+----------------------
Changes (by ocean90):

 * owner:  (none) => ocean90
 * status:  new => closed
 * resolution:   => fixed


Comment:

 In [changeset:"49236" 49236]:
 {{{
 #!CommitTicketReference repository="" revision="49236"
 I18N: Introduce `WP_Textdomain_Registry` to store text domains and their
 language directory paths.

 Previously, when using `switch_to_locale()` all current loaded text
 domains were unloaded and added to the `$l10n_unloaded` global. This
 prevented the just-in-time loading for text domains after a switch. The
 just-in-time loading was also only possible if the translations were
 stored in `WP_LANG_DIR`. Both issues have been fixed.

 * Adds `WP_Textdomain_Registry` to keep track of the language directory
 paths for all plugins and themes.
 * Updates all `load_*_textdomain()`  functions to store the path in
 `WP_Textdomain_Registry`.
 * Adds `$reloadable` parameter to `unload_textdomain()` to define whether
 a text domain can be loaded just-in-time again. This is used by
 `WP_Locale_Switcher::load_translations()`.
 * Extends `_load_textdomain_just_in_time()` to also support text domains
 of plugins and themes with custom language directories.
 * Fixes the incorrect
 `test_plugin_translation_after_switching_locale_twice()` test which should
 have catch this issue earlier.
 * Adds a new test plugin/theme to test the loading of translations with a
 custom language directory.
 * Deprecates the now unused and private `_get_path_to_translation()` and
 `_get_path_to_translation_from_lang_dir()` functions.

 Props yoavf, swissspidy, dd32, ocean90.
 See #26511.
 Fixes #39210.
 }}}

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


More information about the wp-trac mailing list