PluginProbe
Translation with DeepL API / trunk
Translation with DeepL API vtrunk
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 / client / deeplapi-functions.php

deeplapi-functions.php in Translation with DeepL API trunk, at client/deeplapi-functions.php

97 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3 function deepl_translate( $source_lang = false, $target_lang = false, $strings = array(), $cache_prefix = '', $allow_cache = true ) {
4 $DeepLApiTranslate = new DeepLApiTranslate();
5 $DeepLApiTranslate->setCachePrefix( $cache_prefix );
6 $DeepLApiTranslate->allowCache( $allow_cache );
7
8 if ( $source_lang ) {
9 $DeepLApiTranslate->setLangFrom( $source_lang );
10 }
11
12 //var_dump($target_lang); die('okzerzererrzer');
13 if ( !$DeepLApiTranslate->setLangTo( $target_lang ) ) {
14 /* translators: target language asked */
15 return new WP_Error( sprintf( __( "Target language '%s' not valid", 'wpdeepl' ), $target_lang ) );
16 }
17
18 $DeepLApiTranslate->setTagHandling( 'html' );
19
20 $DeepLApiTranslate->setFormality( DeepLConfiguration::getFormalityLevel( $target_lang) );
21
22 $DeepLApiTranslate = apply_filters('deepl_translate_DeepLApiTranslate_before', $DeepLApiTranslate );
23
24 //echo "\n pour lang $target_lang , formality = " . DeepLConfiguration::getFormalityLevel( $target_lang) ;
25 // wpdeepl_debug_display($DeepLApiTranslate); die('oazeaz+e48az4ea698k');
26
27 $translations = $DeepLApiTranslate->getTranslations( $strings );
28
29 if ( is_wp_error( $translations ) ) {
30 return array(
31 'success' => false,
32 'errors' => $translations
33 );
34 }
35 $request = array(
36 'cached' => $DeepLApiTranslate->wasItCached(),
37 'time' => $DeepLApiTranslate->getTimeElapsed(),
38 'cache_file_request' => $DeepLApiTranslate->getCacheFile( 'request' ),
39 'cache_file_response' => $DeepLApiTranslate->getCacheFile( 'response' ),
40 );
41 $success = true;
42 $return = compact( 'success', 'request', 'translations' );
43 return apply_filters( 'deepl_translate', $return, $source_lang, $target_lang, $strings, $cache_prefix );
44 }
45
46
47 function deepl_show_usage() {
48 ?>
49 <h3><?php esc_html_e( 'Usage', 'wpdeepl' ); ?></h3>
50 <?php
51 $DeepLApiUsage = new DeepLApiUsage();
52 $usage = $DeepLApiUsage->request();
53
54 //wpdeepl_debug_display($usage); wpdeepl_debug_display($DeepLApiUsage);
55
56 if ( $usage && is_array( $usage ) && array_key_exists( 'character_count', $usage ) && array_key_exists( 'character_limit', $usage )) :
57 $ratio = round( 100 * ( $usage['character_count'] / $usage['character_limit'] ), 3 );
58 $left_chars = $usage['character_limit'] - $usage['character_count'];
59
60 ?>
61 <div class="progress-bar blue">
62 <span style="width: <?php echo esc_attr( round( (100 - absint( $ratio ) ), 0 ) ); ?>%"><b><?php
63 echo esc_html(
64 sprintf(
65 /* translators: characters remaining */
66 __( '%s characters remaining', 'wpdeepl' ),
67 // L'argument est déjà sécurisé par esc_html(), on le laisse tel quel.
68 number_format( $left_chars )
69 )
70 ); ?></b></span>
71 <div class="progress-text"><?php
72 echo esc_html(
73 sprintf(
74 /* translators: characters translated / limit */
75 __( '%1$s / %2$s characters translated', 'wpdeepl' ),
76 esc_html( number_format_i18n( $usage['character_count'] ) ),
77 esc_html( number_format_i18n( $usage['character_limit'] ) )
78 ));
79 echo " - " . esc_html( $ratio ); ?> %</div>
80 <small class="request_time"><?php
81 echo esc_html( sprintf(
82 /* translators: time for the request */
83 __( 'Request done in: %f milliseconds', 'wpdeepl' ),
84 esc_html( $DeepLApiUsage->getRequestTime( true ) )
85 )); ?></small>
86 </div>
87 <?php
88 else :
89 esc_html_e('No response from the server', 'wpdeepl');
90 ?><br /><?php
91 /* translators: link to the DeepL website */
92 echo wp_kses_post( sprintf(__('Did you select the right server ? If yes, check your plan on <a href="%s">DeepL Pro website</a>. "DeepL API" should be included in it.', 'wpdeepl' ),
93 'https://www.deepl.com/pro-account/plan'
94 ));
95
96 endif;
97 }