Widgets: Avoid 27 duplicate translations in Media Widgets constructor.
This changeset rationalizes the declaration of translation strings in the Media Widgets constructor. Props Chouby, audrasjb, peterwilsoncc, costdev. Fixes #54561. Built from https://develop.svn.wordpress.org/trunk@53158 git-svn-id: http://core.svn.wordpress.org/trunk@52747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
ab8a964858
commit
bb723f9920
|
@ -630,6 +630,7 @@ add_filter( 'nav_menu_item_id', '_nav_menu_item_id_use_once', 10, 2 );
|
||||||
// Widgets.
|
// Widgets.
|
||||||
add_action( 'after_setup_theme', 'wp_setup_widgets_block_editor', 1 );
|
add_action( 'after_setup_theme', 'wp_setup_widgets_block_editor', 1 );
|
||||||
add_action( 'init', 'wp_widgets_init', 1 );
|
add_action( 'init', 'wp_widgets_init', 1 );
|
||||||
|
add_action( 'change_locale', array( 'WP_Widget_Media', 'reset_default_labels' ) );
|
||||||
|
|
||||||
// Admin Bar.
|
// Admin Bar.
|
||||||
// Don't remove. Wrong way to disable.
|
// Don't remove. Wrong way to disable.
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '6.0-alpha-53157';
|
$wp_version = '6.0-alpha-53158';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
|
@ -41,6 +41,22 @@ abstract class WP_Widget_Media extends WP_Widget {
|
||||||
*/
|
*/
|
||||||
protected $registered = false;
|
protected $registered = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default widget description.
|
||||||
|
*
|
||||||
|
* @since 6.0.0
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected static $default_description = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default localized strings used by the widget.
|
||||||
|
*
|
||||||
|
* @since 6.0.0
|
||||||
|
* @var string[]
|
||||||
|
*/
|
||||||
|
protected static $l10n_defaults = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
|
@ -57,7 +73,7 @@ abstract class WP_Widget_Media extends WP_Widget {
|
||||||
$widget_opts = wp_parse_args(
|
$widget_opts = wp_parse_args(
|
||||||
$widget_options,
|
$widget_options,
|
||||||
array(
|
array(
|
||||||
'description' => __( 'A media item.' ),
|
'description' => self::get_default_description(),
|
||||||
'customize_selective_refresh' => true,
|
'customize_selective_refresh' => true,
|
||||||
'show_instance_in_rest' => true,
|
'show_instance_in_rest' => true,
|
||||||
'mime_type' => '',
|
'mime_type' => '',
|
||||||
|
@ -66,23 +82,7 @@ abstract class WP_Widget_Media extends WP_Widget {
|
||||||
|
|
||||||
$control_opts = wp_parse_args( $control_options, array() );
|
$control_opts = wp_parse_args( $control_options, array() );
|
||||||
|
|
||||||
$l10n_defaults = array(
|
$this->l10n = array_merge( self::get_l10n_defaults(), array_filter( $this->l10n ) );
|
||||||
'no_media_selected' => __( 'No media selected' ),
|
|
||||||
'add_media' => _x( 'Add Media', 'label for button in the media widget' ),
|
|
||||||
'replace_media' => _x( 'Replace Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
|
|
||||||
'edit_media' => _x( 'Edit Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
|
|
||||||
'add_to_widget' => __( 'Add to Widget' ),
|
|
||||||
'missing_attachment' => sprintf(
|
|
||||||
/* translators: %s: URL to media library. */
|
|
||||||
__( 'That file cannot be found. Check your <a href="%s">media library</a> and make sure it was not deleted.' ),
|
|
||||||
esc_url( admin_url( 'upload.php' ) )
|
|
||||||
),
|
|
||||||
/* translators: %d: Widget count. */
|
|
||||||
'media_library_state_multi' => _n_noop( 'Media Widget (%d)', 'Media Widget (%d)' ),
|
|
||||||
'media_library_state_single' => __( 'Media Widget' ),
|
|
||||||
'unsupported_file_type' => __( 'Looks like this is not the correct kind of file. Please link to an appropriate file instead.' ),
|
|
||||||
);
|
|
||||||
$this->l10n = array_merge( $l10n_defaults, array_filter( $this->l10n ) );
|
|
||||||
|
|
||||||
parent::__construct(
|
parent::__construct(
|
||||||
$id_base,
|
$id_base,
|
||||||
|
@ -440,6 +440,16 @@ abstract class WP_Widget_Media extends WP_Widget {
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the cache for the default labels.
|
||||||
|
*
|
||||||
|
* @since 6.0.0
|
||||||
|
*/
|
||||||
|
public static function reset_default_labels() {
|
||||||
|
self::$default_description = '';
|
||||||
|
self::$l10n_defaults = array();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the widget has content to show.
|
* Whether the widget has content to show.
|
||||||
*
|
*
|
||||||
|
@ -451,4 +461,52 @@ abstract class WP_Widget_Media extends WP_Widget {
|
||||||
protected function has_content( $instance ) {
|
protected function has_content( $instance ) {
|
||||||
return ( $instance['attachment_id'] && 'attachment' === get_post_type( $instance['attachment_id'] ) ) || $instance['url'];
|
return ( $instance['attachment_id'] && 'attachment' === get_post_type( $instance['attachment_id'] ) ) || $instance['url'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default description of the widget.
|
||||||
|
*
|
||||||
|
* @since 6.0.0
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected static function get_default_description() {
|
||||||
|
if ( self::$default_description ) {
|
||||||
|
return self::$default_description;
|
||||||
|
}
|
||||||
|
|
||||||
|
self::$default_description = __( 'A media item.' );
|
||||||
|
return self::$default_description;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default localized strings used by the widget.
|
||||||
|
*
|
||||||
|
* @since 6.0.0
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
*/
|
||||||
|
protected static function get_l10n_defaults() {
|
||||||
|
if ( ! empty( self::$l10n_defaults ) ) {
|
||||||
|
return self::$l10n_defaults;
|
||||||
|
}
|
||||||
|
|
||||||
|
self::$l10n_defaults = array(
|
||||||
|
'no_media_selected' => __( 'No media selected' ),
|
||||||
|
'add_media' => _x( 'Add Media', 'label for button in the media widget' ),
|
||||||
|
'replace_media' => _x( 'Replace Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
|
||||||
|
'edit_media' => _x( 'Edit Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
|
||||||
|
'add_to_widget' => __( 'Add to Widget' ),
|
||||||
|
'missing_attachment' => sprintf(
|
||||||
|
/* translators: %s: URL to media library. */
|
||||||
|
__( 'That file cannot be found. Check your <a href="%s">media library</a> and make sure it was not deleted.' ),
|
||||||
|
esc_url( admin_url( 'upload.php' ) )
|
||||||
|
),
|
||||||
|
/* translators: %d: Widget count. */
|
||||||
|
'media_library_state_multi' => _n_noop( 'Media Widget (%d)', 'Media Widget (%d)' ),
|
||||||
|
'media_library_state_single' => __( 'Media Widget' ),
|
||||||
|
'unsupported_file_type' => __( 'Looks like this is not the correct kind of file. Please link to an appropriate file instead.' ),
|
||||||
|
);
|
||||||
|
|
||||||
|
return self::$l10n_defaults;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue