EWWW Image Optimizer - Version 6.5.0

Version Description

  • added: Lazy Load and Easy IO support for multiple background images and mixing with gradients
  • changed: all Easy IO settings available to all plan levels
  • changed: Easy IO CDN image links constrained to 2560px, use EIO_PRESERVE_LINKED_IMAGES to override
  • fixed: database upgrade fails on MySQL 5.6
  • fixed: LQIP and SVG placeholder options not auto-loaded correctly
  • fixed: regression in legacy translation loader
Download this release

Release Info

Developer nosilver4u
Plugin Icon 128x128 EWWW Image Optimizer
Version 6.5.0
Comparing to
See all releases

Code changes from version 6.4.2 to 6.5.0

.travis.yml CHANGED
@@ -1,6 +1,6 @@
1
  os: linux
2
 
3
- dist: xenial
4
 
5
  language: php
6
 
1
  os: linux
2
 
3
+ dist: bionic
4
 
5
  language: php
6
 
changelog.txt CHANGED
@@ -1,3 +1,11 @@
 
 
 
 
 
 
 
 
1
  = 6.4.2 =
2
  * added: JS/Picture WebP rewriters support FacetWP AJAX responses
3
  * fixed: errors from posix_getpwuid() and posix_getgrgid() not handled correctly
1
+ = 6.5.0 =
2
+ * added: Lazy Load and Easy IO support for multiple background images and mixing with gradients
3
+ * changed: all Easy IO settings available to all plan levels
4
+ * changed: Easy IO CDN image links constrained to 2560px, use EIO_PRESERVE_LINKED_IMAGES to override
5
+ * fixed: database upgrade fails on MySQL 5.6
6
+ * fixed: LQIP and SVG placeholder options not auto-loaded correctly
7
+ * fixed: regression in legacy translation loader
8
+
9
  = 6.4.2 =
10
  * added: JS/Picture WebP rewriters support FacetWP AJAX responses
11
  * fixed: errors from posix_getpwuid() and posix_getgrgid() not handled correctly
classes/class-eio-js-webp.php CHANGED
@@ -55,6 +55,13 @@ class EIO_JS_Webp extends EIO_Page_Parser {
55
  */
56
  private $load_webp_script = '';
57
 
 
 
 
 
 
 
 
58
  /**
59
  * Register (once) actions and filters for JS WebP.
60
  */
@@ -66,9 +73,9 @@ class EIO_JS_Webp extends EIO_Page_Parser {
66
  parent::__construct();
67
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
68
 
69
- $uri = add_query_arg( null, null );
70
- if ( false === strpos( $uri, 'page=ewww-image-optimizer-options' ) ) {
71
- $this->debug_message( "request uri is $uri" );
72
  } else {
73
  $this->debug_message( 'request uri is EWWW IO settings' );
74
  }
@@ -79,9 +86,9 @@ class EIO_JS_Webp extends EIO_Page_Parser {
79
  * Allow pre-empting JS WebP by page.
80
  *
81
  * @param bool Whether to parse the page for images to rewrite for WebP, default true.
82
- * @param string $uri The URL of the page.
83
  */
84
- if ( ! apply_filters( 'eio_do_js_webp', true, $uri ) ) {
85
  return;
86
  }
87
 
@@ -93,6 +100,8 @@ class EIO_JS_Webp extends EIO_Page_Parser {
93
  add_filter( 'woocommerce_available_variation', array( $this, 'woocommerce_available_variation' ) );
94
  // Filter for FacetWP JSON responses.
95
  add_filter( 'facetwp_render_output', array( $this, 'filter_facetwp_json_output' ) );
 
 
96
 
97
  // Load up the minified check script.
98
  $this->check_webp_script = file_get_contents( EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'includes/check-webp.min.js' );
@@ -155,7 +164,7 @@ class EIO_JS_Webp extends EIO_Page_Parser {
155
  return false;
156
  }
157
  if ( empty( $uri ) ) {
158
- $uri = add_query_arg( null, null );
159
  }
160
  if ( false !== strpos( $uri, '?brizy-edit' ) ) {
161
  return false;
@@ -369,6 +378,9 @@ class EIO_JS_Webp extends EIO_Page_Parser {
369
  $this->debug_message( 'JS WebP should not process page' );
370
  return $buffer;
371
  }
 
 
 
372
 
373
  $body_tags = $this->get_elements_from_html( $buffer, 'body' );
374
  $body_webp_script = '<script data-cfasync="false">if(ewww_webp_supported){document.body.classList.add("webp-support");}</script>';
@@ -413,7 +425,10 @@ class EIO_JS_Webp extends EIO_Page_Parser {
413
  $this->set_attribute( $new_image, 'class', $this->get_attribute( $new_image, 'class' ) . ' ewww_webp_lazy_load', true );
414
  $buffer = str_replace( $image, $new_image, $buffer );
415
  }
416
- } elseif ( $this->validate_image_url( $file ) && false === strpos( $image, 'lazyload' ) ) {
 
 
 
417
  // If a CDN path match was found, or .webp image existence is confirmed, and this is not a lazy-load 'dummy' image.
418
  $this->debug_message( 'found a webp image or forced path' );
419
  $new_image = $image;
@@ -876,6 +891,27 @@ class EIO_JS_Webp extends EIO_Page_Parser {
876
  return $output;
877
  }
878
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
879
  /**
880
  * Converts a URL to a file-system path and checks if the resulting path exists.
881
  *
@@ -1028,6 +1064,9 @@ class EIO_JS_Webp extends EIO_Page_Parser {
1028
  if ( ! $this->should_process_page() ) {
1029
  return;
1030
  }
 
 
 
1031
  if ( ! ewww_image_optimizer_ce_webp_enabled() ) {
1032
  wp_enqueue_script( 'ewww-webp-check-script', plugins_url( '/includes/check-webp.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION );
1033
  wp_enqueue_script( 'ewww-webp-load-script', plugins_url( '/includes/load-webp.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION, true );
@@ -1041,6 +1080,9 @@ class EIO_JS_Webp extends EIO_Page_Parser {
1041
  if ( ! $this->should_process_page() ) {
1042
  return;
1043
  }
 
 
 
1044
  if ( ! ewww_image_optimizer_ce_webp_enabled() ) {
1045
  wp_enqueue_script( 'ewww-webp-check-script', plugins_url( '/includes/check-webp.min.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION );
1046
  wp_enqueue_script( 'ewww-webp-load-script', plugins_url( '/includes/load-webp.min.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION, true );
@@ -1054,6 +1096,9 @@ class EIO_JS_Webp extends EIO_Page_Parser {
1054
  if ( ! $this->should_process_page() ) {
1055
  return;
1056
  }
 
 
 
1057
  if ( defined( 'EWWW_IMAGE_OPTIMIZER_NO_JS' ) && EWWW_IMAGE_OPTIMIZER_NO_JS ) {
1058
  return;
1059
  }
@@ -1071,6 +1116,9 @@ class EIO_JS_Webp extends EIO_Page_Parser {
1071
  if ( ! $this->should_process_page() ) {
1072
  return;
1073
  }
 
 
 
1074
  $this->debug_message( 'inlining load webp script' );
1075
  echo '<script data-cfasync="false" type="text/javascript">' . $this->load_webp_script . '</script>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1076
  }
55
  */
56
  private $load_webp_script = '';
57
 
58
+ /**
59
+ * Request URI.
60
+ *
61
+ * @var string $request_uri
62
+ */
63
+ public $request_uri = '';
64
+
65
  /**
66
  * Register (once) actions and filters for JS WebP.
67
  */
73
  parent::__construct();
74
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
75
 
76
+ $this->request_uri = add_query_arg( null, null );
77
+ if ( false === strpos( $this->request_uri, 'page=ewww-image-optimizer-options' ) ) {
78
+ $this->debug_message( "request uri is {$this->request_uri}" );
79
  } else {
80
  $this->debug_message( 'request uri is EWWW IO settings' );
81
  }
86
  * Allow pre-empting JS WebP by page.
87
  *
88
  * @param bool Whether to parse the page for images to rewrite for WebP, default true.
89
+ * @param string The URI/path of the page.
90
  */
91
+ if ( ! apply_filters( 'eio_do_js_webp', true, $this->request_uri ) ) {
92
  return;
93
  }
94
 
100
  add_filter( 'woocommerce_available_variation', array( $this, 'woocommerce_available_variation' ) );
101
  // Filter for FacetWP JSON responses.
102
  add_filter( 'facetwp_render_output', array( $this, 'filter_facetwp_json_output' ) );
103
+ // Filter for LL when multiple background images are used--because it uses JSON, and the background image parser skips elements containing JSON.
104
+ add_filter( 'eio_ll_multiple_bg_images_for_webp', array( $this, 'filter_image_url_array' ) );
105
 
106
  // Load up the minified check script.
107
  $this->check_webp_script = file_get_contents( EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'includes/check-webp.min.js' );
164
  return false;
165
  }
166
  if ( empty( $uri ) ) {
167
+ $uri = $this->request_uri;
168
  }
169
  if ( false !== strpos( $uri, '?brizy-edit' ) ) {
170
  return false;
378
  $this->debug_message( 'JS WebP should not process page' );
379
  return $buffer;
380
  }
381
+ if ( ! apply_filters( 'eio_do_js_webp', true, $this->request_uri ) ) {
382
+ return $buffer;
383
+ }
384
 
385
  $body_tags = $this->get_elements_from_html( $buffer, 'body' );
386
  $body_webp_script = '<script data-cfasync="false">if(ewww_webp_supported){document.body.classList.add("webp-support");}</script>';
425
  $this->set_attribute( $new_image, 'class', $this->get_attribute( $new_image, 'class' ) . ' ewww_webp_lazy_load', true );
426
  $buffer = str_replace( $image, $new_image, $buffer );
427
  }
428
+ } elseif (
429
+ $this->validate_image_url( $file ) &&
430
+ ( false === strpos( $image, 'lazyload' ) || false !== strpos( $image, 'lazyloaded' ) )
431
+ ) {
432
  // If a CDN path match was found, or .webp image existence is confirmed, and this is not a lazy-load 'dummy' image.
433
  $this->debug_message( 'found a webp image or forced path' );
434
  $new_image = $image;
891
  return $output;
892
  }
893
 
894
+ /**
895
+ * Parse an array of image URLs and replace them with their WebP counterparts.
896
+ * Mostly for our Lazy Loader at this point, since it uses JSON when multiple
897
+ * background images are used on a single element.
898
+ *
899
+ * @param array $image_urls An array of image URLs.
900
+ * @return array An array with WebP image URLs.
901
+ */
902
+ function filter_image_url_array( $image_urls ) {
903
+ $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
904
+ if ( $this->is_iterable( $image_urls ) ) {
905
+ foreach ( $image_urls as $index => $image_url ) {
906
+ $this->debug_message( "checking $image_url for a WebP variant" );
907
+ if ( ! empty( $image_url ) && $this->validate_image_url( $image_url ) ) {
908
+ $image_urls[ $index ] = $this->generate_url( $image_url );
909
+ }
910
+ }
911
+ }
912
+ return $image_urls;
913
+ }
914
+
915
  /**
916
  * Converts a URL to a file-system path and checks if the resulting path exists.
917
  *
1064
  if ( ! $this->should_process_page() ) {
1065
  return;
1066
  }
1067
+ if ( ! apply_filters( 'eio_do_js_webp', true, $this->request_uri ) ) {
1068
+ return;
1069
+ }
1070
  if ( ! ewww_image_optimizer_ce_webp_enabled() ) {
1071
  wp_enqueue_script( 'ewww-webp-check-script', plugins_url( '/includes/check-webp.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION );
1072
  wp_enqueue_script( 'ewww-webp-load-script', plugins_url( '/includes/load-webp.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION, true );
1080
  if ( ! $this->should_process_page() ) {
1081
  return;
1082
  }
1083
+ if ( ! apply_filters( 'eio_do_js_webp', true, $this->request_uri ) ) {
1084
+ return;
1085
+ }
1086
  if ( ! ewww_image_optimizer_ce_webp_enabled() ) {
1087
  wp_enqueue_script( 'ewww-webp-check-script', plugins_url( '/includes/check-webp.min.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION );
1088
  wp_enqueue_script( 'ewww-webp-load-script', plugins_url( '/includes/load-webp.min.js', EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE ), array(), EWWW_IMAGE_OPTIMIZER_VERSION, true );
1096
  if ( ! $this->should_process_page() ) {
1097
  return;
1098
  }
1099
+ if ( ! apply_filters( 'eio_do_js_webp', true, $this->request_uri ) ) {
1100
+ return;
1101
+ }
1102
  if ( defined( 'EWWW_IMAGE_OPTIMIZER_NO_JS' ) && EWWW_IMAGE_OPTIMIZER_NO_JS ) {
1103
  return;
1104
  }
1116
  if ( ! $this->should_process_page() ) {
1117
  return;
1118
  }
1119
+ if ( ! apply_filters( 'eio_do_js_webp', true, $this->request_uri ) ) {
1120
+ return;
1121
+ }
1122
  $this->debug_message( 'inlining load webp script' );
1123
  echo '<script data-cfasync="false" type="text/javascript">' . $this->load_webp_script . '</script>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1124
  }
classes/class-eio-lazy-load.php CHANGED
@@ -72,6 +72,13 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
72
  */
73
  public $allow_piip = true;
74
 
 
 
 
 
 
 
 
75
  /**
76
  * Register (once) actions and filters for Lazy Load.
77
  */
@@ -79,9 +86,9 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
79
  parent::__construct( __FILE__ );
80
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
81
 
82
- $uri = add_query_arg( null, null );
83
- if ( false === strpos( $uri, 'page=ewww-image-optimizer-options' ) ) {
84
- $this->debug_message( "request uri is $uri" );
85
  } else {
86
  $this->debug_message( 'request uri is EWWW IO settings' );
87
  }
@@ -92,9 +99,9 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
92
  * Allow pre-empting Lazy Load by page.
93
  *
94
  * @param bool Whether to parse the page for images to lazy load, default true.
95
- * @param string $uri The URL of the page.
96
  */
97
- if ( ! apply_filters( 'eio_do_lazyload', true, $uri ) ) {
98
  return;
99
  }
100
 
@@ -129,10 +136,6 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
129
  $this->allowed_urls[] = 'http://' . $this->exactdn_domain;
130
  $this->allowed_urls[] = '//' . $this->exactdn_domain;
131
  }
132
- $this->allow_lqip = false;
133
- if ( $exactdn->get_plan_id() > 1 ) {
134
- $this->allow_lqip = true;
135
- }
136
  }
137
 
138
  if ( ! is_dir( $this->piip_folder ) ) {
@@ -194,7 +197,7 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
194
  return false;
195
  }
196
  if ( empty( $uri ) ) {
197
- $uri = add_query_arg( null, null );
198
  }
