mirror of
git://develop.git.wordpress.org/
synced 2025-01-17 12:58:25 +01:00
I18N: Fix warnings in JavaScript translations.
Fixes an undefined index PHP warning in the load_script_textdomain function and a non-interrupting JS error when registering a domain which has no translations. Props omarreiss, ocean90, georgestephanis. Fixes #45256. git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43898 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
4b791ecf5f
commit
07736dc37c
@ -528,7 +528,8 @@ class WP_Scripts extends WP_Dependencies {
|
||||
$json_translations = load_script_textdomain( $handle, $domain, $path );
|
||||
|
||||
if ( ! $json_translations ) {
|
||||
return false;
|
||||
// Register empty locale data object to ensure the domain still exists.
|
||||
$json_translations = '{ "locale_data": { "messages": { "": {} } } }';
|
||||
}
|
||||
|
||||
$output = '(function( translations ){' .
|
||||
|
@ -923,18 +923,14 @@ function load_script_textdomain( $handle, $domain, $path = null ) {
|
||||
|
||||
$relative = array_slice( $relative, 2 );
|
||||
$relative = implode( '/', $relative );
|
||||
} else if (
|
||||
! isset( $site_url['path'] ) &&
|
||||
( ! isset( $src_url['host'] ) || $src_url['host'] !== $site_url['host'] )
|
||||
) {
|
||||
$relative = trim( $src_url['path'], '/' );
|
||||
} else if (
|
||||
( strpos( $src_url['path'], $site_url['path'] ) === 0 ) &&
|
||||
( ! isset( $src_url['host'] ) || $src_url['host'] !== $site_url['host'] )
|
||||
) {
|
||||
// Make the src relative to the WP root.
|
||||
$relative = substr( $src, strlen( $site_url['path'] ) );
|
||||
$relative = trim( $relative, '/' );
|
||||
} elseif ( ! isset( $src_url['host'] ) || $src_url['host'] !== $site_url['host'] ) {
|
||||
if ( ! isset( $site_url['path'] ) ) {
|
||||
$relative = trim( $src_url['path'], '/' );
|
||||
} elseif ( ( strpos( $src_url['path'], $site_url['path'] ) === 0 ) ) {
|
||||
// Make the src relative to the WP root.
|
||||
$relative = substr( $src, strlen( $site_url['path'] ) );
|
||||
$relative = trim( $relative, '/' );
|
||||
}
|
||||
}
|
||||
|
||||
// If the source is not from WP.
|
||||
|
@ -863,7 +863,11 @@ class Tests_Dependencies_Scripts extends WP_UnitTestCase {
|
||||
wp_set_script_translations( 'test-example', 'admin', DIR_TESTDATA . '/languages/' );
|
||||
|
||||
$expected = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js'></script>";
|
||||
$expected .= "\n<script type='text/javascript' src='/wp-admin/js/script.js'></script>\n";
|
||||
$expected .= "\n<script type='text/javascript'>\n(function( translations ){" .
|
||||
"translations.locale_data.messages[\"\"].domain = \"admin\";" .
|
||||
"wp.i18n.setLocaleData( translations.locale_data.messages, \"admin\" );" .
|
||||
"})({ \"locale_data\": { \"messages\": { \"\": {} } } });\n</script>\n";
|
||||
$expected .= "<script type='text/javascript' src='/wp-admin/js/script.js'></script>\n";
|
||||
|
||||
$this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user