WordPress.org

Make WordPress Core

Ticket #45425: 45425.diff

File 45425.diff, 3.9 KB (added by swissspidy, 15 months ago)
  • src/wp-includes/l10n.php

    diff --git src/wp-includes/l10n.php src/wp-includes/l10n.php
    index d1afbe4832..a6097e731c 100644
    function load_script_textdomain( $handle, $domain, $path = null ) { 
    895895        $file_base       = $domain === 'default' ? $locale : $domain . '-' . $locale;
    896896        $handle_filename = $file_base . '-' . $handle . '.json';
    897897        if ( $path && file_exists( $path . '/' . $handle_filename ) ) {
    898                 return file_get_contents( $path . '/' . $handle_filename );
     898                return load_script_translation( $path . '/' . $handle_filename, $handle, $domain );
    899899        }
    900900
    901901        $obj = $wp_scripts->registered[ $handle ];
    function load_script_textdomain( $handle, $domain, $path = null ) { 
    935935
    936936        // If the source is not from WP.
    937937        if ( false === $relative ) {
    938                 return false;
     938                return load_script_translation( false, $handle, $domain );
    939939        }
    940940
    941941        // Translations are always based on the unminified filename.
    function load_script_textdomain( $handle, $domain, $path = null ) { 
    945945
    946946        $md5_filename = $file_base . '-' . md5( $relative ) . '.json';
    947947        if ( $path && file_exists( $path . '/' . $md5_filename ) ) {
    948                 return file_get_contents( $path . '/' . $md5_filename );
     948                return load_script_translation( $path . '/' . $md5_filename, $handle, $domain );
    949949        }
    950950        if ( file_exists( $languages_path . '/' . $md5_filename ) ) {
    951                 return file_get_contents( $languages_path . '/' . $md5_filename );
     951                return load_script_translation( $languages_path . '/' . $md5_filename, $handle, $domain );
    952952        }
    953953
    954         return false;
     954        return load_script_translation( false, $handle, $domain );
     955}
     956
     957/**
     958 * Load the translated strings for the given script handle and textdomain.
     959 *
     960 * @since 5.0.0
     961 *
     962 * @param string|false $file   Path to the translation file to load. False if there isn't one.
     963 * @param string       $handle Name of the script to register a translation domain to.
     964 * @param string       $domain The textdomain.
     965 * @return string|false The JSON-encoded translated strings for the given script handle and textdomain. False if there are none.
     966 */
     967function load_script_translation( $file, $handle, $domain ) {
     968        /**
     969         * Pre-filters script translations for the given file, script handle and text domain.
     970         *
     971         * Returning a non-null value allows to override the default logic, effectively short-circuiting the function.
     972         *
     973         * @since 5.0.0
     974         *
     975         * @param string|false $translations JSON-encoded translation data. Default null.
     976         * @param string|false $file         Path to the translation file to load. False if there isn't one.
     977         * @param string       $handle       Name of the script to register a translation domain to.
     978         * @param string       $domain       The textdomain.
     979         */
     980        $translations = apply_filters( 'pre_load_script_translation', null, $file, $handle, $domain );
     981
     982        if ( null !== $translations ) {
     983                return $translations;
     984        }
     985
     986        /**
     987         * Filters the file path for loading script translations for the given script handle and textdomain.
     988         *
     989         * @since 5.0.0
     990         *
     991         * @param string|false $file   Path to the translation file to load. False if there isn't one.
     992         * @param string       $handle Name of the script to register a translation domain to.
     993         * @param string       $domain The textdomain.
     994         */
     995        $file = apply_filters( 'load_script_textdomain_file', $file, $handle, $domain );
     996
     997        if ( ! $file || ! is_readable( $file ) ) {
     998                return false;
     999        }
     1000
     1001        $translations = file_get_contents( $file );
     1002
     1003        /**
     1004         * Filters script translations for the given file, script handle and text domain.
     1005         *
     1006         * @since 5.0.0
     1007         *
     1008         * @param string $translations JSON-encoded translation data
     1009         * @param string $file         Path to the translation file that was loaded.
     1010         * @param string $handle       Name of the script to register a translation domain to.
     1011         * @param string $domain       The textdomain.
     1012         */
     1013        return apply_filters( 'load_script_translation', $translations, $file, $handle, $domain );
    9551014}
    9561015
    9571016/**