Automattic\WooCommerce\Internal\Admin
Translations::combine_user_translation_chunks
Combines data from translation chunk files based on user-generated file formats, such as wp-cli tool or Loco Translate plugin.
Метод класса: Translations{}
Хуков нет.
Возвращает
Массив. Combined translation chunk data.
Использование
// private - только в коде основоного (родительского) класса $result = $this->combine_user_translation_chunks( $json_i18n_filenames );
- $json_i18n_filenames(массив) (обязательный)
- List of JSON chunk files.
Код Translations::combine_user_translation_chunks() Translations::combine user translation chunks WC 10.4.3
private function combine_user_translation_chunks( $json_i18n_filenames ) {
// the filesystem object should be hooked up.
global $wp_filesystem;
$combined_translation_data = array();
foreach ( $json_i18n_filenames as $json_filename ) {
if ( ! $wp_filesystem->is_readable( $json_filename ) ) {
continue;
}
$file_contents = $wp_filesystem->get_contents( $json_filename );
$chunk_data = \json_decode( $file_contents, true );
if ( empty( $chunk_data ) ) {
continue;
}
$reference_file = $chunk_data['source'];
// Only combine "app" files (not scripts registered with WP).
if (
false === strpos( $reference_file, WC_ADMIN_DIST_JS_FOLDER . 'app/index.js' ) &&
false === strpos( $reference_file, WC_ADMIN_DIST_JS_FOLDER . 'chunks/' )
) {
continue;
}
if ( empty( $combined_translation_data ) ) {
// Use the first translation file as the base structure.
$combined_translation_data = $chunk_data;
} else {
// Combine all messages from all chunk files.
$combined_translation_data['locale_data']['woocommerce'] = array_merge(
$combined_translation_data['locale_data']['woocommerce'],
$chunk_data['locale_data']['woocommerce']
);
}
}
// Remove inaccurate reference comment.
unset( $combined_translation_data['source'] );
return $combined_translation_data;
}