Make WordPress Core


Ignore:
Timestamp:
04/12/2022 03:38:42 PM (3 years ago)
Author:
audrasjb
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/widgets/class-wp-widget-media.php

    r53136 r53158  
    4343
    4444    /**
     45     * The default widget description.
     46     *
     47     * @since 6.0.0
     48     * @var string
     49     */
     50    protected static $default_description = '';
     51
     52    /**
     53     * The default localized strings used by the widget.
     54     *
     55     * @since 6.0.0
     56     * @var string[]
     57     */
     58    protected static $l10n_defaults = array();
     59
     60    /**
    4561     * Constructor.
    4662     *
     
    5874            $widget_options,
    5975            array(
    60                 'description'                 => __( 'A media item.' ),
     76                'description'                 => self::get_default_description(),
    6177                'customize_selective_refresh' => true,
    6278                'show_instance_in_rest'       => true,
     
    6783        $control_opts = wp_parse_args( $control_options, array() );
    6884
    69         $l10n_defaults = array(
    70             'no_media_selected'          => __( 'No media selected' ),
    71             'add_media'                  => _x( 'Add Media', 'label for button in the media widget' ),
    72             'replace_media'              => _x( 'Replace Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
    73             'edit_media'                 => _x( 'Edit Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
    74             'add_to_widget'              => __( 'Add to Widget' ),
    75             'missing_attachment'         => sprintf(
    76                 /* translators: %s: URL to media library. */
    77                 __( 'That file cannot be found. Check your <a href="%s">media library</a> and make sure it was not deleted.' ),
    78                 esc_url( admin_url( 'upload.php' ) )
    79             ),
    80             /* translators: %d: Widget count. */
    81             'media_library_state_multi'  => _n_noop( 'Media Widget (%d)', 'Media Widget (%d)' ),
    82             'media_library_state_single' => __( 'Media Widget' ),
    83             'unsupported_file_type'      => __( 'Looks like this is not the correct kind of file. Please link to an appropriate file instead.' ),
    84         );
    85         $this->l10n    = array_merge( $l10n_defaults, array_filter( $this->l10n ) );
     85        $this->l10n = array_merge( self::get_l10n_defaults(), array_filter( $this->l10n ) );
    8686
    8787        parent::__construct(
     
    442442
    443443    /**
     444     * Resets the cache for the default labels.
     445     *
     446     * @since 6.0.0
     447     */
     448    public static function reset_default_labels() {
     449        self::$default_description = '';
     450        self::$l10n_defaults       = array();
     451    }
     452
     453    /**
    444454     * Whether the widget has content to show.
    445455     *
     
    452462        return ( $instance['attachment_id'] && 'attachment' === get_post_type( $instance['attachment_id'] ) ) || $instance['url'];
    453463    }
     464
     465    /**
     466     * Returns the default description of the widget.
     467     *
     468     * @since 6.0.0
     469     *
     470     * @var string
     471     */
     472    protected static function get_default_description() {
     473        if ( self::$default_description ) {
     474            return self::$default_description;
     475        }
     476
     477        self::$default_description = __( 'A media item.' );
     478        return self::$default_description;
     479    }
     480
     481    /**
     482     * Returns the default localized strings used by the widget.
     483     *
     484     * @since 6.0.0
     485     *
     486     * @return string[]
     487     */
     488    protected static function get_l10n_defaults() {
     489        if ( ! empty( self::$l10n_defaults ) ) {
     490            return self::$l10n_defaults;
     491        }
     492
     493        self::$l10n_defaults = array(
     494            'no_media_selected'          => __( 'No media selected' ),
     495            'add_media'                  => _x( 'Add Media', 'label for button in the media widget' ),
     496            'replace_media'              => _x( 'Replace Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
     497            'edit_media'                 => _x( 'Edit Media', 'label for button in the media widget; should preferably not be longer than ~13 characters long' ),
     498            'add_to_widget'              => __( 'Add to Widget' ),
     499            'missing_attachment'         => sprintf(
     500                /* translators: %s: URL to media library. */
     501                __( 'That file cannot be found. Check your <a href="%s">media library</a> and make sure it was not deleted.' ),
     502                esc_url( admin_url( 'upload.php' ) )
     503            ),
     504            /* translators: %d: Widget count. */
     505            'media_library_state_multi'  => _n_noop( 'Media Widget (%d)', 'Media Widget (%d)' ),
     506            'media_library_state_single' => __( 'Media Widget' ),
     507            'unsupported_file_type'      => __( 'Looks like this is not the correct kind of file. Please link to an appropriate file instead.' ),
     508        );
     509
     510        return self::$l10n_defaults;
     511    }
    454512}
Note: See TracChangeset for help on using the changeset viewer.