199
  if ( false !== strpos( $uri, '?brizy-edit' ) ) {
200
  return false;
@@ -316,6 +319,9 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
316
  if ( ! $this->should_process_page() ) {
317
  return $buffer;
318
  }
 
 
 
319
 
320
  // If JS WebP isn't running, set ewww_webp_supported to false so we have something defined.
321
  if ( ! class_exists( 'EIO_JS_Webp' ) ) {
@@ -544,7 +550,7 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
544
  $use_native_lazy = false;
545
 
546
  $placeholder_types = array();
547
- if ( $this->parsing_exactdn && $this->allow_lqip && apply_filters( 'eio_use_lqip', $this->get_option( $this->prefix . 'use_lqip' ), $file ) ) {
548
  $placeholder_types[] = 'lqip';
549
  }
550
  if ( $this->parsing_exactdn && apply_filters( 'eio_use_piip', true, $file ) ) {
@@ -726,14 +732,24 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
726
  continue;
727
  }
728
  $this->debug_message( "checking style attr for background-image: $style" );
729
- $bg_image_url = $this->get_background_image_url( $style );
730
- if ( $bg_image_url ) {
731
- $this->debug_message( 'bg-image url found' );
732
  $new_style = $this->remove_background_image( $style );
733
  if ( $style !== $new_style ) {
734
  $this->debug_message( 'style modified, continuing' );
735
  $this->set_attribute( $element, 'class', $this->get_attribute( $element, 'class' ) . ' lazyload', true );
736
- $this->set_attribute( $element, 'data-bg', $bg_image_url );
 
 
 
 
 
 
 
 
 
 
737
  $element = str_replace( $style, $new_style, $element );
738
  }
739
  }
@@ -1155,6 +1171,9 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
1155
  if ( ! $this->should_process_page() ) {
1156
  return;
1157
  }
 
 
 
1158
  echo '<noscript><style>.lazyload[data-src]{display:none !important;}</style></noscript>';
1159
  // And this allows us to lazy load external/internal CSS background images.
1160
  echo '<style>.lazyload{background-image:none !important;}.lazyload:before{background-image:none !important;}</style>';
@@ -1168,6 +1187,9 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
1168
  if ( ! $this->should_process_page() ) {
1169
  return;
1170
  }
 
 
 
1171
  if ( ! defined( 'EIO_LL_FOOTER' ) ) {
1172
  define( 'EIO_LL_FOOTER', true );
1173
  }
@@ -1204,6 +1226,9 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
1204
  if ( ! $this->should_process_page() ) {
1205
  return;
1206
  }
 
 
 
1207
  if ( ! defined( 'EIO_LL_FOOTER' ) ) {
1208
  define( 'EIO_LL_FOOTER', true );
1209
  }
@@ -1236,6 +1261,9 @@ if ( ! class_exists( 'EIO_Lazy_Load' ) ) {
1236
  if ( ! $this->should_process_page() ) {
1237
  return;
1238
  }
 
 
 
1239
  $this->debug_message( 'inlining lazysizes script' );
1240
  // Load up the minified script.
1241
  $lazysizes_file = constant( strtoupper( $this->prefix ) . 'PLUGIN_PATH' ) . 'includes/lazysizes.min.js';
72
  */
73
  public $allow_piip = true;
74
 
75
+ /**
76
+ * Request URI.
77
+ *
78
+ * @var string $request_uri
79
+ */
80
+ public $request_uri = '';
81
+
82
  /**
83
  * Register (once) actions and filters for Lazy Load.
84
  */
86
  parent::__construct( __FILE__ );
87
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
88
 
89
+ $this->request_uri = add_query_arg( null, null );
90
+ if ( false === strpos( $this->request_uri, 'page=ewww-image-optimizer-options' ) ) {
91
+ $this->debug_message( "request uri is {$this->request_uri}" );
92
  } else {
93
  $this->debug_message( 'request uri is EWWW IO settings' );
94
  }
99
  * Allow pre-empting Lazy Load by page.
100
  *
101
  * @param bool Whether to parse the page for images to lazy load, default true.
102
+ * @param string The URL of the page.
103
  */
104
+ if ( ! apply_filters( 'eio_do_lazyload', true, $this->request_uri ) ) {
105
  return;
106
  }
107
 
136
  $this->allowed_urls[] = 'http://' . $this->exactdn_domain;
137
  $this->allowed_urls[] = '//' . $this->exactdn_domain;
138
  }
 
 
 
 
139
  }
140
 
141
  if ( ! is_dir( $this->piip_folder ) ) {
197
  return false;
198
  }
199
  if ( empty( $uri ) ) {
200
+ $uri = $this->request_uri;
201
  }
202
  if ( false !== strpos( $uri, '?brizy-edit' ) ) {
203
  return false;
319
  if ( ! $this->should_process_page() ) {
320
  return $buffer;
321
  }
322
+ if ( ! apply_filters( 'eio_do_lazyload', true, $this->request_uri ) ) {
323
+ return $buffer;
324
+ }
325
 
326
  // If JS WebP isn't running, set ewww_webp_supported to false so we have something defined.
327
  if ( ! class_exists( 'EIO_JS_Webp' ) ) {
550
  $use_native_lazy = false;
551
 
552
  $placeholder_types = array();
553
+ if ( $this->parsing_exactdn && apply_filters( 'eio_use_lqip', $this->get_option( $this->prefix . 'use_lqip' ), $file ) ) {
554
  $placeholder_types[] = 'lqip';
555
  }
556
  if ( $this->parsing_exactdn && apply_filters( 'eio_use_piip', true, $file ) ) {
732
  continue;
733
  }
734
  $this->debug_message( "checking style attr for background-image: $style" );
735
+ $bg_image_urls = $this->get_background_image_urls( $style );
736
+ if ( $this->is_iterable( $bg_image_urls ) ) {
737
+ $this->debug_message( 'bg-image urls found' );
738
  $new_style = $this->remove_background_image( $style );
739
  if ( $style !== $new_style ) {
740
  $this->debug_message( 'style modified, continuing' );
741
  $this->set_attribute( $element, 'class', $this->get_attribute( $element, 'class' ) . ' lazyload', true );
742
+ if ( count( $bg_image_urls ) > 1 ) {
743
+ $webp_image_urls = apply_filters( 'eio_ll_multiple_bg_images_for_webp', $bg_image_urls );
744
+ $bg_image_urls = wp_json_encode( $bg_image_urls );
745
+ $webp_image_urls = wp_json_encode( $webp_image_urls );
746
+ $this->set_attribute( $element, 'data-bg', $bg_image_urls );
747
+ if ( $bg_image_urls !== $webp_image_urls ) {
748
+ $this->set_attribute( $element, 'data-bg-webp', $webp_image_urls );
749
+ }
750
+ } elseif ( ! empty( $bg_image_urls[0] ) ) {
751
+ $this->set_attribute( $element, 'data-bg', $bg_image_urls[0] );
752
+ }
753
  $element = str_replace( $style, $new_style, $element );
754
  }
755
  }
1171
  if ( ! $this->should_process_page() ) {
1172
  return;
1173
  }
1174
+ if ( ! apply_filters( 'eio_do_lazyload', true, $this->request_uri ) ) {
1175
+ return;
1176
+ }
1177
  echo '<noscript><style>.lazyload[data-src]{display:none !important;}</style></noscript>';
1178
  // And this allows us to lazy load external/internal CSS background images.
1179
  echo '<style>.lazyload{background-image:none !important;}.lazyload:before{background-image:none !important;}</style>';
1187
  if ( ! $this->should_process_page() ) {
1188
  return;
1189
  }
1190
+ if ( ! apply_filters( 'eio_do_lazyload', true, $this->request_uri ) ) {
1191
+ return;
1192
+ }
1193
  if ( ! defined( 'EIO_LL_FOOTER' ) ) {
1194
  define( 'EIO_LL_FOOTER', true );
1195
  }
1226
  if ( ! $this->should_process_page() ) {
1227
  return;
1228
  }
1229
+ if ( ! apply_filters( 'eio_do_lazyload', true, $this->request_uri ) ) {
1230
+ return;
1231
+ }
1232
  if ( ! defined( 'EIO_LL_FOOTER' ) ) {
1233
  define( 'EIO_LL_FOOTER', true );
1234
  }
1261
  if ( ! $this->should_process_page() ) {
1262
  return;
1263
  }
1264
+ if ( ! apply_filters( 'eio_do_lazyload', true, $this->request_uri ) ) {
1265
+ return;
1266
+ }
1267
  $this->debug_message( 'inlining lazysizes script' );
1268
  // Load up the minified script.
1269
  $lazysizes_file = constant( strtoupper( $this->prefix ) . 'PLUGIN_PATH' ) . 'includes/lazysizes.min.js';
classes/class-eio-page-parser.php CHANGED
@@ -318,15 +318,36 @@ if ( ! class_exists( 'EIO_Page_Parser' ) ) {
318
  }
319
 
320
  /**
321
- * Get a CSS background-image URL.
322
  *
323
  * @param string $attribute An element's style attribute. Do not pass a full HTML element.
324
- * @return string The URL from the background/background-image property.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
325
  */
326
  function get_background_image_url( $attribute ) {
327
  if ( ( false !== strpos( $attribute, 'background:' ) || false !== strpos( $attribute, 'background-image:' ) ) && false !== strpos( $attribute, 'url(' ) ) {
328
- if ( preg_match( '#url\(([^)]+)\)#', $attribute, $prop_match ) ) {
329
- return trim( html_entity_decode( $prop_match[1], ENT_QUOTES | ENT_HTML401 ), "'\"\t\n\r " );
 
330
  }
331
  }
332
  return '';
@@ -412,10 +433,24 @@ if ( ! class_exists( 'EIO_Page_Parser' ) ) {
412
  */
413
  function remove_background_image( $attribute ) {
414
  if ( false !== strpos( $attribute, 'background:' ) && false !== strpos( $attribute, 'url(' ) ) {
415
- $attribute = preg_replace( '#\s?url\([^)]+\)#', '', $attribute );
 
 
 
416
  }
417
  if ( false !== strpos( $attribute, 'background-image:' ) && false !== strpos( $attribute, 'url(' ) ) {
418
- $attribute = preg_replace( '#background-image:\s*url\([^)]+\);?#', '', $attribute );
 
 
 
 
 
 
 
 
 
 
 
419
  }
420
  return $attribute;
421
  }
318
  }
319
 
320
  /**
321
+ * Get CSS background-image URLs.
322
  *
323
  * @param string $attribute An element's style attribute. Do not pass a full HTML element.
324
+ * @return array An array containing URL(s) from the background/background-image property.
325
+ */
326
+ function get_background_image_urls( $attribute ) {
327
+ $urls = array();
328
+ if ( ( false !== strpos( $attribute, 'background:' ) || false !== strpos( $attribute, 'background-image:' ) ) && false !== strpos( $attribute, 'url(' ) ) {
329
+ if ( preg_match_all( '#url\((?P<bg_url>[^)]+)\)#', $attribute, $prop_matches ) ) {
330
+ if ( $this->is_iterable( $prop_matches['bg_url'] ) ) {
331
+ foreach ( $prop_matches['bg_url'] as $url ) {
332
+ $urls[] = trim( html_entity_decode( $url, ENT_QUOTES | ENT_HTML401 ), "'\"\t\n\r " );
333
+ }
334
+ }
335
+ }
336
+ }
337
+ return $urls;
338
+ }
339
+
340
+ /**
341
+ * Get a single CSS background-image URL. For backwords compat.
342
+ *
343
+ * @param string $attribute An element's style attribute. Do not pass a full HTML element.
344
+ * @return array An array containing URL(s) from the background/background-image property.
345
  */
346
  function get_background_image_url( $attribute ) {
347
  if ( ( false !== strpos( $attribute, 'background:' ) || false !== strpos( $attribute, 'background-image:' ) ) && false !== strpos( $attribute, 'url(' ) ) {
348
+ $background_urls = $this->get_background_image_urls( $attribute );
349
+ if ( ! empty( $background_urls[0] ) ) {
350
+ return $background_urls[0];
351
  }
352
  }
353
  return '';
433
  */
434
  function remove_background_image( $attribute ) {
435
  if ( false !== strpos( $attribute, 'background:' ) && false !== strpos( $attribute, 'url(' ) ) {
436
+ $new_attribute = preg_replace( '#\s?url\([^)]+\)#', '', $attribute );
437
+ if ( $new_attribute !== $attribute ) {
438
+ return $new_attribute;
439
+ }
440
  }
441
  if ( false !== strpos( $attribute, 'background-image:' ) && false !== strpos( $attribute, 'url(' ) ) {
442
+ $new_attribute = preg_replace( '#background-image:\s*(,?\s*url\([^)]+\))+;?\s*#', '', $attribute );
443
+ if ( $new_attribute !== $attribute ) {
444
+ $new_attribute = preg_replace( '#background-image:\s*;?\s*$#', '', $new_attribute );
445
+ return $new_attribute;
446
+ }
447
+ }
448
+ if ( false !== strpos( $attribute, 'background-image:' ) && false !== strpos( $attribute, 'url(' ) ) {
449
+ $new_attribute = preg_replace( '#,?\s*url\([^)]+\)#', '', $attribute );
450
+ if ( $new_attribute !== $attribute ) {
451
+ $new_attribute = preg_replace( '#background-image:\s*;?\s*$#', '', $new_attribute );
452
+ return $new_attribute;
453
+ }
454
  }
455
  return $attribute;
456
  }
classes/class-eio-picture-webp.php CHANGED
@@ -31,6 +31,13 @@ class EIO_Picture_Webp extends EIO_Page_Parser {
31
  */
32
  protected $user_element_exclusions = array();
33
 
 
 
 
 
 
 
 
34
  /**
35
  * Register (once) actions and filters for Picture WebP.
36
  */
@@ -45,9 +52,9 @@ class EIO_Picture_Webp extends EIO_Page_Parser {
45
  parent::__construct();
46
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
47
 
48
- $uri = add_query_arg( null, null );
49
- if ( false === strpos( $uri, 'page=ewww-image-optimizer-options' ) ) {
50
- $this->debug_message( "request uri is $uri" );
51
  } else {
52
  $this->debug_message( 'request uri is EWWW IO settings' );
53
  }
@@ -58,9 +65,9 @@ class EIO_Picture_Webp extends EIO_Page_Parser {
58
  * Allow pre-empting <picture> WebP by page.
59
  *
60
  * @param bool Whether to parse the page for images to rewrite for WebP, default true.
61
- * @param string $uri The URL of the page.
62
  */
63
- if ( ! apply_filters( 'eio_do_picture_webp', true, $uri ) ) {
64
  return;
65
  }
66
 
@@ -115,7 +122,7 @@ class EIO_Picture_Webp extends EIO_Page_Parser {
115
  return false;
116
  }
117
  if ( empty( $uri ) ) {
118
- $uri = add_query_arg( null, null );
119
  }
120
  if ( false !== strpos( $uri, '?brizy-edit' ) ) {
121
  return false;
@@ -266,6 +273,9 @@ class EIO_Picture_Webp extends EIO_Page_Parser {
266
  $this->debug_message( 'picture WebP should not process page' );
267
  return $buffer;
268
  }
 
 
 
269
 
270
  $images = $this->get_images_from_html( preg_replace( '/<(picture|noscript).*?\/\1>/s', '', $buffer ), false );
271
  if ( ! empty( $images[0] ) && $this->is_iterable( $images[0] ) ) {
31
  */
32
  protected $user_element_exclusions = array();
33
 
34
+ /**
35
+ * Request URI.
36
+ *
37
+ * @var string $request_uri
38
+ */
39
+ public $request_uri = '';
40
+
41
  /**
42
  * Register (once) actions and filters for Picture WebP.
43
  */
52
  parent::__construct();
53
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
54
 
55
+ $this->request_uri = add_query_arg( null, null );
56
+ if ( false === strpos( $this->request_uri, 'page=ewww-image-optimizer-options' ) ) {
57
+ $this->debug_message( "request uri is {$this->request_uri}" );
58
  } else {
59
  $this->debug_message( 'request uri is EWWW IO settings' );
60
  }
65
  * Allow pre-empting <picture> WebP by page.
66
  *
67
  * @param bool Whether to parse the page for images to rewrite for WebP, default true.
68
+ * @param string The URI/path of the page.
69
  */
70
+ if ( ! apply_filters( 'eio_do_picture_webp', true, $this->request_uri ) ) {
71
  return;
72
  }
73
 
122
  return false;
123
  }
124
  if ( empty( $uri ) ) {
125
+ $uri = $this->request_uri;
126
  }
127
  if ( false !== strpos( $uri, '?brizy-edit' ) ) {
128
  return false;
273
  $this->debug_message( 'picture WebP should not process page' );
274
  return $buffer;
275
  }
276
+ if ( ! apply_filters( 'eio_do_picture_webp', true, $this->request_uri ) ) {
277
+ return $buffer;
278
+ }
279
 
280
  $images = $this->get_images_from_html( preg_replace( '/<(picture|noscript).*?\/\1>/s', '', $buffer ), false );
281
  if ( ! empty( $images[0] ) && $this->is_iterable( $images[0] ) ) {
classes/class-ewwwio-background-process.php CHANGED
@@ -116,7 +116,7 @@ if ( ! class_exists( 'EWWWIO_Background_Process' ) ) {
116
  return;
117
  }
118
 
119
- $exists = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->ewwwio_queue WHERE attachment_id = %d AND gallery = %s", $id, $this->active_queue ) );
120
  if ( empty( $exists ) ) {
121
  $to_insert = array(
122
  'attachment_id' => $id,
@@ -136,7 +136,7 @@ if ( ! class_exists( 'EWWWIO_Background_Process' ) ) {
136
  public function update( $id, $data = array() ) {
137
  if ( ! empty( $id ) ) {
138
  global $wpdb;
139
- $wpdb->get_row( $wpdb->prepare( "UPDATE $wpdb->ewwwio_queue SET scanned=scanned+1 WHERE attachment_id = %d AND gallery = %s", $id, $this->active_queue ) );
140
  }
141
  }
142
 
116
  return;
117
  }
118
 
119
+ $exists = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->ewwwio_queue WHERE attachment_id = %d AND gallery = %s LIMIT 1", $id, $this->active_queue ) );
120
  if ( empty( $exists ) ) {
121
  $to_insert = array(
122
  'attachment_id' => $id,
136
  public function update( $id, $data = array() ) {
137
  if ( ! empty( $id ) ) {
138
  global $wpdb;
139
+ $wpdb->get_row( $wpdb->prepare( "UPDATE $wpdb->ewwwio_queue SET scanned=scanned+1 WHERE attachment_id = %d AND gallery = %s LIMIT 1", $id, $this->active_queue ) );
140
  }
141
  }
142
 
classes/class-exactdn.php CHANGED
@@ -112,6 +112,13 @@ if ( ! class_exists( 'ExactDN' ) ) {
112
  */
113
  private $srcset_attr = 'srcset';
114
 
 
 
 
 
 
 
 
115
  /**
116
  * Register (once) actions and filters for ExactDN. If you want to use this class, use the global.
117
  */
@@ -129,14 +136,14 @@ if ( ! class_exists( 'ExactDN' ) ) {
129
  return;
130
  }
131
 
132
- $uri = add_query_arg( null, null );
133
- if ( false === strpos( $uri, 'page=ewww-image-optimizer-options' ) ) {
134
- $this->debug_message( "request uri is $uri" );
135
  } else {
136
  $this->debug_message( 'request uri is EWWW IO settings' );
137
  }
138
 
139
- if ( '/robots.txt' === $uri || '/sitemap.xml' === $uri ) {
140
  return;
141
  }
142
 
@@ -146,9 +153,9 @@ if ( ! class_exists( 'ExactDN' ) ) {
146
  * Allow pre-empting the parsers by page.
147
  *
148
  * @param bool Whether to skip parsing the page.
149
- * @param string $uri The URL of the page.
150
  */
151
- if ( apply_filters( 'exactdn_skip_page', false, $uri ) ) {
152
  return;
153
  }
154
 
@@ -258,7 +265,9 @@ if ( ! class_exists( 'ExactDN' ) ) {
258
  add_filter( 'style_loader_src', array( $this, 'parse_enqueue' ), 9999 );
259
  add_filter( 'script_loader_src', array( $this, 'parse_enqueue' ), 9999 );
260
  }
261
- $this->set_option( 'exactdn_prevent_db_queries', true );
 
 
262
 
263
  // Improve the default content_width for Twenty Nineteen.
264
  global $content_width;
@@ -905,6 +914,9 @@ if ( ! class_exists( 'ExactDN' ) ) {
905
  if ( $this->is_json( $content ) ) {
906
  return $content;
907
  }
 
 
 
908
 
909
  $started = microtime( true );
910
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
@@ -1297,7 +1309,7 @@ if ( ! class_exists( 'ExactDN' ) ) {
1297
  } elseif ( ! empty( $images['link_url'][ $index ] ) && $this->validate_image_url( $images['link_url'][ $index ] ) ) {
1298
  $new_tag = preg_replace(
1299
  '#(href=["|\'])' . $images['link_url'][ $index ] . '(["|\'])#i',
1300
- '\1' . $this->generate_url( $images['link_url'][ $index ] ) . '\2',
1301
  $new_tag,
1302
  1
1303
  );
@@ -1546,7 +1558,7 @@ if ( ! class_exists( 'ExactDN' ) ) {
1546
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
1547
  $elements = $this->get_elements_from_html( $content, 'a' );
1548
  if ( $this->is_iterable( $elements ) ) {
1549
- $args = array();
1550
  if ( defined( 'EIO_PRESERVE_LINKED_IMAGES' ) && EIO_PRESERVE_LINKED_IMAGES ) {
1551
  $args = array(
1552
  'lossy' => 0,
@@ -1658,48 +1670,57 @@ if ( ! class_exists( 'ExactDN' ) ) {
1658
  if ( empty( $style ) ) {
1659
  continue;
1660
  }
 
1661
  $this->debug_message( "checking style attr for background-image: $style" );
1662
- $bg_image_url = $this->get_background_image_url( $style );
1663
- $orig_bg_url = $bg_image_url;
1664
-
1665
- // Check for relative URLs that start with a slash.
1666
- if (
1667
- '/' === substr( $bg_image_url, 0, 1 ) &&
1668
- '/' !== substr( $bg_image_url, 1, 1 ) &&
1669
- false === strpos( $this->upload_domain, 'amazonaws.com' ) &&
1670
- false === strpos( $this->upload_domain, 'digitaloceanspaces.com' ) &&
1671
- false === strpos( $this->upload_domain, 'storage.googleapis.com' )
1672
- ) {
1673
- $bg_image_url = '//' . $this->upload_domain . $bg_image_url;
1674
- }
1675
-
1676
- if ( $this->validate_image_url( $bg_image_url ) ) {
1677
- /** This filter is already documented in class-exactdn.php */
1678
- if ( apply_filters( 'exactdn_skip_image', false, $bg_image_url, $element ) ) {
1679
- continue;
1680
- }
1681
- $args = array();
1682
- $element_class = $this->get_attribute( $element, 'class' );
1683
- if ( false !== strpos( $element_class, 'alignfull' ) && current_theme_supports( 'align-wide' ) ) {
1684
- $args['w'] = apply_filters( 'exactdn_full_align_bgimage_width', 1920, $bg_image_url );
1685
- } elseif ( false !== strpos( $element_class, 'wp-block-cover' ) && false !== strpos( $element_class, 'has-parallax' ) ) {
1686
- $args['w'] = apply_filters( 'exactdn_wp_cover_parallax_bgimage_width', 1920, $bg_image_url );
1687
- } elseif ( false !== strpos( $element_class, 'alignwide' ) && current_theme_supports( 'align-wide' ) ) {
1688
- $args['w'] = apply_filters( 'exactdn_wide_align_bgimage_width', 1500, $bg_image_url );
1689
- } elseif ( false !== strpos( $element_class, 'et_parallax_bg' ) ) {
1690
- $args['w'] = apply_filters( 'exactdn_et_parallax_bgimage_width', 1920, $bg_image_url );
1691
- } elseif ( 'div' === $tag_type && $content_width ) {
1692
- $args['w'] = apply_filters( 'exactdn_content_bgimage_width', $content_width, $bg_image_url );
1693
- }
1694
- if ( isset( $args['w'] ) && empty( $args['w'] ) ) {
1695
- unset( $args['w'] );
1696
  }
1697
- $exactdn_bg_image_url = $this->generate_url( $bg_image_url, $args );
1698
- if ( $bg_image_url !== $exactdn_bg_image_url ) {
1699
- $new_style = str_replace( $orig_bg_url, $exactdn_bg_image_url, $style );
1700
- $element = str_replace( $style, $new_style, $element );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1701
  }
1702
  }
 
 
 
1703
  if ( $element !== $elements[ $index ] ) {
1704
  $content = str_replace( $elements[ $index ], $element, $content );
1705
  }
@@ -1947,6 +1968,10 @@ if ( ! class_exists( 'ExactDN' ) ) {
1947
  if ( apply_filters( 'exactdn_override_image_downsize', false, compact( 'image', 'attachment_id', 'size' ) ) ) {
1948
  return $image;
1949
  }
 
 
 
 
1950
 
1951
  if ( function_exists( 'aq_resize' ) ) {
1952
  $this->debug_message( 'aq_resize detected, image_downsize filter bypassed' );
@@ -2279,6 +2304,9 @@ if ( ! class_exists( 'ExactDN' ) ) {
2279
  ) {
2280
  return $sources;
2281
  }
 
 
 
2282
 
2283
  if ( ! is_array( $sources ) ) {
2284
  return $sources;
@@ -2474,6 +2502,9 @@ if ( ! class_exists( 'ExactDN' ) ) {
2474
  if ( ! doing_filter( 'the_content' ) ) {
2475
  return $sizes;
2476
  }
 
 
 
2477
  $content_width = $this->get_content_width();
2478
 
2479
  if ( ( is_array( $size ) && $size[0] < $content_width ) ) {
@@ -2948,10 +2979,10 @@ if ( ! class_exists( 'ExactDN' ) ) {
2948
  }
2949
 
2950
  /**
2951
- * Handle direct image urls within Plugins.
2952
  *
2953
- * @param string $image A url for an image.
2954
- * @return string The ExactDNified image url.
2955
  */
2956
  function plugin_get_image_url( $image ) {
2957
  // Don't foul up the admin side of things, unless a plugin wants to.
@@ -3135,6 +3166,9 @@ if ( ! class_exists( 'ExactDN' ) ) {
3135
  if ( is_admin() ) {
3136
  return $url;
3137
  }
 
 
 
3138
  if ( did_action( 'cornerstone_boot_app' ) || did_action( 'cs_before_preview_frame' ) ) {
3139
  return $url;
3140
  }
@@ -3295,17 +3329,15 @@ if ( ! class_exists( 'ExactDN' ) ) {
3295
  unset( $args['lossy'] );
3296
  } elseif ( isset( $args['lossy'] ) && false !== strpos( $image_url, 'lossy=0' ) ) {
3297
  unset( $args['lossy'] );
3298
- } elseif ( $this->plan_id > 1 && false === strpos( $image_url, 'lossy=' ) && ! $this->get_option( 'exactdn_lossy' ) ) {
3299
  $more_args['lossy'] = 0;
3300
- } elseif ( false === strpos( $image_url, 'lossy=' ) && 1 === $this->plan_id ) {
3301
- $more_args['lossy'] = 1;
3302
  } elseif ( false === strpos( $image_url, 'lossy=' ) && $this->get_option( 'exactdn_lossy' ) ) {
3303
  $more_args['lossy'] = is_numeric( $this->get_option( 'exactdn_lossy' ) ) ? (int) $this->get_option( 'exactdn_lossy' ) : 80;
3304
  }
3305
- if ( $this->plan_id > 1 && false === strpos( $image_url, 'quality=' ) && ! is_null( $jpg_quality ) && 82 !== (int) $jpg_quality ) {
3306
  $more_args['quality'] = $jpg_quality;
3307
  }
3308
- if ( $this->plan_id > 1 && false === strpos( $image_url, 'quality=' ) && 75 !== (int) $webp_quality && $webp_quality < $jpg_quality ) {
3309
  $more_args['quality'] = $webp_quality;
3310
  }
3311
  if ( defined( 'EIO_WEBP_SHARP_YUV' ) && EIO_WEBP_SHARP_YUV ) {
112
  */
113
  private $srcset_attr = 'srcset';
114
 
115
+ /**
116
+ * Request URI.
117
+ *
118
+ * @var string $request_uri
119
+ */
120
+ public $request_uri = '';
121
+
122
  /**
123
  * Register (once) actions and filters for ExactDN. If you want to use this class, use the global.
124
  */
136
  return;
137
  }
138
 
139
+ $this->request_uri = add_query_arg( null, null );
140
+ if ( false === strpos( $this->request_uri, 'page=ewww-image-optimizer-options' ) ) {
141
+ $this->debug_message( "request uri is {$this->request_uri}" );
142
  } else {
143
  $this->debug_message( 'request uri is EWWW IO settings' );
144
  }
145
 
146
+ if ( '/robots.txt' === $this->request_uri || '/sitemap.xml' === $this->request_uri ) {
147
  return;
148
  }
149
 
153
  * Allow pre-empting the parsers by page.
154
  *
155
  * @param bool Whether to skip parsing the page.
156
+ * @param string The URI/path of the page.
157
  */
158
+ if ( apply_filters( 'exactdn_skip_page', false, $this->request_uri ) ) {
159
  return;
160
  }
161
 
265
  add_filter( 'style_loader_src', array( $this, 'parse_enqueue' ), 9999 );
266
  add_filter( 'script_loader_src', array( $this, 'parse_enqueue' ), 9999 );
267
  }
268
+ if ( ! $this->get_option( 'exactdn_prevent_db_queries' ) ) {
269
+ $this->set_option( 'exactdn_prevent_db_queries', true );
270
+ }
271
 
272
  // Improve the default content_width for Twenty Nineteen.
273
  global $content_width;
914
  if ( $this->is_json( $content ) ) {
915
  return $content;
916
  }
917
+ if ( apply_filters( 'exactdn_skip_page', false, $this->request_uri ) ) {
918
+ return $content;
919
+ }
920
 
921
  $started = microtime( true );
922
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
1309
  } elseif ( ! empty( $images['link_url'][ $index ] ) && $this->validate_image_url( $images['link_url'][ $index ] ) ) {
1310
  $new_tag = preg_replace(
1311
  '#(href=["|\'])' . $images['link_url'][ $index ] . '(["|\'])#i',
1312
+ '\1' . $this->generate_url( $images['link_url'][ $index ], array( 'w' => 2560 ) ) . '\2',
1313
  $new_tag,
1314
  1
1315
  );
1558
  $this->debug_message( '<b>' . __METHOD__ . '()</b>' );
1559
  $elements = $this->get_elements_from_html( $content, 'a' );
1560
  if ( $this->is_iterable( $elements ) ) {
1561
+ $args = array( 'w' => 2560 );
1562
  if ( defined( 'EIO_PRESERVE_LINKED_IMAGES' ) && EIO_PRESERVE_LINKED_IMAGES ) {
1563
  $args = array(
1564
  'lossy' => 0,
1670
  if ( empty( $style ) ) {
1671
  continue;
1672
  }
1673
+ $new_style = $style;
1674
  $this->debug_message( "checking style attr for background-image: $style" );
1675
+ $bg_image_urls = $this->get_background_image_urls( $style );
1676
+ $bg_autoscale = apply_filters( 'easyio_background_image_autoscale', true );
1677
+ if ( count( $bg_image_urls ) > 1 ) {
1678
+ $bg_autoscale = false;
1679
+ }
1680
+ foreach ( $bg_image_urls as $bg_image_url ) {
1681
+ $orig_bg_url = $bg_image_url;
1682
+
1683
+ // Check for relative URLs that start with a slash.
1684
+ if (
1685
+ '/' === substr( $bg_image_url, 0, 1 ) &&
1686
+ '/' !== substr( $bg_image_url, 1, 1 ) &&
1687
+ false === strpos( $this->upload_domain, 'amazonaws.com' ) &&
1688
+ false === strpos( $this->upload_domain, 'digitaloceanspaces.com' ) &&
1689
+ false === strpos( $this->upload_domain, 'storage.googleapis.com' )
1690
+ ) {
1691
+ $bg_image_url = '//' . $this->upload_domain . $bg_image_url;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1692
  }
1693
+
1694
+ if ( $this->validate_image_url( $bg_image_url ) ) {
1695
+ /** This filter is already documented in class-exactdn.php */
1696
+ if ( apply_filters( 'exactdn_skip_image', false, $bg_image_url, $element ) ) {
1697
+ continue;
1698
+ }
1699
+ $args = array();
1700
+ $element_class = $this->get_attribute( $element, 'class' );
1701
+ if ( false !== strpos( $element_class, 'alignfull' ) && current_theme_supports( 'align-wide' ) ) {
1702
+ $args['w'] = apply_filters( 'exactdn_full_align_bgimage_width', 1920, $bg_image_url );
1703
+ } elseif ( false !== strpos( $element_class, 'wp-block-cover' ) && false !== strpos( $element_class, 'has-parallax' ) ) {
1704
+ $args['w'] = apply_filters( 'exactdn_wp_cover_parallax_bgimage_width', 1920, $bg_image_url );
1705
+ } elseif ( false !== strpos( $element_class, 'alignwide' ) && current_theme_supports( 'align-wide' ) ) {
1706
+ $args['w'] = apply_filters( 'exactdn_wide_align_bgimage_width', 1500, $bg_image_url );
1707
+ } elseif ( false !== strpos( $element_class, 'et_parallax_bg' ) ) {
1708
+ $args['w'] = apply_filters( 'exactdn_et_parallax_bgimage_width', 1920, $bg_image_url );
1709
+ } elseif ( 'div' === $tag_type && $content_width ) {
1710
+ $args['w'] = apply_filters( 'exactdn_content_bgimage_width', $content_width, $bg_image_url );
1711
+ }
1712
+ if ( ( isset( $args['w'] ) && empty( $args['w'] ) ) || ! $bg_autoscale ) {
1713
+ unset( $args['w'] );
1714
+ }
1715
+ $exactdn_bg_image_url = $this->generate_url( $bg_image_url, $args );
1716
+ if ( $bg_image_url !== $exactdn_bg_image_url ) {
1717
+ $new_style = str_replace( $orig_bg_url, $exactdn_bg_image_url, $new_style );
1718
+ }
1719
  }
1720
  }
1721
+ if ( $style !== $new_style ) {
1722
+ $element = str_replace( $style, $new_style, $element );
1723
+ }
1724
  if ( $element !== $elements[ $index ] ) {
1725
  $content = str_replace( $elements[ $index ], $element, $content );
1726
  }
1968
  if ( apply_filters( 'exactdn_override_image_downsize', false, compact( 'image', 'attachment_id', 'size' ) ) ) {
1969
  return $image;
1970
  }
1971
+ // Make it easier to skip all images by URI.
1972
+ if ( apply_filters( 'exactdn_skip_page', false, $this->request_uri ) ) {
1973
+ return $image;
1974
+ }
1975
 
1976
  if ( function_exists( 'aq_resize' ) ) {
1977
  $this->debug_message( 'aq_resize detected, image_downsize filter bypassed' );
2304
  ) {
2305
  return $sources;
2306
  }
2307
+ if ( apply_filters( 'exactdn_skip_page', false, $this->request_uri ) ) {
2308
+ return $sources;
2309
+ }
2310
 
2311
  if ( ! is_array( $sources ) ) {
2312
  return $sources;
2502
  if ( ! doing_filter( 'the_content' ) ) {
2503
  return $sizes;
2504
  }
2505
+ if ( apply_filters( 'exactdn_skip_page', false, $this->request_uri ) ) {
2506
+ return $sizes;
2507
+ }
2508
  $content_width = $this->get_content_width();
2509
 
2510
  if ( ( is_array( $size ) && $size[0] < $content_width ) ) {
2979
  }
2980
 
2981
  /**
2982
+ * Handle direct image URLs within Plugins.
2983
  *
2984
+ * @param string $image A URL for an image.
2985
+ * @return string The ExactDNified image URL.
2986
  */
2987
  function plugin_get_image_url( $image ) {
2988
  // Don't foul up the admin side of things, unless a plugin wants to.
3166
  if ( is_admin() ) {
3167
  return $url;
3168
  }
3169
+ if ( apply_filters( 'exactdn_skip_page', false, $this->request_uri ) ) {
3170
+ return $url;
3171
+ }
3172
  if ( did_action( 'cornerstone_boot_app' ) || did_action( 'cs_before_preview_frame' ) ) {
3173
  return $url;
3174
  }
3329
  unset( $args['lossy'] );
3330
  } elseif ( isset( $args['lossy'] ) && false !== strpos( $image_url, 'lossy=0' ) ) {
3331
  unset( $args['lossy'] );
3332
+ } elseif ( false === strpos( $image_url, 'lossy=' ) && ! $this->get_option( 'exactdn_lossy' ) ) {
3333
  $more_args['lossy'] = 0;
 
 
3334
  } elseif ( false === strpos( $image_url, 'lossy=' ) && $this->get_option( 'exactdn_lossy' ) ) {
3335
  $more_args['lossy'] = is_numeric( $this->get_option( 'exactdn_lossy' ) ) ? (int) $this->get_option( 'exactdn_lossy' ) : 80;
3336
  }
3337
+ if ( false === strpos( $image_url, 'quality=' ) && ! is_null( $jpg_quality ) && 82 !== (int) $jpg_quality ) {
3338
  $more_args['quality'] = $jpg_quality;
3339
  }
3340
+ if ( false === strpos( $image_url, 'quality=' ) && 75 !== (int) $webp_quality && $webp_quality < $jpg_quality ) {
3341
  $more_args['quality'] = $webp_quality;
3342
  }
3343
  if ( defined( 'EIO_WEBP_SHARP_YUV' ) && EIO_WEBP_SHARP_YUV ) {
common.php CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- define( 'EWWW_IMAGE_OPTIMIZER_VERSION', '642.0' );
18
 
19
  // Initialize a couple globals.
20
  $eio_debug = '';
@@ -48,8 +48,6 @@ use lsolesen\pel\PelTag;
48
  * Hooks
49
  */
50
 
51
- // Loads the plugin translations.
52
- add_action( 'plugins_loaded', 'ewww_image_optimizer_preinit' );
53
  // Runs any checks that need to run everywhere and early.
54
  add_action( 'init', 'ewww_image_optimizer_init', 9 );
55
  // Load our front-end parsers for ExactDN, Lazy Load and WebP.
@@ -784,13 +782,6 @@ function ewww_image_optimizer_save_network_settings() {
784
  }
785
  }
786
 
787
- /**
788
- * Runs on 'plugins_loaded' to make make sure the language files are loaded early.
789
- */
790
- function ewww_image_optimizer_preinit() {
791
- load_plugin_textdomain( 'ewww-image-optimizer', false, EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'languages/' );
792
- }
793
-
794
  /**
795
  * Runs early for checks that need to happen on init before anything else.
796
  */
@@ -1165,7 +1156,7 @@ function ewww_image_optimizer_admin_init() {
1165
  }
1166
 
1167
  // Alert user if multiple re-optimizations detected.
1168
- if ( ! defined( 'EWWWIO_DISABLE_REOPT_NOTICE' ) ) {
1169
  add_action( 'network_admin_notices', 'ewww_image_optimizer_notice_reoptimization' );
1170
  add_action( 'admin_notices', 'ewww_image_optimizer_notice_reoptimization' );
1171
  }
@@ -1701,6 +1692,7 @@ function ewww_image_optimizer_install_table() {
1701
  }
1702
  if (
1703
  (
 
1704
  false !== strpos( $mysql_version, '5.7.' ) ||
1705
  false !== strpos( $mysql_version, '8.0.' ) ||
1706
  false !== strpos( $mysql_version, '10.1.' )
@@ -2409,6 +2401,7 @@ function ewww_image_optimizer_notice_beacon() {
2409
  * @global object $wpdb
2410
  */
2411
  function ewww_image_optimizer_notice_reoptimization() {
 
2412
  if ( ! current_user_can( apply_filters( 'ewww_image_optimizer_admin_permissions', '' ) ) ) {
2413
  return;
2414
  }
@@ -12276,12 +12269,14 @@ function ewww_image_optimizer_options( $network = 'singlesite' ) {
12276
  <p>
12277
  <?php esc_html_e( 'Get performance tips, exclusive discounts, and the latest news when you signup for our newsletter!', 'ewww-image-optimizer' ); ?>
12278
  </p>
 
12279
  <p id='ewww-review'>
12280
  <a target="_blank" href="https://wordpress.org/support/plugin/ewww-image-optimizer/reviews/#new-post"><?php esc_html_e( 'Write a Review', 'ewww-image-optimizer' ); ?></a>
12281
  <a target="_blank" href="https://wordpress.org/support/plugin/ewww-image-optimizer/reviews/#new-post">
12282
  <span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span>
12283
  </a>
12284
  </p>
 
12285
  </div>
12286
  <p id='ewww-news-button'>
12287
  <a href="https://eepurl.com/gKyU6L?TB_iframe=true&width=600&height=610" class="thickbox button-secondary"><?php esc_html_e( 'Subscribe now!', 'ewww-image-optimizer' ); ?></a>
@@ -12427,13 +12422,13 @@ function ewww_image_optimizer_options( $network = 'singlesite' ) {
12427
  $loading_image_url = plugins_url( '/images/spinner.gif', __FILE__ );
12428
  $eio_base = new EIO_Base();
12429
  $easyio_site_url = $eio_base->content_url();
12430
- $exactdn_los_che = ewww_image_optimizer_get_option( 'exactdn_lossy' ) || ( is_object( $exactdn ) && 1 === $exactdn->get_plan_id() );
12431
- $exactdn_los_id = ( ! $exactdn_enabled || 1 === $exactdn->get_plan_id() ? 'exactdn_lossy_disabled' : 'exactdn_lossy' );
12432
- $exactdn_los_dis = ! $exactdn_enabled || 1 === $exactdn->get_plan_id();
12433
  $eio_exclude_paths = ewww_image_optimizer_get_option( 'exactdn_exclude' ) ? implode( "\n", ewww_image_optimizer_get_option( 'exactdn_exclude' ) ) : '';
12434
- $lqip_che = is_object( $exactdn ) && 1 < $exactdn->get_plan_id() && ewww_image_optimizer_get_option( 'ewww_image_optimizer_use_lqip' );
12435
- $lqip_id = ( ! $exactdn_enabled || 1 === $exactdn->get_plan_id() ? 'ewww_image_optimizer_use_lqip_disabled' : 'ewww_image_optimizer_use_lqip' );
12436
- $lqip_dis = ! $exactdn_enabled || 1 === $exactdn->get_plan_id();
12437
  $ll_exclude_paths = ewww_image_optimizer_get_option( 'ewww_image_optimizer_ll_exclude' ) ? implode( "\n", ewww_image_optimizer_get_option( 'ewww_image_optimizer_ll_exclude' ) ) : '';
12438
  $current_jpeg_quality = apply_filters( 'jpeg_quality', 82, 'image_resize' );
12439
  $webp_php_rewriting = ewww_image_optimizer_get_option( 'ewww_image_optimizer_webp_for_cdn' ) || ewww_image_optimizer_get_option( 'ewww_image_optimizer_picture_webp' );
@@ -12780,8 +12775,7 @@ function ewww_image_optimizer_options( $network = 'singlesite' ) {
12780
  </p>
12781
  </td>
12782
  </tr>
12783
- <?php if ( ! $exactdn_enabled || 1 === $exactdn->get_plan_id() ) : ?>
12784
- <input type='hidden' id='exactdn_lossy' name='exactdn_lossy' <?php echo ( ewww_image_optimizer_get_option( 'exactdn_lossy' ) ? "value='1'" : "value='0'" ); ?> />
12785
  <input type='hidden' id='ewww_image_optimizer_use_lqip' name='ewww_image_optimizer_use_lqip' <?php echo ( ewww_image_optimizer_get_option( 'ewww_image_optimizer_use_lqip' ) ? "value='1'" : "value='0'" ); ?> />
12786
  <?php endif; ?>
12787
  <tr class="ewwwio-exactdn-options" <?php echo $exactdn_enabled ? '' : 'style="display:none;"'; ?>>
@@ -13300,11 +13294,6 @@ AddType image/webp .webp</pre>
13300
 
13301
  <div id='ewww-local-settings'>
13302
  <noscript><h2><?php esc_html_e( 'Local', 'ewww-image-optimizer' ); ?></h2></noscript>
13303
- <p>
13304
- <?php if ( $exactdn_enabled && 1 === $exactdn->get_plan_id() ) : ?>
13305
- <br><i>* <?php esc_html_e( 'Upgrade to a Pro or Developer subscription to unlock additional options below.', 'ewww-image-optimizer' ); ?></i>
13306
- <?php endif; ?>
13307
- </p>
13308
  <table class='form-table'>
13309
  <?php $maybe_api_level = ewww_image_optimizer_get_option( 'ewww_image_optimizer_cloud_key' ) ? '*' : ''; ?>
13310
  <tr>
14
  exit;
15
  }
16
 
17
+ define( 'EWWW_IMAGE_OPTIMIZER_VERSION', '650' );
18
 
19
  // Initialize a couple globals.
20
  $eio_debug = '';
48
  * Hooks
49
  */
50
 
 
 
51
  // Runs any checks that need to run everywhere and early.
52
  add_action( 'init', 'ewww_image_optimizer_init', 9 );
53
  // Load our front-end parsers for ExactDN, Lazy Load and WebP.
782
  }
783
  }
784
 
 
 
 
 
 
 
 
785
  /**
786
  * Runs early for checks that need to happen on init before anything else.
787
  */
1156
  }
1157
 
1158
  // Alert user if multiple re-optimizations detected.
1159
+ if ( false && ! defined( 'EWWWIO_DISABLE_REOPT_NOTICE' ) ) {
1160
  add_action( 'network_admin_notices', 'ewww_image_optimizer_notice_reoptimization' );
1161
  add_action( 'admin_notices', 'ewww_image_optimizer_notice_reoptimization' );
1162
  }
1692
  }
1693
  if (
1694
  (
1695
+ false !== strpos( $mysql_version, '5.6.' ) ||
1696
  false !== strpos( $mysql_version, '5.7.' ) ||
1697
  false !== strpos( $mysql_version, '8.0.' ) ||
1698
  false !== strpos( $mysql_version, '10.1.' )
2401
  * @global object $wpdb
2402
  */
2403
  function ewww_image_optimizer_notice_reoptimization() {
2404
+ return; // This is already disabled at the admin_notice hook registration above, but just to be sure.
2405
  if ( ! current_user_can( apply_filters( 'ewww_image_optimizer_admin_permissions', '' ) ) ) {
2406
  return;
2407
  }
12269
  <p>
12270
  <?php esc_html_e( 'Get performance tips, exclusive discounts, and the latest news when you signup for our newsletter!', 'ewww-image-optimizer' ); ?>
12271
  </p>
12272
+ <?php if ( ! ewww_image_optimizer_get_option( 'ewww_image_optimizer_dismiss_review_notice' ) ) : ?>
12273
  <p id='ewww-review'>
12274
  <a target="_blank" href="https://wordpress.org/support/plugin/ewww-image-optimizer/reviews/#new-post"><?php esc_html_e( 'Write a Review', 'ewww-image-optimizer' ); ?></a>
12275
  <a target="_blank" href="https://wordpress.org/support/plugin/ewww-image-optimizer/reviews/#new-post">
12276
  <span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span>
12277
  </a>
12278
  </p>
12279
+ <?php endif; ?>
12280
  </div>
12281
  <p id='ewww-news-button'>
12282
  <a href="https://eepurl.com/gKyU6L?TB_iframe=true&width=600&height=610" class="thickbox button-secondary"><?php esc_html_e( 'Subscribe now!', 'ewww-image-optimizer' ); ?></a>
12422
  $loading_image_url = plugins_url( '/images/spinner.gif', __FILE__ );
12423
  $eio_base = new EIO_Base();
12424
  $easyio_site_url = $eio_base->content_url();
12425
+ $exactdn_los_che = ewww_image_optimizer_get_option( 'exactdn_lossy' );
12426
+ $exactdn_los_id = $exactdn_enabled ? 'exactdn_lossy_disabled' : 'exactdn_lossy';
12427
+ $exactdn_los_dis = ! $exactdn_enabled;
12428
  $eio_exclude_paths = ewww_image_optimizer_get_option( 'exactdn_exclude' ) ? implode( "\n", ewww_image_optimizer_get_option( 'exactdn_exclude' ) ) : '';
12429
+ $lqip_che = is_object( $exactdn ) && ewww_image_optimizer_get_option( 'ewww_image_optimizer_use_lqip' );
12430
+ $lqip_id = ! $exactdn_enabled ? 'ewww_image_optimizer_use_lqip_disabled' : 'ewww_image_optimizer_use_lqip';
12431
+ $lqip_dis = ! $exactdn_enabled;
12432
  $ll_exclude_paths = ewww_image_optimizer_get_option( 'ewww_image_optimizer_ll_exclude' ) ? implode( "\n", ewww_image_optimizer_get_option( 'ewww_image_optimizer_ll_exclude' ) ) : '';
12433
  $current_jpeg_quality = apply_filters( 'jpeg_quality', 82, 'image_resize' );
12434
  $webp_php_rewriting = ewww_image_optimizer_get_option( 'ewww_image_optimizer_webp_for_cdn' ) || ewww_image_optimizer_get_option( 'ewww_image_optimizer_picture_webp' );
12775
  </p>
12776
  </td>
12777
  </tr>
12778
+ <?php if ( ! $exactdn_enabled ) : ?>
 
12779
  <input type='hidden' id='ewww_image_optimizer_use_lqip' name='ewww_image_optimizer_use_lqip' <?php echo ( ewww_image_optimizer_get_option( 'ewww_image_optimizer_use_lqip' ) ? "value='1'" : "value='0'" ); ?> />
12780
  <?php endif; ?>
12781
  <tr class="ewwwio-exactdn-options" <?php echo $exactdn_enabled ? '' : 'style="display:none;"'; ?>>
13294
 
13295
  <div id='ewww-local-settings'>
13296
  <noscript><h2><?php esc_html_e( 'Local', 'ewww-image-optimizer' ); ?></h2></noscript>
 
 
 
 
 
13297
  <table class='form-table'>
13298
  <?php $maybe_api_level = ewww_image_optimizer_get_option( 'ewww_image_optimizer_cloud_key' ) ? '*' : ''; ?>
13299
  <tr>
ewww-image-optimizer.php CHANGED
@@ -13,7 +13,7 @@ Plugin Name: EWWW Image Optimizer
13
  Plugin URI: https://wordpress.org/plugins/ewww-image-optimizer/
14
  Description: Reduce file sizes for images within WordPress including NextGEN Gallery and GRAND FlAGallery. Uses jpegtran, optipng/pngout, and gifsicle.
15
  Author: Exactly WWW
16
- Version: 6.4.2
17
  Requires at least: 5.6
18
  Requires PHP: 7.2
19
  Author URI: https://ewww.io/
@@ -33,14 +33,10 @@ if ( ! defined( 'EWWW_IO_CLOUD_PLUGIN' ) ) {
33
  if ( ! defined( 'PHP_VERSION_ID' ) || PHP_VERSION_ID < 70200 ) {
34
  add_action( 'network_admin_notices', 'ewww_image_optimizer_unsupported_php' );
35
  add_action( 'admin_notices', 'ewww_image_optimizer_unsupported_php' );
36
- // Loads the plugin translations.
37
- add_action( 'plugins_loaded', 'ewww_image_optimizer_false_init' );
38
  } elseif ( defined( 'EWWW_IMAGE_OPTIMIZER_VERSION' ) ) {
39
  // Prevent loading both EWWW IO plugins.
40
  add_action( 'network_admin_notices', 'ewww_image_optimizer_dual_plugin' );
41
  add_action( 'admin_notices', 'ewww_image_optimizer_dual_plugin' );
42
- // Loads the plugin translations.
43
- add_action( 'plugins_loaded', 'ewww_image_optimizer_false_init' );
44
  } elseif ( false === strpos( add_query_arg( null, null ), 'ewwwio_disable=1' ) ) {
45
  /**
46
  * The full path of the plugin file (this file).
@@ -151,11 +147,4 @@ if ( ! function_exists( 'ewww_image_optimizer_unsupported_php' ) ) {
151
  function ewww_image_optimizer_dual_plugin() {
152
  echo "<div id='ewww-image-optimizer-warning-double-plugin' class='error'><p><strong>" . esc_html__( 'Only one version of the EWWW Image Optimizer can be active at a time. Please deactivate other copies of the plugin.', 'ewww-image-optimizer' ) . '</strong></p></div>';
153
  }
154
-
155
- /**
156
- * Runs on 'plugins_loaded' to load the language files when EWWW is not loading.
157
- */
158
- function ewww_image_optimizer_false_init() {
159
- load_plugin_textdomain( 'ewww-image-optimizer', false, plugin_dir_path( __FILE__ ) . 'languages/' );
160
- }
161
  }
13
  Plugin URI: https://wordpress.org/plugins/ewww-image-optimizer/
14
  Description: Reduce file sizes for images within WordPress including NextGEN Gallery and GRAND FlAGallery. Uses jpegtran, optipng/pngout, and gifsicle.
15
  Author: Exactly WWW
16
+ Version: 6.5.0
17
  Requires at least: 5.6
18
  Requires PHP: 7.2
19
  Author URI: https://ewww.io/
33
  if ( ! defined( 'PHP_VERSION_ID' ) || PHP_VERSION_ID < 70200 ) {
34
  add_action( 'network_admin_notices', 'ewww_image_optimizer_unsupported_php' );
35
  add_action( 'admin_notices', 'ewww_image_optimizer_unsupported_php' );
 
 
36
  } elseif ( defined( 'EWWW_IMAGE_OPTIMIZER_VERSION' ) ) {
37
  // Prevent loading both EWWW IO plugins.
38
  add_action( 'network_admin_notices', 'ewww_image_optimizer_dual_plugin' );
39
  add_action( 'admin_notices', 'ewww_image_optimizer_dual_plugin' );
 
 
40
  } elseif ( false === strpos( add_query_arg( null, null ), 'ewwwio_disable=1' ) ) {
41
  /**
42
  * The full path of the plugin file (this file).
147
  function ewww_image_optimizer_dual_plugin() {
148
  echo "<div id='ewww-image-optimizer-warning-double-plugin' class='error'><p><strong>" . esc_html__( 'Only one version of the EWWW Image Optimizer can be active at a time. Please deactivate other copies of the plugin.', 'ewww-image-optimizer' ) . '</strong></p></div>';
149
  }
 
 
 
 
 
 
 
150
  }
includes/lazysizes-post.js CHANGED
@@ -125,8 +125,8 @@ document.addEventListener('lazybeforeunveil', function(e){
125
  console.log(target);
126
  var wrongSize = false;
127
  var srcset = target.getAttribute('data-srcset');
128
- console.log('natural width of ' + target.getAttribute('src') + ' is ' + target.naturalWidth);
129
  if (target.naturalWidth && ! srcset) {
 
130
  console.log('we have an image with no srcset');
131
  if ((target.naturalWidth > 1) && (target.naturalHeight > 1)) {
132
  // For each image with a natural width which isn't
125
  console.log(target);
126
  var wrongSize = false;
127
  var srcset = target.getAttribute('data-srcset');
 
128
  if (target.naturalWidth && ! srcset) {
129
+ console.log('natural width of ' + target.getAttribute('src') + ' is ' + target.naturalWidth);
130
  console.log('we have an image with no srcset');
131
  if ((target.naturalWidth > 1) && (target.naturalHeight > 1)) {
132
  // For each image with a natural width which isn't
includes/lazysizes.min.js CHANGED
@@ -1 +1 @@
1
- var ewww_webp_supported;function shouldAutoScale(e){if(1==eio_lazy_vars.skip_autoscale)return!1;if(e.hasAttributes())for(var t=e.attributes,a=/skip-autoscale/,i=t.length-1;0<=i;i--){if(a.test(t[i].name))return!1;if(a.test(t[i].value))return!1}return!0}function constrainSrc(e,t,a,i){if(null===e)return e;var r=/w=(\d+)/,n=/fit=(\d+),(\d+)/,o=/resize=(\d+),(\d+)/,s=decodeURIComponent(e);if("undefined"==typeof eio_lazy_vars&&(eio_lazy_vars={exactdn_domain:".exactdn.com"}),0<e.search("\\?")&&0<e.search(eio_lazy_vars.exactdn_domain)){var l=o.exec(s);if(l&&t<l[1])return s.replace(o,"resize="+t+","+a);o=r.exec(e);if(o&&t<=o[1]){if("bg-cover"!==i&&"img-crop"!==i)return e.replace(r,"w="+t);var d=o[1]-t;return 20<d||a<1080?e.replace(r,"resize="+t+","+a):e}d=n.exec(s);if(d&&t<d[1]){if("bg-cover"!==i&&"img-crop"!==i)return s.replace(n,"fit="+t+","+a);s=d[1]-t,n=d[2]-a;return 20<s||20<n?e.replace(r,"resize="+t+","+a):e}if(!o&&!d&&!l)return"img"===i?e+"&fit="+t+","+a:"bg-cover"===i||"img-crop"===i?e+"&resize="+t+","+a:t<a?e+"&h="+a:e+"&w="+t}return-1==e.search("\\?")&&0<e.search(eio_lazy_vars.exactdn_domain)?"img"===i?e+"?fit="+t+","+a:"bg-cover"===i||"img-crop"===i?e+"?resize="+t+","+a:t<a?e+"?h="+a:e+"?w="+t:e}void 0===ewww_webp_supported&&(ewww_webp_supported=!1),window.lazySizesConfig=window.lazySizesConfig||{},window.lazySizesConfig.expand=500<document.documentElement.clientHeight&&500<document.documentElement.clientWidth?1e3:740,50<eio_lazy_vars.threshold&&(window.lazySizesConfig.expand=eio_lazy_vars.threshold),function(e,t){function a(){t(e.lazySizes),e.removeEventListener("lazyunveilread",a,!0)}t=t.bind(null,e,e.document),"object"==typeof module&&module.exports?t(require("lazysizes")):e.lazySizes?a():e.addEventListener("lazyunveilread",a,!0)}(window,function(n,e,o){"use strict";var s;e.addEventListener&&(s=/\(|\)|\s|'/,addEventListener("lazybeforeunveil",function(e){var t,a,i,r;e.detail.instance==o&&(e.defaultPrevented||("none"==e.target.preload&&(e.target.preload="auto"),(t=e.target.getAttribute("data-bg"))&&(ewww_webp_supported&&(r=e.target.getAttribute("data-bg-webp"))&&(t=r),a=n.devicePixelRatio||1,i=Math.round(e.target.offsetWidth*a),r=Math.round(e.target.offsetHeight*a),shouldAutoScale(e.target)&&shouldAutoScale(e.target.parentNode)&&(t=n.lazySizes.hC(e.target,"wp-block-cover")?(n.lazySizes.hC(e.target,"has-parallax")?(i=Math.round(n.screen.width*a),r=Math.round(n.screen.height*a)):r<300&&(r=430),constrainSrc(t,i,r,"bg-cover")):n.lazySizes.hC(e.target,"elementor-bg")||n.lazySizes.hC(e.target,"et_parallax_bg")||n.lazySizes.hC(e.target,"bg-image-crop")?constrainSrc(t,i,r,"bg-cover"):constrainSrc(t,i,r,"bg")),e.target.style.backgroundImage="url("+(s.test(t)?JSON.stringify(t):t)+")")))},!1))}),document.addEventListener("lazybeforesizes",function(e){e.target.getAttribute("data-src");void 0!==e.target._lazysizesWidth&&e.detail.width<e.target._lazysizesWidth&&(e.detail.width=e.target._lazysizesWidth)}),document.addEventListener("lazybeforeunveil",function(e){var t,a,i,r,n,o=e.target,s=o.getAttribute("data-srcset");o.naturalWidth&&!s&&1<o.naturalWidth&&1<o.naturalHeight&&(i=window.devicePixelRatio||1,a=o.naturalWidth,r=o.naturalHeight,t=o.getAttribute("data-eio-rwidth"),e=o.getAttribute("data-eio-rheight"),t&&a<t&&(a=t,r=e),a=o.clientWidth&&1.25*o.clientWidth<a,r=o.clientHeight&&1.25*o.clientHeight<r,(a||r)&&(a=Math.round(o.offsetWidth*i),r=Math.round(o.offsetHeight*i),i=o.getAttribute("data-src"),n=o.getAttribute("data-src-webp"),ewww_webp_supported&&n&&-1==i.search("webp=1")&&(i=n),(r=!(!shouldAutoScale(o)||!shouldAutoScale(o.parentNode))&&(window.lazySizes.hC(o,"et_pb_jt_filterable_grid_item_image")||window.lazySizes.hC(o,"ss-foreground-image")||window.lazySizes.hC(o,"img-crop")||window.lazySizes.hC(o,"ct-image")&&window.lazySizes.hC(o,"object-cover")?constrainSrc(i,a,r,"img-crop"):constrainSrc(i,a,r,"img")))&&i!=r&&o.setAttribute("data-src",r))),ewww_webp_supported&&(!s||(s=o.getAttribute("data-srcset-webp"))&&o.setAttribute("data-srcset",s),(n=o.getAttribute("data-src-webp"))&&o.setAttribute("data-src",n))}),function(e,t){t=t(e,e.document,Date);e.lazySizes=t,"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:{},function(i,f,n){"use strict";var g,h;if(!function(){var e,t={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(e in h=i.lazySizesConfig||i.lazysizesConfig||{},t)e in h||(h[e]=t[e])}(),!f||!f.getElementsByClassName)return{init:function(){},cfg:h,noSupport:!0};function c(e,t){S(e,t)||e.setAttribute("class",(e[p]("class")||"").trim()+" "+t)}function u(e,t){(t=S(e,t))&&e.setAttribute("class",(e[p]("class")||"").replace(t," "))}function z(e,t){var a;!l&&(a=i.picturefill||h.pf)?(t&&t.src&&!e[p]("srcset")&&e.setAttribute("srcset",t.src),a({reevaluate:!0,elements:[e]})):t&&t.src&&(e.src=t.src)}var a,r,t,o,s,m=f.documentElement,l=i.HTMLPictureElement,d="addEventListener",p="getAttribute",e=i[d].bind(i),y=i.setTimeout,v=i.requestAnimationFrame||y,b=i.requestIdleCallback,w=/^picture$/i,_=["load","error","lazyincluded","_lazyloaded"],C={},A=Array.prototype.forEach,S=function(e,t){return C[t]||(C[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),C[t].test(e[p]("class")||"")&&C[t]},E=function(t,a,e){var i=e?d:"removeEventListener";e&&E(t,a),_.forEach(function(e){t[i](e,a)})},x=function(e,t,a,i,r){var n=f.createEvent("Event");return(a=a||{}).instance=g,n.initEvent(t,!i,!r),n.detail=a,e.dispatchEvent(n),n},M=function(e,t){return(getComputedStyle(e,null)||{})[t]},W=function(e,t,a){for(a=a||e.offsetWidth;a<h.minSize&&t&&!e._lazysizesWidth;)a=t.offsetWidth,t=t.parentNode;return a},L=(o=[],s=t=[],H._lsFlush=N,H);function N(){var e=s;for(s=t.length?o:t,r=!(a=!0);e.length;)e.shift()();a=!1}function H(e,t){a&&!t?e.apply(this,arguments):(s.push(e),r||(r=!0,(f.hidden?y:v)(N)))}function R(a,e){return e?function(){L(a)}:function(){var e=this,t=arguments;L(function(){a.apply(e,t)})}}function k(e){function t(){var e=n.now()-i;e<99?y(t,99-e):(b||r)(r)}var a,i,r=function(){a=null,e()};return function(){i=n.now(),a=a||y(t,99)}}var B,T,F,P,D,O,I,$,j,q,U,J,G,K,Q,V,X,Y,Z,ee,te,ae,ie,re,ne,oe,se,le,de,ce,ue,fe=(Z=/^img$/i,ee=/^iframe$/i,te="onscroll"in i&&!/(gle|ing)bot/.test(navigator.userAgent),re=-1,ne=function(e){return(J=null==J?"hidden"==M(f.body,"visibility"):J)||!("hidden"==M(e.parentNode,"visibility")&&"hidden"==M(e,"visibility"))},G=he,Q=ie=ae=0,V=h.throttleDelay,X=h.ricTimeout,Y=b&&49<X?function(){b(ze,{timeout:X}),X!==h.ricTimeout&&(X=h.ricTimeout)}:R(function(){y(ze)},!0),se=R(me),le=function(e){se({target:e.target})},de=R(function(t,e,a,i,r){var n,o,s,l,d;(s=x(t,"lazybeforeunveil",e)).defaultPrevented||(i&&(a?c(t,h.autosizesClass):t.setAttribute("sizes",i)),n=t[p](h.srcsetAttr),a=t[p](h.srcAttr),r&&(o=(d=t.parentNode)&&w.test(d.nodeName||"")),l=e.firesLoad||"src"in t&&(n||a||o),s={target:t},c(t,h.loadingClass),l&&(clearTimeout(F),F=y(ge,2500),E(t,le,!0)),o&&A.call(d.getElementsByTagName("source"),pe),n?t.setAttribute("srcset",n):a&&!o&&(ee.test(t.nodeName)?(i=a,0==(d=(e=t).getAttribute("data-load-mode")||h.iframeLoadMode)?e.contentWindow.location.replace(i):1==d&&(e.src=i)):t.src=a),r&&(n||o)&&z(t,{src:a})),t._lazyRace&&delete t._lazyRace,u(t,h.lazyClass),L(function(){var e=t.complete&&1<t.naturalWidth;l&&!e||(e&&c(t,h.fastLoadedClass),me(s),t._lazyCache=!0,y(function(){"_lazyCache"in t&&delete t._lazyCache},9)),"lazy"==t.loading&&ie--},!0)}),ue=k(function(){h.loadMode=3,oe()}),{_:function(){D=n.now(),g.elements=f.getElementsByClassName(h.lazyClass),B=f.getElementsByClassName(h.lazyClass+" "+h.preloadClass),e("scroll",oe,!0),e("resize",oe,!0),e("pageshow",function(e){var t;!e.persisted||(t=f.querySelectorAll("."+h.loadingClass)).length&&t.forEach&&v(function(){t.forEach(function(e){e.complete&&ce(e)})})}),i.MutationObserver?new MutationObserver(oe).observe(m,{childList:!0,subtree:!0,attributes:!0}):(m[d]("DOMNodeInserted",oe,!0),m[d]("DOMAttrModified",oe,!0),setInterval(oe,999)),e("hashchange",oe,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){f[d](e,oe,!0)}),/d$|^c/.test(f.readyState)?ve():(e("load",ve),f[d]("DOMContentLoaded",oe),y(ve,2e4)),g.elements.length?(he(),L._lsFlush()):oe()},checkElems:oe=function(e){var t;(e=!0===e)&&(X=33),K||(K=!0,(t=V-(n.now()-Q))<0&&(t=0),e||t<9?Y():y(Y,t))},unveil:ce=function(e){var t,a,i,r;e._lazyRace||(!(r="auto"==(i=(a=Z.test(e.nodeName))&&(e[p](h.sizesAttr)||e[p]("sizes"))))&&T||!a||!e[p]("src")&&!e.srcset||e.complete||S(e,h.errorClass)||!S(e,h.lazyClass))&&(t=x(e,"lazyunveilread").detail,r&&Ce.updateElem(e,!0,e.offsetWidth),e._lazyRace=!0,ie++,de(e,t,r,i,a))},_aLSL:ye});function ge(e){ie--,e&&!(ie<0)&&e.target||(ie=0)}function he(){var e,t,a,i,r,n,o,s,l,d,c,u=g.elements;if((P=h.loadMode)&&ie<8&&(e=u.length)){for(t=0,re++;t<e;t++)if(u[t]&&!u[t]._lazyRace)if(!te||g.prematureUnveil&&g.prematureUnveil(u[t]))ce(u[t]);else if((o=u[t][p]("data-expand"))&&(r=+o)||(r=ae),l||(l=!h.expand||h.expand<1?500<m.clientHeight&&500<m.clientWidth?500:370:h.expand,d=(g._defEx=l)*h.expFactor,c=h.hFac,J=null,ae<d&&ie<1&&2<re&&2<P&&!f.hidden?(ae=d,re=0):ae=1<P&&1<re&&ie<6?l:0),s!==r&&(O=innerWidth+r*c,I=innerHeight+r,n=-1*r,s=r),d=u[t].getBoundingClientRect(),(U=d.bottom)>=n&&($=d.top)<=I&&(q=d.right)>=n*c&&(j=d.left)<=O&&(U||q||j||$)&&(h.loadHidden||ne(u[t]))&&(T&&ie<3&&!o&&(P<3||re<4)||function(e,t){var a,i=e,r=ne(e);for($-=t,U+=t,j-=t,q+=t;r&&(i=i.offsetParent)&&i!=f.body&&i!=m;)(r=0<(M(i,"opacity")||1))&&"visible"!=M(i,"overflow")&&(a=i.getBoundingClientRect(),r=q>a.left&&j<a.right&&U>a.top-1&&$<a.bottom+1);return r}(u[t],r))){if(ce(u[t]),i=!0,9<ie)break}else!i&&T&&!a&&ie<4&&re<4&&2<P&&(B[0]||h.preloadAfterLoad)&&(B[0]||!o&&(U||q||j||$||"auto"!=u[t][p](h.sizesAttr)))&&(a=B[0]||u[t]);a&&!i&&ce(a)}}function ze(){K=!1,Q=n.now(),G()}function me(e){var t=e.target;t._lazyCache?delete t._lazyCache:(ge(e),c(t,h.loadedClass),u(t,h.loadingClass),E(t,le),x(t,"lazyloaded"))}function pe(e){var t,a=e[p](h.srcsetAttr);(t=h.customMedia[e[p]("data-media")||e[p]("media")])&&e.setAttribute("media",t),a&&e.setAttribute("srcset",a)}function ye(){3==h.loadMode&&(h.loadMode=2),ue()}function ve(){T||(n.now()-D<999?y(ve,999):(T=!0,h.loadMode=3,oe(),e("scroll",ye,!0)))}var be,we,_e,Ce=(we=R(function(e,t,a,i){var r,n,o;if(e._lazysizesWidth=i,e.setAttribute("sizes",i+="px"),w.test(t.nodeName||""))for(n=0,o=(r=t.getElementsByTagName("source")).length;n<o;n++)r[n].setAttribute("sizes",i);a.detail.dataAttr||z(e,a.detail)}),{_:function(){be=f.getElementsByClassName(h.autosizesClass),e("resize",_e)},checkElems:_e=k(function(){var e,t=be.length;if(t)for(e=0;e<t;e++)Ae(be[e])}),updateElem:Ae});function Ae(e,t,a){var i=e.parentNode;i&&(a=W(e,i,a),(t=x(e,"lazybeforesizes",{width:a,dataAttr:!!t})).defaultPrevented||(a=t.detail.width)&&a!==e._lazysizesWidth&&we(e,i,t,a))}function Se(){!Se.i&&f.getElementsByClassName&&(Se.i=!0,Ce._(),fe._())}return y(function(){h.init&&Se()}),g={cfg:h,autoSizer:Ce,loader:fe,init:Se,uP:z,aC:c,rC:u,hC:S,fire:x,gW:W,rAF:L}});
1
+ var ewww_webp_supported;function shouldAutoScale(e){if(1==eio_lazy_vars.skip_autoscale)return!1;if(e.hasAttributes())for(var t=e.attributes,a=/skip-autoscale/,i=t.length-1;0<=i;i--){if(a.test(t[i].name))return!1;if(a.test(t[i].value))return!1}return!0}function constrainSrc(e,t,a,i){if(null===e)return e;var r=/w=(\d+)/,n=/fit=(\d+),(\d+)/,o=/resize=(\d+),(\d+)/,s=decodeURIComponent(e);if("undefined"==typeof eio_lazy_vars&&(eio_lazy_vars={exactdn_domain:".exactdn.com"}),0<e.search("\\?")&&0<e.search(eio_lazy_vars.exactdn_domain)){var l=o.exec(s);if(l&&t<l[1])return s.replace(o,"resize="+t+","+a);o=r.exec(e);if(o&&t<=o[1]){if("bg-cover"!==i&&"img-crop"!==i)return e.replace(r,"w="+t);var d=o[1]-t;return 20<d||a<1080?e.replace(r,"resize="+t+","+a):e}d=n.exec(s);if(d&&t<d[1]){if("bg-cover"!==i&&"img-crop"!==i)return s.replace(n,"fit="+t+","+a);s=d[1]-t,n=d[2]-a;return 20<s||20<n?e.replace(r,"resize="+t+","+a):e}if(!o&&!d&&!l)return"img"===i?e+"&fit="+t+","+a:"bg-cover"===i||"img-crop"===i?e+"&resize="+t+","+a:t<a?e+"&h="+a:e+"&w="+t}return-1==e.search("\\?")&&0<e.search(eio_lazy_vars.exactdn_domain)?"img"===i?e+"?fit="+t+","+a:"bg-cover"===i||"img-crop"===i?e+"?resize="+t+","+a:t<a?e+"?h="+a:e+"?w="+t:e}void 0===ewww_webp_supported&&(ewww_webp_supported=!1),window.lazySizesConfig=window.lazySizesConfig||{},window.lazySizesConfig.expand=500<document.documentElement.clientHeight&&500<document.documentElement.clientWidth?1e3:740,50<eio_lazy_vars.threshold&&(window.lazySizesConfig.expand=eio_lazy_vars.threshold),function(e,t){function a(){t(e.lazySizes),e.removeEventListener("lazyunveilread",a,!0)}t=t.bind(null,e,e.document),"object"==typeof module&&module.exports?t(require("lazysizes")):e.lazySizes?a():e.addEventListener("lazyunveilread",a,!0)}(window,function(n,e,o){"use strict";var s;e.addEventListener&&(s=/\(|\)|\s|'/,addEventListener("lazybeforeunveil",function(e){var t,a,i,r;e.detail.instance==o&&(e.defaultPrevented||("none"==e.target.preload&&(e.target.preload="auto"),(i=e.target.getAttribute("data-bg"))&&(ewww_webp_supported&&(r=e.target.getAttribute("data-bg-webp"))&&(i=r),t=n.devicePixelRatio||1,a=Math.round(e.target.offsetWidth*t),r=Math.round(e.target.offsetHeight*t),0===i.search(/\[/)||shouldAutoScale(e.target)&&shouldAutoScale(e.target.parentNode)&&(i=n.lazySizes.hC(e.target,"wp-block-cover")?(n.lazySizes.hC(e.target,"has-parallax")?(a=Math.round(n.screen.width*t),r=Math.round(n.screen.height*t)):r<300&&(r=430),constrainSrc(i,a,r,"bg-cover")):n.lazySizes.hC(e.target,"elementor-bg")||n.lazySizes.hC(e.target,"et_parallax_bg")||n.lazySizes.hC(e.target,"bg-image-crop")?constrainSrc(i,a,r,"bg-cover"):constrainSrc(i,a,r,"bg")),e.target.style.backgroundImage&&-1===e.target.style.backgroundImage.search(/^initial/)?0===i.search(/\[/)?((i=JSON.parse(i)).forEach(function(e){s.test(e)&&JSON.stringify(e)}),i='url("'+i.join('"), url("')+'"',r=e.target.style.backgroundImage+", "+i,e.target.style.backgroundImage=r):e.target.style.backgroundImage=e.target.style.backgroundImage+', url("'+(s.test(i)?JSON.stringify(i):i)+'")':0===i.search(/\[/)?((i=JSON.parse(i)).forEach(function(e){s.test(e)&&JSON.stringify(e)}),i='url("'+i.join('"), url("')+'"',e.target.style.backgroundImage=i):e.target.style.backgroundImage="url("+(s.test(i)?JSON.stringify(i):i)+")")))},!1))}),document.addEventListener("lazybeforesizes",function(e){e.target.getAttribute("data-src");void 0!==e.target._lazysizesWidth&&e.detail.width<e.target._lazysizesWidth&&(e.detail.width=e.target._lazysizesWidth)}),document.addEventListener("lazybeforeunveil",function(e){var t,a,i,r,n,o=e.target,s=o.getAttribute("data-srcset");o.naturalWidth&&!s&&1<o.naturalWidth&&1<o.naturalHeight&&(i=window.devicePixelRatio||1,a=o.naturalWidth,r=o.naturalHeight,t=o.getAttribute("data-eio-rwidth"),e=o.getAttribute("data-eio-rheight"),t&&a<t&&(a=t,r=e),a=o.clientWidth&&1.25*o.clientWidth<a,r=o.clientHeight&&1.25*o.clientHeight<r,(a||r)&&(a=Math.round(o.offsetWidth*i),r=Math.round(o.offsetHeight*i),i=o.getAttribute("data-src"),n=o.getAttribute("data-src-webp"),ewww_webp_supported&&n&&-1==i.search("webp=1")&&(i=n),(r=!(!shouldAutoScale(o)||!shouldAutoScale(o.parentNode))&&(window.lazySizes.hC(o,"et_pb_jt_filterable_grid_item_image")||window.lazySizes.hC(o,"ss-foreground-image")||window.lazySizes.hC(o,"img-crop")||window.lazySizes.hC(o,"ct-image")&&window.lazySizes.hC(o,"object-cover")?constrainSrc(i,a,r,"img-crop"):constrainSrc(i,a,r,"img")))&&i!=r&&o.setAttribute("data-src",r))),ewww_webp_supported&&(!s||(s=o.getAttribute("data-srcset-webp"))&&o.setAttribute("data-srcset",s),(n=o.getAttribute("data-src-webp"))&&o.setAttribute("data-src",n))}),function(e,t){t=t(e,e.document,Date);e.lazySizes=t,"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:{},function(i,f,n){"use strict";var g,h;if(!function(){var e,t={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(e in h=i.lazySizesConfig||i.lazysizesConfig||{},t)e in h||(h[e]=t[e])}(),!f||!f.getElementsByClassName)return{init:function(){},cfg:h,noSupport:!0};function c(e,t){S(e,t)||e.setAttribute("class",(e[y]("class")||"").trim()+" "+t)}function u(e,t){(t=S(e,t))&&e.setAttribute("class",(e[y]("class")||"").replace(t," "))}function z(e,t){var a;!l&&(a=i.picturefill||h.pf)?(t&&t.src&&!e[y]("srcset")&&e.setAttribute("srcset",t.src),a({reevaluate:!0,elements:[e]})):t&&t.src&&(e.src=t.src)}var a,r,t,o,s,m=f.documentElement,l=i.HTMLPictureElement,d="addEventListener",y="getAttribute",e=i[d].bind(i),p=i.setTimeout,v=i.requestAnimationFrame||p,b=i.requestIdleCallback,w=/^picture$/i,_=["load","error","lazyincluded","_lazyloaded"],C={},A=Array.prototype.forEach,S=function(e,t){return C[t]||(C[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),C[t].test(e[y]("class")||"")&&C[t]},E=function(t,a,e){var i=e?d:"removeEventListener";e&&E(t,a),_.forEach(function(e){t[i](e,a)})},x=function(e,t,a,i,r){var n=f.createEvent("Event");return(a=a||{}).instance=g,n.initEvent(t,!i,!r),n.detail=a,e.dispatchEvent(n),n},N=function(e,t){return(getComputedStyle(e,null)||{})[t]},M=function(e,t,a){for(a=a||e.offsetWidth;a<h.minSize&&t&&!e._lazysizesWidth;)a=t.offsetWidth,t=t.parentNode;return a},W=(o=[],s=t=[],k._lsFlush=L,k);function L(){var e=s;for(s=t.length?o:t,r=!(a=!0);e.length;)e.shift()();a=!1}function k(e,t){a&&!t?e.apply(this,arguments):(s.push(e),r||(r=!0,(f.hidden?p:v)(L)))}function H(a,e){return e?function(){W(a)}:function(){var e=this,t=arguments;W(function(){a.apply(e,t)})}}function I(e){function t(){var e=n.now()-i;e<99?p(t,99-e):(b||r)(r)}var a,i,r=function(){a=null,e()};return function(){i=n.now(),a=a||p(t,99)}}var O,R,B,T,F,P,j,D,J,$,q,U,G,K,Q,V,X,Y,Z,ee,te,ae,ie,re,ne,oe,se,le,de,ce,ue,fe=(Z=/^img$/i,ee=/^iframe$/i,te="onscroll"in i&&!/(gle|ing)bot/.test(navigator.userAgent),re=-1,ne=function(e){return(U=null==U?"hidden"==N(f.body,"visibility"):U)||!("hidden"==N(e.parentNode,"visibility")&&"hidden"==N(e,"visibility"))},G=he,Q=ie=ae=0,V=h.throttleDelay,X=h.ricTimeout,Y=b&&49<X?function(){b(ze,{timeout:X}),X!==h.ricTimeout&&(X=h.ricTimeout)}:H(function(){p(ze)},!0),se=H(me),le=function(e){se({target:e.target})},de=H(function(t,e,a,i,r){var n,o,s,l,d;(s=x(t,"lazybeforeunveil",e)).defaultPrevented||(i&&(a?c(t,h.autosizesClass):t.setAttribute("sizes",i)),n=t[y](h.srcsetAttr),a=t[y](h.srcAttr),r&&(o=(d=t.parentNode)&&w.test(d.nodeName||"")),l=e.firesLoad||"src"in t&&(n||a||o),s={target:t},c(t,h.loadingClass),l&&(clearTimeout(B),B=p(ge,2500),E(t,le,!0)),o&&A.call(d.getElementsByTagName("source"),ye),n?t.setAttribute("srcset",n):a&&!o&&(ee.test(t.nodeName)?(i=a,0==(d=(e=t).getAttribute("data-load-mode")||h.iframeLoadMode)?e.contentWindow.location.replace(i):1==d&&(e.src=i)):t.src=a),r&&(n||o)&&z(t,{src:a})),t._lazyRace&&delete t._lazyRace,u(t,h.lazyClass),W(function(){var e=t.complete&&1<t.naturalWidth;l&&!e||(e&&c(t,h.fastLoadedClass),me(s),t._lazyCache=!0,p(function(){"_lazyCache"in t&&delete t._lazyCache},9)),"lazy"==t.loading&&ie--},!0)}),ue=I(function(){h.loadMode=3,oe()}),{_:function(){F=n.now(),g.elements=f.getElementsByClassName(h.lazyClass),O=f.getElementsByClassName(h.lazyClass+" "+h.preloadClass),e("scroll",oe,!0),e("resize",oe,!0),e("pageshow",function(e){var t;!e.persisted||(t=f.querySelectorAll("."+h.loadingClass)).length&&t.forEach&&v(function(){t.forEach(function(e){e.complete&&ce(e)})})}),i.MutationObserver?new MutationObserver(oe).observe(m,{childList:!0,subtree:!0,attributes:!0}):(m[d]("DOMNodeInserted",oe,!0),m[d]("DOMAttrModified",oe,!0),setInterval(oe,999)),e("hashchange",oe,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){f[d](e,oe,!0)}),/d$|^c/.test(f.readyState)?ve():(e("load",ve),f[d]("DOMContentLoaded",oe),p(ve,2e4)),g.elements.length?(he(),W._lsFlush()):oe()},checkElems:oe=function(e){var t;(e=!0===e)&&(X=33),K||(K=!0,(t=V-(n.now()-Q))<0&&(t=0),e||t<9?Y():p(Y,t))},unveil:ce=function(e){var t,a,i,r;e._lazyRace||(!(r="auto"==(i=(a=Z.test(e.nodeName))&&(e[y](h.sizesAttr)||e[y]("sizes"))))&&R||!a||!e[y]("src")&&!e.srcset||e.complete||S(e,h.errorClass)||!S(e,h.lazyClass))&&(t=x(e,"lazyunveilread").detail,r&&Ce.updateElem(e,!0,e.offsetWidth),e._lazyRace=!0,ie++,de(e,t,r,i,a))},_aLSL:pe});function ge(e){ie--,e&&!(ie<0)&&e.target||(ie=0)}function he(){var e,t,a,i,r,n,o,s,l,d,c,u=g.elements;if((T=h.loadMode)&&ie<8&&(e=u.length)){for(t=0,re++;t<e;t++)if(u[t]&&!u[t]._lazyRace)if(!te||g.prematureUnveil&&g.prematureUnveil(u[t]))ce(u[t]);else if((o=u[t][y]("data-expand"))&&(r=+o)||(r=ae),l||(l=!h.expand||h.expand<1?500<m.clientHeight&&500<m.clientWidth?500:370:h.expand,d=(g._defEx=l)*h.expFactor,c=h.hFac,U=null,ae<d&&ie<1&&2<re&&2<T&&!f.hidden?(ae=d,re=0):ae=1<T&&1<re&&ie<6?l:0),s!==r&&(P=innerWidth+r*c,j=innerHeight+r,n=-1*r,s=r),d=u[t].getBoundingClientRect(),(q=d.bottom)>=n&&(D=d.top)<=j&&($=d.right)>=n*c&&(J=d.left)<=P&&(q||$||J||D)&&(h.loadHidden||ne(u[t]))&&(R&&ie<3&&!o&&(T<3||re<4)||function(e,t){var a,i=e,r=ne(e);for(D-=t,q+=t,J-=t,$+=t;r&&(i=i.offsetParent)&&i!=f.body&&i!=m;)(r=0<(N(i,"opacity")||1))&&"visible"!=N(i,"overflow")&&(a=i.getBoundingClientRect(),r=$>a.left&&J<a.right&&q>a.top-1&&D<a.bottom+1);return r}(u[t],r))){if(ce(u[t]),i=!0,9<ie)break}else!i&&R&&!a&&ie<4&&re<4&&2<T&&(O[0]||h.preloadAfterLoad)&&(O[0]||!o&&(q||$||J||D||"auto"!=u[t][y](h.sizesAttr)))&&(a=O[0]||u[t]);a&&!i&&ce(a)}}function ze(){K=!1,Q=n.now(),G()}function me(e){var t=e.target;t._lazyCache?delete t._lazyCache:(ge(e),c(t,h.loadedClass),u(t,h.loadingClass),E(t,le),x(t,"lazyloaded"))}function ye(e){var t,a=e[y](h.srcsetAttr);(t=h.customMedia[e[y]("data-media")||e[y]("media")])&&e.setAttribute("media",t),a&&e.setAttribute("srcset",a)}function pe(){3==h.loadMode&&(h.loadMode=2),ue()}function ve(){R||(n.now()-F<999?p(ve,999):(R=!0,h.loadMode=3,oe(),e("scroll",pe,!0)))}var be,we,_e,Ce=(we=H(function(e,t,a,i){var r,n,o;if(e._lazysizesWidth=i,e.setAttribute("sizes",i+="px"),w.test(t.nodeName||""))for(n=0,o=(r=t.getElementsByTagName("source")).length;n<o;n++)r[n].setAttribute("sizes",i);a.detail.dataAttr||z(e,a.detail)}),{_:function(){be=f.getElementsByClassName(h.autosizesClass),e("resize",_e)},checkElems:_e=I(function(){var e,t=be.length;if(t)for(e=0;e<t;e++)Ae(be[e])}),updateElem:Ae});function Ae(e,t,a){var i=e.parentNode;i&&(a=M(e,i,a),(t=x(e,"lazybeforesizes",{width:a,dataAttr:!!t})).defaultPrevented||(a=t.detail.width)&&a!==e._lazysizesWidth&&we(e,i,t,a))}function Se(){!Se.i&&f.getElementsByClassName&&(Se.i=!0,Ce._(),fe._())}return p(function(){h.init&&Se()}),g={cfg:h,autoSizer:Ce,loader:fe,init:Se,uP:z,aC:c,rC:u,hC:S,fire:x,gW:M,rAF:W}});
includes/ls.unveilhooks.js CHANGED
@@ -46,7 +46,8 @@
46
  var dPR = (window.devicePixelRatio || 1);
47
  var targetWidth = Math.round(e.target.offsetWidth * dPR);
48
  var targetHeight = Math.round(e.target.offsetHeight * dPR);
49
- if (!shouldAutoScale(e.target)||!shouldAutoScale(e.target.parentNode)){
 
50
  } else if (window.lazySizes.hC(e.target,'wp-block-cover')) {
51
  console.log('found wp-block-cover with data-bg');
52
  if (window.lazySizes.hC(e.target,'has-parallax')) {
@@ -70,8 +71,42 @@
70
  console.log('found other data-bg');
71
  bg = constrainSrc(bg,targetWidth,targetHeight,'bg');
72
  }
73
- console.log('setting .backgroundImage: ' + 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')');
74
- e.target.style.backgroundImage = 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  }
76
  }
77
  }, false);
46
  var dPR = (window.devicePixelRatio || 1);
47
  var targetWidth = Math.round(e.target.offsetWidth * dPR);
48
  var targetHeight = Math.round(e.target.offsetHeight * dPR);
49
+ if ( 0 === bg.search(/\[/) ) {
50
+ } else if (!shouldAutoScale(e.target)||!shouldAutoScale(e.target.parentNode)){
51
  } else if (window.lazySizes.hC(e.target,'wp-block-cover')) {
52
  console.log('found wp-block-cover with data-bg');
53
  if (window.lazySizes.hC(e.target,'has-parallax')) {
71
  console.log('found other data-bg');
72
  bg = constrainSrc(bg,targetWidth,targetHeight,'bg');
73
  }
74
+ if ( e.target.style.backgroundImage && -1 === e.target.style.backgroundImage.search(/^initial/) ) {
75
+ // Convert JSON for multiple URLs.
76
+ if ( 0 === bg.search(/\[/) ) {
77
+ console.log('multiple URLs to append');
78
+ bg = JSON.parse(bg);
79
+ bg.forEach(
80
+ function(bg_url){
81
+ bg_url = (regBgUrlEscape.test(bg_url) ? JSON.stringify(bg_url) : bg_url );
82
+ }
83
+ );
84
+ bg = 'url("' + bg.join('"), url("') + '"';
85
+ var new_bg = e.target.style.backgroundImage + ', ' + bg;
86
+ console.log('setting .backgroundImage: ' + new_bg );
87
+ e.target.style.backgroundImage = new_bg;
88
+ } else {
89
+ console.log( 'appending bg url: ' + e.target.style.backgroundImage + ', url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')' );
90
+ e.target.style.backgroundImage = e.target.style.backgroundImage + ', url("' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + '")';
91
+ }
92
+ } else {
93
+ // Convert JSON for multiple URLs.
94
+ if ( 0 === bg.search(/\[/) ) {
95
+ console.log('multiple URLs to insert');
96
+ bg = JSON.parse(bg);
97
+ bg.forEach(
98
+ function(bg_url){
99
+ bg_url = (regBgUrlEscape.test(bg_url) ? JSON.stringify(bg_url) : bg_url );
100
+ }
101
+ );
102
+ bg = 'url("' + bg.join('"), url("') + '"';
103
+ console.log('setting .backgroundImage: ' + bg );
104
+ e.target.style.backgroundImage = bg;
105
+ } else {
106
+ console.log('setting .backgroundImage: ' + 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')');
107
+ e.target.style.backgroundImage = 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')';
108
+ }
109
+ }
110
  }
111
  }
112
  }, false);
languages/ewww-image-optimizer-he_IL.mo DELETED
Binary file
languages/ewww-image-optimizer-he_IL.po DELETED
@@ -1,1281 +0,0 @@
1
- # Translation of EWWW Image Optimizer in Hebrew
2
- # This file is distributed under the same license as the EWWW Image Optimizer package.
3
- msgid ""
4
- msgstr ""
5
- "PO-Revision-Date: 2015-05-10 23:45:33+0000\n"
6
- "MIME-Version: 1.0\n"
7
- "Content-Type: text/plain; charset=UTF-8\n"
8
- "Content-Transfer-Encoding: 8bit\n"
9
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
10
- "X-Generator: GlotPress/1.0-alpha-1000\n"
11
- "Project-Id-Version: EWWW Image Optimizer\n"
12
-
13
- #: aux-optimize.php:97 aux-optimize.php:134 aux-optimize.php:383
14
- #: aux-optimize.php:422 bulk.php:405 bulk.php:429 bulk.php:496 common.php:1922
15
- #: flag-integration.php:285 flag-integration.php:306 flag-integration.php:362
16
- #: mwebp.php:102 mwebp.php:193 nextcellent-integration.php:419
17
- #: nextcellent-integration.php:439 nextcellent-integration.php:487
18
- #: nextgen-integration.php:365 nextgen-integration.php:382
19
- #: nextgen-integration.php:427 nextgen2-integration.php:422
20
- #: nextgen2-integration.php:445 nextgen2-integration.php:498
21
- msgid "Access token has expired, please reload the page."
22
- msgstr ""
23
-
24
- #: aux-optimize.php:684 aux-optimize.php:707 aux-optimize.php:723 bulk.php:388
25
- #: common.php:3055 flag-integration.php:271 mwebp.php:84
26
- #: nextcellent-integration.php:94 nextcellent-integration.php:405
27
- #: nextgen-integration.php:71 nextgen-integration.php:352
28
- #: nextgen2-integration.php:408
29
- msgid "Access denied."
30
- msgstr ""
31
-
32
- #: ewww-image-optimizer.php:152
33
- msgid "The regular version of the EWWW Image Optimizer plugin is not permitted on WP Engine sites. However, the cloud version has been approved by WP Engine. Please deactivate EWWW Image Optimizer and install EWWW Image Optimizer Cloud to optimize your images."
34
- msgstr ""
35
-
36
- #: common.php:3575
37
- msgctxt "abbreviation for Virtual Private Server"
38
- msgid "VPS:"
39
- msgstr ""
40
-
41
- #: common.php:3581
42
- msgctxt "abbreviation for Content Delivery Network"
43
- msgid "CDN:"
44
- msgstr ""
45
-
46
- #: common.php:3563
47
- msgid "Help translate EWWW I.O."
48
- msgstr ""
49
-
50
- #: common.php:3564
51
- msgid "Write a review."
52
- msgstr ""
53
-
54
- #: common.php:3569
55
- msgctxt "A2 Hosting:"
56
- msgid "with automatic EWWW IO setup"
57
- msgstr ""
58
-
59
- #: common.php:3561
60
- msgid "Support EWWW I.O."
61
- msgstr ""
62
-
63
- #: common.php:3562
64
- msgid "Would you like to help support development of this plugin?"
65
- msgstr ""
66
-
67
- #: common.php:3565
68
- msgid "Contribute directly via %s."
69
- msgstr ""
70
-
71
- #: common.php:3567
72
- msgid "Use any of these referral links to show your appreciation:"
73
- msgstr ""
74
-
75
- #: common.php:3568
76
- msgid "Web Hosting:"
77
- msgstr ""
78
-
79
- #: common.php:3581
80
- msgid "Add MaxCDN to increase website speeds dramatically! Sign Up Now and Save 25%."
81
- msgstr ""
82
-
83
- #: common.php:3581
84
- msgid "Integrate MaxCDN within Wordpress using the W3 Total Cache plugin."
85
- msgstr ""
86
-
87
- #: common.php:3603
88
- msgid "Debugging Information"
89
- msgstr ""
90
-
91
- #: common.php:3603
92
- msgid "Select All"
93
- msgstr ""
94
-
95
- #: ewww-image-optimizer.php:2109 ewww-image-optimizer.php:2128
96
- msgid "extraction of files failed"
97
- msgstr ""
98
-
99
- #: common.php:2717
100
- msgid "Azure Storage image"
101
- msgstr ""
102
-
103
- #: common.php:2721
104
- msgid "Amazon S3 image"
105
- msgstr ""
106
-
107
- #: common.php:3462
108
- msgid "Deferred Optimization"
109
- msgstr ""
110
-
111
- #: common.php:3462
112
- msgid "Optimize images later via wp_cron, after image upload or generation is complete."
113
- msgstr ""
114
-
115
- #: ewww-image-optimizer.php:1181
116
- msgid "Could not find %s"
117
- msgstr ""
118
-
119
- #: ewww-image-optimizer.php:1189
120
- msgid "%s is not writable"
121
- msgstr ""
122
-
123
- #: bulk.php:356
124
- msgid "Operation timed out, you may need to increase the max_execution_time for PHP"
125
- msgstr "תם הזמן שהוקצב לפעולה, ייתכן שתהיה צריך להגדיל את max_execution_time עבור PHP"
126
-
127
- #: bulk.php:357 flag-integration.php:186 nextcellent-integration.php:392
128
- #: nextgen-integration.php:340 nextgen2-integration.php:395
129
- msgid "License Exceeded"
130
- msgstr "הרישיון עודכן"
131
-
132
- #: bulk.php:358 flag-integration.php:187 nextcellent-integration.php:393
133
- #: nextgen-integration.php:341 nextgen2-integration.php:396
134
- msgid "Optimization stopped, reload page to resume."
135
- msgstr "הייעול הופסק, טען מחדש כדי לחדש את הפעולה."
136
-
137
- #: bulk.php:359 flag-integration.php:188 nextcellent-integration.php:394
138
- #: nextgen-integration.php:342 nextgen2-integration.php:397
139
- msgid "Operation Interrupted"
140
- msgstr "הייעול הופרע"
141
-
142
- #: bulk.php:360 flag-integration.php:189 nextcellent-integration.php:395
143
- #: nextgen-integration.php:343 nextgen2-integration.php:398
144
- msgid "Temporary failure, seconds left to retry:"
145
- msgstr "כישלון זמני, שניות לסיום כדי לנסות שוב:"
146
-
147
- #: bulk.php:361 flag-integration.php:190 nextcellent-integration.php:396
148
- #: nextgen-integration.php:344 nextgen2-integration.php:399
149
- msgid "Could not remove image from table."
150
- msgstr "לא ניתן למחוק את התמונה מהטבלה."
151
-
152
- #: common.php:3170
153
- msgid "Click to toggle"
154
- msgstr "לחץ כדי לעבור"
155
-
156
- #: common.php:3467
157
- msgid "Disable Resizes"
158
- msgstr "בטל שינוי גודל"
159
-
160
- #: common.php:3467
161
- msgid "Wordpress, your theme, and other plugins generate various image sizes. You may disable optimization for certain sizes, or completely prevent those sizes from being created."
162
- msgstr "Worrdpress, ערכת העיצוב שלך, ותוספים אחרים יוצרים תמונות בגדלים שונים. ניתן לבטל את הייעול לגדלים מסוימים, או למנוע לחלוטין את יצירתם."
163
-
164
- #: common.php:3471
165
- msgid "Disable Optimization"
166
- msgstr "בטל ייעול"
167
-
168
- #: common.php:3471
169
- msgid "Disable Creation"
170
- msgstr "בטל יצירה"
171
-
172
- #: common.php:1353
173
- msgid "You don't have permission to optimize images."
174
- msgstr "אין לך הרשאה כדי לייעל את התמונות."
175
-
176
- #: common.php:3400
177
- msgid "Faster lossy optimization"
178
- msgstr "ייעול מהיר ועם איבוד נתונים גדול"
179
-
180
- #: common.php:3400
181
- msgid "Speed up the lossy operations by performing less compression."
182
- msgstr "Speed up the lossy operations by performing less compression."
183
-
184
- #: common.php:3410
185
- msgid "Requires an EWWW Image Optimizer Cloud Subscription."
186
- msgstr "נדרש רישיון של EWWW Image Optimizer בענן"
187
-
188
- #: common.php:3413
189
- msgid "Uses pngquant locally. Use EWWW I.O. Cloud for even better lossy compression."
190
- msgstr ""
191
-
192
- #: common.php:3512
193
- msgid "Uses output buffering and libxml functionality from PHP. Use this if the Apache rewrite rules do not work, or if your images are served from a CDN."
194
- msgstr ""
195
-
196
- #: common.php:1653
197
- msgid "optimized %1$d images, usage will reset in %2$d day."
198
- msgid_plural "optimized %1$d images, usage will reset in %2$d days."
199
- msgstr[0] ""
200
- msgstr[1] ""
201
-
202
- #: common.php:1655
203
- msgid "%1$d image credit remaining."
204
- msgid_plural "%1$d image credits remaining."
205
- msgstr[0] ""
206
- msgstr[1] ""
207
-
208
- #: common.php:3465
209
- msgid "Include Media Library Folders"
210
- msgstr ""
211
-
212
- #: common.php:3465
213
- msgid "If you have disabled automatic optimization, enable this if you want Scheduled Optimization to include the latest two folders from the Media Library."
214
- msgstr ""
215
-
216
- #: common.php:3512
217
- msgid "Alternative WebP Rewriting"
218
- msgstr ""
219
-
220
- #: bulk.php:355
221
- msgid "%d images"
222
- msgstr ""
223
-
224
- #: common.php:3454
225
- msgid "Provide paths containing images to be optimized using \"Scan and Optimize\" on the Bulk Optimize page or by Scheduled Optimization."
226
- msgstr ""
227
-
228
- #: iocli.php:55
229
- msgctxt "string will be something like \"media\" or \"nextgen\""
230
- msgid "Optimizing %1$s with a %2$d second pause between images."
231
- msgstr ""
232
-
233
- #: iocli.php:52
234
- msgid "Forcing re-optimization of previously processed images."
235
- msgstr ""
236
-
237
- #: iocli.php:66 iocli.php:107 iocli.php:118 iocli.php:142 iocli.php:157
238
- msgid "Bulk status has been reset, starting from the beginning."
239
- msgstr ""
240
-
241
- #: iocli.php:172
242
- msgid "Bulk status has been reset, the next bulk operation will start from the beginning."
243
- msgstr ""
244
-
245
- #: iocli.php:174
246
- msgid "Please specify a valid library option, see \"wp-cli help ewwwio optimize\" for more information."
247
- msgstr ""
248
-
249
- #: common.php:1003 common.php:2927
250
- msgid "Unoptimized Images"
251
- msgstr ""
252
-
253
- #: common.php:2934
254
- msgid "Optimize All Images"
255
- msgstr ""
256
-
257
- #: common.php:2953
258
- msgid "There are too many images to display."
259
- msgstr ""
260
-
261
- #: iocli.php:87 iocli.php:162
262
- msgid "%1$d images in other folders need optimizing."
263
- msgstr ""
264
-
265
- #: iocli.php:136
266
- msgid "NextGEN/Nextcellent not installed."
267
- msgstr ""
268
-
269
- #: iocli.php:151
270
- msgid "Grand Flagallery not installed."
271
- msgstr ""
272
-
273
- #: common.php:3463
274
- msgid "Disable Automatic Optimization"
275
- msgstr ""
276
-
277
- #: common.php:3463
278
- msgid "Images will not be optimized on upload. Images may be optimized with the Bulk Optimize tools or with Scheduled optimization."
279
- msgstr ""
280
-
281
- #: common.php:3489
282
- msgid "Exclude full-size images from metadata removal"
283
- msgstr ""
284
-
285
- #: aux-optimize.php:9
286
- msgid "Scan and optimize"
287
- msgstr ""
288
-
289
- #: aux-optimize.php:11
290
- msgid "Resume previous optimization"
291
- msgstr ""
292
-
293
- #: aux-optimize.php:29
294
- msgid "Optimize Everything Else"
295
- msgstr ""
296
-
297
- #: aux-optimize.php:30
298
- msgid "Use this tool to optimize images outside of the Media Library and galleries where we have full integration. Examples: theme images, BuddyPress, WP Symposium, and any folders that you have specified on the settings page."
299
- msgstr ""
300
-
301
- #: aux-optimize.php:32
302
- msgid "The database schema has changed, you need to convert to the new format."
303
- msgstr ""
304
-
305
- #: aux-optimize.php:36
306
- msgid "Convert Table"
307
- msgstr ""
308
-
309
- #: aux-optimize.php:39
310
- msgid "There are no images to optimize."
311
- msgstr ""
312
-
313
- #: aux-optimize.php:40 iocli.php:68 iocli.php:159
314
- msgid "Scanning, this could take a while"
315
- msgstr ""
316
-
317
- #: aux-optimize.php:42
318
- msgid "Last optimization was completed on %1$s at %2$s and optimized %3$d images"
319
- msgstr ""
320
-
321
- #: aux-optimize.php:46 bulk.php:57
322
- msgid "Optimize Again"
323
- msgstr ""
324
-
325
- #: aux-optimize.php:51 bulk.php:63 flag-integration.php:105
326
- #: nextcellent-integration.php:296 nextgen-integration.php:258
327
- #: nextgen2-integration.php:303
328
- msgid "If you would like to start over again, press the Reset Status button to reset the bulk operation status."
329
- msgstr ""
330
-
331
- #: aux-optimize.php:55 bulk.php:67 flag-integration.php:109
332
- #: nextcellent-integration.php:300 nextgen-integration.php:262
333
- #: nextgen2-integration.php:307
334
- msgid "Reset Status"
335
- msgstr ""
336
-
337
- #: aux-optimize.php:64
338
- msgid "The plugin keeps track of already optimized images to prevent re-optimization. There are %d images that have been optimized so far."
339
- msgstr ""
340
-
341
- #: aux-optimize.php:66
342
- msgid "Show Optimized Images"
343
- msgstr ""
344
-
345
- #: aux-optimize.php:74
346
- msgid "page"
347
- msgstr ""
348
-
349
- #: aux-optimize.php:74
350
- msgid "of"
351
- msgstr ""
352
-
353
- #: aux-optimize.php:254 aux-optimize.php:296 aux-optimize.php:299
354
- msgid "Unknown Savings"
355
- msgstr ""
356
-
357
- #: aux-optimize.php:319
358
- msgid "Finished importing"
359
- msgstr ""
360
-
361
- #: aux-optimize.php:336 common.php:1830 common.php:2378 common.php:2387
362
- msgid "Previously Optimized"
363
- msgstr ""
364
-
365
- #: aux-optimize.php:339 common.php:1869 common.php:2314
366
- msgid "No savings"
367
- msgstr ""
368
-
369
- #: aux-optimize.php:346 bulk.php:122 common.php:1835
370
- #: ewww-image-optimizer.php:2029
371
- msgid "License exceeded"
372
- msgstr ""
373
-
374
- #: aux-optimize.php:391
375
- msgid "Filename"
376
- msgstr ""
377
-
378
- #: aux-optimize.php:391
379
- msgid "Image Type"
380
- msgstr ""
381
-
382
- #: aux-optimize.php:391 common.php:1088 common.php:1120 common.php:2691
383
- #: common.php:2939 flag-integration.php:374 nextcellent-integration.php:173
384
- #: nextgen-integration.php:142 nextgen2-integration.php:131
385
- #: nextgen2-integration.php:134
386
- msgid "Image Optimizer"
387
- msgstr ""
388
-
389
- #: aux-optimize.php:408 common.php:2809 common.php:2863
390
- #: flag-integration.php:431 flag-integration.php:440
391
- #: nextcellent-integration.php:229 nextcellent-integration.php:238
392
- #: nextgen-integration.php:198 nextgen-integration.php:205
393
- #: nextgen2-integration.php:215
394
- msgid "Image Size: %s"
395
- msgstr ""
396
-
397
- #: aux-optimize.php:408
398
- msgid "Remove from table"
399
- msgstr ""
400
-
401
- #: aux-optimize.php:666
402
- msgid "Nothing to optimize"
403
- msgstr ""
404
-
405
- #: aux-optimize.php:695 aux-optimize.php:712 bulk.php:395 bulk.php:414
406
- #: flag-integration.php:277 flag-integration.php:296 iocli.php:210
407
- #: nextcellent-integration.php:411 nextcellent-integration.php:429
408
- #: nextgen-integration.php:358 nextgen-integration.php:375
409
- #: nextgen2-integration.php:435
410
- msgid "Optimizing"
411
- msgstr ""
412
-
413
- #: aux-optimize.php:732 bulk.php:502 mwebp.php:204
414
- #: nextcellent-integration.php:129 nextgen-integration.php:106
415
- msgid "Finished"
416
- msgstr ""
417
-
418
- #: bulk.php:11 common.php:1002 common.php:2892 common.php:2894 common.php:3159
419
- #: common.php:3161 flag-integration.php:36 flag-integration.php:41
420
- #: flag-integration.php:46 flag-integration.php:73
421
- #: nextcellent-integration.php:37 nextcellent-integration.php:269
422
- #: nextgen-integration.php:33 nextgen-integration.php:234
423
- #: nextgen2-integration.php:37 nextgen2-integration.php:272
424
- #: nextgen2-integration.php:516
425
- msgid "Bulk Optimize"
426
- msgstr ""
427
-
428
- #: bulk.php:15 flag-integration.php:78 nextcellent-integration.php:274
429
- #: nextgen-integration.php:239 nextgen2-integration.php:277
430
- msgid "Start optimizing"
431
- msgstr ""
432
-
433
- #: bulk.php:17 flag-integration.php:80 nextcellent-integration.php:276
434
- #: nextgen-integration.php:241 nextgen2-integration.php:279
435
- msgid "Resume previous bulk operation"
436
- msgstr ""
437
-
438
- #: bulk.php:23
439
- msgid "Importing"
440
- msgstr ""
441
-
442
- #: bulk.php:28 flag-integration.php:87 nextcellent-integration.php:283
443
- #: nextgen2-integration.php:286
444
- msgid "Stop Optimizing"
445
- msgstr ""
446
-
447
- #: bulk.php:32
448
- msgid "You should import Media Library images into the table to prevent duplicate optimization."
449
- msgstr ""
450
-
451
- #: bulk.php:34
452
- msgid "Import Images"
453
- msgstr ""
454
-
455
- #: bulk.php:40 flag-integration.php:91 nextgen2-integration.php:290
456
- msgid "Force re-optimize"
457
- msgstr ""
458
-
459
- #: bulk.php:41 common.php:3415 flag-integration.php:92
460
- #: nextgen2-integration.php:291
461
- msgid "Choose how long to pause between images (in seconds, 0 = disabled)"
462
- msgstr ""
463
-
464
- #: bulk.php:44
465
- msgid "Optimize Media Library"
466
- msgstr ""
467
-
468
- #: bulk.php:46 flag-integration.php:68 nextcellent-integration.php:264
469
- #: nextgen-integration.php:229 nextgen2-integration.php:266
470
- msgid "You do not appear to have uploaded any images yet."
471
- msgstr ""
472
-
473
- #: bulk.php:50
474
- msgid "%1$d images in the Media Library have been selected, unable to determine how many resizes and how many are unoptimized."
475
- msgstr ""
476
-
477
- #: bulk.php:52 iocli.php:70 iocli.php:111
478
- msgid "%1$d images in the Media Library have been selected (%2$d unoptimized), with %3$d resizes (%4$d unoptimized)."
479
- msgstr ""
480
-
481
- #: bulk.php:54 flag-integration.php:97 nextcellent-integration.php:288
482
- #: nextgen-integration.php:250 nextgen2-integration.php:296
483
- msgid "Previously optimized images will be skipped by default."
484
- msgstr ""
485
-
486
- #: bulk.php:449 common.php:1956 flag-integration.php:328 iocli.php:386
487
- #: iocli.php:430 iocli.php:510 iocli.php:582 nextcellent-integration.php:466
488
- #: nextgen-integration.php:403 nextgen2-integration.php:466
489
- msgid "Optimized image:"
490
- msgstr ""
491
-
492
- #: bulk.php:451 iocli.php:218
493
- msgid "Skipped image, ID:"
494
- msgstr ""
495
-
496
- #: bulk.php:455 flag-integration.php:329 iocli.php:222 iocli.php:431
497
- msgid "Full size – %s"
498
- msgstr ""
499
-
500
- #: bulk.php:470 common.php:1962 flag-integration.php:347 iocli.php:237
501
- #: iocli.php:392 iocli.php:449 iocli.php:527 iocli.php:592
502
- #: nextcellent-integration.php:123 nextcellent-integration.php:472
503
- #: nextgen-integration.php:100 nextgen-integration.php:413
504
- #: nextgen2-integration.php:483
505
- msgid "Elapsed: %.3f seconds"
506
- msgstr ""
507
-
508
- #: bulk.php:502
509
- msgid "Return to Media Library"
510
- msgstr ""
511
-
512
- #: common.php:711
513
- msgid "Settings saved"
514
- msgstr ""
515
-
516
- #: common.php:1004 mwebp.php:5
517
- msgid "Migrate WebP Images"
518
- msgstr ""
519
-
520
- #: common.php:1023
521
- msgid "Image Store Optimize"
522
- msgstr ""
523
-
524
- #: common.php:1023
525
- msgid "Optimize"
526
- msgstr ""
527
-
528
- #: common.php:1077
529
- msgid "Image Store Optimization"
530
- msgstr ""
531
-
532
- #: common.php:1087
533
- msgid "Choose a gallery or"
534
- msgstr ""
535
-
536
- #: common.php:1087
537
- msgid "optimize all galleries"
538
- msgstr ""
539
-
540
- #: common.php:1088
541
- msgid "Gallery ID"
542
- msgstr ""
543
-
544
- #: common.php:1088
545
- msgid "Gallery Name"
546
- msgstr ""
547
-
548
- #: common.php:1088
549
- msgid "Images"
550
- msgstr ""
551
-
552
- #: common.php:1104 common.php:1119
553
- msgid "Optimize Gallery"
554
- msgstr ""
555
-
556
- #: common.php:1120 common.php:2939
557
- msgid "Title"
558
- msgstr ""
559
-
560
- #: common.php:1120 nextgen-integration.php:14 nextgen-integration.php:274
561
- msgid "Gallery"
562
- msgstr ""
563
-
564
- #: common.php:1203
565
- msgid "Settings"
566
- msgstr ""
567
-
568
- #: flag-integration.php:231 nextcellent-integration.php:137
569
- #: nextgen-integration.php:113 nextgen2-integration.php:96
570
- msgid "You don't have permission to work with uploaded files."
571
- msgstr ""
572
-
573
- #: common.php:1358 flag-integration.php:235 nextcellent-integration.php:141
574
- #: nextgen-integration.php:117 nextgen2-integration.php:100
575
- msgid "No attachment ID was provided."
576
- msgstr ""
577
-
578
- #: common.php:1401 common.php:1436
579
- msgid "Original Restored"
580
- msgstr ""
581
-
582
- #: common.php:1657
583
- msgid "used %1$d of %2$d, usage will reset in %3$d day."
584
- msgid_plural "used %1$d of %2$d, usage will reset in %3$d days."
585
- msgstr[0] ""
586
- msgstr[1] ""
587
-
588
- #: common.php:1881
589
- msgid "Reduced by %01.1f%% (%s)"
590
- msgstr ""
591
-
592
- #: common.php:2713
593
- msgid "Cloudinary image"
594
- msgstr ""
595
-
596
- #: common.php:2737
597
- msgid "Could not retrieve file path."
598
- msgstr ""
599
-
600
- #: common.php:2758 common.php:2769 common.php:2780
601
- #: ewww-image-optimizer.php:1365 ewww-image-optimizer.php:1636
602
- #: ewww-image-optimizer.php:1640 ewww-image-optimizer.php:1922
603
- #: flag-integration.php:405 flag-integration.php:411 flag-integration.php:417
604
- #: nextcellent-integration.php:201 nextcellent-integration.php:208
605
- #: nextcellent-integration.php:215 nextgen-integration.php:170
606
- #: nextgen-integration.php:177 nextgen-integration.php:184
607
- #: nextgen2-integration.php:174 nextgen2-integration.php:181
608
- #: nextgen2-integration.php:188
609
- msgid "%s is missing"
610
- msgstr ""
611
-
612
- #: common.php:2760
613
- msgid "JPG to PNG"
614
- msgstr ""
615
-
616
- #: common.php:2762
617
- msgid "WARNING: Removes metadata. Requires GD or ImageMagick. PNG is generally much better than JPG for logos and other images with a limited range of colors."
618
- msgstr ""
619
-
620
- #: common.php:2771
621
- msgid "PNG to JPG"
622
- msgstr ""
623
-
624
- #: common.php:2773
625
- msgid "WARNING: This is not a lossless conversion and requires GD or ImageMagick. JPG is much better than PNG for photographic use because it compresses the image and discards data. Transparent images will only be converted if a background color has been set."
626
- msgstr ""
627
-
628
- #: common.php:2782
629
- msgid "GIF to PNG"
630
- msgstr ""
631
-
632
- #: common.php:2784
633
- msgid "PNG is generally better than GIF, but does not support animation. Animated images will not be converted."
634
- msgstr ""
635
-
636
- #: common.php:2789 flag-integration.php:425 nextcellent-integration.php:223
637
- #: nextgen-integration.php:192 nextgen2-integration.php:196
638
- msgid "Unsupported file type"
639
- msgstr ""
640
-
641
- #: common.php:2814 flag-integration.php:435 nextcellent-integration.php:233
642
- #: nextgen-integration.php:201 nextgen2-integration.php:235
643
- msgid "Re-optimize"
644
- msgstr ""
645
-
646
- #: common.php:2841
647
- msgid "Restore original"
648
- msgstr ""
649
-
650
- #: common.php:2861 flag-integration.php:439 nextcellent-integration.php:237
651
- #: nextgen-integration.php:204 nextgen2-integration.php:209
652
- msgid "Not processed"
653
- msgstr ""
654
-
655
- #: common.php:2800 common.php:2866 flag-integration.php:444
656
- #: nextcellent-integration.php:242 nextgen-integration.php:208
657
- #: nextgen2-integration.php:239
658
- msgid "Optimize now!"
659
- msgstr ""
660
-
661
- #: common.php:3059
662
- msgid "Insertion successful"
663
- msgstr ""
664
-
665
- #: common.php:3061
666
- msgid "Insertion failed"
667
- msgstr ""
668
-
669
- #: common.php:3127
670
- msgid "Pngout was successfully installed, check the Plugin Status area for version information."
671
- msgstr ""
672
-
673
- #: common.php:3132
674
- msgid "Pngout was not installed: %1$s. Make sure this folder is writable: %2$s"
675
- msgstr ""
676
-
677
- #: common.php:3154
678
- msgid "Plugin Home Page"
679
- msgstr ""
680
-
681
- #: common.php:3155 ewww-image-optimizer.php:410 ewww-image-optimizer.php:536
682
- msgid "Installation Instructions"
683
- msgstr ""
684
-
685
- #: common.php:3156
686
- msgid "Plugin Support"
687
- msgstr ""
688
-
689
- #: common.php:3157
690
- msgid "Cloud Status"
691
- msgstr ""
692
-
693
- #: common.php:3159
694
- msgid "Media Library"
695
- msgstr ""
696
-
697
- #: common.php:3163
698
- msgid "New images uploaded to the Media Library will be optimized automatically. If you have existing images you would like to optimize, you can use the %s tool."
699
- msgstr ""
700
-
701
- #: common.php:3171
702
- msgid "Plugin Status"
703
- msgstr ""
704
-
705
- #: common.php:3172
706
- msgid "All Clear"
707
- msgstr ""
708
-
709
- #: common.php:3173
710
- msgid "Requires Attention"
711
- msgstr ""
712
-
713
- #: common.php:3176
714
- msgid "Total Savings:"
715
- msgstr ""
716
-
717
- #: common.php:3178 common.php:3391
718
- msgid "Cloud optimization API Key"
719
- msgstr ""
720
-
721
- #: common.php:3181 common.php:3183
722
- msgid "Verified,"
723
- msgstr ""
724
-
725
- #: common.php:3185
726
- msgid "Not Verified"
727
- msgstr ""
728
-
729
- #: common.php:3197
730
- msgid "If updated versions are available below you may either download the newer versions and install them yourself, or uncheck \"Use System Paths\" and use the bundled tools."
731
- msgstr ""
732
-
733
- #: common.php:3198 common.php:3201
734
- msgid "Updates are optional, but may contain increased optimization or security patches"
735
- msgstr ""
736
-
737
- #: common.php:3200
738
- msgid "If updated versions are available below, you may need to enable write permission on the %s folder to use the automatic installs."
739
- msgstr ""
740
-
741
- #: common.php:3211 common.php:3221 common.php:3231 common.php:3241
742
- #: common.php:3251 common.php:3261 common.php:3285 common.php:3293
743
- #: common.php:3301 common.php:3309 common.php:3323 common.php:3329
744
- #: common.php:3337
745
- msgid "Installed"
746
- msgstr ""
747
-
748
- #: common.php:3211 common.php:3221 common.php:3231 common.php:3241
749
- #: common.php:3251 common.php:3261
750
- msgid "version"
751
- msgstr ""
752
-
753
- #: common.php:3213 common.php:3223 common.php:3233 common.php:3243
754
- #: common.php:3253 common.php:3263 common.php:3288 common.php:3296
755
- #: common.php:3304 common.php:3312 common.php:3326 common.php:3334
756
- #: common.php:3340
757
- msgid "Missing"
758
- msgstr ""
759
-
760
- #: common.php:3243
761
- msgid "Install"
762
- msgstr ""
763
-
764
- #: common.php:3243
765
- msgid "automatically"
766
- msgstr ""
767
-
768
- #: common.php:3243
769
- msgid "manually"
770
- msgstr ""
771
-
772
- #: common.php:3243
773
- msgid "Pngout is free closed-source software that can produce drastically reduced filesizes for PNGs, but can be very time consuming to process images"
774
- msgstr ""
775
-
776
- #: common.php:3269
777
- msgid "On"
778
- msgstr ""
779
-
780
- #: common.php:3272
781
- msgid "Off"
782
- msgstr ""
783
-
784
- #: common.php:3275
785
- msgid "Disabled"
786
- msgstr ""
787
-
788
- #: common.php:3278
789
- msgid "Enabled"
790
- msgstr ""
791
-
792
- #: common.php:3281
793
- msgid "%s only need one, used for conversion, not optimization"
794
- msgstr ""
795
-
796
- #: common.php:3281
797
- msgid "Graphics libraries"
798
- msgstr ""
799
-
800
- #: common.php:3319
801
- msgid "Only need one of these:"
802
- msgstr ""
803
-
804
- #: common.php:3344 common.php:3348 common.php:3351
805
- msgid "command not found on your system"
806
- msgstr ""
807
-
808
- #: common.php:3348
809
- msgid "not required"
810
- msgstr ""
811
-
812
- #: common.php:3351
813
- msgid "required for automatic pngout installer"
814
- msgstr ""
815
-
816
- #: common.php:3375
817
- msgid "Cloud Settings"
818
- msgstr ""
819
-
820
- #: common.php:3376
821
- msgid "Basic Settings"
822
- msgstr ""
823
-
824
- #: common.php:3377
825
- msgid "Advanced Settings"
826
- msgstr ""
827
-
828
- #: common.php:3378
829
- msgid "Conversion Settings"
830
- msgstr ""
831
-
832
- #: common.php:3389
833
- msgid "If exec() is disabled for security reasons (and enabling it is not an option), or you would like to offload image optimization to a third-party server, you may purchase an API key for our cloud optimization service. The API key should be entered below, and cloud optimization must be enabled for each image format individually."
834
- msgstr ""
835
-
836
- #: common.php:3389 common.php:3391 common.php:3410 common.php:3413
837
- msgid "Purchase an API key."
838
- msgstr ""
839
-
840
- #: common.php:3391
841
- msgid "API Key will be validated when you save your settings."
842
- msgstr ""
843
-
844
- #: common.php:3392
845
- msgid "JPG cloud optimization"
846
- msgstr ""
847
-
848
- #: common.php:3394
849
- msgid "PNG cloud optimization"
850
- msgstr ""
851
-
852
- #: common.php:3396
853
- msgid "extra PNG compression (slower)"
854
- msgstr ""
855
-
856
- #: common.php:3398
857
- msgid "GIF cloud optimization"
858
- msgstr ""
859
-
860
- #: common.php:3405
861
- msgid "Debugging"
862
- msgstr ""
863
-
864
- #: common.php:3405
865
- msgid "Use this to provide information for support purposes, or if you feel comfortable digging around in the code to fix a problem you are experiencing."
866
- msgstr ""
867
-
868
- #: common.php:3406
869
- msgid "Remove metadata"
870
- msgstr ""
871
-
872
- #: common.php:3407
873
- msgid "This will remove ALL metadata: EXIF and comments."
874
- msgstr ""
875
-
876
- #: common.php:3409
877
- msgid "Lossy JPG optimization"
878
- msgstr ""
879
-
880
- #: common.php:3409 common.php:3412 common.php:3509 common.php:3515
881
- #: common.php:3518
882
- msgid "WARNING:"
883
- msgstr ""
884
-
885
- #: common.php:3409 common.php:3412
886
- msgid "While most users will not notice a difference in image quality, lossy means there IS a loss in image quality."
887
- msgstr ""
888
-
889
- #: common.php:3412
890
- msgid "Lossy PNG optimization"
891
- msgstr ""
892
-
893
- #: common.php:3415
894
- msgid "Bulk Delay"
895
- msgstr ""
896
-
897
- #: common.php:3418
898
- msgid "Automatic Cloudinary upload"
899
- msgstr ""
900
-
901
- #: common.php:3418
902
- msgid "When enabled, uploads to the Media Library will be transferred to Cloudinary after optimization. Cloudinary generates resizes, so only the full-size image is uploaded."
903
- msgstr ""
904
-
905
- #: common.php:3428
906
- msgid "optipng optimization level"
907
- msgstr ""
908
-
909
- #: common.php:3430 common.php:3431 common.php:3432 common.php:3433
910
- #: common.php:3434 common.php:3435 common.php:3436 common.php:3442
911
- #: common.php:3443 common.php:3444 common.php:3445
912
- msgid "Level %d"
913
- msgstr ""
914
-
915
- #: common.php:3430
916
- msgid "%d trial"
917
- msgstr ""
918
-
919
- #: common.php:3431 common.php:3432 common.php:3433 common.php:3434
920
- #: common.php:3435 common.php:3436
921
- msgid "%d trials"
922
- msgstr ""
923
-
924
- #: common.php:3437 common.php:3446
925
- msgid "default"
926
- msgstr ""
927
-
928
- #: common.php:3438
929
- msgid "According to the author of optipng, 10 trials should satisfy most people, 30 trials should satisfy everyone."
930
- msgstr ""
931
-
932
- #: common.php:3440
933
- msgid "pngout optimization level"
934
- msgstr ""
935
-
936
- #: common.php:3442
937
- msgid "Xtreme! (Slowest)"
938
- msgstr ""
939
-
940
- #: common.php:3443
941
- msgid "Intense (Slow)"
942
- msgstr ""
943
-
944
- #: common.php:3444
945
- msgid "Longest Match (Fast)"
946
- msgstr ""
947
-
948
- #: common.php:3445
949
- msgid "Huffman Only (Faster)"
950
- msgstr ""
951
-
952
- #: common.php:3447
953
- msgid "If you have CPU cycles to spare, go with level %d"
954
- msgstr ""
955
-
956
- #: common.php:3450
957
- msgid "Scheduled optimization"
958
- msgstr ""
959
-
960
- #: common.php:3450
961
- msgid "This will enable scheduled optimization of unoptimized images for your theme, buddypress, and any additional folders you have configured below. Runs hourly: wp_cron only runs when your site is visited, so it may be even longer between optimizations."
962
- msgstr ""
963
-
964
- #: common.php:3452
965
- msgid "Folders to optimize"
966
- msgstr ""
967
-
968
- #: common.php:3452
969
- msgid "One path per line, must be within %s. Use full paths, not relative paths."
970
- msgstr ""
971
-
972
- #: common.php:3483
973
- msgid "Skip Small Images"
974
- msgstr ""
975
-
976
- #: common.php:3483
977
- msgid "Do not optimize images smaller than this (in bytes)"
978
- msgstr ""
979
-
980
- #: common.php:3485
981
- msgid "Skip Large PNG Images"
982
- msgstr ""
983
-
984
- #: common.php:3485
985
- msgid "Do not optimize PNG images larger than this (in bytes)"
986
- msgstr ""
987
-
988
- #: common.php:3487
989
- msgid "Exclude full-size images from lossy optimization"
990
- msgstr ""
991
-
992
- #: common.php:3491 ewww-image-optimizer.php:410
993
- msgid "Use System Paths"
994
- msgstr ""
995
-
996
- #: common.php:3491
997
- msgid "If you have already installed the utilities in a system location, such as %s or %s, use this to force the plugin to use those versions and skip the auto-installers."
998
- msgstr ""
999
-
1000
- #: common.php:3493 common.php:3495 common.php:3497 common.php:3499
1001
- msgid "disable"
1002
- msgstr ""
1003
-
1004
- #: common.php:3503
1005
- msgid "Conversion is only available for images in the Media Library (except WebP). By default, all images have a link available in the Media Library for one-time conversion. Turning on individual conversion operations below will enable conversion filters any time an image is uploaded or modified."
1006
- msgstr ""
1007
-
1008
- #: common.php:3504
1009
- msgid "NOTE:"
1010
- msgstr ""
1011
-
1012
- #: common.php:3504
1013
- msgid "The plugin will attempt to update image locations for any posts that contain the images. You may still need to manually update locations/urls for converted images."
1014
- msgstr ""
1015
-
1016
- #: common.php:3507
1017
- msgid "Hide Conversion Links"
1018
- msgstr ""
1019
-
1020
- #: common.php:3507
1021
- msgid "Site or Network admins can use this to prevent other users from using the conversion links in the Media Library which bypass the settings below."
1022
- msgstr ""
1023
-
1024
- #: common.php:3508
1025
- msgid "Delete originals"
1026
- msgstr ""
1027
-
1028
- #: common.php:3508
1029
- msgid "This will remove the original image from the server after a successful conversion."
1030
- msgstr ""
1031
-
1032
- #: common.php:3509
1033
- msgid "JPG/PNG to WebP"
1034
- msgstr ""
1035
-
1036
- #: common.php:3509
1037
- msgid "JPG to WebP conversion is lossy, but quality loss is minimal. PNG to WebP conversion is lossless."
1038
- msgstr ""
1039
-
1040
- #: common.php:3510
1041
- msgid "Originals are never deleted, and WebP images should only be served to supported browsers."
1042
- msgstr ""
1043
-
1044
- #: common.php:3510
1045
- msgid "You can use the rewrite rules below to serve WebP images with Apache."
1046
- msgstr ""
1047
-
1048
- #: common.php:3515 common.php:3518 common.php:3525
1049
- msgid "enable %s to %s conversion"
1050
- msgstr ""
1051
-
1052
- #: common.php:3515
1053
- msgid "Removes metadata and increases cpu usage dramatically."
1054
- msgstr ""
1055
-
1056
- #: common.php:3516
1057
- msgid "PNG is generally much better than JPG for logos and other images with a limited range of colors. Checking this option will slow down JPG processing significantly, and you may want to enable it only temporarily."
1058
- msgstr ""
1059
-
1060
- #: common.php:3518
1061
- msgid "This is not a lossless conversion."
1062
- msgstr ""
1063
-
1064
- #: common.php:3519
1065
- msgid "JPG is generally much better than PNG for photographic use because it compresses the image and discards data. PNGs with transparency are not converted by default."
1066
- msgstr ""
1067
-
1068
- #: common.php:3520
1069
- msgid "JPG background color:"
1070
- msgstr ""
1071
-
1072
- #: common.php:3520
1073
- msgid "HEX format (#123def)"
1074
- msgstr ""
1075
-
1076
- #: common.php:3521
1077
- msgid "Background color is used only if the PNG has transparency. Leave this value blank to skip PNGs with transparency."
1078
- msgstr ""
1079
-
1080
- #: common.php:3522
1081
- msgid "JPG quality level:"
1082
- msgstr ""
1083
-
1084
- #: common.php:3522
1085
- msgid "Valid values are 1-100."
1086
- msgstr ""
1087
-
1088
- #: common.php:3523
1089
- msgid "If JPG quality is blank, the plugin will attempt to set the optimal quality level or default to 92. Remember, this is a lossy conversion, so you are losing pixels, and it is not recommended to actually set the level here unless you want noticable loss of image quality."
1090
- msgstr ""
1091
-
1092
- #: common.php:3525
1093
- msgid "No warnings here, just do it."
1094
- msgstr ""
1095
-
1096
- #: common.php:3526
1097
- msgid "PNG is generally better than GIF, but animated images cannot be converted."
1098
- msgstr ""
1099
-
1100
- #: common.php:3529
1101
- msgid "Save Changes"
1102
- msgstr ""
1103
-
1104
- #: common.php:3533
1105
- msgid "There are many ways to serve WebP images to visitors with supported browsers. You may choose any you wish, but it is recommended to serve them with an .htaccess file using mod_rewrite and mod_headers. The plugin can insert the rules for you if the file is writable, or you can edit .htaccess yourself."
1106
- msgstr ""
1107
-
1108
- #: common.php:3536
1109
- msgid "Rules verified successfully"
1110
- msgstr ""
1111
-
1112
- #: common.php:3552
1113
- msgid "The image to the right will display a WebP image with WEBP in white text, if your site is serving WebP images and your browser supports WebP."
1114
- msgstr ""
1115
-
1116
- #: common.php:3553
1117
- msgid "Insert Rewrite Rules"
1118
- msgstr ""
1119
-
1120
- #: ewww-image-optimizer.php:146
1121
- msgid "EWWW Image Optimizer is supported on Linux, FreeBSD, Mac OSX, and Windows"
1122
- msgstr ""
1123
-
1124
- #: ewww-image-optimizer.php:146
1125
- msgid "Unfortunately, the EWWW Image Optimizer plugin does not work with %s"
1126
- msgstr ""
1127
-
1128
- #: ewww-image-optimizer.php:248
1129
- msgid "EWWW Image Optimizer could not create the tool folder"
1130
- msgstr ""
1131
-
1132
- #: ewww-image-optimizer.php:248
1133
- msgid "Please adjust permissions or create the folder"
1134
- msgstr ""
1135
-
1136
- #: ewww-image-optimizer.php:410
1137
- msgid "EWWW Image Optimizer could not install tools in %s"
1138
- msgstr ""
1139
-
1140
- #: ewww-image-optimizer.php:410
1141
- msgid "Please adjust permissions or create the folder. If you have installed the tools elsewhere on your system, check the option to %s."
1142
- msgstr ""
1143
-
1144
- #: ewww-image-optimizer.php:410
1145
- msgid "For more details, visit the %1$s or the %2$s."
1146
- msgstr ""
1147
-
1148
- #: ewww-image-optimizer.php:410 ewww-image-optimizer.php:536
1149
- msgid "Settings Page"
1150
- msgstr ""
1151
-
1152
- #: ewww-image-optimizer.php:422
1153
- msgid "EWWW Image Optimizer requires exec(). Your system administrator has disabled this function."
1154
- msgstr ""
1155
-
1156
- #: ewww-image-optimizer.php:430
1157
- msgid "Safe Mode is turned on for PHP. This plugin cannot operate in Safe Mode."
1158
- msgstr ""
1159
-
1160
- #: ewww-image-optimizer.php:536
1161
- msgid "EWWW Image Optimizer uses %1$s, %2$s, %3$s, %4$s, %5$s, and %6$s. You are missing: %7$s. Please install via the %8$s or the %9$s."
1162
- msgstr ""
1163
-
1164
- #: ewww-image-optimizer.php:1170 ewww-image-optimizer.php:1295
1165
- #: ewww-image-optimizer.php:1302
1166
- msgid "Optimization skipped"
1167
- msgstr ""
1168
-
1169
- #: ewww-image-optimizer.php:1210
1170
- msgid "Missing finfo_file(), getimagesize() and mime_content_type() PHP functions"
1171
- msgstr ""
1172
-
1173
- #: ewww-image-optimizer.php:1361 ewww-image-optimizer.php:1918
1174
- msgid "%s is disabled"
1175
- msgstr ""
1176
-
1177
- #: ewww-image-optimizer.php:1404
1178
- msgid "Unable to write file"
1179
- msgstr ""
1180
-
1181
- #: ewww-image-optimizer.php:1407
1182
- msgid "Optimization failed"
1183
- msgstr ""
1184
-
1185
- #: ewww-image-optimizer.php:1632
1186
- msgid "png tools are disabled"
1187
- msgstr ""
1188
-
1189
- #: ewww-image-optimizer.php:2077
1190
- msgid "You don't have permission to install image optimizer utilities."
1191
- msgstr ""
1192
-
1193
- #: ewww-image-optimizer.php:2083
1194
- msgid "tar command not found"
1195
- msgstr ""
1196
-
1197
- #: ewww-image-optimizer.php:2102 ewww-image-optimizer.php:2121
1198
- #: ewww-image-optimizer.php:2139
1199
- msgid "could not move pngout"
1200
- msgstr ""
1201
-
1202
- #: ewww-image-optimizer.php:2105 ewww-image-optimizer.php:2124
1203
- msgid "could not set permissions"
1204
- msgstr ""
1205
-
1206
- #: flag-integration.php:96 iocli.php:75 iocli.php:83 iocli.php:125
1207
- #: iocli.php:147 nextgen2-integration.php:295
1208
- msgid "%1$d images have been selected (%2$d unoptimized), with %3$d resizes (%4$d unoptimized)."
1209
- msgstr ""
1210
-
1211
- #: flag-integration.php:335 iocli.php:437
1212
- msgid "Optimized size – %s"
1213
- msgstr ""
1214
-
1215
- #: flag-integration.php:342 iocli.php:444 nextcellent-integration.php:120
1216
- #: nextgen-integration.php:97
1217
- msgid "Thumbnail – %s"
1218
- msgstr ""
1219
-
1220
- #: flag-integration.php:368 iocli.php:251 iocli.php:400 iocli.php:462
1221
- #: iocli.php:541 iocli.php:605 nextcellent-integration.php:493
1222
- #: nextgen-integration.php:433 nextgen2-integration.php:504
1223
- msgid "Finished Optimization!"
1224
- msgstr ""
1225
-
1226
- #: mwebp.php:6
1227
- msgid "The migration is split into two parts. First, the plugin needs to scan all folders for webp images. Once it has obtained the list of images to rename, it will proceed with the renaming"
1228
- msgstr ""
1229
-
1230
- #: mwebp.php:7
1231
- msgid "Start Migration"
1232
- msgstr ""
1233
-
1234
- #: mwebp.php:93
1235
- msgid "Scanning"
1236
- msgstr ""
1237
-
1238
- #: mwebp.php:114
1239
- msgid "%d Webp images left to rename."
1240
- msgstr ""
1241
-
1242
- #: mwebp.php:200
1243
- msgid "Skipped:"
1244
- msgstr ""
1245
-
1246
- #: nextcellent-integration.php:38 nextcellent-integration.php:97
1247
- #: nextgen-integration.php:34 nextgen-integration.php:74
1248
- #: nextgen2-integration.php:38
1249
- msgid "Bulk Thumbnail Optimize"
1250
- msgstr ""
1251
-
1252
- #: nextcellent-integration.php:86 nextgen-integration.php:60
1253
- msgid "The thumbnails for your new images have not been optimized."
1254
- msgstr ""
1255
-
1256
- #: nextcellent-integration.php:86 nextgen-integration.php:64
1257
- msgid "Optimize Thumbs"
1258
- msgstr ""
1259
-
1260
- #: nextcellent-integration.php:110 nextgen-integration.php:87
1261
- msgid "Processing"
1262
- msgstr ""
1263
-
1264
- #: common.php:2928 iocli.php:78 iocli.php:131 nextcellent-integration.php:287
1265
- #: nextgen-integration.php:249
1266
- msgid "We have %d images to optimize."
1267
- msgstr ""
1268
-
1269
- #: nextcellent-integration.php:318
1270
- msgid "Galleries"
1271
- msgstr ""
1272
-
1273
- #: iocli.php:516 iocli.php:583 nextcellent-integration.php:467
1274
- #: nextgen-integration.php:404 nextgen2-integration.php:472
1275
- msgid "Full size - %s"
1276
- msgstr ""
1277
-
1278
- #: iocli.php:519 iocli.php:589 nextcellent-integration.php:469
1279
- #: nextgen-integration.php:410 nextgen2-integration.php:475
1280
- msgid "Thumbnail - %s"
1281
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/ewww-image-optimizer-id_ID.mo DELETED
Binary file
languages/ewww-image-optimizer-id_ID.po DELETED
@@ -1,1281 +0,0 @@
1
- # Translation of EWWW Image Optimizer in Indonesian
2
- # This file is distributed under the same license as the EWWW Image Optimizer package.
3
- msgid ""
4
- msgstr ""
5
- "PO-Revision-Date: 2015-09-01 15:24:46+0000\n"
6
- "MIME-Version: 1.0\n"
7
- "Content-Type: text/plain; charset=UTF-8\n"
8
- "Content-Transfer-Encoding: 8bit\n"
9
- "Plural-Forms: nplurals=2; plural=n > 1;\n"
10
- "X-Generator: GlotPress/1.0-alpha-1000\n"
11
- "Project-Id-Version: EWWW Image Optimizer\n"
12
-
13
- #: aux-optimize.php:97 aux-optimize.php:134 aux-optimize.php:383
14
- #: aux-optimize.php:422 bulk.php:405 bulk.php:429 bulk.php:496 common.php:1922
15
- #: flag-integration.php:285 flag-integration.php:306 flag-integration.php:362
16
- #: mwebp.php:102 mwebp.php:193 nextcellent-integration.php:419
17
- #: nextcellent-integration.php:439 nextcellent-integration.php:487
18
- #: nextgen-integration.php:365 nextgen-integration.php:382
19
- #: nextgen-integration.php:427 nextgen2-integration.php:422
20
- #: nextgen2-integration.php:445 nextgen2-integration.php:498
21
- msgid "Access token has expired, please reload the page."
22
- msgstr ""
23
-
24
- #: aux-optimize.php:684 aux-optimize.php:707 aux-optimize.php:723 bulk.php:388
25
- #: common.php:3055 flag-integration.php:271 mwebp.php:84
26
- #: nextcellent-integration.php:94 nextcellent-integration.php:405
27
- #: nextgen-integration.php:71 nextgen-integration.php:352
28
- #: nextgen2-integration.php:408
29
- msgid "Access denied."
30
- msgstr ""
31
-
32
- #: ewww-image-optimizer.php:152
33
- msgid "The regular version of the EWWW Image Optimizer plugin is not permitted on WP Engine sites. However, the cloud version has been approved by WP Engine. Please deactivate EWWW Image Optimizer and install EWWW Image Optimizer Cloud to optimize your images."
34
- msgstr ""
35
-
36
- #: common.php:3575
37
- msgctxt "abbreviation for Virtual Private Server"
38
- msgid "VPS:"
39
- msgstr ""
40
-
41
- #: common.php:3581
42
- msgctxt "abbreviation for Content Delivery Network"
43
- msgid "CDN:"
44
- msgstr ""
45
-
46
- #: common.php:3563
47
- msgid "Help translate EWWW I.O."
48
- msgstr "Bantu menerjemahkan EWWW I.O."
49
-
50
- #: common.php:3564
51
- msgid "Write a review."
52
- msgstr "Tulis ulasan."
53
-
54
- #: common.php:3569
55
- msgctxt "A2 Hosting:"
56
- msgid "with automatic EWWW IO setup"
57
- msgstr ""
58
-
59
- #: common.php:3561
60
- msgid "Support EWWW I.O."
61
- msgstr "Dukung EWWW I.O."
62
-
63
- #: common.php:3562
64
- msgid "Would you like to help support development of this plugin?"
65
- msgstr "Maukah Anda mendukung pengembangan plugin ini?"
66
-
67
- #: common.php:3565
68
- msgid "Contribute directly via %s."
69
- msgstr "Berkontribusi secara langsung melalui %s."
70
-
71
- #: common.php:3567
72
- msgid "Use any of these referral links to show your appreciation:"
73
- msgstr ""
74
-
75
- #: common.php:3568
76
- msgid "Web Hosting:"
77
- msgstr "Web Hosting:"
78
-
79
- #: common.php:3581
80
- msgid "Add MaxCDN to increase website speeds dramatically! Sign Up Now and Save 25%."
81
- msgstr "Tambahkan MaxCDN untuk meningkatkan kecepatan situs secara dramatis! Daftar Sekarang dan Hemat 25%."
82
-
83
- #: common.php:3581
84
- msgid "Integrate MaxCDN within Wordpress using the W3 Total Cache plugin."
85
- msgstr ""
86
-
87
- #: common.php:3603
88
- msgid "Debugging Information"
89
- msgstr ""
90
-
91
- #: common.php:3603
92
- msgid "Select All"
93
- msgstr "Pilih Semua"
94
-
95
- #: ewww-image-optimizer.php:2109 ewww-image-optimizer.php:2128
96
- msgid "extraction of files failed"
97
- msgstr ""
98
-
99
- #: common.php:2717
100
- msgid "Azure Storage image"
101
- msgstr ""
102
-
103
- #: common.php:2721
104
- msgid "Amazon S3 image"
105
- msgstr "Gambar Amazon S3"
106
-
107
- #: common.php:3462
108
- msgid "Deferred Optimization"
109
- msgstr ""
110
-
111
- #: common.php:3462
112
- msgid "Optimize images later via wp_cron, after image upload or generation is complete."
113
- msgstr ""
114
-
115
- #: ewww-image-optimizer.php:1181
116
- msgid "Could not find %s"
117
- msgstr "Tidak bisa menemukan %s"
118
-
119
- #: ewww-image-optimizer.php:1189
120
- msgid "%s is not writable"
121
- msgstr ""
122
-
123
- #: bulk.php:356
124
- msgid "Operation timed out, you may need to increase the max_execution_time for PHP"
125
- msgstr ""
126
-
127
- #: bulk.php:357 flag-integration.php:186 nextcellent-integration.php:392
128
- #: nextgen-integration.php:340 nextgen2-integration.php:395
129
- msgid "License Exceeded"
130
- msgstr ""
131
-
132
- #: bulk.php:358 flag-integration.php:187 nextcellent-integration.php:393
133
- #: nextgen-integration.php:341 nextgen2-integration.php:396
134
- msgid "Optimization stopped, reload page to resume."
135
- msgstr ""
136
-
137
- #: bulk.php:359 flag-integration.php:188 nextcellent-integration.php:394
138
- #: nextgen-integration.php:342 nextgen2-integration.php:397
139
- msgid "Operation Interrupted"
140
- msgstr ""
141
-
142
- #: bulk.php:360 flag-integration.php:189 nextcellent-integration.php:395
143
- #: nextgen-integration.php:343 nextgen2-integration.php:398
144
- msgid "Temporary failure, seconds left to retry:"
145
- msgstr ""
146
-
147
- #: bulk.php:361 flag-integration.php:190 nextcellent-integration.php:396
148
- #: nextgen-integration.php:344 nextgen2-integration.php:399
149
- msgid "Could not remove image from table."
150
- msgstr "Tidak bisa menghapus gambar dari tabel."
151
-
152
- #: common.php:3170
153
- msgid "Click to toggle"
154
- msgstr ""
155
-
156
- #: common.php:3467
157
- msgid "Disable Resizes"
158
- msgstr ""
159
-
160
- #: common.php:3467
161
- msgid "Wordpress, your theme, and other plugins generate various image sizes. You may disable optimization for certain sizes, or completely prevent those sizes from being created."
162
- msgstr ""
163
-
164
- #: common.php:3471
165
- msgid "Disable Optimization"
166
- msgstr ""
167
-
168
- #: common.php:3471
169
- msgid "Disable Creation"
170
- msgstr ""
171
-
172
- #: common.php:1353
173
- msgid "You don't have permission to optimize images."
174
- msgstr "Anda tidak memiliki otorisasi untuk mengoptimalkan gambar."
175
-
176
- #: common.php:3400
177
- msgid "Faster lossy optimization"
178
- msgstr "Pengoptimalan lossy yang lebih cepat"
179
-
180
- #: common.php:3400
181
- msgid "Speed up the lossy operations by performing less compression."
182
- msgstr "Percepat operasi lossy dengan melakukan lebih sedikit kompresi."
183
-
184
- #: common.php:3410
185
- msgid "Requires an EWWW Image Optimizer Cloud Subscription."
186
- msgstr "Memerlukan langganan EWWW Image Optimizer Cloud."
187
-
188
- #: common.php:3413
189
- msgid "Uses pngquant locally. Use EWWW I.O. Cloud for even better lossy compression."
190
- msgstr "Menggunakan pngquant secara lokal. Gunakan EWWW I.O. Cloud untuk mendapatkan kompresi lossy yang lebih baik."
191
-
192
- #: common.php:3512
193
- msgid "Uses output buffering and libxml functionality from PHP. Use this if the Apache rewrite rules do not work, or if your images are served from a CDN."
194
- msgstr "Menggunakan penyanggaan output dan fungsionalitas libxml dari PHP. Gunakan ini jika aturan penulisan ulang Apache tidak berfungsi, atau jika gambar Anda disajikan dari CDN."
195
-
196
- #: common.php:1653
197
- msgid "optimized %1$d images, usage will reset in %2$d day."
198
- msgid_plural "optimized %1$d images, usage will reset in %2$d days."
199
- msgstr[0] "%1$d gambar telah dioptimalkan, penggunaan akan di-reset dalam %2$d hari."
200
- msgstr[1] "%1$d gambar telah dioptimalkan, penggunaan akan di-reset dalam %2$d hari."
201
-
202
- #: common.php:1655
203
- msgid "%1$d image credit remaining."
204
- msgid_plural "%1$d image credits remaining."
205
- msgstr[0] "%1$d kredit gambar tersisa."
206
- msgstr[1] "%1$d kredit gambar tersisa."
207
-
208
- #: common.php:3465
209
- msgid "Include Media Library Folders"
210
- msgstr "Sertakan folder Media Library"
211
-
212
- #: common.php:3465
213
- msgid "If you have disabled automatic optimization, enable this if you want Scheduled Optimization to include the latest two folders from the Media Library."
214
- msgstr "Jika Anda telah menonaktifkan pengoptimalan otomatis, aktifkan ini jika Anda ingin Pengoptimalan Terjadwal untuk menyertakan dua folder terbaru dari Media Library."
215
-
216
- #: common.php:3512
217
- msgid "Alternative WebP Rewriting"
218
- msgstr "Penulisan ulang WebP alternatif"
219
-
220
- #: bulk.php:355
221
- msgid "%d images"
222
- msgstr "%d gambar"
223
-
224
- #: common.php:3454
225
- msgid "Provide paths containing images to be optimized using \"Scan and Optimize\" on the Bulk Optimize page or by Scheduled Optimization."
226
- msgstr "Sediakan jalur yang berisikan gambar yang akan dioptimalkan menggunakan \"Pindai dan Optimalkan\" pada halaman Pengoptimalan Gabungan atau dengan Pengoptimalan Terjadwal."
227
-
228
- #: iocli.php:55
229
- msgctxt "string will be something like \"media\" or \"nextgen\""
230
- msgid "Optimizing %1$s with a %2$d second pause between images."
231
- msgstr "Mengoptimalkan %1$s dengan %2$d detik jeda antara gambar."
232
-
233
- #: iocli.php:52
234
- msgid "Forcing re-optimization of previously processed images."
235
- msgstr "Memaksakan pengoptimalan ulang untuk gambar yang telah diproses."
236
-
237
- #: iocli.php:66 iocli.php:107 iocli.php:118 iocli.php:142 iocli.php:157
238
- msgid "Bulk status has been reset, starting from the beginning."
239
- msgstr ""
240
-
241
- #: iocli.php:172
242
- msgid "Bulk status has been reset, the next bulk operation will start from the beginning."
243
- msgstr ""
244
-
245
- #: iocli.php:174
246
- msgid "Please specify a valid library option, see \"wp-cli help ewwwio optimize\" for more information."
247
- msgstr ""
248
-
249
- #: common.php:1003 common.php:2927
250
- msgid "Unoptimized Images"
251
- msgstr "Gambar Belum Dioptimisasi"
252
-
253
- #: common.php:2934
254
- msgid "Optimize All Images"
255
- msgstr "Optimisasi Semua Gambar"
256
-
257
- #: common.php:2953
258
- msgid "There are too many images to display."
259
- msgstr "Terlalu banyak gambar untuk ditampilkan."
260
-
261
- #: iocli.php:87 iocli.php:162
262
- msgid "%1$d images in other folders need optimizing."
263
- msgstr ""
264
-
265
- #: iocli.php:136
266
- msgid "NextGEN/Nextcellent not installed."
267
- msgstr ""
268
-
269
- #: iocli.php:151
270
- msgid "Grand Flagallery not installed."
271
- msgstr "Grand Flagallery tidak terpasang."
272
-
273
- #: common.php:3463
274
- msgid "Disable Automatic Optimization"
275
- msgstr ""
276
-
277
- #: common.php:3463
278
- msgid "Images will not be optimized on upload. Images may be optimized with the Bulk Optimize tools or with Scheduled optimization."
279
- msgstr ""
280
-
281
- #: common.php:3489
282
- msgid "Exclude full-size images from metadata removal"
283
- msgstr ""
284
-
285
- #: aux-optimize.php:9
286
- msgid "Scan and optimize"
287
- msgstr ""
288
-
289
- #: aux-optimize.php:11
290
- msgid "Resume previous optimization"
291
- msgstr ""
292
-
293
- #: aux-optimize.php:29
294
- msgid "Optimize Everything Else"
295
- msgstr ""
296
-
297
- #: aux-optimize.php:30
298
- msgid "Use this tool to optimize images outside of the Media Library and galleries where we have full integration. Examples: theme images, BuddyPress, WP Symposium, and any folders that you have specified on the settings page."
299
- msgstr ""
300
-
301
- #: aux-optimize.php:32
302
- msgid "The database schema has changed, you need to convert to the new format."
303
- msgstr ""
304
-
305
- #: aux-optimize.php:36
306
- msgid "Convert Table"
307
- msgstr ""
308
-
309
- #: aux-optimize.php:39
310
- msgid "There are no images to optimize."
311
- msgstr ""
312
-
313
- #: aux-optimize.php:40 iocli.php:68 iocli.php:159
314
- msgid "Scanning, this could take a while"
315
- msgstr ""
316
-
317
- #: aux-optimize.php:42
318
- msgid "Last optimization was completed on %1$s at %2$s and optimized %3$d images"
319
- msgstr ""
320
-
321
- #: aux-optimize.php:46 bulk.php:57
322
- msgid "Optimize Again"
323
- msgstr "Optimalkan Lagi"
324
-
325
- #: aux-optimize.php:51 bulk.php:63 flag-integration.php:105
326
- #: nextcellent-integration.php:296 nextgen-integration.php:258
327
- #: nextgen2-integration.php:303
328
- msgid "If you would like to start over again, press the Reset Status button to reset the bulk operation status."
329
- msgstr ""
330
-
331
- #: aux-optimize.php:55 bulk.php:67 flag-integration.php:109
332
- #: nextcellent-integration.php:300 nextgen-integration.php:262
333
- #: nextgen2-integration.php:307
334
- msgid "Reset Status"
335
- msgstr ""
336
-
337
- #: aux-optimize.php:64
338
- msgid "The plugin keeps track of already optimized images to prevent re-optimization. There are %d images that have been optimized so far."
339
- msgstr "Plugin mencatat gambar-gambar yang telah dioptimalkan untuk mencegah pengoptimalan ulang. Ada %d gambar yang telah dioptimalkan sejauh ini."
340
-
341
- #: aux-optimize.php:66
342
- msgid "Show Optimized Images"
343
- msgstr ""
344
-
345
- #: aux-optimize.php:74
346
- msgid "page"
347
- msgstr "laman"
348
-
349
- #: aux-optimize.php:74
350
- msgid "of"
351
- msgstr ""
352
-
353
- #: aux-optimize.php:254 aux-optimize.php:296 aux-optimize.php:299
354
- msgid "Unknown Savings"
355
- msgstr ""
356
-
357
- #: aux-optimize.php:319
358
- msgid "Finished importing"
359
- msgstr ""
360
-
361
- #: aux-optimize.php:336 common.php:1830 common.php:2378 common.php:2387
362
- msgid "Previously Optimized"
363
- msgstr "Telah Dioptimalkan Sebelumnya"
364
-
365
- #: aux-optimize.php:339 common.php:1869 common.php:2314
366
- msgid "No savings"
367
- msgstr "Tidak ada simpanan"
368
-
369
- #: aux-optimize.php:346 bulk.php:122 common.php:1835
370
- #: ewww-image-optimizer.php:2029
371
- msgid "License exceeded"
372
- msgstr ""
373
-
374
- #: aux-optimize.php:391
375
- msgid "Filename"
376
- msgstr "Nama berkas"
377
-
378
- #: aux-optimize.php:391
379
- msgid "Image Type"
380
- msgstr "Tipe Gambar"
381
-
382
- #: aux-optimize.php:391 common.php:1088 common.php:1120 common.php:2691
383
- #: common.php:2939 flag-integration.php:374 nextcellent-integration.php:173
384
- #: nextgen-integration.php:142 nextgen2-integration.php:131
385
- #: nextgen2-integration.php:134
386
- msgid "Image Optimizer"
387
- msgstr ""
388
-
389
- #: aux-optimize.php:408 common.php:2809 common.php:2863
390
- #: flag-integration.php:431 flag-integration.php:440
391
- #: nextcellent-integration.php:229 nextcellent-integration.php:238
392
- #: nextgen-integration.php:198 nextgen-integration.php:205
393
- #: nextgen2-integration.php:215
394
- msgid "Image Size: %s"
395
- msgstr "Ukuran Gambar: %s"
396
-
397
- #: aux-optimize.php:408
398
- msgid "Remove from table"
399
- msgstr "Hapus dari tabel"
400
-
401
- #: aux-optimize.php:666
402
- msgid "Nothing to optimize"
403
- msgstr ""
404
-
405
- #: aux-optimize.php:695 aux-optimize.php:712 bulk.php:395 bulk.php:414
406
- #: flag-integration.php:277 flag-integration.php:296 iocli.php:210
407
- #: nextcellent-integration.php:411 nextcellent-integration.php:429
408
- #: nextgen-integration.php:358 nextgen-integration.php:375
409
- #: nextgen2-integration.php:435
410
- msgid "Optimizing"
411
- msgstr ""
412
-
413
- #: aux-optimize.php:732 bulk.php:502 mwebp.php:204
414
- #: nextcellent-integration.php:129 nextgen-integration.php:106
415
- msgid "Finished"
416
- msgstr "Selesai"
417
-
418
- #: bulk.php:11 common.php:1002 common.php:2892 common.php:2894 common.php:3159
419
- #: common.php:3161 flag-integration.php:36 flag-integration.php:41
420
- #: flag-integration.php:46 flag-integration.php:73
421
- #: nextcellent-integration.php:37 nextcellent-integration.php:269
422
- #: nextgen-integration.php:33 nextgen-integration.php:234
423
- #: nextgen2-integration.php:37 nextgen2-integration.php:272
424
- #: nextgen2-integration.php:516
425
- msgid "Bulk Optimize"
426
- msgstr ""
427
-
428
- #: bulk.php:15 flag-integration.php:78 nextcellent-integration.php:274
429
- #: nextgen-integration.php:239 nextgen2-integration.php:277
430
- msgid "Start optimizing"
431
- msgstr ""
432
-
433
- #: bulk.php:17 flag-integration.php:80 nextcellent-integration.php:276
434
- #: nextgen-integration.php:241 nextgen2-integration.php:279
435
- msgid "Resume previous bulk operation"
436
- msgstr ""
437
-
438
- #: bulk.php:23
439
- msgid "Importing"
440
- msgstr ""
441
-
442
- #: bulk.php:28 flag-integration.php:87 nextcellent-integration.php:283
443
- #: nextgen2-integration.php:286
444
- msgid "Stop Optimizing"
445
- msgstr "Hentikan Pengoptimalan"
446
-
447
- #: bulk.php:32
448
- msgid "You should import Media Library images into the table to prevent duplicate optimization."
449
- msgstr ""
450
-
451
- #: bulk.php:34
452
- msgid "Import Images"
453
- msgstr "Impor Gambar"
454
-
455
- #: bulk.php:40 flag-integration.php:91 nextgen2-integration.php:290
456
- msgid "Force re-optimize"
457
- msgstr ""
458
-
459
- #: bulk.php:41 common.php:3415 flag-integration.php:92
460
- #: nextgen2-integration.php:291
461
- msgid "Choose how long to pause between images (in seconds, 0 = disabled)"
462
- msgstr ""
463
-
464
- #: bulk.php:44
465
- msgid "Optimize Media Library"
466
- msgstr ""
467
-
468
- #: bulk.php:46 flag-integration.php:68 nextcellent-integration.php:264
469
- #: nextgen-integration.php:229 nextgen2-integration.php:266
470
- msgid "You do not appear to have uploaded any images yet."
471
- msgstr ""
472
-
473
- #: bulk.php:50
474
- msgid "%1$d images in the Media Library have been selected, unable to determine how many resizes and how many are unoptimized."
475
- msgstr ""
476
-
477
- #: bulk.php:52 iocli.php:70 iocli.php:111
478
- msgid "%1$d images in the Media Library have been selected (%2$d unoptimized), with %3$d resizes (%4$d unoptimized)."
479
- msgstr ""
480
-
481
- #: bulk.php:54 flag-integration.php:97 nextcellent-integration.php:288
482
- #: nextgen-integration.php:250 nextgen2-integration.php:296
483
- msgid "Previously optimized images will be skipped by default."
484
- msgstr ""
485
-
486
- #: bulk.php:449 common.php:1956 flag-integration.php:328 iocli.php:386
487
- #: iocli.php:430 iocli.php:510 iocli.php:582 nextcellent-integration.php:466
488
- #: nextgen-integration.php:403 nextgen2-integration.php:466
489
- msgid "Optimized image:"
490
- msgstr ""
491
-
492
- #: bulk.php:451 iocli.php:218
493
- msgid "Skipped image, ID:"
494
- msgstr "Gambar yang dilewati: ID:"
495
-
496
- #: bulk.php:455 flag-integration.php:329 iocli.php:222 iocli.php:431
497
- msgid "Full size – %s"
498
- msgstr "Ukuran penuh – %s"
499
-
500
- #: bulk.php:470 common.php:1962 flag-integration.php:347 iocli.php:237
501
- #: iocli.php:392 iocli.php:449 iocli.php:527 iocli.php:592
502
- #: nextcellent-integration.php:123 nextcellent-integration.php:472
503
- #: nextgen-integration.php:100 nextgen-integration.php:413
504
- #: nextgen2-integration.php:483
505
- msgid "Elapsed: %.3f seconds"
506
- msgstr ""
507
-
508
- #: bulk.php:502
509
- msgid "Return to Media Library"
510
- msgstr ""
511
-
512
- #: common.php:711
513
- msgid "Settings saved"
514
- msgstr "Pengaturan disimpan"
515
-
516
- #: common.php:1004 mwebp.php:5
517
- msgid "Migrate WebP Images"
518
- msgstr ""
519
-
520
- #: common.php:1023
521
- msgid "Image Store Optimize"
522
- msgstr ""
523
-
524
- #: common.php:1023
525
- msgid "Optimize"
526
- msgstr ""
527
-
528
- #: common.php:1077
529
- msgid "Image Store Optimization"
530
- msgstr ""
531
-
532
- #: common.php:1087
533
- msgid "Choose a gallery or"
534
- msgstr "Pilih galeri atau"
535
-
536
- #: common.php:1087
537
- msgid "optimize all galleries"
538
- msgstr "optimalkan semua galeri"
539
-
540
- #: common.php:1088
541
- msgid "Gallery ID"
542
- msgstr "ID Galeri"
543
-
544
- #: common.php:1088
545
- msgid "Gallery Name"
546
- msgstr "Nama Galeri"
547
-
548
- #: common.php:1088
549
- msgid "Images"
550
- msgstr "Gambar"
551
-
552
- #: common.php:1104 common.php:1119
553
- msgid "Optimize Gallery"
554
- msgstr "Optimalkan Galeri"
555
-
556
- #: common.php:1120 common.php:2939
557
- msgid "Title"
558
- msgstr "Judul"
559
-
560
- #: common.php:1120 nextgen-integration.php:14 nextgen-integration.php:274
561
- msgid "Gallery"
562
- msgstr "Galeri"
563
-
564
- #: common.php:1203
565
- msgid "Settings"
566
- msgstr "Pengaturan"
567
-
568
- #: flag-integration.php:231 nextcellent-integration.php:137
569
- #: nextgen-integration.php:113 nextgen2-integration.php:96
570
- msgid "You don't have permission to work with uploaded files."
571
- msgstr "Anda tidak punya izin untuk bekerja dengan berkas-berkas yang diunggah."
572
-
573
- #: common.php:1358 flag-integration.php:235 nextcellent-integration.php:141
574
- #: nextgen-integration.php:117 nextgen2-integration.php:100
575
- msgid "No attachment ID was provided."
576
- msgstr ""
577
-
578
- #: common.php:1401 common.php:1436
579
- msgid "Original Restored"
580
- msgstr "Gambar Asli Telah Dikembalikan"
581
-
582
- #: common.php:1657
583
- msgid "used %1$d of %2$d, usage will reset in %3$d day."
584
- msgid_plural "used %1$d of %2$d, usage will reset in %3$d days."
585
- msgstr[0] ""
586
- msgstr[1] ""
587
-
588
- #: common.php:1881
589
- msgid "Reduced by %01.1f%% (%s)"
590
- msgstr ""
591
-
592
- #: common.php:2713
593
- msgid "Cloudinary image"
594
- msgstr ""
595
-
596
- #: common.php:2737
597
- msgid "Could not retrieve file path."
598
- msgstr ""
599
-
600
- #: common.php:2758 common.php:2769 common.php:2780
601
- #: ewww-image-optimizer.php:1365 ewww-image-optimizer.php:1636
602
- #: ewww-image-optimizer.php:1640 ewww-image-optimizer.php:1922
603
- #: flag-integration.php:405 flag-integration.php:411 flag-integration.php:417
604
- #: nextcellent-integration.php:201 nextcellent-integration.php:208
605
- #: nextcellent-integration.php:215 nextgen-integration.php:170
606
- #: nextgen-integration.php:177 nextgen-integration.php:184
607
- #: nextgen2-integration.php:174 nextgen2-integration.php:181
608
- #: nextgen2-integration.php:188
609
- msgid "%s is missing"
610
- msgstr ""
611
-
612
- #: common.php:2760
613
- msgid "JPG to PNG"
614
- msgstr "JPG ke PNG"
615
-
616
- #: common.php:2762
617
- msgid "WARNING: Removes metadata. Requires GD or ImageMagick. PNG is generally much better than JPG for logos and other images with a limited range of colors."
618
- msgstr ""
619
-
620
- #: common.php:2771
621
- msgid "PNG to JPG"
622
- msgstr "PNG ke JPG"
623
-
624
- #: common.php:2773
625
- msgid "WARNING: This is not a lossless conversion and requires GD or ImageMagick. JPG is much better than PNG for photographic use because it compresses the image and discards data. Transparent images will only be converted if a background color has been set."
626
- msgstr ""
627
-
628
- #: common.php:2782
629
- msgid "GIF to PNG"
630
- msgstr "GIF ke PNG"
631
-
632
- #: common.php:2784
633
- msgid "PNG is generally better than GIF, but does not support animation. Animated images will not be converted."
634
- msgstr ""
635
-
636
- #: common.php:2789 flag-integration.php:425 nextcellent-integration.php:223
637
- #: nextgen-integration.php:192 nextgen2-integration.php:196
638
- msgid "Unsupported file type"
639
- msgstr ""
640
-
641
- #: common.php:2814 flag-integration.php:435 nextcellent-integration.php:233
642
- #: nextgen-integration.php:201 nextgen2-integration.php:235
643
- msgid "Re-optimize"
644
- msgstr ""
645
-
646
- #: common.php:2841
647
- msgid "Restore original"
648
- msgstr "Kembalikan ke gambar asli"
649
-
650
- #: common.php:2861 flag-integration.php:439 nextcellent-integration.php:237
651
- #: nextgen-integration.php:204 nextgen2-integration.php:209
652
- msgid "Not processed"
653
- msgstr "Tidak diproses"
654
-
655
- #: common.php:2800 common.php:2866 flag-integration.php:444
656
- #: nextcellent-integration.php:242 nextgen-integration.php:208
657
- #: nextgen2-integration.php:239
658
- msgid "Optimize now!"
659
- msgstr ""
660
-
661
- #: common.php:3059
662
- msgid "Insertion successful"
663
- msgstr ""
664
-
665
- #: common.php:3061
666
- msgid "Insertion failed"
667
- msgstr ""
668
-
669
- #: common.php:3127
670
- msgid "Pngout was successfully installed, check the Plugin Status area for version information."
671
- msgstr ""
672
-
673
- #: common.php:3132
674
- msgid "Pngout was not installed: %1$s. Make sure this folder is writable: %2$s"
675
- msgstr ""
676
-
677
- #: common.php:3154
678
- msgid "Plugin Home Page"
679
- msgstr "Laman Depan Plugin"
680
-
681
- #: common.php:3155 ewww-image-optimizer.php:410 ewww-image-optimizer.php:536
682
- msgid "Installation Instructions"
683
- msgstr "Instruksi Pemasangan"
684
-
685
- #: common.php:3156
686
- msgid "Plugin Support"
687
- msgstr "Dukungan Plugin"
688
-
689
- #: common.php:3157
690
- msgid "Cloud Status"
691
- msgstr ""
692
-
693
- #: common.php:3159
694
- msgid "Media Library"
695
- msgstr ""
696
-
697
- #: common.php:3163
698
- msgid "New images uploaded to the Media Library will be optimized automatically. If you have existing images you would like to optimize, you can use the %s tool."
699
- msgstr ""
700
-
701
- #: common.php:3171
702
- msgid "Plugin Status"
703
- msgstr "Status Plugin"
704
-
705
- #: common.php:3172
706
- msgid "All Clear"
707
- msgstr ""
708
-
709
- #: common.php:3173
710
- msgid "Requires Attention"
711
- msgstr ""
712
-
713
- #: common.php:3176
714
- msgid "Total Savings:"
715
- msgstr ""
716
-
717
- #: common.php:3178 common.php:3391
718
- msgid "Cloud optimization API Key"
719
- msgstr ""
720
-
721
- #: common.php:3181 common.php:3183
722
- msgid "Verified,"
723
- msgstr "Terverifikasi,"
724
-
725
- #: common.php:3185
726
- msgid "Not Verified"
727
- msgstr "Tidak Terverifikasi"
728
-
729
- #: common.php:3197
730
- msgid "If updated versions are available below you may either download the newer versions and install them yourself, or uncheck \"Use System Paths\" and use the bundled tools."
731
- msgstr ""
732
-
733
- #: common.php:3198 common.php:3201
734
- msgid "Updates are optional, but may contain increased optimization or security patches"
735
- msgstr ""
736
-
737
- #: common.php:3200
738
- msgid "If updated versions are available below, you may need to enable write permission on the %s folder to use the automatic installs."
739
- msgstr ""
740
-
741
- #: common.php:3211 common.php:3221 common.php:3231 common.php:3241
742
- #: common.php:3251 common.php:3261 common.php:3285 common.php:3293
743
- #: common.php:3301 common.php:3309 common.php:3323 common.php:3329
744
- #: common.php:3337
745
- msgid "Installed"
746
- msgstr "Terpasang"
747
-
748
- #: common.php:3211 common.php:3221 common.php:3231 common.php:3241
749
- #: common.php:3251 common.php:3261
750
- msgid "version"
751
- msgstr "versi"
752
-
753
- #: common.php:3213 common.php:3223 common.php:3233 common.php:3243
754
- #: common.php:3253 common.php:3263 common.php:3288 common.php:3296
755
- #: common.php:3304 common.php:3312 common.php:3326 common.php:3334
756
- #: common.php:3340
757
- msgid "Missing"
758
- msgstr "Hilang"
759
-
760
- #: common.php:3243
761
- msgid "Install"
762
- msgstr "Pasang"
763
-
764
- #: common.php:3243
765
- msgid "automatically"
766
- msgstr "secara otomatis"
767
-
768
- #: common.php:3243
769
- msgid "manually"
770
- msgstr "secara manual"
771
-
772
- #: common.php:3243
773
- msgid "Pngout is free closed-source software that can produce drastically reduced filesizes for PNGs, but can be very time consuming to process images"
774
- msgstr ""
775
-
776
- #: common.php:3269
777
- msgid "On"
778
- msgstr ""
779
-
780
- #: common.php:3272
781
- msgid "Off"
782
- msgstr ""
783
-
784
- #: common.php:3275
785
- msgid "Disabled"
786
- msgstr ""
787
-
788
- #: common.php:3278
789
- msgid "Enabled"
790
- msgstr ""
791
-
792
- #: common.php:3281
793
- msgid "%s only need one, used for conversion, not optimization"
794
- msgstr ""
795
-
796
- #: common.php:3281
797
- msgid "Graphics libraries"
798
- msgstr ""
799
-
800
- #: common.php:3319
801
- msgid "Only need one of these:"
802
- msgstr "Hanya butuh salah satu dari ini:"
803
-
804
- #: common.php:3344 common.php:3348 common.php:3351
805
- msgid "command not found on your system"
806
- msgstr "perintah tidak ditemukan di sistem Anda"
807
-
808
- #: common.php:3348
809
- msgid "not required"
810
- msgstr "tidak diperlukan"
811
-
812
- #: common.php:3351
813
- msgid "required for automatic pngout installer"
814
- msgstr ""
815
-
816
- #: common.php:3375
817
- msgid "Cloud Settings"
818
- msgstr ""
819
-
820
- #: common.php:3376
821
- msgid "Basic Settings"
822
- msgstr "Pengaturan Dasar"
823
-
824
- #: common.php:3377
825
- msgid "Advanced Settings"
826
- msgstr "Pengaturan Lanjutan"
827
-
828
- #: common.php:3378
829
- msgid "Conversion Settings"
830
- msgstr "Pengaturan Pengkonversian"
831
-
832
- #: common.php:3389
833
- msgid "If exec() is disabled for security reasons (and enabling it is not an option), or you would like to offload image optimization to a third-party server, you may purchase an API key for our cloud optimization service. The API key should be entered below, and cloud optimization must be enabled for each image format individually."
834
- msgstr ""
835
-
836
- #: common.php:3389 common.php:3391 common.php:3410 common.php:3413
837
- msgid "Purchase an API key."
838
- msgstr "Beli sebuah kunci API."
839
-
840
- #: common.php:3391
841
- msgid "API Key will be validated when you save your settings."
842
- msgstr ""
843
-
844
- #: common.php:3392
845
- msgid "JPG cloud optimization"
846
- msgstr ""
847
-
848
- #: common.php:3394
849
- msgid "PNG cloud optimization"
850
- msgstr ""
851
-
852
- #: common.php:3396
853
- msgid "extra PNG compression (slower)"
854
- msgstr ""
855
-
856
- #: common.php:3398
857
- msgid "GIF cloud optimization"
858
- msgstr ""
859
-
860
- #: common.php:3405
861
- msgid "Debugging"
862
- msgstr ""
863
-
864
- #: common.php:3405
865
- msgid "Use this to provide information for support purposes, or if you feel comfortable digging around in the code to fix a problem you are experiencing."
866
- msgstr ""
867
-
868
- #: common.php:3406
869
- msgid "Remove metadata"
870
- msgstr "Hapus metadata"
871
-
872
- #: common.php:3407
873
- msgid "This will remove ALL metadata: EXIF and comments."
874
- msgstr "Ini akan menghapus SEMUA metadata: EXIF dan komentar-komentar."
875
-
876
- #: common.php:3409
877
- msgid "Lossy JPG optimization"
878
- msgstr ""
879
-
880
- #: common.php:3409 common.php:3412 common.php:3509 common.php:3515
881
- #: common.php:3518
882
- msgid "WARNING:"
883
- msgstr "PERINGATAN:"
884
-
885
- #: common.php:3409 common.php:3412
886
- msgid "While most users will not notice a difference in image quality, lossy means there IS a loss in image quality."
887
- msgstr ""
888
-
889
- #: common.php:3412
890
- msgid "Lossy PNG optimization"
891
- msgstr ""
892
-
893
- #: common.php:3415
894
- msgid "Bulk Delay"
895
- msgstr ""
896
-
897
- #: common.php:3418
898
- msgid "Automatic Cloudinary upload"
899
- msgstr ""
900
-
901
- #: common.php:3418
902
- msgid "When enabled, uploads to the Media Library will be transferred to Cloudinary after optimization. Cloudinary generates resizes, so only the full-size image is uploaded."
903
- msgstr ""
904
-
905
- #: common.php:3428
906
- msgid "optipng optimization level"
907
- msgstr ""
908
-
909
- #: common.php:3430 common.php:3431 common.php:3432 common.php:3433
910
- #: common.php:3434 common.php:3435 common.php:3436 common.php:3442
911
- #: common.php:3443 common.php:3444 common.php:3445
912
- msgid "Level %d"
913
- msgstr "Level %d"
914
-
915
- #: common.php:3430
916
- msgid "%d trial"
917
- msgstr ""
918
-
919
- #: common.php:3431 common.php:3432 common.php:3433 common.php:3434
920
- #: common.php:3435 common.php:3436
921
- msgid "%d trials"
922
- msgstr ""
923
-
924
- #: common.php:3437 common.php:3446
925
- msgid "default"
926
- msgstr ""
927
-
928
- #: common.php:3438
929
- msgid "According to the author of optipng, 10 trials should satisfy most people, 30 trials should satisfy everyone."
930
- msgstr ""
931
-
932
- #: common.php:3440
933
- msgid "pngout optimization level"
934
- msgstr ""
935
-
936
- #: common.php:3442
937
- msgid "Xtreme! (Slowest)"
938
- msgstr "Ekstrem! (Paling Lambat)"
939
-
940
- #: common.php:3443
941
- msgid "Intense (Slow)"
942
- msgstr "Intensif (Lambat)"
943
-
944
- #: common.php:3444
945
- msgid "Longest Match (Fast)"
946
- msgstr ""
947
-
948
- #: common.php:3445
949
- msgid "Huffman Only (Faster)"
950
- msgstr "Hanya Huffman (Lebih Cepat)"
951
-
952
- #: common.php:3447
953
- msgid "If you have CPU cycles to spare, go with level %d"
954
- msgstr ""
955
-
956
- #: common.php:3450
957
- msgid "Scheduled optimization"
958
- msgstr ""
959
-
960
- #: common.php:3450
961
- msgid "This will enable scheduled optimization of unoptimized images for your theme, buddypress, and any additional folders you have configured below. Runs hourly: wp_cron only runs when your site is visited, so it may be even longer between optimizations."
962
- msgstr ""
963
-
964
- #: common.php:3452
965
- msgid "Folders to optimize"
966
- msgstr ""
967
-
968
- #: common.php:3452
969
- msgid "One path per line, must be within %s. Use full paths, not relative paths."
970
- msgstr ""
971
-
972
- #: common.php:3483
973
- msgid "Skip Small Images"
974
- msgstr "Lewati Gambar-Gambar Kecil"
975
-
976
- #: common.php:3483
977
- msgid "Do not optimize images smaller than this (in bytes)"
978
- msgstr ""
979
-
980
- #: common.php:3485
981
- msgid "Skip Large PNG Images"
982
- msgstr "Lewati Gambar PNG yang Besar"
983
-
984
- #: common.php:3485
985
- msgid "Do not optimize PNG images larger than this (in bytes)"
986
- msgstr "Jangan optimalkan gambar PNG yang berukuran lebih besar dari ini (dalam bytes)"
987
-
988
- #: common.php:3487
989
- msgid "Exclude full-size images from lossy optimization"
990
- msgstr ""
991
-
992
- #: common.php:3491 ewww-image-optimizer.php:410
993
- msgid "Use System Paths"
994
- msgstr ""
995
-
996
- #: common.php:3491
997
- msgid "If you have already installed the utilities in a system location, such as %s or %s, use this to force the plugin to use those versions and skip the auto-installers."
998
- msgstr ""
999
-
1000
- #: common.php:3493 common.php:3495 common.php:3497 common.php:3499
1001
- msgid "disable"
1002
- msgstr ""
1003
-
1004
- #: common.php:3503
1005
- msgid "Conversion is only available for images in the Media Library (except WebP). By default, all images have a link available in the Media Library for one-time conversion. Turning on individual conversion operations below will enable conversion filters any time an image is uploaded or modified."
1006
- msgstr ""
1007
-
1008
- #: common.php:3504
1009
- msgid "NOTE:"
1010
- msgstr "CATATAN:"
1011
-
1012
- #: common.php:3504
1013
- msgid "The plugin will attempt to update image locations for any posts that contain the images. You may still need to manually update locations/urls for converted images."
1014
- msgstr ""
1015
-
1016
- #: common.php:3507
1017
- msgid "Hide Conversion Links"
1018
- msgstr ""
1019
-
1020
- #: common.php:3507
1021
- msgid "Site or Network admins can use this to prevent other users from using the conversion links in the Media Library which bypass the settings below."
1022
- msgstr ""
1023
-
1024
- #: common.php:3508
1025
- msgid "Delete originals"
1026
- msgstr ""
1027
-
1028
- #: common.php:3508
1029
- msgid "This will remove the original image from the server after a successful conversion."
1030
- msgstr ""
1031
-
1032
- #: common.php:3509
1033
- msgid "JPG/PNG to WebP"
1034
- msgstr ""
1035
-
1036
- #: common.php:3509
1037
- msgid "JPG to WebP conversion is lossy, but quality loss is minimal. PNG to WebP conversion is lossless."
1038
- msgstr ""
1039
-
1040
- #: common.php:3510
1041
- msgid "Originals are never deleted, and WebP images should only be served to supported browsers."
1042
- msgstr ""
1043
-
1044
- #: common.php:3510
1045
- msgid "You can use the rewrite rules below to serve WebP images with Apache."
1046
- msgstr ""
1047
-
1048
- #: common.php:3515 common.php:3518 common.php:3525
1049
- msgid "enable %s to %s conversion"
1050
- msgstr ""
1051
-
1052
- #: common.php:3515
1053
- msgid "Removes metadata and increases cpu usage dramatically."
1054
- msgstr ""
1055
-
1056
- #: common.php:3516
1057
- msgid "PNG is generally much better than JPG for logos and other images with a limited range of colors. Checking this option will slow down JPG processing significantly, and you may want to enable it only temporarily."
1058
- msgstr ""
1059
-
1060
- #: common.php:3518
1061
- msgid "This is not a lossless conversion."
1062
- msgstr ""
1063
-
1064
- #: common.php:3519
1065
- msgid "JPG is generally much better than PNG for photographic use because it compresses the image and discards data. PNGs with transparency are not converted by default."
1066
- msgstr ""
1067
-
1068
- #: common.php:3520
1069
- msgid "JPG background color:"
1070
- msgstr "Warna latar belakang JPG"
1071
-
1072
- #: common.php:3520
1073
- msgid "HEX format (#123def)"
1074
- msgstr ""
1075
-
1076
- #: common.php:3521
1077
- msgid "Background color is used only if the PNG has transparency. Leave this value blank to skip PNGs with transparency."
1078
- msgstr ""
1079
-
1080
- #: common.php:3522
1081
- msgid "JPG quality level:"
1082
- msgstr "Tingkat kualitas JPG:"
1083
-
1084
- #: common.php:3522
1085
- msgid "Valid values are 1-100."
1086
- msgstr "Nilai yang valid adalah 1-100."
1087
-
1088
- #: common.php:3523
1089
- msgid "If JPG quality is blank, the plugin will attempt to set the optimal quality level or default to 92. Remember, this is a lossy conversion, so you are losing pixels, and it is not recommended to actually set the level here unless you want noticable loss of image quality."
1090
- msgstr ""
1091
-
1092
- #: common.php:3525
1093
- msgid "No warnings here, just do it."
1094
- msgstr "Tidak ada peringatan di sini, lakukan saja."
1095
-
1096
- #: common.php:3526
1097
- msgid "PNG is generally better than GIF, but animated images cannot be converted."
1098
- msgstr ""
1099
-
1100
- #: common.php:3529
1101
- msgid "Save Changes"
1102
- msgstr "Simpan Perubahan"
1103
-
1104
- #: common.php:3533
1105
- msgid "There are many ways to serve WebP images to visitors with supported browsers. You may choose any you wish, but it is recommended to serve them with an .htaccess file using mod_rewrite and mod_headers. The plugin can insert the rules for you if the file is writable, or you can edit .htaccess yourself."
1106
- msgstr ""
1107
-
1108
- #: common.php:3536
1109
- msgid "Rules verified successfully"
1110
- msgstr ""
1111
-
1112
- #: common.php:3552
1113
- msgid "The image to the right will display a WebP image with WEBP in white text, if your site is serving WebP images and your browser supports WebP."
1114
- msgstr ""
1115
-
1116
- #: common.php:3553
1117
- msgid "Insert Rewrite Rules"
1118
- msgstr ""
1119
-
1120
- #: ewww-image-optimizer.php:146
1121
- msgid "EWWW Image Optimizer is supported on Linux, FreeBSD, Mac OSX, and Windows"
1122
- msgstr ""
1123
-
1124
- #: ewww-image-optimizer.php:146
1125
- msgid "Unfortunately, the EWWW Image Optimizer plugin does not work with %s"
1126
- msgstr ""
1127
-
1128
- #: ewww-image-optimizer.php:248
1129
- msgid "EWWW Image Optimizer could not create the tool folder"
1130
- msgstr ""
1131
-
1132
- #: ewww-image-optimizer.php:248
1133
- msgid "Please adjust permissions or create the folder"
1134
- msgstr "Mohon sesuaikan izin atau buat folder baru"
1135
-
1136
- #: ewww-image-optimizer.php:410
1137
- msgid "EWWW Image Optimizer could not install tools in %s"
1138
- msgstr ""
1139
-
1140
- #: ewww-image-optimizer.php:410
1141
- msgid "Please adjust permissions or create the folder. If you have installed the tools elsewhere on your system, check the option to %s."
1142
- msgstr ""
1143
-
1144
- #: ewww-image-optimizer.php:410
1145
- msgid "For more details, visit the %1$s or the %2$s."
1146
- msgstr "Untuk lebih detail, kunjungi %1$s atau %2$s."
1147
-
1148
- #: ewww-image-optimizer.php:410 ewww-image-optimizer.php:536
1149
- msgid "Settings Page"
1150
- msgstr "Laman Pengaturan"
1151
-
1152
- #: ewww-image-optimizer.php:422
1153
- msgid "EWWW Image Optimizer requires exec(). Your system administrator has disabled this function."
1154
- msgstr "EWWW Image Optimizer membutuhkan exec(). Admin sistem Anda mematikan fungsi ini."
1155
-
1156
- #: ewww-image-optimizer.php:430
1157
- msgid "Safe Mode is turned on for PHP. This plugin cannot operate in Safe Mode."
1158
- msgstr ""
1159
-
1160
- #: ewww-image-optimizer.php:536
1161
- msgid "EWWW Image Optimizer uses %1$s, %2$s, %3$s, %4$s, %5$s, and %6$s. You are missing: %7$s. Please install via the %8$s or the %9$s."
1162
- msgstr ""
1163
-
1164
- #: ewww-image-optimizer.php:1170 ewww-image-optimizer.php:1295
1165
- #: ewww-image-optimizer.php:1302
1166
- msgid "Optimization skipped"
1167
- msgstr ""
1168
-
1169
- #: ewww-image-optimizer.php:1210
1170
- msgid "Missing finfo_file(), getimagesize() and mime_content_type() PHP functions"
1171
- msgstr ""
1172
-
1173
- #: ewww-image-optimizer.php:1361 ewww-image-optimizer.php:1918
1174
- msgid "%s is disabled"
1175
- msgstr ""
1176
-
1177
- #: ewww-image-optimizer.php:1404
1178
- msgid "Unable to write file"
1179
- msgstr ""
1180
-
1181
- #: ewww-image-optimizer.php:1407
1182
- msgid "Optimization failed"
1183
- msgstr "Pengoptimalan gagal"
1184
-
1185
- #: ewww-image-optimizer.php:1632
1186
- msgid "png tools are disabled"
1187
- msgstr ""
1188
-
1189
- #: ewww-image-optimizer.php:2077
1190
- msgid "You don't have permission to install image optimizer utilities."
1191
- msgstr ""
1192
-
1193
- #: ewww-image-optimizer.php:2083
1194
- msgid "tar command not found"
1195
- msgstr ""
1196
-
1197
- #: ewww-image-optimizer.php:2102 ewww-image-optimizer.php:2121
1198
- #: ewww-image-optimizer.php:2139
1199
- msgid "could not move pngout"
1200
- msgstr "tidak bisa memindahkan pngout"
1201
-
1202
- #: ewww-image-optimizer.php:2105 ewww-image-optimizer.php:2124
1203
- msgid "could not set permissions"
1204
- msgstr "tidak bisa mengatur izin"
1205
-
1206
- #: flag-integration.php:96 iocli.php:75 iocli.php:83 iocli.php:125
1207
- #: iocli.php:147 nextgen2-integration.php:295
1208
- msgid "%1$d images have been selected (%2$d unoptimized), with %3$d resizes (%4$d unoptimized)."
1209
- msgstr ""
1210
-
1211
- #: flag-integration.php:335 iocli.php:437
1212
- msgid "Optimized size – %s"
1213
- msgstr ""
1214
-
1215
- #: flag-integration.php:342 iocli.php:444 nextcellent-integration.php:120
1216
- #: nextgen-integration.php:97
1217
- msgid "Thumbnail – %s"
1218
- msgstr ""
1219
-
1220
- #: flag-integration.php:368 iocli.php:251 iocli.php:400 iocli.php:462
1221
- #: iocli.php:541 iocli.php:605 nextcellent-integration.php:493
1222
- #: nextgen-integration.php:433 nextgen2-integration.php:504
1223
- msgid "Finished Optimization!"
1224
- msgstr ""
1225
-
1226
- #: mwebp.php:6
1227
- msgid "The migration is split into two parts. First, the plugin needs to scan all folders for webp images. Once it has obtained the list of images to rename, it will proceed with the renaming"
1228
- msgstr ""
1229
-
1230
- #: mwebp.php:7
1231
- msgid "Start Migration"
1232
- msgstr ""
1233
-
1234
- #: mwebp.php:93
1235
- msgid "Scanning"
1236
- msgstr ""
1237
-
1238
- #: mwebp.php:114
1239
- msgid "%d Webp images left to rename."
1240
- msgstr ""
1241
-
1242
- #: mwebp.php:200
1243
- msgid "Skipped:"
1244
- msgstr "Lewati:"
1245
-
1246
- #: nextcellent-integration.php:38 nextcellent-integration.php:97
1247
- #: nextgen-integration.php:34 nextgen-integration.php:74
1248
- #: nextgen2-integration.php:38
1249
- msgid "Bulk Thumbnail Optimize"
1250
- msgstr ""
1251
-
1252
- #: nextcellent-integration.php:86 nextgen-integration.php:60
1253
- msgid "The thumbnails for your new images have not been optimized."
1254
- msgstr ""
1255
-
1256
- #: nextcellent-integration.php:86 nextgen-integration.php:64
1257
- msgid "Optimize Thumbs"
1258
- msgstr ""
1259
-
1260
- #: nextcellent-integration.php:110 nextgen-integration.php:87
1261
- msgid "Processing"
1262
- msgstr "Memproses"
1263
-
1264
- #: common.php:2928 iocli.php:78 iocli.php:131 nextcellent-integration.php:287
1265
- #: nextgen-integration.php:249
1266
- msgid "We have %d images to optimize."
1267
- msgstr "Kami punya %d gambar untuk dioptimalkan."
1268
-
1269
- #: nextcellent-integration.php:318
1270
- msgid "Galleries"
1271
- msgstr ""
1272
-
1273
- #: iocli.php:516 iocli.php:583 nextcellent-integration.php:467
1274
- #: nextgen-integration.php:404 nextgen2-integration.php:472
1275
- msgid "Full size - %s"
1276
- msgstr "Ukuran penuh - %s"
1277
-
1278
- #: iocli.php:519 iocli.php:589 nextcellent-integration.php:469
1279
- #: nextgen-integration.php:410 nextgen2-integration.php:475
1280
- msgid "Thumbnail - %s"
1281
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/ewww-image-optimizer-vi.mo DELETED
Binary file
languages/ewww-image-optimizer-vi.po DELETED
@@ -1,1278 +0,0 @@
1
- # Translation of EWWW Image Optimizer in Vietnamese
2
- # This file is distributed under the same license as the EWWW Image Optimizer package.
3
- msgid ""
4
- msgstr ""
5
- "PO-Revision-Date: 2015-08-17 03:38:47+0000\n"
6
- "MIME-Version: 1.0\n"
7
- "Content-Type: text/plain; charset=UTF-8\n"
8
- "Content-Transfer-Encoding: 8bit\n"
9
- "Plural-Forms: nplurals=1; plural=0;\n"
10
- "X-Generator: GlotPress/1.0-alpha-1000\n"
11
- "Project-Id-Version: EWWW Image Optimizer\n"
12
-
13
- #: aux-optimize.php:97 aux-optimize.php:134 aux-optimize.php:383
14
- #: aux-optimize.php:422 bulk.php:405 bulk.php:429 bulk.php:496 common.php:1922
15
- #: flag-integration.php:285 flag-integration.php:306 flag-integration.php:362
16
- #: mwebp.php:102 mwebp.php:193 nextcellent-integration.php:419
17
- #: nextcellent-integration.php:439 nextcellent-integration.php:487
18
- #: nextgen-integration.php:365 nextgen-integration.php:382
19
- #: nextgen-integration.php:427 nextgen2-integration.php:422
20
- #: nextgen2-integration.php:445 nextgen2-integration.php:498
21
- msgid "Access token has expired, please reload the page."
22
- msgstr ""
23
-
24
- #: aux-optimize.php:684 aux-optimize.php:707 aux-optimize.php:723 bulk.php:388
25
- #: common.php:3055 flag-integration.php:271 mwebp.php:84
26
- #: nextcellent-integration.php:94 nextcellent-integration.php:405
27
- #: nextgen-integration.php:71 nextgen-integration.php:352
28
- #: nextgen2-integration.php:408
29
- msgid "Access denied."
30
- msgstr ""
31
-
32
- #: ewww-image-optimizer.php:152
33
- msgid "The regular version of the EWWW Image Optimizer plugin is not permitted on WP Engine sites. However, the cloud version has been approved by WP Engine. Please deactivate EWWW Image Optimizer and install EWWW Image Optimizer Cloud to optimize your images."
34
- msgstr ""
35
-
36
- #: common.php:3575
37
- msgctxt "abbreviation for Virtual Private Server"
38
- msgid "VPS:"
39
- msgstr ""
40
-
41
- #: common.php:3581
42
- msgctxt "abbreviation for Content Delivery Network"
43
- msgid "CDN:"
44
- msgstr ""
45
-
46
- #: common.php:3563
47
- msgid "Help translate EWWW I.O."
48
- msgstr ""
49
-
50
- #: common.php:3564
51
- msgid "Write a review."
52
- msgstr ""
53
-
54
- #: common.php:3569
55
- msgctxt "A2 Hosting:"
56
- msgid "with automatic EWWW IO setup"
57
- msgstr ""
58
-
59
- #: common.php:3561
60
- msgid "Support EWWW I.O."
61
- msgstr ""
62
-
63
- #: common.php:3562
64
- msgid "Would you like to help support development of this plugin?"
65
- msgstr ""
66
-
67
- #: common.php:3565
68
- msgid "Contribute directly via %s."
69
- msgstr ""
70
-
71
- #: common.php:3567
72
- msgid "Use any of these referral links to show your appreciation:"
73
- msgstr ""
74
-
75
- #: common.php:3568
76
- msgid "Web Hosting:"
77
- msgstr ""
78
-
79
- #: common.php:3581
80
- msgid "Add MaxCDN to increase website speeds dramatically! Sign Up Now and Save 25%."
81
- msgstr ""
82
-
83
- #: common.php:3581
84
- msgid "Integrate MaxCDN within Wordpress using the W3 Total Cache plugin."
85
- msgstr ""
86
-
87
- #: common.php:3603
88
- msgid "Debugging Information"
89
- msgstr "Thông tin gỡ lỗi"
90
-
91
- #: common.php:3603
92
- msgid "Select All"
93
- msgstr "Chọn tất cả"
94
-
95
- #: ewww-image-optimizer.php:2109 ewww-image-optimizer.php:2128
96
- msgid "extraction of files failed"
97
- msgstr "Trích xuất các tập tin bị lỗi"
98
-
99
- #: common.php:2717
100
- msgid "Azure Storage image"
101
- msgstr "Ảnh Azure Storage"
102
-
103
- #: common.php:2721
104
- msgid "Amazon S3 image"
105
- msgstr "Ảnh Amazon S3"
106
-
107
- #: common.php:3462
108
- msgid "Deferred Optimization"
109
- msgstr "Tối ưu bị trì hoãn"
110
-
111
- #: common.php:3462
112
- msgid "Optimize images later via wp_cron, after image upload or generation is complete."
113
- msgstr "Tối ưu các ảnh sau qua wp_cron, sau khi tải lên hoặc khởi tạo ảnh hoàn thành."
114
-
115
- #: ewww-image-optimizer.php:1181
116
- msgid "Could not find %s"
117
- msgstr "Không thể tìm thấy %s"
118
-
119
- #: ewww-image-optimizer.php:1189
120
- msgid "%s is not writable"
121
- msgstr "%s không thể ghi được"
122
-
123
- #: bulk.php:356
124
- msgid "Operation timed out, you may need to increase the max_execution_time for PHP"
125
- msgstr "Hoạt động đã hết giờ, bạn có thể cần tăng max_execution_time cho PHP"
126
-
127
- #: bulk.php:357 flag-integration.php:186 nextcellent-integration.php:392
128
- #: nextgen-integration.php:340 nextgen2-integration.php:395
129
- msgid "License Exceeded"
130
- msgstr "Giấy phép đã vượt quá"
131
-
132
- #: bulk.php:358 flag-integration.php:187 nextcellent-integration.php:393
133
- #: nextgen-integration.php:341 nextgen2-integration.php:396
134
- msgid "Optimization stopped, reload page to resume."
135
- msgstr "Tối ưu đã ngừng, nạp lại trang để phục hồi."
136
-
137
- #: bulk.php:359 flag-integration.php:188 nextcellent-integration.php:394
138
- #: nextgen-integration.php:342 nextgen2-integration.php:397
139
- msgid "Operation Interrupted"
140
- msgstr "Hoạt động đã bị ngắt"
141
-
142
- #: bulk.php:360 flag-integration.php:189 nextcellent-integration.php:395
143
- #: nextgen-integration.php:343 nextgen2-integration.php:398
144
- msgid "Temporary failure, seconds left to retry:"
145
- msgstr "Sự cố tạm thời, số giây còn lại để thử lại:"
146
-
147
- #: bulk.php:361 flag-integration.php:190 nextcellent-integration.php:396
148
- #: nextgen-integration.php:344 nextgen2-integration.php:399
149
- msgid "Could not remove image from table."
150
- msgstr "Không thể loại bỏ ảnh từ bảng."
151
-
152
- #: common.php:3170
153
- msgid "Click to toggle"
154
- msgstr "Kích để bật tắt"
155
-
156
- #: common.php:3467
157
- msgid "Disable Resizes"
158
- msgstr "Vô hiệu thay đổi kích cỡ"
159
-
160
- #: common.php:3467
161
- msgid "Wordpress, your theme, and other plugins generate various image sizes. You may disable optimization for certain sizes, or completely prevent those sizes from being created."
162
- msgstr "Wordpress, chủ đề của bạn, và các plugin khác tạo kích cỡ hình ảnh khác nhau. Bạn có thể vô hiệu tối ưu hóa cho các kích thước nhất định, hoặc hoàn toàn ngăn chặn việc tạo ra các kích cỡ đó."
163
-
164
- #: common.php:3471
165
- msgid "Disable Optimization"
166
- msgstr "Vô hiệu tối ưu"
167
-
168
- #: common.php:3471
169
- msgid "Disable Creation"
170
- msgstr "Vô hiệu tạo"
171
-
172
- #: common.php:1353
173
- msgid "You don't have permission to optimize images."
174
- msgstr "Bạn không có quyền để tối ưu ảnh."
175
-
176
- #: common.php:3400
177
- msgid "Faster lossy optimization"
178
- msgstr "Tối ưu hao tổn nhanh hơn"
179
-
180
- #: common.php:3400
181
- msgid "Speed up the lossy operations by performing less compression."
182
- msgstr "Tăng tốc độ xử lý hao tổn bằng cách thực hiện nén ít hơn."
183
-
184
- #: common.php:3410
185
- msgid "Requires an EWWW Image Optimizer Cloud Subscription."
186
- msgstr "Yêu cầu một Đăng ký EWWW Image Optimizer Cloud."
187
-
188
- #: common.php:3413
189
- msgid "Uses pngquant locally. Use EWWW I.O. Cloud for even better lossy compression."
190
- msgstr ""
191
-
192
- #: common.php:3512
193
- msgid "Uses output buffering and libxml functionality from PHP. Use this if the Apache rewrite rules do not work, or if your images are served from a CDN."
194
- msgstr "Sử dụng bộ đệm đầu ra và chức năng libxml từ PHP. Sử dụng điều này nếu các quy tắc viết lại Apache không làm việc, hoặc nếu hình ảnh của bạn được xử lý từ một CDN."
195
-
196
- #: common.php:1653
197
- msgid "optimized %1$d images, usage will reset in %2$d day."
198
- msgid_plural "optimized %1$d images, usage will reset in %2$d days."
199
- msgstr[0] "%1$d ảnh đã được tối ưu, việc sử dụng sẽ thiết lập lại trong %2$d ngày."
200
-
201
- #: common.php:1655
202
- msgid "%1$d image credit remaining."
203
- msgid_plural "%1$d image credits remaining."
204
- msgstr[0] ""
205
-
206
- #: common.php:3465
207
- msgid "Include Media Library Folders"
208
- msgstr ""
209
-
210
- #: common.php:3465
211
- msgid "If you have disabled automatic optimization, enable this if you want Scheduled Optimization to include the latest two folders from the Media Library."
212
- msgstr ""
213
-
214
- #: common.php:3512
215
- msgid "Alternative WebP Rewriting"
216
- msgstr ""
217
-
218
- #: bulk.php:355
219
- msgid "%d images"
220
- msgstr "%d hình ảnh"
221
-
222
- #: common.php:3454
223
- msgid "Provide paths containing images to be optimized using \"Scan and Optimize\" on the Bulk Optimize page or by Scheduled Optimization."
224
- msgstr ""
225
-
226
- #: iocli.php:55
227
- msgctxt "string will be something like \"media\" or \"nextgen\""
228
- msgid "Optimizing %1$s with a %2$d second pause between images."
229
- msgstr ""
230
-
231
- #: iocli.php:52
232
- msgid "Forcing re-optimization of previously processed images."
233
- msgstr ""
234
-
235
- #: iocli.php:66 iocli.php:107 iocli.php:118 iocli.php:142 iocli.php:157
236
- msgid "Bulk status has been reset, starting from the beginning."
237
- msgstr ""
238
-
239
- #: iocli.php:172
240
- msgid "Bulk status has been reset, the next bulk operation will start from the beginning."
241
- msgstr ""
242
-
243
- #: iocli.php:174
244
- msgid "Please specify a valid library option, see \"wp-cli help ewwwio optimize\" for more information."
245
- msgstr ""
246
-
247
- #: common.php:1003 common.php:2927
248
- msgid "Unoptimized Images"
249
- msgstr "Các ảnh chưa được tối ưu"
250
-
251
- #: common.php:2934
252
- msgid "Optimize All Images"
253
- msgstr "Tối ưu tất cả ảnh"
254
-
255
- #: common.php:2953
256
- msgid "There are too many images to display."
257
- msgstr "Có quá nhiều ảnh để hiển thị."
258
-
259
- #: iocli.php:87 iocli.php:162
260
- msgid "%1$d images in other folders need optimizing."
261
- msgstr "%1$d ảnh trong các thư mục khác cần tối ưu."
262
-
263
- #: iocli.php:136
264
- msgid "NextGEN/Nextcellent not installed."
265
- msgstr "NextGEN/Nextcellent chưa được cài đặt."
266
-
267
- #: iocli.php:151
268
- msgid "Grand Flagallery not installed."
269
- msgstr "Grand Flagallery chưa được cài đặt."
270
-
271
- #: common.php:3463
272
- msgid "Disable Automatic Optimization"
273
- msgstr "Vô hiệu Tối Ưu Tự Động"
274
-
275
- #: common.php:3463
276
- msgid "Images will not be optimized on upload. Images may be optimized with the Bulk Optimize tools or with Scheduled optimization."
277
- msgstr "Các hình ảnh sẽ không được tối ưu lúc tải lên. Các hình ảnh có thể được tối ưu với các công cụ Bulk Optimize hoặc với Tối ưu đã lên lịch trình."
278
-
279
- #: common.php:3489
280
- msgid "Exclude full-size images from metadata removal"
281
- msgstr ""
282
-
283
- #: aux-optimize.php:9
284
- msgid "Scan and optimize"
285
- msgstr "Quét và tối ưu"
286
-
287
- #: aux-optimize.php:11
288
- msgid "Resume previous optimization"
289
- msgstr "Phục hồi trước tối ưu"
290
-
291
- #: aux-optimize.php:29
292
- msgid "Optimize Everything Else"
293
- msgstr "Tối ưu mọi thứ khác"
294
-
295
- #: aux-optimize.php:30
296
- msgid "Use this tool to optimize images outside of the Media Library and galleries where we have full integration. Examples: theme images, BuddyPress, WP Symposium, and any folders that you have specified on the settings page."
297
- msgstr ""
298
-
299
- #: aux-optimize.php:32
300
- msgid "The database schema has changed, you need to convert to the new format."
301
- msgstr ""
302
-
303
- #: aux-optimize.php:36
304
- msgid "Convert Table"
305
- msgstr "Chuyển đổi Bảng"
306
-
307
- #: aux-optimize.php:39
308
- msgid "There are no images to optimize."
309
- msgstr "Không có ảnh nào để tối ưu."
310
-
311
- #: aux-optimize.php:40 iocli.php:68 iocli.php:159
312
- msgid "Scanning, this could take a while"
313
- msgstr "Đang quét, việc này có thể mất một lúc"
314
-
315
- #: aux-optimize.php:42
316
- msgid "Last optimization was completed on %1$s at %2$s and optimized %3$d images"
317
- msgstr "Lần tối ưu cuối cùng được hoàn thành lúc %1$s tại %2$s và đã tối ưu %3$d ảnh"
318
-
319
- #: aux-optimize.php:46 bulk.php:57
320
- msgid "Optimize Again"
321
- msgstr "Tối ưu lần nữa"
322
-
323
- #: aux-optimize.php:51 bulk.php:63 flag-integration.php:105
324
- #: nextcellent-integration.php:296 nextgen-integration.php:258
325
- #: nextgen2-integration.php:303
326
- msgid "If you would like to start over again, press the Reset Status button to reset the bulk operation status."
327
- msgstr "Nếu bạn muốn bắt đầu lại một lần nữa, nhấn nút Đặt lại Trạng thái để thiết lập lại trạng thái hoạt động với số lượng lớn."
328
-
329
- #: aux-optimize.php:55 bulk.php:67 flag-integration.php:109
330
- #: nextcellent-integration.php:300 nextgen-integration.php:262
331
- #: nextgen2-integration.php:307
332
- msgid "Reset Status"
333
- msgstr "Đặt lại Trạng thái"
334
-
335
- #: aux-optimize.php:64
336
- msgid "The plugin keeps track of already optimized images to prevent re-optimization. There are %d images that have been optimized so far."
337
- msgstr "Plugin theo dõi những hình ảnh đã được tối ưu để ngăn ngừa tái tối ưu. Có %d hình ảnh đã được tối ưu cho đến nay."
338
-
339
- #: aux-optimize.php:66
340
- msgid "Show Optimized Images"
341
- msgstr "Hiện các ảnh đã được tối ưu"
342
-
343
- #: aux-optimize.php:74
344
- msgid "page"
345
- msgstr "trang"
346
-
347
- #: aux-optimize.php:74
348
- msgid "of"
349
- msgstr "của"
350
-
351
- #: aux-optimize.php:254 aux-optimize.php:296 aux-optimize.php:299
352
- msgid "Unknown Savings"
353
- msgstr ""
354
-
355
- #: aux-optimize.php:319
356
- msgid "Finished importing"
357
- msgstr "Nhập hoàn thành"
358
-
359
- #: aux-optimize.php:336 common.php:1830 common.php:2378 common.php:2387
360
- msgid "Previously Optimized"
361
- msgstr "Đã tối ưu trước đó"
362
-
363
- #: aux-optimize.php:339 common.php:1869 common.php:2314
364
- msgid "No savings"
365
- msgstr ""
366
-
367
- #: aux-optimize.php:346 bulk.php:122 common.php:1835
368
- #: ewww-image-optimizer.php:2029
369
- msgid "License exceeded"
370
- msgstr "Giấy phép đã quá hạn"
371
-
372
- #: aux-optimize.php:391
373
- msgid "Filename"
374
- msgstr "Tên tập tin"
375
-
376
- #: aux-optimize.php:391
377
- msgid "Image Type"
378
- msgstr "Loại Ảnh"
379
-
380
- #: aux-optimize.php:391 common.php:1088 common.php:1120 common.php:2691
381
- #: common.php:2939 flag-integration.php:374 nextcellent-integration.php:173
382
- #: nextgen-integration.php:142 nextgen2-integration.php:131
383
- #: nextgen2-integration.php:134
384
- msgid "Image Optimizer"
385
- msgstr "Trình tối ưu ảnh"
386
-
387
- #: aux-optimize.php:408 common.php:2809 common.php:2863
388
- #: flag-integration.php:431 flag-integration.php:440
389
- #: nextcellent-integration.php:229 nextcellent-integration.php:238
390
- #: nextgen-integration.php:198 nextgen-integration.php:205
391
- #: nextgen2-integration.php:215
392
- msgid "Image Size: %s"
393
- msgstr "Cỡ ảnh: %s"
394
-
395
- #: aux-optimize.php:408
396
- msgid "Remove from table"
397
- msgstr "Loại bỏ khỏi bảng"
398
-
399
- #: aux-optimize.php:666
400
- msgid "Nothing to optimize"
401
- msgstr "Không có gì để tối ưu"
402
-
403
- #: aux-optimize.php:695 aux-optimize.php:712 bulk.php:395 bulk.php:414
404
- #: flag-integration.php:277 flag-integration.php:296 iocli.php:210
405
- #: nextcellent-integration.php:411 nextcellent-integration.php:429
406
- #: nextgen-integration.php:358 nextgen-integration.php:375
407
- #: nextgen2-integration.php:435
408
- msgid "Optimizing"
409
- msgstr "Đang tối ưu"
410
-
411
- #: aux-optimize.php:732 bulk.php:502 mwebp.php:204
412
- #: nextcellent-integration.php:129 nextgen-integration.php:106
413
- msgid "Finished"
414
- msgstr "Đã xong"
415
-
416
- #: bulk.php:11 common.php:1002 common.php:2892 common.php:2894 common.php:3159
417
- #: common.php:3161 flag-integration.php:36 flag-integration.php:41
418
- #: flag-integration.php:46 flag-integration.php:73
419
- #: nextcellent-integration.php:37 nextcellent-integration.php:269
420
- #: nextgen-integration.php:33 nextgen-integration.php:234
421
- #: nextgen2-integration.php:37 nextgen2-integration.php:272
422
- #: nextgen2-integration.php:516
423
- msgid "Bulk Optimize"
424
- msgstr "Bulk Optimize"
425
-
426
- #: bulk.php:15 flag-integration.php:78 nextcellent-integration.php:274
427
- #: nextgen-integration.php:239 nextgen2-integration.php:277
428
- msgid "Start optimizing"
429
- msgstr "Bắt đầu tối ưu"
430
-
431
- #: bulk.php:17 flag-integration.php:80 nextcellent-integration.php:276
432
- #: nextgen-integration.php:241 nextgen2-integration.php:279
433
- msgid "Resume previous bulk operation"
434
- msgstr ""
435
-
436
- #: bulk.php:23
437
- msgid "Importing"
438
- msgstr ""
439
-
440
- #: bulk.php:28 flag-integration.php:87 nextcellent-integration.php:283
441
- #: nextgen2-integration.php:286
442
- msgid "Stop Optimizing"
443
- msgstr ""
444
-
445
- #: bulk.php:32
446
- msgid "You should import Media Library images into the table to prevent duplicate optimization."
447
- msgstr ""
448
-
449
- #: bulk.php:34
450
- msgid "Import Images"
451
- msgstr ""
452
-
453
- #: bulk.php:40 flag-integration.php:91 nextgen2-integration.php:290
454
- msgid "Force re-optimize"
455
- msgstr ""
456
-
457
- #: bulk.php:41 common.php:3415 flag-integration.php:92
458
- #: nextgen2-integration.php:291
459
- msgid "Choose how long to pause between images (in seconds, 0 = disabled)"
460
- msgstr ""
461
-
462
- #: bulk.php:44
463
- msgid "Optimize Media Library"
464
- msgstr ""
465
-
466
- #: bulk.php:46 flag-integration.php:68 nextcellent-integration.php:264
467
- #: nextgen-integration.php:229 nextgen2-integration.php:266
468
- msgid "You do not appear to have uploaded any images yet."
469
- msgstr ""
470
-
471
- #: bulk.php:50
472
- msgid "%1$d images in the Media Library have been selected, unable to determine how many resizes and how many are unoptimized."
473
- msgstr ""
474
-
475
- #: bulk.php:52 iocli.php:70 iocli.php:111
476
- msgid "%1$d images in the Media Library have been selected (%2$d unoptimized), with %3$d resizes (%4$d unoptimized)."
477
- msgstr "%1$d hình ảnh trong Thư viện Media đã được chọn (%2$d chưa được tối ưu), với %3$d thay đổi kích thước (%4$d chưa được tối ưu)."
478
-
479
- #: bulk.php:54 flag-integration.php:97 nextcellent-integration.php:288
480
- #: nextgen-integration.php:250 nextgen2-integration.php:296
481
- msgid "Previously optimized images will be skipped by default."
482
- msgstr "Các hình ảnh đã tối ưu trước đó sẽ được bỏ qua theo mặc định."
483
-
484
- #: bulk.php:449 common.php:1956 flag-integration.php:328 iocli.php:386
485
- #: iocli.php:430 iocli.php:510 iocli.php:582 nextcellent-integration.php:466
486
- #: nextgen-integration.php:403 nextgen2-integration.php:466
487
- msgid "Optimized image:"
488
- msgstr "Ảnh đã tối ưu:"
489
-
490
- #: bulk.php:451 iocli.php:218
491
- msgid "Skipped image, ID:"
492
- msgstr "Ảnh đã bỏ qua, ID:"
493
-
494
- #: bulk.php:455 flag-integration.php:329 iocli.php:222 iocli.php:431
495
- msgid "Full size – %s"
496
- msgstr "Cỡ đầy đủ - %s"
497
-
498
- #: bulk.php:470 common.php:1962 flag-integration.php:347 iocli.php:237
499
- #: iocli.php:392 iocli.php:449 iocli.php:527 iocli.php:592
500
- #: nextcellent-integration.php:123 nextcellent-integration.php:472
501
- #: nextgen-integration.php:100 nextgen-integration.php:413
502
- #: nextgen2-integration.php:483
503
- msgid "Elapsed: %.3f seconds"
504
- msgstr "Đã qua: %.3f giây"
505
-
506
- #: bulk.php:502
507
- msgid "Return to Media Library"
508
- msgstr "Trở lại Thư viện Media"
509
-
510
- #: common.php:711
511
- msgid "Settings saved"
512
- msgstr "Các thiết đặt đã lưu"
513
-
514
- #: common.php:1004 mwebp.php:5
515
- msgid "Migrate WebP Images"
516
- msgstr "Di chuyển các ảnh WebP"
517
-
518
- #: common.php:1023
519
- msgid "Image Store Optimize"
520
- msgstr "Tối ưu hình ảnh lưu trữ"
521
-
522
- #: common.php:1023
523
- msgid "Optimize"
524
- msgstr "Tối ưu"
525
-
526
- #: common.php:1077
527
- msgid "Image Store Optimization"
528
- msgstr "Tối ưu hình ảnh lưu trữ"
529
-
530
- #: common.php:1087
531
- msgid "Choose a gallery or"
532
- msgstr ""
533
-
534
- #: common.php:1087
535
- msgid "optimize all galleries"
536
- msgstr ""
537
-
538
- #: common.php:1088
539
- msgid "Gallery ID"
540
- msgstr ""
541
-
542
- #: common.php:1088
543
- msgid "Gallery Name"
544
- msgstr ""
545
-
546
- #: common.php:1088
547
- msgid "Images"
548
- msgstr ""
549
-
550
- #: common.php:1104 common.php:1119
551
- msgid "Optimize Gallery"
552
- msgstr ""
553
-
554
- #: common.php:1120 common.php:2939
555
- msgid "Title"
556
- msgstr ""
557
-
558
- #: common.php:1120 nextgen-integration.php:14 nextgen-integration.php:274
559
- msgid "Gallery"
560
- msgstr ""
561
-
562
- #: common.php:1203
563
- msgid "Settings"
564
- msgstr ""
565
-
566
- #: flag-integration.php:231 nextcellent-integration.php:137
567
- #: nextgen-integration.php:113 nextgen2-integration.php:96
568
- msgid "You don't have permission to work with uploaded files."
569
- msgstr ""
570
-
571
- #: common.php:1358 flag-integration.php:235 nextcellent-integration.php:141
572
- #: nextgen-integration.php:117 nextgen2-integration.php:100
573
- msgid "No attachment ID was provided."
574
- msgstr ""
575
-
576
- #: common.php:1401 common.php:1436
577
- msgid "Original Restored"
578
- msgstr ""
579
-
580
- #: common.php:1657
581
- msgid "used %1$d of %2$d, usage will reset in %3$d day."
582
- msgid_plural "used %1$d of %2$d, usage will reset in %3$d days."
583
- msgstr[0] "đã sử dụng %1$d của %2$d, việc sử dụng sẽ thiết đặt lại trong %3$d ngày."
584
-
585
- #: common.php:1881
586
- msgid "Reduced by %01.1f%% (%s)"
587
- msgstr ""
588
-
589
- #: common.php:2713
590
- msgid "Cloudinary image"
591
- msgstr ""
592
-
593
- #: common.php:2737
594
- msgid "Could not retrieve file path."
595
- msgstr ""
596
-
597
- #: common.php:2758 common.php:2769 common.php:2780
598
- #: ewww-image-optimizer.php:1365 ewww-image-optimizer.php:1636
599
- #: ewww-image-optimizer.php:1640 ewww-image-optimizer.php:1922
600
- #: flag-integration.php:405 flag-integration.php:411 flag-integration.php:417
601
- #: nextcellent-integration.php:201 nextcellent-integration.php:208
602
- #: nextcellent-integration.php:215 nextgen-integration.php:170
603
- #: nextgen-integration.php:177 nextgen-integration.php:184
604
- #: nextgen2-integration.php:174 nextgen2-integration.php:181
605
- #: nextgen2-integration.php:188
606
- msgid "%s is missing"
607
- msgstr ""
608
-
609
- #: common.php:2760
610
- msgid "JPG to PNG"
611
- msgstr ""
612
-
613
- #: common.php:2762
614
- msgid "WARNING: Removes metadata. Requires GD or ImageMagick. PNG is generally much better than JPG for logos and other images with a limited range of colors."
615
- msgstr ""
616
-
617
- #: common.php:2771
618
- msgid "PNG to JPG"
619
- msgstr "PNG sang JPG"
620
-
621
- #: common.php:2773
622
- msgid "WARNING: This is not a lossless conversion and requires GD or ImageMagick. JPG is much better than PNG for photographic use because it compresses the image and discards data. Transparent images will only be converted if a background color has been set."
623
- msgstr ""
624
-
625
- #: common.php:2782
626
- msgid "GIF to PNG"
627
- msgstr "GIF sang PNG"
628
-
629
- #: common.php:2784
630
- msgid "PNG is generally better than GIF, but does not support animation. Animated images will not be converted."
631
- msgstr ""
632
-
633
- #: common.php:2789 flag-integration.php:425 nextcellent-integration.php:223
634
- #: nextgen-integration.php:192 nextgen2-integration.php:196
635
- msgid "Unsupported file type"
636
- msgstr "Loại tập tin không được hỗ trợ"
637
-
638
- #: common.php:2814 flag-integration.php:435 nextcellent-integration.php:233
639
- #: nextgen-integration.php:201 nextgen2-integration.php:235
640
- msgid "Re-optimize"
641
- msgstr "Tối ưu lại"
642
-
643
- #: common.php:2841
644
- msgid "Restore original"
645
- msgstr "Phục hồi nguyên gốc"
646
-
647
- #: common.php:2861 flag-integration.php:439 nextcellent-integration.php:237
648
- #: nextgen-integration.php:204 nextgen2-integration.php:209
649
- msgid "Not processed"
650
- msgstr "Không được xử lý"
651
-
652
- #: common.php:2800 common.php:2866 flag-integration.php:444
653
- #: nextcellent-integration.php:242 nextgen-integration.php:208
654
- #: nextgen2-integration.php:239
655
- msgid "Optimize now!"
656
- msgstr ""
657
-
658
- #: common.php:3059
659
- msgid "Insertion successful"
660
- msgstr ""
661
-
662
- #: common.php:3061
663
- msgid "Insertion failed"
664
- msgstr ""
665
-
666
- #: common.php:3127
667
- msgid "Pngout was successfully installed, check the Plugin Status area for version information."
668
- msgstr ""
669
-
670
- #: common.php:3132
671
- msgid "Pngout was not installed: %1$s. Make sure this folder is writable: %2$s"
672
- msgstr ""
673
-
674
- #: common.php:3154
675
- msgid "Plugin Home Page"
676
- msgstr ""
677
-
678
- #: common.php:3155 ewww-image-optimizer.php:410 ewww-image-optimizer.php:536
679
- msgid "Installation Instructions"
680
- msgstr ""
681
-
682
- #: common.php:3156
683
- msgid "Plugin Support"
684
- msgstr "Hỗ trợ Plugin"
685
-
686
- #: common.php:3157
687
- msgid "Cloud Status"
688
- msgstr "Trạng thái Cloud"
689
-
690
- #: common.php:3159
691
- msgid "Media Library"
692
- msgstr "Thư viện Media"
693
-
694
- #: common.php:3163
695
- msgid "New images uploaded to the Media Library will be optimized automatically. If you have existing images you would like to optimize, you can use the %s tool."
696
- msgstr ""
697
-
698
- #: common.php:3171
699
- msgid "Plugin Status"
700
- msgstr "Trạng thái Plugin"
701
-
702
- #: common.php:3172
703
- msgid "All Clear"
704
- msgstr ""
705
-
706
- #: common.php:3173
707
- msgid "Requires Attention"
708
- msgstr ""
709
-
710
- #: common.php:3176
711
- msgid "Total Savings:"
712
- msgstr ""
713
-
714
- #: common.php:3178 common.php:3391
715
- msgid "Cloud optimization API Key"
716
- msgstr ""
717
-
718
- #: common.php:3181 common.php:3183
719
- msgid "Verified,"
720
- msgstr "Đã xác nhận"
721
-
722
- #: common.php:3185
723
- msgid "Not Verified"
724
- msgstr "Không được xác nhận"
725
-
726
- #: common.php:3197
727
- msgid "If updated versions are available below you may either download the newer versions and install them yourself, or uncheck \"Use System Paths\" and use the bundled tools."
728
- msgstr ""
729
-
730
- #: common.php:3198 common.php:3201
731
- msgid "Updates are optional, but may contain increased optimization or security patches"
732
- msgstr ""
733
-
734
- #: common.php:3200
735
- msgid "If updated versions are available below, you may need to enable write permission on the %s folder to use the automatic installs."
736
- msgstr ""
737
-
738
- #: common.php:3211 common.php:3221 common.php:3231 common.php:3241
739
- #: common.php:3251 common.php:3261 common.php:3285 common.php:3293
740
- #: common.php:3301 common.php:3309 common.php:3323 common.php:3329
741
- #: common.php:3337
742
- msgid "Installed"
743
- msgstr "Đã cài đặt"
744
-
745
- #: common.php:3211 common.php:3221 common.php:3231 common.php:3241
746
- #: common.php:3251 common.php:3261
747
- msgid "version"
748
- msgstr ""
749
-
750
- #: common.php:3213 common.php:3223 common.php:3233 common.php:3243
751
- #: common.php:3253 common.php:3263 common.php:3288 common.php:3296
752
- #: common.php:3304 common.php:3312 common.php:3326 common.php:3334
753
- #: common.php:3340
754
- msgid "Missing"
755
- msgstr ""
756
-
757
- #: common.php:3243
758
- msgid "Install"
759
- msgstr ""
760
-
761
- #: common.php:3243
762
- msgid "automatically"
763
- msgstr ""
764
-
765
- #: common.php:3243
766
- msgid "manually"
767
- msgstr ""
768
-
769
- #: common.php:3243
770
- msgid "Pngout is free closed-source software that can produce drastically reduced filesizes for PNGs, but can be very time consuming to process images"
771
- msgstr ""
772
-
773
- #: common.php:3269
774
- msgid "On"
775
- msgstr ""
776
-
777
- #: common.php:3272
778
- msgid "Off"
779
- msgstr "Tắt"
780
-
781
- #: common.php:3275
782
- msgid "Disabled"
783
- msgstr "Đã vô hiệu"
784
-
785
- #: common.php:3278
786
- msgid "Enabled"
787
- msgstr "Đã bật"
788
-
789
- #: common.php:3281
790
- msgid "%s only need one, used for conversion, not optimization"
791
- msgstr "%s chỉ cần một, được dùng cho chuyển đổi, không tối ưu"
792
-
793
- #: common.php:3281
794
- msgid "Graphics libraries"
795
- msgstr "Thư viện đồ họa"
796
-
797
- #: common.php:3319
798
- msgid "Only need one of these:"
799
- msgstr "Chỉ cần một trong những cái này:"
800
-
801
- #: common.php:3344 common.php:3348 common.php:3351
802
- msgid "command not found on your system"
803
- msgstr "lệnh không tìm thấy trên hệ thống của bạn"
804
-
805
- #: common.php:3348
806
- msgid "not required"
807
- msgstr "không yêu cầu"
808
-
809
- #: common.php:3351
810
- msgid "required for automatic pngout installer"
811
- msgstr "được yêu cầu cho trình cài đặt pngout tự động"
812
-
813
- #: common.php:3375
814
- msgid "Cloud Settings"
815
- msgstr "Thiết đặt Cloud"
816
-
817
- #: common.php:3376
818
- msgid "Basic Settings"
819
- msgstr "Thiết đặt Cơ bản"
820
-
821
- #: common.php:3377
822
- msgid "Advanced Settings"
823
- msgstr "Thiết đặt Nâng cao"
824
-
825
- #: common.php:3378
826
- msgid "Conversion Settings"
827
- msgstr "Thiết đặt Chuyển đổi"
828
-
829
- #: common.php:3389
830
- msgid "If exec() is disabled for security reasons (and enabling it is not an option), or you would like to offload image optimization to a third-party server, you may purchase an API key for our cloud optimization service. The API key should be entered below, and cloud optimization must be enabled for each image format individually."
831
- msgstr ""
832
-
833
- #: common.php:3389 common.php:3391 common.php:3410 common.php:3413
834
- msgid "Purchase an API key."
835
- msgstr "Mua một khóa API"
836
-
837
- #: common.php:3391
838
- msgid "API Key will be validated when you save your settings."
839
- msgstr ""
840
-
841
- #: common.php:3392
842
- msgid "JPG cloud optimization"
843
- msgstr ""
844
-
845
- #: common.php:3394
846
- msgid "PNG cloud optimization"
847
- msgstr ""
848
-
849
- #: common.php:3396
850
- msgid "extra PNG compression (slower)"
851
- msgstr ""
852
-
853
- #: common.php:3398
854
- msgid "GIF cloud optimization"
855
- msgstr ""
856
-
857
- #: common.php:3405
858
- msgid "Debugging"
859
- msgstr ""
860
-
861
- #: common.php:3405
862
- msgid "Use this to provide information for support purposes, or if you feel comfortable digging around in the code to fix a problem you are experiencing."
863
- msgstr ""
864
-
865
- #: common.php:3406
866
- msgid "Remove metadata"
867
- msgstr ""
868
-
869
- #: common.php:3407
870
- msgid "This will remove ALL metadata: EXIF and comments."
871
- msgstr ""
872
-
873
- #: common.php:3409
874
- msgid "Lossy JPG optimization"
875
- msgstr ""
876
-
877
- #: common.php:3409 common.php:3412 common.php:3509 common.php:3515
878
- #: common.php:3518
879
- msgid "WARNING:"
880
- msgstr ""
881
-
882
- #: common.php:3409 common.php:3412
883
- msgid "While most users will not notice a difference in image quality, lossy means there IS a loss in image quality."
884
- msgstr ""
885
-
886
- #: common.php:3412
887
- msgid "Lossy PNG optimization"
888
- msgstr ""
889
-
890
- #: common.php:3415
891
- msgid "Bulk Delay"
892
- msgstr ""
893
-
894
- #: common.php:3418
895
- msgid "Automatic Cloudinary upload"
896
- msgstr ""
897
-
898
- #: common.php:3418
899
- msgid "When enabled, uploads to the Media Library will be transferred to Cloudinary after optimization. Cloudinary generates resizes, so only the full-size image is uploaded."
900
- msgstr ""
901
-
902
- #: common.php:3428
903
- msgid "optipng optimization level"
904
- msgstr "Mức tối ưu optipng"
905
-
906
- #: common.php:3430 common.php:3431 common.php:3432 common.php:3433
907
- #: common.php:3434 common.php:3435 common.php:3436 common.php:3442
908
- #: common.php:3443 common.php:3444 common.php:3445
909
- msgid "Level %d"
910
- msgstr "Mức %d"
911
-
912
- #: common.php:3430
913
- msgid "%d trial"
914
- msgstr "Thử %d"
915
-
916
- #: common.php:3431 common.php:3432 common.php:3433 common.php:3434
917
- #: common.php:3435 common.php:3436
918
- msgid "%d trials"
919
- msgstr "Thử %d"
920
-
921
- #: common.php:3437 common.php:3446
922
- msgid "default"
923
- msgstr "mặc định"
924
-
925
- #: common.php:3438
926
- msgid "According to the author of optipng, 10 trials should satisfy most people, 30 trials should satisfy everyone."
927
- msgstr ""
928
-
929
- #: common.php:3440
930
- msgid "pngout optimization level"
931
- msgstr ""
932
-
933
- #: common.php:3442
934
- msgid "Xtreme! (Slowest)"
935
- msgstr ""
936
-
937
- #: common.php:3443
938
- msgid "Intense (Slow)"
939
- msgstr ""
940
-
941
- #: common.php:3444
942
- msgid "Longest Match (Fast)"
943
- msgstr ""
944
-
945
- #: common.php:3445
946
- msgid "Huffman Only (Faster)"
947
- msgstr ""
948
-
949
- #: common.php:3447
950
- msgid "If you have CPU cycles to spare, go with level %d"
951
- msgstr ""
952
-
953
- #: common.php:3450
954
- msgid "Scheduled optimization"
955
- msgstr ""
956
-
957
- #: common.php:3450
958
- msgid "This will enable scheduled optimization of unoptimized images for your theme, buddypress, and any additional folders you have configured below. Runs hourly: wp_cron only runs when your site is visited, so it may be even longer between optimizations."
959
- msgstr ""
960
-
961
- #: common.php:3452
962
- msgid "Folders to optimize"
963
- msgstr ""
964
-
965
- #: common.php:3452
966
- msgid "One path per line, must be within %s. Use full paths, not relative paths."
967
- msgstr ""
968
-
969
- #: common.php:3483
970
- msgid "Skip Small Images"
971
- msgstr ""
972
-
973
- #: common.php:3483
974
- msgid "Do not optimize images smaller than this (in bytes)"
975
- msgstr ""
976
-
977
- #: common.php:3485
978
- msgid "Skip Large PNG Images"
979
- msgstr ""
980
-
981
- #: common.php:3485
982
- msgid "Do not optimize PNG images larger than this (in bytes)"
983
- msgstr ""
984
-
985
- #: common.php:3487
986
- msgid "Exclude full-size images from lossy optimization"
987
- msgstr ""
988
-
989
- #: common.php:3491 ewww-image-optimizer.php:410
990
- msgid "Use System Paths"
991
- msgstr ""
992
-
993
- #: common.php:3491
994
- msgid "If you have already installed the utilities in a system location, such as %s or %s, use this to force the plugin to use those versions and skip the auto-installers."
995
- msgstr ""
996
-
997
- #: common.php:3493 common.php:3495 common.php:3497 common.php:3499
998
- msgid "disable"
999
- msgstr ""
1000
-
1001
- #: common.php:3503
1002
- msgid "Conversion is only available for images in the Media Library (except WebP). By default, all images have a link available in the Media Library for one-time conversion. Turning on individual conversion operations below will enable conversion filters any time an image is uploaded or modified."
1003
- msgstr ""
1004
-
1005
- #: common.php:3504
1006
- msgid "NOTE:"
1007
- msgstr ""
1008
-
1009
- #: common.php:3504
1010
- msgid "The plugin will attempt to update image locations for any posts that contain the images. You may still need to manually update locations/urls for converted images."
1011
- msgstr ""
1012
-
1013
- #: common.php:3507
1014
- msgid "Hide Conversion Links"
1015
- msgstr ""
1016
-
1017
- #: common.php:3507
1018
- msgid "Site or Network admins can use this to prevent other users from using the conversion links in the Media Library which bypass the settings below."
1019
- msgstr ""
1020
-
1021
- #: common.php:3508
1022
- msgid "Delete originals"
1023
- msgstr ""
1024
-
1025
- #: common.php:3508
1026
- msgid "This will remove the original image from the server after a successful conversion."
1027
- msgstr ""
1028
-
1029
- #: common.php:3509
1030
- msgid "JPG/PNG to WebP"
1031
- msgstr ""
1032
-
1033
- #: common.php:3509
1034
- msgid "JPG to WebP conversion is lossy, but quality loss is minimal. PNG to WebP conversion is lossless."
1035
- msgstr ""
1036
-
1037
- #: common.php:3510
1038
- msgid "Originals are never deleted, and WebP images should only be served to supported browsers."
1039
- msgstr ""
1040
-
1041
- #: common.php:3510
1042
- msgid "You can use the rewrite rules below to serve WebP images with Apache."
1043
- msgstr ""
1044
-
1045
- #: common.php:3515 common.php:3518 common.php:3525
1046
- msgid "enable %s to %s conversion"
1047
- msgstr ""
1048
-
1049
- #: common.php:3515
1050
- msgid "Removes metadata and increases cpu usage dramatically."
1051
- msgstr ""
1052
-
1053
- #: common.php:3516
1054
- msgid "PNG is generally much better than JPG for logos and other images with a limited range of colors. Checking this option will slow down JPG processing significantly, and you may want to enable it only temporarily."
1055
- msgstr ""
1056
-
1057
- #: common.php:3518
1058
- msgid "This is not a lossless conversion."
1059
- msgstr ""
1060
-
1061
- #: common.php:3519
1062
- msgid "JPG is generally much better than PNG for photographic use because it compresses the image and discards data. PNGs with transparency are not converted by default."
1063
- msgstr ""
1064
-
1065
- #: common.php:3520
1066
- msgid "JPG background color:"
1067
- msgstr ""
1068
-
1069
- #: common.php:3520
1070
- msgid "HEX format (#123def)"
1071
- msgstr ""
1072
-
1073
- #: common.php:3521
1074
- msgid "Background color is used only if the PNG has transparency. Leave this value blank to skip PNGs with transparency."
1075
- msgstr ""
1076
-
1077
- #: common.php:3522
1078
- msgid "JPG quality level:"
1079
- msgstr ""
1080
-
1081
- #: common.php:3522
1082
- msgid "Valid values are 1-100."
1083
- msgstr ""
1084
-
1085
- #: common.php:3523
1086
- msgid "If JPG quality is blank, the plugin will attempt to set the optimal quality level or default to 92. Remember, this is a lossy conversion, so you are losing pixels, and it is not recommended to actually set the level here unless you want noticable loss of image quality."
1087
- msgstr ""
1088
-
1089
- #: common.php:3525
1090
- msgid "No warnings here, just do it."
1091
- msgstr ""
1092
-
1093
- #: common.php:3526
1094
- msgid "PNG is generally better than GIF, but animated images cannot be converted."
1095
- msgstr ""
1096
-
1097
- #: common.php:3529
1098
- msgid "Save Changes"
1099
- msgstr ""
1100
-
1101
- #: common.php:3533
1102
- msgid "There are many ways to serve WebP images to visitors with supported browsers. You may choose any you wish, but it is recommended to serve them with an .htaccess file using mod_rewrite and mod_headers. The plugin can insert the rules for you if the file is writable, or you can edit .htaccess yourself."
1103
- msgstr ""
1104
-
1105
- #: common.php:3536
1106
- msgid "Rules verified successfully"
1107
- msgstr ""
1108
-
1109
- #: common.php:3552
1110
- msgid "The image to the right will display a WebP image with WEBP in white text, if your site is serving WebP images and your browser supports WebP."
1111
- msgstr ""
1112
-
1113
- #: common.php:3553
1114
- msgid "Insert Rewrite Rules"
1115
- msgstr ""
1116
-
1117
- #: ewww-image-optimizer.php:146
1118
- msgid "EWWW Image Optimizer is supported on Linux, FreeBSD, Mac OSX, and Windows"
1119
- msgstr ""
1120
-
1121
- #: ewww-image-optimizer.php:146
1122
- msgid "Unfortunately, the EWWW Image Optimizer plugin does not work with %s"
1123
- msgstr ""
1124
-
1125
- #: ewww-image-optimizer.php:248
1126
- msgid "EWWW Image Optimizer could not create the tool folder"
1127
- msgstr ""
1128
-
1129
- #: ewww-image-optimizer.php:248
1130
- msgid "Please adjust permissions or create the folder"
1131
- msgstr ""
1132
-
1133
- #: ewww-image-optimizer.php:410
1134
- msgid "EWWW Image Optimizer could not install tools in %s"
1135
- msgstr ""
1136
-
1137
- #: ewww-image-optimizer.php:410
1138
- msgid "Please adjust permissions or create the folder. If you have installed the tools elsewhere on your system, check the option to %s."
1139
- msgstr ""
1140
-
1141
- #: ewww-image-optimizer.php:410
1142
- msgid "For more details, visit the %1$s or the %2$s."
1143
- msgstr ""
1144
-
1145
- #: ewww-image-optimizer.php:410 ewww-image-optimizer.php:536
1146
- msgid "Settings Page"
1147
- msgstr ""
1148
-
1149
- #: ewww-image-optimizer.php:422
1150
- msgid "EWWW Image Optimizer requires exec(). Your system administrator has disabled this function."
1151
- msgstr ""
1152
-
1153
- #: ewww-image-optimizer.php:430
1154
- msgid "Safe Mode is turned on for PHP. This plugin cannot operate in Safe Mode."
1155
- msgstr ""
1156
-
1157
- #: ewww-image-optimizer.php:536
1158
- msgid "EWWW Image Optimizer uses %1$s, %2$s, %3$s, %4$s, %5$s, and %6$s. You are missing: %7$s. Please install via the %8$s or the %9$s."
1159
- msgstr ""
1160
-
1161
- #: ewww-image-optimizer.php:1170 ewww-image-optimizer.php:1295
1162
- #: ewww-image-optimizer.php:1302
1163
- msgid "Optimization skipped"
1164
- msgstr ""
1165
-
1166
- #: ewww-image-optimizer.php:1210
1167
- msgid "Missing finfo_file(), getimagesize() and mime_content_type() PHP functions"
1168
- msgstr ""
1169
-
1170
- #: ewww-image-optimizer.php:1361 ewww-image-optimizer.php:1918
1171
- msgid "%s is disabled"
1172
- msgstr ""
1173
-
1174
- #: ewww-image-optimizer.php:1404
1175
- msgid "Unable to write file"
1176
- msgstr ""
1177
-
1178
- #: ewww-image-optimizer.php:1407
1179
- msgid "Optimization failed"
1180
- msgstr ""
1181
-
1182
- #: ewww-image-optimizer.php:1632
1183
- msgid "png tools are disabled"
1184
- msgstr ""
1185
-
1186
- #: ewww-image-optimizer.php:2077
1187
- msgid "You don't have permission to install image optimizer utilities."
1188
- msgstr ""
1189
-
1190
- #: ewww-image-optimizer.php:2083
1191
- msgid "tar command not found"
1192
- msgstr ""
1193
-
1194
- #: ewww-image-optimizer.php:2102 ewww-image-optimizer.php:2121
1195
- #: ewww-image-optimizer.php:2139
1196
- msgid "could not move pngout"
1197
- msgstr ""
1198
-
1199
- #: ewww-image-optimizer.php:2105 ewww-image-optimizer.php:2124
1200
- msgid "could not set permissions"
1201
- msgstr ""
1202
-
1203
- #: flag-integration.php:96 iocli.php:75 iocli.php:83 iocli.php:125
1204
- #: iocli.php:147 nextgen2-integration.php:295
1205
- msgid "%1$d images have been selected (%2$d unoptimized), with %3$d resizes (%4$d unoptimized)."
1206
- msgstr ""
1207
-
1208
- #: flag-integration.php:335 iocli.php:437
1209
- msgid "Optimized size – %s"
1210
- msgstr ""
1211
-
1212
- #: flag-integration.php:342 iocli.php:444 nextcellent-integration.php:120
1213
- #: nextgen-integration.php:97
1214
- msgid "Thumbnail – %s"
1215
- msgstr ""
1216
-
1217
- #: flag-integration.php:368 iocli.php:251 iocli.php:400 iocli.php:462
1218
- #: iocli.php:541 iocli.php:605 nextcellent-integration.php:493
1219
- #: nextgen-integration.php:433 nextgen2-integration.php:504
1220
- msgid "Finished Optimization!"
1221
- msgstr ""
1222
-
1223
- #: mwebp.php:6
1224
- msgid "The migration is split into two parts. First, the plugin needs to scan all folders for webp images. Once it has obtained the list of images to rename, it will proceed with the renaming"
1225
- msgstr ""
1226
-
1227
- #: mwebp.php:7
1228
- msgid "Start Migration"
1229
- msgstr ""
1230
-
1231
- #: mwebp.php:93
1232
- msgid "Scanning"
1233
- msgstr ""
1234
-
1235
- #: mwebp.php:114
1236
- msgid "%d Webp images left to rename."
1237
- msgstr ""
1238
-
1239
- #: mwebp.php:200
1240
- msgid "Skipped:"
1241
- msgstr ""
1242
-
1243
- #: nextcellent-integration.php:38 nextcellent-integration.php:97
1244
- #: nextgen-integration.php:34 nextgen-integration.php:74
1245
- #: nextgen2-integration.php:38
1246
- msgid "Bulk Thumbnail Optimize"
1247
- msgstr ""
1248
-
1249
- #: nextcellent-integration.php:86 nextgen-integration.php:60
1250
- msgid "The thumbnails for your new images have not been optimized."
1251
- msgstr ""
1252
-
1253
- #: nextcellent-integration.php:86 nextgen-integration.php:64
1254
- msgid "Optimize Thumbs"
1255
- msgstr ""
1256
-
1257
- #: nextcellent-integration.php:110 nextgen-integration.php:87
1258
- msgid "Processing"
1259
- msgstr ""
1260
-
1261
- #: common.php:2928 iocli.php:78 iocli.php:131 nextcellent-integration.php:287
1262
- #: nextgen-integration.php:249
1263
- msgid "We have %d images to optimize."
1264
- msgstr ""
1265
-
1266
- #: nextcellent-integration.php:318
1267
- msgid "Galleries"
1268
- msgstr ""
1269
-
1270
- #: iocli.php:516 iocli.php:583 nextcellent-integration.php:467
1271
- #: nextgen-integration.php:404 nextgen2-integration.php:472
1272
- msgid "Full size - %s"
1273
- msgstr ""
1274
-
1275
- #: iocli.php:519 iocli.php:589 nextcellent-integration.php:469
1276
- #: nextgen-integration.php:410 nextgen2-integration.php:475
1277
- msgid "Thumbnail - %s"
1278
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: optimize, image, convert, webp, resize, compress, lazy load, optimization,
5
  Requires at least: 5.6
6
  Tested up to: 5.9
7
  Requires PHP: 7.2
8
- Stable tag: 6.4.2
9
  License: GPLv3
10
 
11
  Smaller Images, Faster Sites, Happier Visitors. Comprehensive image optimization that doesn't require a degree in rocket science.
@@ -137,6 +137,14 @@ That's not a question, but since I made it up, I'll answer it. See this resource
137
  * Feature requests can be viewed and submitted on our [feedback portal](https://feedback.ewww.io/b/features)
138
  * If you would like to help translate this plugin in your language, [join the team](https://translate.wordpress.org/projects/wp-plugins/ewww-image-optimizer/)
139
 
 
 
 
 
 
 
 
 
140
  = 6.4.2 =
141
  * added: JS/Picture WebP rewriters support FacetWP AJAX responses
142
  * fixed: errors from posix_getpwuid() and posix_getgrgid() not handled correctly
5
  Requires at least: 5.6
6
  Tested up to: 5.9
7
  Requires PHP: 7.2
8
+ Stable tag: 6.5.0
9
  License: GPLv3
10
 
11
  Smaller Images, Faster Sites, Happier Visitors. Comprehensive image optimization that doesn't require a degree in rocket science.
137
  * Feature requests can be viewed and submitted on our [feedback portal](https://feedback.ewww.io/b/features)
138
  * If you would like to help translate this plugin in your language, [join the team](https://translate.wordpress.org/projects/wp-plugins/ewww-image-optimizer/)
139
 
140
+ = 6.5.0 =
141
+ * added: Lazy Load and Easy IO support for multiple background images and mixing with gradients
142
+ * changed: all Easy IO settings available to all plan levels
143
+ * changed: Easy IO CDN image links constrained to 2560px, use EIO_PRESERVE_LINKED_IMAGES to override
144
+ * fixed: database upgrade fails on MySQL 5.6
145
+ * fixed: LQIP and SVG placeholder options not auto-loaded correctly
146
+ * fixed: regression in legacy translation loader
147
+
148
  = 6.4.2 =
149
  * added: JS/Picture WebP rewriters support FacetWP AJAX responses
150
  * fixed: errors from posix_getpwuid() and posix_getgrgid() not handled correctly
unique.php CHANGED
@@ -158,8 +158,10 @@ function ewww_image_optimizer_set_defaults() {
158
  add_option( 'exactdn_lossy', true );
159
  add_option( 'exactdn_exclude', '' );
160
  add_option( 'exactdn_sub_folder', false );
 
161
  add_option( 'ewww_image_optimizer_lazy_load', false );
162
- add_option( 'ewww_image_optimizer_ll_autoscale', true );
 
163
  add_option( 'ewww_image_optimizer_ll_exclude', '' );
164
  add_option( 'ewww_image_optimizer_ll_all_things', '' );
165
  add_option( 'ewww_image_optimizer_disable_pngout', true );
@@ -188,6 +190,7 @@ function ewww_image_optimizer_set_defaults() {
188
  add_site_option( 'exactdn_all_the_things', true );
189
  add_site_option( 'exactdn_lossy', true );
190
  add_site_option( 'exactdn_sub_folder', false );
 
191
  add_site_option( 'ewww_image_optimizer_ll_autoscale', true );
192
  }
193
 
158
  add_option( 'exactdn_lossy', true );
159
  add_option( 'exactdn_exclude', '' );
160
  add_option( 'exactdn_sub_folder', false );
161
+ add_option( 'exactdn_prevent_db_queries', true );
162
  add_option( 'ewww_image_optimizer_lazy_load', false );
163
+ add_option( 'ewww_image_optimizer_use_siip', false );
164
+ add_option( 'ewww_image_optimizer_use_lqip', false );
165
  add_option( 'ewww_image_optimizer_ll_exclude', '' );
166
  add_option( 'ewww_image_optimizer_ll_all_things', '' );
167
  add_option( 'ewww_image_optimizer_disable_pngout', true );
190
  add_site_option( 'exactdn_all_the_things', true );
191
  add_site_option( 'exactdn_lossy', true );
192
  add_site_option( 'exactdn_sub_folder', false );
193
+ add_site_option( 'exactdn_prevent_db_queries', true );
194
  add_site_option( 'ewww_image_optimizer_ll_autoscale', true );
195
  }
196