[wp-trac] [WordPress Trac] #26511: Introduce a locale-switching function

WordPress Trac noreply at wordpress.org
Thu Aug 11 12:37:21 UTC 2022


#26511: Introduce a locale-switching function
-------------------------------------------------+-------------------------
 Reporter:  johnbillion                          |       Owner:  swissspidy
     Type:  feature request                      |      Status:  closed
 Priority:  high                                 |   Milestone:  4.7
Component:  I18N                                 |     Version:
 Severity:  normal                               |  Resolution:  fixed
 Keywords:  has-patch has-unit-tests commit      |     Focuses:
  has-dev-note                                   |
-------------------------------------------------+-------------------------

Comment (by swissspidy):

 In [changeset:"53874" 53874]:
 {{{
 #!CommitTicketReference repository="" revision="53874"
 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 `$locale` parameter to `load_textdomain()` to specify the locale
 the translation file is for.
 * 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 caught this issue earlier.
 * Adds a new test plugin and 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.

 Previously added in [49236] and reverted in [49236] to investigate
 concerns which are now addressed here.

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

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


More information about the wp-trac mailing list