Make WordPress Core


Ignore:
Timestamp:
11/21/2016 04:06:38 PM (8 years ago)
Author:
ocean90
Message:

I18N: Add an additional caching layer for _load_textdomain_just_in_time().

Previously, if no translation files exist for a text domain, _load_textdomain_just_in_time() went through the entire process each time it was called. This results in an increased call to get_locale() and its locale filter.
This change splits the logic into _get_path_to_translation() and _get_path_to_translation_from_lang_dir(). The former, which is used by _load_textdomain_just_in_time(), caches the result of the latter. It also removes some non-working code from WP_Locale_Switcher::load_translations().

Props jrf, swissspidy, sharkomatic, ocean90.
Fixes #37997.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/l10n/localeSwitcher.php

    r38961 r39330  
    2525        unset( $GLOBALS['l10n'] );
    2626        unset( $GLOBALS['l10n_unloaded'] );
     27        _get_path_to_translation( null, true );
    2728    }
    2829
     
    3031        unset( $GLOBALS['l10n'] );
    3132        unset( $GLOBALS['l10n_unloaded'] );
     33        _get_path_to_translation( null, true );
    3234
    3335        parent::tearDown();
Note: See TracChangeset for help on using the changeset viewer.