Traduction DeepL par lots WordPress

69,00 HT

  • Traduction par lots avec l’API DeepL
  • Licence pour 1 site : 1 an de mises à jour et de support
  • Tester votre installation avec la version gratuite
UGS : DEEPLPRO Catégorie :

Description


Cette extension ( à utiliser avec le plugin DeepL pour WordPress ) vous permet :

  • de traduire les champs personnalisés : meta fields WordPress, champs ACF
  • de traduire le slug SEO
  • de traduire les Produits WooCommerce
  • de traduire Articles, Pages, etc. par lots.

Langues cibles : toutes les langues disponibles sur DeepL.

Configuration : dans Réglages / Traduction DeepL, allez sur l’onglet « Pro »

Ce plugin n’est pas un plugin de gestion multi-langues : si vous avez plusieurs langues sur le même site, il est conseillé d’avoir un plugin de gestion multi-langues (type Polylang, TranslatePress, Weglot, etc.)

Compatible Polylang, ACF, MetaBox

Documentation

La plupart des réglages se trouvent sur la page Réglages / Traduction Deepl : onglet « Pro »

En utilisant Polylang pour traduire par lots, si vous souhaitez créer les nouveaux posts directement, n’oubliez pas de cocher « Créer de nouveaux posts » sur le réglage « Que faire pour les traductions en masse ?  »

Si vous avez des données métas très spécifiques (encodées JSON, sérialisées, etc.), voici le code à ajouter dans votre theme/functions.php pour ajouter les valeurs à traduire avant traduction, et les récupérer et les sauvegarder après traduction :


/**
*
* To add specific data / unique custom meta to the translation, add this code to your theme/functions.php
* Sample : the metakey is 'hotelwp_meta' and the value is encoded in json, we need to translate 'tagline' and 'alt_title' from the array of data
* */

/**
* First add the original strings to the array to be translated
* */
add_filter( ‘deepl_translate_post_link_strings’, ‘mytheme_deeplpro_translate_post_link_strings’, 80, 4 );
function mytheme_deeplpro_translate_post_link_strings( $strings_to_translate, $WP_Post, $target_lang, $source_lang ) {

$custom_data = json_decode( get_post_meta( $WP_Post->ID, ‘hotelwp_meta’, true ), true );
if( !empty( $custom_data[‘tagline’] ) ) {
$strings_to_translate[‘mytheme_tagline’] = $custom_data[‘tagline’];
}
if( !empty( $custom_data[‘alt_title’] ) ) {
$strings_to_translate[‘mytheme_alt_title’] = $custom_data[‘alt_title’];
}
return $strings_to_translate;
}

/**
* Then get the translated data after translation and post update
*/
add_action( ‘deepl_translate_after_post_update’, ‘mytheme_deeplpro_translate_post_link_after’, 80, 5 );
function mytheme_deeplpro_translate_post_link_after( $post_array, $strings_to_translate, $response, $WP_Post, $no_translation ) {

$new_post_custom_data = json_decode( get_post_meta( $WP_Post->ID, ‘hotelwp_meta’, true), true );

$changed = false;
if( $response[‘translations’] ) foreach( $response[‘translations’] as $key => $translation ) {
if( substr( $key, 0, 8 ) == ‘mytheme_’ ) {
$real_key = substr( $key, 8 );
$new_post_custom_data[$real_key] = $translation;
$changed = true;

}
}
if( $changed ) {
update_post_meta( $WP_Post->ID, ‘hotelwp_meta’, json_encode( $new_post_custom_data, JSON_UNESCAPED_UNICODE ) );
}
}

 

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “Traduction DeepL par lots WordPress”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *