WP_Theme::translate_header()privateWP 3.4.0

Translates a theme header.

Method of the class: WP_Theme{}

No Hooks.

Return

String|Array. Translated value. An array for Tags header, string otherwise.

Usage

// private - for code of main (parent) class only
$result = $this->translate_header( $header, $value );
$header(string) (required)
Theme header. Name, Description, Author, Version, ThemeURI, AuthorURI, Status, Tags.
$value(string|array) (required)
Value to translate. An array for Tags header, string otherwise.

Changelog

Since 3.4.0 Introduced.

WP_Theme::translate_header() code WP 6.4.3

private function translate_header( $header, $value ) {
	switch ( $header ) {
		case 'Name':
			// Cached for sorting reasons.
			if ( isset( $this->name_translated ) ) {
				return $this->name_translated;
			}

			// phpcs:ignore WordPress.WP.I18n.LowLevelTranslationFunction,WordPress.WP.I18n.NonSingularStringLiteralText,WordPress.WP.I18n.NonSingularStringLiteralDomain
			$this->name_translated = translate( $value, $this->get( 'TextDomain' ) );

			return $this->name_translated;
		case 'Tags':
			if ( empty( $value ) || ! function_exists( 'get_theme_feature_list' ) ) {
				return $value;
			}

			static $tags_list;
			if ( ! isset( $tags_list ) ) {
				$tags_list = array(
					// As of 4.6, deprecated tags which are only used to provide translation for older themes.
					'black'             => __( 'Black' ),
					'blue'              => __( 'Blue' ),
					'brown'             => __( 'Brown' ),
					'gray'              => __( 'Gray' ),
					'green'             => __( 'Green' ),
					'orange'            => __( 'Orange' ),
					'pink'              => __( 'Pink' ),
					'purple'            => __( 'Purple' ),
					'red'               => __( 'Red' ),
					'silver'            => __( 'Silver' ),
					'tan'               => __( 'Tan' ),
					'white'             => __( 'White' ),
					'yellow'            => __( 'Yellow' ),
					'dark'              => _x( 'Dark', 'color scheme' ),
					'light'             => _x( 'Light', 'color scheme' ),
					'fixed-layout'      => __( 'Fixed Layout' ),
					'fluid-layout'      => __( 'Fluid Layout' ),
					'responsive-layout' => __( 'Responsive Layout' ),
					'blavatar'          => __( 'Blavatar' ),
					'photoblogging'     => __( 'Photoblogging' ),
					'seasonal'          => __( 'Seasonal' ),
				);

				$feature_list = get_theme_feature_list( false ); // No API.

				foreach ( $feature_list as $tags ) {
					$tags_list += $tags;
				}
			}

			foreach ( $value as &$tag ) {
				if ( isset( $tags_list[ $tag ] ) ) {
					$tag = $tags_list[ $tag ];
				} elseif ( isset( self::$tag_map[ $tag ] ) ) {
					$tag = $tags_list[ self::$tag_map[ $tag ] ];
				}
			}

			return $value;

		default:
			// phpcs:ignore WordPress.WP.I18n.LowLevelTranslationFunction,WordPress.WP.I18n.NonSingularStringLiteralText,WordPress.WP.I18n.NonSingularStringLiteralDomain
			$value = translate( $value, $this->get( 'TextDomain' ) );
	}
	return $value;
}