PluginProbe
Translation with DeepL API / 2.4.5
Translation with DeepL API v2.4.5
trunk 0.1.20180323 1.0 1.2.5.1 1.5.2.5 1.7.5 2.4.3.12 2.4.3.9 2.4.5
wpdeepl / metas_custom-integration.php

metas_custom-integration.php in Translation with DeepL API 2.4.5, at metas_custom-integration.php

70 lines 2.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // $strings_to_translate = apply_filters( 'deepl_translate_post_link_strings', $strings_to_translate, $WP_Post );
4 add_filter( 'deepl_translate_post_link_strings', 'idg_add_meta_data_to_translate', 10, 4 );
5 function idg_add_meta_data_to_translate( $strings_to_translate, $WP_Post, $target_lang, $source_lang ) {
6 $debug = false;
7 if ( $multi_titles = get_post_meta( $WP_Post->ID, 'multi_title', true ) ) {
8 $multi_titles = json_decode( $multi_titles, true );
9 if ( $debug ) plouf($multi_titles);
10 foreach ( $multi_titles['titles'] as $multi_title => $multi_title_data ) {
11 $key = 'mtitle#' . $multi_title;
12 $strings_to_translate[$key] = $multi_title_data['value'];
13 if ( isset( $multi_title_data['additional'] ) ) foreach ( $multi_title_data['additional'] as $sub_multi_title => $sub_multi_title_value ) {
14 $sub_key = 'mtitle#' . $multi_title . '#' . $sub_multi_title;
15 $strings_to_translate[$sub_key] = $sub_multi_title_value;
16
17
18 }
19 }
20
21 }
22 if ( $debug ) plouf($strings_to_translate);
23
24 return $strings_to_translate;
25 }
26
27 //do_action('deepl_translate_post_link_translation_success', $response, $WP_Post );
28 add_action('deepl_translate_post_link_translation_success', 'idg_update_meta_data_translated', 10, 2 );
29 function idg_update_meta_data_translated( $response, $WP_Post ) {
30
31 $debug = false;
32 if ( $multi_titles = get_post_meta( $WP_Post->ID, 'multi_title', true ) ) {
33 $multi_titles = json_decode( $multi_titles, true );
34 if ( $debug ) plouf($multi_titles, " original");
35 foreach ( $response['translations'] as $key => $translation ) {
36
37 $translation = deepl_unicode_decode( $translation );
38 if ( substr( $key, 0, 7 ) == 'mtitle#' ) {
39 $explode_key = explode( '#', $key );
40 if ( count( $explode_key ) == 2 ) {
41 $main_key = $explode_key[1];
42 $multi_titles['titles'][$main_key]['value'] = $translation;
43 //echo "\n on update $main_key value = '$translation'";
44
45 }
46 elseif ( count( $explode_key ) == 3 ) {
47 $main_key = $explode_key[1];
48 $additionnal_key = $explode_key[2];
49 $multi_titles['titles'][$main_key]['additional'][$additionnal_key] = $translation;
50 //echo "\n on update $main_key / add $additionnal_key value = '$translation'";
51 }
52 else {
53 //plouf($explode_key, " no 2 3");
54 }
55 }
56 else {
57 //echo " no match on $key";
58 }
59 }
60 if ( $debug ) plouf($multi_titles);
61 $json_data = json_encode( $multi_titles, JSON_UNESCAPED_UNICODE);
62 if ( $debug ) {echo __FUNCTION__; var_dump( $json_data ); }
63 update_post_meta( $WP_Post->ID, 'multi_title', $json_data );
64
65 if ( $debug ) die('zeroijrij');
66 return true;
67 }
68
69 return false;
70 }