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.