I18N: Change how WP_Textdomain_Registry stores the default languages path.

`WP_Textdomain_Registry` was introduced in [53874] to store text domains and their language directory paths, addressing issues with just-in-time loading of textdomains when using locale switching and when using`load_*_textdomain()` functions.

Said change has inadvertently caused a performance regression exactly when using`load_*_textdomain()`, which still often is the case, where the cached information was not further used or even overridden.

This change addresses that issue by storing the default languages paths in a separate way, while at the same time making `WP_Textdomain_Registry` easier to maintain and adding new tests to catch future regressions.

Props flixos90, spacedmonkey, ocean90, SergeyBiryukov, costdev.
Fixes #39210.

git-svn-id: https://develop.svn.wordpress.org/trunk@54669 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Pascal Birchler
2022-10-24 10:01:01 +00:00
parent a5463b4500
commit 799d7dc86f
6 changed files with 258 additions and 88 deletions
+2 -2
View File
@@ -28,7 +28,7 @@ class Tests_L10n_LoadTextdomain extends WP_UnitTestCase {
/** @var WP_Textdomain_Registry $wp_textdomain_registry */
global $wp_textdomain_registry;
$wp_textdomain_registry->reset();
$wp_textdomain_registry = new WP_Textdomain_Registry();
}
public function tear_down() {
@@ -36,7 +36,7 @@ class Tests_L10n_LoadTextdomain extends WP_UnitTestCase {
/** @var WP_Textdomain_Registry $wp_textdomain_registry */
global $wp_textdomain_registry;
$wp_textdomain_registry->reset();
$wp_textdomain_registry = new WP_Textdomain_Registry();
parent::tear_down();
}