PluginProbe
Translate and Go multilingual – Automatic AI translation – wpLingua / 2.12.3
Translate and Go multilingual – Automatic AI translation – wpLingua v2.12.3
2.16.7 2.16.6 2.16.5 2.16.4 2.16.3 2.16.2 2.16.1 2.16.0 2.15.2 2.15.1 2.15.0 2.14.3 2.14.2 2.14.1 2.14.0 2.13.1 2.13.0 2.12.3 2.12.2 2.12.1 trunk 1.0.3 1.0.4 1.0.5 1.1.0 All 112 releases
wplingua / inc / admin / option-page-link-media.php

option-page-link-media.php in Translate and Go multilingual – Automatic AI translation – wpLingua 2.12.3, at inc/admin/option-page-link-media.php

494 lines 13.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // If this file is called directly, abort.
4 if ( ! defined( 'WPINC' ) ) {
5 die;
6 }
7
8
9 /**
10 * Print HTML Option page - wpLingua : Links & Medias
11 *
12 * @return void
13 */
14 function wplng_option_page_link_media() {
15
16 $entries_json = wplng_link_media_get_entries_json();
17
18 ?>
19
20 <h1 class="wplng-option-page-title"><span class="dashicons dashicons-translation"></span> <?php esc_html_e( 'wpLingua - Links & Medias', 'wplingua' ); ?></h1>
21
22 <div class="wrap">
23 <hr class="wp-header-end">
24 <form method="post" action="options.php">
25 <?php
26 settings_fields( 'wplng_link_media' );
27 do_settings_sections( 'wplng_link_media' );
28 ?>
29 <table class="form-table wplng-form-table">
30
31 <tr class="wplng-beta-hidden" style="display: none;">
32 <th scope="row"><span class="dashicons dashicons-printer"></span> <?php esc_html_e( 'Debug', 'wplingua' ); ?></th>
33 <td>
34 <fieldset>
35 <textarea name="wplng_link_media_entries" id="wplng_link_media_entries"><?php echo esc_textarea( $entries_json ); ?></textarea>
36 </fieldset>
37 </td>
38 </tr>
39
40 <tr id="wplng-section-entries-all">
41 <th scope="row"><span class="dashicons dashicons-format-gallery"></span> <?php esc_html_e( 'Links & medias', 'wplingua' ); ?></th>
42 <td>
43 <fieldset>
44
45 <p><strong><?php esc_html_e( 'Links and medias translations rules: ', 'wplingua' ); ?></strong></p>
46
47 <p><?php esc_html_e( 'Translation rules on links and media allow different images to be displayed or link URLs to be changed according to the current language. These rules apply to elements such as: link target URLs, image source URLs, iframe source URLs, URLs in intercepted JSONs...', 'wplingua' ); ?></p>
48
49 <hr>
50
51 <?php wplng_option_page_link_media_entries_html(); ?>
52
53 <a href="javascript:void(0);" class="button button-primary" id="wplng-new-rule-button">
54 <?php esc_html_e( 'Add a rule', 'wplingua' ); ?>
55 </a>
56
57 </fieldset>
58 </td>
59 </tr>
60
61 <tr id="wplng-section-entry-new" style="display: none;">
62 <th scope="row"><span class="dashicons dashicons-welcome-add-page"></span> <?php esc_html_e( 'Add an entry', 'wplingua' ); ?></th>
63 <td>
64 <div id="wplng-link-media-entry-new">
65 <?php wplng_option_page_link_media_new_entry_html(); ?>
66 </div>
67 </td>
68 </tr>
69
70 <tr id="wplng-section-entry-edit" style="display: none;">
71 <th scope="row"><span class="dashicons dashicons-welcome-write-blog"></span> <?php esc_html_e( 'Edit the entry', 'wplingua' ); ?></th>
72 <td>
73 <div id="wplng-link-media-entry-edit">
74 <?php wplng_option_page_link_media_edit_entry_html(); ?>
75 </div>
76 </td>
77 </tr>
78 </table>
79
80 <?php submit_button(); ?>
81
82 </form>
83 </div>
84 <?php
85 }
86
87
88 /**
89 * Print HTML subsection of Option page : wpLingua Dictionary - Entries
90 *
91 * @return void
92 */
93 function wplng_option_page_link_media_entries_html() {
94
95 $link_media_entries = wplng_link_media_get_entries();
96
97 if ( empty( $link_media_entries ) ) {
98 return '';
99 }
100
101 $language_website = wplng_get_language_website();
102 $language_website_html = '<img';
103 $language_website_html .= ' src="' . esc_url( $language_website['flag'] ) . '"';
104 $language_website_html .= ' alt="' . esc_attr( $language_website['name'] ) . '"';
105 $language_website_html .= ' class="wplng-flag"';
106 $language_website_html .= '>';
107
108 $html = '<label><strong>';
109 $html .= esc_html__( 'All links and medias rules: ', 'wplingua' );
110 $html .= '</strong></label>';
111 $html .= '<br>';
112 $html .= '<div id="wplng-link-media-entries">';
113
114 foreach ( $link_media_entries as $rule_number => $entry ) {
115
116 $html .= '<div';
117 $html .= ' class="wplng-link-media-entry"';
118 $html .= ' wplng-rule="' . esc_attr( $rule_number ) . '"';
119 $html .= '>';
120
121 $html .= '<div class="wplng-rule-header">';
122
123 $html .= '<div class="wplng-rule-name">';
124 $html .= esc_html__( 'Rule N°', 'wplingua' );
125 $html .= esc_html( $rule_number + 1 );
126 $html .= '</div>'; // ENd .wplng-rule-name
127
128 $html .= '<div class="wplng-rule-action">';
129 $html .= '<a';
130 $html .= ' href="javascript:void(0);"';
131 $html .= ' class="wplng-rule-link-edit"';
132 $html .= ' wplng-rule="' . esc_attr( $rule_number ) . '"';
133 $html .= '>';
134 $html .= esc_html__( 'Edit', 'wplingua' );
135 $html .= '</a> ';
136 $html .= '<a';
137 $html .= ' href="javascript:void(0);"';
138 $html .= ' class="wplng-rule-link-remove"';
139 $html .= ' wplng-rule="' . esc_attr( $rule_number ) . '"';
140 $html .= '>';
141 $html .= esc_html__( 'Remove', 'wplingua' );
142 $html .= '</a>';
143 $html .= '</div>'; // .wplng-rule-action
144
145 $html .= '</div>'; // End .wplng-rule-header
146
147 $html .= '<hr>';
148
149 if ( isset( $entry['rules'] ) ) {
150
151 /**
152 * Mode
153 */
154
155 $html .= '<strong>';
156 $html .= esc_html__( 'Mode: ', 'wplingua' );
157 $html .= '</strong>';
158
159 if ( empty( $entry['rules'] ) ) {
160 $entry['rules'] = 'exactly';
161 }
162
163 switch ( $entry['mode'] ) {
164 case 'exactly':
165 $html .= esc_html__( 'Exactly equal', 'wplingua' );
166 break;
167
168 case 'partially':
169 $html .= esc_html__( 'Partially equal', 'wplingua' );
170 break;
171
172 case 'regex':
173 $html .= esc_html__( 'Regex', 'wplingua' );
174 break;
175
176 default:
177 $html .= esc_html__( 'Error', 'wplingua' );
178 break;
179 }
180
181 $html .= '<hr>';
182
183 /**
184 * Source
185 */
186
187 $html .= '<strong>';
188 $html .= $language_website_html;
189 $html .= esc_html__( 'Original: ', 'wplingua' );
190 $html .= '</strong>';
191 $html .= esc_html( $entry['source'] );
192
193 /**
194 * Rules
195 */
196
197 foreach ( $entry['rules'] as $language_id => $rule ) {
198
199 $language = wplng_get_language_by_id( $language_id );
200
201 $html .= '<hr>';
202 $html .= '<strong>';
203 $html .= '<img';
204 $html .= ' src="' . esc_url( $language['flag'] ) . '"';
205 $html .= ' alt="' . esc_attr( $language['name'] ) . '"';
206 $html .= ' class="wplng-flag"';
207 $html .= '>';
208 $html .= esc_html( $language['name'] );
209 $html .= ' : ';
210 $html .= '</strong>';
211 $html .= esc_html( $rule );
212 }
213 }
214
215 $html .= '</div>'; // End .wplng-dictionary-entry
216 }
217
218 $html .= '</div>'; // End #wplng-dictionary-entries
219
220 echo $html;
221 }
222
223
224 /**
225 * Print HTML subsection of Option page : wpLingua Links & Medias - New entry
226 *
227 * @return void
228 */
229 function wplng_option_page_link_media_new_entry_html() {
230
231 $html = '';
232
233 /**
234 * Input: Source
235 */
236
237 $language_website = wplng_get_language_website();
238 $language_website_html = '<img';
239 $language_website_html .= ' src="' . esc_url( $language_website['flag'] ) . '"';
240 $language_website_html .= ' alt="' . esc_attr( $language_website['name'] ) . '"';
241 $language_website_html .= ' class="wplng-flag"';
242 $language_website_html .= '>';
243
244 $html .= '<fieldset>';
245 $html .= '<label for="wplng-new-source">';
246 $html .= '<strong>';
247 $html .= $language_website_html;
248 $html .= esc_html__( 'Original URL: ', 'wplingua' );
249 $html .= '</strong>';
250 $html .= '</label>';
251 $html .= '<br>';
252 $html .= '<input';
253 $html .= ' type="text"';
254 $html .= ' name="wplng-new-source"';
255 $html .= ' id="wplng-new-source"';
256 $html .= ' maxlength="256"';
257 $html .= '/>';
258 $html .= '</fieldset>';
259
260 /**
261 * Input: Mode
262 */
263
264 $html .= '<fieldset class="wplng-link-media-mode">';
265 $html .= '<input';
266 $html .= ' type="radio"';
267 $html .= ' name="wplng_new_mode"';
268 $html .= ' value="exactly"';
269 $html .= ' id="wplng_new_mode_exactly"';
270 $html .= ' checked';
271 $html .= '>';
272 $html .= '<label for="wplng_new_mode_exactly"> ';
273 $html .= esc_html__( 'Exactly equal', 'wplingua' );
274 $html .= '</label> ';
275 $html .= '<input';
276 $html .= ' type="radio"';
277 $html .= ' name="wplng_new_mode"';
278 $html .= ' value="partially"';
279 $html .= ' id="wplng_new_mode_partially"';
280 $html .= '>';
281 $html .= '<label for="wplng_new_mode_partially"> ';
282 $html .= esc_html__( 'Partially equal', 'wplingua' );
283 $html .= '</label> ';
284 $html .= '<input';
285 $html .= ' type="radio"';
286 $html .= ' name="wplng_new_mode"';
287 $html .= ' value="regex"';
288 $html .= ' id="wplng_new_mode_regex"';
289 $html .= '>';
290 $html .= '<label for="wplng_new_mode_regex"> ';
291 $html .= esc_html__( 'REGEX', 'wplingua' );
292 $html .= '</label>';
293 $html .= '</fieldset>';
294
295 /**
296 * Input: Rules
297 */
298
299 $language_target = wplng_get_languages_target();
300
301 $html .= '<div id="wplng-new-rules">';
302 foreach ( $language_target as $language ) {
303
304 $name = 'wplng-new-always-translate-' . $language['id'];
305
306 $html .= '<div class="wplng-new-rule" wplng-rule="' . esc_html( $language['id'] ) . '">';
307 $html .= '<hr>';
308 $html .= '<fieldset>';
309 $html .= '<label for="' . esc_attr( $name ) . '">';
310 $html .= '<strong>';
311 $html .= '<img';
312 $html .= ' src="' . esc_url( $language['flag'] ) . '"';
313 $html .= ' alt="' . esc_attr( $language['name'] ) . '"';
314 $html .= ' class="wplng-flag"';
315 $html .= '>';
316 $html .= esc_html( $language['name'] );
317 $html .= esc_html__( ' - URL: ', 'wplingua' );
318 $html .= '</strong>';
319 $html .= '</label>';
320
321 $html .= '<br>';
322
323 $html .= '<input';
324 $html .= ' type="text"';
325 $html .= ' name="' . esc_attr( $name ) . '"';
326 $html .= ' id="' . esc_attr( $name ) . '"';
327 $html .= ' maxlength="256"';
328 $html .= '/>';
329
330 $html .= '</fieldset>';
331 $html .= '</div>';
332
333 }
334 $html .= '</div>';
335
336 $html .= '<div id="wplng-new-action-section">';
337
338 $html .= '<a';
339 $html .= ' href="javascript:void(0);"';
340 $html .= ' id="wplng-new-cancel-button"';
341 $html .= ' class="button "';
342 $html .= '>';
343 $html .= esc_html__( 'Cancel', 'wplingua' );
344 $html .= '</a>';
345
346 $html .= '<a';
347 $html .= ' href="javascript:void(0);"';
348 $html .= ' id="wplng-new-add-button"';
349 $html .= ' class="button button-primary"';
350 $html .= '>';
351 $html .= esc_html__( 'Save new entry', 'wplingua' );
352 $html .= '</a>';
353
354 $html .= '</div>';
355
356 echo $html;
357 }
358
359
360 /**
361 * Print HTML subsection of Option page : wpLingua Links & Medias - Edit entry
362 *
363 * @return void
364 */
365 function wplng_option_page_link_media_edit_entry_html() {
366
367 $html = '';
368
369 /**
370 * Input : Source
371 */
372
373 $language_website = wplng_get_language_website();
374 $language_website_html = '<img';
375 $language_website_html .= ' src="' . esc_url( $language_website['flag'] ) . '"';
376 $language_website_html .= ' alt="' . esc_attr( $language_website['name'] ) . '"';
377 $language_website_html .= ' class="wplng-flag"';
378 $language_website_html .= '>';
379
380 $html .= '<fieldset>';
381 $html .= '<label for="wplng-edit-source">';
382 $html .= '<strong>';
383 $html .= $language_website_html;
384 $html .= esc_html__( 'Original URL: ', 'wplingua' );
385 $html .= '</strong>';
386 $html .= '</label>';
387 $html .= '<br>';
388 $html .= '<input';
389 $html .= ' type="text"';
390 $html .= ' name="wplng-edit-source"';
391 $html .= ' id="wplng-edit-source"';
392 $html .= ' maxlength="256"';
393 $html .= '/>';
394 $html .= '</fieldset>';
395
396 /**
397 * Input: Mode
398 */
399
400 $html .= '<fieldset class="wplng-link-media-mode">';
401 $html .= '<input';
402 $html .= ' type="radio"';
403 $html .= ' name="wplng_edit_mode"';
404 $html .= ' value="exactly"';
405 $html .= ' id="wplng_edit_mode_exactly"';
406 $html .= ' checked';
407 $html .= '>';
408 $html .= '<label for="wplng_edit_mode_exactly"> ';
409 $html .= esc_html__( 'Exactly equal', 'wplingua' );
410 $html .= '</label> ';
411 $html .= '<input';
412 $html .= ' type="radio"';
413 $html .= ' name="wplng_edit_mode"';
414 $html .= ' value="partially"';
415 $html .= ' id="wplng_edit_mode_partially"';
416 $html .= '>';
417 $html .= '<label for="wplng_edit_mode_partially"> ';
418 $html .= esc_html__( 'Partially equal', 'wplingua' );
419 $html .= '</label> ';
420 $html .= '<input';
421 $html .= ' type="radio"';
422 $html .= ' name="wplng_edit_mode"';
423 $html .= ' value="regex"';
424 $html .= ' id="wplng_edit_mode_regex"';
425 $html .= '>';
426 $html .= '<label for="wplng_edit_mode_regex"> ';
427 $html .= esc_html__( 'REGEX', 'wplingua' );
428 $html .= '</label>';
429 $html .= '</fieldset>';
430
431 /**
432 * Input: Rules
433 */
434
435 $language_target = wplng_get_languages_target();
436
437 $html .= '<div id="wplng-edit-rules">';
438 foreach ( $language_target as $language ) {
439
440 $name = 'wplng-edit-always-translate-' . $language['id'];
441
442 $html .= '<div class="wplng-edit-rule" wplng-rule="' . esc_html( $language['id'] ) . '">';
443 $html .= '<hr>';
444 $html .= '<fieldset>';
445 $html .= '<label for="' . esc_attr( $name ) . '">';
446 $html .= '<strong>';
447 $html .= '<img';
448 $html .= ' src="' . esc_url( $language['flag'] ) . '"';
449 $html .= ' alt="' . esc_attr( $language['name'] ) . '"';
450 $html .= ' class="wplng-flag"';
451 $html .= '>';
452 $html .= esc_html( $language['name'] );
453 $html .= esc_html__( ' - Always translate by: ', 'wplingua' );
454 $html .= '</strong>';
455 $html .= '</label>';
456
457 $html .= '<br>';
458
459 $html .= '<input';
460 $html .= ' type="text"';
461 $html .= ' name="' . esc_attr( $name ) . '"';
462 $html .= ' id="' . esc_attr( $name ) . '"';
463 $html .= ' maxlength="256"';
464 $html .= '/>';
465
466 $html .= '</fieldset>';
467 $html .= '</div>';
468
469 }
470 $html .= '</div>';
471
472 $html .= '<div id="wplng-edit-action-section">';
473
474 $html .= '<a';
475 $html .= ' href="javascript:void(0);"';
476 $html .= ' id="wplng-edit-cancel-button"';
477 $html .= ' class="button "';
478 $html .= '>';
479 $html .= esc_html__( 'Cancel', 'wplingua' );
480 $html .= '</a>';
481
482 $html .= '<a';
483 $html .= ' href="javascript:void(0);"';
484 $html .= ' id="wplng-edit-save-button"';
485 $html .= ' class="button button-primary"';
486 $html .= '>';
487 $html .= esc_html__( 'Save edited entry', 'wplingua' );
488 $html .= '</a>';
489
490 $html .= '</div>';
491
492 echo $html;
493 }
494