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