PluginProbe
Translate and Go multilingual – Automatic AI translation – wpLingua / 2.16.7
Translate and Go multilingual – Automatic AI translation – wpLingua v2.16.7
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
← All changes | inc/switcher.php +131 -92 1.0.32.16.7 View file →
@@ -26,9 +26,9 @@
26 26 }
27 27 }
28 28
29 29 if ( ! $is_valid ) {
30 - $insert = 'bottom-left';
30 + $insert = 'bottom-center';
31 31 }
32 32
33 33 $insert = apply_filters(
34 34 'wplng_switcher_insert',
@@ -61,9 +61,9 @@
61 61 }
62 62 }
63 63
64 64 if ( ! $is_valid ) {
65 - $theme = 'light-double-square';
65 + $theme = 'light-simple-smooth';
66 66 }
67 67
68 68 $theme = apply_filters(
69 69 'wplng_switcher_theme',
@@ -130,16 +130,15 @@
130 130 }
131 131 }
132 132 }
133 133
134 - if ( ! $is_valid ) {
135 - $name_format = 'name';
136 - }
137 -
138 - if ( wplng_get_switcher_flags_style() === 'none'
139 - && 'none' === $name_format
134 + if ( ! $is_valid
135 + || (
136 + 'none' === wplng_get_switcher_flags_style()
137 + && 'none' === $name_format
138 + )
140 139 ) {
141 - $name_format = 'name';
140 + $name_format = 'original';
142 141 }
143 142
144 143 $name_format = apply_filters(
145 144 'wplng_switcher_name_format',
@@ -252,9 +251,9 @@
252 251 if ( ! empty( $arg['class'] ) ) {
253 252 $class .= ' ' . $arg['class'];
254 253 }
255 254
256 - return esc_attr( $class );
255 + return $class;
257 256 }
258 257
259 258
260 259 /**
@@ -278,9 +277,9 @@
278 277 }
279 278
280 279
281 280 /**
282 - * Print HTML of wpLingua switcher
281 + * Get HTML of wpLingua switcher
283 282 *
284 283 * @param array $arg
285 284 * @return string
286 285 */
@@ -285,9 +284,11 @@
285 284 * @return string
286 285 */
287 286 function wplng_get_switcher_html( $arg = array() ) {
288 287
289 - if ( ! wplng_url_is_translatable() && ! is_admin() ) {
288 + $is_admin = is_admin() || ( defined( 'REST_REQUEST' ) && REST_REQUEST );
289 +
290 + if ( ! $is_admin && ! wplng_url_is_translatable() ) {
290 291 return '';
291 292 }
292 293
293 294 $language_website = wplng_get_language_website();
@@ -297,9 +298,18 @@
297 298 $flags_style = wplng_get_switcher_flags_style();
298 299 $url_website = wplng_get_url_original();
299 300 $flags_show = true;
300 301
301 - if ( is_admin() ) {
302 + $url_website = remove_query_arg(
303 + array(
304 + 'wplng-mode',
305 + 'wplng-load',
306 + 'nocache',
307 + ),
308 + $url_website
309 + );
310 +
311 + if ( $is_admin ) {
302 312 $flags_show = true;
303 313 $url_website = '#';
304 314 } elseif ( ! empty( $arg['flags'] ) && 'none' === $arg['flags'] ) {
305 315 $flags_show = false;
@@ -379,8 +389,67 @@
379 389 */
380 390
381 391 $html = '<div class="' . esc_attr( 'wplng-switcher ' . $class ) . '">';
382 392 $html .= '<div class="switcher-content">';
393 +
394 + // Create link for current language
395 + if ( $language_website['id'] === $language_current_id ) {
396 +
397 + $html .= '<a';
398 + $html .= ' class="wplng-language wplng-language-current"';
399 + $html .= ' href="' . esc_url( $url_website ) . '"';
400 + $html .= ' onclick="event.preventDefault();"';
401 + $html .= ' data-wplng-lang-id="' . esc_attr( $language_website['id'] ) . '"';
402 + $html .= '>';
403 +
404 + if ( $flags_show && ! empty( $language_website['flag'] ) ) {
405 + $html .= '<img';
406 + $html .= ' src="' . esc_url( $language_website['flag'] ) . '"';
407 + $html .= ' alt="' . esc_attr( $language_website['name'] ) . '"';
408 + $html .= '>';
409 + }
410 +
411 + $html .= '<span class="language-id">' . esc_html( $language_website['id'] ) . '</span>';
412 + $html .= '<span class="language-name">' . esc_html( $language_website['name'] ) . '</span>';
413 + $html .= '<span class="language-original">' . esc_html( $language_website['original'] ) . '</span>';
414 + $html .= '</a>';
415 +
416 + } else {
417 +
418 + foreach ( $languages_target as $key => $language_target ) {
419 +
420 + if ( $language_target['id'] !== $language_current_id ) {
421 + continue;
422 + }
423 +
424 + $url = wplng_get_url_current_for_language( $language_target['id'] );
425 +
426 + $html .= '<a';
427 + $html .= ' class="wplng-language wplng-language-current"';
428 + $html .= ' href="' . esc_url( $url ) . '"';
429 + $html .= ' onclick="event.preventDefault();"';
430 + $html .= ' data-wplng-lang-id="' . esc_attr( $language_target['id'] ) . '"';
431 + $html .= '>';
432 +
433 + if ( $flags_show && ! empty( $language_target['flag'] ) ) {
434 + $html .= '<img';
435 + $html .= ' src="' . esc_url( $language_target['flag'] ) . '"';
436 + $html .= ' alt="' . esc_attr( $language_target['name'] ) . '"';
437 + $html .= '>';
438 + }
439 +
440 + $html .= '<span class="language-id">' . esc_html( $language_target['id'] ) . '</span>';
441 + $html .= '<span class="language-name">' . esc_html( $language_target['name'] ) . '</span>';
442 + $html .= '<span class="language-original">' . esc_html( $language_target['original'] ) . '</span>';
443 + $html .= '</a>';
444 + break;
445 + }
446 + }
447 +
448 + /**
449 + * Languages
450 + */
451 +
383 452 $html .= '<div class="wplng-languages">';
384 453
385 454 // Create link for website language
386 455
@@ -385,30 +454,38 @@
385 454 // Create link for website language
386 455
387 456 if ( $language_website['id'] === $language_current_id ) {
388 457
389 - $html .= '<a class="wplng-language website after current" ';
390 - $html .= 'href="' . esc_url( $url_website ) . '" ';
391 - $html .= 'onclick="event.preventDefault();">';
458 + $html .= '<a';
459 + $html .= ' class="wplng-language website after current"';
460 + $html .= ' href="' . esc_url( $url_website ) . '"';
461 + $html .= ' onclick="event.preventDefault();"';
462 + $html .= ' data-wplng-lang-id="' . esc_attr( $language_website['id'] ) . '"';
463 + $html .= '>';
392 464
393 - } elseif ( is_admin()
394 - || ( 0 < strpos( $url_website, '/?et_fb=1' ) )
395 - ) {
465 + } elseif ( $is_admin || wplng_str_contains( $url_website, '/?et_fb=1' ) ) {
396 466
397 - $html .= '<a class="wplng-language website after" ';
398 - $html .= 'href="' . esc_url( $url_website ) . '" ';
399 - $html .= 'onclick="event.preventDefault();">';
467 + $html .= '<a';
468 + $html .= ' class="wplng-language website after"';
469 + $html .= ' href="' . esc_url( $url_website ) . '"';
470 + $html .= ' onclick="event.preventDefault();"';
471 + $html .= ' data-wplng-lang-id="' . esc_attr( $language_website['id'] ) . '"';
472 + $html .= '>';
400 473
401 474 } else {
402 475
403 - $html .= '<a class="wplng-language website after" ';
404 - $html .= 'href="' . esc_url( $url_website ) . '">';
476 + $html .= '<a';
477 + $html .= ' class="wplng-language website after" ';
478 + $html .= ' href="' . esc_url( $url_website ) . '"';
479 + $html .= ' data-wplng-lang-id="' . esc_attr( $language_website['id'] ) . '"';
480 + $html .= '>';
405 481 }
406 482
407 483 if ( $flags_show && ! empty( $language_website['flag'] ) ) {
408 - $html .= '<img ';
409 - $html .= 'src="' . esc_url( $language_website['flag'] ) . '" ';
410 - $html .= 'alt="' . esc_attr( $language_website['name'] ) . '">';
484 + $html .= '<img';
485 + $html .= ' src="' . esc_url( $language_website['flag'] ) . '"';
486 + $html .= ' alt="' . esc_attr( $language_website['name'] ) . '"';
487 + $html .= '>';
411 488 }
412 489
413 490 $html .= '<span class="language-id">' . esc_html( $language_website['id'] ) . '</span>';
414 491 $html .= '<span class="language-name">' . esc_html( $language_website['name'] ) . '</span>';
@@ -417,38 +494,47 @@
417 494
418 495 // Create link for each target languages
419 496 foreach ( $languages_target as $key => $language_target ) {
420 497
421 - $url = wplng_get_url_current_for_language( $language_target['id'] );
498 + $url = '#';
422 499
500 + if ( ! $is_admin ) {
501 + $url = wplng_get_url_current_for_language( $language_target['id'] );
502 + $url = remove_query_arg( array( 'wplng-load', 'nocache' ), $url );
503 + }
504 +
423 505 if ( $language_target['id'] === $language_current_id ) {
424 506
425 - $html .= '<a ';
426 - $html .= 'class="wplng-language current" ';
427 - $html .= 'href="' . esc_url( $url ) . '" ';
428 - $html .= 'onclick="event.preventDefault();">';
507 + $html .= '<a';
508 + $html .= ' class="wplng-language current"';
509 + $html .= ' href="' . esc_url( $url ) . '"';
510 + $html .= ' onclick="event.preventDefault();"';
511 + $html .= '>';
429 512
430 - } elseif ( is_admin()
431 - || ( 0 < strpos( $url, '/?et_fb=1' ) )
432 - ) {
513 + } elseif ( $is_admin || wplng_str_contains( $url, '/?et_fb=1' ) ) {
433 514
434 - $html .= '<a ';
435 - $html .= 'class="wplng-language" ';
436 - $html .= 'href="' . esc_url( $url ) . '" ';
437 - $html .= 'onclick="event.preventDefault();">';
515 + $html .= '<a';
516 + $html .= ' class="wplng-language"';
517 + $html .= ' href="' . esc_url( $url ) . '"';
518 + $html .= ' onclick="event.preventDefault();"';
519 + $html .= ' data-wplng-lang-id="' . esc_attr( $language_target['id'] ) . '"';
520 + $html .= '>';
438 521
439 522 } else {
440 523
441 - $html .= '<a ';
442 - $html .= 'class="wplng-language" ';
443 - $html .= 'href="' . esc_url( $url ) . '">';
524 + $html .= '<a';
525 + $html .= ' class="wplng-language"';
526 + $html .= ' href="' . esc_url( $url ) . '"';
527 + $html .= ' data-wplng-lang-id="' . esc_attr( $language_target['id'] ) . '"';
528 + $html .= '>';
444 529
445 530 }
446 531
447 532 if ( $flags_show && ! empty( $language_target['flag'] ) ) {
448 - $html .= '<img ';
449 - $html .= 'src="' . esc_url( $language_target['flag'] ) . '" ';
450 - $html .= 'alt="' . esc_attr( $language_target['name'] ) . '">';
533 + $html .= '<img';
534 + $html .= ' src="' . esc_url( $language_target['flag'] ) . '"';
535 + $html .= ' alt="' . esc_attr( $language_target['name'] ) . '"';
536 + $html .= '>';
451 537 }
452 538
453 539 $html .= '<span class="language-id">' . esc_html( $language_target['id'] ) . '</span>';
454 540 $html .= '<span class="language-name">' . esc_html( $language_target['name'] ) . '</span>';
@@ -456,55 +542,8 @@
456 542 $html .= '</a>';
457 543 }
458 544
459 545 $html .= '</div>'; // End .wplng-languages
460 -
461 - // Create link for current language
462 - if ( $language_website['id'] === $language_current_id ) {
463 -
464 - $html .= '<a class="wplng-language wplng-language-current" ';
465 - $html .= 'href="' . esc_url( $url_website ) . '" ';
466 - $html .= 'onclick="event.preventDefault();">';
467 -
468 - if ( $flags_show && ! empty( $language_website['flag'] ) ) {
469 - $html .= '<img ';
470 - $html .= 'src="' . esc_url( $language_website['flag'] ) . '" ';
471 - $html .= 'alt="' . esc_attr( $language_website['name'] ) . '">';
472 - }
473 -
474 - $html .= '<span class="language-id">' . esc_html( $language_website['id'] ) . '</span>';
475 - $html .= '<span class="language-name">' . esc_html( $language_website['name'] ) . '</span>';
476 - $html .= '<span class="language-original">' . esc_html( $language_website['original'] ) . '</span>';
477 - $html .= '</a>';
478 -
479 - } else {
480 -
481 - foreach ( $languages_target as $key => $language_target ) {
482 -
483 - if ( $language_target['id'] !== $language_current_id ) {
484 - continue;
485 - }
486 -
487 - $url = wplng_get_url_current_for_language( $language_target['id'] );
488 -
489 - $html .= '<a ';
490 - $html .= 'class="wplng-language wplng-language-current" ';
491 - $html .= 'href="' . esc_url( $url ) . '" ';
492 - $html .= 'onclick="event.preventDefault();">';
493 -
494 - if ( $flags_show && ! empty( $language_target['flag'] ) ) {
495 - $html .= '<img ';
496 - $html .= 'src="' . esc_url( $language_target['flag'] ) . '" ';
497 - $html .= 'alt="' . esc_attr( $language_target['name'] ) . '">';
498 - }
499 -
500 - $html .= '<span class="language-id">' . esc_html( $language_target['id'] ) . '</span>';
501 - $html .= '<span class="language-name">' . esc_html( $language_target['name'] ) . '</span>';
502 - $html .= '<span class="language-original">' . esc_html( $language_target['original'] ) . '</span>';
503 - $html .= '</a>';
504 - break;
505 - }
506 - }
507 546
508 547 $html .= '</div>'; // End .switcher-content
509 548 $html .= '</div>'; // End .wplng-switcher
510 549