Make WordPress Core

Changeset 49566


Ignore:
Timestamp:
11/12/2020 02:41:19 PM (4 years ago)
Author:
ocean90
Message:

I18N: Revert [49236] for now to investigate alternative implementations.

See #39210, #51678, #26511.

Location:
trunk
Files:
5 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-locale-switcher.php

    r49236 r49566  
    197197
    198198        foreach ( $domains as $domain ) {
    199             // The default text domain is handled by `load_default_textdomain()`.
    200199            if ( 'default' === $domain ) {
    201200                continue;
    202201            }
    203202
    204             unload_textdomain( $domain, true );
     203            unload_textdomain( $domain );
    205204            get_translations_for_domain( $domain );
    206205        }
     
    220219     */
    221220    private function change_locale( $locale ) {
    222         global $wp_locale;
     221        // Reset translation availability information.
     222        _get_path_to_translation( null, true );
    223223
    224224        $this->load_translations( $locale );
    225225
    226         $wp_locale = new WP_Locale();
     226        $GLOBALS['wp_locale'] = new WP_Locale();
    227227
    228228        /**
  • trunk/src/wp-includes/deprecated.php

    r49236 r49566  
    41354135    return is_string( $value ) ? addslashes( $value ) : $value;
    41364136}
    4137 
    4138 /**
    4139  * Gets the path to a translation file for loading a textdomain just in time.
    4140  *
    4141  * Caches the retrieved results internally.
    4142  *
    4143  * @since 4.7.0
    4144  * @deprecated 5.6.0
    4145  * @access private
    4146  *
    4147  * @see _load_textdomain_just_in_time()
    4148  *
    4149  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
    4150  * @param bool   $reset  Whether to reset the internal cache. Used by the switch to locale functionality.
    4151  * @return string|false The path to the translation file or false if no translation file was found.
    4152  */
    4153 function _get_path_to_translation( $domain, $reset = false ) {
    4154     _deprecated_function( __FUNCTION__, '5.6.0', 'WP_Textdomain_Registry' );
    4155 
    4156     static $available_translations = array();
    4157 
    4158     if ( true === $reset ) {
    4159         $available_translations = array();
    4160     }
    4161 
    4162     if ( ! isset( $available_translations[ $domain ] ) ) {
    4163         $available_translations[ $domain ] = _get_path_to_translation_from_lang_dir( $domain );
    4164     }
    4165 
    4166     return $available_translations[ $domain ];
    4167 }
    4168 
    4169 /**
    4170  * Gets the path to a translation file in the languages directory for the current locale.
    4171  *
    4172  * Holds a cached list of available .mo files to improve performance.
    4173  *
    4174  * @since 4.7.0
    4175  * @deprecated 5.6.0
    4176  * @access private
    4177  *
    4178  * @see _get_path_to_translation()
    4179  *
    4180  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
    4181  * @return string|false The path to the translation file or false if no translation file was found.
    4182  */
    4183 function _get_path_to_translation_from_lang_dir( $domain ) {
    4184     _deprecated_function( __FUNCTION__, '5.6.0', 'WP_Textdomain_Registry' );
    4185 
    4186     static $cached_mofiles = null;
    4187 
    4188     if ( null === $cached_mofiles ) {
    4189         $cached_mofiles = array();
    4190 
    4191         $locations = array(
    4192             WP_LANG_DIR . '/plugins',
    4193             WP_LANG_DIR . '/themes',
    4194         );
    4195 
    4196         foreach ( $locations as $location ) {
    4197             $mofiles = glob( $location . '/*.mo' );
    4198             if ( $mofiles ) {
    4199                 $cached_mofiles = array_merge( $cached_mofiles, $mofiles );
    4200             }
    4201         }
    4202     }
    4203 
    4204     $locale = determine_locale();
    4205     $mofile = "{$domain}-{$locale}.mo";
    4206 
    4207     $path = WP_LANG_DIR . '/plugins/' . $mofile;
    4208     if ( in_array( $path, $cached_mofiles, true ) ) {
    4209         return $path;
    4210     }
    4211 
    4212     $path = WP_LANG_DIR . '/themes/' . $mofile;
    4213     if ( in_array( $path, $cached_mofiles, true ) ) {
    4214         return $path;
    4215     }
    4216 
    4217     return false;
    4218 }
  • trunk/src/wp-includes/l10n.php

    r49236 r49566  
    690690 * @since 1.5.0
    691691 *
    692  * @global MO[]                   $l10n                   An array of all currently loaded text domains.
    693  * @global MO[]                   $l10n_unloaded          An array of all text domains that have been unloaded again.
    694  * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.
     692 * @global MO[] $l10n          An array of all currently loaded text domains.
     693 * @global MO[] $l10n_unloaded An array of all text domains that have been unloaded again.
    695694 *
    696695 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
     
    699698 */
    700699function load_textdomain( $domain, $mofile ) {
    701     global $l10n, $l10n_unloaded, $wp_textdomain_registry;
     700    global $l10n, $l10n_unloaded;
    702701
    703702    $l10n_unloaded = (array) $l10n_unloaded;
     
    757756    $l10n[ $domain ] = &$mo;
    758757
    759     /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    760     $wp_textdomain_registry->set( $domain, dirname( $mofile ) );
    761 
    762758    return true;
    763759}
     
    767763 *
    768764 * @since 3.0.0
    769  * @since 5.6.0 Added the `$reloadable` parameter.
    770765 *
    771766 * @global MO[] $l10n          An array of all currently loaded text domains.
    772767 * @global MO[] $l10n_unloaded An array of all text domains that have been unloaded again.
    773768 *
    774  * @param string $domain     Text domain. Unique identifier for retrieving translated strings.
    775  * @param bool   $reloadable Whether the text domain can be loaded just-in-time again.
     769 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
    776770 * @return bool Whether textdomain was unloaded.
    777771 */
    778 function unload_textdomain( $domain, $reloadable = false ) {
     772function unload_textdomain( $domain ) {
    779773    global $l10n, $l10n_unloaded;
    780774
     
    785779     *
    786780     * @since 3.0.0
    787      * @since 5.6.0 Added the `$reloadable` parameter.
    788      *
    789      * @param bool   $override   Whether to override the text domain unloading. Default false.
    790      * @param string $domain     Text domain. Unique identifier for retrieving translated strings.
    791      * @param bool   $reloadable Whether the text domain can be loaded just-in-time again.
    792      */
    793     $plugin_override = apply_filters( 'override_unload_textdomain', false, $domain, $reloadable );
     781     *
     782     * @param bool   $override Whether to override the text domain unloading. Default false.
     783     * @param string $domain   Text domain. Unique identifier for retrieving translated strings.
     784     */
     785    $plugin_override = apply_filters( 'override_unload_textdomain', false, $domain );
    794786
    795787    if ( $plugin_override ) {
    796         if ( ! $reloadable ) {
    797             $l10n_unloaded[ $domain ] = true;
    798         }
     788        $l10n_unloaded[ $domain ] = true;
    799789
    800790        return true;
     
    805795     *
    806796     * @since 3.0.0
    807      * @since 5.6.0 Added the `$reloadable` parameter.
    808      *
    809      * @param string $domain     Text domain. Unique identifier for retrieving translated strings.
    810      * @param bool   $reloadable Whether the text domain can be loaded just-in-time again.
    811      */
    812     do_action( 'unload_textdomain', $domain, $reloadable );
     797     *
     798     * @param string $domain Text domain. Unique identifier for retrieving translated strings.
     799     */
     800    do_action( 'unload_textdomain', $domain );
    813801
    814802    if ( isset( $l10n[ $domain ] ) ) {
    815803        unset( $l10n[ $domain ] );
    816804
    817         if ( ! $reloadable ) {
    818             $l10n_unloaded[ $domain ] = true;
    819         }
     805        $l10n_unloaded[ $domain ] = true;
    820806
    821807        return true;
     
    882868 */
    883869function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path = false ) {
    884     global $wp_textdomain_registry;
    885 
    886870    /**
    887871     * Filters a plugin's locale.
     
    910894    }
    911895
    912     /* @var WP_Textdomain_Registry $wp_textdomain_registry */
    913     $wp_textdomain_registry->set( $domain, $path );
    914 
    915896    return load_textdomain( $domain, $path . '/' . $mofile );
    916897}
     
    921902 * @since 3.0.0
    922903 * @since 4.6.0 The function now tries to load the .mo file from the languages directory first.
    923  *
    924  * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.
    925904 *
    926905 * @param string $domain             Text domain. Unique identifier for retrieving translated strings.
     
    930909 */
    931910function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
    932     global $wp_textdomain_registry;
    933 
    934911    /** This filter is documented in wp-includes/l10n.php */
    935912    $locale = apply_filters( 'plugin_locale', determine_locale(), $domain );
     
    944921    $path = WPMU_PLUGIN_DIR . '/' . ltrim( $mu_plugin_rel_path, '/' );
    945922
    946     /* @var WP_Textdomain_Registry $wp_textdomain_registry */
    947     $wp_textdomain_registry->set( $domain, $path );
    948 
    949923    return load_textdomain( $domain, $path . '/' . $mofile );
    950924}
     
    960934 * @since 1.5.0
    961935 * @since 4.6.0 The function now tries to load the .mo file from the languages directory first.
    962  *
    963  * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.
    964936 *
    965937 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
     
    969941 */
    970942function load_theme_textdomain( $domain, $path = false ) {
    971     global $wp_textdomain_registry;
    972 
    973943    /**
    974944     * Filters a theme's locale.
     
    991961        $path = get_template_directory();
    992962    }
    993 
    994     /* @var WP_Textdomain_Registry $wp_textdomain_registry */
    995     $wp_textdomain_registry->set( $domain, $path );
    996963
    997964    return load_textdomain( $domain, $path . '/' . $locale . '.mo' );
     
    12241191 * @access private
    12251192 *
    1226  * @global MO[]                   $l10n_unloaded          An array of all text domains that have been unloaded again.
    1227  * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.
     1193 * @see get_translations_for_domain()
     1194 * @global MO[] $l10n_unloaded An array of all text domains that have been unloaded again.
    12281195 *
    12291196 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
     
    12311198 */
    12321199function _load_textdomain_just_in_time( $domain ) {
    1233     global $l10n_unloaded, $wp_textdomain_registry;
     1200    global $l10n_unloaded;
    12341201
    12351202    $l10n_unloaded = (array) $l10n_unloaded;
     
    12401207    }
    12411208
    1242     /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    1243     $path = $wp_textdomain_registry->get( $domain );
    1244     if ( ! $path ) {
     1209    $translation_path = _get_path_to_translation( $domain );
     1210    if ( false === $translation_path ) {
    12451211        return false;
    12461212    }
    12471213
     1214    return load_textdomain( $domain, $translation_path );
     1215}
     1216
     1217/**
     1218 * Gets the path to a translation file for loading a textdomain just in time.
     1219 *
     1220 * Caches the retrieved results internally.
     1221 *
     1222 * @since 4.7.0
     1223 * @access private
     1224 *
     1225 * @see _load_textdomain_just_in_time()
     1226 *
     1227 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
     1228 * @param bool   $reset  Whether to reset the internal cache. Used by the switch to locale functionality.
     1229 * @return string|false The path to the translation file or false if no translation file was found.
     1230 */
     1231function _get_path_to_translation( $domain, $reset = false ) {
     1232    static $available_translations = array();
     1233
     1234    if ( true === $reset ) {
     1235        $available_translations = array();
     1236    }
     1237
     1238    if ( ! isset( $available_translations[ $domain ] ) ) {
     1239        $available_translations[ $domain ] = _get_path_to_translation_from_lang_dir( $domain );
     1240    }
     1241
     1242    return $available_translations[ $domain ];
     1243}
     1244
     1245/**
     1246 * Gets the path to a translation file in the languages directory for the current locale.
     1247 *
     1248 * Holds a cached list of available .mo files to improve performance.
     1249 *
     1250 * @since 4.7.0
     1251 * @access private
     1252 *
     1253 * @see _get_path_to_translation()
     1254 *
     1255 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
     1256 * @return string|false The path to the translation file or false if no translation file was found.
     1257 */
     1258function _get_path_to_translation_from_lang_dir( $domain ) {
     1259    static $cached_mofiles = null;
     1260
     1261    if ( null === $cached_mofiles ) {
     1262        $cached_mofiles = array();
     1263
     1264        $locations = array(
     1265            WP_LANG_DIR . '/plugins',
     1266            WP_LANG_DIR . '/themes',
     1267        );
     1268
     1269        foreach ( $locations as $location ) {
     1270            $mofiles = glob( $location . '/*.mo' );
     1271            if ( $mofiles ) {
     1272                $cached_mofiles = array_merge( $cached_mofiles, $mofiles );
     1273            }
     1274        }
     1275    }
     1276
    12481277    $locale = determine_locale();
    1249 
    1250     // Themes with their language directory outside of WP_LANG_DIR have a different file name.
    1251     $template_directory   = trailingslashit( get_template_directory() );
    1252     $stylesheet_directory = trailingslashit( get_stylesheet_directory() );
    1253     if ( 0 === strpos( $path, $template_directory ) || 0 === strpos( $path, $stylesheet_directory ) ) {
    1254         $mofile = "{$path}{$locale}.mo";
    1255     } else {
    1256         $mofile = "{$path}{$domain}-{$locale}.mo";
    1257     }
    1258 
    1259     return load_textdomain( $domain, $mofile );
     1278    $mofile = "{$domain}-{$locale}.mo";
     1279
     1280    $path = WP_LANG_DIR . '/plugins/' . $mofile;
     1281    if ( in_array( $path, $cached_mofiles, true ) ) {
     1282        return $path;
     1283    }
     1284
     1285    $path = WP_LANG_DIR . '/themes/' . $mofile;
     1286    if ( in_array( $path, $cached_mofiles, true ) ) {
     1287        return $path;
     1288    }
     1289
     1290    return false;
    12601291}
    12611292
     
    12671298 * @since 2.8.0
    12681299 *
    1269  * @global MO[] $l10n An array of all currently loaded text domains.
     1300 * @global MO[] $l10n
    12701301 *
    12711302 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
     
    12911322 * @since 3.0.0
    12921323 *
    1293  * @global MO[] $l10n An array of all currently loaded text domains.
     1324 * @global MO[] $l10n
    12941325 *
    12951326 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
  • trunk/src/wp-settings.php

    r49236 r49566  
    153153// Load the L10n library.
    154154require_once ABSPATH . WPINC . '/l10n.php';
    155 require_once ABSPATH . WPINC . '/class-wp-textdomain-registry.php';
    156155require_once ABSPATH . WPINC . '/class-wp-locale.php';
    157156require_once ABSPATH . WPINC . '/class-wp-locale-switcher.php';
     
    303302$GLOBALS['wp_embed'] = new WP_Embed();
    304303
    305 /**
    306  * WordPress Textdomain Registry object.
    307  *
    308  * Used to support just-in-time translations for manually loaded textdomains.
    309  *
    310  * @since 5.6.0
    311  *
    312  * @global WP_Locale_Switcher $wp_locale_switcher WordPress Textdomain Registry.
    313  */
    314 $GLOBALS['wp_textdomain_registry'] = new WP_Textdomain_Registry();
    315 
    316304// Load multisite-specific files.
    317305if ( is_multisite() ) {
  • trunk/tests/phpunit/data/languages/plugins/internationalized-plugin-de_DE.po

    r49236 r49566  
    33"Project-Id-Version: \n"
    44"POT-Creation-Date: 2015-12-31 16:31+0100\n"
    5 "PO-Revision-Date: 2020-10-20 17:11+0200\n"
     5"PO-Revision-Date: 2016-10-26 00:02+0200\n"
    66"Language: de_DE\n"
    77"MIME-Version: 1.0\n"
    88"Content-Type: text/plain; charset=UTF-8\n"
    99"Content-Transfer-Encoding: 8bit\n"
    10 "X-Generator: Poedit 2.4.1\n"
     10"X-Generator: Poedit 1.8.10\n"
    1111"X-Poedit-Basepath: .\n"
    1212"Plural-Forms: nplurals=2; plural=(n != 1);\n"
     
    1515"esc_html_x:1,2c\n"
    1616"X-Textdomain-Support: yes\n"
    17 "Language-Team: \n"
    18 "Last-Translator: \n"
    1917"X-Poedit-SearchPath-0: .\n"
    2018
  • trunk/tests/phpunit/data/languages/themes/internationalized-theme-de_DE.po

    r49236 r49566  
    33"Project-Id-Version: \n"
    44"POT-Creation-Date: 2015-12-31 16:38+0100\n"
    5 "PO-Revision-Date: 2020-10-20 17:09+0200\n"
     5"PO-Revision-Date: 2016-10-26 00:02+0200\n"
    66"Language: de_DE\n"
    77"MIME-Version: 1.0\n"
    88"Content-Type: text/plain; charset=UTF-8\n"
    99"Content-Transfer-Encoding: 8bit\n"
    10 "X-Generator: Poedit 2.4.1\n"
     10"X-Generator: Poedit 1.8.10\n"
    1111"X-Poedit-Basepath: .\n"
    1212"Plural-Forms: nplurals=2; plural=(n != 1);\n"
     
    1515"esc_html_x:1,2c\n"
    1616"X-Textdomain-Support: yes\n"
    17 "Last-Translator: \n"
    18 "Language-Team: \n"
    1917"X-Poedit-SearchPath-0: .\n"
    2018
  • trunk/tests/phpunit/data/plugins/hello.php

    r49236 r49566  
    55Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
    66Author: Matt Mullenweg
    7 Version: 1.7.2
     7Version: 1.5.1
    88Author URI: http://ma.tt/
    99Text Domain: hello-dolly
    1010
    1111*/
     12
     13// Test for
     14?>
  • trunk/tests/phpunit/includes/bootstrap.php

    r49535 r49566  
    3838require_once __DIR__ . '/functions.php';
    3939
    40 if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS && ! is_dir( ABSPATH ) ) {
    41     echo "Error: The /build/ directory is missing! Please run `npm run build` prior to running PHPUnit.\n";
    42     exit( 1 );
    43 }
    44 
    4540$phpunit_version = tests_get_phpunit_version();
    4641
     
    5449}
    5550
    56 $required_extensions = array(
    57     'gd',
    58 );
    59 $missing_extensions  = array();
    60 
    61 foreach ( $required_extensions as $extension ) {
    62     if ( ! extension_loaded( $extension ) ) {
    63         $missing_extensions[] = $extension;
    64     }
    65 }
    66 
    67 if ( $missing_extensions ) {
    68     printf(
    69         "Error: The following required PHP extensions are missing from the testing environment: %s.\n",
    70         implode( ', ', $missing_extensions )
    71     );
    72     echo "Please make sure they are installed and enabled.\n",
     51if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS && ! is_dir( ABSPATH ) ) {
     52    echo "Error: The /build/ directory is missing! Please run `npm run build` prior to running PHPUnit.\n";
    7353    exit( 1 );
    7454}
     
    8060    'WP_PHP_BINARY',
    8161);
    82 $missing_constants  = array();
    8362
    8463foreach ( $required_constants as $constant ) {
    8564    if ( ! defined( $constant ) ) {
    86         $missing_constants[] = $constant;
    87     }
    88 }
    89 
    90 if ( $missing_constants ) {
    91     printf(
    92         "Error: The following required constants are not defined: %s.\n",
    93         implode( ', ', $missing_constants )
    94     );
    95     echo "Please check out `wp-tests-config-sample.php` for an example.\n",
    96     exit( 1 );
     65        printf(
     66            "Error: The required %s constant is not defined. Check out `wp-tests-config-sample.php` for an example.\n",
     67            $constant
     68        );
     69        exit( 1 );
     70    }
    9771}
    9872
     
    10377define( 'DIR_TESTROOT', realpath( dirname( __DIR__ ) ) );
    10478
    105 define( 'WP_LANG_DIR', realpath( DIR_TESTDATA . '/languages' ) );
    106 
    107 if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) {
    108     define( 'WP_PLUGIN_DIR', realpath( DIR_TESTDATA . '/plugins' ) );
    109 }
     79define( 'WP_LANG_DIR', DIR_TESTDATA . '/languages' );
    11080
    11181if ( ! defined( 'WP_TESTS_FORCE_KNOWN_BUGS' ) ) {
     
    171141// Use the Spy REST Server instead of default.
    172142tests_add_filter( 'wp_rest_server_class', '_wp_rest_server_class_filter' );
    173 // Prevent updating translations asynchronously.
    174 tests_add_filter( 'async_update_translation', '__return_false' );
    175 // Disable background updates.
    176 tests_add_filter( 'automatic_updater_disabled', '__return_true' );
    177143
    178144// Preset WordPress options defined in bootstrap file.
  • trunk/tests/phpunit/tests/admin/includesPlugin.php

    r49236 r49566  
    1515            'Author'      => '<a href="http://ma.tt/">Matt Mullenweg</a>',
    1616            'AuthorURI'   => 'http://ma.tt/',
    17             'Version'     => '1.7.2',
     17            'Version'     => '1.5.1',
    1818            'TextDomain'  => 'hello-dolly',
    1919            'DomainPath'  => '',
  • trunk/tests/phpunit/tests/l10n/loadTextdomain.php

    r49236 r49566  
    2525        add_filter( 'plugin_locale', array( $this, 'store_locale' ) );
    2626        add_filter( 'theme_locale', array( $this, 'store_locale' ) );
    27 
    28         /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    29         global $wp_textdomain_registry;
    30 
    31         $wp_textdomain_registry->reset();
    3227    }
    3328
     
    3631        remove_filter( 'theme_locale', array( $this, 'store_locale' ) );
    3732
    38         /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    39         global $wp_textdomain_registry;
    40 
    41         $wp_textdomain_registry->reset();
    42 
    4333        parent::tearDown();
    4434    }
     
    127117     * @ticket 21319
    128118     */
    129     public function test_is_textdomain_is_not_loaded_after_gettext_call_with_no_translations() {
     119    function test_is_textdomain_is_not_loaded_after_gettext_call_with_no_translations() {
    130120        $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    131121        __( 'just some string', 'wp-tests-domain' );
     
    133123    }
    134124
    135     public function test_override_load_textdomain_noop() {
     125    function test_override_load_textdomain_noop() {
    136126        add_filter( 'override_load_textdomain', '__return_true' );
    137127        $load_textdomain = load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' );
     
    142132    }
    143133
    144     public function test_override_load_textdomain_non_existent_mofile() {
     134    function test_override_load_textdomain_non_existent_mofile() {
    145135        add_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ), 10, 3 );
    146136        $load_textdomain = load_textdomain( 'wp-tests-domain', WP_LANG_DIR . '/non-existent-file.mo' );
     
    156146    }
    157147
    158     public function test_override_load_textdomain_custom_mofile() {
     148    function test_override_load_textdomain_custom_mofile() {
    159149        add_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ), 10, 3 );
    160150        $load_textdomain = load_textdomain( 'wp-tests-domain', WP_LANG_DIR . '/plugins/internationalized-plugin-de_DE.mo' );
     
    176166     * @return bool
    177167     */
    178     public function _override_load_textdomain_filter( $override, $domain, $file ) {
     168    function _override_load_textdomain_filter( $override, $domain, $file ) {
    179169        global $l10n;
    180170
  • trunk/tests/phpunit/tests/l10n/loadTextdomainJustInTime.php

    r49236 r49566  
    3333        add_filter( 'template_root', array( $this, 'filter_theme_root' ) );
    3434        wp_clean_themes_cache();
    35         unset( $GLOBALS['wp_themes'], $GLOBALS['l10n'], $GLOBALS['l10n_unloaded'] );
    36 
    37         /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    38         global $wp_textdomain_registry;
    39 
    40         $wp_textdomain_registry->reset();
     35        unset( $GLOBALS['wp_themes'] );
     36        unset( $GLOBALS['l10n'] );
     37        unset( $GLOBALS['l10n_unloaded'] );
     38        _get_path_to_translation( null, true );
    4139    }
    4240
     
    4745        remove_filter( 'template_root', array( $this, 'filter_theme_root' ) );
    4846        wp_clean_themes_cache();
    49         unset( $GLOBALS['wp_themes'], $GLOBALS['l10n'], $GLOBALS['l10n_unloaded'] );
    50 
    51         /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    52         global $wp_textdomain_registry;
    53 
    54         $wp_textdomain_registry->reset();
     47        unset( $GLOBALS['wp_themes'] );
     48        unset( $GLOBALS['l10n'] );
     49        unset( $GLOBALS['l10n_unloaded'] );
     50        _get_path_to_translation( null, true );
    5551
    5652        parent::tearDown();
     
    175171    /**
    176172     * @ticket 37997
    177      * @ticket 39210
    178173     */
    179174    public function test_plugin_translation_after_switching_locale_twice() {
     
    189184
    190185        $this->assertSame( 'Das ist ein Dummy Plugin', $expected_de_de );
    191         $this->assertSame( 'Este es un plugin dummy', $expected_es_es );
     186        $this->assertSame( 'This is a dummy plugin', $expected_es_es );
    192187    }
    193188
  • trunk/tests/phpunit/tests/l10n/localeSwitcher.php

    r49236 r49566  
    2323        $this->previous_locale = '';
    2424
    25         unset( $GLOBALS['l10n'], $GLOBALS['l10n_unloaded'] );
    26 
    27         /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    28         global $wp_textdomain_registry;
    29 
    30         $wp_textdomain_registry->reset();
     25        unset( $GLOBALS['l10n'] );
     26        unset( $GLOBALS['l10n_unloaded'] );
     27        _get_path_to_translation( null, true );
    3128    }
    3229
    3330    public function tearDown() {
    34         unset( $GLOBALS['l10n'], $GLOBALS['l10n_unloaded'] );
    35 
    36         /** @var WP_Textdomain_Registry $wp_textdomain_registry */
    37         global $wp_textdomain_registry;
    38 
    39         $wp_textdomain_registry->reset();
     31        unset( $GLOBALS['l10n'] );
     32        unset( $GLOBALS['l10n_unloaded'] );
     33        _get_path_to_translation( null, true );
    4034
    4135        parent::tearDown();
     
    395389    }
    396390
    397     /**
    398      * @ticket 39210
    399      */
    400     public function test_switch_reloads_plugin_translations_outside_wp_lang_dir() {
    401         global $wp_locale_switcher, $wp_textdomain_registry;
    402 
    403         $locale_switcher = clone $wp_locale_switcher;
    404 
    405         $wp_locale_switcher = new WP_Locale_Switcher();
    406         $wp_locale_switcher->init();
    407 
    408         require_once DIR_TESTDATA . '/plugins/custom-internationalized-plugin/custom-internationalized-plugin.php';
    409 
    410         $this->assertSame( WP_PLUGIN_DIR . '/custom-internationalized-plugin/languages/', $wp_textdomain_registry->get( 'custom-internationalized-plugin' ) );
    411 
    412         $expected = custom_i18n_plugin_test();
    413         $this->assertSame( 'This is a dummy plugin', $expected );
    414 
    415         switch_to_locale( 'es_ES' );
    416         switch_to_locale( 'de_DE' );
    417 
    418         $expected = custom_i18n_plugin_test();
    419         $this->assertSame( 'Das ist ein Dummy Plugin', $expected );
    420 
    421         restore_previous_locale();
    422 
    423         $expected = custom_i18n_plugin_test();
    424         $this->assertSame( 'Este es un plugin dummy', $expected );
    425 
    426         restore_current_locale();
    427 
    428         $wp_locale_switcher = $locale_switcher;
    429     }
    430 
    431     /**
    432      * @ticket 39210
    433      */
    434     public function test_switch_reloads_theme_translations_outside_wp_lang_dir() {
    435         global $wp_locale_switcher, $wp_textdomain_registry;
    436 
    437         $locale_switcher = clone $wp_locale_switcher;
    438 
    439         $wp_locale_switcher = new WP_Locale_Switcher();
    440         $wp_locale_switcher->init();
    441 
    442         switch_theme( 'custom-internationalized-theme' );
    443 
    444         require_once get_stylesheet_directory() . '/functions.php';
    445 
    446         $this->assertSame( get_template_directory() . '/languages/', $wp_textdomain_registry->get( 'custom-internationalized-theme' ) );
    447 
    448         $expected = custom_i18n_theme_test();
    449 
    450         $this->assertSame( 'This is a dummy theme', $expected );
    451 
    452         switch_to_locale( 'es_ES' );
    453         switch_to_locale( 'de_DE' );
    454 
    455         $expected = custom_i18n_theme_test();
    456         $this->assertSame( 'Das ist ein Dummy Theme', $expected );
    457 
    458         restore_previous_locale();
    459 
    460         $expected = custom_i18n_theme_test();
    461         $this->assertSame( 'Este es un tema dummy', $expected );
    462 
    463         restore_current_locale();
    464 
    465         $wp_locale_switcher = $locale_switcher;
    466     }
    467 
    468391    public function filter_locale() {
    469392        return 'es_ES';
  • trunk/tests/phpunit/tests/theme/themeDir.php

    r49236 r49566  
    163163            'Theme with Spaces in the Directory',
    164164            'Internationalized Theme',
    165             'Custom Internationalized Theme',
    166165            'camelCase',
    167166            'REST Theme',
Note: See TracChangeset for help on using the changeset viewer.