Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

WP_Theme_JSON_Resolver::extract_paths_to_translate( array $i18n_partial, array $current_path = array() )

Converts a tree as in i18n-theme.json into a linear array containing metadata to translate a theme.json file.


Description Description

For example, given this input:

{
  "settings": {
    "*": {
      "typography": {
        "fontSizes": [ { "name": "Font size name" } ],
        "fontStyles": [ { "name": "Font size name" } ]
      }
    }
  }
}

will return this output:

[
  0 => [
    'path'    => [ 'settings', '*', 'typography', 'fontSizes' ],
    'key'     => 'name',
    'context' => 'Font size name'
  ],
  1 => [
    'path'    => [ 'settings', '*', 'typography', 'fontStyles' ],
    'key'     => 'name',
    'context' => 'Font style name'
  ]
]

Top ↑

Parameters Parameters

$i18n_partial

(array) (Required) A tree that follows the format of i18n-theme.json.

$current_path

(array) (Optional) Keeps track of the path as we walk down the given tree.

Default value: array()


Top ↑

Return Return

(array) A linear array containing the paths to translate.


Top ↑

Source Source

File: wp-includes/class-wp-theme-json-resolver.php

	private static function extract_paths_to_translate( $i18n_partial, $current_path = array() ) {
		$result = array();
		foreach ( $i18n_partial as $property => $partial_child ) {
			if ( is_numeric( $property ) ) {
				foreach ( $partial_child as $key => $context ) {
					return array(
						array(
							'path'    => $current_path,
							'key'     => $key,
							'context' => $context,
						),
					);
				}
			}
			$result = array_merge(
				$result,
				self::extract_paths_to_translate( $partial_child, array_merge( $current_path, array( $property ) ) )
			);
		}
		return $result;
	}


Top ↑

Changelog Changelog

Changelog
Version Description
5.8.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.