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

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.

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

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'
  ]
]

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()

Return

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

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;
	}

Changelog

Version Description
5.8.0 Introduced.

© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/extract_paths_to_translate