# wplingua/2.16.2/inc/dom/translate-attr-json.php

Translate and Go multilingual – Automatic AI translation – wpLingua, version 2.16.2. 50 lines.

- Page: https://pluginprobe.com/plugins/wplingua/2.16.2/code/inc/dom/translate-attr-json.php
- Raw: https://pluginprobe.com/plugins/wplingua/2.16.2/raw/inc/dom/translate-attr-json.php
- Modified: 2026-08-31T00:16:54+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/wplingua/2.16.2/code/inc/dom/translate-attr-json.php#L10-L20`.

```php
<?php

// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
	die;
}


/**
 * Translate JSON in attributes in dom for translated pages
 *
 * @param object $dom
 * @param array  $args
 * @return object
 */
function wplng_dom_translate_json_attr( $dom, $args ) {

	wplng_args_setup( $args );

	/**
	 * Translate JSON in attributes
	 */

	$attr_json_to_translate = wplng_data_attr_json_to_translate();

	foreach ( $attr_json_to_translate as $attr ) {
		foreach ( $dom->find( $attr['selector'] ) as $element ) {

			if ( empty( $element->attr[ $attr['attr'] ] ) ) {
				continue;
			}

			// Prepare arguments for translation
			$args['parents'] = array( $attr['attr'] );

			$translated_json = wplng_translate_json(
				wp_specialchars_decode(
					$element->attr[ $attr['attr'] ],
					ENT_QUOTES | ENT_HTML5
				),
				$args
			);

			$element->attr[ $attr['attr'] ] = esc_attr( $translated_json );
		}
	}

	return $dom;
}

```
