Version Description
- multilanguage support
- add retinas count to the ShortPixel Compression column
- add option not to automatically optimize Media Library images when added
- fix the size bug happening when optimizing main image then optimizing only thumbnails with resize active
- restrict log messages to SHORTPIXEL_DEBUG instead of WP_DEBUG
- fix compatibility with WP < 3.9
- fix compatibility with watermarking plugins like Image Watermark
- fix compatibility with WPBakery Visual Composer
Download this release
Release Info
Developer | ShortPixel |
Plugin | ShortPixel Image Optimizer |
Version | 4.2.0 |
Comparing to | |
See all releases |
Code changes from version 4.1.7 to 4.2.0
- class/db/shortpixel-custom-meta-dao.php +7 -7
- class/db/shortpixel-meta-facade.php +37 -7
- class/model/shortpixel-folder.php +2 -2
- class/model/shortpixel-meta.php +9 -1
- class/view/shortpixel-list-table.php +40 -30
- class/view/shortpixel_view.php +338 -238
- class/wp-shortpixel-settings.php +5 -1
- lang/shortpixel-de_DE.mo +0 -0
- lang/shortpixel-de_DE.po +1461 -0
- lang/shortpixel-en_US.mo +0 -0
- lang/shortpixel-en_US.po +1461 -0
- lang/shortpixel-fr_FR.mo +0 -0
- lang/shortpixel-fr_FR.po +1461 -0
- lang/shortpixel-ro_RO.mo +0 -0
- lang/shortpixel-ro_RO.po +1478 -0
- lang/shortpixel.pot +1461 -0
- readme.txt +15 -2
- res/js/jquery.tooltip.js +3 -3
- res/js/short-pixel.js +42 -27
- shortpixel_api.php +33 -48
- wp-shortpixel-req.php +14 -0
- wp-shortpixel.php +135 -84
class/db/shortpixel-custom-meta-dao.php
CHANGED
@@ -184,11 +184,11 @@ class ShortPixelCustomMetaDao {
|
|
184 |
WpShortPixelDb::checkCustomTables(); // check if custom tables are created, if not, create them
|
185 |
$addedFolder = ShortPixelFolder::checkFolder($path, $uploadPath);
|
186 |
if($this->getFolder($addedFolder)) {
|
187 |
-
return
|
188 |
}
|
189 |
if(strpos($addedFolder, $rootPath) !== 0) {
|
190 |
|
191 |
-
return(
|
192 |
}
|
193 |
$folder = new ShortPixelFolder(array("path" => $addedFolder));
|
194 |
try {
|
@@ -197,11 +197,11 @@ class ShortPixelCustomMetaDao {
|
|
197 |
return $ex->getMessage();
|
198 |
}
|
199 |
if(ShortPixelMetaFacade::isMediaSubfolder($folder->getPath())) {
|
200 |
-
return
|
201 |
}
|
202 |
$folderMsg = $this->saveFolder($folder);
|
203 |
if(!$folder->getId()) {
|
204 |
-
throw new Exception(
|
205 |
}
|
206 |
//die(var_dump($folder));
|
207 |
if(!$folderMsg) {
|
@@ -221,7 +221,7 @@ class ShortPixelCustomMetaDao {
|
|
221 |
if($addedPath) {
|
222 |
//first check if it does contain the Backups Folder - we don't allow that
|
223 |
if(ShortPixelFolder::checkFolderIsSubfolder(SP_BACKUP_FOLDER, $addedPath)) {
|
224 |
-
return
|
225 |
}
|
226 |
$customFolderPaths = array_map(array('ShortPixelFolder','path'), $this->getFolders());
|
227 |
$allFolders = $this->getFolders(true);
|
@@ -244,10 +244,10 @@ class ShortPixelCustomMetaDao {
|
|
244 |
}
|
245 |
}
|
246 |
//var_dump($allFolders);
|
247 |
-
return
|
248 |
}
|
249 |
} else {
|
250 |
-
return
|
251 |
}
|
252 |
}
|
253 |
|
184 |
WpShortPixelDb::checkCustomTables(); // check if custom tables are created, if not, create them
|
185 |
$addedFolder = ShortPixelFolder::checkFolder($path, $uploadPath);
|
186 |
if($this->getFolder($addedFolder)) {
|
187 |
+
return __('Folder already added.','shortpixel');
|
188 |
}
|
189 |
if(strpos($addedFolder, $rootPath) !== 0) {
|
190 |
|
191 |
+
return( sprintf(__('The %s folder cannot be processed as it\'s not inside the root path of your website.','shortpixel'),$addedFolder));
|
192 |
}
|
193 |
$folder = new ShortPixelFolder(array("path" => $addedFolder));
|
194 |
try {
|
197 |
return $ex->getMessage();
|
198 |
}
|
199 |
if(ShortPixelMetaFacade::isMediaSubfolder($folder->getPath())) {
|
200 |
+
return __('This folder contains Media Library images. To optimize Media Library images please go to <a href="upload.php?mode=list">Media Library list view</a> or to <a href="upload.php?page=wp-short-pixel-bulk">SortPixel Bulk page</a>.','shortpixel');
|
201 |
}
|
202 |
$folderMsg = $this->saveFolder($folder);
|
203 |
if(!$folder->getId()) {
|
204 |
+
throw new Exception(__('Inserted folder doesn\'t have an ID!','shortpixel'));
|
205 |
}
|
206 |
//die(var_dump($folder));
|
207 |
if(!$folderMsg) {
|
221 |
if($addedPath) {
|
222 |
//first check if it does contain the Backups Folder - we don't allow that
|
223 |
if(ShortPixelFolder::checkFolderIsSubfolder(SP_BACKUP_FOLDER, $addedPath)) {
|
224 |
+
return __('This folder contains the ShortPixel Backups. Please select a different folder.','shortpixel');
|
225 |
}
|
226 |
$customFolderPaths = array_map(array('ShortPixelFolder','path'), $this->getFolders());
|
227 |
$allFolders = $this->getFolders(true);
|
244 |
}
|
245 |
}
|
246 |
//var_dump($allFolders);
|
247 |
+
return sprintf(__('Folder already included in %s.','shortpixel'),$parent);
|
248 |
}
|
249 |
} else {
|
250 |
+
return __('Folder does not exist.','shortpixel');
|
251 |
}
|
252 |
}
|
253 |
|
class/db/shortpixel-meta-facade.php
CHANGED
@@ -38,6 +38,7 @@ class ShortPixelMetaFacade {
|
|
38 |
$this->meta = $this->spMetaDao->getMeta($this->ID);
|
39 |
} else {
|
40 |
$rawMeta = wp_get_attachment_metadata($this->ID);
|
|
|
41 |
$this->meta = self::rawMetaToMeta($this->ID, $rawMeta);
|
42 |
$this->rawMeta = $rawMeta;
|
43 |
}
|
@@ -54,6 +55,7 @@ class ShortPixelMetaFacade {
|
|
54 |
"message" =>(isset($rawMeta["ShortPixelImprovement"]) ? $rawMeta["ShortPixelImprovement"] : null),
|
55 |
"compressionType" =>(isset($rawMeta["ShortPixel"]["type"]) ? ($rawMeta["ShortPixel"]["type"] == "lossy" ? 1 : 0) : null),
|
56 |
"thumbsOpt" =>(isset($rawMeta["ShortPixel"]["thumbsOpt"]) ? $rawMeta["ShortPixel"]["thumbsOpt"] : null),
|
|
|
57 |
"thumbsTodo" =>(isset($rawMeta["ShortPixel"]["thumbsTodo"]) ? $rawMeta["ShortPixel"]["thumbsTodo"] : false),
|
58 |
"backup" => !isset($rawMeta['ShortPixel']['NoBackup']),
|
59 |
"status" => (!isset($rawMeta["ShortPixel"]) ? 0
|
@@ -73,6 +75,12 @@ class ShortPixelMetaFacade {
|
|
73 |
}
|
74 |
}
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
function updateMeta($newMeta = null) {
|
77 |
if($newMeta) {
|
78 |
$this->meta = $newMeta;
|
@@ -87,14 +95,14 @@ class ShortPixelMetaFacade {
|
|
87 |
$duplicates = ShortPixelMetaFacade::getWPMLDuplicates($this->ID);
|
88 |
foreach($duplicates as $_ID) {
|
89 |
$rawMeta = wp_get_attachment_metadata($_ID);
|
90 |
-
|
91 |
-
|
92 |
-
}
|
93 |
$rawMeta['ShortPixel']['type'] = ($this->meta->getCompressionType() == 1 ? "lossy" : "lossless");
|
94 |
$rawMeta['ShortPixel']['exifKept'] = $this->meta->getKeepExif();
|
95 |
$rawMeta['ShortPixel']['date'] = date("Y-m-d", strtotime($this->meta->getTsOptimized()));
|
96 |
//thumbs were processed if settings or if they were explicitely requested
|
97 |
$rawMeta['ShortPixel']['thumbsOpt'] = $this->meta->getThumbsOpt();
|
|
|
98 |
//if thumbsTodo - this means there was an explicit request to process thumbs for an image that was previously processed without
|
99 |
// don't update the ShortPixelImprovement ratio as this is only calculated based on main image
|
100 |
if($this->meta->getThumbsTodo()) {
|
@@ -132,6 +140,7 @@ class ShortPixelMetaFacade {
|
|
132 |
$this->meta->setRetries($this->meta->getRetries() + $count);
|
133 |
$this->updateMeta();
|
134 |
} else {
|
|
|
135 |
$this->rawMeta['ShortPixel']['Retries'] = isset($this->rawMeta['ShortPixel']['Retries']) ? $this->rawMeta['ShortPixel']['Retries'] + $count : $count;
|
136 |
$this->meta->setRetries($this->rawMeta['ShortPixel']['Retries']);
|
137 |
wp_update_attachment_metadata($this->ID, $this->rawMeta);
|
@@ -155,7 +164,7 @@ class ShortPixelMetaFacade {
|
|
155 |
}
|
156 |
|
157 |
function setError($errorCode, $errorMessage) {
|
158 |
-
$this->meta->setMessage('Error: <i>' . $errorMessage . '</i>');
|
159 |
$this->meta->setStatus($errorCode);
|
160 |
if($this->type == self::CUSTOM_TYPE) {
|
161 |
if($errorCode == ShortPixelAPI::ERR_FILE_NOT_FOUND) {
|
@@ -170,7 +179,19 @@ class ShortPixelMetaFacade {
|
|
170 |
}
|
171 |
}
|
172 |
|
173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
if($this->type == self::CUSTOM_TYPE) {
|
175 |
$meta = $this->getMeta();
|
176 |
$urlList[] = str_replace(get_home_path(), network_site_url("/"), $meta->getPath());
|
@@ -186,7 +207,9 @@ class ShortPixelMetaFacade {
|
|
186 |
$urlList[] = $url;
|
187 |
$path = get_attached_file($this->ID);//get the full file PATH
|
188 |
$filePath[] = $path;
|
189 |
-
$
|
|
|
|
|
190 |
|
191 |
$meta = $this->getMeta();
|
192 |
$sizes = $meta->getThumbs();
|
@@ -201,7 +224,9 @@ class ShortPixelMetaFacade {
|
|
201 |
$tPath = str_replace(ShortPixelAPI::MB_basename($filePath[0]), $thumbnailInfo['file'], $path);
|
202 |
$urlList[] = $tUrl;
|
203 |
$filePath[] = $tPath;
|
204 |
-
$
|
|
|
|
|
205 |
}
|
206 |
}
|
207 |
if(!count($sizes)) {
|
@@ -226,6 +251,11 @@ class ShortPixelMetaFacade {
|
|
226 |
}
|
227 |
}
|
228 |
|
|
|
|
|
|
|
|
|
|
|
229 |
public static function getWPMLDuplicates( $id ) {
|
230 |
global $wpdb;
|
231 |
|
38 |
$this->meta = $this->spMetaDao->getMeta($this->ID);
|
39 |
} else {
|
40 |
$rawMeta = wp_get_attachment_metadata($this->ID);
|
41 |
+
$this->sanitizeMeta($rawMeta);
|
42 |
$this->meta = self::rawMetaToMeta($this->ID, $rawMeta);
|
43 |
$this->rawMeta = $rawMeta;
|
44 |
}
|
55 |
"message" =>(isset($rawMeta["ShortPixelImprovement"]) ? $rawMeta["ShortPixelImprovement"] : null),
|
56 |
"compressionType" =>(isset($rawMeta["ShortPixel"]["type"]) ? ($rawMeta["ShortPixel"]["type"] == "lossy" ? 1 : 0) : null),
|
57 |
"thumbsOpt" =>(isset($rawMeta["ShortPixel"]["thumbsOpt"]) ? $rawMeta["ShortPixel"]["thumbsOpt"] : null),
|
58 |
+
"retinasOpt" =>(isset($rawMeta["ShortPixel"]["retinasOpt"]) ? $rawMeta["ShortPixel"]["retinasOpt"] : null),
|
59 |
"thumbsTodo" =>(isset($rawMeta["ShortPixel"]["thumbsTodo"]) ? $rawMeta["ShortPixel"]["thumbsTodo"] : false),
|
60 |
"backup" => !isset($rawMeta['ShortPixel']['NoBackup']),
|
61 |
"status" => (!isset($rawMeta["ShortPixel"]) ? 0
|
75 |
}
|
76 |
}
|
77 |
|
78 |
+
function sanitizeMeta($rawMeta){
|
79 |
+
if(!is_array($rawMeta)) {
|
80 |
+
$rawMeta = array("previous_meta" => $rawMeta, 'ShortPixel' => array());
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
function updateMeta($newMeta = null) {
|
85 |
if($newMeta) {
|
86 |
$this->meta = $newMeta;
|
95 |
$duplicates = ShortPixelMetaFacade::getWPMLDuplicates($this->ID);
|
96 |
foreach($duplicates as $_ID) {
|
97 |
$rawMeta = wp_get_attachment_metadata($_ID);
|
98 |
+
$this->sanitizeMeta($rawMeta);
|
99 |
+
|
|
|
100 |
$rawMeta['ShortPixel']['type'] = ($this->meta->getCompressionType() == 1 ? "lossy" : "lossless");
|
101 |
$rawMeta['ShortPixel']['exifKept'] = $this->meta->getKeepExif();
|
102 |
$rawMeta['ShortPixel']['date'] = date("Y-m-d", strtotime($this->meta->getTsOptimized()));
|
103 |
//thumbs were processed if settings or if they were explicitely requested
|
104 |
$rawMeta['ShortPixel']['thumbsOpt'] = $this->meta->getThumbsOpt();
|
105 |
+
$rawMeta['ShortPixel']['retinasOpt'] = $this->meta->getRetinasOpt();
|
106 |
//if thumbsTodo - this means there was an explicit request to process thumbs for an image that was previously processed without
|
107 |
// don't update the ShortPixelImprovement ratio as this is only calculated based on main image
|
108 |
if($this->meta->getThumbsTodo()) {
|
140 |
$this->meta->setRetries($this->meta->getRetries() + $count);
|
141 |
$this->updateMeta();
|
142 |
} else {
|
143 |
+
if(!isset($this->rawMeta['ShortPixel'])) {$this->rawMeta['ShortPixel'] = array();}
|
144 |
$this->rawMeta['ShortPixel']['Retries'] = isset($this->rawMeta['ShortPixel']['Retries']) ? $this->rawMeta['ShortPixel']['Retries'] + $count : $count;
|
145 |
$this->meta->setRetries($this->rawMeta['ShortPixel']['Retries']);
|
146 |
wp_update_attachment_metadata($this->ID, $this->rawMeta);
|
164 |
}
|
165 |
|
166 |
function setError($errorCode, $errorMessage) {
|
167 |
+
$this->meta->setMessage(__('Error','shortpixel') . ': <i>' . $errorMessage . '</i>');
|
168 |
$this->meta->setStatus($errorCode);
|
169 |
if($this->type == self::CUSTOM_TYPE) {
|
170 |
if($errorCode == ShortPixelAPI::ERR_FILE_NOT_FOUND) {
|
179 |
}
|
180 |
}
|
181 |
|
182 |
+
function setMessage($message) {
|
183 |
+
$this->meta->setMessage($message);
|
184 |
+
$this->meta->setStatus(-1);
|
185 |
+
if($this->type == self::CUSTOM_TYPE) {
|
186 |
+
$this->spMetaDao->update($this->meta);
|
187 |
+
} else {
|
188 |
+
$this->rawMeta['ShortPixelImprovement'] = $this->meta->getMessage();
|
189 |
+
unset($this->rawMeta['ShortPixel']['WaitingProcessing']);
|
190 |
+
wp_update_attachment_metadata($this->ID, $this->rawMeta);
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
public function getURLsAndPATHs($processThumbnails, $onlyThumbs = false, $addRetina = true) {
|
195 |
if($this->type == self::CUSTOM_TYPE) {
|
196 |
$meta = $this->getMeta();
|
197 |
$urlList[] = str_replace(get_home_path(), network_site_url("/"), $meta->getPath());
|
207 |
$urlList[] = $url;
|
208 |
$path = get_attached_file($this->ID);//get the full file PATH
|
209 |
$filePath[] = $path;
|
210 |
+
if($addRetina) {
|
211 |
+
$this->addRetina($path, $url, $filePath, $urlList);
|
212 |
+
}
|
213 |
|
214 |
$meta = $this->getMeta();
|
215 |
$sizes = $meta->getThumbs();
|
224 |
$tPath = str_replace(ShortPixelAPI::MB_basename($filePath[0]), $thumbnailInfo['file'], $path);
|
225 |
$urlList[] = $tUrl;
|
226 |
$filePath[] = $tPath;
|
227 |
+
if($addRetina) {
|
228 |
+
$this->addRetina($tPath, $tUrl, $filePath, $urlList);
|
229 |
+
}
|
230 |
}
|
231 |
}
|
232 |
if(!count($sizes)) {
|
251 |
}
|
252 |
}
|
253 |
|
254 |
+
public static function isRetina($path) {
|
255 |
+
$baseName = pathinfo(ShortPixelAPI::MB_basename($path), PATHINFO_FILENAME);
|
256 |
+
return strpos($baseName, "@2x") == strlen($baseName) - 3;
|
257 |
+
}
|
258 |
+
|
259 |
public static function getWPMLDuplicates( $id ) {
|
260 |
global $wpdb;
|
261 |
|
class/model/shortpixel-folder.php
CHANGED
@@ -73,7 +73,7 @@ class ShortPixelFolder extends ShortPixelEntity{
|
|
73 |
}
|
74 |
$ignore = array('.','..');
|
75 |
if(!is_writable($path)) {
|
76 |
-
throw new SpFileRightsException(
|
77 |
}
|
78 |
$files = scandir($path);
|
79 |
foreach($files as $t) {
|
@@ -146,7 +146,7 @@ class ShortPixelFolder extends ShortPixelEntity{
|
|
146 |
protected static function getFolderContentsChangeDateRecursive($path, $mtime, $refMtime) {
|
147 |
$ignore = array('.','..');
|
148 |
if(!is_writable($path)) {
|
149 |
-
throw new SpFileRightsException(
|
150 |
}
|
151 |
$files = scandir($path);
|
152 |
$mtime = max($mtime, filemtime($path));
|
73 |
}
|
74 |
$ignore = array('.','..');
|
75 |
if(!is_writable($path)) {
|
76 |
+
throw new SpFileRightsException(sprintf(__('Folder %s is not writeable. Please check permissions and try again.','shortpixel'),$path));
|
77 |
}
|
78 |
$files = scandir($path);
|
79 |
foreach($files as $t) {
|
146 |
protected static function getFolderContentsChangeDateRecursive($path, $mtime, $refMtime) {
|
147 |
$ignore = array('.','..');
|
148 |
if(!is_writable($path)) {
|
149 |
+
throw new SpFileRightsException(sprintf(__('Folder %s is not writeable. Please check permissions and try again.','shortpixel'),$path));
|
150 |
}
|
151 |
$files = scandir($path);
|
152 |
$mtime = max($mtime, filemtime($path));
|
class/model/shortpixel-meta.php
CHANGED
@@ -12,6 +12,7 @@ class ShortPixelMeta extends ShortPixelEntity{
|
|
12 |
protected $compressionType;
|
13 |
protected $compressedSize;
|
14 |
protected $thumbsOpt;
|
|
|
15 |
protected $thumbsTodo;
|
16 |
protected $keepExif;
|
17 |
protected $cmyk2rgb;
|
@@ -135,8 +136,15 @@ class ShortPixelMeta extends ShortPixelEntity{
|
|
135 |
function setThumbsOpt($thumbsOpt) {
|
136 |
$this->thumbsOpt = $thumbsOpt;
|
137 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
|
139 |
-
|
140 |
return $this->thumbsTodo;
|
141 |
}
|
142 |
|
12 |
protected $compressionType;
|
13 |
protected $compressedSize;
|
14 |
protected $thumbsOpt;
|
15 |
+
protected $retinasOpt;
|
16 |
protected $thumbsTodo;
|
17 |
protected $keepExif;
|
18 |
protected $cmyk2rgb;
|
136 |
function setThumbsOpt($thumbsOpt) {
|
137 |
$this->thumbsOpt = $thumbsOpt;
|
138 |
}
|
139 |
+
function getRetinasOpt() {
|
140 |
+
return $this->retinasOpt;
|
141 |
+
}
|
142 |
+
|
143 |
+
function setRetinasOpt($retinasOpt) {
|
144 |
+
$this->retinasOpt = $retinasOpt;
|
145 |
+
}
|
146 |
|
147 |
+
function getThumbsTodo() {
|
148 |
return $this->thumbsTodo;
|
149 |
}
|
150 |
|
class/view/shortpixel-list-table.php
CHANGED
@@ -12,8 +12,8 @@ class ShortPixelListTable extends WP_List_Table {
|
|
12 |
|
13 |
public function __construct($ctrl, $spMetaDao, $hasNextGen) {
|
14 |
parent::__construct( array(
|
15 |
-
'singular' => 'Image', //singular name of the listed records
|
16 |
-
'plural' => 'Images', //plural name of the listed records
|
17 |
'ajax' => false //should this table support ajax?
|
18 |
));
|
19 |
$this->ctrl = $ctrl;
|
@@ -26,11 +26,11 @@ class ShortPixelListTable extends WP_List_Table {
|
|
26 |
$columns = array();
|
27 |
|
28 |
//pe viitor. $columns['cb'] = '<input type="checkbox" />';
|
29 |
-
$columns['name'] = 'Filename';
|
30 |
-
$columns['folder'] = 'Folder';
|
31 |
-
$columns['media_type'] = 'Type';
|
32 |
-
$columns['status'] = 'Status';
|
33 |
-
$columns['options'] = 'Options';
|
34 |
//$columns = apply_filters('shortpixel_list_columns', $columns);
|
35 |
|
36 |
return $columns;
|
@@ -47,19 +47,25 @@ class ShortPixelListTable extends WP_List_Table {
|
|
47 |
|
48 |
$url = ShortPixelMetaFacade::pathToWebPath($item->folder);
|
49 |
$actions = array(
|
50 |
-
'optimize' => sprintf( '<a href="?page=%s&action=%s&image=%s&_wpnonce=%s"
|
51 |
-
esc_attr( $_REQUEST['page'] ), 'optimize', absint( $item->id ), wp_create_nonce( 'sp_optimize_image' )
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
'
|
57 |
-
esc_attr( $_REQUEST['page'] ), '
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
);
|
64 |
$settings = $this->ctrl->getSettings();
|
65 |
$actionsEnabled = array();
|
@@ -80,17 +86,21 @@ class ShortPixelListTable extends WP_List_Table {
|
|
80 |
return ShortPixelMetaFacade::pathToRootRelative($item->folder);
|
81 |
case 'status':
|
82 |
switch($item->status) {
|
83 |
-
case 3: $msg =
|
84 |
break;
|
85 |
-
case 2: $msg = 0 + $item->message == 0
|
|
|
|
|
|
|
86 |
break;
|
87 |
-
case 1: $msg = "<img src=\"" . plugins_url( 'shortpixel-image-optimiser/res/img/loading.gif') . "\" class='sp-loading-small'>
|
|
|
88 |
break;
|
89 |
-
case 0: $msg =
|
90 |
break;
|
91 |
default:
|
92 |
if($item->status < 0) {
|
93 |
-
$msg = $item->message . "(code: " . $item->status . ")";
|
94 |
} else {
|
95 |
$msg = "";
|
96 |
}
|
@@ -98,9 +108,9 @@ class ShortPixelListTable extends WP_List_Table {
|
|
98 |
return "<div id='sp-cust-msg-C-" . $item->id . "'>" . $msg . "</div>";
|
99 |
break;
|
100 |
case 'options':
|
101 |
-
return ($item->compression_type == 1 ?
|
102 |
-
. ($item->keep_exif == 1 ? "": ", Keep EXIF
|
103 |
-
. ($item->cmyk2rgb ? "": ", Preserve CMYK
|
104 |
case 'media_type':
|
105 |
return $item->$column_name;
|
106 |
default:
|
@@ -109,7 +119,7 @@ class ShortPixelListTable extends WP_List_Table {
|
|
109 |
}
|
110 |
|
111 |
public function no_items() {
|
112 |
-
echo('No images avaliable. Go to <a href="options-general.php?page=wp-shortpixel#adv-settings">Advanced Settings</a> to configure additional folders to be optimized.');
|
113 |
}
|
114 |
|
115 |
/**
|
@@ -242,7 +252,7 @@ class ShortPixelListTable extends WP_List_Table {
|
|
242 |
}
|
243 |
$out .= '</div>';
|
244 |
|
245 |
-
$out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>';
|
246 |
|
247 |
return $out;
|
248 |
}
|
12 |
|
13 |
public function __construct($ctrl, $spMetaDao, $hasNextGen) {
|
14 |
parent::__construct( array(
|
15 |
+
'singular' => __('Image','shortpixel'), //singular name of the listed records
|
16 |
+
'plural' => __('Images','shortpixel'), //plural name of the listed records
|
17 |
'ajax' => false //should this table support ajax?
|
18 |
));
|
19 |
$this->ctrl = $ctrl;
|
26 |
$columns = array();
|
27 |
|
28 |
//pe viitor. $columns['cb'] = '<input type="checkbox" />';
|
29 |
+
$columns['name'] = __('Filename','shortpixel');
|
30 |
+
$columns['folder'] = __('Folder','shortpixel');
|
31 |
+
$columns['media_type'] = __('Type','shortpixel');
|
32 |
+
$columns['status'] = __('Status','shortpixel');
|
33 |
+
$columns['options'] = __('Options','shortpixel');
|
34 |
//$columns = apply_filters('shortpixel_list_columns', $columns);
|
35 |
|
36 |
return $columns;
|
47 |
|
48 |
$url = ShortPixelMetaFacade::pathToWebPath($item->folder);
|
49 |
$actions = array(
|
50 |
+
'optimize' => sprintf( '<a href="?page=%s&action=%s&image=%s&_wpnonce=%s">%s</a>',
|
51 |
+
esc_attr( $_REQUEST['page'] ), 'optimize', absint( $item->id ), wp_create_nonce( 'sp_optimize_image' ),
|
52 |
+
__('Optimize','shortpixel')),
|
53 |
+
'retry' => sprintf( '<a href="?page=%s&action=%s&image=%s&_wpnonce=%s">%s</a>',
|
54 |
+
esc_attr( $_REQUEST['page'] ), 'optimize', absint( $item->id ), wp_create_nonce( 'sp_optimize_image' ),
|
55 |
+
__('Retry','shortpixel')),
|
56 |
+
'restore' => sprintf( '<a href="?page=%s&action=%s&image=%s&_wpnonce=%s">%s</a>',
|
57 |
+
esc_attr( $_REQUEST['page'] ), 'restore', absint( $item->id ), wp_create_nonce( 'sp_restore_image' ),
|
58 |
+
__('Restore','shortpixel')),
|
59 |
+
'redolossless' => sprintf( '<a href="?page=%s&action=%s&image=%s&_wpnonce=%s">%s</a>',
|
60 |
+
esc_attr( $_REQUEST['page'] ), 'redo', absint( $item->id ), wp_create_nonce( 'sp_redo_image' ),
|
61 |
+
__('Re-optimize lossless','shortpixel')),
|
62 |
+
'redolossy' => sprintf( '<a href="?page=%s&action=%s&image=%s&_wpnonce=%s">%s</a>',
|
63 |
+
esc_attr( $_REQUEST['page'] ), 'redo', absint( $item->id ), wp_create_nonce( 'sp_redo_image' ),
|
64 |
+
__('Re-optimize lossy','shortpixel')),
|
65 |
+
'quota' => sprintf( '<a href="?page=%s&action=%s&image=%s&_wpnonce=%s">%s</a>',
|
66 |
+
esc_attr( $_REQUEST['page'] ), 'quota', absint( $item->id ), wp_create_nonce( 'sp_check_quota' ),
|
67 |
+
__('Check quota','shortpixel')),
|
68 |
+
'view' => sprintf( '<a href="%s" target="_blank">%s</a>', $url, __('View','shortpixel'))
|
69 |
);
|
70 |
$settings = $this->ctrl->getSettings();
|
71 |
$actionsEnabled = array();
|
86 |
return ShortPixelMetaFacade::pathToRootRelative($item->folder);
|
87 |
case 'status':
|
88 |
switch($item->status) {
|
89 |
+
case 3: $msg = __('Restored','shortpixel');
|
90 |
break;
|
91 |
+
case 2: $msg = 0 + $item->message == 0
|
92 |
+
? __('Bonus processing','shortpixel')
|
93 |
+
: __('Reduced by','shortpixel') . " <strong>" . $item->message . "%</strong>"
|
94 |
+
. (0 + $item->message < 5 ? "<br>" . __('Bonus processing','shortpixel') . "." : "");
|
95 |
break;
|
96 |
+
case 1: $msg = "<img src=\"" . plugins_url( 'shortpixel-image-optimiser/res/img/loading.gif') . "\" class='sp-loading-small'> "
|
97 |
+
. __('Pending','shortpixel');
|
98 |
break;
|
99 |
+
case 0: $msg = __('Waiting','shortpixel');
|
100 |
break;
|
101 |
default:
|
102 |
if($item->status < 0) {
|
103 |
+
$msg = $item->message . "(" . __('code','shortpixel') . ": " . $item->status . ")";
|
104 |
} else {
|
105 |
$msg = "";
|
106 |
}
|
108 |
return "<div id='sp-cust-msg-C-" . $item->id . "'>" . $msg . "</div>";
|
109 |
break;
|
110 |
case 'options':
|
111 |
+
return ($item->compression_type == 1 ? __('Lossy','shortpixel') : __('Lossless','shortpixel'))
|
112 |
+
. ($item->keep_exif == 1 ? "": ", " . __('Keep EXIF','shortpixel'))
|
113 |
+
. ($item->cmyk2rgb ? "": ", " . __('Preserve CMYK','shortpixel'));
|
114 |
case 'media_type':
|
115 |
return $item->$column_name;
|
116 |
default:
|
119 |
}
|
120 |
|
121 |
public function no_items() {
|
122 |
+
echo(__('No images avaliable. Go to <a href="options-general.php?page=wp-shortpixel#adv-settings">Advanced Settings</a> to configure additional folders to be optimized.','shortpixel'));
|
123 |
}
|
124 |
|
125 |
/**
|
252 |
}
|
253 |
$out .= '</div>';
|
254 |
|
255 |
+
$out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details', 'shortpixel' ) . '</span></button>';
|
256 |
|
257 |
return $out;
|
258 |
}
|
class/view/shortpixel_view.php
CHANGED
@@ -20,7 +20,7 @@ class ShortPixelView {
|
|
20 |
<?php if($averageCompression) { ?>
|
21 |
<div style="float:right; margin-top: 10px">
|
22 |
<div class="bulk-progress-indicator">
|
23 |
-
<div style="margin-bottom:5px"
|
24 |
<div id="sp-avg-optimization"><input type="text" id="sp-avg-optimization-dial" value="<?php echo("" . round($averageCompression))?>" class="dial"></div>
|
25 |
<script>
|
26 |
jQuery(function() {
|
@@ -30,43 +30,52 @@ class ShortPixelView {
|
|
30 |
</div>
|
31 |
</div>
|
32 |
<?php } ?>
|
33 |
-
<h3
|
34 |
-
<p
|
|
|
|
|
35 |
<?php if($quotaData['totalProcessedFiles'] < $quotaData['totalFiles']) { ?>
|
36 |
-
|
37 |
-
|
38 |
-
|
|
|
|
|
39 |
<div> <!-- style='float:right;margin-top:20px;'> -->
|
40 |
-
<a class='button button-primary' href='https://shortpixel.com/login/<?php echo($this->ctrl->getApiKey());?>' target='_blank'
|
41 |
-
<input type='button' name='checkQuota' class='button' value='Confirm New Quota' onclick="javascript:window.location.reload();">
|
42 |
</div>
|
43 |
-
|
44 |
-
|
45 |
-
|
|
|
|
|
46 |
|
47 |
</div> <?php
|
48 |
}
|
49 |
|
50 |
public static function displayApiKeyAlert()
|
51 |
{ ?>
|
52 |
-
<p
|
53 |
-
|
54 |
-
|
|
|
|
|
|
|
55 |
<?php
|
56 |
}
|
57 |
|
58 |
public static function displayActivationNotice($when = 'activate') { ?>
|
59 |
<div class='notice notice-warning' id='short-pixel-notice-<?php echo($when);?>'>
|
60 |
<?php if($when != 'activate') { ?>
|
61 |
-
<div style="float:right;"><a href="javascript:dismissShortPixelNotice('<?php echo($when);?>')" class="button" style="margin-top:10px;"
|
62 |
<?php } ?>
|
63 |
-
<h3
|
64 |
switch($when) {
|
65 |
case '2h' :
|
66 |
-
|
67 |
break;
|
68 |
case '3d':
|
69 |
-
|
70 |
break;
|
71 |
case 'activate':
|
72 |
self::displayApiKeyAlert();
|
@@ -90,28 +99,29 @@ class ShortPixelView {
|
|
90 |
<input type='hidden' id='mainToProcess' value='<?php echo($quotaData['mainFiles'] - $quotaData['mainProcessedFiles']);?>'/>
|
91 |
<input type='hidden' id='totalToProcess' value='<?php echo($quotaData['totalFiles'] - $quotaData['totalProcessedFiles']);?>'/>
|
92 |
<div class="bulk-stats-container">
|
93 |
-
<h3 style='margin-top:0;'
|
94 |
-
<div class="bulk-label"
|
95 |
<div class="bulk-val"><?php echo(number_format($quotaData['mainMlFiles']));?></div><br>
|
96 |
-
<div class="bulk-label"
|
97 |
<div class="bulk-val"><?php echo(number_format($quotaData['totalMlFiles'] - $quotaData['mainMlFiles']));?></div>
|
98 |
<div style='width:165px; display:inline-block; padding-left: 5px'>
|
99 |
-
<input type='checkbox' id='thumbnails' name='thumbnails' onclick='ShortPixel.checkThumbsUpdTotal(this)' <?php echo($this->ctrl->processThumbnails() ? "checked":"");?>>
|
|
|
100 |
</div><br>
|
101 |
<?php if($quotaData["totalProcessedMlFiles"] > 0) { ?>
|
102 |
-
<div class="bulk-label bulk-total"
|
103 |
<div class="bulk-val bulk-total"><?php echo(number_format($quotaData['totalMlFiles']));?></div>
|
104 |
-
<br><div class="bulk-label"
|
105 |
<div class="bulk-val"><?php echo(number_format($quotaData['mainProcessedMlFiles']));?></div><br>
|
106 |
-
<div class="bulk-label"
|
107 |
<div class="bulk-val"><?php echo(number_format($quotaData['totalProcessedMlFiles'] - $quotaData['mainProcessedMlFiles']));?></div><br>
|
108 |
<?php } ?>
|
109 |
-
<div class="bulk-label bulk-total"
|
110 |
<div class="bulk-val bulk-total" id='displayTotal'><?php echo(number_format($quotaData['totalMlFiles'] - $quotaData['totalProcessedMlFiles']));?></div>
|
111 |
|
112 |
<?php if($customCount > 0) { ?>
|
113 |
-
<h3 style='margin-bottom:10px;'
|
114 |
-
<div class="bulk-label bulk-total"
|
115 |
<div class="bulk-val bulk-total" id='displayTotal'><?php echo(number_format($customCount));?></div>
|
116 |
<?php } ?>
|
117 |
</div>
|
@@ -124,8 +134,8 @@ class ShortPixelView {
|
|
124 |
<img src='<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/robo-slider.png' ));?>'/>
|
125 |
</div>
|
126 |
<div class="bulk-btn-txt">
|
127 |
-
<span class="label">Start Optimizing</span><br>
|
128 |
-
|
129 |
</div>
|
130 |
<div class="bulk-btn-img" class="bulk-btn-img">
|
131 |
<img src='<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/arrow.png' ));?>'/>
|
@@ -135,7 +145,7 @@ class ShortPixelView {
|
|
135 |
</div>
|
136 |
<?php } else {?>
|
137 |
<div class="bulk-play bulk-nothing-optimize">
|
138 |
-
Nothing to optimize! The images that you add to Media Gallery will be automatically optimized after upload.
|
139 |
</div>
|
140 |
<?php } ?>
|
141 |
</form>
|
@@ -143,35 +153,38 @@ class ShortPixelView {
|
|
143 |
<?php if($quotaData['totalFiles'] - $quotaData['totalProcessedFiles'] > 0) { ?>
|
144 |
<div class='shortpixel-clearfix'></div>
|
145 |
<div class="bulk-wide">
|
146 |
-
<h3 style='font-size: 1.1em; font-weight: bold;'>
|
|
|
|
|
147 |
</div>
|
148 |
<?php } ?>
|
149 |
<div class='shortpixel-clearfix'></div>
|
150 |
<div class="bulk-text-container">
|
151 |
-
<h3
|
152 |
-
<p
|
153 |
-
<p
|
154 |
-
<p
|
155 |
</div>
|
156 |
<div class="bulk-text-container" style="padding-right:0">
|
157 |
-
<h3
|
158 |
-
<p
|
159 |
-
<p
|
160 |
-
<p><?php echo($this->ctrl->backupImages() ? "<p>Your original images will be stored in a separate back-up folder.</p>" : "");?></p>
|
161 |
-
<p
|
162 |
</div>
|
163 |
<?php
|
164 |
} elseif($percent) // bulk is paused
|
165 |
{ ?>
|
166 |
<?php echo($this->displayBulkProgressBar(false, $percent, "", $quotaData['APICallsRemaining'], $this->ctrl->getAverageCompression(), 1, $customCount));?>
|
167 |
-
<p
|
168 |
<?php $this->displayBulkStats($quotaData['totalProcessedFiles'], $quotaData['mainProcessedFiles'], $under5PercentCount, $averageCompression, $savedSpace);?>
|
169 |
<?php if($quotaData['totalProcessedFiles'] < $quotaData['totalFiles']) { ?>
|
170 |
-
<p><?php
|
171 |
-
|
172 |
-
|
|
|
173 |
<?php } ?>
|
174 |
-
<p
|
175 |
<?php
|
176 |
} else { ?>
|
177 |
<div class="sp-container">
|
@@ -181,23 +194,24 @@ class ShortPixelView {
|
|
181 |
<input type="text" value="<?php echo("" . round($averageCompression))?>" id="sp-total-optimization-dial" class="dial">
|
182 |
</div>
|
183 |
<p style="margin-top:4px;">
|
184 |
-
<span style="font-size:1.2em;font-weight:bold"
|
185 |
-
|
|
|
186 |
</p>
|
187 |
</div>
|
188 |
<div class='notice notice-success sp-floating-block sp-single-width' style="height: 80px;overflow:hidden;padding-right: 0;">
|
189 |
<div style="float:left; margin-top:-5px">
|
190 |
<p style='margin-bottom: -2px; font-weight: bold;'>
|
191 |
-
Share your optimization results:
|
192 |
</p>
|
193 |
-
<div style='display:inline-block;
|
194 |
<div id="fb-root"></div>
|
195 |
<script>
|
196 |
(function(d, s, id) {
|
197 |
var js, fjs = d.getElementsByTagName(s)[0];
|
198 |
if (d.getElementById(id)) return;
|
199 |
js = d.createElement(s); js.id = id;
|
200 |
-
js.src = "//connect.facebook.net
|
201 |
fjs.parentNode.insertBefore(js, fjs);
|
202 |
}(document, 'script', 'facebook-jssdk'));
|
203 |
</script>
|
@@ -206,14 +220,22 @@ class ShortPixelView {
|
|
206 |
</div>
|
207 |
<div style="float:left;margin:-7px 0 0 10px">
|
208 |
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://shortpixel.com"
|
209 |
-
data-text="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
</div>
|
211 |
<script>
|
212 |
jQuery(function() {
|
213 |
jQuery("#sp-total-optimization-dial").val("<?php echo("" . round($averageCompression))?>");
|
214 |
ShortPixel.percentDial("#sp-total-optimization-dial", 60);
|
215 |
|
216 |
-
jQuery(".sp-bulk-summary").
|
217 |
tooltipSource: "inline",
|
218 |
tooltipSourceID: "#sp-bulk-stats"
|
219 |
});
|
@@ -232,7 +254,7 @@ class ShortPixelView {
|
|
232 |
<div class='shortpixel-rate-us' style='float:left;padding-top:0'>
|
233 |
<a href="https://wordpress.org/support/view/plugin-reviews/shortpixel-image-optimiser?rate=5#postform" target="_blank">
|
234 |
<span>
|
235 |
-
Please rate us
|
236 |
</span><br><img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/stars.png' ));?>">
|
237 |
</a>
|
238 |
</div>
|
@@ -242,19 +264,21 @@ class ShortPixelView {
|
|
242 |
<?php $this->displayBulkStats($quotaData['totalProcessedFiles'], $quotaData['mainProcessedFiles'], $under5PercentCount, $averageCompression, $savedSpace);?>
|
243 |
</div>
|
244 |
</div>
|
245 |
-
<p
|
|
|
|
|
246 |
<?php
|
247 |
$failed = $this->ctrl->getPrioQ()->getFailed();
|
248 |
if(count($failed)) { ?>
|
249 |
<div class="bulk-progress" style="margin-bottom: 15px">
|
250 |
<p>
|
251 |
-
The following images could not be processed because of their limited write rights. This usually happens if you have changed your hosting provider. Please restart the optimization process after you granted write rights to all the files below.
|
252 |
</p>
|
253 |
<?php $this->displayFailed($failed); ?>
|
254 |
</div>
|
255 |
<?php } ?>
|
256 |
-
<div class="bulk-progress notice notice-info
|
257 |
-
<?php
|
258 |
$todo = $reopt = false;
|
259 |
if($quotaData['totalProcessedFiles'] < $quotaData['totalFiles']) {
|
260 |
$todo = true;
|
@@ -262,19 +286,26 @@ class ShortPixelView {
|
|
262 |
$thumbsNotProcessed = ($quotaData['totalFiles'] - $quotaData['mainFiles']) - ($quotaData['totalProcessedFiles'] - $quotaData['mainProcessedFiles']);
|
263 |
?>
|
264 |
<p>
|
265 |
-
<?php
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
if(ShortPixelMetaFacade::isCustomQueuedId($id)) {
|
272 |
echo('<a href="'.trailingslashit(network_site_url("/")) . ShortPixelMetaFacade::filenameToRootRelative($data['Path']).'" title="'.$data['Message'].'" target="_blank">'.$data['Name'].'</a>, ');
|
273 |
} else {
|
274 |
echo('<a href="post.php?post='.$id.'&action=edit" title="'.$data['Message'].'">'.$data['Name'].'</a>, ');
|
275 |
}
|
276 |
-
}
|
277 |
-
|
278 |
</p>
|
279 |
<?php }
|
280 |
$settings = $this->ctrl->getSettings();
|
@@ -289,36 +320,33 @@ class ShortPixelView {
|
|
289 |
$thumbsCount = $quotaData['totalProc'.$statType.'Files'] - $quotaData['mainProc'.$statType.'Files'];
|
290 |
?>
|
291 |
<p id="with-thumbs" <?php echo(!$settings->processThumbnails ? 'style="display:none;"' : "");?>>
|
292 |
-
<?php
|
293 |
-
|
294 |
-
|
295 |
-
<?php echo($otherType);?>
|
296 |
-
</strong>. You can re-optimize
|
297 |
-
<strong>
|
298 |
-
<?php echo($optType);?>
|
299 |
-
</strong> the ones that have backup.
|
300 |
</p>
|
301 |
<p id="without-thumbs" <?php echo($settings->processThumbnails ? 'style="display:none;"' : "");?>>
|
302 |
-
<?php
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
<strong>
|
307 |
-
<?php echo($optType);?>
|
308 |
-
</strong> the ones that have backup.
|
309 |
-
<?php echo($thumbsCount ? number_format($thumbsCount) . ' thumbnails will be restored to originals.' : '');?>
|
310 |
</p>
|
311 |
<?php
|
312 |
} ?>
|
313 |
-
<p
|
314 |
-
|
315 |
-
|
316 |
-
|
|
|
|
|
|
|
|
|
|
|
317 |
<?php } ?>
|
318 |
</p>
|
319 |
<form action='' method='POST' >
|
320 |
-
<input type='checkbox' id='bulk-thumbnails' name='thumbnails' <?php echo($this->ctrl->processThumbnails() ? "checked":"");?>
|
321 |
-
|
|
|
322 |
</form>
|
323 |
</div>
|
324 |
<?php } ?>
|
@@ -329,41 +357,41 @@ class ShortPixelView {
|
|
329 |
public function displayBulkProcessingRunning($percent, $message, $remainingQuota, $averageCompression, $type) {
|
330 |
?>
|
331 |
<div class="wrap short-pixel-bulk-page">
|
332 |
-
<h1
|
333 |
<?php $this->displayBulkProgressBar(true, $percent, $message, $remainingQuota, $averageCompression, $type);?>
|
334 |
<div class="sp-floating-block notice bulk-notices-parent">
|
335 |
<div class="bulk-notice-container">
|
336 |
<div class="bulk-notice-msg bulk-lengthy">
|
337 |
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/loading-dark-big.gif' ));?>">
|
338 |
-
Lengthy operation in progress
|
339 |
-
Optimizing image <a href="#" data-href="<?php echo(get_admin_url());?>/post.php?post=__ID__&action=edit" target="_blank">
|
340 |
</div>
|
341 |
<div class="bulk-notice-msg bulk-error" id="bulk-error-template">
|
342 |
<div style="float: right; margin-top: -4px; margin-right: -8px;">
|
343 |
<a href="javascript:void(0);" onclick="ShortPixel.removeBulkMsg(this)" style='color: #c32525;'>✖</a>
|
344 |
</div>
|
345 |
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/exclamation-big.png' ));?>">
|
346 |
-
<span class="sp-err-title"
|
347 |
-
<span class="sp-err-content"><?php echo $message; ?></span> <a class="sp-post-link" href="<?php echo(get_admin_url());?>/post.php?post=__ID__&action=edit" target="_blank">
|
348 |
</div>
|
349 |
</div>
|
350 |
</div>
|
351 |
<div class="bulk-progress bulk-slider-container notice notice-info sp-floating-block sp-full-width">
|
352 |
-
<div class="short-pixel-block-title"><span
|
353 |
<div class="bulk-slider">
|
354 |
<div class="bulk-slide" id="empty-slide">
|
355 |
<div class="bulk-slide-images">
|
356 |
<div class="img-original">
|
357 |
<div><img class="bulk-img-orig" src=""></div>
|
358 |
-
<div
|
359 |
</div>
|
360 |
<div class="img-optimized">
|
361 |
<div><img class="bulk-img-opt" src=""></div>
|
362 |
-
<div
|
363 |
</div>
|
364 |
</div>
|
365 |
<div class="img-info">
|
366 |
-
<div style="font-size: 14px; line-height: 10px; margin-bottom:16px;"
|
367 |
<span class="bulk-opt-percent"></span>
|
368 |
</div>
|
369 |
</div>
|
@@ -385,13 +413,13 @@ class ShortPixelView {
|
|
385 |
<div style="float:right">
|
386 |
<?php if(false) { ?>
|
387 |
<div class="bulk-progress-indicator">
|
388 |
-
<div style="margin-bottom:5px"
|
389 |
<div style="margin-top:22px;margin-bottom: 5px;font-size:2em;font-weight: bold;"><?php echo(number_format($remainingQuota))?></div>
|
390 |
<div>images</div>
|
391 |
</div>
|
392 |
<?php } ?>
|
393 |
<div class="bulk-progress-indicator">
|
394 |
-
<div style="margin-bottom:5px"
|
395 |
<div id="sp-avg-optimization"><input type="text" id="sp-avg-optimization-dial" value="<?php echo("" . round($averageCompression))?>" class="dial"></div>
|
396 |
<script>
|
397 |
jQuery(function() {
|
@@ -401,15 +429,17 @@ class ShortPixelView {
|
|
401 |
</div>
|
402 |
</div>
|
403 |
<?php if($running) { ?>
|
404 |
-
<h2><?php echo($type & 1 ?
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
|
|
|
|
409 |
</p>
|
410 |
<?php } else { ?>
|
411 |
-
<h2
|
412 |
-
<p style="margin: 0 0 50px;"
|
413 |
<?php }?>
|
414 |
<div id="bulk-progress" class="progress" >
|
415 |
<div class="progress-img" style="left: <?php echo($percent);?>%;">
|
@@ -426,14 +456,14 @@ class ShortPixelView {
|
|
426 |
<input type="submit" class="button button-primary bulk-cancel" onclick="clearBulkProcessor();"
|
427 |
name="bulkProcessStop" value="Stop" style="margin-left:10px"/>
|
428 |
<input type="submit" class="button button-primary bulk-cancel" onclick="clearBulkProcessor();"
|
429 |
-
name="<?php echo($running ? "bulkProcessPause" : "bulkProcessResume");?>" value="<?php echo($running ?
|
430 |
<?php if(!$running && $customPending) {?>
|
431 |
<input type="submit" class="button button-primary bulk-cancel" onclick="clearBulkProcessor();"
|
432 |
-
name="skipToCustom" value="Only
|
433 |
<?php }?>
|
434 |
</form>
|
435 |
<?php } else { ?>
|
436 |
-
<a href="options-general.php?page=wp-shortpixel" class="button button-primary bulk-cancel" style="margin-left:10px"
|
437 |
<?php }?>
|
438 |
</div>
|
439 |
<?php
|
@@ -441,14 +471,14 @@ class ShortPixelView {
|
|
441 |
|
442 |
public function displayBulkStats($totalOptimized, $mainOptimized, $under5PercentCount, $averageCompression, $savedSpace) {?>
|
443 |
<div class="bulk-progress bulk-stats">
|
444 |
-
<div class="label"
|
445 |
-
<div class="label"
|
446 |
-
<div class="label totals"
|
447 |
-
<div class="label totals"
|
448 |
-
<div class="label totals"
|
449 |
<br>
|
450 |
-
<div class="label"
|
451 |
-
<div class="label"
|
452 |
</div>
|
453 |
<?php
|
454 |
}
|
@@ -474,12 +504,12 @@ class ShortPixelView {
|
|
474 |
$customFolders = null, $folderMsg = false, $addedFolder = false, $showAdvanced = false) {
|
475 |
//wp_enqueue_script('jquery.idTabs.js', plugins_url('/js/jquery.idTabs.js',__FILE__) );
|
476 |
?>
|
477 |
-
<h1
|
478 |
<p style="font-size:18px">
|
479 |
<a href="https://shortpixel.com/<?php echo($this->ctrl->getVerifiedKey() ? "login/".$this->ctrl->getApiKey() : "pricing");?>" target="_blank" style="font-size:18px">
|
480 |
-
Upgrade now
|
481 |
</a> |
|
482 |
-
<a href="https://shortpixel.com/contact/<?php echo($this->ctrl->getEncryptedData());?>" target="_blank" style="font-size:18px"
|
483 |
</p>
|
484 |
<?php if($notice !== null) { ?>
|
485 |
<br/>
|
@@ -497,19 +527,19 @@ class ShortPixelView {
|
|
497 |
<article id="shortpixel-settings-tabs" class="sp-tabs">
|
498 |
<form name='wp_shortpixel_options' action='options-general.php?page=wp-shortpixel&noheader=true' method='post' id='wp_shortpixel_options'>
|
499 |
<section <?php echo($showAdvanced ? "" : "class='sel-tab'");?> id="tab-settings">
|
500 |
-
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-settings"
|
501 |
<?php $this->displaySettingsForm($showApiKey, $editApiKey, $quotaData);?>
|
502 |
</section>
|
503 |
<?php if($this->ctrl->getVerifiedKey()) {?>
|
504 |
<section <?php echo($showAdvanced ? "class='sel-tab'" : "");?> id="tab-adv-settings">
|
505 |
-
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-adv-settings"
|
506 |
<?php $this->displayAdvancedSettingsForm($customFolders, $addedFolder);?>
|
507 |
</section>
|
508 |
<?php } ?>
|
509 |
</form><span style="display:none"> </span><?php //the span is a trick to keep the sections ordered as nth-child in styles: 1,2,3,4 (otherwise the third section would be nth-child(2) too, because of the form)
|
510 |
if($averageCompression !== null) {?>
|
511 |
<section id="tab-stats">
|
512 |
-
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-stats"
|
513 |
<?php
|
514 |
$this->displaySettingsStats($quotaData, $averageCompression, $savedSpace, $savedBandwidth,
|
515 |
$remainingImages, $totalCallsMade, $fileCount, $backupFolderSize);?>
|
@@ -517,8 +547,8 @@ class ShortPixelView {
|
|
517 |
<?php }
|
518 |
if($resources !== null) {?>
|
519 |
<section id="tab-resources">
|
520 |
-
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-resources"
|
521 |
-
<?php echo((isset($resources['body']) ? $resources['body'] : "Please reload"));?>
|
522 |
</section>
|
523 |
<?php } ?>
|
524 |
</article>
|
@@ -551,19 +581,19 @@ class ShortPixelView {
|
|
551 |
?>
|
552 |
<div class="wp-shortpixel-options">
|
553 |
<?php if($this->ctrl->getVerifiedKey()) { ?>
|
554 |
-
<p
|
555 |
<?php } else {
|
556 |
if($showApiKey) {?>
|
557 |
-
<h3
|
558 |
-
<p style='font-size: 14px'
|
559 |
-
<h3
|
560 |
-
<p style='font-size: 14px'
|
561 |
<?php }
|
562 |
}?>
|
563 |
<table class="form-table">
|
564 |
<tbody>
|
565 |
<tr>
|
566 |
-
<th scope="row"><label for="key"
|
567 |
<td>
|
568 |
<?php
|
569 |
$canValidate = false;
|
@@ -573,13 +603,13 @@ class ShortPixelView {
|
|
573 |
class="regular-text" <?php echo($editApiKey ? "" : 'disabled') ?>>
|
574 |
<?php } elseif(defined("SHORTPIXEL_API_KEY")) {
|
575 |
$canValidate = true;?>
|
576 |
-
<input name="key" type="text" id="key" disabled="true" placeholder="Multisite API Key" class="regular-text">
|
577 |
<?php } ?>
|
578 |
<input type="hidden" name="validate" id="valid" value=""/>
|
579 |
-
<button type="button" id="validate" class="button button-primary" title="Validate the provided API key"
|
580 |
-
onclick="ShortPixel.validateKey()" <?php echo $canValidate ? "" : "disabled"
|
581 |
<?php if($showApiKey && !$editApiKey) { ?>
|
582 |
-
<p class="settings-info"
|
583 |
<?php } ?>
|
584 |
|
585 |
</td>
|
@@ -590,15 +620,19 @@ class ShortPixelView {
|
|
590 |
<?php } else { //if valid key we display the rest of the options ?>
|
591 |
<tr>
|
592 |
<th scope="row">
|
593 |
-
<label for="compressionType"
|
594 |
</th>
|
595 |
<td>
|
596 |
-
<input type="radio" name="compressionType" value="1" <?php echo( $this->ctrl->getCompressionType() == 1 ? "checked" : "" )
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
<
|
601 |
-
|
|
|
|
|
|
|
|
|
602 |
</td>
|
603 |
</tr>
|
604 |
</tbody>
|
@@ -606,57 +640,62 @@ class ShortPixelView {
|
|
606 |
<table class="form-table">
|
607 |
<tbody>
|
608 |
<tr>
|
609 |
-
<th scope="row"><label for="thumbnails"
|
610 |
-
<td><input name="thumbnails" type="checkbox" id="thumbnails" <?php echo( $checked );?>>
|
611 |
-
<strong>image thumbnails.</strong>
|
612 |
-
|
|
|
|
|
|
|
613 |
</td>
|
614 |
</tr>
|
615 |
<tr>
|
616 |
-
<th scope="row"><label for="backupImages"
|
617 |
<td>
|
618 |
-
<input name="backupImages" type="checkbox" id="backupImages" <?php echo( $checkedBackupImages );?>> Save and keep a backup of your original images in a separate folder.
|
619 |
-
<p class="settings-info"
|
620 |
</td>
|
621 |
</tr>
|
622 |
<tr>
|
623 |
-
<th scope="row"><label for="cmyk2rgb"
|
624 |
<td>
|
625 |
-
<input name="cmyk2rgb" type="checkbox" id="cmyk2rgb" <?php echo( $cmyk2rgb )
|
626 |
-
<p class="settings-info"
|
627 |
</td>
|
628 |
</tr>
|
629 |
<tr>
|
630 |
-
<th scope="row"><label for="removeExif"
|
631 |
<td>
|
632 |
-
<input name="removeExif" type="checkbox" id="removeExif" <?php echo( $removeExif )
|
633 |
-
<p class="settings-info"> EXIF is a set of various pieces of information that are automatically embedded into the image upon creation. This can include GPS position, camera manufacturer, date and time, etc.
|
634 |
-
Unless you really need that data to be preserved, we recommend removing it as it can lead to <a href="http://blog.shortpixel.com/how-much-smaller-can-be-images-without-exif-icc" target="_blank">better compression rates</a
|
635 |
</td>
|
636 |
</tr>
|
637 |
<tr>
|
638 |
-
<th scope="row"><label for="resize"
|
639 |
<td>
|
640 |
-
<input name="resize" type="checkbox" id="resize" <?php echo( $resize );?>>
|
641 |
-
|
642 |
-
value="<?php echo( max($this->ctrl->getResizeWidth(), min(1024, $minSizes['width'])) );?>" <?php echo( $resizeDisabled );?>/>
|
643 |
-
|
|
|
|
|
644 |
<p class="settings-info">
|
645 |
-
Recommended for large photos, like the ones taken with your phone. Saved space can go up to 80% or more after resizing
|
646 |
</p>
|
647 |
<div style="margin-top: 10px;">
|
648 |
<input type="radio" name="resize_type" id="resize_type_outer" value="outer" <?php echo($settings->resizeType == 'inner' ? '' : 'checked') ?> style="margin: -50px 10px 60px 0;">
|
649 |
-
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/resize-outer.png' ));?>" title="Sizes will be greater or equal to the corresponding value. For example, if you set the resize dimensions at 1000x1200, an image of 2000x3000px will be resized to 1000x1500px while an image of 3000x2000px will be resized to 1800x1200px">
|
650 |
<input type="radio" name="resize_type" id="resize_type_inner" value="inner" <?php echo($settings->resizeType == 'inner' ? 'checked' : '') ?> style="margin: -50px 10px 60px 35px;">
|
651 |
-
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/resize-inner.png' ));?>" title="Sizes will be smaller or equal to the corresponding value. For example, if you set the resize dimensions at 1000x1200, an image of 2000x3000px will be resized to 800x1200px while an image of 3000x2000px will be resized to 1000x667px">
|
652 |
</div>
|
653 |
</td>
|
654 |
</tr>
|
655 |
</tbody>
|
656 |
</table>
|
657 |
<p class="submit">
|
658 |
-
<input type="submit" name="save" id="save" class="button button-primary" title="Save Changes" value="Save Changes">
|
659 |
-
<input type="submit" name="save" id="bulk" class="button button-primary" title="Save and go to the Bulk Processing page" value="Save and Go to Bulk Process">
|
660 |
</p>
|
661 |
</div>
|
662 |
<script>
|
@@ -676,23 +715,25 @@ class ShortPixelView {
|
|
676 |
$frontBootstrap = ($settings->frontBootstrap ? 'checked' : '');
|
677 |
$includeNextGen = ($settings->includeNextGen ? 'checked' : '');
|
678 |
$createWebp = ($settings->createWebp ? 'checked' : '');
|
|
|
|
|
679 |
?>
|
680 |
<div class="wp-shortpixel-options">
|
681 |
<?php if(!$this->ctrl->getVerifiedKey()) { ?>
|
682 |
-
<p
|
683 |
<?php } else { //if valid key we display the rest of the options ?>
|
684 |
<table class="form-table">
|
685 |
<tbody>
|
686 |
<tr>
|
687 |
-
<th scope="row"><label for="resize"
|
688 |
<td>
|
689 |
<?php if($customFolders) { ?>
|
690 |
<table class="shortpixel-folders-list">
|
691 |
<tr style="font-weight: bold;">
|
692 |
-
<td
|
693 |
-
<td
|
694 |
-
<td
|
695 |
-
<td
|
696 |
<td></td>
|
697 |
</tr>
|
698 |
<?php foreach($customFolders as $folder) {
|
@@ -701,13 +742,18 @@ class ShortPixelView {
|
|
701 |
$stat = $this->ctrl->getSpMetaDao()->getFolderOptimizationStatus($folder->getId());
|
702 |
$cnt = $folder->getFileCount();
|
703 |
$st = ($cnt == 0
|
704 |
-
? "Empty"
|
705 |
: ($stat->Total == $stat->Optimized
|
706 |
-
? "Optimized"
|
707 |
-
: ($stat->Optimized + $stat->Pending > 0 ? "Pending" : "Waiting")));
|
708 |
-
|
709 |
-
$
|
710 |
-
|
|
|
|
|
|
|
|
|
|
|
711 |
?>
|
712 |
<tr>
|
713 |
<td>
|
@@ -727,8 +773,10 @@ class ShortPixelView {
|
|
727 |
<?php echo($folder->getTsUpdated()); ?>
|
728 |
</td>
|
729 |
<td>
|
730 |
-
<input type="button" class="button remove-folder-button" data-value="<?php echo($folder->getPath()); ?>" title="
|
731 |
-
<input type="button" style="display:none;" class="button button-alert recheck-folder-button" data-value="<?php echo($folder->getPath()); ?>"
|
|
|
|
|
732 |
</td>
|
733 |
</tr>
|
734 |
<?php }?>
|
@@ -739,15 +787,19 @@ class ShortPixelView {
|
|
739 |
<input type="text" name="addCustomFolderView" id="addCustomFolderView" class="regular-text" value="<?php echo($addedFolder);?>" disabled style="width: 50em;max-width: 70%;">
|
740 |
<input type="hidden" name="addCustomFolder" id="addCustomFolder" value="<?php echo($addedFolder);?>"/>
|
741 |
<input type="hidden" id="customFolderBase" value="<?php echo $this->ctrl->getCustomFolderBase(); ?>">
|
742 |
-
<a class="button button-primary select-folder-button" title="Select the images folder on your server" href="javascript:void(0);">
|
743 |
-
|
744 |
-
|
|
|
|
|
|
|
|
|
745 |
<div class="sp-folder-picker-shade">
|
746 |
<div class="sp-folder-picker-popup">
|
747 |
-
<div class="sp-folder-picker-title"
|
748 |
<div class="sp-folder-picker"></div>
|
749 |
-
<input type="button" class="button button-info select-folder-cancel" value="Cancel" style="margin-right: 30px;">
|
750 |
-
<input type="button" class="button button-primary select-folder" value="Select">
|
751 |
</div>
|
752 |
</div>
|
753 |
<script>
|
@@ -759,40 +811,66 @@ class ShortPixelView {
|
|
759 |
</tr>
|
760 |
<?php if($hasNextGen) { ?>
|
761 |
<tr>
|
762 |
-
<th scope="row"><label for="nextGen"
|
763 |
<td>
|
764 |
-
<input name="nextGen" type="checkbox" id="nextGen" <?php echo( $includeNextGen );?>> Optimize NextGen galleries.
|
765 |
-
<p class="settings-info">
|
|
|
|
|
766 |
</td>
|
767 |
</tr>
|
768 |
<?php } ?>
|
769 |
<tr>
|
770 |
-
<th scope="row"><label for="createWebp"
|
771 |
<td>
|
772 |
-
<input name="createWebp" type="checkbox" id="createWebp" <?php echo( $createWebp );?>> Create also <a href="http://blog.shortpixel.com/how-webp-images-can-speed-up-your-site/" target="_blank">WebP versions</a> of the images <strong>for free</strong>.
|
773 |
-
<p class="settings-info">
|
|
|
|
|
774 |
</td>
|
775 |
</tr>
|
776 |
<tr>
|
777 |
-
<th scope="row"><label for="
|
778 |
<td>
|
779 |
-
<input name="
|
780 |
-
<
|
781 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
782 |
</td>
|
783 |
</tr>
|
784 |
<tr>
|
785 |
-
<th scope="row"><label for="
|
786 |
<td>
|
787 |
-
<input name="
|
788 |
-
<p class="settings-info">
|
|
|
|
|
789 |
</td>
|
790 |
</tr>
|
791 |
</tbody>
|
792 |
</table>
|
793 |
<p class="submit">
|
794 |
-
<input type="submit" name="saveAdv" id="saveAdv" class="button button-primary" title="Save Changes" value="Save Changes">
|
795 |
-
<input type="submit" name="saveAdv" id="bulkAdvGo" class="button button-primary" title="Save and go to the Bulk Processing page" value="Save and Go to Bulk Process">
|
796 |
</p>
|
797 |
</div>
|
798 |
<script>
|
@@ -804,66 +882,75 @@ class ShortPixelView {
|
|
804 |
function displaySettingsStats($quotaData, $averageCompression, $savedSpace, $savedBandwidth,
|
805 |
$remainingImages, $totalCallsMade, $fileCount, $backupFolderSize) { ?>
|
806 |
<a id="facts"></a>
|
807 |
-
<h3
|
808 |
<table class="form-table">
|
809 |
<tbody>
|
810 |
<tr>
|
811 |
-
<th scope="row"><label for="averagCompression"
|
812 |
<td><?php echo($averageCompression);?>%</td>
|
813 |
</tr>
|
814 |
<tr>
|
815 |
-
<th scope="row"><label for="savedSpace"
|
816 |
<td><?php echo($savedSpace);?></td>
|
817 |
</tr>
|
818 |
<tr>
|
819 |
-
<th scope="row"><label for="savedBandwidth"
|
820 |
<td><?php echo($savedBandwidth);?></td>
|
821 |
</tr>
|
822 |
</tbody>
|
823 |
</table>
|
824 |
|
825 |
-
<p style="padding-top: 0px; color: #818181;"
|
826 |
|
827 |
-
<h3
|
828 |
<table class="form-table">
|
829 |
<tbody>
|
830 |
<tr>
|
831 |
-
<th scope="row" bgcolor="#ffffff"><label for="apiQuota"
|
832 |
<td bgcolor="#ffffff">
|
833 |
-
<?php
|
834 |
-
|
|
|
|
|
|
|
835 |
</td>
|
836 |
</tr>
|
837 |
<tr>
|
838 |
-
<th scope="row"><label for="usedQUota"
|
839 |
<td><?php echo( number_format($quotaData['APICallsQuotaOneTimeNumeric']));?></td>
|
840 |
</tr>
|
841 |
<tr>
|
842 |
-
<th scope="row"><label for="usedQUota"
|
843 |
-
<td><?php echo($totalCallsMade);?> (<a href="https://api.shortpixel.com/v2/report.php?key=<?php echo($this->ctrl->getApiKey());?>" target="_blank">
|
|
|
|
|
|
|
844 |
</tr>
|
845 |
<tr>
|
846 |
-
<th scope="row"><label for="remainingImages"
|
847 |
-
<td><?php echo($remainingImages);?> images
|
848 |
</tr>
|
849 |
</tbody>
|
850 |
</table>
|
851 |
|
852 |
-
<p style="padding-top: 0px; color: #818181;"
|
|
|
|
|
|
|
853 |
|
854 |
<table class="form-table">
|
855 |
<tbody>
|
856 |
<tr>
|
857 |
-
<th scope="row"><label for="totalFiles"
|
858 |
<td><?php echo($fileCount);?></td>
|
859 |
</tr>
|
860 |
<?php if($this->ctrl->backupImages()) { ?>
|
861 |
<tr>
|
862 |
-
<th scope="row"><label for="sizeBackup"
|
863 |
<td>
|
864 |
<form action="" method="POST">
|
865 |
<?php echo($backupFolderSize);?>
|
866 |
-
<input type="submit" style="margin-left: 15px; vertical-align: middle;" class="button button-secondary" name="emptyBackup" value="Empty backups"/>
|
867 |
</form>
|
868 |
</td>
|
869 |
</tr>
|
@@ -878,18 +965,19 @@ class ShortPixelView {
|
|
878 |
|
879 |
public function renderCustomColumn($id, $data){ ?>
|
880 |
<div id='sp-msg-<?php echo($id);?>' class='column-wp-shortPixel'>
|
|
|
881 |
<?php switch($data['status']) {
|
882 |
case 'n/a': ?>
|
883 |
-
Optimization N/A <?php
|
884 |
break;
|
885 |
case 'notFound': ?>
|
886 |
-
Image does not exist. <?php
|
887 |
break;
|
888 |
case 'invalidKey':
|
889 |
if(defined("SHORTPIXEL_API_KEY")) { // multisite key - need to be validated on each site but it's not invalid
|
890 |
-
?> Please <a href="options-general.php?page=wp-shortpixel">go to Settings</a> to validate the API Key. <?php
|
891 |
} else {
|
892 |
-
?> Invalid API Key. <a href="options-general.php?page=wp-shortpixel">Check your Settings</a> <?php
|
893 |
}
|
894 |
break;
|
895 |
case 'quotaExceeded':
|
@@ -897,7 +985,9 @@ class ShortPixelView {
|
|
897 |
break;
|
898 |
case 'optimizeNow':
|
899 |
if($data['showActions']) { ?>
|
900 |
-
<a class='button button-smaller button-primary' href="javascript:manualOptimization('<?php echo($id)?>')">
|
|
|
|
|
901 |
<?php }
|
902 |
echo($data['message']);
|
903 |
if(isset($data['thumbsTotal']) && $data['thumbsTotal'] > 0) {
|
@@ -905,13 +995,15 @@ class ShortPixelView {
|
|
905 |
}
|
906 |
break;
|
907 |
case 'retry': ?>
|
908 |
-
<?php echo($data['message'])?> <a class='button button-smaller button-primary' href="javascript:manualOptimization('<?php echo($id)?>')">
|
|
|
|
|
909 |
break;
|
910 |
case 'pdfOptimized':
|
911 |
case 'imgOptimized':
|
912 |
$this->renderListCell($id, $data['showActions'],
|
913 |
!$data['thumbsOpt'] && $data['thumbsTotal'], $data['thumbsTotal'], $data['backup'], $data['type'],
|
914 |
-
$this->getSuccessText($data['percent'],$data['bonus'],$data['type'],$data['thumbsOpt'],$data['thumbsTotal']));
|
915 |
break;
|
916 |
}
|
917 |
//die(var_dump($data));
|
@@ -920,13 +1012,16 @@ class ShortPixelView {
|
|
920 |
<?php
|
921 |
}
|
922 |
|
923 |
-
public function getSuccessText($percent, $bonus, $type, $thumbsOpt = 0, $thumbsTotal = 0) {
|
924 |
-
return
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
|
|
|
|
|
|
930 |
}
|
931 |
|
932 |
public function renderListCell($id, $showActions, $optimizeThumbs, $thumbsTotal, $backup, $type, $message) {
|
@@ -934,18 +1029,19 @@ class ShortPixelView {
|
|
934 |
<div class='sp-column-actions'>
|
935 |
<?php if($optimizeThumbs) { ?>
|
936 |
<a class='button button-smaller button-primary' href="javascript:optimizeThumbs(<?php echo($id)?>);">
|
937 |
-
|
938 |
</a>
|
939 |
<?php }
|
940 |
if($backup) {
|
941 |
if($type) {
|
942 |
$invType = $type == 'lossy' ? 'lossless' : 'lossy'; ?>
|
943 |
-
<a class='button button-smaller' href="javascript:reoptimize('<?php echo($id)?>', '<?php echo($invType)?>');"
|
944 |
-
|
|
|
945 |
</a><?php
|
946 |
} ?>
|
947 |
<a class='button button-smaller' href="admin.php?action=shortpixel_restore_backup&attachment_ID=<?php echo($id)?>">
|
948 |
-
Restore backup
|
949 |
</a>
|
950 |
<?php } ?>
|
951 |
</div>
|
@@ -957,8 +1053,12 @@ class ShortPixelView {
|
|
957 |
|
958 |
public function getQuotaExceededHTML($message = '') {
|
959 |
return "<div class='sp-column-actions' style='width:110px;'>
|
960 |
-
<a class='button button-smaller button-primary' href='https://shortpixel.com/login/". $this->ctrl->getApiKey() . "' target='_blank'>
|
961 |
-
|
|
|
|
|
|
|
|
|
962 |
<div class='sp-column-info'>" . $message . " Quota Exceeded.</div>";
|
963 |
}
|
964 |
}
|
20 |
<?php if($averageCompression) { ?>
|
21 |
<div style="float:right; margin-top: 10px">
|
22 |
<div class="bulk-progress-indicator">
|
23 |
+
<div style="margin-bottom:5px"><?php _e('Average reduction','shortpixel');?></div>
|
24 |
<div id="sp-avg-optimization"><input type="text" id="sp-avg-optimization-dial" value="<?php echo("" . round($averageCompression))?>" class="dial"></div>
|
25 |
<script>
|
26 |
jQuery(function() {
|
30 |
</div>
|
31 |
</div>
|
32 |
<?php } ?>
|
33 |
+
<h3><?php /* translators: header of the alert box */ _e('Quota Exceeded','shortpixel');?></h3>
|
34 |
+
<p><?php /* translators: body of the alert box */
|
35 |
+
printf(__('The plugin has optimized <strong>%s images</strong> and stopped because it reached the available quota limit.','shortpixel'),
|
36 |
+
number_format($quotaData['APICallsMadeNumeric'] + $quotaData['APICallsMadeOneTimeNumeric']));?>
|
37 |
<?php if($quotaData['totalProcessedFiles'] < $quotaData['totalFiles']) { ?>
|
38 |
+
<?php
|
39 |
+
printf(__('<strong>%s images and %s thumbnails</strong> are not yet optimized by ShortPixel.','shortpixel'),
|
40 |
+
number_format($quotaData['mainFiles'] - $quotaData['mainProcessedFiles']),
|
41 |
+
number_format(($quotaData['totalFiles'] - $quotaData['mainFiles']) - ($quotaData['totalProcessedFiles'] - $quotaData['mainProcessedFiles']))); ?>
|
42 |
+
<?php } ?></p>
|
43 |
<div> <!-- style='float:right;margin-top:20px;'> -->
|
44 |
+
<a class='button button-primary' href='https://shortpixel.com/login/<?php echo($this->ctrl->getApiKey());?>' target='_blank'><?php _e('Upgrade','shortpixel');?></a>
|
45 |
+
<input type='button' name='checkQuota' class='button' value='<?php _e('Confirm New Quota','shortpixel');?>' onclick="javascript:window.location.reload();">
|
46 |
</div>
|
47 |
+
<p><?php _e('Get more image credits by referring ShortPixel to your friends!','shortpixel');?>
|
48 |
+
<a href="https://shortpixel.com/login/<?php echo($this->ctrl->getApiKey());?>/tell-a-friend" target="_blank">
|
49 |
+
<?php _e('Check your account','shortpixel');?>
|
50 |
+
</a> <?php _e('for your unique referral link. For each user that joins, you will receive +100 additional image credits/month.','shortpixel');?>
|
51 |
+
</p>
|
52 |
|
53 |
</div> <?php
|
54 |
}
|
55 |
|
56 |
public static function displayApiKeyAlert()
|
57 |
{ ?>
|
58 |
+
<p><?php _e('In order to start the optimization process, you need to validate your API Key in the '
|
59 |
+
. '<a href="options-general.php?page=wp-shortpixel">ShortPixel Settings</a> page in your WordPress Admin.','shortpixel');?>
|
60 |
+
</p>
|
61 |
+
<p><?php _e('If you don’t have an API Key, you can get one delivered to your inbox, for free.','shortpixel');?></p>
|
62 |
+
<p><?php _e('Please <a href="https://shortpixel.com/wp-apikey" target="_blank">sign up to get your API key.</a>','shortpixel');?>
|
63 |
+
</p>
|
64 |
<?php
|
65 |
}
|
66 |
|
67 |
public static function displayActivationNotice($when = 'activate') { ?>
|
68 |
<div class='notice notice-warning' id='short-pixel-notice-<?php echo($when);?>'>
|
69 |
<?php if($when != 'activate') { ?>
|
70 |
+
<div style="float:right;"><a href="javascript:dismissShortPixelNotice('<?php echo($when);?>')" class="button" style="margin-top:10px;"><?php _e('Dismiss','shortpixel');?></a></div>
|
71 |
<?php } ?>
|
72 |
+
<h3><?php _e('ShortPixel Optimization','shortpixel');?></h3> <?php
|
73 |
switch($when) {
|
74 |
case '2h' :
|
75 |
+
_e("Action needed. Please <a href='https://shortpixel.com/wp-apikey' target='_blank'>get your API key</a> to activate your ShortPixel plugin.",'shortpixel') . "<BR><BR>";
|
76 |
break;
|
77 |
case '3d':
|
78 |
+
_e("Your image gallery is not optimized. It takes 2 minutes to <a href='https://shortpixel.com/wp-apikey' target='_blank'>get your API key</a> and activate your ShortPixel plugin.",'shortpixel') . "<BR><BR>";
|
79 |
break;
|
80 |
case 'activate':
|
81 |
self::displayApiKeyAlert();
|
99 |
<input type='hidden' id='mainToProcess' value='<?php echo($quotaData['mainFiles'] - $quotaData['mainProcessedFiles']);?>'/>
|
100 |
<input type='hidden' id='totalToProcess' value='<?php echo($quotaData['totalFiles'] - $quotaData['totalProcessedFiles']);?>'/>
|
101 |
<div class="bulk-stats-container">
|
102 |
+
<h3 style='margin-top:0;'><?php _e('Your media library','shortpixel');?></h3>
|
103 |
+
<div class="bulk-label"><?php _e('Original images','shortpixel');?></div>
|
104 |
<div class="bulk-val"><?php echo(number_format($quotaData['mainMlFiles']));?></div><br>
|
105 |
+
<div class="bulk-label"><?php _e('Smaller thumbnails','shortpixel');?></div>
|
106 |
<div class="bulk-val"><?php echo(number_format($quotaData['totalMlFiles'] - $quotaData['mainMlFiles']));?></div>
|
107 |
<div style='width:165px; display:inline-block; padding-left: 5px'>
|
108 |
+
<input type='checkbox' id='thumbnails' name='thumbnails' onclick='ShortPixel.checkThumbsUpdTotal(this)' <?php echo($this->ctrl->processThumbnails() ? "checked":"");?>>
|
109 |
+
<?php _e('Include thumbnails','shortpixel');?>
|
110 |
</div><br>
|
111 |
<?php if($quotaData["totalProcessedMlFiles"] > 0) { ?>
|
112 |
+
<div class="bulk-label bulk-total"><?php _e('Total images','shortpixel');?></div>
|
113 |
<div class="bulk-val bulk-total"><?php echo(number_format($quotaData['totalMlFiles']));?></div>
|
114 |
+
<br><div class="bulk-label"><?php _e('Already optimized originals','shortpixel');?></div>
|
115 |
<div class="bulk-val"><?php echo(number_format($quotaData['mainProcessedMlFiles']));?></div><br>
|
116 |
+
<div class="bulk-label"><?php _e('Already optimized thumbnails','shortpixel');?></div>
|
117 |
<div class="bulk-val"><?php echo(number_format($quotaData['totalProcessedMlFiles'] - $quotaData['mainProcessedMlFiles']));?></div><br>
|
118 |
<?php } ?>
|
119 |
+
<div class="bulk-label bulk-total"><?php _e('Total to be optimized','shortpixel');?></div>
|
120 |
<div class="bulk-val bulk-total" id='displayTotal'><?php echo(number_format($quotaData['totalMlFiles'] - $quotaData['totalProcessedMlFiles']));?></div>
|
121 |
|
122 |
<?php if($customCount > 0) { ?>
|
123 |
+
<h3 style='margin-bottom:10px;'><?php _e('Your custom folders','shortpixel');?></h3>
|
124 |
+
<div class="bulk-label bulk-total"><?php _e('Total to be optimized','shortpixel');?></div>
|
125 |
<div class="bulk-val bulk-total" id='displayTotal'><?php echo(number_format($customCount));?></div>
|
126 |
<?php } ?>
|
127 |
</div>
|
134 |
<img src='<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/robo-slider.png' ));?>'/>
|
135 |
</div>
|
136 |
<div class="bulk-btn-txt">
|
137 |
+
<?php printf(__('<span class="label">Start Optimizing</span><br> <span class="total">%s</span> images','shortpixel'),
|
138 |
+
number_format($quotaData['totalFiles'] - $quotaData['totalProcessedFiles']));?>
|
139 |
</div>
|
140 |
<div class="bulk-btn-img" class="bulk-btn-img">
|
141 |
<img src='<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/arrow.png' ));?>'/>
|
145 |
</div>
|
146 |
<?php } else {?>
|
147 |
<div class="bulk-play bulk-nothing-optimize">
|
148 |
+
<?php _e('Nothing to optimize! The images that you add to Media Gallery will be automatically optimized after upload.','shortpixel');?>
|
149 |
</div>
|
150 |
<?php } ?>
|
151 |
</form>
|
153 |
<?php if($quotaData['totalFiles'] - $quotaData['totalProcessedFiles'] > 0) { ?>
|
154 |
<div class='shortpixel-clearfix'></div>
|
155 |
<div class="bulk-wide">
|
156 |
+
<h3 style='font-size: 1.1em; font-weight: bold;'>
|
157 |
+
<?php _e('After you start the bulk process, in order for the optimization to run, you must keep this page open and your computer running. If you close the page for whatever reason, just turn back to it and the bulk process will resume.','shortpixel');?>
|
158 |
+
</h3>
|
159 |
</div>
|
160 |
<?php } ?>
|
161 |
<div class='shortpixel-clearfix'></div>
|
162 |
<div class="bulk-text-container">
|
163 |
+
<h3><?php _e('What are Thumbnails?','shortpixel');?></h3>
|
164 |
+
<p><?php _e('Thumbnails are smaller images usually generated by your WP theme. Most themes generate between 3 and 6 thumbnails for each Media Library image.','shortpixel');?></p>
|
165 |
+
<p><?php _e("The thumbnails also generate traffic on your website pages and they influence your website's speed.",'shortpixel');?></p>
|
166 |
+
<p><?php _e("It's highly recommended that you include thumbnails in the optimization as well.",'shortpixel');?></p>
|
167 |
</div>
|
168 |
<div class="bulk-text-container" style="padding-right:0">
|
169 |
+
<h3><?php _e('How does it work?','shortpixel');?></h3>
|
170 |
+
<p><?php _e('The plugin processes images starting with the newest ones you uploaded in your Media Library.','shortpixel');?></p>
|
171 |
+
<p><?php _e('You will be able to pause the process anytime.','shortpixel');?></p>
|
172 |
+
<p><?php echo($this->ctrl->backupImages() ? __("<p>Your original images will be stored in a separate back-up folder.</p>",'shortpixel') : "");?></p>
|
173 |
+
<p><?php _e('You can watch the images being processed live, right here, after you start optimizing.','shortpixel');?></p>
|
174 |
</div>
|
175 |
<?php
|
176 |
} elseif($percent) // bulk is paused
|
177 |
{ ?>
|
178 |
<?php echo($this->displayBulkProgressBar(false, $percent, "", $quotaData['APICallsRemaining'], $this->ctrl->getAverageCompression(), 1, $customCount));?>
|
179 |
+
<p><?php _e('Please see below the optimization status so far:','shortpixel');?></p>
|
180 |
<?php $this->displayBulkStats($quotaData['totalProcessedFiles'], $quotaData['mainProcessedFiles'], $under5PercentCount, $averageCompression, $savedSpace);?>
|
181 |
<?php if($quotaData['totalProcessedFiles'] < $quotaData['totalFiles']) { ?>
|
182 |
+
<p><?php printf(__('%d images and %d thumbnails are not yet optimized by ShortPixel.','shortpixel'),
|
183 |
+
number_format($quotaData['mainFiles'] - $quotaData['mainProcessedFiles']),
|
184 |
+
number_format(($quotaData['totalFiles'] - $quotaData['mainFiles']) - ($quotaData['totalProcessedFiles'] - $quotaData['mainProcessedFiles'])));?>
|
185 |
+
</p>
|
186 |
<?php } ?>
|
187 |
+
<p><?php _e('You can continue optimizing your Media Gallery from where you left, by clicking the Resume processing button. Already optimized images will not be reprocessed.','shortpixel');?></p>
|
188 |
<?php
|
189 |
} else { ?>
|
190 |
<div class="sp-container">
|
194 |
<input type="text" value="<?php echo("" . round($averageCompression))?>" id="sp-total-optimization-dial" class="dial">
|
195 |
</div>
|
196 |
<p style="margin-top:4px;">
|
197 |
+
<span style="font-size:1.2em;font-weight:bold"><?php _e('Congratulations!','shortpixel');?></span><br>
|
198 |
+
<?php _e('Your media library has been successfully optimized!','shortpixel');?>
|
199 |
+
<span class="sp-bulk-summary"><a href='javascript:void(0);'><?php _e('Summary','shortpixel');?></a></span>
|
200 |
</p>
|
201 |
</div>
|
202 |
<div class='notice notice-success sp-floating-block sp-single-width' style="height: 80px;overflow:hidden;padding-right: 0;">
|
203 |
<div style="float:left; margin-top:-5px">
|
204 |
<p style='margin-bottom: -2px; font-weight: bold;'>
|
205 |
+
<?php _e('Share your optimization results:','shortpixel');?>
|
206 |
</p>
|
207 |
+
<div style='display:inline-block; margin: 16px 16px 6px 0;float:left'>
|
208 |
<div id="fb-root"></div>
|
209 |
<script>
|
210 |
(function(d, s, id) {
|
211 |
var js, fjs = d.getElementsByTagName(s)[0];
|
212 |
if (d.getElementById(id)) return;
|
213 |
js = d.createElement(s); js.id = id;
|
214 |
+
js.src = "//connect.facebook.net/<?php echo(get_locale());?>/sdk.js#xfbml=1&version=v2.6";
|
215 |
fjs.parentNode.insertBefore(js, fjs);
|
216 |
}(document, 'script', 'facebook-jssdk'));
|
217 |
</script>
|
220 |
</div>
|
221 |
<div style="float:left;margin:-7px 0 0 10px">
|
222 |
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://shortpixel.com"
|
223 |
+
data-text="<?php
|
224 |
+
if(0+$averageCompression>20) {
|
225 |
+
_e("I just optimized my images by ",'shortpixel');
|
226 |
+
} else {
|
227 |
+
_e("I just optimized my images ",'shortpixel');
|
228 |
+
}
|
229 |
+
echo(round($averageCompression) ."%");
|
230 |
+
_e("with @ShortPixel, a great plugin for increasing #WordPress page speed:",'shortpixel');?>"
|
231 |
+
data-size='large'><?php _e('Tweet','shortpixel');?></a>
|
232 |
</div>
|
233 |
<script>
|
234 |
jQuery(function() {
|
235 |
jQuery("#sp-total-optimization-dial").val("<?php echo("" . round($averageCompression))?>");
|
236 |
ShortPixel.percentDial("#sp-total-optimization-dial", 60);
|
237 |
|
238 |
+
jQuery(".sp-bulk-summary").spTooltip({
|
239 |
tooltipSource: "inline",
|
240 |
tooltipSourceID: "#sp-bulk-stats"
|
241 |
});
|
254 |
<div class='shortpixel-rate-us' style='float:left;padding-top:0'>
|
255 |
<a href="https://wordpress.org/support/view/plugin-reviews/shortpixel-image-optimiser?rate=5#postform" target="_blank">
|
256 |
<span>
|
257 |
+
<?php _e('Please rate us!','shortpixel');?>
|
258 |
</span><br><img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/stars.png' ));?>">
|
259 |
</a>
|
260 |
</div>
|
264 |
<?php $this->displayBulkStats($quotaData['totalProcessedFiles'], $quotaData['mainProcessedFiles'], $under5PercentCount, $averageCompression, $savedSpace);?>
|
265 |
</div>
|
266 |
</div>
|
267 |
+
<p><?php printf(__('Go to the ShortPixel <a href="%soptions-general.php?page=wp-shortpixel#stats">Stats</a> '
|
268 |
+
. 'and see all your websites\' optimized stats. Download your detailed <a href="https://api.shortpixel.com/v2/report.php?key=%s">Optimization Report</a> '
|
269 |
+
. 'to check your image optimization statistics for the last 40 days.','shortpixel'), get_admin_url(), $this->ctrl->getApiKey());?></p>
|
270 |
<?php
|
271 |
$failed = $this->ctrl->getPrioQ()->getFailed();
|
272 |
if(count($failed)) { ?>
|
273 |
<div class="bulk-progress" style="margin-bottom: 15px">
|
274 |
<p>
|
275 |
+
<?php _e('The following images could not be processed because of their limited write rights. This usually happens if you have changed your hosting provider. Please restart the optimization process after you granted write rights to all the files below.','shortpixel');?>
|
276 |
</p>
|
277 |
<?php $this->displayFailed($failed); ?>
|
278 |
</div>
|
279 |
<?php } ?>
|
280 |
+
<div class="bulk-progress notice notice-info sp-floating-block sp-double-width">
|
281 |
+
<?php
|
282 |
$todo = $reopt = false;
|
283 |
if($quotaData['totalProcessedFiles'] < $quotaData['totalFiles']) {
|
284 |
$todo = true;
|
286 |
$thumbsNotProcessed = ($quotaData['totalFiles'] - $quotaData['mainFiles']) - ($quotaData['totalProcessedFiles'] - $quotaData['mainProcessedFiles']);
|
287 |
?>
|
288 |
<p>
|
289 |
+
<?php
|
290 |
+
if($mainNotProcessed && $thumbsNotProcessed) {
|
291 |
+
printf(__("%s images and %s thumbnails are not yet optimized by ShortPixel.",'shortpixel'),
|
292 |
+
number_format($mainNotProcessed), number_format($thumbsNotProcessed));
|
293 |
+
} elseif($mainNotProcessed) {
|
294 |
+
printf(__("%s images are not yet optimized by ShortPixel.",'shortpixel'), number_format($mainNotProcessed));
|
295 |
+
} elseif($thumbsNotProcessed) {
|
296 |
+
printf(__("%s thumbnails are not yet optimized by ShortPixel.",'shortpixel'), number_format($thumbsNotProcessed));
|
297 |
+
}
|
298 |
+
_e('','shortpixel');
|
299 |
+
if (count($quotaData['filesWithErrors'])) {
|
300 |
+
_e('Some have errors:','shortpixel');
|
301 |
+
foreach($quotaData['filesWithErrors'] as $id => $data) {
|
302 |
if(ShortPixelMetaFacade::isCustomQueuedId($id)) {
|
303 |
echo('<a href="'.trailingslashit(network_site_url("/")) . ShortPixelMetaFacade::filenameToRootRelative($data['Path']).'" title="'.$data['Message'].'" target="_blank">'.$data['Name'].'</a>, ');
|
304 |
} else {
|
305 |
echo('<a href="post.php?post='.$id.'&action=edit" title="'.$data['Message'].'">'.$data['Name'].'</a>, ');
|
306 |
}
|
307 |
+
}
|
308 |
+
} ?>
|
309 |
</p>
|
310 |
<?php }
|
311 |
$settings = $this->ctrl->getSettings();
|
320 |
$thumbsCount = $quotaData['totalProc'.$statType.'Files'] - $quotaData['mainProc'.$statType.'Files'];
|
321 |
?>
|
322 |
<p id="with-thumbs" <?php echo(!$settings->processThumbnails ? 'style="display:none;"' : "");?>>
|
323 |
+
<?php printf(__('%s images and %s thumbnails were optimized <strong>%s</strong>. You can re-optimize <strong>%s</strong> the ones that have backup.','shortpixel'),
|
324 |
+
number_format($quotaData['mainProc'.$statType.'Files']),
|
325 |
+
number_format($thumbsCount), $otherType, $optType);?>
|
|
|
|
|
|
|
|
|
|
|
326 |
</p>
|
327 |
<p id="without-thumbs" <?php echo($settings->processThumbnails ? 'style="display:none;"' : "");?>>
|
328 |
+
<?php printf(__('%s images were optimized <strong>%s</strong>. You can re-optimize <strong>%s</strong> the ones that have backup. ','shortpixel'),
|
329 |
+
number_format($quotaData['mainProc'.$statType.'Files']),
|
330 |
+
$otherType, $optType);?>
|
331 |
+
<?php echo($thumbsCount ? number_format($thumbsCount) . __(' thumbnails will be restored to originals.','shortpixel') : '');?>
|
|
|
|
|
|
|
|
|
332 |
</p>
|
333 |
<?php
|
334 |
} ?>
|
335 |
+
<p><?php if($todo) {
|
336 |
+
_e('Restart the optimization process for these images by clicking the button below.','shortpixel');
|
337 |
+
} else {
|
338 |
+
_e('Restart the optimization process for new images added to your library by clicking the button below.','shortpixel');
|
339 |
+
}
|
340 |
+
printf(__('Already <strong>%s</strong> optimized images will not be reprocessed.','shortpixel'), $todo ? ($optType) : '');
|
341 |
+
if($reopt) { ?>
|
342 |
+
<br><?php _e('Please note that reoptimizing images as <strong>lossy/lossless</strong> may use additional credits.','shortpixel')?>
|
343 |
+
<a href="http://blog.shortpixel.com/the-all-new-re-optimization-functions-in-shortpixel/" target="_blank"><?php _e('More info','shortpixel');?></a>
|
344 |
<?php } ?>
|
345 |
</p>
|
346 |
<form action='' method='POST' >
|
347 |
+
<input type='checkbox' id='bulk-thumbnails' name='thumbnails' <?php echo($this->ctrl->processThumbnails() ? "checked":"");?>
|
348 |
+
onchange="ShortPixel.onBulkThumbsCheck(this)"> <?php _e('Include thumbnails','shortpixel');?><br><br>
|
349 |
+
<input type='submit' name='bulkProcess' id='bulkProcess' class='button button-primary' value='<?php _e('Restart Optimizing','shortpixel');?>'>
|
350 |
</form>
|
351 |
</div>
|
352 |
<?php } ?>
|
357 |
public function displayBulkProcessingRunning($percent, $message, $remainingQuota, $averageCompression, $type) {
|
358 |
?>
|
359 |
<div class="wrap short-pixel-bulk-page">
|
360 |
+
<h1><?php _e('Bulk Image Optimization by ShortPixel','shortpixel');?></h1>
|
361 |
<?php $this->displayBulkProgressBar(true, $percent, $message, $remainingQuota, $averageCompression, $type);?>
|
362 |
<div class="sp-floating-block notice bulk-notices-parent">
|
363 |
<div class="bulk-notice-container">
|
364 |
<div class="bulk-notice-msg bulk-lengthy">
|
365 |
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/loading-dark-big.gif' ));?>">
|
366 |
+
<?php _e('Lengthy operation in progress:','shortpixel');?><br>
|
367 |
+
<?php _e('Optimizing image','shortpixel');?> <a href="#" data-href="<?php echo(get_admin_url());?>/post.php?post=__ID__&action=edit" target="_blank">placeholder.png</a>
|
368 |
</div>
|
369 |
<div class="bulk-notice-msg bulk-error" id="bulk-error-template">
|
370 |
<div style="float: right; margin-top: -4px; margin-right: -8px;">
|
371 |
<a href="javascript:void(0);" onclick="ShortPixel.removeBulkMsg(this)" style='color: #c32525;'>✖</a>
|
372 |
</div>
|
373 |
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/exclamation-big.png' ));?>">
|
374 |
+
<span class="sp-err-title"><?php _e('Error processing file:','shortpixel');?><br></span>
|
375 |
+
<span class="sp-err-content"><?php echo $message; ?></span> <a class="sp-post-link" href="<?php echo(get_admin_url());?>/post.php?post=__ID__&action=edit" target="_blank">placeholder.png</a>
|
376 |
</div>
|
377 |
</div>
|
378 |
</div>
|
379 |
<div class="bulk-progress bulk-slider-container notice notice-info sp-floating-block sp-full-width">
|
380 |
+
<div class="short-pixel-block-title"><span><?php _e('Just optimized:','shortpixel');?></span><span class="filename"></span></div>
|
381 |
<div class="bulk-slider">
|
382 |
<div class="bulk-slide" id="empty-slide">
|
383 |
<div class="bulk-slide-images">
|
384 |
<div class="img-original">
|
385 |
<div><img class="bulk-img-orig" src=""></div>
|
386 |
+
<div><?php _e('Original image','shortpixel');?></div>
|
387 |
</div>
|
388 |
<div class="img-optimized">
|
389 |
<div><img class="bulk-img-opt" src=""></div>
|
390 |
+
<div><?php _e('Optimized image','shortpixel');?></div>
|
391 |
</div>
|
392 |
</div>
|
393 |
<div class="img-info">
|
394 |
+
<div style="font-size: 14px; line-height: 10px; margin-bottom:16px;"><?php /*translators: percent follows */ _e('Optimized by:','shortpixel');?></div>
|
395 |
<span class="bulk-opt-percent"></span>
|
396 |
</div>
|
397 |
</div>
|
413 |
<div style="float:right">
|
414 |
<?php if(false) { ?>
|
415 |
<div class="bulk-progress-indicator">
|
416 |
+
<div style="margin-bottom:5px"><?php _e('Remaining credits','shortpixel');?></div>
|
417 |
<div style="margin-top:22px;margin-bottom: 5px;font-size:2em;font-weight: bold;"><?php echo(number_format($remainingQuota))?></div>
|
418 |
<div>images</div>
|
419 |
</div>
|
420 |
<?php } ?>
|
421 |
<div class="bulk-progress-indicator">
|
422 |
+
<div style="margin-bottom:5px"><?php _e('Average reduction','shortpixel');?></div>
|
423 |
<div id="sp-avg-optimization"><input type="text" id="sp-avg-optimization-dial" value="<?php echo("" . round($averageCompression))?>" class="dial"></div>
|
424 |
<script>
|
425 |
jQuery(function() {
|
429 |
</div>
|
430 |
</div>
|
431 |
<?php if($running) { ?>
|
432 |
+
<h2><?php echo($type & 1 ? __('Media Library','shortpixel') . " " : "");
|
433 |
+
echo($type & 3 == 3 ? __('and','shortpixel') . " " : "");
|
434 |
+
echo($type & 2 ? __('Custom folders','shortpixel') . " " : ""); _e('optimization in progress ...','shortpixel');?></h2>
|
435 |
+
<p style="margin: 0 0 18px;"><?php _e('Bulk optimization has started.','shortpixel');?><br>
|
436 |
+
<?php printf(__('This process will take some time, depending on the number of images in your library. In the meantime, you can continue using
|
437 |
+
the admin as usual, <a href="%s" target="_blank">in a different browser window or tab</a>.<br>
|
438 |
+
However, <strong>if you close this window, the bulk processing will pause</strong> until you open the media gallery or the ShortPixel bulk page again.','shortpixel'), get_admin_url());?>
|
439 |
</p>
|
440 |
<?php } else { ?>
|
441 |
+
<h2><?php echo(__('Media Library','shortpixel') . ' ' . ($type & 2 ? __("and Custom folders",'shortpixel') . ' ' : "") . __('optimization paused','shortpixel')); ?></h2>
|
442 |
+
<p style="margin: 0 0 50px;"><?php _e('Bulk processing is paused until you resume the optimization process.','shortpixel');?></p>
|
443 |
<?php }?>
|
444 |
<div id="bulk-progress" class="progress" >
|
445 |
<div class="progress-img" style="left: <?php echo($percent);?>%;">
|
456 |
<input type="submit" class="button button-primary bulk-cancel" onclick="clearBulkProcessor();"
|
457 |
name="bulkProcessStop" value="Stop" style="margin-left:10px"/>
|
458 |
<input type="submit" class="button button-primary bulk-cancel" onclick="clearBulkProcessor();"
|
459 |
+
name="<?php echo($running ? "bulkProcessPause" : "bulkProcessResume");?>" value="<?php echo($running ? __('Pause','shortpixel') : __('Resume processing','shortpixel'));?>"/>
|
460 |
<?php if(!$running && $customPending) {?>
|
461 |
<input type="submit" class="button button-primary bulk-cancel" onclick="clearBulkProcessor();"
|
462 |
+
name="skipToCustom" value="<?php _e('Only other media','shortpixel');?>" title="<?php _e('Process only the other media, skipping the Media Library','shortpixel');?>" style="margin-right:10px"/>
|
463 |
<?php }?>
|
464 |
</form>
|
465 |
<?php } else { ?>
|
466 |
+
<a href="options-general.php?page=wp-shortpixel" class="button button-primary bulk-cancel" style="margin-left:10px"><?php _e('Manage custom folders','shortpixel');?></a>
|
467 |
<?php }?>
|
468 |
</div>
|
469 |
<?php
|
471 |
|
472 |
public function displayBulkStats($totalOptimized, $mainOptimized, $under5PercentCount, $averageCompression, $savedSpace) {?>
|
473 |
<div class="bulk-progress bulk-stats">
|
474 |
+
<div class="label"><?php _e('Processed Images and PDFs:','shortpixel');?></div><div class="stat-value"><?php echo(number_format($mainOptimized));?></div><br>
|
475 |
+
<div class="label"><?php _e('Processed Thumbnails:','shortpixel');?></div><div class="stat-value"><?php echo(number_format($totalOptimized - $mainOptimized));?></div><br>
|
476 |
+
<div class="label totals"><?php _e('Total files processed:','shortpixel');?></div><div class="stat-value"><?php echo(number_format($totalOptimized));?></div><br>
|
477 |
+
<div class="label totals"><?php _e('Minus files with <5% optimization (free):','shortpixel');?></div><div class="stat-value"><?php echo(number_format($under5PercentCount));?></div><br><br>
|
478 |
+
<div class="label totals"><?php _e('Used quota:','shortpixel');?></div><div class="stat-value"><?php echo(number_format($totalOptimized - $under5PercentCount));?></div><br>
|
479 |
<br>
|
480 |
+
<div class="label"><?php _e('Average optimization:','shortpixel');?></div><div class="stat-value"><?php echo($averageCompression);?>%</div><br>
|
481 |
+
<div class="label"><?php _e('Saved space:','shortpixel');?></div><div class="stat-value"><?php echo($savedSpace);?></div>
|
482 |
</div>
|
483 |
<?php
|
484 |
}
|
504 |
$customFolders = null, $folderMsg = false, $addedFolder = false, $showAdvanced = false) {
|
505 |
//wp_enqueue_script('jquery.idTabs.js', plugins_url('/js/jquery.idTabs.js',__FILE__) );
|
506 |
?>
|
507 |
+
<h1><?php _e('ShortPixel Plugin Settings','shortpixel');?></h1>
|
508 |
<p style="font-size:18px">
|
509 |
<a href="https://shortpixel.com/<?php echo($this->ctrl->getVerifiedKey() ? "login/".$this->ctrl->getApiKey() : "pricing");?>" target="_blank" style="font-size:18px">
|
510 |
+
<?php _e('Upgrade now','shortpixel');?>
|
511 |
</a> |
|
512 |
+
<a href="https://shortpixel.com/contact/<?php echo($this->ctrl->getEncryptedData());?>" target="_blank" style="font-size:18px"><?php _e('Support','shortpixel');?> </a>
|
513 |
</p>
|
514 |
<?php if($notice !== null) { ?>
|
515 |
<br/>
|
527 |
<article id="shortpixel-settings-tabs" class="sp-tabs">
|
528 |
<form name='wp_shortpixel_options' action='options-general.php?page=wp-shortpixel&noheader=true' method='post' id='wp_shortpixel_options'>
|
529 |
<section <?php echo($showAdvanced ? "" : "class='sel-tab'");?> id="tab-settings">
|
530 |
+
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-settings"><?php _e('General','shortpixel');?></a></h2>
|
531 |
<?php $this->displaySettingsForm($showApiKey, $editApiKey, $quotaData);?>
|
532 |
</section>
|
533 |
<?php if($this->ctrl->getVerifiedKey()) {?>
|
534 |
<section <?php echo($showAdvanced ? "class='sel-tab'" : "");?> id="tab-adv-settings">
|
535 |
+
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-adv-settings"><?php _e('Advanced','shortpixel');?></a></h2>
|
536 |
<?php $this->displayAdvancedSettingsForm($customFolders, $addedFolder);?>
|
537 |
</section>
|
538 |
<?php } ?>
|
539 |
</form><span style="display:none"> </span><?php //the span is a trick to keep the sections ordered as nth-child in styles: 1,2,3,4 (otherwise the third section would be nth-child(2) too, because of the form)
|
540 |
if($averageCompression !== null) {?>
|
541 |
<section id="tab-stats">
|
542 |
+
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-stats"><?php _e('Statistics','shortpixel');?></a></h2>
|
543 |
<?php
|
544 |
$this->displaySettingsStats($quotaData, $averageCompression, $savedSpace, $savedBandwidth,
|
545 |
$remainingImages, $totalCallsMade, $fileCount, $backupFolderSize);?>
|
547 |
<?php }
|
548 |
if($resources !== null) {?>
|
549 |
<section id="tab-resources">
|
550 |
+
<h2><a class='tab-link' href='javascript:void(0);' data-id="tab-resources"><?php _e('WP Resources','shortpixel');?></a></h2>
|
551 |
+
<?php echo((isset($resources['body']) ? $resources['body'] : __("Please reload",'shortpixel')));?>
|
552 |
</section>
|
553 |
<?php } ?>
|
554 |
</article>
|
581 |
?>
|
582 |
<div class="wp-shortpixel-options">
|
583 |
<?php if($this->ctrl->getVerifiedKey()) { ?>
|
584 |
+
<p><?php printf(__('New images uploaded to the Media Library will be optimized automatically.<br/>If you have existing images you would like to optimize, you can use the <a href="%supload.php?page=wp-short-pixel-bulk">Bulk Optimization Tool</a>.','shortpixel'),get_admin_url());?></p>
|
585 |
<?php } else {
|
586 |
if($showApiKey) {?>
|
587 |
+
<h3><?php _e('Step 1:','shortpixel');?></h3>
|
588 |
+
<p style='font-size: 14px'><?php printf(__('If you don\'t have an API Key, <a href="https://shortpixel.com/wp-apikey%s" target="_blank">sign up here.</a> It\'s free and it only takes one minute, we promise!','shortpixel'),$this->ctrl->getAffiliateSufix());?></p>
|
589 |
+
<h3><?php _e('Step 2:','shortpixel');?></h3>
|
590 |
+
<p style='font-size: 14px'><?php _e('Please enter here the API Key you received by email and press Validate.','shortpixel');?></p>
|
591 |
<?php }
|
592 |
}?>
|
593 |
<table class="form-table">
|
594 |
<tbody>
|
595 |
<tr>
|
596 |
+
<th scope="row"><label for="key"><?php _e('API Key:','shortpixel');?></label></th>
|
597 |
<td>
|
598 |
<?php
|
599 |
$canValidate = false;
|
603 |
class="regular-text" <?php echo($editApiKey ? "" : 'disabled') ?>>
|
604 |
<?php } elseif(defined("SHORTPIXEL_API_KEY")) {
|
605 |
$canValidate = true;?>
|
606 |
+
<input name="key" type="text" id="key" disabled="true" placeholder="<?php _e('Multisite API Key','shortpixel');?>" class="regular-text">
|
607 |
<?php } ?>
|
608 |
<input type="hidden" name="validate" id="valid" value=""/>
|
609 |
+
<button type="button" id="validate" class="button button-primary" title="<?php _e('Validate the provided API key','shortpixel');?>"
|
610 |
+
onclick="ShortPixel.validateKey()" <?php echo $canValidate ? "" : "disabled"?>><?php _e('Validate','shortpixel');?></button>
|
611 |
<?php if($showApiKey && !$editApiKey) { ?>
|
612 |
+
<p class="settings-info"><?php _e('Key defined in wp-config.php.','shortpixel');?></p>
|
613 |
<?php } ?>
|
614 |
|
615 |
</td>
|
620 |
<?php } else { //if valid key we display the rest of the options ?>
|
621 |
<tr>
|
622 |
<th scope="row">
|
623 |
+
<label for="compressionType"><?php _e('Compression type:','shortpixel');?></label>
|
624 |
</th>
|
625 |
<td>
|
626 |
+
<input type="radio" name="compressionType" value="1" <?php echo( $this->ctrl->getCompressionType() == 1 ? "checked" : "" );?>><?php
|
627 |
+
_e('Lossy (recommended)','shortpixel');?></br>
|
628 |
+
<p class="settings-info"><?php _e('<b>Lossy compression: </b>lossy has a better compression rate than lossless compression.</br>The resulting image is identical with the original to the human eye. You can run a test for free ','shortpixel');?>
|
629 |
+
<a href="https://shortpixel.com/online-image-compression" target="_blank"><?php _e('here','shortpixel');?></a>.</p></br>
|
630 |
+
<input type="radio" name="compressionType" value="0" <?php echo( $this->ctrl->getCompressionType() != 1 ? "checked" : "" );?>><?php
|
631 |
+
_e('Lossless','shortpixel');?>
|
632 |
+
<p class="settings-info">
|
633 |
+
<?php _e('<b>Lossless compression: </b> the shrunk image will be identical with the original and smaller in size.</br>In some rare cases you will need to use
|
634 |
+
this type of compression. Some technical drawings or images from vector graphics are possible situations.','shortpixel');?>
|
635 |
+
</p>
|
636 |
</td>
|
637 |
</tr>
|
638 |
</tbody>
|
640 |
<table class="form-table">
|
641 |
<tbody>
|
642 |
<tr>
|
643 |
+
<th scope="row"><label for="thumbnails"><?php _e('Also include thumbnails:','shortpixel');?></label></th>
|
644 |
+
<td><input name="thumbnails" type="checkbox" id="thumbnails" <?php echo( $checked );?>> <?php
|
645 |
+
_e('Apply compression also to <strong>image thumbnails.</strong> ','shortpixel');?>
|
646 |
+
<?php echo($thumbnailsToProcess ? "(" . number_format($thumbnailsToProcess) . " " . __('thumbnails to optimize','shortpixel') . ")" : "");?>
|
647 |
+
<p class="settings-info">
|
648 |
+
<?php _e('It is highly recommended that you optimize the thumbnails as they are usually the images most viewed by end users and can generate most traffic.<br>Please note that thumbnails count up to your total quota.','shortpixel');?>
|
649 |
+
</p>
|
650 |
</td>
|
651 |
</tr>
|
652 |
<tr>
|
653 |
+
<th scope="row"><label for="backupImages"><?php _e('Image backup','shortpixel');?></label></th>
|
654 |
<td>
|
655 |
+
<input name="backupImages" type="checkbox" id="backupImages" <?php echo( $checkedBackupImages );?>> <?php _e('Save and keep a backup of your original images in a separate folder.','shortpixel');?>
|
656 |
+
<p class="settings-info"><?php _e('You <strong>need to have backup active</strong> in order to be able to restore images to originals or to convert from Lossy to Lossless and back.','shortpixel');?></p>
|
657 |
</td>
|
658 |
</tr>
|
659 |
<tr>
|
660 |
+
<th scope="row"><label for="cmyk2rgb"><?php _e('CMYK to RGB conversion','shortpixel');?></label></th>
|
661 |
<td>
|
662 |
+
<input name="cmyk2rgb" type="checkbox" id="cmyk2rgb" <?php echo( $cmyk2rgb );?>><?php _e('Adjust your images for computer and mobile screen display.','shortpixel');?>
|
663 |
+
<p class="settings-info"><?php _e('Images for the web only need RGB format and converting them from CMYK to RGB makes them smaller.','shortpixel');?></p>
|
664 |
</td>
|
665 |
</tr>
|
666 |
<tr>
|
667 |
+
<th scope="row"><label for="removeExif"><?php _e('Remove EXIF','shortpixel');?></label></th>
|
668 |
<td>
|
669 |
+
<input name="removeExif" type="checkbox" id="removeExif" <?php echo( $removeExif );?>><?php _e('Remove the EXIF tag of the image (recommended).','shortpixel');?>
|
670 |
+
<p class="settings-info"> <?php _e('EXIF is a set of various pieces of information that are automatically embedded into the image upon creation. This can include GPS position, camera manufacturer, date and time, etc.
|
671 |
+
Unless you really need that data to be preserved, we recommend removing it as it can lead to <a href="http://blog.shortpixel.com/how-much-smaller-can-be-images-without-exif-icc" target="_blank">better compression rates</a>.','shortpixel');?></p>
|
672 |
</td>
|
673 |
</tr>
|
674 |
<tr>
|
675 |
+
<th scope="row"><label for="resize"><?php _e('Resize large images','shortpixel');?></label></th>
|
676 |
<td>
|
677 |
+
<input name="resize" type="checkbox" id="resize" <?php echo( $resize );?>> <?php
|
678 |
+
_e('to maximum','shortpixel');?> <input type="text" name="width" id="width" style="width:70px"
|
679 |
+
value="<?php echo( max($this->ctrl->getResizeWidth(), min(1024, $minSizes['width'])) );?>" <?php echo( $resizeDisabled );?>/> <?php
|
680 |
+
_e('pixels wide ×','shortpixel');?>
|
681 |
+
<input type="text" name="height" id="height" style="width:70px" value="<?php echo( max($this->ctrl->getResizeHeight(), min(1024, $minSizes['height'])) );?>" <?php echo( $resizeDisabled );?>/> <?php
|
682 |
+
_e('pixels high (original aspect ratio is preserved and image is not cropped)','shortpixel');?>
|
683 |
<p class="settings-info">
|
684 |
+
<?php _e('Recommended for large photos, like the ones taken with your phone. Saved space can go up to 80% or more after resizing.','shortpixel');?><br/>
|
685 |
</p>
|
686 |
<div style="margin-top: 10px;">
|
687 |
<input type="radio" name="resize_type" id="resize_type_outer" value="outer" <?php echo($settings->resizeType == 'inner' ? '' : 'checked') ?> style="margin: -50px 10px 60px 0;">
|
688 |
+
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/resize-outer.png' ));?>" title="<?php _e('Sizes will be greater or equal to the corresponding value. For example, if you set the resize dimensions at 1000x1200, an image of 2000x3000px will be resized to 1000x1500px while an image of 3000x2000px will be resized to 1800x1200px','shortpixel');?>">
|
689 |
<input type="radio" name="resize_type" id="resize_type_inner" value="inner" <?php echo($settings->resizeType == 'inner' ? 'checked' : '') ?> style="margin: -50px 10px 60px 35px;">
|
690 |
+
<img src="<?php echo(plugins_url( 'shortpixel-image-optimiser/res/img/resize-inner.png' ));?>" title="<?php _e('Sizes will be smaller or equal to the corresponding value. For example, if you set the resize dimensions at 1000x1200, an image of 2000x3000px will be resized to 800x1200px while an image of 3000x2000px will be resized to 1000x667px','shortpixel');?>">
|
691 |
</div>
|
692 |
</td>
|
693 |
</tr>
|
694 |
</tbody>
|
695 |
</table>
|
696 |
<p class="submit">
|
697 |
+
<input type="submit" name="save" id="save" class="button button-primary" title="<?php _e('Save Changes','shortpixel');?>" value="<?php _e('Save Changes','shortpixel');?>">
|
698 |
+
<input type="submit" name="save" id="bulk" class="button button-primary" title="<?php _e('Save and go to the Bulk Processing page','shortpixel');?>" value="<?php _e('Save and Go to Bulk Process','shortpixel');?>">
|
699 |
</p>
|
700 |
</div>
|
701 |
<script>
|
715 |
$frontBootstrap = ($settings->frontBootstrap ? 'checked' : '');
|
716 |
$includeNextGen = ($settings->includeNextGen ? 'checked' : '');
|
717 |
$createWebp = ($settings->createWebp ? 'checked' : '');
|
718 |
+
$autoMediaLibrary = ($settings->autoMediaLibrary ? 'checked' : '');
|
719 |
+
$optimizeRetina = ($settings->optimizeRetina ? 'checked' : '');
|
720 |
?>
|
721 |
<div class="wp-shortpixel-options">
|
722 |
<?php if(!$this->ctrl->getVerifiedKey()) { ?>
|
723 |
+
<p><?php _e('Please enter your API key in the General tab first.','shortpixel');?></p>
|
724 |
<?php } else { //if valid key we display the rest of the options ?>
|
725 |
<table class="form-table">
|
726 |
<tbody>
|
727 |
<tr>
|
728 |
+
<th scope="row"><label for="resize"><?php _e('Additional media folders','shortpixel');?></label></th>
|
729 |
<td>
|
730 |
<?php if($customFolders) { ?>
|
731 |
<table class="shortpixel-folders-list">
|
732 |
<tr style="font-weight: bold;">
|
733 |
+
<td><?php _e('Folder name','shortpixel');?></td>
|
734 |
+
<td><?php _e('Type &<br>Status','shortpixel');?></td>
|
735 |
+
<td><?php _e('Files','shortpixel');?></td>
|
736 |
+
<td><?php _e('Last change','shortpixel');?></td>
|
737 |
<td></td>
|
738 |
</tr>
|
739 |
<?php foreach($customFolders as $folder) {
|
742 |
$stat = $this->ctrl->getSpMetaDao()->getFolderOptimizationStatus($folder->getId());
|
743 |
$cnt = $folder->getFileCount();
|
744 |
$st = ($cnt == 0
|
745 |
+
? __("Empty",'shortpixel')
|
746 |
: ($stat->Total == $stat->Optimized
|
747 |
+
? __("Optimized",'shortpixel')
|
748 |
+
: ($stat->Optimized + $stat->Pending > 0 ? __("Pending",'shortpixel') : __("Waiting",'shortpixel'))));
|
749 |
+
|
750 |
+
$err = $stat->Failed > 0 && !$st == __("Empty",'shortpixel') ? " ({$stat->Failed} failed)" : "";
|
751 |
+
|
752 |
+
$action = ($st == __("Optimized",'shortpixel') || $st == __("Empty",'shortpixel') ? __("Stop monitoring",'shortpixel') : __("Stop optimizing",'shortpixel'));
|
753 |
+
|
754 |
+
$fullStat = $st == __("Empty",'shortpixel') ? "" : __("Optimized",'shortpixel') . ": " . $stat->Optimized . ", "
|
755 |
+
. __("Pending",'shortpixel') . ": " . $stat->Pending . ", " . __("Waiting",'shortpixel') . ": " . $stat->Waiting . ", "
|
756 |
+
. __("Failed",'shortpixel') . ": " . $stat->Failed;
|
757 |
?>
|
758 |
<tr>
|
759 |
<td>
|
773 |
<?php echo($folder->getTsUpdated()); ?>
|
774 |
</td>
|
775 |
<td>
|
776 |
+
<input type="button" class="button remove-folder-button" data-value="<?php echo($folder->getPath()); ?>" title="<?php echo($action . " " . $folder->getPath()); ?>" value="<?php echo $action;?>">
|
777 |
+
<input type="button" style="display:none;" class="button button-alert recheck-folder-button" data-value="<?php echo($folder->getPath()); ?>"
|
778 |
+
title="<?php _e('Full folder refresh, check each file of the folder if it changed since it was optimized. Might take up to 1 min. for big folders.','shortpixel');?>"
|
779 |
+
value="<?php _e('Refresh','shortpixel');?>">
|
780 |
</td>
|
781 |
</tr>
|
782 |
<?php }?>
|
787 |
<input type="text" name="addCustomFolderView" id="addCustomFolderView" class="regular-text" value="<?php echo($addedFolder);?>" disabled style="width: 50em;max-width: 70%;">
|
788 |
<input type="hidden" name="addCustomFolder" id="addCustomFolder" value="<?php echo($addedFolder);?>"/>
|
789 |
<input type="hidden" id="customFolderBase" value="<?php echo $this->ctrl->getCustomFolderBase(); ?>">
|
790 |
+
<a class="button button-primary select-folder-button" title="<?php _e('Select the images folder on your server.','shortpixel');?>" href="javascript:void(0);">
|
791 |
+
<?php _e('Select ...','shortpixel');?>
|
792 |
+
</a>
|
793 |
+
<input type="submit" name="saveAdv" id="saveAdvAddFolder" class="button button-primary" title="<?php _e('Add Folder','shortpixel');?>" value="<?php _e('Add Folder','shortpixel');?>">
|
794 |
+
<p class="settings-info">
|
795 |
+
<?php _e('Use the Select... button to select site folders. ShortPixel will optimize images and PDFs from the specified folders and their subfolders. The optimization status for each image or PDF in these folders can be seen in the <a href="upload.php?page=wp-short-pixel-custom">Other Media list</a>, under the Media menu.','shortpixel');?>
|
796 |
+
</p>
|
797 |
<div class="sp-folder-picker-shade">
|
798 |
<div class="sp-folder-picker-popup">
|
799 |
+
<div class="sp-folder-picker-title"><?php _e('Select the images folder','shortpixel');?></div>
|
800 |
<div class="sp-folder-picker"></div>
|
801 |
+
<input type="button" class="button button-info select-folder-cancel" value="<?php _e('Cancel','shortpixel');?>" style="margin-right: 30px;">
|
802 |
+
<input type="button" class="button button-primary select-folder" value="<?php _e('Select','shortpixel');?>">
|
803 |
</div>
|
804 |
</div>
|
805 |
<script>
|
811 |
</tr>
|
812 |
<?php if($hasNextGen) { ?>
|
813 |
<tr>
|
814 |
+
<th scope="row"><label for="nextGen"><?php _e('Optimize NextGen galleries','shortpixel');?></label></th>
|
815 |
<td>
|
816 |
+
<input name="nextGen" type="checkbox" id="nextGen" <?php echo( $includeNextGen );?>> <?php _e('Optimize NextGen galleries.','shortpixel');?>
|
817 |
+
<p class="settings-info">
|
818 |
+
<?php _e('Check this to add all your current NextGen galleries to the custom folders list and to also have all the future NextGen galleries and images optimized automatically by ShortPixel.','shortpixel');?>
|
819 |
+
</p>
|
820 |
</td>
|
821 |
</tr>
|
822 |
<?php } ?>
|
823 |
<tr>
|
824 |
+
<th scope="row"><label for="createWebp"><?php _e('WebP versions','shortpixel');?></label></th>
|
825 |
<td>
|
826 |
+
<input name="createWebp" type="checkbox" id="createWebp" <?php echo( $createWebp );?>> <?php _e('Create also <a href="http://blog.shortpixel.com/how-webp-images-can-speed-up-your-site/" target="_blank">WebP versions</a> of the images <strong>for free</strong>.','shortpixel');?>
|
827 |
+
<p class="settings-info">
|
828 |
+
<?php _e('WebP images can be up to three times smaller than PNGs and 25% smaller than JPGs. Choosing this option <strong>does not use up additional credits</strong>.','shortpixel');?>
|
829 |
+
</p>
|
830 |
</td>
|
831 |
</tr>
|
832 |
<tr>
|
833 |
+
<th scope="row"><label for="optimizeRetina"><?php _e('Optimize Retina images','shortpixel');?></label></th>
|
834 |
<td>
|
835 |
+
<input name="optimizeRetina" type="checkbox" id="optimizeRetina" <?php echo( $optimizeRetina );?>> <?php _e('Optimize also the Retina images (@2x) if they exist.','shortpixel');?>
|
836 |
+
<p class="settings-info">
|
837 |
+
<?php _e('If you have a Retina plugin that generates Retina-specific images (@2x), ShortPixel can optimize them too, alongside the regular Media Library images and thumbnails. <a href="http://blog.shortpixel.com/how-to-use-optimized-retina-images-on-your-wordpress-site-for-best-user-experience-on-apple-devices/" target="_blank">More info.</a>','shortpixel');?>
|
838 |
+
</p>
|
839 |
+
</td>
|
840 |
+
</tr>
|
841 |
+
<tr>
|
842 |
+
<th scope="row"><label for="authentication"><?php _e('HTTP AUTH credentials','shortpixel');?></label></th>
|
843 |
+
<td>
|
844 |
+
<input name="siteAuthUser" type="text" id="siteAuthUser" value="<?php echo( $settings->siteAuthUser );?>" class="regular-text" placeholder="<?php _e('User','shortpixel');?>"><br>
|
845 |
+
<input name="siteAuthPass" type="text" id="siteAuthPass" value="<?php echo( $settings->siteAuthPass );?>" class="regular-text" placeholder="<?php _e('Password','shortpixel');?>">
|
846 |
+
<p class="settings-info">
|
847 |
+
<?php _e('Only fill in these fields if your site (front-end) is not publicly accessible and visitors need a user/pass to connect to it. If you don\'t know what is this then just <strong>leave the fields empty</strong>.','shortpixel');?>
|
848 |
+
</p>
|
849 |
+
</td>
|
850 |
+
</tr>
|
851 |
+
<tr>
|
852 |
+
<th scope="row"><label for="resize"><?php _e('Process in front-end','shortpixel');?></label></th>
|
853 |
+
<td>
|
854 |
+
<input name="frontBootstrap" type="checkbox" id="resize" <?php echo( $frontBootstrap );?>> <?php _e('Automatically optimize images added by users in front end.','shortpixel');?>
|
855 |
+
<p class="settings-info">
|
856 |
+
<?php _e('Check this if you have users that add images or PDF documents from custom forms in the front-end. This could increase the load on your server if you have a lot of users simultaneously connected.','shortpixel');?>
|
857 |
+
</p>
|
858 |
</td>
|
859 |
</tr>
|
860 |
<tr>
|
861 |
+
<th scope="row"><label for="autoMediaLibrary"><?php _e('Optimize media on upload','shortpixel');?></label></th>
|
862 |
<td>
|
863 |
+
<input name="autoMediaLibrary" type="checkbox" id="autoMediaLibrary" <?php echo( $autoMediaLibrary );?>> <?php _e('Automatically optimize Media Library items after they are uploaded (recommended).','shortpixel');?>
|
864 |
+
<p class="settings-info">
|
865 |
+
<?php _e('By default, ShortPixel will automatically optimize all the freshly uploaded image and PDF files. If you uncheck this you\'ll need to either run Bulk ShortPixel or go to Media Library (in list view) and click on the right side "Optimize now" button(s).','shortpixel');?>
|
866 |
+
</p>
|
867 |
</td>
|
868 |
</tr>
|
869 |
</tbody>
|
870 |
</table>
|
871 |
<p class="submit">
|
872 |
+
<input type="submit" name="saveAdv" id="saveAdv" class="button button-primary" title="<?php _e('Save Changes','shortpixel');?>" value="<?php _e('Save Changes','shortpixel');?>">
|
873 |
+
<input type="submit" name="saveAdv" id="bulkAdvGo" class="button button-primary" title="<?php _e('Save and go to the Bulk Processing page','shortpixel');?>" value="<?php _e('Save and Go to Bulk Process','shortpixel');?>">
|
874 |
</p>
|
875 |
</div>
|
876 |
<script>
|
882 |
function displaySettingsStats($quotaData, $averageCompression, $savedSpace, $savedBandwidth,
|
883 |
$remainingImages, $totalCallsMade, $fileCount, $backupFolderSize) { ?>
|
884 |
<a id="facts"></a>
|
885 |
+
<h3><?php _e('Your ShortPixel Stats','shortpixel');?></h3>
|
886 |
<table class="form-table">
|
887 |
<tbody>
|
888 |
<tr>
|
889 |
+
<th scope="row"><label for="averagCompression"><?php _e('Average compression of your files:','shortpixel');?></label></th>
|
890 |
<td><?php echo($averageCompression);?>%</td>
|
891 |
</tr>
|
892 |
<tr>
|
893 |
+
<th scope="row"><label for="savedSpace"><?php _e('Saved disk space by ShortPixel','shortpixel');?></label></th>
|
894 |
<td><?php echo($savedSpace);?></td>
|
895 |
</tr>
|
896 |
<tr>
|
897 |
+
<th scope="row"><label for="savedBandwidth"><?php _e('Bandwith* saved with ShortPixel:','shortpixel');?></label></th>
|
898 |
<td><?php echo($savedBandwidth);?></td>
|
899 |
</tr>
|
900 |
</tbody>
|
901 |
</table>
|
902 |
|
903 |
+
<p style="padding-top: 0px; color: #818181;" ><?php _e('* Saved bandwidth is calculated at 10,000 impressions/image','shortpixel');?></p>
|
904 |
|
905 |
+
<h3><?php _e('Your ShortPixel Plan','shortpixel');?></h3>
|
906 |
<table class="form-table">
|
907 |
<tbody>
|
908 |
<tr>
|
909 |
+
<th scope="row" bgcolor="#ffffff"><label for="apiQuota"><?php _e('Your ShortPixel plan','shortpixel');?></label></th>
|
910 |
<td bgcolor="#ffffff">
|
911 |
+
<?php printf(__('%s/month, renews in %s days, on %s ( <a href="https://shortpixel.com/login/%s" target="_blank">Need More? See the options available</a> )','shortpixel'),
|
912 |
+
$quotaData['APICallsQuota'], floor(30 + (strtotime($quotaData['APILastRenewalDate']) - time()) / 86400),
|
913 |
+
date('M d, Y', strtotime($quotaData['APILastRenewalDate']. ' + 30 days')), $this->ctrl->getApiKey());?><br/>
|
914 |
+
<?php printf(__('<a href="https://shortpixel.com/login/%s/tell-a-friend" target="_blank">Join our friend referral system</a> to win more credits. For each user that joins, you receive +100 images credits/month.','shortpixel'),
|
915 |
+
$this->ctrl->getApiKey());?>
|
916 |
</td>
|
917 |
</tr>
|
918 |
<tr>
|
919 |
+
<th scope="row"><label for="usedQUota"><?php _e('One time credits:','shortpixel');?></label></th>
|
920 |
<td><?php echo( number_format($quotaData['APICallsQuotaOneTimeNumeric']));?></td>
|
921 |
</tr>
|
922 |
<tr>
|
923 |
+
<th scope="row"><label for="usedQUota"><?php _e('Number of images processed this month:','shortpixel');?></label></th>
|
924 |
+
<td><?php echo($totalCallsMade);?> (<a href="https://api.shortpixel.com/v2/report.php?key=<?php echo($this->ctrl->getApiKey());?>" target="_blank">
|
925 |
+
<?php _e('see report','shortpixel');?>
|
926 |
+
</a>)
|
927 |
+
</td>
|
928 |
</tr>
|
929 |
<tr>
|
930 |
+
<th scope="row"><label for="remainingImages"><?php _e('Remaining** images in your plan:','shortpixel');?></label></th>
|
931 |
+
<td><?php echo($remainingImages);?> <?php _e('images','shortpixel');?></td>
|
932 |
</tr>
|
933 |
</tbody>
|
934 |
</table>
|
935 |
|
936 |
+
<p style="padding-top: 0px; color: #818181;" >
|
937 |
+
<?php printf(__('** Increase your image quota by <a href="https://shortpixel.com/login/%s" target="_blank">upgrading your ShortPixel plan.</a>','shortpixel'),
|
938 |
+
$this->ctrl->getApiKey());?>
|
939 |
+
</p>
|
940 |
|
941 |
<table class="form-table">
|
942 |
<tbody>
|
943 |
<tr>
|
944 |
+
<th scope="row"><label for="totalFiles"><?php _e('Total number of processed files:','shortpixel');?></label></th>
|
945 |
<td><?php echo($fileCount);?></td>
|
946 |
</tr>
|
947 |
<?php if($this->ctrl->backupImages()) { ?>
|
948 |
<tr>
|
949 |
+
<th scope="row"><label for="sizeBackup"><?php _e('Original images are stored in a backup folder. Your backup folder size is now:','shortpixel');?></label></th>
|
950 |
<td>
|
951 |
<form action="" method="POST">
|
952 |
<?php echo($backupFolderSize);?>
|
953 |
+
<input type="submit" style="margin-left: 15px; vertical-align: middle;" class="button button-secondary" name="emptyBackup" value="<?php _e('Empty backups','shortpixel');?>"/>
|
954 |
</form>
|
955 |
</td>
|
956 |
</tr>
|
965 |
|
966 |
public function renderCustomColumn($id, $data){ ?>
|
967 |
<div id='sp-msg-<?php echo($id);?>' class='column-wp-shortPixel'>
|
968 |
+
|
969 |
<?php switch($data['status']) {
|
970 |
case 'n/a': ?>
|
971 |
+
<?php _e('Optimization N/A','shortpixel');?> <?php
|
972 |
break;
|
973 |
case 'notFound': ?>
|
974 |
+
<?php _e('Image does not exist.','shortpixel');?> <?php
|
975 |
break;
|
976 |
case 'invalidKey':
|
977 |
if(defined("SHORTPIXEL_API_KEY")) { // multisite key - need to be validated on each site but it's not invalid
|
978 |
+
?> <?php _e('Please <a href="options-general.php?page=wp-shortpixel">go to Settings</a> to validate the API Key.','shortpixel');?> <?php
|
979 |
} else {
|
980 |
+
?> <?php _e('Invalid API Key. <a href="options-general.php?page=wp-shortpixel">Check your Settings</a>','shortpixel');?> <?php
|
981 |
}
|
982 |
break;
|
983 |
case 'quotaExceeded':
|
985 |
break;
|
986 |
case 'optimizeNow':
|
987 |
if($data['showActions']) { ?>
|
988 |
+
<a class='button button-smaller button-primary' href="javascript:manualOptimization('<?php echo($id)?>')">
|
989 |
+
<?php _e('Optimize now','shortpixel');?>
|
990 |
+
</a>
|
991 |
<?php }
|
992 |
echo($data['message']);
|
993 |
if(isset($data['thumbsTotal']) && $data['thumbsTotal'] > 0) {
|
995 |
}
|
996 |
break;
|
997 |
case 'retry': ?>
|
998 |
+
<?php echo($data['message'])?> <a class='button button-smaller button-primary' href="javascript:manualOptimization('<?php echo($id)?>')">
|
999 |
+
<?php _e('Retry','shortpixel');?>
|
1000 |
+
</a> <?php
|
1001 |
break;
|
1002 |
case 'pdfOptimized':
|
1003 |
case 'imgOptimized':
|
1004 |
$this->renderListCell($id, $data['showActions'],
|
1005 |
!$data['thumbsOpt'] && $data['thumbsTotal'], $data['thumbsTotal'], $data['backup'], $data['type'],
|
1006 |
+
$this->getSuccessText($data['percent'],$data['bonus'],$data['type'],$data['thumbsOpt'],$data['thumbsTotal'], $data['retinasOpt']));
|
1007 |
break;
|
1008 |
}
|
1009 |
//die(var_dump($data));
|
1012 |
<?php
|
1013 |
}
|
1014 |
|
1015 |
+
public function getSuccessText($percent, $bonus, $type, $thumbsOpt = 0, $thumbsTotal = 0, $retinasOpt = 0) {
|
1016 |
+
return ($percent ? __('Reduced by','shortpixel') . ' <strong>' . $percent . '%</strong> ' : '')
|
1017 |
+
.(!$bonus ? ' ('.$type.')':'')
|
1018 |
+
.($bonus && $percent ? '<br>' : '')
|
1019 |
+
.($bonus ? __('Bonus processing','shortpixel') : '')
|
1020 |
+
.($bonus ? ' ('.$type.')':'') . '<br>'
|
1021 |
+
.($thumbsOpt ? ( $thumbsTotal > $thumbsOpt
|
1022 |
+
? sprintf(__('+%s of %s thumbnails optimized','shortpixel'),$thumbsOpt,$thumbsTotal)
|
1023 |
+
: sprintf(__('+%s thumbnails optimized','shortpixel'),$thumbsOpt)) : '')
|
1024 |
+
.($retinasOpt ? '<br>' . sprintf(__('+%s Retina images optimized','shortpixel') , $retinasOpt) : '' ) ;
|
1025 |
}
|
1026 |
|
1027 |
public function renderListCell($id, $showActions, $optimizeThumbs, $thumbsTotal, $backup, $type, $message) {
|
1029 |
<div class='sp-column-actions'>
|
1030 |
<?php if($optimizeThumbs) { ?>
|
1031 |
<a class='button button-smaller button-primary' href="javascript:optimizeThumbs(<?php echo($id)?>);">
|
1032 |
+
<?php printf(__('Optimize %s thumbnails','shortpixel'),$thumbsTotal);?>
|
1033 |
</a>
|
1034 |
<?php }
|
1035 |
if($backup) {
|
1036 |
if($type) {
|
1037 |
$invType = $type == 'lossy' ? 'lossless' : 'lossy'; ?>
|
1038 |
+
<a class='button button-smaller' href="javascript:reoptimize('<?php echo($id)?>', '<?php echo($invType)?>');"
|
1039 |
+
title="<?php _e('Reoptimize from the backed-up image','shortpixel');?>">
|
1040 |
+
<?php _e('Re-optimize','shortpixel');?> <?php echo($invType)?>
|
1041 |
</a><?php
|
1042 |
} ?>
|
1043 |
<a class='button button-smaller' href="admin.php?action=shortpixel_restore_backup&attachment_ID=<?php echo($id)?>">
|
1044 |
+
<?php _e('Restore backup','shortpixel');?>
|
1045 |
</a>
|
1046 |
<?php } ?>
|
1047 |
</div>
|
1053 |
|
1054 |
public function getQuotaExceededHTML($message = '') {
|
1055 |
return "<div class='sp-column-actions' style='width:110px;'>
|
1056 |
+
<a class='button button-smaller button-primary' href='https://shortpixel.com/login/". $this->ctrl->getApiKey() . "' target='_blank'>"
|
1057 |
+
. __('Extend Quota','shortpixel') .
|
1058 |
+
"</a>
|
1059 |
+
<a class='button button-smaller' href='admin.php?action=shortpixel_check_quota'>"
|
1060 |
+
. __('Check Quota','shortpixel') .
|
1061 |
+
"</a></div>
|
1062 |
<div class='sp-column-info'>" . $message . " Quota Exceeded.</div>";
|
1063 |
}
|
1064 |
}
|
class/wp-shortpixel-settings.php
CHANGED
@@ -26,6 +26,7 @@ class WPShortPixelSettings {
|
|
26 |
'keepExif' => 'wp-short-pixel-keep-exif',
|
27 |
'CMYKtoRGBconversion' => 'wp-short-pixel_cmyk2rgb',
|
28 |
'createWebp' => 'wp-short-create-webp',
|
|
|
29 |
'backupImages' => 'wp-short-backup_images',
|
30 |
'resizeImages' => 'wp-short-pixel-resize-images',
|
31 |
'resizeType' => 'wp-short-pixel-resize-type',
|
@@ -33,6 +34,7 @@ class WPShortPixelSettings {
|
|
33 |
'resizeHeight' => 'wp-short-pixel-resize-height',
|
34 |
'siteAuthUser' => 'wp-short-pixel-site-auth-user',
|
35 |
'siteAuthPass' => 'wp-short-pixel-site-auth-pass',
|
|
|
36 |
|
37 |
//optimize other images than the ones in Media Library
|
38 |
'includeNextGen' => 'wp-short-pixel-include-next-gen',
|
@@ -95,7 +97,9 @@ class WPShortPixelSettings {
|
|
95 |
$this->_processThumbnails = self::getOpt('wp-short-process_thumbnails', $this->_processThumbnails);
|
96 |
$this->_CMYKtoRGBconversion = self::getOpt('wp-short-pixel_cmyk2rgb', $this->_CMYKtoRGBconversion);
|
97 |
$this->_backupImages = self::getOpt('wp-short-backup_images', $this->_backupImages);
|
98 |
-
// the following practically set defaults for options if they're not set
|
|
|
|
|
99 |
self::getOpt( 'wp-short-pixel-fileCount', 0);
|
100 |
self::getOpt( 'wp-short-pixel-thumbnail-count', 0);//amount of optimized thumbnails
|
101 |
self::getOpt( 'wp-short-pixel-files-under-5-percent', 0);//amount of optimized thumbnails
|
26 |
'keepExif' => 'wp-short-pixel-keep-exif',
|
27 |
'CMYKtoRGBconversion' => 'wp-short-pixel_cmyk2rgb',
|
28 |
'createWebp' => 'wp-short-create-webp',
|
29 |
+
'optimizeRetina' => 'wp-short-pixel-optimize-retina',
|
30 |
'backupImages' => 'wp-short-backup_images',
|
31 |
'resizeImages' => 'wp-short-pixel-resize-images',
|
32 |
'resizeType' => 'wp-short-pixel-resize-type',
|
34 |
'resizeHeight' => 'wp-short-pixel-resize-height',
|
35 |
'siteAuthUser' => 'wp-short-pixel-site-auth-user',
|
36 |
'siteAuthPass' => 'wp-short-pixel-site-auth-pass',
|
37 |
+
'autoMediaLibrary' => 'wp-short-pixel-auto-media-library',
|
38 |
|
39 |
//optimize other images than the ones in Media Library
|
40 |
'includeNextGen' => 'wp-short-pixel-include-next-gen',
|
97 |
$this->_processThumbnails = self::getOpt('wp-short-process_thumbnails', $this->_processThumbnails);
|
98 |
$this->_CMYKtoRGBconversion = self::getOpt('wp-short-pixel_cmyk2rgb', $this->_CMYKtoRGBconversion);
|
99 |
$this->_backupImages = self::getOpt('wp-short-backup_images', $this->_backupImages);
|
100 |
+
// the following lines practically set defaults for options if they're not set
|
101 |
+
self::getOpt('wp-short-pixel-auto-media-library', 1);
|
102 |
+
self::getOpt('wp-short-pixel-optimize-retina', 1);
|
103 |
self::getOpt( 'wp-short-pixel-fileCount', 0);
|
104 |
self::getOpt( 'wp-short-pixel-thumbnail-count', 0);//amount of optimized thumbnails
|
105 |
self::getOpt( 'wp-short-pixel-files-under-5-percent', 0);//amount of optimized thumbnails
|
lang/shortpixel-de_DE.mo
ADDED
Binary file
|
lang/shortpixel-de_DE.po
ADDED
@@ -0,0 +1,1461 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
+
#, fuzzy
|
7 |
+
msgid ""
|
8 |
+
msgstr ""
|
9 |
+
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
+
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2016-11-30 16:23+0100\n"
|
12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
+
"Language: \n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
19 |
+
|
20 |
+
#: class/view/shortpixel_view.php:23 class/view/shortpixel_view.php:417
|
21 |
+
msgid "Average reduction"
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#. translators: header of the alert box
|
25 |
+
#: class/view/shortpixel_view.php:33
|
26 |
+
msgid "Quota Exceeded"
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#. translators: body of the alert box
|
30 |
+
#: class/view/shortpixel_view.php:35
|
31 |
+
#, php-format
|
32 |
+
msgid ""
|
33 |
+
"The plugin has optimized <strong>%s images</strong> and stopped because it "
|
34 |
+
"reached the available quota limit."
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: class/view/shortpixel_view.php:39
|
38 |
+
#, php-format
|
39 |
+
msgid ""
|
40 |
+
"<strong>%s images and %s thumbnails</strong> are not yet optimized by "
|
41 |
+
"ShortPixel."
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: class/view/shortpixel_view.php:44
|
45 |
+
msgid "Upgrade"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: class/view/shortpixel_view.php:45
|
49 |
+
msgid "Confirm New Quota"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: class/view/shortpixel_view.php:47
|
53 |
+
msgid "Get more image credits by referring ShortPixel to your friends!"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: class/view/shortpixel_view.php:49
|
57 |
+
msgid "Check your account"
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: class/view/shortpixel_view.php:50
|
61 |
+
msgid ""
|
62 |
+
"for your unique referral link. For each user that joins, you will receive "
|
63 |
+
"+100 additional image credits/month."
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: class/view/shortpixel_view.php:58
|
67 |
+
msgid ""
|
68 |
+
"In order to start the optimization process, you need to validate your API "
|
69 |
+
"Key in the <a href=\"options-general.php?page=wp-shortpixel\">ShortPixel "
|
70 |
+
"Settings</a> page in your WordPress Admin."
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: class/view/shortpixel_view.php:61
|
74 |
+
msgid ""
|
75 |
+
"If you don’t have an API Key, you can get one delivered to your inbox, for "
|
76 |
+
"free."
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: class/view/shortpixel_view.php:62
|
80 |
+
msgid ""
|
81 |
+
"Please <a href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">sign "
|
82 |
+
"up to get your API key.</a>"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: class/view/shortpixel_view.php:70
|
86 |
+
msgid "Dismiss"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: class/view/shortpixel_view.php:72
|
90 |
+
msgid "ShortPixel Optimization"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: class/view/shortpixel_view.php:75
|
94 |
+
msgid ""
|
95 |
+
"Action needed. Please <a href='https://shortpixel.com/wp-apikey' "
|
96 |
+
"target='_blank'>get your API key</a> to activate your ShortPixel plugin."
|
97 |
+
msgstr ""
|
98 |
+
|
99 |
+
#: class/view/shortpixel_view.php:78
|
100 |
+
msgid ""
|
101 |
+
"Your image gallery is not optimized. It takes 2 minutes to <a href='https://"
|
102 |
+
"shortpixel.com/wp-apikey' target='_blank'>get your API key</a> and activate "
|
103 |
+
"your ShortPixel plugin."
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: class/view/shortpixel_view.php:102
|
107 |
+
msgid "Your media library"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: class/view/shortpixel_view.php:103
|
111 |
+
msgid "Original images"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: class/view/shortpixel_view.php:105
|
115 |
+
msgid "Smaller thumbnails"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: class/view/shortpixel_view.php:109 class/view/shortpixel_view.php:343
|
119 |
+
msgid "Include thumbnails"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: class/view/shortpixel_view.php:112
|
123 |
+
msgid "Total images"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: class/view/shortpixel_view.php:114
|
127 |
+
msgid "Already optimized originals"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: class/view/shortpixel_view.php:116
|
131 |
+
msgid "Already optimized thumbnails"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: class/view/shortpixel_view.php:119 class/view/shortpixel_view.php:124
|
135 |
+
msgid "Total to be optimized"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: class/view/shortpixel_view.php:123
|
139 |
+
msgid "Your custom folders"
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
#: class/view/shortpixel_view.php:137
|
143 |
+
#, php-format
|
144 |
+
msgid ""
|
145 |
+
"<span class=\"label\">Start Optimizing</span><br> <span class=\"total\">%s</"
|
146 |
+
"span> images"
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: class/view/shortpixel_view.php:148
|
150 |
+
msgid ""
|
151 |
+
"Nothing to optimize! The images that you add to Media Gallery will be "
|
152 |
+
"automatically optimized after upload."
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: class/view/shortpixel_view.php:157
|
156 |
+
msgid ""
|
157 |
+
"After you start the bulk process, in order for the optimization to run, you "
|
158 |
+
"must keep this page open and your computer running. If you close the page "
|
159 |
+
"for whatever reason, just turn back to it and the bulk process will resume."
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: class/view/shortpixel_view.php:163
|
163 |
+
msgid "What are Thumbnails?"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: class/view/shortpixel_view.php:164
|
167 |
+
msgid ""
|
168 |
+
"Thumbnails are smaller images usually generated by your WP theme. Most "
|
169 |
+
"themes generate between 3 and 6 thumbnails for each Media Library image."
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: class/view/shortpixel_view.php:165
|
173 |
+
msgid ""
|
174 |
+
"The thumbnails also generate traffic on your website pages and they "
|
175 |
+
"influence your website's speed."
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: class/view/shortpixel_view.php:166
|
179 |
+
msgid ""
|
180 |
+
"It's highly recommended that you include thumbnails in the optimization as "
|
181 |
+
"well."
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
#: class/view/shortpixel_view.php:169
|
185 |
+
msgid "How does it work?"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: class/view/shortpixel_view.php:170
|
189 |
+
msgid ""
|
190 |
+
"The plugin processes images starting with the newest ones you uploaded in "
|
191 |
+
"your Media Library."
|
192 |
+
msgstr ""
|
193 |
+
|
194 |
+
#: class/view/shortpixel_view.php:171
|
195 |
+
msgid "You will be able to pause the process anytime."
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#: class/view/shortpixel_view.php:172
|
199 |
+
msgid ""
|
200 |
+
"<p>Your original images will be stored in a separate back-up folder.</p>"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: class/view/shortpixel_view.php:173
|
204 |
+
msgid ""
|
205 |
+
"You can watch the images being processed live, right here, after you start "
|
206 |
+
"optimizing."
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#. bulk is paused
|
210 |
+
#: class/view/shortpixel_view.php:179
|
211 |
+
msgid "Please see below the optimization status so far:"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: class/view/shortpixel_view.php:182
|
215 |
+
#, php-format
|
216 |
+
msgid "%d images and %d thumbnails are not yet optimized by ShortPixel."
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: class/view/shortpixel_view.php:187
|
220 |
+
msgid ""
|
221 |
+
"You can continue optimizing your Media Gallery from where you left, by "
|
222 |
+
"clicking the Resume processing button. Already optimized images will not be "
|
223 |
+
"reprocessed."
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: class/view/shortpixel_view.php:197
|
227 |
+
msgid "Congratulations!"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: class/view/shortpixel_view.php:198
|
231 |
+
msgid "Your media library has been successfully optimized!"
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: class/view/shortpixel_view.php:199
|
235 |
+
msgid "Summary"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: class/view/shortpixel_view.php:205
|
239 |
+
msgid "Share your optimization results:"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: class/view/shortpixel_view.php:225
|
243 |
+
msgid "I just optimized my images by "
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: class/view/shortpixel_view.php:227
|
247 |
+
msgid "I just optimized my images "
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: class/view/shortpixel_view.php:230
|
251 |
+
msgid "with @ShortPixel, a great plugin for increasing #WordPress page speed:"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: class/view/shortpixel_view.php:231
|
255 |
+
msgid "Tweet"
|
256 |
+
msgstr ""
|
257 |
+
|
258 |
+
#: class/view/shortpixel_view.php:257
|
259 |
+
msgid "Please rate us!"
|
260 |
+
msgstr ""
|
261 |
+
|
262 |
+
#: class/view/shortpixel_view.php:267
|
263 |
+
#, php-format
|
264 |
+
msgid ""
|
265 |
+
"Go to the ShortPixel <a href=\"%soptions-general.php?page=wp-shortpixel#stats"
|
266 |
+
"\">Stats</a> and see all your websites' optimized stats. Download your "
|
267 |
+
"detailed <a href=\"https://api.shortpixel.com/v2/report.php?key=%s"
|
268 |
+
"\">Optimization Report</a> to check your image optimization statistics for "
|
269 |
+
"the last 40 days."
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: class/view/shortpixel_view.php:275
|
273 |
+
msgid ""
|
274 |
+
"The following images could not be processed because of their limited write "
|
275 |
+
"rights. This usually happens if you have changed your hosting provider. "
|
276 |
+
"Please restart the optimization process after you granted write rights to "
|
277 |
+
"all the files below."
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: class/view/shortpixel_view.php:290 wp-shortpixel.php:1755
|
281 |
+
#: wp-shortpixel.php:1756 wp-shortpixel.php:1757 wp-shortpixel.php:1758
|
282 |
+
msgid " images"
|
283 |
+
msgstr ""
|
284 |
+
|
285 |
+
#: class/view/shortpixel_view.php:291
|
286 |
+
msgid " and"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: class/view/shortpixel_view.php:292
|
290 |
+
msgid " thumbnails"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
+
#: class/view/shortpixel_view.php:293
|
294 |
+
msgid " are not yet optimized by ShortPixel."
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: class/view/shortpixel_view.php:295
|
298 |
+
msgid "Some have errors:"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: class/view/shortpixel_view.php:318
|
302 |
+
#, php-format
|
303 |
+
msgid ""
|
304 |
+
"%s images and %s thumbnails were optimized <strong>%s</strong>. You can re-"
|
305 |
+
"optimize <strong>%s</strong> the ones that have backup."
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: class/view/shortpixel_view.php:323
|
309 |
+
#, php-format
|
310 |
+
msgid ""
|
311 |
+
"%s images were optimized <strong>%s</strong>. You can re-optimize <strong>"
|
312 |
+
"%s</strong> the ones that have backup. "
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: class/view/shortpixel_view.php:326
|
316 |
+
msgid " thumbnails will be restored to originals."
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: class/view/shortpixel_view.php:331
|
320 |
+
msgid ""
|
321 |
+
"Restart the optimization process for these images by clicking the button "
|
322 |
+
"below."
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: class/view/shortpixel_view.php:333
|
326 |
+
msgid ""
|
327 |
+
"Restart the optimization process for new images added to your library by "
|
328 |
+
"clicking the button below."
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: class/view/shortpixel_view.php:335
|
332 |
+
#, php-format
|
333 |
+
msgid "Already <strong>%s</strong> optimized images will not be reprocessed."
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: class/view/shortpixel_view.php:337
|
337 |
+
msgid ""
|
338 |
+
"Please note that reoptimizing images as <strong>lossy/lossless</strong> may "
|
339 |
+
"use additional credits."
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: class/view/shortpixel_view.php:338
|
343 |
+
msgid "More info"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: class/view/shortpixel_view.php:344
|
347 |
+
msgid "Restart Optimizing"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: class/view/shortpixel_view.php:355
|
351 |
+
msgid "Bulk Image Optimization by ShortPixel"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: class/view/shortpixel_view.php:361
|
355 |
+
msgid "Lengthy operation in progress:"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: class/view/shortpixel_view.php:362
|
359 |
+
msgid "Optimizing image"
|
360 |
+
msgstr ""
|
361 |
+
|
362 |
+
#: class/view/shortpixel_view.php:369
|
363 |
+
msgid "Error processing file:"
|
364 |
+
msgstr ""
|
365 |
+
|
366 |
+
#: class/view/shortpixel_view.php:375
|
367 |
+
msgid "Just optimized:"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: class/view/shortpixel_view.php:381
|
371 |
+
msgid "Original image"
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: class/view/shortpixel_view.php:385
|
375 |
+
msgid "Optimized image"
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#. translators: percent follows
|
379 |
+
#: class/view/shortpixel_view.php:389
|
380 |
+
msgid "Optimized by:"
|
381 |
+
msgstr ""
|
382 |
+
|
383 |
+
#: class/view/shortpixel_view.php:411
|
384 |
+
msgid "Remaining credits"
|
385 |
+
msgstr ""
|
386 |
+
|
387 |
+
#: class/view/shortpixel_view.php:427 class/view/shortpixel_view.php:436
|
388 |
+
msgid "Media Library"
|
389 |
+
msgstr ""
|
390 |
+
|
391 |
+
#: class/view/shortpixel_view.php:428
|
392 |
+
msgid "and"
|
393 |
+
msgstr ""
|
394 |
+
|
395 |
+
#: class/view/shortpixel_view.php:429
|
396 |
+
msgid "Custom folders"
|
397 |
+
msgstr ""
|
398 |
+
|
399 |
+
#: class/view/shortpixel_view.php:429
|
400 |
+
msgid "optimization in progress ..."
|
401 |
+
msgstr ""
|
402 |
+
|
403 |
+
#: class/view/shortpixel_view.php:430
|
404 |
+
msgid "Bulk optimization has started."
|
405 |
+
msgstr ""
|
406 |
+
|
407 |
+
#: class/view/shortpixel_view.php:431
|
408 |
+
#, php-format
|
409 |
+
msgid ""
|
410 |
+
"This process will take some time, depending on the number of images in your "
|
411 |
+
"library. In the meantime, you can continue using \n"
|
412 |
+
" the admin as usual, <a href=\"%s\" target=\"_blank\">in "
|
413 |
+
"a different browser window or tab</a>.<br>\n"
|
414 |
+
" However, <strong>if you close this window, the bulk "
|
415 |
+
"processing will pause</strong> until you open the media gallery or the "
|
416 |
+
"ShortPixel bulk page again."
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#: class/view/shortpixel_view.php:436
|
420 |
+
msgid "and Custom folders"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: class/view/shortpixel_view.php:436
|
424 |
+
msgid "optimization paused"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: class/view/shortpixel_view.php:437
|
428 |
+
msgid "Bulk processing is paused until you resume the optimization process."
|
429 |
+
msgstr ""
|
430 |
+
|
431 |
+
#. now we display the action buttons always when a type of bulk is running
|
432 |
+
#: class/view/shortpixel_view.php:454
|
433 |
+
msgid "Pause"
|
434 |
+
msgstr ""
|
435 |
+
|
436 |
+
#: class/view/shortpixel_view.php:454
|
437 |
+
msgid "Resume processing"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: class/view/shortpixel_view.php:457
|
441 |
+
msgid "Only other media"
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: class/view/shortpixel_view.php:457
|
445 |
+
msgid "Process only the other media, skipping the Media Library"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: class/view/shortpixel_view.php:461
|
449 |
+
msgid "Manage custom folders"
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: class/view/shortpixel_view.php:469
|
453 |
+
msgid "Processed Images and PDFs:"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: class/view/shortpixel_view.php:470
|
457 |
+
msgid "Processed Thumbnails:"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: class/view/shortpixel_view.php:471
|
461 |
+
msgid "Total files processed:"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: class/view/shortpixel_view.php:472
|
465 |
+
#, php-format
|
466 |
+
msgid "Minus files with <5% optimization (free):"
|
467 |
+
msgstr ""
|
468 |
+
|
469 |
+
#: class/view/shortpixel_view.php:473
|
470 |
+
msgid "Used quota:"
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: class/view/shortpixel_view.php:475
|
474 |
+
msgid "Average optimization:"
|
475 |
+
msgstr ""
|
476 |
+
|
477 |
+
#: class/view/shortpixel_view.php:476
|
478 |
+
msgid "Saved space:"
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#. wp_enqueue_script('jquery.idTabs.js', plugins_url('/js/jquery.idTabs.js',__FILE__) );
|
482 |
+
#: class/view/shortpixel_view.php:502
|
483 |
+
msgid "ShortPixel Plugin Settings"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: class/view/shortpixel_view.php:505
|
487 |
+
msgid "Upgrade now"
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
+
#: class/view/shortpixel_view.php:507
|
491 |
+
msgid "Support"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: class/view/shortpixel_view.php:525
|
495 |
+
msgid "General"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: class/view/shortpixel_view.php:530
|
499 |
+
msgid "Advanced"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#. the span is a trick to keep the sections ordered as nth-child in styles: 1,2,3,4 (otherwise the third section would be nth-child(2) too, because of the form)
|
503 |
+
#: class/view/shortpixel_view.php:537
|
504 |
+
msgid "Statistics"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: class/view/shortpixel_view.php:545
|
508 |
+
msgid "WP Resources"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: class/view/shortpixel_view.php:546
|
512 |
+
msgid "Please reload"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: class/view/shortpixel_view.php:579
|
516 |
+
#, php-format
|
517 |
+
msgid ""
|
518 |
+
"New images uploaded to the Media Library will be optimized automatically.<br/"
|
519 |
+
">If you have existing images you would like to optimize, you can use the <a "
|
520 |
+
"href=\"%supload.php?page=wp-short-pixel-bulk\">Bulk Optimization Tool</a>."
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: class/view/shortpixel_view.php:582
|
524 |
+
msgid "Step 1:"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: class/view/shortpixel_view.php:583
|
528 |
+
#, php-format
|
529 |
+
msgid ""
|
530 |
+
"If you don't have an API Key, <a href=\"https://shortpixel.com/wp-apikey%s\" "
|
531 |
+
"target=\"_blank\">sign up here.</a> It's free and it only takes one minute, "
|
532 |
+
"we promise!"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: class/view/shortpixel_view.php:584
|
536 |
+
msgid "Step 2:"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: class/view/shortpixel_view.php:585
|
540 |
+
msgid "Please enter here the API Key you received by email and press Validate."
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: class/view/shortpixel_view.php:591
|
544 |
+
msgid "API Key:"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: class/view/shortpixel_view.php:601
|
548 |
+
msgid "Multisite API Key"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: class/view/shortpixel_view.php:604
|
552 |
+
msgid "Validate the provided API key"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: class/view/shortpixel_view.php:605
|
556 |
+
msgid "Validate"
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: class/view/shortpixel_view.php:607
|
560 |
+
msgid "Key defined in wp-config.php."
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#. if invalid key we display the link to the API Key
|
564 |
+
#. if valid key we display the rest of the options
|
565 |
+
#: class/view/shortpixel_view.php:618
|
566 |
+
msgid "Compression type:"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: class/view/shortpixel_view.php:622
|
570 |
+
msgid "Lossy (recommended)"
|
571 |
+
msgstr ""
|
572 |
+
|
573 |
+
#: class/view/shortpixel_view.php:623
|
574 |
+
msgid ""
|
575 |
+
"<b>Lossy compression: </b>lossy has a better compression rate than lossless "
|
576 |
+
"compression.</br>The resulting image is identical with the original to the "
|
577 |
+
"human eye. You can run a test for free "
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: class/view/shortpixel_view.php:624 wp-shortpixel.php:1458
|
581 |
+
msgid "here"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: class/view/shortpixel_view.php:626 class/view/shortpixel-list-table.php:111
|
585 |
+
msgid "Lossless"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: class/view/shortpixel_view.php:628
|
589 |
+
msgid ""
|
590 |
+
"<b>Lossless compression: </b> the shrunk image will be identical with the "
|
591 |
+
"original and smaller in size.</br>In some rare cases you will need to use \n"
|
592 |
+
" this type of compression. Some technical drawings or "
|
593 |
+
"images from vector graphics are possible situations."
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: class/view/shortpixel_view.php:638
|
597 |
+
msgid "Also include thumbnails:"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: class/view/shortpixel_view.php:640
|
601 |
+
msgid "Apply compression also to <strong>image thumbnails.</strong> "
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: class/view/shortpixel_view.php:641
|
605 |
+
msgid "thumbnails to optimize"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: class/view/shortpixel_view.php:643
|
609 |
+
msgid ""
|
610 |
+
"It is highly recommended that you optimize the thumbnails as they are "
|
611 |
+
"usually the images most viewed by end users and can generate most traffic."
|
612 |
+
"<br>Please note that thumbnails count up to your total quota."
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: class/view/shortpixel_view.php:648
|
616 |
+
msgid "Image backup"
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: class/view/shortpixel_view.php:650
|
620 |
+
msgid "Save and keep a backup of your original images in a separate folder."
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: class/view/shortpixel_view.php:651
|
624 |
+
msgid ""
|
625 |
+
"You <strong>need to have backup active</strong> in order to be able to "
|
626 |
+
"restore images to originals or to convert from Lossy to Lossless and back."
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: class/view/shortpixel_view.php:655
|
630 |
+
msgid "CMYK to RGB conversion"
|
631 |
+
msgstr ""
|
632 |
+
|
633 |
+
#: class/view/shortpixel_view.php:657
|
634 |
+
msgid "Adjust your images for computer and mobile screen display."
|
635 |
+
msgstr ""
|
636 |
+
|
637 |
+
#: class/view/shortpixel_view.php:658
|
638 |
+
msgid ""
|
639 |
+
"Images for the web only need RGB format and converting them from CMYK to RGB "
|
640 |
+
"makes them smaller."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: class/view/shortpixel_view.php:662
|
644 |
+
msgid "Remove EXIF"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: class/view/shortpixel_view.php:664
|
648 |
+
msgid "Remove the EXIF tag of the image (recommended)."
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: class/view/shortpixel_view.php:665
|
652 |
+
msgid ""
|
653 |
+
"EXIF is a set of various pieces of information that are automatically "
|
654 |
+
"embedded into the image upon creation. This can include GPS position, camera "
|
655 |
+
"manufacturer, date and time, etc. \n"
|
656 |
+
" Unless you really need that data to be "
|
657 |
+
"preserved, we recommend removing it as it can lead to <a href=\"http://blog."
|
658 |
+
"shortpixel.com/how-much-smaller-can-be-images-without-exif-icc\" target="
|
659 |
+
"\"_blank\">better compression rates</a>."
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: class/view/shortpixel_view.php:670
|
663 |
+
msgid "Resize large images"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: class/view/shortpixel_view.php:673
|
667 |
+
msgid "to maximum"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: class/view/shortpixel_view.php:675
|
671 |
+
msgid "pixels wide ×"
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: class/view/shortpixel_view.php:677
|
675 |
+
msgid ""
|
676 |
+
"pixels high (original aspect ratio is preserved and image is not cropped)"
|
677 |
+
msgstr ""
|
678 |
+
|
679 |
+
#: class/view/shortpixel_view.php:679
|
680 |
+
#, php-format
|
681 |
+
msgid ""
|
682 |
+
"Recommended for large photos, like the ones taken with your phone. Saved "
|
683 |
+
"space can go up to 80% or more after resizing."
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: class/view/shortpixel_view.php:683
|
687 |
+
msgid ""
|
688 |
+
"Sizes will be greater or equal to the corresponding value. For example, if "
|
689 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
690 |
+
"resized to 1000x1500px while an image of 3000x2000px will be resized to "
|
691 |
+
"1800x1200px"
|
692 |
+
msgstr ""
|
693 |
+
|
694 |
+
#: class/view/shortpixel_view.php:685
|
695 |
+
msgid ""
|
696 |
+
"Sizes will be smaller or equal to the corresponding value. For example, if "
|
697 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
698 |
+
"resized to 800x1200px while an image of 3000x2000px will be resized to "
|
699 |
+
"1000x667px"
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: class/view/shortpixel_view.php:692 class/view/shortpixel_view.php:847
|
703 |
+
msgid "Save Changes"
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
707 |
+
msgid "Save and go to the Bulk Processing page"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
711 |
+
#: wp-shortpixel.php:1517 wp-shortpixel.php:1518
|
712 |
+
msgid "Save and Go to Bulk Process"
|
713 |
+
msgstr ""
|
714 |
+
|
715 |
+
#: class/view/shortpixel_view.php:716
|
716 |
+
msgid "Please enter your API key in the General tab first."
|
717 |
+
msgstr ""
|
718 |
+
|
719 |
+
#. if valid key we display the rest of the options
|
720 |
+
#: class/view/shortpixel_view.php:721
|
721 |
+
msgid "Additional media folders"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: class/view/shortpixel_view.php:726
|
725 |
+
msgid "Folder name"
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: class/view/shortpixel_view.php:727
|
729 |
+
msgid "Type &<br>Status"
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: class/view/shortpixel_view.php:728
|
733 |
+
msgid "Files"
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: class/view/shortpixel_view.php:729
|
737 |
+
msgid "Last change"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: class/view/shortpixel_view.php:738 class/view/shortpixel_view.php:743
|
741 |
+
#: class/view/shortpixel_view.php:745 class/view/shortpixel_view.php:747
|
742 |
+
msgid "Empty"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: class/view/shortpixel_view.php:740 class/view/shortpixel_view.php:745
|
746 |
+
#: class/view/shortpixel_view.php:747
|
747 |
+
msgid "Optimized"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
751 |
+
#: class/view/shortpixel-list-table.php:97
|
752 |
+
msgid "Pending"
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
756 |
+
#: class/view/shortpixel-list-table.php:99
|
757 |
+
msgid "Waiting"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: class/view/shortpixel_view.php:745
|
761 |
+
msgid "Stop monitoring"
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: class/view/shortpixel_view.php:745
|
765 |
+
msgid "Stop optimizing"
|
766 |
+
msgstr ""
|
767 |
+
|
768 |
+
#: class/view/shortpixel_view.php:749
|
769 |
+
msgid "Failed"
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: class/view/shortpixel_view.php:771
|
773 |
+
msgid ""
|
774 |
+
"Full folder refresh, check each file of the folder if it changed since it "
|
775 |
+
"was optimized. Might take up to 1 min. for big folders."
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: class/view/shortpixel_view.php:772
|
779 |
+
msgid "Refresh"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: class/view/shortpixel_view.php:783
|
783 |
+
msgid "Select the images folder on your server."
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: class/view/shortpixel_view.php:784
|
787 |
+
msgid "Select ..."
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: class/view/shortpixel_view.php:786
|
791 |
+
msgid "Add Folder"
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: class/view/shortpixel_view.php:788
|
795 |
+
msgid ""
|
796 |
+
"Use the Select... button to select site folders. ShortPixel will optimize "
|
797 |
+
"images and PDFs from the specified folders and their subfolders. The "
|
798 |
+
"optimization status for each image or PDF in these folders can be seen in "
|
799 |
+
"the <a href=\"upload.php?page=wp-short-pixel-custom\">Other Media list</a>, "
|
800 |
+
"under the Media menu."
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: class/view/shortpixel_view.php:792
|
804 |
+
msgid "Select the images folder"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: class/view/shortpixel_view.php:794
|
808 |
+
msgid "Cancel"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: class/view/shortpixel_view.php:795
|
812 |
+
msgid "Select"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: class/view/shortpixel_view.php:807
|
816 |
+
msgid "Optimize NextGen galleries"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: class/view/shortpixel_view.php:809
|
820 |
+
msgid "Optimize NextGen galleries."
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: class/view/shortpixel_view.php:811
|
824 |
+
msgid ""
|
825 |
+
"Check this to add all your current NextGen galleries to the custom folders "
|
826 |
+
"list and to also have all the future NextGen galleries and images optimized "
|
827 |
+
"automatically by ShortPixel."
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: class/view/shortpixel_view.php:817
|
831 |
+
msgid "WebP versions"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: class/view/shortpixel_view.php:819
|
835 |
+
msgid ""
|
836 |
+
"Create also <a href=\"http://blog.shortpixel.com/how-webp-images-can-speed-"
|
837 |
+
"up-your-site/\" target=\"_blank\">WebP versions</a> of the images "
|
838 |
+
"<strong>for free</strong>."
|
839 |
+
msgstr ""
|
840 |
+
|
841 |
+
#: class/view/shortpixel_view.php:821
|
842 |
+
#, php-format
|
843 |
+
msgid ""
|
844 |
+
"WebP images can be up to three times smaller than PNGs and 25% smaller than "
|
845 |
+
"JPGs. Choosing this option <strong>does not use up additional credits</"
|
846 |
+
"strong>."
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: class/view/shortpixel_view.php:826
|
850 |
+
msgid "HTTP AUTH credentials"
|
851 |
+
msgstr ""
|
852 |
+
|
853 |
+
#: class/view/shortpixel_view.php:828
|
854 |
+
msgid "User"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: class/view/shortpixel_view.php:829
|
858 |
+
msgid "Password"
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: class/view/shortpixel_view.php:831
|
862 |
+
msgid ""
|
863 |
+
"Only fill in these fields if your site (front-end) is not publicly "
|
864 |
+
"accessible and visitors need a user/pass to connect to it. If you don't know "
|
865 |
+
"what is this then just <strong>leave the fields empty</strong>."
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: class/view/shortpixel_view.php:836
|
869 |
+
msgid "Process in front-end"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: class/view/shortpixel_view.php:838
|
873 |
+
msgid "Automatically optimize images added by users in front end."
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: class/view/shortpixel_view.php:840
|
877 |
+
msgid ""
|
878 |
+
"Check this if you have users that add images or PDF documents from custom "
|
879 |
+
"forms in the front-end. This could increase the load on your server if you "
|
880 |
+
"have a lot of users simultaneously connected."
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: class/view/shortpixel_view.php:860
|
884 |
+
msgid "Your ShortPixel Stats"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: class/view/shortpixel_view.php:864
|
888 |
+
msgid "Average compression of your files:"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: class/view/shortpixel_view.php:868
|
892 |
+
msgid "Saved disk space by ShortPixel"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: class/view/shortpixel_view.php:872
|
896 |
+
msgid "Bandwith* saved with ShortPixel:"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: class/view/shortpixel_view.php:878
|
900 |
+
msgid "* Saved bandwidth is calculated at 10,000 impressions/image"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: class/view/shortpixel_view.php:880
|
904 |
+
msgid "Your ShortPixel Plan"
|
905 |
+
msgstr ""
|
906 |
+
|
907 |
+
#: class/view/shortpixel_view.php:884
|
908 |
+
msgid "Your ShortPixel plan"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: class/view/shortpixel_view.php:886
|
912 |
+
#, php-format
|
913 |
+
msgid ""
|
914 |
+
"%s/month, renews in %s days, on %s ( <a href=\"https://shortpixel.com/login/"
|
915 |
+
"%s\" target=\"_blank\">Need More? See the options available</a> )"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: class/view/shortpixel_view.php:889
|
919 |
+
#, php-format
|
920 |
+
msgid ""
|
921 |
+
"<a href=\"https://shortpixel.com/login/%s/tell-a-friend\" target=\"_blank"
|
922 |
+
"\">Join our friend referral system</a> to win more credits. For each user "
|
923 |
+
"that joins, you receive +100 images credits/month."
|
924 |
+
msgstr ""
|
925 |
+
|
926 |
+
#: class/view/shortpixel_view.php:894
|
927 |
+
msgid "One time credits:"
|
928 |
+
msgstr ""
|
929 |
+
|
930 |
+
#: class/view/shortpixel_view.php:898
|
931 |
+
msgid "Number of images processed this month:"
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: class/view/shortpixel_view.php:900
|
935 |
+
msgid "see report"
|
936 |
+
msgstr ""
|
937 |
+
|
938 |
+
#: class/view/shortpixel_view.php:905
|
939 |
+
msgid "Remaining** images in your plan:"
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: class/view/shortpixel_view.php:906
|
943 |
+
msgid "images"
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: class/view/shortpixel_view.php:912
|
947 |
+
#, php-format
|
948 |
+
msgid ""
|
949 |
+
"** Increase your image quota by <a href=\"https://shortpixel.com/login/%s\" "
|
950 |
+
"target=\"_blank\">upgrading your ShortPixel plan.</a>"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: class/view/shortpixel_view.php:919
|
954 |
+
msgid "Total number of processed files:"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: class/view/shortpixel_view.php:924
|
958 |
+
msgid ""
|
959 |
+
"Original images are stored in a backup folder. Your backup folder size is "
|
960 |
+
"now:"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: class/view/shortpixel_view.php:928
|
964 |
+
msgid "Empty backups"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#. not a file that we can process
|
968 |
+
#: class/view/shortpixel_view.php:945 wp-shortpixel.php:348
|
969 |
+
#: wp-shortpixel.php:374 wp-shortpixel.php:1813
|
970 |
+
msgid "Optimization N/A"
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: class/view/shortpixel_view.php:948
|
974 |
+
msgid "Image does not exist."
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#. multisite key - need to be validated on each site but it's not invalid
|
978 |
+
#: class/view/shortpixel_view.php:952
|
979 |
+
msgid ""
|
980 |
+
"Please <a href=\"options-general.php?page=wp-shortpixel\">go to Settings</a> "
|
981 |
+
"to validate the API Key."
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: class/view/shortpixel_view.php:954
|
985 |
+
msgid ""
|
986 |
+
"Invalid API Key. <a href=\"options-general.php?page=wp-shortpixel\">Check "
|
987 |
+
"your Settings</a>"
|
988 |
+
msgstr ""
|
989 |
+
|
990 |
+
#: class/view/shortpixel_view.php:963
|
991 |
+
msgid "Optimize now"
|
992 |
+
msgstr ""
|
993 |
+
|
994 |
+
#: class/view/shortpixel_view.php:973 class/view/shortpixel-list-table.php:55
|
995 |
+
#: wp-shortpixel.php:282
|
996 |
+
msgid "Retry"
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: class/view/shortpixel_view.php:990 class/view/shortpixel-list-table.php:93
|
1000 |
+
#: wp-shortpixel.php:273
|
1001 |
+
msgid "Reduced by"
|
1002 |
+
msgstr ""
|
1003 |
+
|
1004 |
+
#: class/view/shortpixel_view.php:993 class/view/shortpixel-list-table.php:92
|
1005 |
+
#: class/view/shortpixel-list-table.php:94 wp-shortpixel.php:274
|
1006 |
+
msgid "Bonus processing"
|
1007 |
+
msgstr ""
|
1008 |
+
|
1009 |
+
#: class/view/shortpixel_view.php:996
|
1010 |
+
#, php-format
|
1011 |
+
msgid "+%s of %s thumbnails optimized"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: class/view/shortpixel_view.php:997
|
1015 |
+
#, php-format
|
1016 |
+
msgid "+%s thumbnails optimized"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: class/view/shortpixel_view.php:1005
|
1020 |
+
#, php-format
|
1021 |
+
msgid "Optimize %s thumbnails"
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: class/view/shortpixel_view.php:1012
|
1025 |
+
msgid "Reoptimize from the backed-up image"
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: class/view/shortpixel_view.php:1013
|
1029 |
+
msgid "Re-optimize"
|
1030 |
+
msgstr ""
|
1031 |
+
|
1032 |
+
#: class/view/shortpixel_view.php:1017 wp-shortpixel.php:278
|
1033 |
+
msgid "Restore backup"
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: class/view/shortpixel_view.php:1030 wp-shortpixel.php:280
|
1037 |
+
msgid "Extend Quota"
|
1038 |
+
msgstr ""
|
1039 |
+
|
1040 |
+
#: class/view/shortpixel_view.php:1033 wp-shortpixel.php:281
|
1041 |
+
msgid "Check Quota"
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: class/view/shortpixel-list-table.php:15
|
1045 |
+
msgid "Image"
|
1046 |
+
msgstr ""
|
1047 |
+
|
1048 |
+
#. singular name of the listed records
|
1049 |
+
#: class/view/shortpixel-list-table.php:16
|
1050 |
+
msgid "Images"
|
1051 |
+
msgstr ""
|
1052 |
+
|
1053 |
+
#. pe viitor. $columns['cb'] = '<input type="checkbox" />';
|
1054 |
+
#: class/view/shortpixel-list-table.php:29
|
1055 |
+
msgid "Filename"
|
1056 |
+
msgstr ""
|
1057 |
+
|
1058 |
+
#: class/view/shortpixel-list-table.php:30
|
1059 |
+
msgid "Folder"
|
1060 |
+
msgstr ""
|
1061 |
+
|
1062 |
+
#: class/view/shortpixel-list-table.php:31
|
1063 |
+
msgid "Type"
|
1064 |
+
msgstr ""
|
1065 |
+
|
1066 |
+
#: class/view/shortpixel-list-table.php:32
|
1067 |
+
msgid "Status"
|
1068 |
+
msgstr ""
|
1069 |
+
|
1070 |
+
#: class/view/shortpixel-list-table.php:33
|
1071 |
+
msgid "Options"
|
1072 |
+
msgstr ""
|
1073 |
+
|
1074 |
+
#: class/view/shortpixel-list-table.php:52
|
1075 |
+
msgid "Optimize"
|
1076 |
+
msgstr ""
|
1077 |
+
|
1078 |
+
#: class/view/shortpixel-list-table.php:58
|
1079 |
+
msgid "Restore"
|
1080 |
+
msgstr ""
|
1081 |
+
|
1082 |
+
#: class/view/shortpixel-list-table.php:61
|
1083 |
+
msgid "Re-optimize lossless"
|
1084 |
+
msgstr ""
|
1085 |
+
|
1086 |
+
#: class/view/shortpixel-list-table.php:64
|
1087 |
+
msgid "Re-optimize lossy"
|
1088 |
+
msgstr ""
|
1089 |
+
|
1090 |
+
#: class/view/shortpixel-list-table.php:67
|
1091 |
+
msgid "Check quota"
|
1092 |
+
msgstr ""
|
1093 |
+
|
1094 |
+
#: class/view/shortpixel-list-table.php:68
|
1095 |
+
msgid "View"
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: class/view/shortpixel-list-table.php:89
|
1099 |
+
msgid "Restored"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: class/view/shortpixel-list-table.php:103
|
1103 |
+
msgid "code"
|
1104 |
+
msgstr ""
|
1105 |
+
|
1106 |
+
#: class/view/shortpixel-list-table.php:111
|
1107 |
+
msgid "Lossy"
|
1108 |
+
msgstr ""
|
1109 |
+
|
1110 |
+
#: class/view/shortpixel-list-table.php:112
|
1111 |
+
msgid "Keep EXIF"
|
1112 |
+
msgstr ""
|
1113 |
+
|
1114 |
+
#: class/view/shortpixel-list-table.php:113
|
1115 |
+
msgid "Preserve CMYK"
|
1116 |
+
msgstr ""
|
1117 |
+
|
1118 |
+
#: class/view/shortpixel-list-table.php:122
|
1119 |
+
msgid ""
|
1120 |
+
"No images avaliable. Go to <a href=\"options-general.php?page=wp-"
|
1121 |
+
"shortpixel#adv-settings\">Advanced Settings</a> to configure additional "
|
1122 |
+
"folders to be optimized."
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: class/view/shortpixel-list-table.php:255
|
1126 |
+
msgid "Show more details"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: class/db/shortpixel-meta-facade.php:165
|
1130 |
+
msgid "Error"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: class/db/shortpixel-custom-meta-dao.php:187
|
1134 |
+
msgid "Folder already added."
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: class/db/shortpixel-custom-meta-dao.php:191
|
1138 |
+
#, php-format
|
1139 |
+
msgid ""
|
1140 |
+
"The %s folder cannot be processed as it's not inside the root path of your "
|
1141 |
+
"website."
|
1142 |
+
msgstr ""
|
1143 |
+
|
1144 |
+
#: class/db/shortpixel-custom-meta-dao.php:200
|
1145 |
+
msgid ""
|
1146 |
+
"This folder contains Media Library images. To optimize Media Library images "
|
1147 |
+
"please go to <a href=\"upload.php?mode=list\">Media Library list view</a> or "
|
1148 |
+
"to <a href=\"upload.php?page=wp-short-pixel-bulk\">SortPixel Bulk page</a>."
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: class/db/shortpixel-custom-meta-dao.php:204
|
1152 |
+
msgid "Inserted folder doesn't have an ID!"
|
1153 |
+
msgstr ""
|
1154 |
+
|
1155 |
+
#: class/db/shortpixel-custom-meta-dao.php:224
|
1156 |
+
msgid ""
|
1157 |
+
"This folder contains the ShortPixel Backups. Please select a different "
|
1158 |
+
"folder."
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#. var_dump($allFolders);
|
1162 |
+
#: class/db/shortpixel-custom-meta-dao.php:247
|
1163 |
+
#, php-format
|
1164 |
+
msgid "Folder already included in %s."
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: class/db/shortpixel-custom-meta-dao.php:250
|
1168 |
+
msgid "Folder does not exist."
|
1169 |
+
msgstr ""
|
1170 |
+
|
1171 |
+
#: class/model/shortpixel-folder.php:76 class/model/shortpixel-folder.php:149
|
1172 |
+
#, php-format
|
1173 |
+
msgid "Folder %s is not writeable. Please check permissions and try again."
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: wp-shortpixel.php:160
|
1177 |
+
msgid "ShortPixel Settings"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#. translators: title and menu name for the Other media page
|
1181 |
+
#: wp-shortpixel.php:166
|
1182 |
+
msgid "Other Media Optimized by ShortPixel"
|
1183 |
+
msgstr ""
|
1184 |
+
|
1185 |
+
#: wp-shortpixel.php:166
|
1186 |
+
msgid "Other Media"
|
1187 |
+
msgstr ""
|
1188 |
+
|
1189 |
+
#. translators: title and menu name for the Bulk Processing page
|
1190 |
+
#: wp-shortpixel.php:169
|
1191 |
+
msgid "ShortPixel Bulk Process"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: wp-shortpixel.php:169
|
1195 |
+
msgid "Bulk ShortPixel"
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: wp-shortpixel.php:216
|
1199 |
+
msgid "Media alert dismissed"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: wp-shortpixel.php:269
|
1203 |
+
msgid "Optimize with ShortPixel"
|
1204 |
+
msgstr ""
|
1205 |
+
|
1206 |
+
#: wp-shortpixel.php:270
|
1207 |
+
msgid ""
|
1208 |
+
"In order to access the ShortPixel Optimization actions and info, please "
|
1209 |
+
"change to {0}List View{1}List View{2}Dismiss{3}"
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: wp-shortpixel.php:271
|
1213 |
+
msgid ""
|
1214 |
+
"This type of optimization will apply to new uploaded images.\\nImages that "
|
1215 |
+
"were already processed will not be re-optimized unless you restart the bulk "
|
1216 |
+
"process."
|
1217 |
+
msgstr ""
|
1218 |
+
|
1219 |
+
#: wp-shortpixel.php:272
|
1220 |
+
msgid "Are you sure you want to stop optimizing the folder {0}?"
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: wp-shortpixel.php:275
|
1224 |
+
msgid "+{0} thumbnails optimized"
|
1225 |
+
msgstr ""
|
1226 |
+
|
1227 |
+
#: wp-shortpixel.php:276
|
1228 |
+
msgid "Optimize {0} thumbnails"
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: wp-shortpixel.php:277
|
1232 |
+
msgid "Reoptimize {0}"
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: wp-shortpixel.php:279
|
1236 |
+
msgid "Get API Key"
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#: wp-shortpixel.php:283
|
1240 |
+
msgid "This content is not processable."
|
1241 |
+
msgstr ""
|
1242 |
+
|
1243 |
+
#: wp-shortpixel.php:284
|
1244 |
+
msgid "Image waiting to optimize thumbnails"
|
1245 |
+
msgstr ""
|
1246 |
+
|
1247 |
+
#. translators: toolbar icon tooltip
|
1248 |
+
#: wp-shortpixel.php:297
|
1249 |
+
msgid "ShortPixel optimizing..."
|
1250 |
+
msgstr ""
|
1251 |
+
|
1252 |
+
#. translators: toolbar icon tooltip
|
1253 |
+
#: wp-shortpixel.php:308
|
1254 |
+
msgid "ShortPixel quota exceeded. Click for details."
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: wp-shortpixel.php:564
|
1258 |
+
msgid "Missing API Key"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#. translators: console message Empty queue 1234 -> 1234
|
1262 |
+
#: wp-shortpixel.php:614
|
1263 |
+
msgid "Empty queue "
|
1264 |
+
msgstr ""
|
1265 |
+
|
1266 |
+
#: wp-shortpixel.php:740
|
1267 |
+
msgid " Retry limit reached. Skipping file ID "
|
1268 |
+
msgstr ""
|
1269 |
+
|
1270 |
+
#: wp-shortpixel.php:835
|
1271 |
+
msgid "NextGen image not found"
|
1272 |
+
msgstr ""
|
1273 |
+
|
1274 |
+
#: wp-shortpixel.php:1004 wp-shortpixel.php:1018
|
1275 |
+
msgid "Could not restore from backup: "
|
1276 |
+
msgstr ""
|
1277 |
+
|
1278 |
+
#: wp-shortpixel.php:1037
|
1279 |
+
msgid "No thumbnails to optimize for ID: "
|
1280 |
+
msgstr ""
|
1281 |
+
|
1282 |
+
#: wp-shortpixel.php:1037
|
1283 |
+
msgid "Please optimize image for ID: "
|
1284 |
+
msgstr ""
|
1285 |
+
|
1286 |
+
#: wp-shortpixel.php:1142
|
1287 |
+
msgid "Refresh custom folders content"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: wp-shortpixel.php:1143
|
1291 |
+
msgid "Refresh folders"
|
1292 |
+
msgstr ""
|
1293 |
+
|
1294 |
+
#: wp-shortpixel.php:1146
|
1295 |
+
msgid "Other Media optimized by ShortPixel"
|
1296 |
+
msgstr ""
|
1297 |
+
|
1298 |
+
#: wp-shortpixel.php:1322 wp-shortpixel.php:1413
|
1299 |
+
msgid "You do not have sufficient permissions to access this page."
|
1300 |
+
msgstr ""
|
1301 |
+
|
1302 |
+
#: wp-shortpixel.php:1451
|
1303 |
+
#, php-format
|
1304 |
+
msgid ""
|
1305 |
+
"The key you provided has %s characters. The API key should have 20 "
|
1306 |
+
"characters, letters and numbers only."
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: wp-shortpixel.php:1453
|
1310 |
+
msgid ""
|
1311 |
+
"Please check that the API key is the same as the one you received in your "
|
1312 |
+
"confirmation email."
|
1313 |
+
msgstr ""
|
1314 |
+
|
1315 |
+
#: wp-shortpixel.php:1455
|
1316 |
+
msgid "If this problem persists, please contact us at "
|
1317 |
+
msgstr ""
|
1318 |
+
|
1319 |
+
#: wp-shortpixel.php:1457
|
1320 |
+
msgid " or "
|
1321 |
+
msgstr ""
|
1322 |
+
|
1323 |
+
#: wp-shortpixel.php:1475
|
1324 |
+
msgid ""
|
1325 |
+
"API Key is valid but your site is not accessible from our servers. Please "
|
1326 |
+
"make sure that your server is accessible from the Internet before using the "
|
1327 |
+
"API or otherwise we won't be able to optimize them."
|
1328 |
+
msgstr ""
|
1329 |
+
|
1330 |
+
#: wp-shortpixel.php:1478
|
1331 |
+
msgid ""
|
1332 |
+
"API Key valid! <br>You seem to be running a multisite, please note that API "
|
1333 |
+
"Key can also be configured in wp-config.php like this:"
|
1334 |
+
msgstr ""
|
1335 |
+
|
1336 |
+
#: wp-shortpixel.php:1481
|
1337 |
+
msgid "API Key valid!"
|
1338 |
+
msgstr ""
|
1339 |
+
|
1340 |
+
#: wp-shortpixel.php:1488
|
1341 |
+
#, php-format
|
1342 |
+
msgid ""
|
1343 |
+
"There is something preventing us to create a new folder for backing up your "
|
1344 |
+
"original files.<BR>Please make sure that folder <b>%s</b> has the necessary "
|
1345 |
+
"write and read rights."
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: wp-shortpixel.php:1536
|
1349 |
+
msgid "Folder added successfully."
|
1350 |
+
msgstr ""
|
1351 |
+
|
1352 |
+
#: wp-shortpixel.php:1712
|
1353 |
+
msgid ""
|
1354 |
+
"API Key could not be validated due to a connectivity error.<BR>Your firewall "
|
1355 |
+
"may be blocking us. Please contact your hosting provider and ask them to "
|
1356 |
+
"allow connections from your site to IP 176.9.106.46.<BR> If you still cannot "
|
1357 |
+
"validate your API Key after this, please <a href=\"https://shortpixel.com/"
|
1358 |
+
"contact\" target=\"_blank\">contact us</a> and we will try to help. "
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: wp-shortpixel.php:1713 wp-shortpixel.php:1714
|
1362 |
+
msgid "Information unavailable. Please check your API key."
|
1363 |
+
msgstr ""
|
1364 |
+
|
1365 |
+
#: wp-shortpixel.php:1789
|
1366 |
+
msgid "PDF not processed."
|
1367 |
+
msgstr ""
|
1368 |
+
|
1369 |
+
#: wp-shortpixel.php:1820 wp-shortpixel.php:1822
|
1370 |
+
msgid "Cannot write optimized file"
|
1371 |
+
msgstr ""
|
1372 |
+
|
1373 |
+
#: wp-shortpixel.php:1823
|
1374 |
+
msgid "Why?"
|
1375 |
+
msgstr ""
|
1376 |
+
|
1377 |
+
#: wp-shortpixel.php:1831
|
1378 |
+
msgid "Image does not exist"
|
1379 |
+
msgstr ""
|
1380 |
+
|
1381 |
+
#: wp-shortpixel.php:1835
|
1382 |
+
msgid "Image waiting to be processed."
|
1383 |
+
msgstr ""
|
1384 |
+
|
1385 |
+
#: wp-shortpixel.php:1853
|
1386 |
+
msgid "ShortPixel Statistics"
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: wp-shortpixel.php:1871
|
1390 |
+
msgid "ShortPixel Compression"
|
1391 |
+
msgstr ""
|
1392 |
+
|
1393 |
+
#: shortpixel_api.php:142
|
1394 |
+
msgid "The file(s) do not exist on disk."
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: shortpixel_api.php:157 shortpixel_api.php:168
|
1398 |
+
msgid "Timed out while processing."
|
1399 |
+
msgstr ""
|
1400 |
+
|
1401 |
+
#: shortpixel_api.php:161
|
1402 |
+
msgid "Image ID"
|
1403 |
+
msgstr ""
|
1404 |
+
|
1405 |
+
#: shortpixel_api.php:161
|
1406 |
+
msgid "Media ID"
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: shortpixel_api.php:162
|
1410 |
+
msgid "Skip this image, try the next one."
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#. send requests to API
|
1414 |
+
#. response <> 200 -> there was an error apparently?
|
1415 |
+
#: shortpixel_api.php:179 shortpixel_api.php:212 shortpixel_api.php:215
|
1416 |
+
msgid "There was an error and your request was not processed."
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: shortpixel_api.php:231
|
1420 |
+
msgid "Unecognized API response. Please contact support."
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: shortpixel_api.php:238
|
1424 |
+
msgid "Quota exceeded."
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: shortpixel_api.php:326
|
1428 |
+
msgid "Error downloading file"
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: shortpixel_api.php:334
|
1432 |
+
#, php-format
|
1433 |
+
msgid ""
|
1434 |
+
"Error downloading file - incorrect file size (downloaded: %s, correct: %s )"
|
1435 |
+
msgstr ""
|
1436 |
+
|
1437 |
+
#: shortpixel_api.php:337
|
1438 |
+
msgid "Unable to locate downloaded file"
|
1439 |
+
msgstr ""
|
1440 |
+
|
1441 |
+
#. array with final paths for these files
|
1442 |
+
#. creates backup folder if it doesn't exist
|
1443 |
+
#: shortpixel_api.php:399
|
1444 |
+
msgid "Backup folder does not exist and it cannot be created"
|
1445 |
+
msgstr ""
|
1446 |
+
|
1447 |
+
#. file couldn't be saved in backup folder
|
1448 |
+
#: shortpixel_api.php:419
|
1449 |
+
#, php-format
|
1450 |
+
msgid "Cannot save file <i>%s</i> in backup directory"
|
1451 |
+
msgstr ""
|
1452 |
+
|
1453 |
+
#. cannot write to the backup dir, return with an error
|
1454 |
+
#: shortpixel_api.php:428
|
1455 |
+
msgid "Cannot save file in backup directory"
|
1456 |
+
msgstr ""
|
1457 |
+
|
1458 |
+
#: shortpixel_api.php:491
|
1459 |
+
#, php-format
|
1460 |
+
msgid "Optimized version of %s file(s) couldn't be updated."
|
1461 |
+
msgstr ""
|
lang/shortpixel-en_US.mo
ADDED
Binary file
|
lang/shortpixel-en_US.po
ADDED
@@ -0,0 +1,1461 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
+
#, fuzzy
|
7 |
+
msgid ""
|
8 |
+
msgstr ""
|
9 |
+
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
+
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2016-11-30 16:23+0100\n"
|
12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
+
"Language: \n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
19 |
+
|
20 |
+
#: class/view/shortpixel_view.php:23 class/view/shortpixel_view.php:417
|
21 |
+
msgid "Average reduction"
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#. translators: header of the alert box
|
25 |
+
#: class/view/shortpixel_view.php:33
|
26 |
+
msgid "Quota Exceeded"
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#. translators: body of the alert box
|
30 |
+
#: class/view/shortpixel_view.php:35
|
31 |
+
#, php-format
|
32 |
+
msgid ""
|
33 |
+
"The plugin has optimized <strong>%s images</strong> and stopped because it "
|
34 |
+
"reached the available quota limit."
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: class/view/shortpixel_view.php:39
|
38 |
+
#, php-format
|
39 |
+
msgid ""
|
40 |
+
"<strong>%s images and %s thumbnails</strong> are not yet optimized by "
|
41 |
+
"ShortPixel."
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: class/view/shortpixel_view.php:44
|
45 |
+
msgid "Upgrade"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: class/view/shortpixel_view.php:45
|
49 |
+
msgid "Confirm New Quota"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: class/view/shortpixel_view.php:47
|
53 |
+
msgid "Get more image credits by referring ShortPixel to your friends!"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: class/view/shortpixel_view.php:49
|
57 |
+
msgid "Check your account"
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: class/view/shortpixel_view.php:50
|
61 |
+
msgid ""
|
62 |
+
"for your unique referral link. For each user that joins, you will receive "
|
63 |
+
"+100 additional image credits/month."
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: class/view/shortpixel_view.php:58
|
67 |
+
msgid ""
|
68 |
+
"In order to start the optimization process, you need to validate your API "
|
69 |
+
"Key in the <a href=\"options-general.php?page=wp-shortpixel\">ShortPixel "
|
70 |
+
"Settings</a> page in your WordPress Admin."
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: class/view/shortpixel_view.php:61
|
74 |
+
msgid ""
|
75 |
+
"If you don’t have an API Key, you can get one delivered to your inbox, for "
|
76 |
+
"free."
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: class/view/shortpixel_view.php:62
|
80 |
+
msgid ""
|
81 |
+
"Please <a href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">sign "
|
82 |
+
"up to get your API key.</a>"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: class/view/shortpixel_view.php:70
|
86 |
+
msgid "Dismiss"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: class/view/shortpixel_view.php:72
|
90 |
+
msgid "ShortPixel Optimization"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: class/view/shortpixel_view.php:75
|
94 |
+
msgid ""
|
95 |
+
"Action needed. Please <a href='https://shortpixel.com/wp-apikey' "
|
96 |
+
"target='_blank'>get your API key</a> to activate your ShortPixel plugin."
|
97 |
+
msgstr ""
|
98 |
+
|
99 |
+
#: class/view/shortpixel_view.php:78
|
100 |
+
msgid ""
|
101 |
+
"Your image gallery is not optimized. It takes 2 minutes to <a href='https://"
|
102 |
+
"shortpixel.com/wp-apikey' target='_blank'>get your API key</a> and activate "
|
103 |
+
"your ShortPixel plugin."
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: class/view/shortpixel_view.php:102
|
107 |
+
msgid "Your media library"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: class/view/shortpixel_view.php:103
|
111 |
+
msgid "Original images"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: class/view/shortpixel_view.php:105
|
115 |
+
msgid "Smaller thumbnails"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: class/view/shortpixel_view.php:109 class/view/shortpixel_view.php:343
|
119 |
+
msgid "Include thumbnails"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: class/view/shortpixel_view.php:112
|
123 |
+
msgid "Total images"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: class/view/shortpixel_view.php:114
|
127 |
+
msgid "Already optimized originals"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: class/view/shortpixel_view.php:116
|
131 |
+
msgid "Already optimized thumbnails"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: class/view/shortpixel_view.php:119 class/view/shortpixel_view.php:124
|
135 |
+
msgid "Total to be optimized"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: class/view/shortpixel_view.php:123
|
139 |
+
msgid "Your custom folders"
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
#: class/view/shortpixel_view.php:137
|
143 |
+
#, php-format
|
144 |
+
msgid ""
|
145 |
+
"<span class=\"label\">Start Optimizing</span><br> <span class=\"total\">%s</"
|
146 |
+
"span> images"
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: class/view/shortpixel_view.php:148
|
150 |
+
msgid ""
|
151 |
+
"Nothing to optimize! The images that you add to Media Gallery will be "
|
152 |
+
"automatically optimized after upload."
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: class/view/shortpixel_view.php:157
|
156 |
+
msgid ""
|
157 |
+
"After you start the bulk process, in order for the optimization to run, you "
|
158 |
+
"must keep this page open and your computer running. If you close the page "
|
159 |
+
"for whatever reason, just turn back to it and the bulk process will resume."
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: class/view/shortpixel_view.php:163
|
163 |
+
msgid "What are Thumbnails?"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: class/view/shortpixel_view.php:164
|
167 |
+
msgid ""
|
168 |
+
"Thumbnails are smaller images usually generated by your WP theme. Most "
|
169 |
+
"themes generate between 3 and 6 thumbnails for each Media Library image."
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: class/view/shortpixel_view.php:165
|
173 |
+
msgid ""
|
174 |
+
"The thumbnails also generate traffic on your website pages and they "
|
175 |
+
"influence your website's speed."
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: class/view/shortpixel_view.php:166
|
179 |
+
msgid ""
|
180 |
+
"It's highly recommended that you include thumbnails in the optimization as "
|
181 |
+
"well."
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
#: class/view/shortpixel_view.php:169
|
185 |
+
msgid "How does it work?"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: class/view/shortpixel_view.php:170
|
189 |
+
msgid ""
|
190 |
+
"The plugin processes images starting with the newest ones you uploaded in "
|
191 |
+
"your Media Library."
|
192 |
+
msgstr ""
|
193 |
+
|
194 |
+
#: class/view/shortpixel_view.php:171
|
195 |
+
msgid "You will be able to pause the process anytime."
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#: class/view/shortpixel_view.php:172
|
199 |
+
msgid ""
|
200 |
+
"<p>Your original images will be stored in a separate back-up folder.</p>"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: class/view/shortpixel_view.php:173
|
204 |
+
msgid ""
|
205 |
+
"You can watch the images being processed live, right here, after you start "
|
206 |
+
"optimizing."
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#. bulk is paused
|
210 |
+
#: class/view/shortpixel_view.php:179
|
211 |
+
msgid "Please see below the optimization status so far:"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: class/view/shortpixel_view.php:182
|
215 |
+
#, php-format
|
216 |
+
msgid "%d images and %d thumbnails are not yet optimized by ShortPixel."
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: class/view/shortpixel_view.php:187
|
220 |
+
msgid ""
|
221 |
+
"You can continue optimizing your Media Gallery from where you left, by "
|
222 |
+
"clicking the Resume processing button. Already optimized images will not be "
|
223 |
+
"reprocessed."
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: class/view/shortpixel_view.php:197
|
227 |
+
msgid "Congratulations!"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: class/view/shortpixel_view.php:198
|
231 |
+
msgid "Your media library has been successfully optimized!"
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: class/view/shortpixel_view.php:199
|
235 |
+
msgid "Summary"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: class/view/shortpixel_view.php:205
|
239 |
+
msgid "Share your optimization results:"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: class/view/shortpixel_view.php:225
|
243 |
+
msgid "I just optimized my images by "
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: class/view/shortpixel_view.php:227
|
247 |
+
msgid "I just optimized my images "
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: class/view/shortpixel_view.php:230
|
251 |
+
msgid "with @ShortPixel, a great plugin for increasing #WordPress page speed:"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: class/view/shortpixel_view.php:231
|
255 |
+
msgid "Tweet"
|
256 |
+
msgstr ""
|
257 |
+
|
258 |
+
#: class/view/shortpixel_view.php:257
|
259 |
+
msgid "Please rate us!"
|
260 |
+
msgstr ""
|
261 |
+
|
262 |
+
#: class/view/shortpixel_view.php:267
|
263 |
+
#, php-format
|
264 |
+
msgid ""
|
265 |
+
"Go to the ShortPixel <a href=\"%soptions-general.php?page=wp-shortpixel#stats"
|
266 |
+
"\">Stats</a> and see all your websites' optimized stats. Download your "
|
267 |
+
"detailed <a href=\"https://api.shortpixel.com/v2/report.php?key=%s"
|
268 |
+
"\">Optimization Report</a> to check your image optimization statistics for "
|
269 |
+
"the last 40 days."
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: class/view/shortpixel_view.php:275
|
273 |
+
msgid ""
|
274 |
+
"The following images could not be processed because of their limited write "
|
275 |
+
"rights. This usually happens if you have changed your hosting provider. "
|
276 |
+
"Please restart the optimization process after you granted write rights to "
|
277 |
+
"all the files below."
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: class/view/shortpixel_view.php:290 wp-shortpixel.php:1755
|
281 |
+
#: wp-shortpixel.php:1756 wp-shortpixel.php:1757 wp-shortpixel.php:1758
|
282 |
+
msgid " images"
|
283 |
+
msgstr ""
|
284 |
+
|
285 |
+
#: class/view/shortpixel_view.php:291
|
286 |
+
msgid " and"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: class/view/shortpixel_view.php:292
|
290 |
+
msgid " thumbnails"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
+
#: class/view/shortpixel_view.php:293
|
294 |
+
msgid " are not yet optimized by ShortPixel."
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: class/view/shortpixel_view.php:295
|
298 |
+
msgid "Some have errors:"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: class/view/shortpixel_view.php:318
|
302 |
+
#, php-format
|
303 |
+
msgid ""
|
304 |
+
"%s images and %s thumbnails were optimized <strong>%s</strong>. You can re-"
|
305 |
+
"optimize <strong>%s</strong> the ones that have backup."
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: class/view/shortpixel_view.php:323
|
309 |
+
#, php-format
|
310 |
+
msgid ""
|
311 |
+
"%s images were optimized <strong>%s</strong>. You can re-optimize <strong>"
|
312 |
+
"%s</strong> the ones that have backup. "
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: class/view/shortpixel_view.php:326
|
316 |
+
msgid " thumbnails will be restored to originals."
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: class/view/shortpixel_view.php:331
|
320 |
+
msgid ""
|
321 |
+
"Restart the optimization process for these images by clicking the button "
|
322 |
+
"below."
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: class/view/shortpixel_view.php:333
|
326 |
+
msgid ""
|
327 |
+
"Restart the optimization process for new images added to your library by "
|
328 |
+
"clicking the button below."
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: class/view/shortpixel_view.php:335
|
332 |
+
#, php-format
|
333 |
+
msgid "Already <strong>%s</strong> optimized images will not be reprocessed."
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: class/view/shortpixel_view.php:337
|
337 |
+
msgid ""
|
338 |
+
"Please note that reoptimizing images as <strong>lossy/lossless</strong> may "
|
339 |
+
"use additional credits."
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: class/view/shortpixel_view.php:338
|
343 |
+
msgid "More info"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: class/view/shortpixel_view.php:344
|
347 |
+
msgid "Restart Optimizing"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: class/view/shortpixel_view.php:355
|
351 |
+
msgid "Bulk Image Optimization by ShortPixel"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: class/view/shortpixel_view.php:361
|
355 |
+
msgid "Lengthy operation in progress:"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: class/view/shortpixel_view.php:362
|
359 |
+
msgid "Optimizing image"
|
360 |
+
msgstr ""
|
361 |
+
|
362 |
+
#: class/view/shortpixel_view.php:369
|
363 |
+
msgid "Error processing file:"
|
364 |
+
msgstr ""
|
365 |
+
|
366 |
+
#: class/view/shortpixel_view.php:375
|
367 |
+
msgid "Just optimized:"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: class/view/shortpixel_view.php:381
|
371 |
+
msgid "Original image"
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: class/view/shortpixel_view.php:385
|
375 |
+
msgid "Optimized image"
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#. translators: percent follows
|
379 |
+
#: class/view/shortpixel_view.php:389
|
380 |
+
msgid "Optimized by:"
|
381 |
+
msgstr ""
|
382 |
+
|
383 |
+
#: class/view/shortpixel_view.php:411
|
384 |
+
msgid "Remaining credits"
|
385 |
+
msgstr ""
|
386 |
+
|
387 |
+
#: class/view/shortpixel_view.php:427 class/view/shortpixel_view.php:436
|
388 |
+
msgid "Media Library"
|
389 |
+
msgstr ""
|
390 |
+
|
391 |
+
#: class/view/shortpixel_view.php:428
|
392 |
+
msgid "and"
|
393 |
+
msgstr ""
|
394 |
+
|
395 |
+
#: class/view/shortpixel_view.php:429
|
396 |
+
msgid "Custom folders"
|
397 |
+
msgstr ""
|
398 |
+
|
399 |
+
#: class/view/shortpixel_view.php:429
|
400 |
+
msgid "optimization in progress ..."
|
401 |
+
msgstr ""
|
402 |
+
|
403 |
+
#: class/view/shortpixel_view.php:430
|
404 |
+
msgid "Bulk optimization has started."
|
405 |
+
msgstr ""
|
406 |
+
|
407 |
+
#: class/view/shortpixel_view.php:431
|
408 |
+
#, php-format
|
409 |
+
msgid ""
|
410 |
+
"This process will take some time, depending on the number of images in your "
|
411 |
+
"library. In the meantime, you can continue using \n"
|
412 |
+
" the admin as usual, <a href=\"%s\" target=\"_blank\">in "
|
413 |
+
"a different browser window or tab</a>.<br>\n"
|
414 |
+
" However, <strong>if you close this window, the bulk "
|
415 |
+
"processing will pause</strong> until you open the media gallery or the "
|
416 |
+
"ShortPixel bulk page again."
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#: class/view/shortpixel_view.php:436
|
420 |
+
msgid "and Custom folders"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: class/view/shortpixel_view.php:436
|
424 |
+
msgid "optimization paused"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: class/view/shortpixel_view.php:437
|
428 |
+
msgid "Bulk processing is paused until you resume the optimization process."
|
429 |
+
msgstr ""
|
430 |
+
|
431 |
+
#. now we display the action buttons always when a type of bulk is running
|
432 |
+
#: class/view/shortpixel_view.php:454
|
433 |
+
msgid "Pause"
|
434 |
+
msgstr ""
|
435 |
+
|
436 |
+
#: class/view/shortpixel_view.php:454
|
437 |
+
msgid "Resume processing"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: class/view/shortpixel_view.php:457
|
441 |
+
msgid "Only other media"
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: class/view/shortpixel_view.php:457
|
445 |
+
msgid "Process only the other media, skipping the Media Library"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: class/view/shortpixel_view.php:461
|
449 |
+
msgid "Manage custom folders"
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: class/view/shortpixel_view.php:469
|
453 |
+
msgid "Processed Images and PDFs:"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: class/view/shortpixel_view.php:470
|
457 |
+
msgid "Processed Thumbnails:"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: class/view/shortpixel_view.php:471
|
461 |
+
msgid "Total files processed:"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: class/view/shortpixel_view.php:472
|
465 |
+
#, php-format
|
466 |
+
msgid "Minus files with <5% optimization (free):"
|
467 |
+
msgstr ""
|
468 |
+
|
469 |
+
#: class/view/shortpixel_view.php:473
|
470 |
+
msgid "Used quota:"
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: class/view/shortpixel_view.php:475
|
474 |
+
msgid "Average optimization:"
|
475 |
+
msgstr ""
|
476 |
+
|
477 |
+
#: class/view/shortpixel_view.php:476
|
478 |
+
msgid "Saved space:"
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#. wp_enqueue_script('jquery.idTabs.js', plugins_url('/js/jquery.idTabs.js',__FILE__) );
|
482 |
+
#: class/view/shortpixel_view.php:502
|
483 |
+
msgid "ShortPixel Plugin Settings"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: class/view/shortpixel_view.php:505
|
487 |
+
msgid "Upgrade now"
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
+
#: class/view/shortpixel_view.php:507
|
491 |
+
msgid "Support"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: class/view/shortpixel_view.php:525
|
495 |
+
msgid "General"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: class/view/shortpixel_view.php:530
|
499 |
+
msgid "Advanced"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#. the span is a trick to keep the sections ordered as nth-child in styles: 1,2,3,4 (otherwise the third section would be nth-child(2) too, because of the form)
|
503 |
+
#: class/view/shortpixel_view.php:537
|
504 |
+
msgid "Statistics"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: class/view/shortpixel_view.php:545
|
508 |
+
msgid "WP Resources"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: class/view/shortpixel_view.php:546
|
512 |
+
msgid "Please reload"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: class/view/shortpixel_view.php:579
|
516 |
+
#, php-format
|
517 |
+
msgid ""
|
518 |
+
"New images uploaded to the Media Library will be optimized automatically.<br/"
|
519 |
+
">If you have existing images you would like to optimize, you can use the <a "
|
520 |
+
"href=\"%supload.php?page=wp-short-pixel-bulk\">Bulk Optimization Tool</a>."
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: class/view/shortpixel_view.php:582
|
524 |
+
msgid "Step 1:"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: class/view/shortpixel_view.php:583
|
528 |
+
#, php-format
|
529 |
+
msgid ""
|
530 |
+
"If you don't have an API Key, <a href=\"https://shortpixel.com/wp-apikey%s\" "
|
531 |
+
"target=\"_blank\">sign up here.</a> It's free and it only takes one minute, "
|
532 |
+
"we promise!"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: class/view/shortpixel_view.php:584
|
536 |
+
msgid "Step 2:"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: class/view/shortpixel_view.php:585
|
540 |
+
msgid "Please enter here the API Key you received by email and press Validate."
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: class/view/shortpixel_view.php:591
|
544 |
+
msgid "API Key:"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: class/view/shortpixel_view.php:601
|
548 |
+
msgid "Multisite API Key"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: class/view/shortpixel_view.php:604
|
552 |
+
msgid "Validate the provided API key"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: class/view/shortpixel_view.php:605
|
556 |
+
msgid "Validate"
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: class/view/shortpixel_view.php:607
|
560 |
+
msgid "Key defined in wp-config.php."
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#. if invalid key we display the link to the API Key
|
564 |
+
#. if valid key we display the rest of the options
|
565 |
+
#: class/view/shortpixel_view.php:618
|
566 |
+
msgid "Compression type:"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: class/view/shortpixel_view.php:622
|
570 |
+
msgid "Lossy (recommended)"
|
571 |
+
msgstr ""
|
572 |
+
|
573 |
+
#: class/view/shortpixel_view.php:623
|
574 |
+
msgid ""
|
575 |
+
"<b>Lossy compression: </b>lossy has a better compression rate than lossless "
|
576 |
+
"compression.</br>The resulting image is identical with the original to the "
|
577 |
+
"human eye. You can run a test for free "
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: class/view/shortpixel_view.php:624 wp-shortpixel.php:1458
|
581 |
+
msgid "here"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: class/view/shortpixel_view.php:626 class/view/shortpixel-list-table.php:111
|
585 |
+
msgid "Lossless"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: class/view/shortpixel_view.php:628
|
589 |
+
msgid ""
|
590 |
+
"<b>Lossless compression: </b> the shrunk image will be identical with the "
|
591 |
+
"original and smaller in size.</br>In some rare cases you will need to use \n"
|
592 |
+
" this type of compression. Some technical drawings or "
|
593 |
+
"images from vector graphics are possible situations."
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: class/view/shortpixel_view.php:638
|
597 |
+
msgid "Also include thumbnails:"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: class/view/shortpixel_view.php:640
|
601 |
+
msgid "Apply compression also to <strong>image thumbnails.</strong> "
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: class/view/shortpixel_view.php:641
|
605 |
+
msgid "thumbnails to optimize"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: class/view/shortpixel_view.php:643
|
609 |
+
msgid ""
|
610 |
+
"It is highly recommended that you optimize the thumbnails as they are "
|
611 |
+
"usually the images most viewed by end users and can generate most traffic."
|
612 |
+
"<br>Please note that thumbnails count up to your total quota."
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: class/view/shortpixel_view.php:648
|
616 |
+
msgid "Image backup"
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: class/view/shortpixel_view.php:650
|
620 |
+
msgid "Save and keep a backup of your original images in a separate folder."
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: class/view/shortpixel_view.php:651
|
624 |
+
msgid ""
|
625 |
+
"You <strong>need to have backup active</strong> in order to be able to "
|
626 |
+
"restore images to originals or to convert from Lossy to Lossless and back."
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: class/view/shortpixel_view.php:655
|
630 |
+
msgid "CMYK to RGB conversion"
|
631 |
+
msgstr ""
|
632 |
+
|
633 |
+
#: class/view/shortpixel_view.php:657
|
634 |
+
msgid "Adjust your images for computer and mobile screen display."
|
635 |
+
msgstr ""
|
636 |
+
|
637 |
+
#: class/view/shortpixel_view.php:658
|
638 |
+
msgid ""
|
639 |
+
"Images for the web only need RGB format and converting them from CMYK to RGB "
|
640 |
+
"makes them smaller."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: class/view/shortpixel_view.php:662
|
644 |
+
msgid "Remove EXIF"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: class/view/shortpixel_view.php:664
|
648 |
+
msgid "Remove the EXIF tag of the image (recommended)."
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: class/view/shortpixel_view.php:665
|
652 |
+
msgid ""
|
653 |
+
"EXIF is a set of various pieces of information that are automatically "
|
654 |
+
"embedded into the image upon creation. This can include GPS position, camera "
|
655 |
+
"manufacturer, date and time, etc. \n"
|
656 |
+
" Unless you really need that data to be "
|
657 |
+
"preserved, we recommend removing it as it can lead to <a href=\"http://blog."
|
658 |
+
"shortpixel.com/how-much-smaller-can-be-images-without-exif-icc\" target="
|
659 |
+
"\"_blank\">better compression rates</a>."
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: class/view/shortpixel_view.php:670
|
663 |
+
msgid "Resize large images"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: class/view/shortpixel_view.php:673
|
667 |
+
msgid "to maximum"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: class/view/shortpixel_view.php:675
|
671 |
+
msgid "pixels wide ×"
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: class/view/shortpixel_view.php:677
|
675 |
+
msgid ""
|
676 |
+
"pixels high (original aspect ratio is preserved and image is not cropped)"
|
677 |
+
msgstr ""
|
678 |
+
|
679 |
+
#: class/view/shortpixel_view.php:679
|
680 |
+
#, php-format
|
681 |
+
msgid ""
|
682 |
+
"Recommended for large photos, like the ones taken with your phone. Saved "
|
683 |
+
"space can go up to 80% or more after resizing."
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: class/view/shortpixel_view.php:683
|
687 |
+
msgid ""
|
688 |
+
"Sizes will be greater or equal to the corresponding value. For example, if "
|
689 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
690 |
+
"resized to 1000x1500px while an image of 3000x2000px will be resized to "
|
691 |
+
"1800x1200px"
|
692 |
+
msgstr ""
|
693 |
+
|
694 |
+
#: class/view/shortpixel_view.php:685
|
695 |
+
msgid ""
|
696 |
+
"Sizes will be smaller or equal to the corresponding value. For example, if "
|
697 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
698 |
+
"resized to 800x1200px while an image of 3000x2000px will be resized to "
|
699 |
+
"1000x667px"
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: class/view/shortpixel_view.php:692 class/view/shortpixel_view.php:847
|
703 |
+
msgid "Save Changes"
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
707 |
+
msgid "Save and go to the Bulk Processing page"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
711 |
+
#: wp-shortpixel.php:1517 wp-shortpixel.php:1518
|
712 |
+
msgid "Save and Go to Bulk Process"
|
713 |
+
msgstr ""
|
714 |
+
|
715 |
+
#: class/view/shortpixel_view.php:716
|
716 |
+
msgid "Please enter your API key in the General tab first."
|
717 |
+
msgstr ""
|
718 |
+
|
719 |
+
#. if valid key we display the rest of the options
|
720 |
+
#: class/view/shortpixel_view.php:721
|
721 |
+
msgid "Additional media folders"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: class/view/shortpixel_view.php:726
|
725 |
+
msgid "Folder name"
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: class/view/shortpixel_view.php:727
|
729 |
+
msgid "Type &<br>Status"
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: class/view/shortpixel_view.php:728
|
733 |
+
msgid "Files"
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: class/view/shortpixel_view.php:729
|
737 |
+
msgid "Last change"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: class/view/shortpixel_view.php:738 class/view/shortpixel_view.php:743
|
741 |
+
#: class/view/shortpixel_view.php:745 class/view/shortpixel_view.php:747
|
742 |
+
msgid "Empty"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: class/view/shortpixel_view.php:740 class/view/shortpixel_view.php:745
|
746 |
+
#: class/view/shortpixel_view.php:747
|
747 |
+
msgid "Optimized"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
751 |
+
#: class/view/shortpixel-list-table.php:97
|
752 |
+
msgid "Pending"
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
756 |
+
#: class/view/shortpixel-list-table.php:99
|
757 |
+
msgid "Waiting"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: class/view/shortpixel_view.php:745
|
761 |
+
msgid "Stop monitoring"
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: class/view/shortpixel_view.php:745
|
765 |
+
msgid "Stop optimizing"
|
766 |
+
msgstr ""
|
767 |
+
|
768 |
+
#: class/view/shortpixel_view.php:749
|
769 |
+
msgid "Failed"
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: class/view/shortpixel_view.php:771
|
773 |
+
msgid ""
|
774 |
+
"Full folder refresh, check each file of the folder if it changed since it "
|
775 |
+
"was optimized. Might take up to 1 min. for big folders."
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: class/view/shortpixel_view.php:772
|
779 |
+
msgid "Refresh"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: class/view/shortpixel_view.php:783
|
783 |
+
msgid "Select the images folder on your server."
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: class/view/shortpixel_view.php:784
|
787 |
+
msgid "Select ..."
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: class/view/shortpixel_view.php:786
|
791 |
+
msgid "Add Folder"
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: class/view/shortpixel_view.php:788
|
795 |
+
msgid ""
|
796 |
+
"Use the Select... button to select site folders. ShortPixel will optimize "
|
797 |
+
"images and PDFs from the specified folders and their subfolders. The "
|
798 |
+
"optimization status for each image or PDF in these folders can be seen in "
|
799 |
+
"the <a href=\"upload.php?page=wp-short-pixel-custom\">Other Media list</a>, "
|
800 |
+
"under the Media menu."
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: class/view/shortpixel_view.php:792
|
804 |
+
msgid "Select the images folder"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: class/view/shortpixel_view.php:794
|
808 |
+
msgid "Cancel"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: class/view/shortpixel_view.php:795
|
812 |
+
msgid "Select"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: class/view/shortpixel_view.php:807
|
816 |
+
msgid "Optimize NextGen galleries"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: class/view/shortpixel_view.php:809
|
820 |
+
msgid "Optimize NextGen galleries."
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: class/view/shortpixel_view.php:811
|
824 |
+
msgid ""
|
825 |
+
"Check this to add all your current NextGen galleries to the custom folders "
|
826 |
+
"list and to also have all the future NextGen galleries and images optimized "
|
827 |
+
"automatically by ShortPixel."
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: class/view/shortpixel_view.php:817
|
831 |
+
msgid "WebP versions"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: class/view/shortpixel_view.php:819
|
835 |
+
msgid ""
|
836 |
+
"Create also <a href=\"http://blog.shortpixel.com/how-webp-images-can-speed-"
|
837 |
+
"up-your-site/\" target=\"_blank\">WebP versions</a> of the images "
|
838 |
+
"<strong>for free</strong>."
|
839 |
+
msgstr ""
|
840 |
+
|
841 |
+
#: class/view/shortpixel_view.php:821
|
842 |
+
#, php-format
|
843 |
+
msgid ""
|
844 |
+
"WebP images can be up to three times smaller than PNGs and 25% smaller than "
|
845 |
+
"JPGs. Choosing this option <strong>does not use up additional credits</"
|
846 |
+
"strong>."
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: class/view/shortpixel_view.php:826
|
850 |
+
msgid "HTTP AUTH credentials"
|
851 |
+
msgstr ""
|
852 |
+
|
853 |
+
#: class/view/shortpixel_view.php:828
|
854 |
+
msgid "User"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: class/view/shortpixel_view.php:829
|
858 |
+
msgid "Password"
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: class/view/shortpixel_view.php:831
|
862 |
+
msgid ""
|
863 |
+
"Only fill in these fields if your site (front-end) is not publicly "
|
864 |
+
"accessible and visitors need a user/pass to connect to it. If you don't know "
|
865 |
+
"what is this then just <strong>leave the fields empty</strong>."
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: class/view/shortpixel_view.php:836
|
869 |
+
msgid "Process in front-end"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: class/view/shortpixel_view.php:838
|
873 |
+
msgid "Automatically optimize images added by users in front end."
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: class/view/shortpixel_view.php:840
|
877 |
+
msgid ""
|
878 |
+
"Check this if you have users that add images or PDF documents from custom "
|
879 |
+
"forms in the front-end. This could increase the load on your server if you "
|
880 |
+
"have a lot of users simultaneously connected."
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: class/view/shortpixel_view.php:860
|
884 |
+
msgid "Your ShortPixel Stats"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: class/view/shortpixel_view.php:864
|
888 |
+
msgid "Average compression of your files:"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: class/view/shortpixel_view.php:868
|
892 |
+
msgid "Saved disk space by ShortPixel"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: class/view/shortpixel_view.php:872
|
896 |
+
msgid "Bandwith* saved with ShortPixel:"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: class/view/shortpixel_view.php:878
|
900 |
+
msgid "* Saved bandwidth is calculated at 10,000 impressions/image"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: class/view/shortpixel_view.php:880
|
904 |
+
msgid "Your ShortPixel Plan"
|
905 |
+
msgstr ""
|
906 |
+
|
907 |
+
#: class/view/shortpixel_view.php:884
|
908 |
+
msgid "Your ShortPixel plan"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: class/view/shortpixel_view.php:886
|
912 |
+
#, php-format
|
913 |
+
msgid ""
|
914 |
+
"%s/month, renews in %s days, on %s ( <a href=\"https://shortpixel.com/login/"
|
915 |
+
"%s\" target=\"_blank\">Need More? See the options available</a> )"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: class/view/shortpixel_view.php:889
|
919 |
+
#, php-format
|
920 |
+
msgid ""
|
921 |
+
"<a href=\"https://shortpixel.com/login/%s/tell-a-friend\" target=\"_blank"
|
922 |
+
"\">Join our friend referral system</a> to win more credits. For each user "
|
923 |
+
"that joins, you receive +100 images credits/month."
|
924 |
+
msgstr ""
|
925 |
+
|
926 |
+
#: class/view/shortpixel_view.php:894
|
927 |
+
msgid "One time credits:"
|
928 |
+
msgstr ""
|
929 |
+
|
930 |
+
#: class/view/shortpixel_view.php:898
|
931 |
+
msgid "Number of images processed this month:"
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: class/view/shortpixel_view.php:900
|
935 |
+
msgid "see report"
|
936 |
+
msgstr ""
|
937 |
+
|
938 |
+
#: class/view/shortpixel_view.php:905
|
939 |
+
msgid "Remaining** images in your plan:"
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: class/view/shortpixel_view.php:906
|
943 |
+
msgid "images"
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: class/view/shortpixel_view.php:912
|
947 |
+
#, php-format
|
948 |
+
msgid ""
|
949 |
+
"** Increase your image quota by <a href=\"https://shortpixel.com/login/%s\" "
|
950 |
+
"target=\"_blank\">upgrading your ShortPixel plan.</a>"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: class/view/shortpixel_view.php:919
|
954 |
+
msgid "Total number of processed files:"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: class/view/shortpixel_view.php:924
|
958 |
+
msgid ""
|
959 |
+
"Original images are stored in a backup folder. Your backup folder size is "
|
960 |
+
"now:"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: class/view/shortpixel_view.php:928
|
964 |
+
msgid "Empty backups"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#. not a file that we can process
|
968 |
+
#: class/view/shortpixel_view.php:945 wp-shortpixel.php:348
|
969 |
+
#: wp-shortpixel.php:374 wp-shortpixel.php:1813
|
970 |
+
msgid "Optimization N/A"
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: class/view/shortpixel_view.php:948
|
974 |
+
msgid "Image does not exist."
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#. multisite key - need to be validated on each site but it's not invalid
|
978 |
+
#: class/view/shortpixel_view.php:952
|
979 |
+
msgid ""
|
980 |
+
"Please <a href=\"options-general.php?page=wp-shortpixel\">go to Settings</a> "
|
981 |
+
"to validate the API Key."
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: class/view/shortpixel_view.php:954
|
985 |
+
msgid ""
|
986 |
+
"Invalid API Key. <a href=\"options-general.php?page=wp-shortpixel\">Check "
|
987 |
+
"your Settings</a>"
|
988 |
+
msgstr ""
|
989 |
+
|
990 |
+
#: class/view/shortpixel_view.php:963
|
991 |
+
msgid "Optimize now"
|
992 |
+
msgstr ""
|
993 |
+
|
994 |
+
#: class/view/shortpixel_view.php:973 class/view/shortpixel-list-table.php:55
|
995 |
+
#: wp-shortpixel.php:282
|
996 |
+
msgid "Retry"
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: class/view/shortpixel_view.php:990 class/view/shortpixel-list-table.php:93
|
1000 |
+
#: wp-shortpixel.php:273
|
1001 |
+
msgid "Reduced by"
|
1002 |
+
msgstr ""
|
1003 |
+
|
1004 |
+
#: class/view/shortpixel_view.php:993 class/view/shortpixel-list-table.php:92
|
1005 |
+
#: class/view/shortpixel-list-table.php:94 wp-shortpixel.php:274
|
1006 |
+
msgid "Bonus processing"
|
1007 |
+
msgstr ""
|
1008 |
+
|
1009 |
+
#: class/view/shortpixel_view.php:996
|
1010 |
+
#, php-format
|
1011 |
+
msgid "+%s of %s thumbnails optimized"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: class/view/shortpixel_view.php:997
|
1015 |
+
#, php-format
|
1016 |
+
msgid "+%s thumbnails optimized"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: class/view/shortpixel_view.php:1005
|
1020 |
+
#, php-format
|
1021 |
+
msgid "Optimize %s thumbnails"
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: class/view/shortpixel_view.php:1012
|
1025 |
+
msgid "Reoptimize from the backed-up image"
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: class/view/shortpixel_view.php:1013
|
1029 |
+
msgid "Re-optimize"
|
1030 |
+
msgstr ""
|
1031 |
+
|
1032 |
+
#: class/view/shortpixel_view.php:1017 wp-shortpixel.php:278
|
1033 |
+
msgid "Restore backup"
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: class/view/shortpixel_view.php:1030 wp-shortpixel.php:280
|
1037 |
+
msgid "Extend Quota"
|
1038 |
+
msgstr ""
|
1039 |
+
|
1040 |
+
#: class/view/shortpixel_view.php:1033 wp-shortpixel.php:281
|
1041 |
+
msgid "Check Quota"
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: class/view/shortpixel-list-table.php:15
|
1045 |
+
msgid "Image"
|
1046 |
+
msgstr ""
|
1047 |
+
|
1048 |
+
#. singular name of the listed records
|
1049 |
+
#: class/view/shortpixel-list-table.php:16
|
1050 |
+
msgid "Images"
|
1051 |
+
msgstr ""
|
1052 |
+
|
1053 |
+
#. pe viitor. $columns['cb'] = '<input type="checkbox" />';
|
1054 |
+
#: class/view/shortpixel-list-table.php:29
|
1055 |
+
msgid "Filename"
|
1056 |
+
msgstr ""
|
1057 |
+
|
1058 |
+
#: class/view/shortpixel-list-table.php:30
|
1059 |
+
msgid "Folder"
|
1060 |
+
msgstr ""
|
1061 |
+
|
1062 |
+
#: class/view/shortpixel-list-table.php:31
|
1063 |
+
msgid "Type"
|
1064 |
+
msgstr ""
|
1065 |
+
|
1066 |
+
#: class/view/shortpixel-list-table.php:32
|
1067 |
+
msgid "Status"
|
1068 |
+
msgstr ""
|
1069 |
+
|
1070 |
+
#: class/view/shortpixel-list-table.php:33
|
1071 |
+
msgid "Options"
|
1072 |
+
msgstr ""
|
1073 |
+
|
1074 |
+
#: class/view/shortpixel-list-table.php:52
|
1075 |
+
msgid "Optimize"
|
1076 |
+
msgstr ""
|
1077 |
+
|
1078 |
+
#: class/view/shortpixel-list-table.php:58
|
1079 |
+
msgid "Restore"
|
1080 |
+
msgstr ""
|
1081 |
+
|
1082 |
+
#: class/view/shortpixel-list-table.php:61
|
1083 |
+
msgid "Re-optimize lossless"
|
1084 |
+
msgstr ""
|
1085 |
+
|
1086 |
+
#: class/view/shortpixel-list-table.php:64
|
1087 |
+
msgid "Re-optimize lossy"
|
1088 |
+
msgstr ""
|
1089 |
+
|
1090 |
+
#: class/view/shortpixel-list-table.php:67
|
1091 |
+
msgid "Check quota"
|
1092 |
+
msgstr ""
|
1093 |
+
|
1094 |
+
#: class/view/shortpixel-list-table.php:68
|
1095 |
+
msgid "View"
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: class/view/shortpixel-list-table.php:89
|
1099 |
+
msgid "Restored"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: class/view/shortpixel-list-table.php:103
|
1103 |
+
msgid "code"
|
1104 |
+
msgstr ""
|
1105 |
+
|
1106 |
+
#: class/view/shortpixel-list-table.php:111
|
1107 |
+
msgid "Lossy"
|
1108 |
+
msgstr ""
|
1109 |
+
|
1110 |
+
#: class/view/shortpixel-list-table.php:112
|
1111 |
+
msgid "Keep EXIF"
|
1112 |
+
msgstr ""
|
1113 |
+
|
1114 |
+
#: class/view/shortpixel-list-table.php:113
|
1115 |
+
msgid "Preserve CMYK"
|
1116 |
+
msgstr ""
|
1117 |
+
|
1118 |
+
#: class/view/shortpixel-list-table.php:122
|
1119 |
+
msgid ""
|
1120 |
+
"No images avaliable. Go to <a href=\"options-general.php?page=wp-"
|
1121 |
+
"shortpixel#adv-settings\">Advanced Settings</a> to configure additional "
|
1122 |
+
"folders to be optimized."
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: class/view/shortpixel-list-table.php:255
|
1126 |
+
msgid "Show more details"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: class/db/shortpixel-meta-facade.php:165
|
1130 |
+
msgid "Error"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: class/db/shortpixel-custom-meta-dao.php:187
|
1134 |
+
msgid "Folder already added."
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: class/db/shortpixel-custom-meta-dao.php:191
|
1138 |
+
#, php-format
|
1139 |
+
msgid ""
|
1140 |
+
"The %s folder cannot be processed as it's not inside the root path of your "
|
1141 |
+
"website."
|
1142 |
+
msgstr ""
|
1143 |
+
|
1144 |
+
#: class/db/shortpixel-custom-meta-dao.php:200
|
1145 |
+
msgid ""
|
1146 |
+
"This folder contains Media Library images. To optimize Media Library images "
|
1147 |
+
"please go to <a href=\"upload.php?mode=list\">Media Library list view</a> or "
|
1148 |
+
"to <a href=\"upload.php?page=wp-short-pixel-bulk\">SortPixel Bulk page</a>."
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: class/db/shortpixel-custom-meta-dao.php:204
|
1152 |
+
msgid "Inserted folder doesn't have an ID!"
|
1153 |
+
msgstr ""
|
1154 |
+
|
1155 |
+
#: class/db/shortpixel-custom-meta-dao.php:224
|
1156 |
+
msgid ""
|
1157 |
+
"This folder contains the ShortPixel Backups. Please select a different "
|
1158 |
+
"folder."
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#. var_dump($allFolders);
|
1162 |
+
#: class/db/shortpixel-custom-meta-dao.php:247
|
1163 |
+
#, php-format
|
1164 |
+
msgid "Folder already included in %s."
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: class/db/shortpixel-custom-meta-dao.php:250
|
1168 |
+
msgid "Folder does not exist."
|
1169 |
+
msgstr ""
|
1170 |
+
|
1171 |
+
#: class/model/shortpixel-folder.php:76 class/model/shortpixel-folder.php:149
|
1172 |
+
#, php-format
|
1173 |
+
msgid "Folder %s is not writeable. Please check permissions and try again."
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: wp-shortpixel.php:160
|
1177 |
+
msgid "ShortPixel Settings"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#. translators: title and menu name for the Other media page
|
1181 |
+
#: wp-shortpixel.php:166
|
1182 |
+
msgid "Other Media Optimized by ShortPixel"
|
1183 |
+
msgstr ""
|
1184 |
+
|
1185 |
+
#: wp-shortpixel.php:166
|
1186 |
+
msgid "Other Media"
|
1187 |
+
msgstr ""
|
1188 |
+
|
1189 |
+
#. translators: title and menu name for the Bulk Processing page
|
1190 |
+
#: wp-shortpixel.php:169
|
1191 |
+
msgid "ShortPixel Bulk Process"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: wp-shortpixel.php:169
|
1195 |
+
msgid "Bulk ShortPixel"
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: wp-shortpixel.php:216
|
1199 |
+
msgid "Media alert dismissed"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: wp-shortpixel.php:269
|
1203 |
+
msgid "Optimize with ShortPixel"
|
1204 |
+
msgstr ""
|
1205 |
+
|
1206 |
+
#: wp-shortpixel.php:270
|
1207 |
+
msgid ""
|
1208 |
+
"In order to access the ShortPixel Optimization actions and info, please "
|
1209 |
+
"change to {0}List View{1}List View{2}Dismiss{3}"
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: wp-shortpixel.php:271
|
1213 |
+
msgid ""
|
1214 |
+
"This type of optimization will apply to new uploaded images.\\nImages that "
|
1215 |
+
"were already processed will not be re-optimized unless you restart the bulk "
|
1216 |
+
"process."
|
1217 |
+
msgstr ""
|
1218 |
+
|
1219 |
+
#: wp-shortpixel.php:272
|
1220 |
+
msgid "Are you sure you want to stop optimizing the folder {0}?"
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: wp-shortpixel.php:275
|
1224 |
+
msgid "+{0} thumbnails optimized"
|
1225 |
+
msgstr ""
|
1226 |
+
|
1227 |
+
#: wp-shortpixel.php:276
|
1228 |
+
msgid "Optimize {0} thumbnails"
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: wp-shortpixel.php:277
|
1232 |
+
msgid "Reoptimize {0}"
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: wp-shortpixel.php:279
|
1236 |
+
msgid "Get API Key"
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#: wp-shortpixel.php:283
|
1240 |
+
msgid "This content is not processable."
|
1241 |
+
msgstr ""
|
1242 |
+
|
1243 |
+
#: wp-shortpixel.php:284
|
1244 |
+
msgid "Image waiting to optimize thumbnails"
|
1245 |
+
msgstr ""
|
1246 |
+
|
1247 |
+
#. translators: toolbar icon tooltip
|
1248 |
+
#: wp-shortpixel.php:297
|
1249 |
+
msgid "ShortPixel optimizing..."
|
1250 |
+
msgstr ""
|
1251 |
+
|
1252 |
+
#. translators: toolbar icon tooltip
|
1253 |
+
#: wp-shortpixel.php:308
|
1254 |
+
msgid "ShortPixel quota exceeded. Click for details."
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: wp-shortpixel.php:564
|
1258 |
+
msgid "Missing API Key"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#. translators: console message Empty queue 1234 -> 1234
|
1262 |
+
#: wp-shortpixel.php:614
|
1263 |
+
msgid "Empty queue "
|
1264 |
+
msgstr ""
|
1265 |
+
|
1266 |
+
#: wp-shortpixel.php:740
|
1267 |
+
msgid " Retry limit reached. Skipping file ID "
|
1268 |
+
msgstr ""
|
1269 |
+
|
1270 |
+
#: wp-shortpixel.php:835
|
1271 |
+
msgid "NextGen image not found"
|
1272 |
+
msgstr ""
|
1273 |
+
|
1274 |
+
#: wp-shortpixel.php:1004 wp-shortpixel.php:1018
|
1275 |
+
msgid "Could not restore from backup: "
|
1276 |
+
msgstr ""
|
1277 |
+
|
1278 |
+
#: wp-shortpixel.php:1037
|
1279 |
+
msgid "No thumbnails to optimize for ID: "
|
1280 |
+
msgstr ""
|
1281 |
+
|
1282 |
+
#: wp-shortpixel.php:1037
|
1283 |
+
msgid "Please optimize image for ID: "
|
1284 |
+
msgstr ""
|
1285 |
+
|
1286 |
+
#: wp-shortpixel.php:1142
|
1287 |
+
msgid "Refresh custom folders content"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: wp-shortpixel.php:1143
|
1291 |
+
msgid "Refresh folders"
|
1292 |
+
msgstr ""
|
1293 |
+
|
1294 |
+
#: wp-shortpixel.php:1146
|
1295 |
+
msgid "Other Media optimized by ShortPixel"
|
1296 |
+
msgstr ""
|
1297 |
+
|
1298 |
+
#: wp-shortpixel.php:1322 wp-shortpixel.php:1413
|
1299 |
+
msgid "You do not have sufficient permissions to access this page."
|
1300 |
+
msgstr ""
|
1301 |
+
|
1302 |
+
#: wp-shortpixel.php:1451
|
1303 |
+
#, php-format
|
1304 |
+
msgid ""
|
1305 |
+
"The key you provided has %s characters. The API key should have 20 "
|
1306 |
+
"characters, letters and numbers only."
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: wp-shortpixel.php:1453
|
1310 |
+
msgid ""
|
1311 |
+
"Please check that the API key is the same as the one you received in your "
|
1312 |
+
"confirmation email."
|
1313 |
+
msgstr ""
|
1314 |
+
|
1315 |
+
#: wp-shortpixel.php:1455
|
1316 |
+
msgid "If this problem persists, please contact us at "
|
1317 |
+
msgstr ""
|
1318 |
+
|
1319 |
+
#: wp-shortpixel.php:1457
|
1320 |
+
msgid " or "
|
1321 |
+
msgstr ""
|
1322 |
+
|
1323 |
+
#: wp-shortpixel.php:1475
|
1324 |
+
msgid ""
|
1325 |
+
"API Key is valid but your site is not accessible from our servers. Please "
|
1326 |
+
"make sure that your server is accessible from the Internet before using the "
|
1327 |
+
"API or otherwise we won't be able to optimize them."
|
1328 |
+
msgstr ""
|
1329 |
+
|
1330 |
+
#: wp-shortpixel.php:1478
|
1331 |
+
msgid ""
|
1332 |
+
"API Key valid! <br>You seem to be running a multisite, please note that API "
|
1333 |
+
"Key can also be configured in wp-config.php like this:"
|
1334 |
+
msgstr ""
|
1335 |
+
|
1336 |
+
#: wp-shortpixel.php:1481
|
1337 |
+
msgid "API Key valid!"
|
1338 |
+
msgstr ""
|
1339 |
+
|
1340 |
+
#: wp-shortpixel.php:1488
|
1341 |
+
#, php-format
|
1342 |
+
msgid ""
|
1343 |
+
"There is something preventing us to create a new folder for backing up your "
|
1344 |
+
"original files.<BR>Please make sure that folder <b>%s</b> has the necessary "
|
1345 |
+
"write and read rights."
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: wp-shortpixel.php:1536
|
1349 |
+
msgid "Folder added successfully."
|
1350 |
+
msgstr ""
|
1351 |
+
|
1352 |
+
#: wp-shortpixel.php:1712
|
1353 |
+
msgid ""
|
1354 |
+
"API Key could not be validated due to a connectivity error.<BR>Your firewall "
|
1355 |
+
"may be blocking us. Please contact your hosting provider and ask them to "
|
1356 |
+
"allow connections from your site to IP 176.9.106.46.<BR> If you still cannot "
|
1357 |
+
"validate your API Key after this, please <a href=\"https://shortpixel.com/"
|
1358 |
+
"contact\" target=\"_blank\">contact us</a> and we will try to help. "
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: wp-shortpixel.php:1713 wp-shortpixel.php:1714
|
1362 |
+
msgid "Information unavailable. Please check your API key."
|
1363 |
+
msgstr ""
|
1364 |
+
|
1365 |
+
#: wp-shortpixel.php:1789
|
1366 |
+
msgid "PDF not processed."
|
1367 |
+
msgstr ""
|
1368 |
+
|
1369 |
+
#: wp-shortpixel.php:1820 wp-shortpixel.php:1822
|
1370 |
+
msgid "Cannot write optimized file"
|
1371 |
+
msgstr ""
|
1372 |
+
|
1373 |
+
#: wp-shortpixel.php:1823
|
1374 |
+
msgid "Why?"
|
1375 |
+
msgstr ""
|
1376 |
+
|
1377 |
+
#: wp-shortpixel.php:1831
|
1378 |
+
msgid "Image does not exist"
|
1379 |
+
msgstr ""
|
1380 |
+
|
1381 |
+
#: wp-shortpixel.php:1835
|
1382 |
+
msgid "Image waiting to be processed."
|
1383 |
+
msgstr ""
|
1384 |
+
|
1385 |
+
#: wp-shortpixel.php:1853
|
1386 |
+
msgid "ShortPixel Statistics"
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: wp-shortpixel.php:1871
|
1390 |
+
msgid "ShortPixel Compression"
|
1391 |
+
msgstr ""
|
1392 |
+
|
1393 |
+
#: shortpixel_api.php:142
|
1394 |
+
msgid "The file(s) do not exist on disk."
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: shortpixel_api.php:157 shortpixel_api.php:168
|
1398 |
+
msgid "Timed out while processing."
|
1399 |
+
msgstr ""
|
1400 |
+
|
1401 |
+
#: shortpixel_api.php:161
|
1402 |
+
msgid "Image ID"
|
1403 |
+
msgstr ""
|
1404 |
+
|
1405 |
+
#: shortpixel_api.php:161
|
1406 |
+
msgid "Media ID"
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: shortpixel_api.php:162
|
1410 |
+
msgid "Skip this image, try the next one."
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#. send requests to API
|
1414 |
+
#. response <> 200 -> there was an error apparently?
|
1415 |
+
#: shortpixel_api.php:179 shortpixel_api.php:212 shortpixel_api.php:215
|
1416 |
+
msgid "There was an error and your request was not processed."
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: shortpixel_api.php:231
|
1420 |
+
msgid "Unecognized API response. Please contact support."
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: shortpixel_api.php:238
|
1424 |
+
msgid "Quota exceeded."
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: shortpixel_api.php:326
|
1428 |
+
msgid "Error downloading file"
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: shortpixel_api.php:334
|
1432 |
+
#, php-format
|
1433 |
+
msgid ""
|
1434 |
+
"Error downloading file - incorrect file size (downloaded: %s, correct: %s )"
|
1435 |
+
msgstr ""
|
1436 |
+
|
1437 |
+
#: shortpixel_api.php:337
|
1438 |
+
msgid "Unable to locate downloaded file"
|
1439 |
+
msgstr ""
|
1440 |
+
|
1441 |
+
#. array with final paths for these files
|
1442 |
+
#. creates backup folder if it doesn't exist
|
1443 |
+
#: shortpixel_api.php:399
|
1444 |
+
msgid "Backup folder does not exist and it cannot be created"
|
1445 |
+
msgstr ""
|
1446 |
+
|
1447 |
+
#. file couldn't be saved in backup folder
|
1448 |
+
#: shortpixel_api.php:419
|
1449 |
+
#, php-format
|
1450 |
+
msgid "Cannot save file <i>%s</i> in backup directory"
|
1451 |
+
msgstr ""
|
1452 |
+
|
1453 |
+
#. cannot write to the backup dir, return with an error
|
1454 |
+
#: shortpixel_api.php:428
|
1455 |
+
msgid "Cannot save file in backup directory"
|
1456 |
+
msgstr ""
|
1457 |
+
|
1458 |
+
#: shortpixel_api.php:491
|
1459 |
+
#, php-format
|
1460 |
+
msgid "Optimized version of %s file(s) couldn't be updated."
|
1461 |
+
msgstr ""
|
lang/shortpixel-fr_FR.mo
ADDED
Binary file
|
lang/shortpixel-fr_FR.po
ADDED
@@ -0,0 +1,1461 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
+
#, fuzzy
|
7 |
+
msgid ""
|
8 |
+
msgstr ""
|
9 |
+
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
+
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2016-11-30 16:23+0100\n"
|
12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
+
"Language: \n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
19 |
+
|
20 |
+
#: class/view/shortpixel_view.php:23 class/view/shortpixel_view.php:417
|
21 |
+
msgid "Average reduction"
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#. translators: header of the alert box
|
25 |
+
#: class/view/shortpixel_view.php:33
|
26 |
+
msgid "Quota Exceeded"
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#. translators: body of the alert box
|
30 |
+
#: class/view/shortpixel_view.php:35
|
31 |
+
#, php-format
|
32 |
+
msgid ""
|
33 |
+
"The plugin has optimized <strong>%s images</strong> and stopped because it "
|
34 |
+
"reached the available quota limit."
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: class/view/shortpixel_view.php:39
|
38 |
+
#, php-format
|
39 |
+
msgid ""
|
40 |
+
"<strong>%s images and %s thumbnails</strong> are not yet optimized by "
|
41 |
+
"ShortPixel."
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: class/view/shortpixel_view.php:44
|
45 |
+
msgid "Upgrade"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: class/view/shortpixel_view.php:45
|
49 |
+
msgid "Confirm New Quota"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: class/view/shortpixel_view.php:47
|
53 |
+
msgid "Get more image credits by referring ShortPixel to your friends!"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: class/view/shortpixel_view.php:49
|
57 |
+
msgid "Check your account"
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: class/view/shortpixel_view.php:50
|
61 |
+
msgid ""
|
62 |
+
"for your unique referral link. For each user that joins, you will receive "
|
63 |
+
"+100 additional image credits/month."
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: class/view/shortpixel_view.php:58
|
67 |
+
msgid ""
|
68 |
+
"In order to start the optimization process, you need to validate your API "
|
69 |
+
"Key in the <a href=\"options-general.php?page=wp-shortpixel\">ShortPixel "
|
70 |
+
"Settings</a> page in your WordPress Admin."
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: class/view/shortpixel_view.php:61
|
74 |
+
msgid ""
|
75 |
+
"If you don’t have an API Key, you can get one delivered to your inbox, for "
|
76 |
+
"free."
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: class/view/shortpixel_view.php:62
|
80 |
+
msgid ""
|
81 |
+
"Please <a href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">sign "
|
82 |
+
"up to get your API key.</a>"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: class/view/shortpixel_view.php:70
|
86 |
+
msgid "Dismiss"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: class/view/shortpixel_view.php:72
|
90 |
+
msgid "ShortPixel Optimization"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: class/view/shortpixel_view.php:75
|
94 |
+
msgid ""
|
95 |
+
"Action needed. Please <a href='https://shortpixel.com/wp-apikey' "
|
96 |
+
"target='_blank'>get your API key</a> to activate your ShortPixel plugin."
|
97 |
+
msgstr ""
|
98 |
+
|
99 |
+
#: class/view/shortpixel_view.php:78
|
100 |
+
msgid ""
|
101 |
+
"Your image gallery is not optimized. It takes 2 minutes to <a href='https://"
|
102 |
+
"shortpixel.com/wp-apikey' target='_blank'>get your API key</a> and activate "
|
103 |
+
"your ShortPixel plugin."
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: class/view/shortpixel_view.php:102
|
107 |
+
msgid "Your media library"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: class/view/shortpixel_view.php:103
|
111 |
+
msgid "Original images"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: class/view/shortpixel_view.php:105
|
115 |
+
msgid "Smaller thumbnails"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: class/view/shortpixel_view.php:109 class/view/shortpixel_view.php:343
|
119 |
+
msgid "Include thumbnails"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: class/view/shortpixel_view.php:112
|
123 |
+
msgid "Total images"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: class/view/shortpixel_view.php:114
|
127 |
+
msgid "Already optimized originals"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: class/view/shortpixel_view.php:116
|
131 |
+
msgid "Already optimized thumbnails"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: class/view/shortpixel_view.php:119 class/view/shortpixel_view.php:124
|
135 |
+
msgid "Total to be optimized"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: class/view/shortpixel_view.php:123
|
139 |
+
msgid "Your custom folders"
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
#: class/view/shortpixel_view.php:137
|
143 |
+
#, php-format
|
144 |
+
msgid ""
|
145 |
+
"<span class=\"label\">Start Optimizing</span><br> <span class=\"total\">%s</"
|
146 |
+
"span> images"
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: class/view/shortpixel_view.php:148
|
150 |
+
msgid ""
|
151 |
+
"Nothing to optimize! The images that you add to Media Gallery will be "
|
152 |
+
"automatically optimized after upload."
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: class/view/shortpixel_view.php:157
|
156 |
+
msgid ""
|
157 |
+
"After you start the bulk process, in order for the optimization to run, you "
|
158 |
+
"must keep this page open and your computer running. If you close the page "
|
159 |
+
"for whatever reason, just turn back to it and the bulk process will resume."
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: class/view/shortpixel_view.php:163
|
163 |
+
msgid "What are Thumbnails?"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: class/view/shortpixel_view.php:164
|
167 |
+
msgid ""
|
168 |
+
"Thumbnails are smaller images usually generated by your WP theme. Most "
|
169 |
+
"themes generate between 3 and 6 thumbnails for each Media Library image."
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: class/view/shortpixel_view.php:165
|
173 |
+
msgid ""
|
174 |
+
"The thumbnails also generate traffic on your website pages and they "
|
175 |
+
"influence your website's speed."
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: class/view/shortpixel_view.php:166
|
179 |
+
msgid ""
|
180 |
+
"It's highly recommended that you include thumbnails in the optimization as "
|
181 |
+
"well."
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
#: class/view/shortpixel_view.php:169
|
185 |
+
msgid "How does it work?"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: class/view/shortpixel_view.php:170
|
189 |
+
msgid ""
|
190 |
+
"The plugin processes images starting with the newest ones you uploaded in "
|
191 |
+
"your Media Library."
|
192 |
+
msgstr ""
|
193 |
+
|
194 |
+
#: class/view/shortpixel_view.php:171
|
195 |
+
msgid "You will be able to pause the process anytime."
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#: class/view/shortpixel_view.php:172
|
199 |
+
msgid ""
|
200 |
+
"<p>Your original images will be stored in a separate back-up folder.</p>"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: class/view/shortpixel_view.php:173
|
204 |
+
msgid ""
|
205 |
+
"You can watch the images being processed live, right here, after you start "
|
206 |
+
"optimizing."
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#. bulk is paused
|
210 |
+
#: class/view/shortpixel_view.php:179
|
211 |
+
msgid "Please see below the optimization status so far:"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: class/view/shortpixel_view.php:182
|
215 |
+
#, php-format
|
216 |
+
msgid "%d images and %d thumbnails are not yet optimized by ShortPixel."
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: class/view/shortpixel_view.php:187
|
220 |
+
msgid ""
|
221 |
+
"You can continue optimizing your Media Gallery from where you left, by "
|
222 |
+
"clicking the Resume processing button. Already optimized images will not be "
|
223 |
+
"reprocessed."
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: class/view/shortpixel_view.php:197
|
227 |
+
msgid "Congratulations!"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: class/view/shortpixel_view.php:198
|
231 |
+
msgid "Your media library has been successfully optimized!"
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: class/view/shortpixel_view.php:199
|
235 |
+
msgid "Summary"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: class/view/shortpixel_view.php:205
|
239 |
+
msgid "Share your optimization results:"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: class/view/shortpixel_view.php:225
|
243 |
+
msgid "I just optimized my images by "
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: class/view/shortpixel_view.php:227
|
247 |
+
msgid "I just optimized my images "
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: class/view/shortpixel_view.php:230
|
251 |
+
msgid "with @ShortPixel, a great plugin for increasing #WordPress page speed:"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: class/view/shortpixel_view.php:231
|
255 |
+
msgid "Tweet"
|
256 |
+
msgstr ""
|
257 |
+
|
258 |
+
#: class/view/shortpixel_view.php:257
|
259 |
+
msgid "Please rate us!"
|
260 |
+
msgstr ""
|
261 |
+
|
262 |
+
#: class/view/shortpixel_view.php:267
|
263 |
+
#, php-format
|
264 |
+
msgid ""
|
265 |
+
"Go to the ShortPixel <a href=\"%soptions-general.php?page=wp-shortpixel#stats"
|
266 |
+
"\">Stats</a> and see all your websites' optimized stats. Download your "
|
267 |
+
"detailed <a href=\"https://api.shortpixel.com/v2/report.php?key=%s"
|
268 |
+
"\">Optimization Report</a> to check your image optimization statistics for "
|
269 |
+
"the last 40 days."
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: class/view/shortpixel_view.php:275
|
273 |
+
msgid ""
|
274 |
+
"The following images could not be processed because of their limited write "
|
275 |
+
"rights. This usually happens if you have changed your hosting provider. "
|
276 |
+
"Please restart the optimization process after you granted write rights to "
|
277 |
+
"all the files below."
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: class/view/shortpixel_view.php:290 wp-shortpixel.php:1755
|
281 |
+
#: wp-shortpixel.php:1756 wp-shortpixel.php:1757 wp-shortpixel.php:1758
|
282 |
+
msgid " images"
|
283 |
+
msgstr ""
|
284 |
+
|
285 |
+
#: class/view/shortpixel_view.php:291
|
286 |
+
msgid " and"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: class/view/shortpixel_view.php:292
|
290 |
+
msgid " thumbnails"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
+
#: class/view/shortpixel_view.php:293
|
294 |
+
msgid " are not yet optimized by ShortPixel."
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: class/view/shortpixel_view.php:295
|
298 |
+
msgid "Some have errors:"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: class/view/shortpixel_view.php:318
|
302 |
+
#, php-format
|
303 |
+
msgid ""
|
304 |
+
"%s images and %s thumbnails were optimized <strong>%s</strong>. You can re-"
|
305 |
+
"optimize <strong>%s</strong> the ones that have backup."
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: class/view/shortpixel_view.php:323
|
309 |
+
#, php-format
|
310 |
+
msgid ""
|
311 |
+
"%s images were optimized <strong>%s</strong>. You can re-optimize <strong>"
|
312 |
+
"%s</strong> the ones that have backup. "
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: class/view/shortpixel_view.php:326
|
316 |
+
msgid " thumbnails will be restored to originals."
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: class/view/shortpixel_view.php:331
|
320 |
+
msgid ""
|
321 |
+
"Restart the optimization process for these images by clicking the button "
|
322 |
+
"below."
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: class/view/shortpixel_view.php:333
|
326 |
+
msgid ""
|
327 |
+
"Restart the optimization process for new images added to your library by "
|
328 |
+
"clicking the button below."
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: class/view/shortpixel_view.php:335
|
332 |
+
#, php-format
|
333 |
+
msgid "Already <strong>%s</strong> optimized images will not be reprocessed."
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: class/view/shortpixel_view.php:337
|
337 |
+
msgid ""
|
338 |
+
"Please note that reoptimizing images as <strong>lossy/lossless</strong> may "
|
339 |
+
"use additional credits."
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: class/view/shortpixel_view.php:338
|
343 |
+
msgid "More info"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: class/view/shortpixel_view.php:344
|
347 |
+
msgid "Restart Optimizing"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: class/view/shortpixel_view.php:355
|
351 |
+
msgid "Bulk Image Optimization by ShortPixel"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: class/view/shortpixel_view.php:361
|
355 |
+
msgid "Lengthy operation in progress:"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: class/view/shortpixel_view.php:362
|
359 |
+
msgid "Optimizing image"
|
360 |
+
msgstr ""
|
361 |
+
|
362 |
+
#: class/view/shortpixel_view.php:369
|
363 |
+
msgid "Error processing file:"
|
364 |
+
msgstr ""
|
365 |
+
|
366 |
+
#: class/view/shortpixel_view.php:375
|
367 |
+
msgid "Just optimized:"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: class/view/shortpixel_view.php:381
|
371 |
+
msgid "Original image"
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: class/view/shortpixel_view.php:385
|
375 |
+
msgid "Optimized image"
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#. translators: percent follows
|
379 |
+
#: class/view/shortpixel_view.php:389
|
380 |
+
msgid "Optimized by:"
|
381 |
+
msgstr ""
|
382 |
+
|
383 |
+
#: class/view/shortpixel_view.php:411
|
384 |
+
msgid "Remaining credits"
|
385 |
+
msgstr ""
|
386 |
+
|
387 |
+
#: class/view/shortpixel_view.php:427 class/view/shortpixel_view.php:436
|
388 |
+
msgid "Media Library"
|
389 |
+
msgstr ""
|
390 |
+
|
391 |
+
#: class/view/shortpixel_view.php:428
|
392 |
+
msgid "and"
|
393 |
+
msgstr ""
|
394 |
+
|
395 |
+
#: class/view/shortpixel_view.php:429
|
396 |
+
msgid "Custom folders"
|
397 |
+
msgstr ""
|
398 |
+
|
399 |
+
#: class/view/shortpixel_view.php:429
|
400 |
+
msgid "optimization in progress ..."
|
401 |
+
msgstr ""
|
402 |
+
|
403 |
+
#: class/view/shortpixel_view.php:430
|
404 |
+
msgid "Bulk optimization has started."
|
405 |
+
msgstr ""
|
406 |
+
|
407 |
+
#: class/view/shortpixel_view.php:431
|
408 |
+
#, php-format
|
409 |
+
msgid ""
|
410 |
+
"This process will take some time, depending on the number of images in your "
|
411 |
+
"library. In the meantime, you can continue using \n"
|
412 |
+
" the admin as usual, <a href=\"%s\" target=\"_blank\">in "
|
413 |
+
"a different browser window or tab</a>.<br>\n"
|
414 |
+
" However, <strong>if you close this window, the bulk "
|
415 |
+
"processing will pause</strong> until you open the media gallery or the "
|
416 |
+
"ShortPixel bulk page again."
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#: class/view/shortpixel_view.php:436
|
420 |
+
msgid "and Custom folders"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: class/view/shortpixel_view.php:436
|
424 |
+
msgid "optimization paused"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: class/view/shortpixel_view.php:437
|
428 |
+
msgid "Bulk processing is paused until you resume the optimization process."
|
429 |
+
msgstr ""
|
430 |
+
|
431 |
+
#. now we display the action buttons always when a type of bulk is running
|
432 |
+
#: class/view/shortpixel_view.php:454
|
433 |
+
msgid "Pause"
|
434 |
+
msgstr ""
|
435 |
+
|
436 |
+
#: class/view/shortpixel_view.php:454
|
437 |
+
msgid "Resume processing"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: class/view/shortpixel_view.php:457
|
441 |
+
msgid "Only other media"
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: class/view/shortpixel_view.php:457
|
445 |
+
msgid "Process only the other media, skipping the Media Library"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: class/view/shortpixel_view.php:461
|
449 |
+
msgid "Manage custom folders"
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: class/view/shortpixel_view.php:469
|
453 |
+
msgid "Processed Images and PDFs:"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: class/view/shortpixel_view.php:470
|
457 |
+
msgid "Processed Thumbnails:"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: class/view/shortpixel_view.php:471
|
461 |
+
msgid "Total files processed:"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: class/view/shortpixel_view.php:472
|
465 |
+
#, php-format
|
466 |
+
msgid "Minus files with <5% optimization (free):"
|
467 |
+
msgstr ""
|
468 |
+
|
469 |
+
#: class/view/shortpixel_view.php:473
|
470 |
+
msgid "Used quota:"
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: class/view/shortpixel_view.php:475
|
474 |
+
msgid "Average optimization:"
|
475 |
+
msgstr ""
|
476 |
+
|
477 |
+
#: class/view/shortpixel_view.php:476
|
478 |
+
msgid "Saved space:"
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#. wp_enqueue_script('jquery.idTabs.js', plugins_url('/js/jquery.idTabs.js',__FILE__) );
|
482 |
+
#: class/view/shortpixel_view.php:502
|
483 |
+
msgid "ShortPixel Plugin Settings"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: class/view/shortpixel_view.php:505
|
487 |
+
msgid "Upgrade now"
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
+
#: class/view/shortpixel_view.php:507
|
491 |
+
msgid "Support"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: class/view/shortpixel_view.php:525
|
495 |
+
msgid "General"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: class/view/shortpixel_view.php:530
|
499 |
+
msgid "Advanced"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#. the span is a trick to keep the sections ordered as nth-child in styles: 1,2,3,4 (otherwise the third section would be nth-child(2) too, because of the form)
|
503 |
+
#: class/view/shortpixel_view.php:537
|
504 |
+
msgid "Statistics"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: class/view/shortpixel_view.php:545
|
508 |
+
msgid "WP Resources"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: class/view/shortpixel_view.php:546
|
512 |
+
msgid "Please reload"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: class/view/shortpixel_view.php:579
|
516 |
+
#, php-format
|
517 |
+
msgid ""
|
518 |
+
"New images uploaded to the Media Library will be optimized automatically.<br/"
|
519 |
+
">If you have existing images you would like to optimize, you can use the <a "
|
520 |
+
"href=\"%supload.php?page=wp-short-pixel-bulk\">Bulk Optimization Tool</a>."
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: class/view/shortpixel_view.php:582
|
524 |
+
msgid "Step 1:"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: class/view/shortpixel_view.php:583
|
528 |
+
#, php-format
|
529 |
+
msgid ""
|
530 |
+
"If you don't have an API Key, <a href=\"https://shortpixel.com/wp-apikey%s\" "
|
531 |
+
"target=\"_blank\">sign up here.</a> It's free and it only takes one minute, "
|
532 |
+
"we promise!"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: class/view/shortpixel_view.php:584
|
536 |
+
msgid "Step 2:"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: class/view/shortpixel_view.php:585
|
540 |
+
msgid "Please enter here the API Key you received by email and press Validate."
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: class/view/shortpixel_view.php:591
|
544 |
+
msgid "API Key:"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: class/view/shortpixel_view.php:601
|
548 |
+
msgid "Multisite API Key"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: class/view/shortpixel_view.php:604
|
552 |
+
msgid "Validate the provided API key"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: class/view/shortpixel_view.php:605
|
556 |
+
msgid "Validate"
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: class/view/shortpixel_view.php:607
|
560 |
+
msgid "Key defined in wp-config.php."
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#. if invalid key we display the link to the API Key
|
564 |
+
#. if valid key we display the rest of the options
|
565 |
+
#: class/view/shortpixel_view.php:618
|
566 |
+
msgid "Compression type:"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: class/view/shortpixel_view.php:622
|
570 |
+
msgid "Lossy (recommended)"
|
571 |
+
msgstr ""
|
572 |
+
|
573 |
+
#: class/view/shortpixel_view.php:623
|
574 |
+
msgid ""
|
575 |
+
"<b>Lossy compression: </b>lossy has a better compression rate than lossless "
|
576 |
+
"compression.</br>The resulting image is identical with the original to the "
|
577 |
+
"human eye. You can run a test for free "
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: class/view/shortpixel_view.php:624 wp-shortpixel.php:1458
|
581 |
+
msgid "here"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: class/view/shortpixel_view.php:626 class/view/shortpixel-list-table.php:111
|
585 |
+
msgid "Lossless"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: class/view/shortpixel_view.php:628
|
589 |
+
msgid ""
|
590 |
+
"<b>Lossless compression: </b> the shrunk image will be identical with the "
|
591 |
+
"original and smaller in size.</br>In some rare cases you will need to use \n"
|
592 |
+
" this type of compression. Some technical drawings or "
|
593 |
+
"images from vector graphics are possible situations."
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: class/view/shortpixel_view.php:638
|
597 |
+
msgid "Also include thumbnails:"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: class/view/shortpixel_view.php:640
|
601 |
+
msgid "Apply compression also to <strong>image thumbnails.</strong> "
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: class/view/shortpixel_view.php:641
|
605 |
+
msgid "thumbnails to optimize"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: class/view/shortpixel_view.php:643
|
609 |
+
msgid ""
|
610 |
+
"It is highly recommended that you optimize the thumbnails as they are "
|
611 |
+
"usually the images most viewed by end users and can generate most traffic."
|
612 |
+
"<br>Please note that thumbnails count up to your total quota."
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: class/view/shortpixel_view.php:648
|
616 |
+
msgid "Image backup"
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: class/view/shortpixel_view.php:650
|
620 |
+
msgid "Save and keep a backup of your original images in a separate folder."
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: class/view/shortpixel_view.php:651
|
624 |
+
msgid ""
|
625 |
+
"You <strong>need to have backup active</strong> in order to be able to "
|
626 |
+
"restore images to originals or to convert from Lossy to Lossless and back."
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: class/view/shortpixel_view.php:655
|
630 |
+
msgid "CMYK to RGB conversion"
|
631 |
+
msgstr ""
|
632 |
+
|
633 |
+
#: class/view/shortpixel_view.php:657
|
634 |
+
msgid "Adjust your images for computer and mobile screen display."
|
635 |
+
msgstr ""
|
636 |
+
|
637 |
+
#: class/view/shortpixel_view.php:658
|
638 |
+
msgid ""
|
639 |
+
"Images for the web only need RGB format and converting them from CMYK to RGB "
|
640 |
+
"makes them smaller."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: class/view/shortpixel_view.php:662
|
644 |
+
msgid "Remove EXIF"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: class/view/shortpixel_view.php:664
|
648 |
+
msgid "Remove the EXIF tag of the image (recommended)."
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: class/view/shortpixel_view.php:665
|
652 |
+
msgid ""
|
653 |
+
"EXIF is a set of various pieces of information that are automatically "
|
654 |
+
"embedded into the image upon creation. This can include GPS position, camera "
|
655 |
+
"manufacturer, date and time, etc. \n"
|
656 |
+
" Unless you really need that data to be "
|
657 |
+
"preserved, we recommend removing it as it can lead to <a href=\"http://blog."
|
658 |
+
"shortpixel.com/how-much-smaller-can-be-images-without-exif-icc\" target="
|
659 |
+
"\"_blank\">better compression rates</a>."
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: class/view/shortpixel_view.php:670
|
663 |
+
msgid "Resize large images"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: class/view/shortpixel_view.php:673
|
667 |
+
msgid "to maximum"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: class/view/shortpixel_view.php:675
|
671 |
+
msgid "pixels wide ×"
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: class/view/shortpixel_view.php:677
|
675 |
+
msgid ""
|
676 |
+
"pixels high (original aspect ratio is preserved and image is not cropped)"
|
677 |
+
msgstr ""
|
678 |
+
|
679 |
+
#: class/view/shortpixel_view.php:679
|
680 |
+
#, php-format
|
681 |
+
msgid ""
|
682 |
+
"Recommended for large photos, like the ones taken with your phone. Saved "
|
683 |
+
"space can go up to 80% or more after resizing."
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: class/view/shortpixel_view.php:683
|
687 |
+
msgid ""
|
688 |
+
"Sizes will be greater or equal to the corresponding value. For example, if "
|
689 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
690 |
+
"resized to 1000x1500px while an image of 3000x2000px will be resized to "
|
691 |
+
"1800x1200px"
|
692 |
+
msgstr ""
|
693 |
+
|
694 |
+
#: class/view/shortpixel_view.php:685
|
695 |
+
msgid ""
|
696 |
+
"Sizes will be smaller or equal to the corresponding value. For example, if "
|
697 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
698 |
+
"resized to 800x1200px while an image of 3000x2000px will be resized to "
|
699 |
+
"1000x667px"
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: class/view/shortpixel_view.php:692 class/view/shortpixel_view.php:847
|
703 |
+
msgid "Save Changes"
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
707 |
+
msgid "Save and go to the Bulk Processing page"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
711 |
+
#: wp-shortpixel.php:1517 wp-shortpixel.php:1518
|
712 |
+
msgid "Save and Go to Bulk Process"
|
713 |
+
msgstr ""
|
714 |
+
|
715 |
+
#: class/view/shortpixel_view.php:716
|
716 |
+
msgid "Please enter your API key in the General tab first."
|
717 |
+
msgstr ""
|
718 |
+
|
719 |
+
#. if valid key we display the rest of the options
|
720 |
+
#: class/view/shortpixel_view.php:721
|
721 |
+
msgid "Additional media folders"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: class/view/shortpixel_view.php:726
|
725 |
+
msgid "Folder name"
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: class/view/shortpixel_view.php:727
|
729 |
+
msgid "Type &<br>Status"
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: class/view/shortpixel_view.php:728
|
733 |
+
msgid "Files"
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: class/view/shortpixel_view.php:729
|
737 |
+
msgid "Last change"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: class/view/shortpixel_view.php:738 class/view/shortpixel_view.php:743
|
741 |
+
#: class/view/shortpixel_view.php:745 class/view/shortpixel_view.php:747
|
742 |
+
msgid "Empty"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: class/view/shortpixel_view.php:740 class/view/shortpixel_view.php:745
|
746 |
+
#: class/view/shortpixel_view.php:747
|
747 |
+
msgid "Optimized"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
751 |
+
#: class/view/shortpixel-list-table.php:97
|
752 |
+
msgid "Pending"
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
756 |
+
#: class/view/shortpixel-list-table.php:99
|
757 |
+
msgid "Waiting"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: class/view/shortpixel_view.php:745
|
761 |
+
msgid "Stop monitoring"
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: class/view/shortpixel_view.php:745
|
765 |
+
msgid "Stop optimizing"
|
766 |
+
msgstr ""
|
767 |
+
|
768 |
+
#: class/view/shortpixel_view.php:749
|
769 |
+
msgid "Failed"
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: class/view/shortpixel_view.php:771
|
773 |
+
msgid ""
|
774 |
+
"Full folder refresh, check each file of the folder if it changed since it "
|
775 |
+
"was optimized. Might take up to 1 min. for big folders."
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: class/view/shortpixel_view.php:772
|
779 |
+
msgid "Refresh"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: class/view/shortpixel_view.php:783
|
783 |
+
msgid "Select the images folder on your server."
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: class/view/shortpixel_view.php:784
|
787 |
+
msgid "Select ..."
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: class/view/shortpixel_view.php:786
|
791 |
+
msgid "Add Folder"
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: class/view/shortpixel_view.php:788
|
795 |
+
msgid ""
|
796 |
+
"Use the Select... button to select site folders. ShortPixel will optimize "
|
797 |
+
"images and PDFs from the specified folders and their subfolders. The "
|
798 |
+
"optimization status for each image or PDF in these folders can be seen in "
|
799 |
+
"the <a href=\"upload.php?page=wp-short-pixel-custom\">Other Media list</a>, "
|
800 |
+
"under the Media menu."
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: class/view/shortpixel_view.php:792
|
804 |
+
msgid "Select the images folder"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: class/view/shortpixel_view.php:794
|
808 |
+
msgid "Cancel"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: class/view/shortpixel_view.php:795
|
812 |
+
msgid "Select"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: class/view/shortpixel_view.php:807
|
816 |
+
msgid "Optimize NextGen galleries"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: class/view/shortpixel_view.php:809
|
820 |
+
msgid "Optimize NextGen galleries."
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: class/view/shortpixel_view.php:811
|
824 |
+
msgid ""
|
825 |
+
"Check this to add all your current NextGen galleries to the custom folders "
|
826 |
+
"list and to also have all the future NextGen galleries and images optimized "
|
827 |
+
"automatically by ShortPixel."
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: class/view/shortpixel_view.php:817
|
831 |
+
msgid "WebP versions"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: class/view/shortpixel_view.php:819
|
835 |
+
msgid ""
|
836 |
+
"Create also <a href=\"http://blog.shortpixel.com/how-webp-images-can-speed-"
|
837 |
+
"up-your-site/\" target=\"_blank\">WebP versions</a> of the images "
|
838 |
+
"<strong>for free</strong>."
|
839 |
+
msgstr ""
|
840 |
+
|
841 |
+
#: class/view/shortpixel_view.php:821
|
842 |
+
#, php-format
|
843 |
+
msgid ""
|
844 |
+
"WebP images can be up to three times smaller than PNGs and 25% smaller than "
|
845 |
+
"JPGs. Choosing this option <strong>does not use up additional credits</"
|
846 |
+
"strong>."
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: class/view/shortpixel_view.php:826
|
850 |
+
msgid "HTTP AUTH credentials"
|
851 |
+
msgstr ""
|
852 |
+
|
853 |
+
#: class/view/shortpixel_view.php:828
|
854 |
+
msgid "User"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: class/view/shortpixel_view.php:829
|
858 |
+
msgid "Password"
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: class/view/shortpixel_view.php:831
|
862 |
+
msgid ""
|
863 |
+
"Only fill in these fields if your site (front-end) is not publicly "
|
864 |
+
"accessible and visitors need a user/pass to connect to it. If you don't know "
|
865 |
+
"what is this then just <strong>leave the fields empty</strong>."
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: class/view/shortpixel_view.php:836
|
869 |
+
msgid "Process in front-end"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: class/view/shortpixel_view.php:838
|
873 |
+
msgid "Automatically optimize images added by users in front end."
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: class/view/shortpixel_view.php:840
|
877 |
+
msgid ""
|
878 |
+
"Check this if you have users that add images or PDF documents from custom "
|
879 |
+
"forms in the front-end. This could increase the load on your server if you "
|
880 |
+
"have a lot of users simultaneously connected."
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: class/view/shortpixel_view.php:860
|
884 |
+
msgid "Your ShortPixel Stats"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: class/view/shortpixel_view.php:864
|
888 |
+
msgid "Average compression of your files:"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: class/view/shortpixel_view.php:868
|
892 |
+
msgid "Saved disk space by ShortPixel"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: class/view/shortpixel_view.php:872
|
896 |
+
msgid "Bandwith* saved with ShortPixel:"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: class/view/shortpixel_view.php:878
|
900 |
+
msgid "* Saved bandwidth is calculated at 10,000 impressions/image"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: class/view/shortpixel_view.php:880
|
904 |
+
msgid "Your ShortPixel Plan"
|
905 |
+
msgstr ""
|
906 |
+
|
907 |
+
#: class/view/shortpixel_view.php:884
|
908 |
+
msgid "Your ShortPixel plan"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: class/view/shortpixel_view.php:886
|
912 |
+
#, php-format
|
913 |
+
msgid ""
|
914 |
+
"%s/month, renews in %s days, on %s ( <a href=\"https://shortpixel.com/login/"
|
915 |
+
"%s\" target=\"_blank\">Need More? See the options available</a> )"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: class/view/shortpixel_view.php:889
|
919 |
+
#, php-format
|
920 |
+
msgid ""
|
921 |
+
"<a href=\"https://shortpixel.com/login/%s/tell-a-friend\" target=\"_blank"
|
922 |
+
"\">Join our friend referral system</a> to win more credits. For each user "
|
923 |
+
"that joins, you receive +100 images credits/month."
|
924 |
+
msgstr ""
|
925 |
+
|
926 |
+
#: class/view/shortpixel_view.php:894
|
927 |
+
msgid "One time credits:"
|
928 |
+
msgstr ""
|
929 |
+
|
930 |
+
#: class/view/shortpixel_view.php:898
|
931 |
+
msgid "Number of images processed this month:"
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: class/view/shortpixel_view.php:900
|
935 |
+
msgid "see report"
|
936 |
+
msgstr ""
|
937 |
+
|
938 |
+
#: class/view/shortpixel_view.php:905
|
939 |
+
msgid "Remaining** images in your plan:"
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: class/view/shortpixel_view.php:906
|
943 |
+
msgid "images"
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: class/view/shortpixel_view.php:912
|
947 |
+
#, php-format
|
948 |
+
msgid ""
|
949 |
+
"** Increase your image quota by <a href=\"https://shortpixel.com/login/%s\" "
|
950 |
+
"target=\"_blank\">upgrading your ShortPixel plan.</a>"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: class/view/shortpixel_view.php:919
|
954 |
+
msgid "Total number of processed files:"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: class/view/shortpixel_view.php:924
|
958 |
+
msgid ""
|
959 |
+
"Original images are stored in a backup folder. Your backup folder size is "
|
960 |
+
"now:"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: class/view/shortpixel_view.php:928
|
964 |
+
msgid "Empty backups"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#. not a file that we can process
|
968 |
+
#: class/view/shortpixel_view.php:945 wp-shortpixel.php:348
|
969 |
+
#: wp-shortpixel.php:374 wp-shortpixel.php:1813
|
970 |
+
msgid "Optimization N/A"
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: class/view/shortpixel_view.php:948
|
974 |
+
msgid "Image does not exist."
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#. multisite key - need to be validated on each site but it's not invalid
|
978 |
+
#: class/view/shortpixel_view.php:952
|
979 |
+
msgid ""
|
980 |
+
"Please <a href=\"options-general.php?page=wp-shortpixel\">go to Settings</a> "
|
981 |
+
"to validate the API Key."
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: class/view/shortpixel_view.php:954
|
985 |
+
msgid ""
|
986 |
+
"Invalid API Key. <a href=\"options-general.php?page=wp-shortpixel\">Check "
|
987 |
+
"your Settings</a>"
|
988 |
+
msgstr ""
|
989 |
+
|
990 |
+
#: class/view/shortpixel_view.php:963
|
991 |
+
msgid "Optimize now"
|
992 |
+
msgstr ""
|
993 |
+
|
994 |
+
#: class/view/shortpixel_view.php:973 class/view/shortpixel-list-table.php:55
|
995 |
+
#: wp-shortpixel.php:282
|
996 |
+
msgid "Retry"
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: class/view/shortpixel_view.php:990 class/view/shortpixel-list-table.php:93
|
1000 |
+
#: wp-shortpixel.php:273
|
1001 |
+
msgid "Reduced by"
|
1002 |
+
msgstr ""
|
1003 |
+
|
1004 |
+
#: class/view/shortpixel_view.php:993 class/view/shortpixel-list-table.php:92
|
1005 |
+
#: class/view/shortpixel-list-table.php:94 wp-shortpixel.php:274
|
1006 |
+
msgid "Bonus processing"
|
1007 |
+
msgstr ""
|
1008 |
+
|
1009 |
+
#: class/view/shortpixel_view.php:996
|
1010 |
+
#, php-format
|
1011 |
+
msgid "+%s of %s thumbnails optimized"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: class/view/shortpixel_view.php:997
|
1015 |
+
#, php-format
|
1016 |
+
msgid "+%s thumbnails optimized"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: class/view/shortpixel_view.php:1005
|
1020 |
+
#, php-format
|
1021 |
+
msgid "Optimize %s thumbnails"
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: class/view/shortpixel_view.php:1012
|
1025 |
+
msgid "Reoptimize from the backed-up image"
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: class/view/shortpixel_view.php:1013
|
1029 |
+
msgid "Re-optimize"
|
1030 |
+
msgstr ""
|
1031 |
+
|
1032 |
+
#: class/view/shortpixel_view.php:1017 wp-shortpixel.php:278
|
1033 |
+
msgid "Restore backup"
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: class/view/shortpixel_view.php:1030 wp-shortpixel.php:280
|
1037 |
+
msgid "Extend Quota"
|
1038 |
+
msgstr ""
|
1039 |
+
|
1040 |
+
#: class/view/shortpixel_view.php:1033 wp-shortpixel.php:281
|
1041 |
+
msgid "Check Quota"
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: class/view/shortpixel-list-table.php:15
|
1045 |
+
msgid "Image"
|
1046 |
+
msgstr ""
|
1047 |
+
|
1048 |
+
#. singular name of the listed records
|
1049 |
+
#: class/view/shortpixel-list-table.php:16
|
1050 |
+
msgid "Images"
|
1051 |
+
msgstr ""
|
1052 |
+
|
1053 |
+
#. pe viitor. $columns['cb'] = '<input type="checkbox" />';
|
1054 |
+
#: class/view/shortpixel-list-table.php:29
|
1055 |
+
msgid "Filename"
|
1056 |
+
msgstr ""
|
1057 |
+
|
1058 |
+
#: class/view/shortpixel-list-table.php:30
|
1059 |
+
msgid "Folder"
|
1060 |
+
msgstr ""
|
1061 |
+
|
1062 |
+
#: class/view/shortpixel-list-table.php:31
|
1063 |
+
msgid "Type"
|
1064 |
+
msgstr ""
|
1065 |
+
|
1066 |
+
#: class/view/shortpixel-list-table.php:32
|
1067 |
+
msgid "Status"
|
1068 |
+
msgstr ""
|
1069 |
+
|
1070 |
+
#: class/view/shortpixel-list-table.php:33
|
1071 |
+
msgid "Options"
|
1072 |
+
msgstr ""
|
1073 |
+
|
1074 |
+
#: class/view/shortpixel-list-table.php:52
|
1075 |
+
msgid "Optimize"
|
1076 |
+
msgstr ""
|
1077 |
+
|
1078 |
+
#: class/view/shortpixel-list-table.php:58
|
1079 |
+
msgid "Restore"
|
1080 |
+
msgstr ""
|
1081 |
+
|
1082 |
+
#: class/view/shortpixel-list-table.php:61
|
1083 |
+
msgid "Re-optimize lossless"
|
1084 |
+
msgstr ""
|
1085 |
+
|
1086 |
+
#: class/view/shortpixel-list-table.php:64
|
1087 |
+
msgid "Re-optimize lossy"
|
1088 |
+
msgstr ""
|
1089 |
+
|
1090 |
+
#: class/view/shortpixel-list-table.php:67
|
1091 |
+
msgid "Check quota"
|
1092 |
+
msgstr ""
|
1093 |
+
|
1094 |
+
#: class/view/shortpixel-list-table.php:68
|
1095 |
+
msgid "View"
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: class/view/shortpixel-list-table.php:89
|
1099 |
+
msgid "Restored"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: class/view/shortpixel-list-table.php:103
|
1103 |
+
msgid "code"
|
1104 |
+
msgstr ""
|
1105 |
+
|
1106 |
+
#: class/view/shortpixel-list-table.php:111
|
1107 |
+
msgid "Lossy"
|
1108 |
+
msgstr ""
|
1109 |
+
|
1110 |
+
#: class/view/shortpixel-list-table.php:112
|
1111 |
+
msgid "Keep EXIF"
|
1112 |
+
msgstr ""
|
1113 |
+
|
1114 |
+
#: class/view/shortpixel-list-table.php:113
|
1115 |
+
msgid "Preserve CMYK"
|
1116 |
+
msgstr ""
|
1117 |
+
|
1118 |
+
#: class/view/shortpixel-list-table.php:122
|
1119 |
+
msgid ""
|
1120 |
+
"No images avaliable. Go to <a href=\"options-general.php?page=wp-"
|
1121 |
+
"shortpixel#adv-settings\">Advanced Settings</a> to configure additional "
|
1122 |
+
"folders to be optimized."
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: class/view/shortpixel-list-table.php:255
|
1126 |
+
msgid "Show more details"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: class/db/shortpixel-meta-facade.php:165
|
1130 |
+
msgid "Error"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: class/db/shortpixel-custom-meta-dao.php:187
|
1134 |
+
msgid "Folder already added."
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: class/db/shortpixel-custom-meta-dao.php:191
|
1138 |
+
#, php-format
|
1139 |
+
msgid ""
|
1140 |
+
"The %s folder cannot be processed as it's not inside the root path of your "
|
1141 |
+
"website."
|
1142 |
+
msgstr ""
|
1143 |
+
|
1144 |
+
#: class/db/shortpixel-custom-meta-dao.php:200
|
1145 |
+
msgid ""
|
1146 |
+
"This folder contains Media Library images. To optimize Media Library images "
|
1147 |
+
"please go to <a href=\"upload.php?mode=list\">Media Library list view</a> or "
|
1148 |
+
"to <a href=\"upload.php?page=wp-short-pixel-bulk\">SortPixel Bulk page</a>."
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: class/db/shortpixel-custom-meta-dao.php:204
|
1152 |
+
msgid "Inserted folder doesn't have an ID!"
|
1153 |
+
msgstr ""
|
1154 |
+
|
1155 |
+
#: class/db/shortpixel-custom-meta-dao.php:224
|
1156 |
+
msgid ""
|
1157 |
+
"This folder contains the ShortPixel Backups. Please select a different "
|
1158 |
+
"folder."
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#. var_dump($allFolders);
|
1162 |
+
#: class/db/shortpixel-custom-meta-dao.php:247
|
1163 |
+
#, php-format
|
1164 |
+
msgid "Folder already included in %s."
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: class/db/shortpixel-custom-meta-dao.php:250
|
1168 |
+
msgid "Folder does not exist."
|
1169 |
+
msgstr ""
|
1170 |
+
|
1171 |
+
#: class/model/shortpixel-folder.php:76 class/model/shortpixel-folder.php:149
|
1172 |
+
#, php-format
|
1173 |
+
msgid "Folder %s is not writeable. Please check permissions and try again."
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: wp-shortpixel.php:160
|
1177 |
+
msgid "ShortPixel Settings"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#. translators: title and menu name for the Other media page
|
1181 |
+
#: wp-shortpixel.php:166
|
1182 |
+
msgid "Other Media Optimized by ShortPixel"
|
1183 |
+
msgstr ""
|
1184 |
+
|
1185 |
+
#: wp-shortpixel.php:166
|
1186 |
+
msgid "Other Media"
|
1187 |
+
msgstr ""
|
1188 |
+
|
1189 |
+
#. translators: title and menu name for the Bulk Processing page
|
1190 |
+
#: wp-shortpixel.php:169
|
1191 |
+
msgid "ShortPixel Bulk Process"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: wp-shortpixel.php:169
|
1195 |
+
msgid "Bulk ShortPixel"
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: wp-shortpixel.php:216
|
1199 |
+
msgid "Media alert dismissed"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: wp-shortpixel.php:269
|
1203 |
+
msgid "Optimize with ShortPixel"
|
1204 |
+
msgstr ""
|
1205 |
+
|
1206 |
+
#: wp-shortpixel.php:270
|
1207 |
+
msgid ""
|
1208 |
+
"In order to access the ShortPixel Optimization actions and info, please "
|
1209 |
+
"change to {0}List View{1}List View{2}Dismiss{3}"
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: wp-shortpixel.php:271
|
1213 |
+
msgid ""
|
1214 |
+
"This type of optimization will apply to new uploaded images.\\nImages that "
|
1215 |
+
"were already processed will not be re-optimized unless you restart the bulk "
|
1216 |
+
"process."
|
1217 |
+
msgstr ""
|
1218 |
+
|
1219 |
+
#: wp-shortpixel.php:272
|
1220 |
+
msgid "Are you sure you want to stop optimizing the folder {0}?"
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: wp-shortpixel.php:275
|
1224 |
+
msgid "+{0} thumbnails optimized"
|
1225 |
+
msgstr ""
|
1226 |
+
|
1227 |
+
#: wp-shortpixel.php:276
|
1228 |
+
msgid "Optimize {0} thumbnails"
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: wp-shortpixel.php:277
|
1232 |
+
msgid "Reoptimize {0}"
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: wp-shortpixel.php:279
|
1236 |
+
msgid "Get API Key"
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#: wp-shortpixel.php:283
|
1240 |
+
msgid "This content is not processable."
|
1241 |
+
msgstr ""
|
1242 |
+
|
1243 |
+
#: wp-shortpixel.php:284
|
1244 |
+
msgid "Image waiting to optimize thumbnails"
|
1245 |
+
msgstr ""
|
1246 |
+
|
1247 |
+
#. translators: toolbar icon tooltip
|
1248 |
+
#: wp-shortpixel.php:297
|
1249 |
+
msgid "ShortPixel optimizing..."
|
1250 |
+
msgstr ""
|
1251 |
+
|
1252 |
+
#. translators: toolbar icon tooltip
|
1253 |
+
#: wp-shortpixel.php:308
|
1254 |
+
msgid "ShortPixel quota exceeded. Click for details."
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: wp-shortpixel.php:564
|
1258 |
+
msgid "Missing API Key"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#. translators: console message Empty queue 1234 -> 1234
|
1262 |
+
#: wp-shortpixel.php:614
|
1263 |
+
msgid "Empty queue "
|
1264 |
+
msgstr ""
|
1265 |
+
|
1266 |
+
#: wp-shortpixel.php:740
|
1267 |
+
msgid " Retry limit reached. Skipping file ID "
|
1268 |
+
msgstr ""
|
1269 |
+
|
1270 |
+
#: wp-shortpixel.php:835
|
1271 |
+
msgid "NextGen image not found"
|
1272 |
+
msgstr ""
|
1273 |
+
|
1274 |
+
#: wp-shortpixel.php:1004 wp-shortpixel.php:1018
|
1275 |
+
msgid "Could not restore from backup: "
|
1276 |
+
msgstr ""
|
1277 |
+
|
1278 |
+
#: wp-shortpixel.php:1037
|
1279 |
+
msgid "No thumbnails to optimize for ID: "
|
1280 |
+
msgstr ""
|
1281 |
+
|
1282 |
+
#: wp-shortpixel.php:1037
|
1283 |
+
msgid "Please optimize image for ID: "
|
1284 |
+
msgstr ""
|
1285 |
+
|
1286 |
+
#: wp-shortpixel.php:1142
|
1287 |
+
msgid "Refresh custom folders content"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: wp-shortpixel.php:1143
|
1291 |
+
msgid "Refresh folders"
|
1292 |
+
msgstr ""
|
1293 |
+
|
1294 |
+
#: wp-shortpixel.php:1146
|
1295 |
+
msgid "Other Media optimized by ShortPixel"
|
1296 |
+
msgstr ""
|
1297 |
+
|
1298 |
+
#: wp-shortpixel.php:1322 wp-shortpixel.php:1413
|
1299 |
+
msgid "You do not have sufficient permissions to access this page."
|
1300 |
+
msgstr ""
|
1301 |
+
|
1302 |
+
#: wp-shortpixel.php:1451
|
1303 |
+
#, php-format
|
1304 |
+
msgid ""
|
1305 |
+
"The key you provided has %s characters. The API key should have 20 "
|
1306 |
+
"characters, letters and numbers only."
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: wp-shortpixel.php:1453
|
1310 |
+
msgid ""
|
1311 |
+
"Please check that the API key is the same as the one you received in your "
|
1312 |
+
"confirmation email."
|
1313 |
+
msgstr ""
|
1314 |
+
|
1315 |
+
#: wp-shortpixel.php:1455
|
1316 |
+
msgid "If this problem persists, please contact us at "
|
1317 |
+
msgstr ""
|
1318 |
+
|
1319 |
+
#: wp-shortpixel.php:1457
|
1320 |
+
msgid " or "
|
1321 |
+
msgstr ""
|
1322 |
+
|
1323 |
+
#: wp-shortpixel.php:1475
|
1324 |
+
msgid ""
|
1325 |
+
"API Key is valid but your site is not accessible from our servers. Please "
|
1326 |
+
"make sure that your server is accessible from the Internet before using the "
|
1327 |
+
"API or otherwise we won't be able to optimize them."
|
1328 |
+
msgstr ""
|
1329 |
+
|
1330 |
+
#: wp-shortpixel.php:1478
|
1331 |
+
msgid ""
|
1332 |
+
"API Key valid! <br>You seem to be running a multisite, please note that API "
|
1333 |
+
"Key can also be configured in wp-config.php like this:"
|
1334 |
+
msgstr ""
|
1335 |
+
|
1336 |
+
#: wp-shortpixel.php:1481
|
1337 |
+
msgid "API Key valid!"
|
1338 |
+
msgstr ""
|
1339 |
+
|
1340 |
+
#: wp-shortpixel.php:1488
|
1341 |
+
#, php-format
|
1342 |
+
msgid ""
|
1343 |
+
"There is something preventing us to create a new folder for backing up your "
|
1344 |
+
"original files.<BR>Please make sure that folder <b>%s</b> has the necessary "
|
1345 |
+
"write and read rights."
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: wp-shortpixel.php:1536
|
1349 |
+
msgid "Folder added successfully."
|
1350 |
+
msgstr ""
|
1351 |
+
|
1352 |
+
#: wp-shortpixel.php:1712
|
1353 |
+
msgid ""
|
1354 |
+
"API Key could not be validated due to a connectivity error.<BR>Your firewall "
|
1355 |
+
"may be blocking us. Please contact your hosting provider and ask them to "
|
1356 |
+
"allow connections from your site to IP 176.9.106.46.<BR> If you still cannot "
|
1357 |
+
"validate your API Key after this, please <a href=\"https://shortpixel.com/"
|
1358 |
+
"contact\" target=\"_blank\">contact us</a> and we will try to help. "
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: wp-shortpixel.php:1713 wp-shortpixel.php:1714
|
1362 |
+
msgid "Information unavailable. Please check your API key."
|
1363 |
+
msgstr ""
|
1364 |
+
|
1365 |
+
#: wp-shortpixel.php:1789
|
1366 |
+
msgid "PDF not processed."
|
1367 |
+
msgstr ""
|
1368 |
+
|
1369 |
+
#: wp-shortpixel.php:1820 wp-shortpixel.php:1822
|
1370 |
+
msgid "Cannot write optimized file"
|
1371 |
+
msgstr ""
|
1372 |
+
|
1373 |
+
#: wp-shortpixel.php:1823
|
1374 |
+
msgid "Why?"
|
1375 |
+
msgstr ""
|
1376 |
+
|
1377 |
+
#: wp-shortpixel.php:1831
|
1378 |
+
msgid "Image does not exist"
|
1379 |
+
msgstr ""
|
1380 |
+
|
1381 |
+
#: wp-shortpixel.php:1835
|
1382 |
+
msgid "Image waiting to be processed."
|
1383 |
+
msgstr ""
|
1384 |
+
|
1385 |
+
#: wp-shortpixel.php:1853
|
1386 |
+
msgid "ShortPixel Statistics"
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: wp-shortpixel.php:1871
|
1390 |
+
msgid "ShortPixel Compression"
|
1391 |
+
msgstr ""
|
1392 |
+
|
1393 |
+
#: shortpixel_api.php:142
|
1394 |
+
msgid "The file(s) do not exist on disk."
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: shortpixel_api.php:157 shortpixel_api.php:168
|
1398 |
+
msgid "Timed out while processing."
|
1399 |
+
msgstr ""
|
1400 |
+
|
1401 |
+
#: shortpixel_api.php:161
|
1402 |
+
msgid "Image ID"
|
1403 |
+
msgstr ""
|
1404 |
+
|
1405 |
+
#: shortpixel_api.php:161
|
1406 |
+
msgid "Media ID"
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: shortpixel_api.php:162
|
1410 |
+
msgid "Skip this image, try the next one."
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#. send requests to API
|
1414 |
+
#. response <> 200 -> there was an error apparently?
|
1415 |
+
#: shortpixel_api.php:179 shortpixel_api.php:212 shortpixel_api.php:215
|
1416 |
+
msgid "There was an error and your request was not processed."
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: shortpixel_api.php:231
|
1420 |
+
msgid "Unecognized API response. Please contact support."
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: shortpixel_api.php:238
|
1424 |
+
msgid "Quota exceeded."
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: shortpixel_api.php:326
|
1428 |
+
msgid "Error downloading file"
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: shortpixel_api.php:334
|
1432 |
+
#, php-format
|
1433 |
+
msgid ""
|
1434 |
+
"Error downloading file - incorrect file size (downloaded: %s, correct: %s )"
|
1435 |
+
msgstr ""
|
1436 |
+
|
1437 |
+
#: shortpixel_api.php:337
|
1438 |
+
msgid "Unable to locate downloaded file"
|
1439 |
+
msgstr ""
|
1440 |
+
|
1441 |
+
#. array with final paths for these files
|
1442 |
+
#. creates backup folder if it doesn't exist
|
1443 |
+
#: shortpixel_api.php:399
|
1444 |
+
msgid "Backup folder does not exist and it cannot be created"
|
1445 |
+
msgstr ""
|
1446 |
+
|
1447 |
+
#. file couldn't be saved in backup folder
|
1448 |
+
#: shortpixel_api.php:419
|
1449 |
+
#, php-format
|
1450 |
+
msgid "Cannot save file <i>%s</i> in backup directory"
|
1451 |
+
msgstr ""
|
1452 |
+
|
1453 |
+
#. cannot write to the backup dir, return with an error
|
1454 |
+
#: shortpixel_api.php:428
|
1455 |
+
msgid "Cannot save file in backup directory"
|
1456 |
+
msgstr ""
|
1457 |
+
|
1458 |
+
#: shortpixel_api.php:491
|
1459 |
+
#, php-format
|
1460 |
+
msgid "Optimized version of %s file(s) couldn't be updated."
|
1461 |
+
msgstr ""
|
lang/shortpixel-ro_RO.mo
ADDED
Binary file
|
lang/shortpixel-ro_RO.po
ADDED
@@ -0,0 +1,1478 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
+
#, fuzzy
|
7 |
+
msgid ""
|
8 |
+
msgstr ""
|
9 |
+
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
+
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2016-11-30 16:23+0100\n"
|
12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
+
"Language: \n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
19 |
+
|
20 |
+
#: class/view/shortpixel_view.php:23 class/view/shortpixel_view.php:417
|
21 |
+
msgid "Average reduction"
|
22 |
+
msgstr "Reducere medie"
|
23 |
+
|
24 |
+
#. translators: header of the alert box
|
25 |
+
#: class/view/shortpixel_view.php:33
|
26 |
+
msgid "Quota Exceeded"
|
27 |
+
msgstr "Credite consumate"
|
28 |
+
|
29 |
+
#. translators: body of the alert box
|
30 |
+
#: class/view/shortpixel_view.php:35
|
31 |
+
#, php-format
|
32 |
+
msgid ""
|
33 |
+
"The plugin has optimized <strong>%s images</strong> and stopped because it "
|
34 |
+
"reached the available quota limit."
|
35 |
+
msgstr "Modulul a optimizat <strong>%s imagini</strong> și s-a oprit pentru că "
|
36 |
+
"a atins limita creditelor disponibile"
|
37 |
+
|
38 |
+
#: class/view/shortpixel_view.php:39
|
39 |
+
#, php-format
|
40 |
+
msgid ""
|
41 |
+
"<strong>%s images and %s thumbnails</strong> are not yet optimized by "
|
42 |
+
"ShortPixel."
|
43 |
+
msgstr "<strong>%s imagini și %s miniaturi</strong> nu sunt inca optimizate de "
|
44 |
+
"ShortPixel."
|
45 |
+
|
46 |
+
#: class/view/shortpixel_view.php:44
|
47 |
+
msgid "Upgrade"
|
48 |
+
msgstr "Actualizează"
|
49 |
+
|
50 |
+
#: class/view/shortpixel_view.php:45
|
51 |
+
msgid "Confirm New Quota"
|
52 |
+
msgstr "Confirmă Credite Noi"
|
53 |
+
|
54 |
+
#: class/view/shortpixel_view.php:47
|
55 |
+
msgid "Get more image credits by referring ShortPixel to your friends!"
|
56 |
+
msgstr "Obține mai multe credite recomandând ShortPixel prietenilor tăi!"
|
57 |
+
|
58 |
+
#: class/view/shortpixel_view.php:49
|
59 |
+
msgid "Check your account"
|
60 |
+
msgstr "Vezi în contul tău"
|
61 |
+
|
62 |
+
#: class/view/shortpixel_view.php:50
|
63 |
+
msgid ""
|
64 |
+
"for your unique referral link. For each user that joins, you will receive "
|
65 |
+
"+100 additional image credits/month."
|
66 |
+
msgstr "legatura ta personalizată pentru recomandare. Pentru fiecare utilizator nou vei primi"
|
67 |
+
"+100 credite adiționale/lună"
|
68 |
+
|
69 |
+
#: class/view/shortpixel_view.php:58
|
70 |
+
msgid ""
|
71 |
+
"In order to start the optimization process, you need to validate your API "
|
72 |
+
"Key in the <a href=\"options-general.php?page=wp-shortpixel\">ShortPixel "
|
73 |
+
"Settings</a> page in your WordPress Admin."
|
74 |
+
msgstr "Pentru a putea începe să optimizezi, e necesar să validezi Cheia API"
|
75 |
+
"in <a href=\"options-general.php?page=wp-shortpixel\">Configurările "
|
76 |
+
"ShortPixel</a> din interfața de administrare WordPress."
|
77 |
+
|
78 |
+
#: class/view/shortpixel_view.php:61
|
79 |
+
msgid ""
|
80 |
+
"If you don’t have an API Key, you can get one delivered to your inbox, for "
|
81 |
+
"free."
|
82 |
+
msgstr "Dacă n-ai o Cheie API, poți primi una prin e-mail, gratis."
|
83 |
+
|
84 |
+
#: class/view/shortpixel_view.php:62
|
85 |
+
msgid ""
|
86 |
+
"Please <a href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">sign "
|
87 |
+
"up to get your API key.</a>"
|
88 |
+
msgstr "Te rugăm <a href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">înscrie-te "
|
89 |
+
"pentru a obține Cheia API</a>"
|
90 |
+
|
91 |
+
#: class/view/shortpixel_view.php:70
|
92 |
+
msgid "Dismiss"
|
93 |
+
msgstr "Închide"
|
94 |
+
|
95 |
+
#: class/view/shortpixel_view.php:72
|
96 |
+
msgid "ShortPixel Optimization"
|
97 |
+
msgstr "Optimizare ShortPixel"
|
98 |
+
|
99 |
+
#: class/view/shortpixel_view.php:75
|
100 |
+
msgid ""
|
101 |
+
"Action needed. Please <a href='https://shortpixel.com/wp-apikey' "
|
102 |
+
"target='_blank'>get your API key</a> to activate your ShortPixel plugin."
|
103 |
+
msgstr ""
|
104 |
+
"Acționează acum! <a href='https://shortpixel.com/wp-apikey' "
|
105 |
+
"target='_blank'>Obține cheia ta API</a> pentru a activa modulul ShortPixel."
|
106 |
+
|
107 |
+
#: class/view/shortpixel_view.php:78
|
108 |
+
msgid ""
|
109 |
+
"Your image gallery is not optimized. It takes 2 minutes to <a href='https://"
|
110 |
+
"shortpixel.com/wp-apikey' target='_blank'>get your API key</a> and activate "
|
111 |
+
"your ShortPixel plugin."
|
112 |
+
msgstr ""
|
113 |
+
"Biblioteca ta media nu e optimizată. Durează mai puțin de 2 minute să <a href='https://"
|
114 |
+
"shortpixel.com/wp-apikey' target='_blank'>obții cheia ta API</a> și să activezi "
|
115 |
+
"modulul ShortPixel."
|
116 |
+
|
117 |
+
#: class/view/shortpixel_view.php:102
|
118 |
+
msgid "Your media library"
|
119 |
+
msgstr "Biblioteca ta media"
|
120 |
+
|
121 |
+
#: class/view/shortpixel_view.php:103
|
122 |
+
msgid "Original images"
|
123 |
+
msgstr "Imagini originale"
|
124 |
+
|
125 |
+
#: class/view/shortpixel_view.php:105
|
126 |
+
msgid "Smaller thumbnails"
|
127 |
+
msgstr "Miniaturi"
|
128 |
+
|
129 |
+
#: class/view/shortpixel_view.php:109 class/view/shortpixel_view.php:343
|
130 |
+
msgid "Include thumbnails"
|
131 |
+
msgstr "Include miniaturile"
|
132 |
+
|
133 |
+
#: class/view/shortpixel_view.php:112
|
134 |
+
msgid "Total images"
|
135 |
+
msgstr "Imagini în total"
|
136 |
+
|
137 |
+
#: class/view/shortpixel_view.php:114
|
138 |
+
msgid "Already optimized originals"
|
139 |
+
msgstr "Originale deja optimizate"
|
140 |
+
|
141 |
+
#: class/view/shortpixel_view.php:116
|
142 |
+
msgid "Already optimized thumbnails"
|
143 |
+
msgstr "Miniaturi deja optimizate"
|
144 |
+
|
145 |
+
#: class/view/shortpixel_view.php:119 class/view/shortpixel_view.php:124
|
146 |
+
msgid "Total to be optimized"
|
147 |
+
msgstr "În total de optimizat"
|
148 |
+
|
149 |
+
#: class/view/shortpixel_view.php:123
|
150 |
+
msgid "Your custom folders"
|
151 |
+
msgstr "Dosarele tale personalizate"
|
152 |
+
|
153 |
+
#: class/view/shortpixel_view.php:137
|
154 |
+
#, php-format
|
155 |
+
msgid ""
|
156 |
+
"<span class=\"label\">Start Optimizing</span><br> <span class=\"total\">%s</"
|
157 |
+
"span> images"
|
158 |
+
msgstr ""
|
159 |
+
"<span class=\"label\">Începe să Optimizezi</span><br> <span class=\"total\">%s</"
|
160 |
+
"span> imagini"
|
161 |
+
|
162 |
+
#: class/view/shortpixel_view.php:148
|
163 |
+
msgid ""
|
164 |
+
"Nothing to optimize! The images that you add to Media Gallery will be "
|
165 |
+
"automatically optimized after upload."
|
166 |
+
msgstr ""
|
167 |
+
"Nimic de optimizat! Imaginile pe care le adaugi in Bibiloteca Media vor fi "
|
168 |
+
"optimizate automat dupa încărcare."
|
169 |
+
|
170 |
+
#: class/view/shortpixel_view.php:157
|
171 |
+
msgid ""
|
172 |
+
"After you start the bulk process, in order for the optimization to run, you "
|
173 |
+
"must keep this page open and your computer running. If you close the page "
|
174 |
+
"for whatever reason, just turn back to it and the bulk process will resume."
|
175 |
+
msgstr ""
|
176 |
+
|
177 |
+
#: class/view/shortpixel_view.php:163
|
178 |
+
msgid "What are Thumbnails?"
|
179 |
+
msgstr ""
|
180 |
+
|
181 |
+
#: class/view/shortpixel_view.php:164
|
182 |
+
msgid ""
|
183 |
+
"Thumbnails are smaller images usually generated by your WP theme. Most "
|
184 |
+
"themes generate between 3 and 6 thumbnails for each Media Library image."
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: class/view/shortpixel_view.php:165
|
188 |
+
msgid ""
|
189 |
+
"The thumbnails also generate traffic on your website pages and they "
|
190 |
+
"influence your website's speed."
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
#: class/view/shortpixel_view.php:166
|
194 |
+
msgid ""
|
195 |
+
"It's highly recommended that you include thumbnails in the optimization as "
|
196 |
+
"well."
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
#: class/view/shortpixel_view.php:169
|
200 |
+
msgid "How does it work?"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: class/view/shortpixel_view.php:170
|
204 |
+
msgid ""
|
205 |
+
"The plugin processes images starting with the newest ones you uploaded in "
|
206 |
+
"your Media Library."
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#: class/view/shortpixel_view.php:171
|
210 |
+
msgid "You will be able to pause the process anytime."
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: class/view/shortpixel_view.php:172
|
214 |
+
msgid ""
|
215 |
+
"<p>Your original images will be stored in a separate back-up folder.</p>"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: class/view/shortpixel_view.php:173
|
219 |
+
msgid ""
|
220 |
+
"You can watch the images being processed live, right here, after you start "
|
221 |
+
"optimizing."
|
222 |
+
msgstr ""
|
223 |
+
|
224 |
+
#. bulk is paused
|
225 |
+
#: class/view/shortpixel_view.php:179
|
226 |
+
msgid "Please see below the optimization status so far:"
|
227 |
+
msgstr ""
|
228 |
+
|
229 |
+
#: class/view/shortpixel_view.php:182
|
230 |
+
#, php-format
|
231 |
+
msgid "%d images and %d thumbnails are not yet optimized by ShortPixel."
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: class/view/shortpixel_view.php:187
|
235 |
+
msgid ""
|
236 |
+
"You can continue optimizing your Media Gallery from where you left, by "
|
237 |
+
"clicking the Resume processing button. Already optimized images will not be "
|
238 |
+
"reprocessed."
|
239 |
+
msgstr ""
|
240 |
+
|
241 |
+
#: class/view/shortpixel_view.php:197
|
242 |
+
msgid "Congratulations!"
|
243 |
+
msgstr ""
|
244 |
+
|
245 |
+
#: class/view/shortpixel_view.php:198
|
246 |
+
msgid "Your media library has been successfully optimized!"
|
247 |
+
msgstr ""
|
248 |
+
|
249 |
+
#: class/view/shortpixel_view.php:199
|
250 |
+
msgid "Summary"
|
251 |
+
msgstr ""
|
252 |
+
|
253 |
+
#: class/view/shortpixel_view.php:205
|
254 |
+
msgid "Share your optimization results:"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
#: class/view/shortpixel_view.php:225
|
258 |
+
msgid "I just optimized my images by "
|
259 |
+
msgstr ""
|
260 |
+
|
261 |
+
#: class/view/shortpixel_view.php:227
|
262 |
+
msgid "I just optimized my images "
|
263 |
+
msgstr ""
|
264 |
+
|
265 |
+
#: class/view/shortpixel_view.php:230
|
266 |
+
msgid "with @ShortPixel, a great plugin for increasing #WordPress page speed:"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: class/view/shortpixel_view.php:231
|
270 |
+
msgid "Tweet"
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: class/view/shortpixel_view.php:257
|
274 |
+
msgid "Please rate us!"
|
275 |
+
msgstr ""
|
276 |
+
|
277 |
+
#: class/view/shortpixel_view.php:267
|
278 |
+
#, php-format
|
279 |
+
msgid ""
|
280 |
+
"Go to the ShortPixel <a href=\"%soptions-general.php?page=wp-shortpixel#stats"
|
281 |
+
"\">Stats</a> and see all your websites' optimized stats. Download your "
|
282 |
+
"detailed <a href=\"https://api.shortpixel.com/v2/report.php?key=%s"
|
283 |
+
"\">Optimization Report</a> to check your image optimization statistics for "
|
284 |
+
"the last 40 days."
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: class/view/shortpixel_view.php:275
|
288 |
+
msgid ""
|
289 |
+
"The following images could not be processed because of their limited write "
|
290 |
+
"rights. This usually happens if you have changed your hosting provider. "
|
291 |
+
"Please restart the optimization process after you granted write rights to "
|
292 |
+
"all the files below."
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: class/view/shortpixel_view.php:290 wp-shortpixel.php:1755
|
296 |
+
#: wp-shortpixel.php:1756 wp-shortpixel.php:1757 wp-shortpixel.php:1758
|
297 |
+
msgid " images"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: class/view/shortpixel_view.php:291
|
301 |
+
msgid " and"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: class/view/shortpixel_view.php:292
|
305 |
+
msgid " thumbnails"
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: class/view/shortpixel_view.php:293
|
309 |
+
msgid " are not yet optimized by ShortPixel."
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: class/view/shortpixel_view.php:295
|
313 |
+
msgid "Some have errors:"
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: class/view/shortpixel_view.php:318
|
317 |
+
#, php-format
|
318 |
+
msgid ""
|
319 |
+
"%s images and %s thumbnails were optimized <strong>%s</strong>. You can re-"
|
320 |
+
"optimize <strong>%s</strong> the ones that have backup."
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: class/view/shortpixel_view.php:323
|
324 |
+
#, php-format
|
325 |
+
msgid ""
|
326 |
+
"%s images were optimized <strong>%s</strong>. You can re-optimize <strong>"
|
327 |
+
"%s</strong> the ones that have backup. "
|
328 |
+
msgstr ""
|
329 |
+
|
330 |
+
#: class/view/shortpixel_view.php:326
|
331 |
+
msgid " thumbnails will be restored to originals."
|
332 |
+
msgstr ""
|
333 |
+
|
334 |
+
#: class/view/shortpixel_view.php:331
|
335 |
+
msgid ""
|
336 |
+
"Restart the optimization process for these images by clicking the button "
|
337 |
+
"below."
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: class/view/shortpixel_view.php:333
|
341 |
+
msgid ""
|
342 |
+
"Restart the optimization process for new images added to your library by "
|
343 |
+
"clicking the button below."
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: class/view/shortpixel_view.php:335
|
347 |
+
#, php-format
|
348 |
+
msgid "Already <strong>%s</strong> optimized images will not be reprocessed."
|
349 |
+
msgstr ""
|
350 |
+
|
351 |
+
#: class/view/shortpixel_view.php:337
|
352 |
+
msgid ""
|
353 |
+
"Please note that reoptimizing images as <strong>lossy/lossless</strong> may "
|
354 |
+
"use additional credits."
|
355 |
+
msgstr ""
|
356 |
+
|
357 |
+
#: class/view/shortpixel_view.php:338
|
358 |
+
msgid "More info"
|
359 |
+
msgstr ""
|
360 |
+
|
361 |
+
#: class/view/shortpixel_view.php:344
|
362 |
+
msgid "Restart Optimizing"
|
363 |
+
msgstr ""
|
364 |
+
|
365 |
+
#: class/view/shortpixel_view.php:355
|
366 |
+
msgid "Bulk Image Optimization by ShortPixel"
|
367 |
+
msgstr ""
|
368 |
+
|
369 |
+
#: class/view/shortpixel_view.php:361
|
370 |
+
msgid "Lengthy operation in progress:"
|
371 |
+
msgstr ""
|
372 |
+
|
373 |
+
#: class/view/shortpixel_view.php:362
|
374 |
+
msgid "Optimizing image"
|
375 |
+
msgstr ""
|
376 |
+
|
377 |
+
#: class/view/shortpixel_view.php:369
|
378 |
+
msgid "Error processing file:"
|
379 |
+
msgstr ""
|
380 |
+
|
381 |
+
#: class/view/shortpixel_view.php:375
|
382 |
+
msgid "Just optimized:"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: class/view/shortpixel_view.php:381
|
386 |
+
msgid "Original image"
|
387 |
+
msgstr ""
|
388 |
+
|
389 |
+
#: class/view/shortpixel_view.php:385
|
390 |
+
msgid "Optimized image"
|
391 |
+
msgstr ""
|
392 |
+
|
393 |
+
#. translators: percent follows
|
394 |
+
#: class/view/shortpixel_view.php:389
|
395 |
+
msgid "Optimized by:"
|
396 |
+
msgstr ""
|
397 |
+
|
398 |
+
#: class/view/shortpixel_view.php:411
|
399 |
+
msgid "Remaining credits"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: class/view/shortpixel_view.php:427 class/view/shortpixel_view.php:436
|
403 |
+
msgid "Media Library"
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: class/view/shortpixel_view.php:428
|
407 |
+
msgid "and"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: class/view/shortpixel_view.php:429
|
411 |
+
msgid "Custom folders"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: class/view/shortpixel_view.php:429
|
415 |
+
msgid "optimization in progress ..."
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: class/view/shortpixel_view.php:430
|
419 |
+
msgid "Bulk optimization has started."
|
420 |
+
msgstr ""
|
421 |
+
|
422 |
+
#: class/view/shortpixel_view.php:431
|
423 |
+
#, php-format
|
424 |
+
msgid ""
|
425 |
+
"This process will take some time, depending on the number of images in your "
|
426 |
+
"library. In the meantime, you can continue using \n"
|
427 |
+
" the admin as usual, <a href=\"%s\" target=\"_blank\">in "
|
428 |
+
"a different browser window or tab</a>.<br>\n"
|
429 |
+
" However, <strong>if you close this window, the bulk "
|
430 |
+
"processing will pause</strong> until you open the media gallery or the "
|
431 |
+
"ShortPixel bulk page again."
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: class/view/shortpixel_view.php:436
|
435 |
+
msgid "and Custom folders"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: class/view/shortpixel_view.php:436
|
439 |
+
msgid "optimization paused"
|
440 |
+
msgstr ""
|
441 |
+
|
442 |
+
#: class/view/shortpixel_view.php:437
|
443 |
+
msgid "Bulk processing is paused until you resume the optimization process."
|
444 |
+
msgstr ""
|
445 |
+
|
446 |
+
#. now we display the action buttons always when a type of bulk is running
|
447 |
+
#: class/view/shortpixel_view.php:454
|
448 |
+
msgid "Pause"
|
449 |
+
msgstr ""
|
450 |
+
|
451 |
+
#: class/view/shortpixel_view.php:454
|
452 |
+
msgid "Resume processing"
|
453 |
+
msgstr ""
|
454 |
+
|
455 |
+
#: class/view/shortpixel_view.php:457
|
456 |
+
msgid "Only other media"
|
457 |
+
msgstr ""
|
458 |
+
|
459 |
+
#: class/view/shortpixel_view.php:457
|
460 |
+
msgid "Process only the other media, skipping the Media Library"
|
461 |
+
msgstr ""
|
462 |
+
|
463 |
+
#: class/view/shortpixel_view.php:461
|
464 |
+
msgid "Manage custom folders"
|
465 |
+
msgstr ""
|
466 |
+
|
467 |
+
#: class/view/shortpixel_view.php:469
|
468 |
+
msgid "Processed Images and PDFs:"
|
469 |
+
msgstr ""
|
470 |
+
|
471 |
+
#: class/view/shortpixel_view.php:470
|
472 |
+
msgid "Processed Thumbnails:"
|
473 |
+
msgstr ""
|
474 |
+
|
475 |
+
#: class/view/shortpixel_view.php:471
|
476 |
+
msgid "Total files processed:"
|
477 |
+
msgstr ""
|
478 |
+
|
479 |
+
#: class/view/shortpixel_view.php:472
|
480 |
+
#, php-format
|
481 |
+
msgid "Minus files with <5% optimization (free):"
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: class/view/shortpixel_view.php:473
|
485 |
+
msgid "Used quota:"
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: class/view/shortpixel_view.php:475
|
489 |
+
msgid "Average optimization:"
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: class/view/shortpixel_view.php:476
|
493 |
+
msgid "Saved space:"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#. wp_enqueue_script('jquery.idTabs.js', plugins_url('/js/jquery.idTabs.js',__FILE__) );
|
497 |
+
#: class/view/shortpixel_view.php:502
|
498 |
+
msgid "ShortPixel Plugin Settings"
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
+
#: class/view/shortpixel_view.php:505
|
502 |
+
msgid "Upgrade now"
|
503 |
+
msgstr ""
|
504 |
+
|
505 |
+
#: class/view/shortpixel_view.php:507
|
506 |
+
msgid "Support"
|
507 |
+
msgstr ""
|
508 |
+
|
509 |
+
#: class/view/shortpixel_view.php:525
|
510 |
+
msgid "General"
|
511 |
+
msgstr ""
|
512 |
+
|
513 |
+
#: class/view/shortpixel_view.php:530
|
514 |
+
msgid "Advanced"
|
515 |
+
msgstr ""
|
516 |
+
|
517 |
+
#. the span is a trick to keep the sections ordered as nth-child in styles: 1,2,3,4 (otherwise the third section would be nth-child(2) too, because of the form)
|
518 |
+
#: class/view/shortpixel_view.php:537
|
519 |
+
msgid "Statistics"
|
520 |
+
msgstr ""
|
521 |
+
|
522 |
+
#: class/view/shortpixel_view.php:545
|
523 |
+
msgid "WP Resources"
|
524 |
+
msgstr ""
|
525 |
+
|
526 |
+
#: class/view/shortpixel_view.php:546
|
527 |
+
msgid "Please reload"
|
528 |
+
msgstr ""
|
529 |
+
|
530 |
+
#: class/view/shortpixel_view.php:579
|
531 |
+
#, php-format
|
532 |
+
msgid ""
|
533 |
+
"New images uploaded to the Media Library will be optimized automatically.<br/"
|
534 |
+
">If you have existing images you would like to optimize, you can use the <a "
|
535 |
+
"href=\"%supload.php?page=wp-short-pixel-bulk\">Bulk Optimization Tool</a>."
|
536 |
+
msgstr ""
|
537 |
+
|
538 |
+
#: class/view/shortpixel_view.php:582
|
539 |
+
msgid "Step 1:"
|
540 |
+
msgstr ""
|
541 |
+
|
542 |
+
#: class/view/shortpixel_view.php:583
|
543 |
+
#, php-format
|
544 |
+
msgid ""
|
545 |
+
"If you don't have an API Key, <a href=\"https://shortpixel.com/wp-apikey%s\" "
|
546 |
+
"target=\"_blank\">sign up here.</a> It's free and it only takes one minute, "
|
547 |
+
"we promise!"
|
548 |
+
msgstr ""
|
549 |
+
|
550 |
+
#: class/view/shortpixel_view.php:584
|
551 |
+
msgid "Step 2:"
|
552 |
+
msgstr ""
|
553 |
+
|
554 |
+
#: class/view/shortpixel_view.php:585
|
555 |
+
msgid "Please enter here the API Key you received by email and press Validate."
|
556 |
+
msgstr ""
|
557 |
+
|
558 |
+
#: class/view/shortpixel_view.php:591
|
559 |
+
msgid "API Key:"
|
560 |
+
msgstr ""
|
561 |
+
|
562 |
+
#: class/view/shortpixel_view.php:601
|
563 |
+
msgid "Multisite API Key"
|
564 |
+
msgstr ""
|
565 |
+
|
566 |
+
#: class/view/shortpixel_view.php:604
|
567 |
+
msgid "Validate the provided API key"
|
568 |
+
msgstr ""
|
569 |
+
|
570 |
+
#: class/view/shortpixel_view.php:605
|
571 |
+
msgid "Validate"
|
572 |
+
msgstr ""
|
573 |
+
|
574 |
+
#: class/view/shortpixel_view.php:607
|
575 |
+
msgid "Key defined in wp-config.php."
|
576 |
+
msgstr ""
|
577 |
+
|
578 |
+
#. if invalid key we display the link to the API Key
|
579 |
+
#. if valid key we display the rest of the options
|
580 |
+
#: class/view/shortpixel_view.php:618
|
581 |
+
msgid "Compression type:"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: class/view/shortpixel_view.php:622
|
585 |
+
msgid "Lossy (recommended)"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: class/view/shortpixel_view.php:623
|
589 |
+
msgid ""
|
590 |
+
"<b>Lossy compression: </b>lossy has a better compression rate than lossless "
|
591 |
+
"compression.</br>The resulting image is identical with the original to the "
|
592 |
+
"human eye. You can run a test for free "
|
593 |
+
msgstr ""
|
594 |
+
|
595 |
+
#: class/view/shortpixel_view.php:624 wp-shortpixel.php:1458
|
596 |
+
msgid "here"
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: class/view/shortpixel_view.php:626 class/view/shortpixel-list-table.php:111
|
600 |
+
msgid "Lossless"
|
601 |
+
msgstr ""
|
602 |
+
|
603 |
+
#: class/view/shortpixel_view.php:628
|
604 |
+
msgid ""
|
605 |
+
"<b>Lossless compression: </b> the shrunk image will be identical with the "
|
606 |
+
"original and smaller in size.</br>In some rare cases you will need to use \n"
|
607 |
+
" this type of compression. Some technical drawings or "
|
608 |
+
"images from vector graphics are possible situations."
|
609 |
+
msgstr ""
|
610 |
+
|
611 |
+
#: class/view/shortpixel_view.php:638
|
612 |
+
msgid "Also include thumbnails:"
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: class/view/shortpixel_view.php:640
|
616 |
+
msgid "Apply compression also to <strong>image thumbnails.</strong> "
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: class/view/shortpixel_view.php:641
|
620 |
+
msgid "thumbnails to optimize"
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: class/view/shortpixel_view.php:643
|
624 |
+
msgid ""
|
625 |
+
"It is highly recommended that you optimize the thumbnails as they are "
|
626 |
+
"usually the images most viewed by end users and can generate most traffic."
|
627 |
+
"<br>Please note that thumbnails count up to your total quota."
|
628 |
+
msgstr ""
|
629 |
+
|
630 |
+
#: class/view/shortpixel_view.php:648
|
631 |
+
msgid "Image backup"
|
632 |
+
msgstr ""
|
633 |
+
|
634 |
+
#: class/view/shortpixel_view.php:650
|
635 |
+
msgid "Save and keep a backup of your original images in a separate folder."
|
636 |
+
msgstr ""
|
637 |
+
|
638 |
+
#: class/view/shortpixel_view.php:651
|
639 |
+
msgid ""
|
640 |
+
"You <strong>need to have backup active</strong> in order to be able to "
|
641 |
+
"restore images to originals or to convert from Lossy to Lossless and back."
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: class/view/shortpixel_view.php:655
|
645 |
+
msgid "CMYK to RGB conversion"
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: class/view/shortpixel_view.php:657
|
649 |
+
msgid "Adjust your images for computer and mobile screen display."
|
650 |
+
msgstr ""
|
651 |
+
|
652 |
+
#: class/view/shortpixel_view.php:658
|
653 |
+
msgid ""
|
654 |
+
"Images for the web only need RGB format and converting them from CMYK to RGB "
|
655 |
+
"makes them smaller."
|
656 |
+
msgstr ""
|
657 |
+
|
658 |
+
#: class/view/shortpixel_view.php:662
|
659 |
+
msgid "Remove EXIF"
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: class/view/shortpixel_view.php:664
|
663 |
+
msgid "Remove the EXIF tag of the image (recommended)."
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: class/view/shortpixel_view.php:665
|
667 |
+
msgid ""
|
668 |
+
"EXIF is a set of various pieces of information that are automatically "
|
669 |
+
"embedded into the image upon creation. This can include GPS position, camera "
|
670 |
+
"manufacturer, date and time, etc. \n"
|
671 |
+
" Unless you really need that data to be "
|
672 |
+
"preserved, we recommend removing it as it can lead to <a href=\"http://blog."
|
673 |
+
"shortpixel.com/how-much-smaller-can-be-images-without-exif-icc\" target="
|
674 |
+
"\"_blank\">better compression rates</a>."
|
675 |
+
msgstr ""
|
676 |
+
|
677 |
+
#: class/view/shortpixel_view.php:670
|
678 |
+
msgid "Resize large images"
|
679 |
+
msgstr ""
|
680 |
+
|
681 |
+
#: class/view/shortpixel_view.php:673
|
682 |
+
msgid "to maximum"
|
683 |
+
msgstr ""
|
684 |
+
|
685 |
+
#: class/view/shortpixel_view.php:675
|
686 |
+
msgid "pixels wide ×"
|
687 |
+
msgstr ""
|
688 |
+
|
689 |
+
#: class/view/shortpixel_view.php:677
|
690 |
+
msgid ""
|
691 |
+
"pixels high (original aspect ratio is preserved and image is not cropped)"
|
692 |
+
msgstr ""
|
693 |
+
|
694 |
+
#: class/view/shortpixel_view.php:679
|
695 |
+
#, php-format
|
696 |
+
msgid ""
|
697 |
+
"Recommended for large photos, like the ones taken with your phone. Saved "
|
698 |
+
"space can go up to 80% or more after resizing."
|
699 |
+
msgstr ""
|
700 |
+
|
701 |
+
#: class/view/shortpixel_view.php:683
|
702 |
+
msgid ""
|
703 |
+
"Sizes will be greater or equal to the corresponding value. For example, if "
|
704 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
705 |
+
"resized to 1000x1500px while an image of 3000x2000px will be resized to "
|
706 |
+
"1800x1200px"
|
707 |
+
msgstr ""
|
708 |
+
|
709 |
+
#: class/view/shortpixel_view.php:685
|
710 |
+
msgid ""
|
711 |
+
"Sizes will be smaller or equal to the corresponding value. For example, if "
|
712 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
713 |
+
"resized to 800x1200px while an image of 3000x2000px will be resized to "
|
714 |
+
"1000x667px"
|
715 |
+
msgstr ""
|
716 |
+
|
717 |
+
#: class/view/shortpixel_view.php:692 class/view/shortpixel_view.php:847
|
718 |
+
msgid "Save Changes"
|
719 |
+
msgstr ""
|
720 |
+
|
721 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
722 |
+
msgid "Save and go to the Bulk Processing page"
|
723 |
+
msgstr ""
|
724 |
+
|
725 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
726 |
+
#: wp-shortpixel.php:1517 wp-shortpixel.php:1518
|
727 |
+
msgid "Save and Go to Bulk Process"
|
728 |
+
msgstr ""
|
729 |
+
|
730 |
+
#: class/view/shortpixel_view.php:716
|
731 |
+
msgid "Please enter your API key in the General tab first."
|
732 |
+
msgstr ""
|
733 |
+
|
734 |
+
#. if valid key we display the rest of the options
|
735 |
+
#: class/view/shortpixel_view.php:721
|
736 |
+
msgid "Additional media folders"
|
737 |
+
msgstr ""
|
738 |
+
|
739 |
+
#: class/view/shortpixel_view.php:726
|
740 |
+
msgid "Folder name"
|
741 |
+
msgstr ""
|
742 |
+
|
743 |
+
#: class/view/shortpixel_view.php:727
|
744 |
+
msgid "Type &<br>Status"
|
745 |
+
msgstr ""
|
746 |
+
|
747 |
+
#: class/view/shortpixel_view.php:728
|
748 |
+
msgid "Files"
|
749 |
+
msgstr ""
|
750 |
+
|
751 |
+
#: class/view/shortpixel_view.php:729
|
752 |
+
msgid "Last change"
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: class/view/shortpixel_view.php:738 class/view/shortpixel_view.php:743
|
756 |
+
#: class/view/shortpixel_view.php:745 class/view/shortpixel_view.php:747
|
757 |
+
msgid "Empty"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: class/view/shortpixel_view.php:740 class/view/shortpixel_view.php:745
|
761 |
+
#: class/view/shortpixel_view.php:747
|
762 |
+
msgid "Optimized"
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
766 |
+
#: class/view/shortpixel-list-table.php:97
|
767 |
+
msgid "Pending"
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
771 |
+
#: class/view/shortpixel-list-table.php:99
|
772 |
+
msgid "Waiting"
|
773 |
+
msgstr ""
|
774 |
+
|
775 |
+
#: class/view/shortpixel_view.php:745
|
776 |
+
msgid "Stop monitoring"
|
777 |
+
msgstr ""
|
778 |
+
|
779 |
+
#: class/view/shortpixel_view.php:745
|
780 |
+
msgid "Stop optimizing"
|
781 |
+
msgstr ""
|
782 |
+
|
783 |
+
#: class/view/shortpixel_view.php:749
|
784 |
+
msgid "Failed"
|
785 |
+
msgstr ""
|
786 |
+
|
787 |
+
#: class/view/shortpixel_view.php:771
|
788 |
+
msgid ""
|
789 |
+
"Full folder refresh, check each file of the folder if it changed since it "
|
790 |
+
"was optimized. Might take up to 1 min. for big folders."
|
791 |
+
msgstr ""
|
792 |
+
|
793 |
+
#: class/view/shortpixel_view.php:772
|
794 |
+
msgid "Refresh"
|
795 |
+
msgstr ""
|
796 |
+
|
797 |
+
#: class/view/shortpixel_view.php:783
|
798 |
+
msgid "Select the images folder on your server."
|
799 |
+
msgstr ""
|
800 |
+
|
801 |
+
#: class/view/shortpixel_view.php:784
|
802 |
+
msgid "Select ..."
|
803 |
+
msgstr ""
|
804 |
+
|
805 |
+
#: class/view/shortpixel_view.php:786
|
806 |
+
msgid "Add Folder"
|
807 |
+
msgstr ""
|
808 |
+
|
809 |
+
#: class/view/shortpixel_view.php:788
|
810 |
+
msgid ""
|
811 |
+
"Use the Select... button to select site folders. ShortPixel will optimize "
|
812 |
+
"images and PDFs from the specified folders and their subfolders. The "
|
813 |
+
"optimization status for each image or PDF in these folders can be seen in "
|
814 |
+
"the <a href=\"upload.php?page=wp-short-pixel-custom\">Other Media list</a>, "
|
815 |
+
"under the Media menu."
|
816 |
+
msgstr ""
|
817 |
+
|
818 |
+
#: class/view/shortpixel_view.php:792
|
819 |
+
msgid "Select the images folder"
|
820 |
+
msgstr ""
|
821 |
+
|
822 |
+
#: class/view/shortpixel_view.php:794
|
823 |
+
msgid "Cancel"
|
824 |
+
msgstr ""
|
825 |
+
|
826 |
+
#: class/view/shortpixel_view.php:795
|
827 |
+
msgid "Select"
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: class/view/shortpixel_view.php:807
|
831 |
+
msgid "Optimize NextGen galleries"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: class/view/shortpixel_view.php:809
|
835 |
+
msgid "Optimize NextGen galleries."
|
836 |
+
msgstr ""
|
837 |
+
|
838 |
+
#: class/view/shortpixel_view.php:811
|
839 |
+
msgid ""
|
840 |
+
"Check this to add all your current NextGen galleries to the custom folders "
|
841 |
+
"list and to also have all the future NextGen galleries and images optimized "
|
842 |
+
"automatically by ShortPixel."
|
843 |
+
msgstr ""
|
844 |
+
|
845 |
+
#: class/view/shortpixel_view.php:817
|
846 |
+
msgid "WebP versions"
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: class/view/shortpixel_view.php:819
|
850 |
+
msgid ""
|
851 |
+
"Create also <a href=\"http://blog.shortpixel.com/how-webp-images-can-speed-"
|
852 |
+
"up-your-site/\" target=\"_blank\">WebP versions</a> of the images "
|
853 |
+
"<strong>for free</strong>."
|
854 |
+
msgstr ""
|
855 |
+
|
856 |
+
#: class/view/shortpixel_view.php:821
|
857 |
+
#, php-format
|
858 |
+
msgid ""
|
859 |
+
"WebP images can be up to three times smaller than PNGs and 25% smaller than "
|
860 |
+
"JPGs. Choosing this option <strong>does not use up additional credits</"
|
861 |
+
"strong>."
|
862 |
+
msgstr ""
|
863 |
+
|
864 |
+
#: class/view/shortpixel_view.php:826
|
865 |
+
msgid "HTTP AUTH credentials"
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: class/view/shortpixel_view.php:828
|
869 |
+
msgid "User"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: class/view/shortpixel_view.php:829
|
873 |
+
msgid "Password"
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: class/view/shortpixel_view.php:831
|
877 |
+
msgid ""
|
878 |
+
"Only fill in these fields if your site (front-end) is not publicly "
|
879 |
+
"accessible and visitors need a user/pass to connect to it. If you don't know "
|
880 |
+
"what is this then just <strong>leave the fields empty</strong>."
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: class/view/shortpixel_view.php:836
|
884 |
+
msgid "Process in front-end"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: class/view/shortpixel_view.php:838
|
888 |
+
msgid "Automatically optimize images added by users in front end."
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: class/view/shortpixel_view.php:840
|
892 |
+
msgid ""
|
893 |
+
"Check this if you have users that add images or PDF documents from custom "
|
894 |
+
"forms in the front-end. This could increase the load on your server if you "
|
895 |
+
"have a lot of users simultaneously connected."
|
896 |
+
msgstr ""
|
897 |
+
|
898 |
+
#: class/view/shortpixel_view.php:860
|
899 |
+
msgid "Your ShortPixel Stats"
|
900 |
+
msgstr ""
|
901 |
+
|
902 |
+
#: class/view/shortpixel_view.php:864
|
903 |
+
msgid "Average compression of your files:"
|
904 |
+
msgstr ""
|
905 |
+
|
906 |
+
#: class/view/shortpixel_view.php:868
|
907 |
+
msgid "Saved disk space by ShortPixel"
|
908 |
+
msgstr ""
|
909 |
+
|
910 |
+
#: class/view/shortpixel_view.php:872
|
911 |
+
msgid "Bandwith* saved with ShortPixel:"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: class/view/shortpixel_view.php:878
|
915 |
+
msgid "* Saved bandwidth is calculated at 10,000 impressions/image"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: class/view/shortpixel_view.php:880
|
919 |
+
msgid "Your ShortPixel Plan"
|
920 |
+
msgstr ""
|
921 |
+
|
922 |
+
#: class/view/shortpixel_view.php:884
|
923 |
+
msgid "Your ShortPixel plan"
|
924 |
+
msgstr ""
|
925 |
+
|
926 |
+
#: class/view/shortpixel_view.php:886
|
927 |
+
#, php-format
|
928 |
+
msgid ""
|
929 |
+
"%s/month, renews in %s days, on %s ( <a href=\"https://shortpixel.com/login/"
|
930 |
+
"%s\" target=\"_blank\">Need More? See the options available</a> )"
|
931 |
+
msgstr ""
|
932 |
+
|
933 |
+
#: class/view/shortpixel_view.php:889
|
934 |
+
#, php-format
|
935 |
+
msgid ""
|
936 |
+
"<a href=\"https://shortpixel.com/login/%s/tell-a-friend\" target=\"_blank"
|
937 |
+
"\">Join our friend referral system</a> to win more credits. For each user "
|
938 |
+
"that joins, you receive +100 images credits/month."
|
939 |
+
msgstr ""
|
940 |
+
|
941 |
+
#: class/view/shortpixel_view.php:894
|
942 |
+
msgid "One time credits:"
|
943 |
+
msgstr ""
|
944 |
+
|
945 |
+
#: class/view/shortpixel_view.php:898
|
946 |
+
msgid "Number of images processed this month:"
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: class/view/shortpixel_view.php:900
|
950 |
+
msgid "see report"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: class/view/shortpixel_view.php:905
|
954 |
+
msgid "Remaining** images in your plan:"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: class/view/shortpixel_view.php:906
|
958 |
+
msgid "images"
|
959 |
+
msgstr ""
|
960 |
+
|
961 |
+
#: class/view/shortpixel_view.php:912
|
962 |
+
#, php-format
|
963 |
+
msgid ""
|
964 |
+
"** Increase your image quota by <a href=\"https://shortpixel.com/login/%s\" "
|
965 |
+
"target=\"_blank\">upgrading your ShortPixel plan.</a>"
|
966 |
+
msgstr ""
|
967 |
+
|
968 |
+
#: class/view/shortpixel_view.php:919
|
969 |
+
msgid "Total number of processed files:"
|
970 |
+
msgstr ""
|
971 |
+
|
972 |
+
#: class/view/shortpixel_view.php:924
|
973 |
+
msgid ""
|
974 |
+
"Original images are stored in a backup folder. Your backup folder size is "
|
975 |
+
"now:"
|
976 |
+
msgstr ""
|
977 |
+
|
978 |
+
#: class/view/shortpixel_view.php:928
|
979 |
+
msgid "Empty backups"
|
980 |
+
msgstr ""
|
981 |
+
|
982 |
+
#. not a file that we can process
|
983 |
+
#: class/view/shortpixel_view.php:945 wp-shortpixel.php:348
|
984 |
+
#: wp-shortpixel.php:374 wp-shortpixel.php:1813
|
985 |
+
msgid "Optimization N/A"
|
986 |
+
msgstr ""
|
987 |
+
|
988 |
+
#: class/view/shortpixel_view.php:948
|
989 |
+
msgid "Image does not exist."
|
990 |
+
msgstr ""
|
991 |
+
|
992 |
+
#. multisite key - need to be validated on each site but it's not invalid
|
993 |
+
#: class/view/shortpixel_view.php:952
|
994 |
+
msgid ""
|
995 |
+
"Please <a href=\"options-general.php?page=wp-shortpixel\">go to Settings</a> "
|
996 |
+
"to validate the API Key."
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: class/view/shortpixel_view.php:954
|
1000 |
+
msgid ""
|
1001 |
+
"Invalid API Key. <a href=\"options-general.php?page=wp-shortpixel\">Check "
|
1002 |
+
"your Settings</a>"
|
1003 |
+
msgstr ""
|
1004 |
+
|
1005 |
+
#: class/view/shortpixel_view.php:963
|
1006 |
+
msgid "Optimize now"
|
1007 |
+
msgstr ""
|
1008 |
+
|
1009 |
+
#: class/view/shortpixel_view.php:973 class/view/shortpixel-list-table.php:55
|
1010 |
+
#: wp-shortpixel.php:282
|
1011 |
+
msgid "Retry"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: class/view/shortpixel_view.php:990 class/view/shortpixel-list-table.php:93
|
1015 |
+
#: wp-shortpixel.php:273
|
1016 |
+
msgid "Reduced by"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: class/view/shortpixel_view.php:993 class/view/shortpixel-list-table.php:92
|
1020 |
+
#: class/view/shortpixel-list-table.php:94 wp-shortpixel.php:274
|
1021 |
+
msgid "Bonus processing"
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: class/view/shortpixel_view.php:996
|
1025 |
+
#, php-format
|
1026 |
+
msgid "+%s of %s thumbnails optimized"
|
1027 |
+
msgstr ""
|
1028 |
+
|
1029 |
+
#: class/view/shortpixel_view.php:997
|
1030 |
+
#, php-format
|
1031 |
+
msgid "+%s thumbnails optimized"
|
1032 |
+
msgstr ""
|
1033 |
+
|
1034 |
+
#: class/view/shortpixel_view.php:1005
|
1035 |
+
#, php-format
|
1036 |
+
msgid "Optimize %s thumbnails"
|
1037 |
+
msgstr ""
|
1038 |
+
|
1039 |
+
#: class/view/shortpixel_view.php:1012
|
1040 |
+
msgid "Reoptimize from the backed-up image"
|
1041 |
+
msgstr ""
|
1042 |
+
|
1043 |
+
#: class/view/shortpixel_view.php:1013
|
1044 |
+
msgid "Re-optimize"
|
1045 |
+
msgstr ""
|
1046 |
+
|
1047 |
+
#: class/view/shortpixel_view.php:1017 wp-shortpixel.php:278
|
1048 |
+
msgid "Restore backup"
|
1049 |
+
msgstr ""
|
1050 |
+
|
1051 |
+
#: class/view/shortpixel_view.php:1030 wp-shortpixel.php:280
|
1052 |
+
msgid "Extend Quota"
|
1053 |
+
msgstr ""
|
1054 |
+
|
1055 |
+
#: class/view/shortpixel_view.php:1033 wp-shortpixel.php:281
|
1056 |
+
msgid "Check Quota"
|
1057 |
+
msgstr ""
|
1058 |
+
|
1059 |
+
#: class/view/shortpixel-list-table.php:15
|
1060 |
+
msgid "Image"
|
1061 |
+
msgstr ""
|
1062 |
+
|
1063 |
+
#. singular name of the listed records
|
1064 |
+
#: class/view/shortpixel-list-table.php:16
|
1065 |
+
msgid "Images"
|
1066 |
+
msgstr ""
|
1067 |
+
|
1068 |
+
#. pe viitor. $columns['cb'] = '<input type="checkbox" />';
|
1069 |
+
#: class/view/shortpixel-list-table.php:29
|
1070 |
+
msgid "Filename"
|
1071 |
+
msgstr ""
|
1072 |
+
|
1073 |
+
#: class/view/shortpixel-list-table.php:30
|
1074 |
+
msgid "Folder"
|
1075 |
+
msgstr ""
|
1076 |
+
|
1077 |
+
#: class/view/shortpixel-list-table.php:31
|
1078 |
+
msgid "Type"
|
1079 |
+
msgstr ""
|
1080 |
+
|
1081 |
+
#: class/view/shortpixel-list-table.php:32
|
1082 |
+
msgid "Status"
|
1083 |
+
msgstr ""
|
1084 |
+
|
1085 |
+
#: class/view/shortpixel-list-table.php:33
|
1086 |
+
msgid "Options"
|
1087 |
+
msgstr ""
|
1088 |
+
|
1089 |
+
#: class/view/shortpixel-list-table.php:52
|
1090 |
+
msgid "Optimize"
|
1091 |
+
msgstr ""
|
1092 |
+
|
1093 |
+
#: class/view/shortpixel-list-table.php:58
|
1094 |
+
msgid "Restore"
|
1095 |
+
msgstr ""
|
1096 |
+
|
1097 |
+
#: class/view/shortpixel-list-table.php:61
|
1098 |
+
msgid "Re-optimize lossless"
|
1099 |
+
msgstr ""
|
1100 |
+
|
1101 |
+
#: class/view/shortpixel-list-table.php:64
|
1102 |
+
msgid "Re-optimize lossy"
|
1103 |
+
msgstr ""
|
1104 |
+
|
1105 |
+
#: class/view/shortpixel-list-table.php:67
|
1106 |
+
msgid "Check quota"
|
1107 |
+
msgstr ""
|
1108 |
+
|
1109 |
+
#: class/view/shortpixel-list-table.php:68
|
1110 |
+
msgid "View"
|
1111 |
+
msgstr ""
|
1112 |
+
|
1113 |
+
#: class/view/shortpixel-list-table.php:89
|
1114 |
+
msgid "Restored"
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: class/view/shortpixel-list-table.php:103
|
1118 |
+
msgid "code"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: class/view/shortpixel-list-table.php:111
|
1122 |
+
msgid "Lossy"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: class/view/shortpixel-list-table.php:112
|
1126 |
+
msgid "Keep EXIF"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: class/view/shortpixel-list-table.php:113
|
1130 |
+
msgid "Preserve CMYK"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: class/view/shortpixel-list-table.php:122
|
1134 |
+
msgid ""
|
1135 |
+
"No images avaliable. Go to <a href=\"options-general.php?page=wp-"
|
1136 |
+
"shortpixel#adv-settings\">Advanced Settings</a> to configure additional "
|
1137 |
+
"folders to be optimized."
|
1138 |
+
msgstr ""
|
1139 |
+
|
1140 |
+
#: class/view/shortpixel-list-table.php:255
|
1141 |
+
msgid "Show more details"
|
1142 |
+
msgstr "Mai multe detalii"
|
1143 |
+
|
1144 |
+
#: class/db/shortpixel-meta-facade.php:165
|
1145 |
+
msgid "Error"
|
1146 |
+
msgstr ""
|
1147 |
+
|
1148 |
+
#: class/db/shortpixel-custom-meta-dao.php:187
|
1149 |
+
msgid "Folder already added."
|
1150 |
+
msgstr ""
|
1151 |
+
|
1152 |
+
#: class/db/shortpixel-custom-meta-dao.php:191
|
1153 |
+
#, php-format
|
1154 |
+
msgid ""
|
1155 |
+
"The %s folder cannot be processed as it's not inside the root path of your "
|
1156 |
+
"website."
|
1157 |
+
msgstr ""
|
1158 |
+
|
1159 |
+
#: class/db/shortpixel-custom-meta-dao.php:200
|
1160 |
+
msgid ""
|
1161 |
+
"This folder contains Media Library images. To optimize Media Library images "
|
1162 |
+
"please go to <a href=\"upload.php?mode=list\">Media Library list view</a> or "
|
1163 |
+
"to <a href=\"upload.php?page=wp-short-pixel-bulk\">SortPixel Bulk page</a>."
|
1164 |
+
msgstr ""
|
1165 |
+
|
1166 |
+
#: class/db/shortpixel-custom-meta-dao.php:204
|
1167 |
+
msgid "Inserted folder doesn't have an ID!"
|
1168 |
+
msgstr ""
|
1169 |
+
|
1170 |
+
#: class/db/shortpixel-custom-meta-dao.php:224
|
1171 |
+
msgid ""
|
1172 |
+
"This folder contains the ShortPixel Backups. Please select a different "
|
1173 |
+
"folder."
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#. var_dump($allFolders);
|
1177 |
+
#: class/db/shortpixel-custom-meta-dao.php:247
|
1178 |
+
#, php-format
|
1179 |
+
msgid "Folder already included in %s."
|
1180 |
+
msgstr ""
|
1181 |
+
|
1182 |
+
#: class/db/shortpixel-custom-meta-dao.php:250
|
1183 |
+
msgid "Folder does not exist."
|
1184 |
+
msgstr ""
|
1185 |
+
|
1186 |
+
#: class/model/shortpixel-folder.php:76 class/model/shortpixel-folder.php:149
|
1187 |
+
#, php-format
|
1188 |
+
msgid "Folder %s is not writeable. Please check permissions and try again."
|
1189 |
+
msgstr ""
|
1190 |
+
|
1191 |
+
#: wp-shortpixel.php:160
|
1192 |
+
msgid "ShortPixel Settings"
|
1193 |
+
msgstr "Configurări ShortPixel"
|
1194 |
+
|
1195 |
+
#. translators: title and menu name for the Other media page
|
1196 |
+
#: wp-shortpixel.php:166
|
1197 |
+
msgid "Other Media Optimized by ShortPixel"
|
1198 |
+
msgstr "Alte Media Optimizate de ShortPixel"
|
1199 |
+
|
1200 |
+
#: wp-shortpixel.php:166
|
1201 |
+
msgid "Other Media"
|
1202 |
+
msgstr "Alte Media"
|
1203 |
+
|
1204 |
+
#. translators: title and menu name for the Bulk Processing page
|
1205 |
+
#: wp-shortpixel.php:169
|
1206 |
+
msgid "ShortPixel Bulk Process"
|
1207 |
+
msgstr "Proceseaza automat cu ShortPixel"
|
1208 |
+
|
1209 |
+
#: wp-shortpixel.php:169
|
1210 |
+
msgid "Bulk ShortPixel"
|
1211 |
+
msgstr "Procesor ShortPixel"
|
1212 |
+
|
1213 |
+
#: wp-shortpixel.php:216
|
1214 |
+
msgid "Media alert dismissed"
|
1215 |
+
msgstr "Alerta media dezactivată"
|
1216 |
+
|
1217 |
+
#: wp-shortpixel.php:269
|
1218 |
+
msgid "Optimize with ShortPixel"
|
1219 |
+
msgstr ""
|
1220 |
+
|
1221 |
+
#: wp-shortpixel.php:270
|
1222 |
+
msgid ""
|
1223 |
+
"In order to access the ShortPixel Optimization actions and info, please "
|
1224 |
+
"change to {0}List View{1}List View{2}Dismiss{3}"
|
1225 |
+
msgstr ""
|
1226 |
+
"Pentru a accesa acțiunile și informațiile de optimizare ShortPixel, te rugăm "
|
1227 |
+
"schimbă în {0}Modul Listă{1}Modul Listă{2}Închide{3}"
|
1228 |
+
|
1229 |
+
#: wp-shortpixel.php:271
|
1230 |
+
msgid ""
|
1231 |
+
"This type of optimization will apply to new uploaded images.\\nImages that "
|
1232 |
+
"were already processed will not be re-optimized unless you restart the bulk "
|
1233 |
+
"process."
|
1234 |
+
msgstr ""
|
1235 |
+
|
1236 |
+
#: wp-shortpixel.php:272
|
1237 |
+
msgid "Are you sure you want to stop optimizing the folder {0}?"
|
1238 |
+
msgstr ""
|
1239 |
+
|
1240 |
+
#: wp-shortpixel.php:275
|
1241 |
+
msgid "+{0} thumbnails optimized"
|
1242 |
+
msgstr ""
|
1243 |
+
|
1244 |
+
#: wp-shortpixel.php:276
|
1245 |
+
msgid "Optimize {0} thumbnails"
|
1246 |
+
msgstr ""
|
1247 |
+
|
1248 |
+
#: wp-shortpixel.php:277
|
1249 |
+
msgid "Reoptimize {0}"
|
1250 |
+
msgstr ""
|
1251 |
+
|
1252 |
+
#: wp-shortpixel.php:279
|
1253 |
+
msgid "Get API Key"
|
1254 |
+
msgstr ""
|
1255 |
+
|
1256 |
+
#: wp-shortpixel.php:283
|
1257 |
+
msgid "This content is not processable."
|
1258 |
+
msgstr ""
|
1259 |
+
|
1260 |
+
#: wp-shortpixel.php:284
|
1261 |
+
msgid "Image waiting to optimize thumbnails"
|
1262 |
+
msgstr ""
|
1263 |
+
|
1264 |
+
#. translators: toolbar icon tooltip
|
1265 |
+
#: wp-shortpixel.php:297
|
1266 |
+
msgid "ShortPixel optimizing..."
|
1267 |
+
msgstr ""
|
1268 |
+
|
1269 |
+
#. translators: toolbar icon tooltip
|
1270 |
+
#: wp-shortpixel.php:308
|
1271 |
+
msgid "ShortPixel quota exceeded. Click for details."
|
1272 |
+
msgstr ""
|
1273 |
+
|
1274 |
+
#: wp-shortpixel.php:564
|
1275 |
+
msgid "Missing API Key"
|
1276 |
+
msgstr ""
|
1277 |
+
|
1278 |
+
#. translators: console message Empty queue 1234 -> 1234
|
1279 |
+
#: wp-shortpixel.php:614
|
1280 |
+
msgid "Empty queue "
|
1281 |
+
msgstr ""
|
1282 |
+
|
1283 |
+
#: wp-shortpixel.php:740
|
1284 |
+
msgid " Retry limit reached. Skipping file ID "
|
1285 |
+
msgstr ""
|
1286 |
+
|
1287 |
+
#: wp-shortpixel.php:835
|
1288 |
+
msgid "NextGen image not found"
|
1289 |
+
msgstr ""
|
1290 |
+
|
1291 |
+
#: wp-shortpixel.php:1004 wp-shortpixel.php:1018
|
1292 |
+
msgid "Could not restore from backup: "
|
1293 |
+
msgstr ""
|
1294 |
+
|
1295 |
+
#: wp-shortpixel.php:1037
|
1296 |
+
msgid "No thumbnails to optimize for ID: "
|
1297 |
+
msgstr ""
|
1298 |
+
|
1299 |
+
#: wp-shortpixel.php:1037
|
1300 |
+
msgid "Please optimize image for ID: "
|
1301 |
+
msgstr ""
|
1302 |
+
|
1303 |
+
#: wp-shortpixel.php:1142
|
1304 |
+
msgid "Refresh custom folders content"
|
1305 |
+
msgstr ""
|
1306 |
+
|
1307 |
+
#: wp-shortpixel.php:1143
|
1308 |
+
msgid "Refresh folders"
|
1309 |
+
msgstr ""
|
1310 |
+
|
1311 |
+
#: wp-shortpixel.php:1146
|
1312 |
+
msgid "Other Media optimized by ShortPixel"
|
1313 |
+
msgstr ""
|
1314 |
+
|
1315 |
+
#: wp-shortpixel.php:1322 wp-shortpixel.php:1413
|
1316 |
+
msgid "You do not have sufficient permissions to access this page."
|
1317 |
+
msgstr ""
|
1318 |
+
|
1319 |
+
#: wp-shortpixel.php:1451
|
1320 |
+
#, php-format
|
1321 |
+
msgid ""
|
1322 |
+
"The key you provided has %s characters. The API key should have 20 "
|
1323 |
+
"characters, letters and numbers only."
|
1324 |
+
msgstr ""
|
1325 |
+
|
1326 |
+
#: wp-shortpixel.php:1453
|
1327 |
+
msgid ""
|
1328 |
+
"Please check that the API key is the same as the one you received in your "
|
1329 |
+
"confirmation email."
|
1330 |
+
msgstr ""
|
1331 |
+
|
1332 |
+
#: wp-shortpixel.php:1455
|
1333 |
+
msgid "If this problem persists, please contact us at "
|
1334 |
+
msgstr ""
|
1335 |
+
|
1336 |
+
#: wp-shortpixel.php:1457
|
1337 |
+
msgid " or "
|
1338 |
+
msgstr ""
|
1339 |
+
|
1340 |
+
#: wp-shortpixel.php:1475
|
1341 |
+
msgid ""
|
1342 |
+
"API Key is valid but your site is not accessible from our servers. Please "
|
1343 |
+
"make sure that your server is accessible from the Internet before using the "
|
1344 |
+
"API or otherwise we won't be able to optimize them."
|
1345 |
+
msgstr ""
|
1346 |
+
|
1347 |
+
#: wp-shortpixel.php:1478
|
1348 |
+
msgid ""
|
1349 |
+
"API Key valid! <br>You seem to be running a multisite, please note that API "
|
1350 |
+
"Key can also be configured in wp-config.php like this:"
|
1351 |
+
msgstr ""
|
1352 |
+
|
1353 |
+
#: wp-shortpixel.php:1481
|
1354 |
+
msgid "API Key valid!"
|
1355 |
+
msgstr ""
|
1356 |
+
|
1357 |
+
#: wp-shortpixel.php:1488
|
1358 |
+
#, php-format
|
1359 |
+
msgid ""
|
1360 |
+
"There is something preventing us to create a new folder for backing up your "
|
1361 |
+
"original files.<BR>Please make sure that folder <b>%s</b> has the necessary "
|
1362 |
+
"write and read rights."
|
1363 |
+
msgstr ""
|
1364 |
+
|
1365 |
+
#: wp-shortpixel.php:1536
|
1366 |
+
msgid "Folder added successfully."
|
1367 |
+
msgstr ""
|
1368 |
+
|
1369 |
+
#: wp-shortpixel.php:1712
|
1370 |
+
msgid ""
|
1371 |
+
"API Key could not be validated due to a connectivity error.<BR>Your firewall "
|
1372 |
+
"may be blocking us. Please contact your hosting provider and ask them to "
|
1373 |
+
"allow connections from your site to IP 176.9.106.46.<BR> If you still cannot "
|
1374 |
+
"validate your API Key after this, please <a href=\"https://shortpixel.com/"
|
1375 |
+
"contact\" target=\"_blank\">contact us</a> and we will try to help. "
|
1376 |
+
msgstr ""
|
1377 |
+
|
1378 |
+
#: wp-shortpixel.php:1713 wp-shortpixel.php:1714
|
1379 |
+
msgid "Information unavailable. Please check your API key."
|
1380 |
+
msgstr ""
|
1381 |
+
|
1382 |
+
#: wp-shortpixel.php:1789
|
1383 |
+
msgid "PDF not processed."
|
1384 |
+
msgstr ""
|
1385 |
+
|
1386 |
+
#: wp-shortpixel.php:1820 wp-shortpixel.php:1822
|
1387 |
+
msgid "Cannot write optimized file"
|
1388 |
+
msgstr ""
|
1389 |
+
|
1390 |
+
#: wp-shortpixel.php:1823
|
1391 |
+
msgid "Why?"
|
1392 |
+
msgstr ""
|
1393 |
+
|
1394 |
+
#: wp-shortpixel.php:1831
|
1395 |
+
msgid "Image does not exist"
|
1396 |
+
msgstr ""
|
1397 |
+
|
1398 |
+
#: wp-shortpixel.php:1835
|
1399 |
+
msgid "Image waiting to be processed."
|
1400 |
+
msgstr ""
|
1401 |
+
|
1402 |
+
#: wp-shortpixel.php:1853
|
1403 |
+
msgid "ShortPixel Statistics"
|
1404 |
+
msgstr ""
|
1405 |
+
|
1406 |
+
#: wp-shortpixel.php:1871
|
1407 |
+
msgid "ShortPixel Compression"
|
1408 |
+
msgstr ""
|
1409 |
+
|
1410 |
+
#: shortpixel_api.php:142
|
1411 |
+
msgid "The file(s) do not exist on disk."
|
1412 |
+
msgstr ""
|
1413 |
+
|
1414 |
+
#: shortpixel_api.php:157 shortpixel_api.php:168
|
1415 |
+
msgid "Timed out while processing."
|
1416 |
+
msgstr ""
|
1417 |
+
|
1418 |
+
#: shortpixel_api.php:161
|
1419 |
+
msgid "Image ID"
|
1420 |
+
msgstr ""
|
1421 |
+
|
1422 |
+
#: shortpixel_api.php:161
|
1423 |
+
msgid "Media ID"
|
1424 |
+
msgstr ""
|
1425 |
+
|
1426 |
+
#: shortpixel_api.php:162
|
1427 |
+
msgid "Skip this image, try the next one."
|
1428 |
+
msgstr ""
|
1429 |
+
|
1430 |
+
#. send requests to API
|
1431 |
+
#. response <> 200 -> there was an error apparently?
|
1432 |
+
#: shortpixel_api.php:179 shortpixel_api.php:212 shortpixel_api.php:215
|
1433 |
+
msgid "There was an error and your request was not processed."
|
1434 |
+
msgstr ""
|
1435 |
+
|
1436 |
+
#: shortpixel_api.php:231
|
1437 |
+
msgid "Unecognized API response. Please contact support."
|
1438 |
+
msgstr ""
|
1439 |
+
|
1440 |
+
#: shortpixel_api.php:238
|
1441 |
+
msgid "Quota exceeded."
|
1442 |
+
msgstr ""
|
1443 |
+
|
1444 |
+
#: shortpixel_api.php:326
|
1445 |
+
msgid "Error downloading file"
|
1446 |
+
msgstr ""
|
1447 |
+
|
1448 |
+
#: shortpixel_api.php:334
|
1449 |
+
#, php-format
|
1450 |
+
msgid ""
|
1451 |
+
"Error downloading file - incorrect file size (downloaded: %s, correct: %s )"
|
1452 |
+
msgstr ""
|
1453 |
+
|
1454 |
+
#: shortpixel_api.php:337
|
1455 |
+
msgid "Unable to locate downloaded file"
|
1456 |
+
msgstr ""
|
1457 |
+
|
1458 |
+
#. array with final paths for these files
|
1459 |
+
#. creates backup folder if it doesn't exist
|
1460 |
+
#: shortpixel_api.php:399
|
1461 |
+
msgid "Backup folder does not exist and it cannot be created"
|
1462 |
+
msgstr ""
|
1463 |
+
|
1464 |
+
#. file couldn't be saved in backup folder
|
1465 |
+
#: shortpixel_api.php:419
|
1466 |
+
#, php-format
|
1467 |
+
msgid "Cannot save file <i>%s</i> in backup directory"
|
1468 |
+
msgstr ""
|
1469 |
+
|
1470 |
+
#. cannot write to the backup dir, return with an error
|
1471 |
+
#: shortpixel_api.php:428
|
1472 |
+
msgid "Cannot save file in backup directory"
|
1473 |
+
msgstr ""
|
1474 |
+
|
1475 |
+
#: shortpixel_api.php:491
|
1476 |
+
#, php-format
|
1477 |
+
msgid "Optimized version of %s file(s) couldn't be updated."
|
1478 |
+
msgstr ""
|
lang/shortpixel.pot
ADDED
@@ -0,0 +1,1461 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
+
#, fuzzy
|
7 |
+
msgid ""
|
8 |
+
msgstr ""
|
9 |
+
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
+
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2016-11-30 16:23+0100\n"
|
12 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
+
"Language: \n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
19 |
+
|
20 |
+
#: class/view/shortpixel_view.php:23 class/view/shortpixel_view.php:417
|
21 |
+
msgid "Average reduction"
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#. translators: header of the alert box
|
25 |
+
#: class/view/shortpixel_view.php:33
|
26 |
+
msgid "Quota Exceeded"
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#. translators: body of the alert box
|
30 |
+
#: class/view/shortpixel_view.php:35
|
31 |
+
#, php-format
|
32 |
+
msgid ""
|
33 |
+
"The plugin has optimized <strong>%s images</strong> and stopped because it "
|
34 |
+
"reached the available quota limit."
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: class/view/shortpixel_view.php:39
|
38 |
+
#, php-format
|
39 |
+
msgid ""
|
40 |
+
"<strong>%s images and %s thumbnails</strong> are not yet optimized by "
|
41 |
+
"ShortPixel."
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: class/view/shortpixel_view.php:44
|
45 |
+
msgid "Upgrade"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: class/view/shortpixel_view.php:45
|
49 |
+
msgid "Confirm New Quota"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: class/view/shortpixel_view.php:47
|
53 |
+
msgid "Get more image credits by referring ShortPixel to your friends!"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: class/view/shortpixel_view.php:49
|
57 |
+
msgid "Check your account"
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: class/view/shortpixel_view.php:50
|
61 |
+
msgid ""
|
62 |
+
"for your unique referral link. For each user that joins, you will receive "
|
63 |
+
"+100 additional image credits/month."
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: class/view/shortpixel_view.php:58
|
67 |
+
msgid ""
|
68 |
+
"In order to start the optimization process, you need to validate your API "
|
69 |
+
"Key in the <a href=\"options-general.php?page=wp-shortpixel\">ShortPixel "
|
70 |
+
"Settings</a> page in your WordPress Admin."
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: class/view/shortpixel_view.php:61
|
74 |
+
msgid ""
|
75 |
+
"If you don’t have an API Key, you can get one delivered to your inbox, for "
|
76 |
+
"free."
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: class/view/shortpixel_view.php:62
|
80 |
+
msgid ""
|
81 |
+
"Please <a href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">sign "
|
82 |
+
"up to get your API key.</a>"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: class/view/shortpixel_view.php:70
|
86 |
+
msgid "Dismiss"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: class/view/shortpixel_view.php:72
|
90 |
+
msgid "ShortPixel Optimization"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: class/view/shortpixel_view.php:75
|
94 |
+
msgid ""
|
95 |
+
"Action needed. Please <a href='https://shortpixel.com/wp-apikey' "
|
96 |
+
"target='_blank'>get your API key</a> to activate your ShortPixel plugin."
|
97 |
+
msgstr ""
|
98 |
+
|
99 |
+
#: class/view/shortpixel_view.php:78
|
100 |
+
msgid ""
|
101 |
+
"Your image gallery is not optimized. It takes 2 minutes to <a href='https://"
|
102 |
+
"shortpixel.com/wp-apikey' target='_blank'>get your API key</a> and activate "
|
103 |
+
"your ShortPixel plugin."
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: class/view/shortpixel_view.php:102
|
107 |
+
msgid "Your media library"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: class/view/shortpixel_view.php:103
|
111 |
+
msgid "Original images"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: class/view/shortpixel_view.php:105
|
115 |
+
msgid "Smaller thumbnails"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: class/view/shortpixel_view.php:109 class/view/shortpixel_view.php:343
|
119 |
+
msgid "Include thumbnails"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: class/view/shortpixel_view.php:112
|
123 |
+
msgid "Total images"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: class/view/shortpixel_view.php:114
|
127 |
+
msgid "Already optimized originals"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: class/view/shortpixel_view.php:116
|
131 |
+
msgid "Already optimized thumbnails"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: class/view/shortpixel_view.php:119 class/view/shortpixel_view.php:124
|
135 |
+
msgid "Total to be optimized"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: class/view/shortpixel_view.php:123
|
139 |
+
msgid "Your custom folders"
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
#: class/view/shortpixel_view.php:137
|
143 |
+
#, php-format
|
144 |
+
msgid ""
|
145 |
+
"<span class=\"label\">Start Optimizing</span><br> <span class=\"total\">%s</"
|
146 |
+
"span> images"
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: class/view/shortpixel_view.php:148
|
150 |
+
msgid ""
|
151 |
+
"Nothing to optimize! The images that you add to Media Gallery will be "
|
152 |
+
"automatically optimized after upload."
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: class/view/shortpixel_view.php:157
|
156 |
+
msgid ""
|
157 |
+
"After you start the bulk process, in order for the optimization to run, you "
|
158 |
+
"must keep this page open and your computer running. If you close the page "
|
159 |
+
"for whatever reason, just turn back to it and the bulk process will resume."
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: class/view/shortpixel_view.php:163
|
163 |
+
msgid "What are Thumbnails?"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: class/view/shortpixel_view.php:164
|
167 |
+
msgid ""
|
168 |
+
"Thumbnails are smaller images usually generated by your WP theme. Most "
|
169 |
+
"themes generate between 3 and 6 thumbnails for each Media Library image."
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: class/view/shortpixel_view.php:165
|
173 |
+
msgid ""
|
174 |
+
"The thumbnails also generate traffic on your website pages and they "
|
175 |
+
"influence your website's speed."
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: class/view/shortpixel_view.php:166
|
179 |
+
msgid ""
|
180 |
+
"It's highly recommended that you include thumbnails in the optimization as "
|
181 |
+
"well."
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
#: class/view/shortpixel_view.php:169
|
185 |
+
msgid "How does it work?"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: class/view/shortpixel_view.php:170
|
189 |
+
msgid ""
|
190 |
+
"The plugin processes images starting with the newest ones you uploaded in "
|
191 |
+
"your Media Library."
|
192 |
+
msgstr ""
|
193 |
+
|
194 |
+
#: class/view/shortpixel_view.php:171
|
195 |
+
msgid "You will be able to pause the process anytime."
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#: class/view/shortpixel_view.php:172
|
199 |
+
msgid ""
|
200 |
+
"<p>Your original images will be stored in a separate back-up folder.</p>"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: class/view/shortpixel_view.php:173
|
204 |
+
msgid ""
|
205 |
+
"You can watch the images being processed live, right here, after you start "
|
206 |
+
"optimizing."
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#. bulk is paused
|
210 |
+
#: class/view/shortpixel_view.php:179
|
211 |
+
msgid "Please see below the optimization status so far:"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: class/view/shortpixel_view.php:182
|
215 |
+
#, php-format
|
216 |
+
msgid "%d images and %d thumbnails are not yet optimized by ShortPixel."
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: class/view/shortpixel_view.php:187
|
220 |
+
msgid ""
|
221 |
+
"You can continue optimizing your Media Gallery from where you left, by "
|
222 |
+
"clicking the Resume processing button. Already optimized images will not be "
|
223 |
+
"reprocessed."
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: class/view/shortpixel_view.php:197
|
227 |
+
msgid "Congratulations!"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: class/view/shortpixel_view.php:198
|
231 |
+
msgid "Your media library has been successfully optimized!"
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: class/view/shortpixel_view.php:199
|
235 |
+
msgid "Summary"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: class/view/shortpixel_view.php:205
|
239 |
+
msgid "Share your optimization results:"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: class/view/shortpixel_view.php:225
|
243 |
+
msgid "I just optimized my images by "
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: class/view/shortpixel_view.php:227
|
247 |
+
msgid "I just optimized my images "
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: class/view/shortpixel_view.php:230
|
251 |
+
msgid "with @ShortPixel, a great plugin for increasing #WordPress page speed:"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: class/view/shortpixel_view.php:231
|
255 |
+
msgid "Tweet"
|
256 |
+
msgstr ""
|
257 |
+
|
258 |
+
#: class/view/shortpixel_view.php:257
|
259 |
+
msgid "Please rate us!"
|
260 |
+
msgstr ""
|
261 |
+
|
262 |
+
#: class/view/shortpixel_view.php:267
|
263 |
+
#, php-format
|
264 |
+
msgid ""
|
265 |
+
"Go to the ShortPixel <a href=\"%soptions-general.php?page=wp-shortpixel#stats"
|
266 |
+
"\">Stats</a> and see all your websites' optimized stats. Download your "
|
267 |
+
"detailed <a href=\"https://api.shortpixel.com/v2/report.php?key=%s"
|
268 |
+
"\">Optimization Report</a> to check your image optimization statistics for "
|
269 |
+
"the last 40 days."
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: class/view/shortpixel_view.php:275
|
273 |
+
msgid ""
|
274 |
+
"The following images could not be processed because of their limited write "
|
275 |
+
"rights. This usually happens if you have changed your hosting provider. "
|
276 |
+
"Please restart the optimization process after you granted write rights to "
|
277 |
+
"all the files below."
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: class/view/shortpixel_view.php:290 wp-shortpixel.php:1755
|
281 |
+
#: wp-shortpixel.php:1756 wp-shortpixel.php:1757 wp-shortpixel.php:1758
|
282 |
+
msgid " images"
|
283 |
+
msgstr ""
|
284 |
+
|
285 |
+
#: class/view/shortpixel_view.php:291
|
286 |
+
msgid " and"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: class/view/shortpixel_view.php:292
|
290 |
+
msgid " thumbnails"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
+
#: class/view/shortpixel_view.php:293
|
294 |
+
msgid " are not yet optimized by ShortPixel."
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: class/view/shortpixel_view.php:295
|
298 |
+
msgid "Some have errors:"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: class/view/shortpixel_view.php:318
|
302 |
+
#, php-format
|
303 |
+
msgid ""
|
304 |
+
"%s images and %s thumbnails were optimized <strong>%s</strong>. You can re-"
|
305 |
+
"optimize <strong>%s</strong> the ones that have backup."
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: class/view/shortpixel_view.php:323
|
309 |
+
#, php-format
|
310 |
+
msgid ""
|
311 |
+
"%s images were optimized <strong>%s</strong>. You can re-optimize <strong>"
|
312 |
+
"%s</strong> the ones that have backup. "
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: class/view/shortpixel_view.php:326
|
316 |
+
msgid " thumbnails will be restored to originals."
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: class/view/shortpixel_view.php:331
|
320 |
+
msgid ""
|
321 |
+
"Restart the optimization process for these images by clicking the button "
|
322 |
+
"below."
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: class/view/shortpixel_view.php:333
|
326 |
+
msgid ""
|
327 |
+
"Restart the optimization process for new images added to your library by "
|
328 |
+
"clicking the button below."
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: class/view/shortpixel_view.php:335
|
332 |
+
#, php-format
|
333 |
+
msgid "Already <strong>%s</strong> optimized images will not be reprocessed."
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: class/view/shortpixel_view.php:337
|
337 |
+
msgid ""
|
338 |
+
"Please note that reoptimizing images as <strong>lossy/lossless</strong> may "
|
339 |
+
"use additional credits."
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: class/view/shortpixel_view.php:338
|
343 |
+
msgid "More info"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: class/view/shortpixel_view.php:344
|
347 |
+
msgid "Restart Optimizing"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: class/view/shortpixel_view.php:355
|
351 |
+
msgid "Bulk Image Optimization by ShortPixel"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: class/view/shortpixel_view.php:361
|
355 |
+
msgid "Lengthy operation in progress:"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: class/view/shortpixel_view.php:362
|
359 |
+
msgid "Optimizing image"
|
360 |
+
msgstr ""
|
361 |
+
|
362 |
+
#: class/view/shortpixel_view.php:369
|
363 |
+
msgid "Error processing file:"
|
364 |
+
msgstr ""
|
365 |
+
|
366 |
+
#: class/view/shortpixel_view.php:375
|
367 |
+
msgid "Just optimized:"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: class/view/shortpixel_view.php:381
|
371 |
+
msgid "Original image"
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: class/view/shortpixel_view.php:385
|
375 |
+
msgid "Optimized image"
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#. translators: percent follows
|
379 |
+
#: class/view/shortpixel_view.php:389
|
380 |
+
msgid "Optimized by:"
|
381 |
+
msgstr ""
|
382 |
+
|
383 |
+
#: class/view/shortpixel_view.php:411
|
384 |
+
msgid "Remaining credits"
|
385 |
+
msgstr ""
|
386 |
+
|
387 |
+
#: class/view/shortpixel_view.php:427 class/view/shortpixel_view.php:436
|
388 |
+
msgid "Media Library"
|
389 |
+
msgstr ""
|
390 |
+
|
391 |
+
#: class/view/shortpixel_view.php:428
|
392 |
+
msgid "and"
|
393 |
+
msgstr ""
|
394 |
+
|
395 |
+
#: class/view/shortpixel_view.php:429
|
396 |
+
msgid "Custom folders"
|
397 |
+
msgstr ""
|
398 |
+
|
399 |
+
#: class/view/shortpixel_view.php:429
|
400 |
+
msgid "optimization in progress ..."
|
401 |
+
msgstr ""
|
402 |
+
|
403 |
+
#: class/view/shortpixel_view.php:430
|
404 |
+
msgid "Bulk optimization has started."
|
405 |
+
msgstr ""
|
406 |
+
|
407 |
+
#: class/view/shortpixel_view.php:431
|
408 |
+
#, php-format
|
409 |
+
msgid ""
|
410 |
+
"This process will take some time, depending on the number of images in your "
|
411 |
+
"library. In the meantime, you can continue using \n"
|
412 |
+
" the admin as usual, <a href=\"%s\" target=\"_blank\">in "
|
413 |
+
"a different browser window or tab</a>.<br>\n"
|
414 |
+
" However, <strong>if you close this window, the bulk "
|
415 |
+
"processing will pause</strong> until you open the media gallery or the "
|
416 |
+
"ShortPixel bulk page again."
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#: class/view/shortpixel_view.php:436
|
420 |
+
msgid "and Custom folders"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: class/view/shortpixel_view.php:436
|
424 |
+
msgid "optimization paused"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: class/view/shortpixel_view.php:437
|
428 |
+
msgid "Bulk processing is paused until you resume the optimization process."
|
429 |
+
msgstr ""
|
430 |
+
|
431 |
+
#. now we display the action buttons always when a type of bulk is running
|
432 |
+
#: class/view/shortpixel_view.php:454
|
433 |
+
msgid "Pause"
|
434 |
+
msgstr ""
|
435 |
+
|
436 |
+
#: class/view/shortpixel_view.php:454
|
437 |
+
msgid "Resume processing"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: class/view/shortpixel_view.php:457
|
441 |
+
msgid "Only other media"
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: class/view/shortpixel_view.php:457
|
445 |
+
msgid "Process only the other media, skipping the Media Library"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: class/view/shortpixel_view.php:461
|
449 |
+
msgid "Manage custom folders"
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: class/view/shortpixel_view.php:469
|
453 |
+
msgid "Processed Images and PDFs:"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: class/view/shortpixel_view.php:470
|
457 |
+
msgid "Processed Thumbnails:"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: class/view/shortpixel_view.php:471
|
461 |
+
msgid "Total files processed:"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: class/view/shortpixel_view.php:472
|
465 |
+
#, php-format
|
466 |
+
msgid "Minus files with <5% optimization (free):"
|
467 |
+
msgstr ""
|
468 |
+
|
469 |
+
#: class/view/shortpixel_view.php:473
|
470 |
+
msgid "Used quota:"
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: class/view/shortpixel_view.php:475
|
474 |
+
msgid "Average optimization:"
|
475 |
+
msgstr ""
|
476 |
+
|
477 |
+
#: class/view/shortpixel_view.php:476
|
478 |
+
msgid "Saved space:"
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#. wp_enqueue_script('jquery.idTabs.js', plugins_url('/js/jquery.idTabs.js',__FILE__) );
|
482 |
+
#: class/view/shortpixel_view.php:502
|
483 |
+
msgid "ShortPixel Plugin Settings"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: class/view/shortpixel_view.php:505
|
487 |
+
msgid "Upgrade now"
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
+
#: class/view/shortpixel_view.php:507
|
491 |
+
msgid "Support"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: class/view/shortpixel_view.php:525
|
495 |
+
msgid "General"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: class/view/shortpixel_view.php:530
|
499 |
+
msgid "Advanced"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#. the span is a trick to keep the sections ordered as nth-child in styles: 1,2,3,4 (otherwise the third section would be nth-child(2) too, because of the form)
|
503 |
+
#: class/view/shortpixel_view.php:537
|
504 |
+
msgid "Statistics"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: class/view/shortpixel_view.php:545
|
508 |
+
msgid "WP Resources"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: class/view/shortpixel_view.php:546
|
512 |
+
msgid "Please reload"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: class/view/shortpixel_view.php:579
|
516 |
+
#, php-format
|
517 |
+
msgid ""
|
518 |
+
"New images uploaded to the Media Library will be optimized automatically.<br/"
|
519 |
+
">If you have existing images you would like to optimize, you can use the <a "
|
520 |
+
"href=\"%supload.php?page=wp-short-pixel-bulk\">Bulk Optimization Tool</a>."
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: class/view/shortpixel_view.php:582
|
524 |
+
msgid "Step 1:"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: class/view/shortpixel_view.php:583
|
528 |
+
#, php-format
|
529 |
+
msgid ""
|
530 |
+
"If you don't have an API Key, <a href=\"https://shortpixel.com/wp-apikey%s\" "
|
531 |
+
"target=\"_blank\">sign up here.</a> It's free and it only takes one minute, "
|
532 |
+
"we promise!"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: class/view/shortpixel_view.php:584
|
536 |
+
msgid "Step 2:"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: class/view/shortpixel_view.php:585
|
540 |
+
msgid "Please enter here the API Key you received by email and press Validate."
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: class/view/shortpixel_view.php:591
|
544 |
+
msgid "API Key:"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: class/view/shortpixel_view.php:601
|
548 |
+
msgid "Multisite API Key"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: class/view/shortpixel_view.php:604
|
552 |
+
msgid "Validate the provided API key"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: class/view/shortpixel_view.php:605
|
556 |
+
msgid "Validate"
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: class/view/shortpixel_view.php:607
|
560 |
+
msgid "Key defined in wp-config.php."
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#. if invalid key we display the link to the API Key
|
564 |
+
#. if valid key we display the rest of the options
|
565 |
+
#: class/view/shortpixel_view.php:618
|
566 |
+
msgid "Compression type:"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: class/view/shortpixel_view.php:622
|
570 |
+
msgid "Lossy (recommended)"
|
571 |
+
msgstr ""
|
572 |
+
|
573 |
+
#: class/view/shortpixel_view.php:623
|
574 |
+
msgid ""
|
575 |
+
"<b>Lossy compression: </b>lossy has a better compression rate than lossless "
|
576 |
+
"compression.</br>The resulting image is identical with the original to the "
|
577 |
+
"human eye. You can run a test for free "
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: class/view/shortpixel_view.php:624 wp-shortpixel.php:1458
|
581 |
+
msgid "here"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: class/view/shortpixel_view.php:626 class/view/shortpixel-list-table.php:111
|
585 |
+
msgid "Lossless"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: class/view/shortpixel_view.php:628
|
589 |
+
msgid ""
|
590 |
+
"<b>Lossless compression: </b> the shrunk image will be identical with the "
|
591 |
+
"original and smaller in size.</br>In some rare cases you will need to use \n"
|
592 |
+
" this type of compression. Some technical drawings or "
|
593 |
+
"images from vector graphics are possible situations."
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: class/view/shortpixel_view.php:638
|
597 |
+
msgid "Also include thumbnails:"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: class/view/shortpixel_view.php:640
|
601 |
+
msgid "Apply compression also to <strong>image thumbnails.</strong> "
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: class/view/shortpixel_view.php:641
|
605 |
+
msgid "thumbnails to optimize"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: class/view/shortpixel_view.php:643
|
609 |
+
msgid ""
|
610 |
+
"It is highly recommended that you optimize the thumbnails as they are "
|
611 |
+
"usually the images most viewed by end users and can generate most traffic."
|
612 |
+
"<br>Please note that thumbnails count up to your total quota."
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: class/view/shortpixel_view.php:648
|
616 |
+
msgid "Image backup"
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: class/view/shortpixel_view.php:650
|
620 |
+
msgid "Save and keep a backup of your original images in a separate folder."
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: class/view/shortpixel_view.php:651
|
624 |
+
msgid ""
|
625 |
+
"You <strong>need to have backup active</strong> in order to be able to "
|
626 |
+
"restore images to originals or to convert from Lossy to Lossless and back."
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: class/view/shortpixel_view.php:655
|
630 |
+
msgid "CMYK to RGB conversion"
|
631 |
+
msgstr ""
|
632 |
+
|
633 |
+
#: class/view/shortpixel_view.php:657
|
634 |
+
msgid "Adjust your images for computer and mobile screen display."
|
635 |
+
msgstr ""
|
636 |
+
|
637 |
+
#: class/view/shortpixel_view.php:658
|
638 |
+
msgid ""
|
639 |
+
"Images for the web only need RGB format and converting them from CMYK to RGB "
|
640 |
+
"makes them smaller."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: class/view/shortpixel_view.php:662
|
644 |
+
msgid "Remove EXIF"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: class/view/shortpixel_view.php:664
|
648 |
+
msgid "Remove the EXIF tag of the image (recommended)."
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: class/view/shortpixel_view.php:665
|
652 |
+
msgid ""
|
653 |
+
"EXIF is a set of various pieces of information that are automatically "
|
654 |
+
"embedded into the image upon creation. This can include GPS position, camera "
|
655 |
+
"manufacturer, date and time, etc. \n"
|
656 |
+
" Unless you really need that data to be "
|
657 |
+
"preserved, we recommend removing it as it can lead to <a href=\"http://blog."
|
658 |
+
"shortpixel.com/how-much-smaller-can-be-images-without-exif-icc\" target="
|
659 |
+
"\"_blank\">better compression rates</a>."
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: class/view/shortpixel_view.php:670
|
663 |
+
msgid "Resize large images"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: class/view/shortpixel_view.php:673
|
667 |
+
msgid "to maximum"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: class/view/shortpixel_view.php:675
|
671 |
+
msgid "pixels wide ×"
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: class/view/shortpixel_view.php:677
|
675 |
+
msgid ""
|
676 |
+
"pixels high (original aspect ratio is preserved and image is not cropped)"
|
677 |
+
msgstr ""
|
678 |
+
|
679 |
+
#: class/view/shortpixel_view.php:679
|
680 |
+
#, php-format
|
681 |
+
msgid ""
|
682 |
+
"Recommended for large photos, like the ones taken with your phone. Saved "
|
683 |
+
"space can go up to 80% or more after resizing."
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: class/view/shortpixel_view.php:683
|
687 |
+
msgid ""
|
688 |
+
"Sizes will be greater or equal to the corresponding value. For example, if "
|
689 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
690 |
+
"resized to 1000x1500px while an image of 3000x2000px will be resized to "
|
691 |
+
"1800x1200px"
|
692 |
+
msgstr ""
|
693 |
+
|
694 |
+
#: class/view/shortpixel_view.php:685
|
695 |
+
msgid ""
|
696 |
+
"Sizes will be smaller or equal to the corresponding value. For example, if "
|
697 |
+
"you set the resize dimensions at 1000x1200, an image of 2000x3000px will be "
|
698 |
+
"resized to 800x1200px while an image of 3000x2000px will be resized to "
|
699 |
+
"1000x667px"
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: class/view/shortpixel_view.php:692 class/view/shortpixel_view.php:847
|
703 |
+
msgid "Save Changes"
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
707 |
+
msgid "Save and go to the Bulk Processing page"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: class/view/shortpixel_view.php:693 class/view/shortpixel_view.php:848
|
711 |
+
#: wp-shortpixel.php:1517 wp-shortpixel.php:1518
|
712 |
+
msgid "Save and Go to Bulk Process"
|
713 |
+
msgstr ""
|
714 |
+
|
715 |
+
#: class/view/shortpixel_view.php:716
|
716 |
+
msgid "Please enter your API key in the General tab first."
|
717 |
+
msgstr ""
|
718 |
+
|
719 |
+
#. if valid key we display the rest of the options
|
720 |
+
#: class/view/shortpixel_view.php:721
|
721 |
+
msgid "Additional media folders"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: class/view/shortpixel_view.php:726
|
725 |
+
msgid "Folder name"
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: class/view/shortpixel_view.php:727
|
729 |
+
msgid "Type &<br>Status"
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: class/view/shortpixel_view.php:728
|
733 |
+
msgid "Files"
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: class/view/shortpixel_view.php:729
|
737 |
+
msgid "Last change"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: class/view/shortpixel_view.php:738 class/view/shortpixel_view.php:743
|
741 |
+
#: class/view/shortpixel_view.php:745 class/view/shortpixel_view.php:747
|
742 |
+
msgid "Empty"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: class/view/shortpixel_view.php:740 class/view/shortpixel_view.php:745
|
746 |
+
#: class/view/shortpixel_view.php:747
|
747 |
+
msgid "Optimized"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
751 |
+
#: class/view/shortpixel-list-table.php:97
|
752 |
+
msgid "Pending"
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: class/view/shortpixel_view.php:741 class/view/shortpixel_view.php:748
|
756 |
+
#: class/view/shortpixel-list-table.php:99
|
757 |
+
msgid "Waiting"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: class/view/shortpixel_view.php:745
|
761 |
+
msgid "Stop monitoring"
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: class/view/shortpixel_view.php:745
|
765 |
+
msgid "Stop optimizing"
|
766 |
+
msgstr ""
|
767 |
+
|
768 |
+
#: class/view/shortpixel_view.php:749
|
769 |
+
msgid "Failed"
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: class/view/shortpixel_view.php:771
|
773 |
+
msgid ""
|
774 |
+
"Full folder refresh, check each file of the folder if it changed since it "
|
775 |
+
"was optimized. Might take up to 1 min. for big folders."
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: class/view/shortpixel_view.php:772
|
779 |
+
msgid "Refresh"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: class/view/shortpixel_view.php:783
|
783 |
+
msgid "Select the images folder on your server."
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: class/view/shortpixel_view.php:784
|
787 |
+
msgid "Select ..."
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: class/view/shortpixel_view.php:786
|
791 |
+
msgid "Add Folder"
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: class/view/shortpixel_view.php:788
|
795 |
+
msgid ""
|
796 |
+
"Use the Select... button to select site folders. ShortPixel will optimize "
|
797 |
+
"images and PDFs from the specified folders and their subfolders. The "
|
798 |
+
"optimization status for each image or PDF in these folders can be seen in "
|
799 |
+
"the <a href=\"upload.php?page=wp-short-pixel-custom\">Other Media list</a>, "
|
800 |
+
"under the Media menu."
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: class/view/shortpixel_view.php:792
|
804 |
+
msgid "Select the images folder"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: class/view/shortpixel_view.php:794
|
808 |
+
msgid "Cancel"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: class/view/shortpixel_view.php:795
|
812 |
+
msgid "Select"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: class/view/shortpixel_view.php:807
|
816 |
+
msgid "Optimize NextGen galleries"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: class/view/shortpixel_view.php:809
|
820 |
+
msgid "Optimize NextGen galleries."
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: class/view/shortpixel_view.php:811
|
824 |
+
msgid ""
|
825 |
+
"Check this to add all your current NextGen galleries to the custom folders "
|
826 |
+
"list and to also have all the future NextGen galleries and images optimized "
|
827 |
+
"automatically by ShortPixel."
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: class/view/shortpixel_view.php:817
|
831 |
+
msgid "WebP versions"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: class/view/shortpixel_view.php:819
|
835 |
+
msgid ""
|
836 |
+
"Create also <a href=\"http://blog.shortpixel.com/how-webp-images-can-speed-"
|
837 |
+
"up-your-site/\" target=\"_blank\">WebP versions</a> of the images "
|
838 |
+
"<strong>for free</strong>."
|
839 |
+
msgstr ""
|
840 |
+
|
841 |
+
#: class/view/shortpixel_view.php:821
|
842 |
+
#, php-format
|
843 |
+
msgid ""
|
844 |
+
"WebP images can be up to three times smaller than PNGs and 25% smaller than "
|
845 |
+
"JPGs. Choosing this option <strong>does not use up additional credits</"
|
846 |
+
"strong>."
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: class/view/shortpixel_view.php:826
|
850 |
+
msgid "HTTP AUTH credentials"
|
851 |
+
msgstr ""
|
852 |
+
|
853 |
+
#: class/view/shortpixel_view.php:828
|
854 |
+
msgid "User"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: class/view/shortpixel_view.php:829
|
858 |
+
msgid "Password"
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: class/view/shortpixel_view.php:831
|
862 |
+
msgid ""
|
863 |
+
"Only fill in these fields if your site (front-end) is not publicly "
|
864 |
+
"accessible and visitors need a user/pass to connect to it. If you don't know "
|
865 |
+
"what is this then just <strong>leave the fields empty</strong>."
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: class/view/shortpixel_view.php:836
|
869 |
+
msgid "Process in front-end"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: class/view/shortpixel_view.php:838
|
873 |
+
msgid "Automatically optimize images added by users in front end."
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: class/view/shortpixel_view.php:840
|
877 |
+
msgid ""
|
878 |
+
"Check this if you have users that add images or PDF documents from custom "
|
879 |
+
"forms in the front-end. This could increase the load on your server if you "
|
880 |
+
"have a lot of users simultaneously connected."
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: class/view/shortpixel_view.php:860
|
884 |
+
msgid "Your ShortPixel Stats"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: class/view/shortpixel_view.php:864
|
888 |
+
msgid "Average compression of your files:"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: class/view/shortpixel_view.php:868
|
892 |
+
msgid "Saved disk space by ShortPixel"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: class/view/shortpixel_view.php:872
|
896 |
+
msgid "Bandwith* saved with ShortPixel:"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: class/view/shortpixel_view.php:878
|
900 |
+
msgid "* Saved bandwidth is calculated at 10,000 impressions/image"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: class/view/shortpixel_view.php:880
|
904 |
+
msgid "Your ShortPixel Plan"
|
905 |
+
msgstr ""
|
906 |
+
|
907 |
+
#: class/view/shortpixel_view.php:884
|
908 |
+
msgid "Your ShortPixel plan"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: class/view/shortpixel_view.php:886
|
912 |
+
#, php-format
|
913 |
+
msgid ""
|
914 |
+
"%s/month, renews in %s days, on %s ( <a href=\"https://shortpixel.com/login/"
|
915 |
+
"%s\" target=\"_blank\">Need More? See the options available</a> )"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: class/view/shortpixel_view.php:889
|
919 |
+
#, php-format
|
920 |
+
msgid ""
|
921 |
+
"<a href=\"https://shortpixel.com/login/%s/tell-a-friend\" target=\"_blank"
|
922 |
+
"\">Join our friend referral system</a> to win more credits. For each user "
|
923 |
+
"that joins, you receive +100 images credits/month."
|
924 |
+
msgstr ""
|
925 |
+
|
926 |
+
#: class/view/shortpixel_view.php:894
|
927 |
+
msgid "One time credits:"
|
928 |
+
msgstr ""
|
929 |
+
|
930 |
+
#: class/view/shortpixel_view.php:898
|
931 |
+
msgid "Number of images processed this month:"
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: class/view/shortpixel_view.php:900
|
935 |
+
msgid "see report"
|
936 |
+
msgstr ""
|
937 |
+
|
938 |
+
#: class/view/shortpixel_view.php:905
|
939 |
+
msgid "Remaining** images in your plan:"
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: class/view/shortpixel_view.php:906
|
943 |
+
msgid "images"
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: class/view/shortpixel_view.php:912
|
947 |
+
#, php-format
|
948 |
+
msgid ""
|
949 |
+
"** Increase your image quota by <a href=\"https://shortpixel.com/login/%s\" "
|
950 |
+
"target=\"_blank\">upgrading your ShortPixel plan.</a>"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: class/view/shortpixel_view.php:919
|
954 |
+
msgid "Total number of processed files:"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: class/view/shortpixel_view.php:924
|
958 |
+
msgid ""
|
959 |
+
"Original images are stored in a backup folder. Your backup folder size is "
|
960 |
+
"now:"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: class/view/shortpixel_view.php:928
|
964 |
+
msgid "Empty backups"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#. not a file that we can process
|
968 |
+
#: class/view/shortpixel_view.php:945 wp-shortpixel.php:348
|
969 |
+
#: wp-shortpixel.php:374 wp-shortpixel.php:1813
|
970 |
+
msgid "Optimization N/A"
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: class/view/shortpixel_view.php:948
|
974 |
+
msgid "Image does not exist."
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#. multisite key - need to be validated on each site but it's not invalid
|
978 |
+
#: class/view/shortpixel_view.php:952
|
979 |
+
msgid ""
|
980 |
+
"Please <a href=\"options-general.php?page=wp-shortpixel\">go to Settings</a> "
|
981 |
+
"to validate the API Key."
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: class/view/shortpixel_view.php:954
|
985 |
+
msgid ""
|
986 |
+
"Invalid API Key. <a href=\"options-general.php?page=wp-shortpixel\">Check "
|
987 |
+
"your Settings</a>"
|
988 |
+
msgstr ""
|
989 |
+
|
990 |
+
#: class/view/shortpixel_view.php:963
|
991 |
+
msgid "Optimize now"
|
992 |
+
msgstr ""
|
993 |
+
|
994 |
+
#: class/view/shortpixel_view.php:973 class/view/shortpixel-list-table.php:55
|
995 |
+
#: wp-shortpixel.php:282
|
996 |
+
msgid "Retry"
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: class/view/shortpixel_view.php:990 class/view/shortpixel-list-table.php:93
|
1000 |
+
#: wp-shortpixel.php:273
|
1001 |
+
msgid "Reduced by"
|
1002 |
+
msgstr ""
|
1003 |
+
|
1004 |
+
#: class/view/shortpixel_view.php:993 class/view/shortpixel-list-table.php:92
|
1005 |
+
#: class/view/shortpixel-list-table.php:94 wp-shortpixel.php:274
|
1006 |
+
msgid "Bonus processing"
|
1007 |
+
msgstr ""
|
1008 |
+
|
1009 |
+
#: class/view/shortpixel_view.php:996
|
1010 |
+
#, php-format
|
1011 |
+
msgid "+%s of %s thumbnails optimized"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: class/view/shortpixel_view.php:997
|
1015 |
+
#, php-format
|
1016 |
+
msgid "+%s thumbnails optimized"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: class/view/shortpixel_view.php:1005
|
1020 |
+
#, php-format
|
1021 |
+
msgid "Optimize %s thumbnails"
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: class/view/shortpixel_view.php:1012
|
1025 |
+
msgid "Reoptimize from the backed-up image"
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: class/view/shortpixel_view.php:1013
|
1029 |
+
msgid "Re-optimize"
|
1030 |
+
msgstr ""
|
1031 |
+
|
1032 |
+
#: class/view/shortpixel_view.php:1017 wp-shortpixel.php:278
|
1033 |
+
msgid "Restore backup"
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: class/view/shortpixel_view.php:1030 wp-shortpixel.php:280
|
1037 |
+
msgid "Extend Quota"
|
1038 |
+
msgstr ""
|
1039 |
+
|
1040 |
+
#: class/view/shortpixel_view.php:1033 wp-shortpixel.php:281
|
1041 |
+
msgid "Check Quota"
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: class/view/shortpixel-list-table.php:15
|
1045 |
+
msgid "Image"
|
1046 |
+
msgstr ""
|
1047 |
+
|
1048 |
+
#. singular name of the listed records
|
1049 |
+
#: class/view/shortpixel-list-table.php:16
|
1050 |
+
msgid "Images"
|
1051 |
+
msgstr ""
|
1052 |
+
|
1053 |
+
#. pe viitor. $columns['cb'] = '<input type="checkbox" />';
|
1054 |
+
#: class/view/shortpixel-list-table.php:29
|
1055 |
+
msgid "Filename"
|
1056 |
+
msgstr ""
|
1057 |
+
|
1058 |
+
#: class/view/shortpixel-list-table.php:30
|
1059 |
+
msgid "Folder"
|
1060 |
+
msgstr ""
|
1061 |
+
|
1062 |
+
#: class/view/shortpixel-list-table.php:31
|
1063 |
+
msgid "Type"
|
1064 |
+
msgstr ""
|
1065 |
+
|
1066 |
+
#: class/view/shortpixel-list-table.php:32
|
1067 |
+
msgid "Status"
|
1068 |
+
msgstr ""
|
1069 |
+
|
1070 |
+
#: class/view/shortpixel-list-table.php:33
|
1071 |
+
msgid "Options"
|
1072 |
+
msgstr ""
|
1073 |
+
|
1074 |
+
#: class/view/shortpixel-list-table.php:52
|
1075 |
+
msgid "Optimize"
|
1076 |
+
msgstr ""
|
1077 |
+
|
1078 |
+
#: class/view/shortpixel-list-table.php:58
|
1079 |
+
msgid "Restore"
|
1080 |
+
msgstr ""
|
1081 |
+
|
1082 |
+
#: class/view/shortpixel-list-table.php:61
|
1083 |
+
msgid "Re-optimize lossless"
|
1084 |
+
msgstr ""
|
1085 |
+
|
1086 |
+
#: class/view/shortpixel-list-table.php:64
|
1087 |
+
msgid "Re-optimize lossy"
|
1088 |
+
msgstr ""
|
1089 |
+
|
1090 |
+
#: class/view/shortpixel-list-table.php:67
|
1091 |
+
msgid "Check quota"
|
1092 |
+
msgstr ""
|
1093 |
+
|
1094 |
+
#: class/view/shortpixel-list-table.php:68
|
1095 |
+
msgid "View"
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: class/view/shortpixel-list-table.php:89
|
1099 |
+
msgid "Restored"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: class/view/shortpixel-list-table.php:103
|
1103 |
+
msgid "code"
|
1104 |
+
msgstr ""
|
1105 |
+
|
1106 |
+
#: class/view/shortpixel-list-table.php:111
|
1107 |
+
msgid "Lossy"
|
1108 |
+
msgstr ""
|
1109 |
+
|
1110 |
+
#: class/view/shortpixel-list-table.php:112
|
1111 |
+
msgid "Keep EXIF"
|
1112 |
+
msgstr ""
|
1113 |
+
|
1114 |
+
#: class/view/shortpixel-list-table.php:113
|
1115 |
+
msgid "Preserve CMYK"
|
1116 |
+
msgstr ""
|
1117 |
+
|
1118 |
+
#: class/view/shortpixel-list-table.php:122
|
1119 |
+
msgid ""
|
1120 |
+
"No images avaliable. Go to <a href=\"options-general.php?page=wp-"
|
1121 |
+
"shortpixel#adv-settings\">Advanced Settings</a> to configure additional "
|
1122 |
+
"folders to be optimized."
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: class/view/shortpixel-list-table.php:255
|
1126 |
+
msgid "Show more details"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: class/db/shortpixel-meta-facade.php:165
|
1130 |
+
msgid "Error"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: class/db/shortpixel-custom-meta-dao.php:187
|
1134 |
+
msgid "Folder already added."
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: class/db/shortpixel-custom-meta-dao.php:191
|
1138 |
+
#, php-format
|
1139 |
+
msgid ""
|
1140 |
+
"The %s folder cannot be processed as it's not inside the root path of your "
|
1141 |
+
"website."
|
1142 |
+
msgstr ""
|
1143 |
+
|
1144 |
+
#: class/db/shortpixel-custom-meta-dao.php:200
|
1145 |
+
msgid ""
|
1146 |
+
"This folder contains Media Library images. To optimize Media Library images "
|
1147 |
+
"please go to <a href=\"upload.php?mode=list\">Media Library list view</a> or "
|
1148 |
+
"to <a href=\"upload.php?page=wp-short-pixel-bulk\">SortPixel Bulk page</a>."
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: class/db/shortpixel-custom-meta-dao.php:204
|
1152 |
+
msgid "Inserted folder doesn't have an ID!"
|
1153 |
+
msgstr ""
|
1154 |
+
|
1155 |
+
#: class/db/shortpixel-custom-meta-dao.php:224
|
1156 |
+
msgid ""
|
1157 |
+
"This folder contains the ShortPixel Backups. Please select a different "
|
1158 |
+
"folder."
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#. var_dump($allFolders);
|
1162 |
+
#: class/db/shortpixel-custom-meta-dao.php:247
|
1163 |
+
#, php-format
|
1164 |
+
msgid "Folder already included in %s."
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: class/db/shortpixel-custom-meta-dao.php:250
|
1168 |
+
msgid "Folder does not exist."
|
1169 |
+
msgstr ""
|
1170 |
+
|
1171 |
+
#: class/model/shortpixel-folder.php:76 class/model/shortpixel-folder.php:149
|
1172 |
+
#, php-format
|
1173 |
+
msgid "Folder %s is not writeable. Please check permissions and try again."
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: wp-shortpixel.php:160
|
1177 |
+
msgid "ShortPixel Settings"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#. translators: title and menu name for the Other media page
|
1181 |
+
#: wp-shortpixel.php:166
|
1182 |
+
msgid "Other Media Optimized by ShortPixel"
|
1183 |
+
msgstr ""
|
1184 |
+
|
1185 |
+
#: wp-shortpixel.php:166
|
1186 |
+
msgid "Other Media"
|
1187 |
+
msgstr ""
|
1188 |
+
|
1189 |
+
#. translators: title and menu name for the Bulk Processing page
|
1190 |
+
#: wp-shortpixel.php:169
|
1191 |
+
msgid "ShortPixel Bulk Process"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: wp-shortpixel.php:169
|
1195 |
+
msgid "Bulk ShortPixel"
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: wp-shortpixel.php:216
|
1199 |
+
msgid "Media alert dismissed"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: wp-shortpixel.php:269
|
1203 |
+
msgid "Optimize with ShortPixel"
|
1204 |
+
msgstr ""
|
1205 |
+
|
1206 |
+
#: wp-shortpixel.php:270
|
1207 |
+
msgid ""
|
1208 |
+
"In order to access the ShortPixel Optimization actions and info, please "
|
1209 |
+
"change to {0}List View{1}List View{2}Dismiss{3}"
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: wp-shortpixel.php:271
|
1213 |
+
msgid ""
|
1214 |
+
"This type of optimization will apply to new uploaded images.\\nImages that "
|
1215 |
+
"were already processed will not be re-optimized unless you restart the bulk "
|
1216 |
+
"process."
|
1217 |
+
msgstr ""
|
1218 |
+
|
1219 |
+
#: wp-shortpixel.php:272
|
1220 |
+
msgid "Are you sure you want to stop optimizing the folder {0}?"
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: wp-shortpixel.php:275
|
1224 |
+
msgid "+{0} thumbnails optimized"
|
1225 |
+
msgstr ""
|
1226 |
+
|
1227 |
+
#: wp-shortpixel.php:276
|
1228 |
+
msgid "Optimize {0} thumbnails"
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: wp-shortpixel.php:277
|
1232 |
+
msgid "Reoptimize {0}"
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: wp-shortpixel.php:279
|
1236 |
+
msgid "Get API Key"
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#: wp-shortpixel.php:283
|
1240 |
+
msgid "This content is not processable."
|
1241 |
+
msgstr ""
|
1242 |
+
|
1243 |
+
#: wp-shortpixel.php:284
|
1244 |
+
msgid "Image waiting to optimize thumbnails"
|
1245 |
+
msgstr ""
|
1246 |
+
|
1247 |
+
#. translators: toolbar icon tooltip
|
1248 |
+
#: wp-shortpixel.php:297
|
1249 |
+
msgid "ShortPixel optimizing..."
|
1250 |
+
msgstr ""
|
1251 |
+
|
1252 |
+
#. translators: toolbar icon tooltip
|
1253 |
+
#: wp-shortpixel.php:308
|
1254 |
+
msgid "ShortPixel quota exceeded. Click for details."
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: wp-shortpixel.php:564
|
1258 |
+
msgid "Missing API Key"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#. translators: console message Empty queue 1234 -> 1234
|
1262 |
+
#: wp-shortpixel.php:614
|
1263 |
+
msgid "Empty queue "
|
1264 |
+
msgstr ""
|
1265 |
+
|
1266 |
+
#: wp-shortpixel.php:740
|
1267 |
+
msgid " Retry limit reached. Skipping file ID "
|
1268 |
+
msgstr ""
|
1269 |
+
|
1270 |
+
#: wp-shortpixel.php:835
|
1271 |
+
msgid "NextGen image not found"
|
1272 |
+
msgstr ""
|
1273 |
+
|
1274 |
+
#: wp-shortpixel.php:1004 wp-shortpixel.php:1018
|
1275 |
+
msgid "Could not restore from backup: "
|
1276 |
+
msgstr ""
|
1277 |
+
|
1278 |
+
#: wp-shortpixel.php:1037
|
1279 |
+
msgid "No thumbnails to optimize for ID: "
|
1280 |
+
msgstr ""
|
1281 |
+
|
1282 |
+
#: wp-shortpixel.php:1037
|
1283 |
+
msgid "Please optimize image for ID: "
|
1284 |
+
msgstr ""
|
1285 |
+
|
1286 |
+
#: wp-shortpixel.php:1142
|
1287 |
+
msgid "Refresh custom folders content"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: wp-shortpixel.php:1143
|
1291 |
+
msgid "Refresh folders"
|
1292 |
+
msgstr ""
|
1293 |
+
|
1294 |
+
#: wp-shortpixel.php:1146
|
1295 |
+
msgid "Other Media optimized by ShortPixel"
|
1296 |
+
msgstr ""
|
1297 |
+
|
1298 |
+
#: wp-shortpixel.php:1322 wp-shortpixel.php:1413
|
1299 |
+
msgid "You do not have sufficient permissions to access this page."
|
1300 |
+
msgstr ""
|
1301 |
+
|
1302 |
+
#: wp-shortpixel.php:1451
|
1303 |
+
#, php-format
|
1304 |
+
msgid ""
|
1305 |
+
"The key you provided has %s characters. The API key should have 20 "
|
1306 |
+
"characters, letters and numbers only."
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: wp-shortpixel.php:1453
|
1310 |
+
msgid ""
|
1311 |
+
"Please check that the API key is the same as the one you received in your "
|
1312 |
+
"confirmation email."
|
1313 |
+
msgstr ""
|
1314 |
+
|
1315 |
+
#: wp-shortpixel.php:1455
|
1316 |
+
msgid "If this problem persists, please contact us at "
|
1317 |
+
msgstr ""
|
1318 |
+
|
1319 |
+
#: wp-shortpixel.php:1457
|
1320 |
+
msgid " or "
|
1321 |
+
msgstr ""
|
1322 |
+
|
1323 |
+
#: wp-shortpixel.php:1475
|
1324 |
+
msgid ""
|
1325 |
+
"API Key is valid but your site is not accessible from our servers. Please "
|
1326 |
+
"make sure that your server is accessible from the Internet before using the "
|
1327 |
+
"API or otherwise we won't be able to optimize them."
|
1328 |
+
msgstr ""
|
1329 |
+
|
1330 |
+
#: wp-shortpixel.php:1478
|
1331 |
+
msgid ""
|
1332 |
+
"API Key valid! <br>You seem to be running a multisite, please note that API "
|
1333 |
+
"Key can also be configured in wp-config.php like this:"
|
1334 |
+
msgstr ""
|
1335 |
+
|
1336 |
+
#: wp-shortpixel.php:1481
|
1337 |
+
msgid "API Key valid!"
|
1338 |
+
msgstr ""
|
1339 |
+
|
1340 |
+
#: wp-shortpixel.php:1488
|
1341 |
+
#, php-format
|
1342 |
+
msgid ""
|
1343 |
+
"There is something preventing us to create a new folder for backing up your "
|
1344 |
+
"original files.<BR>Please make sure that folder <b>%s</b> has the necessary "
|
1345 |
+
"write and read rights."
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: wp-shortpixel.php:1536
|
1349 |
+
msgid "Folder added successfully."
|
1350 |
+
msgstr ""
|
1351 |
+
|
1352 |
+
#: wp-shortpixel.php:1712
|
1353 |
+
msgid ""
|
1354 |
+
"API Key could not be validated due to a connectivity error.<BR>Your firewall "
|
1355 |
+
"may be blocking us. Please contact your hosting provider and ask them to "
|
1356 |
+
"allow connections from your site to IP 176.9.106.46.<BR> If you still cannot "
|
1357 |
+
"validate your API Key after this, please <a href=\"https://shortpixel.com/"
|
1358 |
+
"contact\" target=\"_blank\">contact us</a> and we will try to help. "
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: wp-shortpixel.php:1713 wp-shortpixel.php:1714
|
1362 |
+
msgid "Information unavailable. Please check your API key."
|
1363 |
+
msgstr ""
|
1364 |
+
|
1365 |
+
#: wp-shortpixel.php:1789
|
1366 |
+
msgid "PDF not processed."
|
1367 |
+
msgstr ""
|
1368 |
+
|
1369 |
+
#: wp-shortpixel.php:1820 wp-shortpixel.php:1822
|
1370 |
+
msgid "Cannot write optimized file"
|
1371 |
+
msgstr ""
|
1372 |
+
|
1373 |
+
#: wp-shortpixel.php:1823
|
1374 |
+
msgid "Why?"
|
1375 |
+
msgstr ""
|
1376 |
+
|
1377 |
+
#: wp-shortpixel.php:1831
|
1378 |
+
msgid "Image does not exist"
|
1379 |
+
msgstr ""
|
1380 |
+
|
1381 |
+
#: wp-shortpixel.php:1835
|
1382 |
+
msgid "Image waiting to be processed."
|
1383 |
+
msgstr ""
|
1384 |
+
|
1385 |
+
#: wp-shortpixel.php:1853
|
1386 |
+
msgid "ShortPixel Statistics"
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: wp-shortpixel.php:1871
|
1390 |
+
msgid "ShortPixel Compression"
|
1391 |
+
msgstr ""
|
1392 |
+
|
1393 |
+
#: shortpixel_api.php:142
|
1394 |
+
msgid "The file(s) do not exist on disk."
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: shortpixel_api.php:157 shortpixel_api.php:168
|
1398 |
+
msgid "Timed out while processing."
|
1399 |
+
msgstr ""
|
1400 |
+
|
1401 |
+
#: shortpixel_api.php:161
|
1402 |
+
msgid "Image ID"
|
1403 |
+
msgstr ""
|
1404 |
+
|
1405 |
+
#: shortpixel_api.php:161
|
1406 |
+
msgid "Media ID"
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: shortpixel_api.php:162
|
1410 |
+
msgid "Skip this image, try the next one."
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#. send requests to API
|
1414 |
+
#. response <> 200 -> there was an error apparently?
|
1415 |
+
#: shortpixel_api.php:179 shortpixel_api.php:212 shortpixel_api.php:215
|
1416 |
+
msgid "There was an error and your request was not processed."
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: shortpixel_api.php:231
|
1420 |
+
msgid "Unecognized API response. Please contact support."
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: shortpixel_api.php:238
|
1424 |
+
msgid "Quota exceeded."
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: shortpixel_api.php:326
|
1428 |
+
msgid "Error downloading file"
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: shortpixel_api.php:334
|
1432 |
+
#, php-format
|
1433 |
+
msgid ""
|
1434 |
+
"Error downloading file - incorrect file size (downloaded: %s, correct: %s )"
|
1435 |
+
msgstr ""
|
1436 |
+
|
1437 |
+
#: shortpixel_api.php:337
|
1438 |
+
msgid "Unable to locate downloaded file"
|
1439 |
+
msgstr ""
|
1440 |
+
|
1441 |
+
#. array with final paths for these files
|
1442 |
+
#. creates backup folder if it doesn't exist
|
1443 |
+
#: shortpixel_api.php:399
|
1444 |
+
msgid "Backup folder does not exist and it cannot be created"
|
1445 |
+
msgstr ""
|
1446 |
+
|
1447 |
+
#. file couldn't be saved in backup folder
|
1448 |
+
#: shortpixel_api.php:419
|
1449 |
+
#, php-format
|
1450 |
+
msgid "Cannot save file <i>%s</i> in backup directory"
|
1451 |
+
msgstr ""
|
1452 |
+
|
1453 |
+
#. cannot write to the backup dir, return with an error
|
1454 |
+
#: shortpixel_api.php:428
|
1455 |
+
msgid "Cannot save file in backup directory"
|
1456 |
+
msgstr ""
|
1457 |
+
|
1458 |
+
#: shortpixel_api.php:491
|
1459 |
+
#, php-format
|
1460 |
+
msgid "Optimized version of %s file(s) couldn't be updated."
|
1461 |
+
msgstr ""
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Contributors: AlexSP
|
|
4 |
Tags: image optimizer, image optimization, compress pdf, compress jpeg, compress png, image compression, wp smush, compress images, optimize images, shrink jpeg, optimize photos, tinypng
|
5 |
|
6 |
Requires at least: 3.2.0
|
7 |
-
Tested up to: 4.
|
8 |
-
Stable tag: 4.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -45,6 +45,8 @@ Make an instant <a rel="friend" href="http://shortpixel.com/image-compression-te
|
|
45 |
* compatible with WP Engine hosted websites and all the major hosting providers
|
46 |
* compatible with WPML and WPML Media plugins
|
47 |
* skip already optimized images
|
|
|
|
|
48 |
* images that are optimized less that 5% are bonus
|
49 |
* 40 days optimization report with all image details and overall statistics
|
50 |
* **free optimization credits for non-profits**, <a href="https://shortpixel.com/contact" target="_blank">contact us</a> for details
|
@@ -178,6 +180,17 @@ The ShortPixel team is here to help. <a href="https://shortpixel.com/contact">Co
|
|
178 |
|
179 |
== Changelog ==
|
180 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
= 4.1.7 =
|
182 |
|
183 |
* fix backup thumbnail js error
|
4 |
Tags: image optimizer, image optimization, compress pdf, compress jpeg, compress png, image compression, wp smush, compress images, optimize images, shrink jpeg, optimize photos, tinypng
|
5 |
|
6 |
Requires at least: 3.2.0
|
7 |
+
Tested up to: 4.7
|
8 |
+
Stable tag: 4.2.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
45 |
* compatible with WP Engine hosted websites and all the major hosting providers
|
46 |
* compatible with WPML and WPML Media plugins
|
47 |
* skip already optimized images
|
48 |
+
* compatible with watermarking plugins
|
49 |
+
* option to deactivate auto-optimizing images on upload
|
50 |
* images that are optimized less that 5% are bonus
|
51 |
* 40 days optimization report with all image details and overall statistics
|
52 |
* **free optimization credits for non-profits**, <a href="https://shortpixel.com/contact" target="_blank">contact us</a> for details
|
180 |
|
181 |
== Changelog ==
|
182 |
|
183 |
+
= 4.2.0 =
|
184 |
+
|
185 |
+
* multilanguage support
|
186 |
+
* add retinas count to the ShortPixel Compression column
|
187 |
+
* add option not to automatically optimize Media Library images when added
|
188 |
+
* fix the size bug happening when optimizing main image then optimizing only thumbnails with resize active
|
189 |
+
* restrict log messages to SHORTPIXEL_DEBUG instead of WP_DEBUG
|
190 |
+
* fix compatibility with WP < 3.9
|
191 |
+
* fix compatibility with watermarking plugins like Image Watermark
|
192 |
+
* fix compatibility with WPBakery Visual Composer
|
193 |
+
|
194 |
= 4.1.7 =
|
195 |
|
196 |
* fix backup thumbnail js error
|
res/js/jquery.tooltip.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
(function($){
|
2 |
|
3 |
-
$.fn.
|
4 |
|
5 |
-
$.fn.
|
6 |
attributeName:'title',
|
7 |
borderColor:'#ccc',
|
8 |
borderSize:'1',
|
@@ -29,7 +29,7 @@
|
|
29 |
};
|
30 |
|
31 |
//s = settings
|
32 |
-
var s = $.extend({}, $.fn.
|
33 |
|
34 |
var positionTooltip = function(e){
|
35 |
|
1 |
(function($){
|
2 |
|
3 |
+
$.fn.spTooltip = function(instanceSettings){
|
4 |
|
5 |
+
$.fn.spTooltip.defaultsSettings = {
|
6 |
attributeName:'title',
|
7 |
borderColor:'#ccc',
|
8 |
borderSize:'1',
|
29 |
};
|
30 |
|
31 |
//s = settings
|
32 |
+
var s = $.extend({}, $.fn.spTooltip.defaultsSettings , instanceSettings || {});
|
33 |
|
34 |
var positionTooltip = function(e){
|
35 |
|
res/js/short-pixel.js
CHANGED
@@ -6,11 +6,17 @@ jQuery(document).ready(function($){
|
|
6 |
//are we on media list?
|
7 |
if( jQuery('table.wp-list-table.media').length > 0) {
|
8 |
//register a bulk action
|
9 |
-
jQuery('select[name^="action"] option:last-child').before('<option value="short-pixel-bulk">
|
10 |
}
|
|
|
|
|
|
|
11 |
if( ShortPixel.MEDIA_ALERT == 'todo' && jQuery('div.media-frame.mode-grid').length > 0) {
|
12 |
//the media table is not in the list mode, alert the user
|
13 |
-
jQuery('div.media-frame.mode-grid').before('<div id="short-pixel-media-alert" class="notice notice-warning"><p>
|
|
|
|
|
|
|
14 |
}
|
15 |
//
|
16 |
jQuery(window).unload(function(){
|
@@ -18,7 +24,6 @@ jQuery(document).ready(function($){
|
|
18 |
clearBulkProcessor();
|
19 |
}
|
20 |
});
|
21 |
-
ShortPixel.setOptions(ShortPixelConstants);
|
22 |
//check if bulk processing
|
23 |
checkQuotaExceededAlert();
|
24 |
checkBulkProgress();
|
@@ -59,7 +64,7 @@ var ShortPixel = function() {
|
|
59 |
if(this !== prev) {
|
60 |
prev = this;
|
61 |
}
|
62 |
-
alert(
|
63 |
};
|
64 |
}
|
65 |
ShortPixel.enableResize("#resize");
|
@@ -75,7 +80,7 @@ var ShortPixel = function() {
|
|
75 |
function setupAdvancedTab() {
|
76 |
jQuery("input.remove-folder-button").click(function(){
|
77 |
var path = jQuery(this).data("value");
|
78 |
-
var r = confirm(
|
79 |
if (r == true) {
|
80 |
jQuery("#removeFolder").val(path);
|
81 |
jQuery('#wp_shortpixel_options').submit();
|
@@ -83,7 +88,7 @@ var ShortPixel = function() {
|
|
83 |
});
|
84 |
jQuery("input.recheck-folder-button").click(function(){
|
85 |
var path = jQuery(this).data("value");
|
86 |
-
var r = confirm(
|
87 |
if (r == true) {
|
88 |
jQuery("#recheckFolder").val(path);
|
89 |
jQuery('#wp_shortpixel_options').submit();
|
@@ -134,12 +139,13 @@ var ShortPixel = function() {
|
|
134 |
}
|
135 |
}
|
136 |
|
137 |
-
function successMsg(id, percent, type, thumbsCount) {
|
138 |
-
return (percent > 0 ? "<div class='sp-column-info'>
|
139 |
+ (percent > 0 && percent < 5 ? "<br>" : '')
|
140 |
-
+ (percent < 5 ?
|
141 |
+ (type.length > 0 ? " ("+type+")" : "")
|
142 |
-
+ (0 + thumbsCount > 0 ? "<br
|
|
|
143 |
+ "</div>";
|
144 |
}
|
145 |
|
@@ -159,9 +165,10 @@ var ShortPixel = function() {
|
|
159 |
if(backupEnabled == 1) {
|
160 |
var otherType = type.length > 0 ? (type == "lossy" ? "lossless" : "lossy") : "";
|
161 |
return '<div class="sp-column-actions">'
|
162 |
-
+ (thumbsTotal > thumbsCount ? "<a class='button button-smaller button-primary' href=\"javascript:optimizeThumbs(" + id + ");\">
|
163 |
-
|
164 |
-
+ "<a class='button button-smaller' href=\"
|
|
|
165 |
+ "</div>";
|
166 |
}
|
167 |
return "";
|
@@ -378,7 +385,7 @@ function checkBulkProgress() {
|
|
378 |
&& url.search(adminUrl + "post-new.php") < 0
|
379 |
&& url.search(adminUrl + "post.php") < 0
|
380 |
&& url.search("page=nggallery-manage-gallery") < 0
|
381 |
-
&& (ShortPixel.FRONT_BOOTSTRAP == 0 || url.search(
|
382 |
) {
|
383 |
hideToolBarAlert();
|
384 |
return;
|
@@ -405,10 +412,6 @@ function checkBulkProgress() {
|
|
405 |
console.log(localStorage.bulkTime);
|
406 |
checkBulkProcessingCallApi();
|
407 |
} else {
|
408 |
-
/*console.log("not the bulk processor (bulkProcessor: " + ShortPixel.bulkProcessor.toString()
|
409 |
-
+ ", bulkTime: " + (localStorage.bulkTime == 'undefined' ? 'undefined': localStorage.bulkTime.toString())
|
410 |
-
+ " bulkPage: " + localStorage.bulkPage.toString()
|
411 |
-
+ " passed: " + (Math.floor(Date.now() / 1000) - localStorage.bulkTime).toString());*/
|
412 |
setTimeout(checkBulkProgress, 5000);
|
413 |
}
|
414 |
}
|
@@ -436,14 +439,14 @@ function checkBulkProcessingCallApi(){
|
|
436 |
|
437 |
switch (data["Status"]) {
|
438 |
case ShortPixel.STATUS_NO_KEY:
|
439 |
-
setCellMessage(id, "<a class='button button-smaller button-primary' href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">
|
440 |
data["Message"]);
|
441 |
showToolBarAlert(ShortPixel.STATUS_NO_KEY);
|
442 |
break;
|
443 |
case ShortPixel.STATUS_QUOTA_EXCEEDED:
|
444 |
setCellMessage(id, "<a class='button button-smaller button-primary' href=\"https://shortpixel.com/login/"
|
445 |
-
+ ShortPixel.API_KEY + "\" target=\"_blank\">
|
446 |
-
+ "<a class='button button-smaller' href='admin.php?action=shortpixel_check_quota'>
|
447 |
data["Message"]);
|
448 |
showToolBarAlert(ShortPixel.STATUS_QUOTA_EXCEEDED);
|
449 |
if(data['Stop'] == false) { //there are other items in the priority list, maybe processed, try those
|
@@ -452,7 +455,8 @@ function checkBulkProcessingCallApi(){
|
|
452 |
ShortPixel.otherMediaUpdateActions(id, ['quota','view']);
|
453 |
break;
|
454 |
case ShortPixel.STATUS_FAIL:
|
455 |
-
setCellMessage(id, data["Message"], "<a class='button button-smaller button-primary' href=\"javascript:manualOptimization('<?php echo($id)?>')\">
|
|
|
456 |
if(isBulkPage) {
|
457 |
ShortPixel.bulkShowError(id, data["Message"], data["Filename"], data["CustomImageLink"]);
|
458 |
showToolBarAlert(ShortPixel.STATUS_FAIL, data["Message"]);
|
@@ -491,7 +495,7 @@ function checkBulkProcessingCallApi(){
|
|
491 |
? ""
|
492 |
: ShortPixel.successActions(id, data["Type"], data['ThumbsCount'], data['ThumbsTotal'], data["BackupEnabled"]);
|
493 |
|
494 |
-
setCellMessage(id, ShortPixel.successMsg(id, percent, data["Type"], data['ThumbsCount']), successActions);
|
495 |
ShortPixel.otherMediaUpdateActions(id, ['restore','redo'+(data["Type"] == 'lossy' ? 'lossless': 'lossy'),'view']);
|
496 |
var animator = new PercentageAnimator("#sp-msg-" + id + " span.percent", percent);
|
497 |
animator.animate(percent);
|
@@ -581,7 +585,7 @@ function manualOptimization(id) {
|
|
581 |
if(data["Status"] == ShortPixel.STATUS_SUCCESS) {
|
582 |
setTimeout(checkBulkProgress, 2000);
|
583 |
} else {
|
584 |
-
setCellMessage(id, typeof data["Message"] !== "undefined" ? data["Message"] :
|
585 |
}
|
586 |
//aici e aici
|
587 |
});
|
@@ -599,7 +603,7 @@ function reoptimize(id, type) {
|
|
599 |
if(data["Status"] == ShortPixel.STATUS_SUCCESS) {
|
600 |
setTimeout(checkBulkProgress, 2000);
|
601 |
} else {
|
602 |
-
$msg = typeof data["Message"] !== "undefined" ? data["Message"] :
|
603 |
setCellMessage(id, $msg, "");
|
604 |
showToolBarAlert(ShortPixel.STATUS_FAIL, $msg);
|
605 |
}
|
@@ -607,7 +611,7 @@ function reoptimize(id, type) {
|
|
607 |
}
|
608 |
|
609 |
function optimizeThumbs(id) {
|
610 |
-
setCellMessage(id, "<img src='" + ShortPixel.WP_PLUGIN_URL + "/res/img/loading.gif' class='sp-loading-small'>
|
611 |
jQuery("li.shortpixel-toolbar-processing").removeClass("shortpixel-hide");
|
612 |
jQuery("li.shortpixel-toolbar-processing").addClass("shortpixel-processing");
|
613 |
var data = { action : 'shortpixel_optimize_thumbs',
|
@@ -617,7 +621,7 @@ function optimizeThumbs(id) {
|
|
617 |
if(data["Status"] == ShortPixel.STATUS_SUCCESS) {
|
618 |
setTimeout(checkBulkProgress, 2000);
|
619 |
} else {
|
620 |
-
setCellMessage(id, typeof data["Message"] !== "undefined" ? data["Message"] :
|
621 |
}
|
622 |
});
|
623 |
}
|
@@ -733,3 +737,14 @@ function showStats() {
|
|
733 |
}
|
734 |
}
|
735 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
//are we on media list?
|
7 |
if( jQuery('table.wp-list-table.media').length > 0) {
|
8 |
//register a bulk action
|
9 |
+
jQuery('select[name^="action"] option:last-child').before('<option value="short-pixel-bulk">' + _spTr.optimizeWithSP + '</option>');
|
10 |
}
|
11 |
+
|
12 |
+
ShortPixel.setOptions(ShortPixelConstants);
|
13 |
+
|
14 |
if( ShortPixel.MEDIA_ALERT == 'todo' && jQuery('div.media-frame.mode-grid').length > 0) {
|
15 |
//the media table is not in the list mode, alert the user
|
16 |
+
jQuery('div.media-frame.mode-grid').before('<div id="short-pixel-media-alert" class="notice notice-warning"><p>'
|
17 |
+
+ _spTr.changeMLToListMode.format('<a href="upload.php?mode=list" class="view-list"><span class="screen-reader-text">',' </span>',
|
18 |
+
'</a><a class="alignright" href="javascript:ShortPixel.dismissMediaAlert();">','</a>')
|
19 |
+
+ '</p></div>');
|
20 |
}
|
21 |
//
|
22 |
jQuery(window).unload(function(){
|
24 |
clearBulkProcessor();
|
25 |
}
|
26 |
});
|
|
|
27 |
//check if bulk processing
|
28 |
checkQuotaExceededAlert();
|
29 |
checkBulkProgress();
|
64 |
if(this !== prev) {
|
65 |
prev = this;
|
66 |
}
|
67 |
+
alert(_spTr.alertOnlyAppliesToNewImages);
|
68 |
};
|
69 |
}
|
70 |
ShortPixel.enableResize("#resize");
|
80 |
function setupAdvancedTab() {
|
81 |
jQuery("input.remove-folder-button").click(function(){
|
82 |
var path = jQuery(this).data("value");
|
83 |
+
var r = confirm(_spTr.areYouSureStopOptimizing.format(path));
|
84 |
if (r == true) {
|
85 |
jQuery("#removeFolder").val(path);
|
86 |
jQuery('#wp_shortpixel_options').submit();
|
88 |
});
|
89 |
jQuery("input.recheck-folder-button").click(function(){
|
90 |
var path = jQuery(this).data("value");
|
91 |
+
var r = confirm(_spTr.areYouSureStopOptimizing.format(path));
|
92 |
if (r == true) {
|
93 |
jQuery("#recheckFolder").val(path);
|
94 |
jQuery('#wp_shortpixel_options').submit();
|
139 |
}
|
140 |
}
|
141 |
|
142 |
+
function successMsg(id, percent, type, thumbsCount, retinasCount) {
|
143 |
+
return (percent > 0 ? "<div class='sp-column-info'>" + _spTr.reducedBy + " <span class='percent'><strong>" + percent + "%</strong></span> " : "")
|
144 |
+ (percent > 0 && percent < 5 ? "<br>" : '')
|
145 |
+
+ (percent < 5 ? _spTr.bonusProcessing : '')
|
146 |
+ (type.length > 0 ? " ("+type+")" : "")
|
147 |
+
+ (0 + thumbsCount > 0 ? "<br>" + _spTr.plusXthumbsOpt.format(thumbsCount) :"")
|
148 |
+
+ (0 + retinasCount > 0 ? "<br>" + _spTr.plusXretinasOpt.format(retinasCount) :"")
|
149 |
+ "</div>";
|
150 |
}
|
151 |
|
165 |
if(backupEnabled == 1) {
|
166 |
var otherType = type.length > 0 ? (type == "lossy" ? "lossless" : "lossy") : "";
|
167 |
return '<div class="sp-column-actions">'
|
168 |
+
+ (thumbsTotal > thumbsCount ? "<a class='button button-smaller button-primary' href=\"javascript:optimizeThumbs(" + id + ");\">"
|
169 |
+
+ _spTr.optXThumbs.format(thumbsTotal - thumbsCount) + "</a>" : "")
|
170 |
+
+ (otherType.length ? "<a class='button button-smaller' href=\"javascript:reoptimize(" + id + ", '" + otherType + "');\">" + _spTr.reOptimizeAs.format(otherType) + "</a>" : "")
|
171 |
+
+ "<a class='button button-smaller' href=\"admin.php?action=shortpixel_restore_backup&attachment_ID=" + id + ")\">" + _spTr.restoreBackup + "</a>"
|
172 |
+ "</div>";
|
173 |
}
|
174 |
return "";
|
385 |
&& url.search(adminUrl + "post-new.php") < 0
|
386 |
&& url.search(adminUrl + "post.php") < 0
|
387 |
&& url.search("page=nggallery-manage-gallery") < 0
|
388 |
+
&& (ShortPixel.FRONT_BOOTSTRAP == 0 || url.search(adminUrl) == 0)
|
389 |
) {
|
390 |
hideToolBarAlert();
|
391 |
return;
|
412 |
console.log(localStorage.bulkTime);
|
413 |
checkBulkProcessingCallApi();
|
414 |
} else {
|
|
|
|
|
|
|
|
|
415 |
setTimeout(checkBulkProgress, 5000);
|
416 |
}
|
417 |
}
|
439 |
|
440 |
switch (data["Status"]) {
|
441 |
case ShortPixel.STATUS_NO_KEY:
|
442 |
+
setCellMessage(id, "<a class='button button-smaller button-primary' href=\"https://shortpixel.com/wp-apikey\" target=\"_blank\">" + _spTr.getApiKey + "</a>",
|
443 |
data["Message"]);
|
444 |
showToolBarAlert(ShortPixel.STATUS_NO_KEY);
|
445 |
break;
|
446 |
case ShortPixel.STATUS_QUOTA_EXCEEDED:
|
447 |
setCellMessage(id, "<a class='button button-smaller button-primary' href=\"https://shortpixel.com/login/"
|
448 |
+
+ ShortPixel.API_KEY + "\" target=\"_blank\">" + _spTr.extendQuota + "</a>"
|
449 |
+
+ "<a class='button button-smaller' href='admin.php?action=shortpixel_check_quota'>" + _spTr.check__Quota + "</a>",
|
450 |
data["Message"]);
|
451 |
showToolBarAlert(ShortPixel.STATUS_QUOTA_EXCEEDED);
|
452 |
if(data['Stop'] == false) { //there are other items in the priority list, maybe processed, try those
|
455 |
ShortPixel.otherMediaUpdateActions(id, ['quota','view']);
|
456 |
break;
|
457 |
case ShortPixel.STATUS_FAIL:
|
458 |
+
setCellMessage(id, data["Message"], "<a class='button button-smaller button-primary' href=\"javascript:manualOptimization('<?php echo($id)?>')\">"
|
459 |
+
+ _spTr.retry + "</a>");
|
460 |
if(isBulkPage) {
|
461 |
ShortPixel.bulkShowError(id, data["Message"], data["Filename"], data["CustomImageLink"]);
|
462 |
showToolBarAlert(ShortPixel.STATUS_FAIL, data["Message"]);
|
495 |
? ""
|
496 |
: ShortPixel.successActions(id, data["Type"], data['ThumbsCount'], data['ThumbsTotal'], data["BackupEnabled"]);
|
497 |
|
498 |
+
setCellMessage(id, ShortPixel.successMsg(id, percent, data["Type"], data['ThumbsCount'], data['RetinasCount']), successActions);
|
499 |
ShortPixel.otherMediaUpdateActions(id, ['restore','redo'+(data["Type"] == 'lossy' ? 'lossless': 'lossy'),'view']);
|
500 |
var animator = new PercentageAnimator("#sp-msg-" + id + " span.percent", percent);
|
501 |
animator.animate(percent);
|
585 |
if(data["Status"] == ShortPixel.STATUS_SUCCESS) {
|
586 |
setTimeout(checkBulkProgress, 2000);
|
587 |
} else {
|
588 |
+
setCellMessage(id, typeof data["Message"] !== "undefined" ? data["Message"] : _spTr.thisContentNotProcessable, "");
|
589 |
}
|
590 |
//aici e aici
|
591 |
});
|
603 |
if(data["Status"] == ShortPixel.STATUS_SUCCESS) {
|
604 |
setTimeout(checkBulkProgress, 2000);
|
605 |
} else {
|
606 |
+
$msg = typeof data["Message"] !== "undefined" ? data["Message"] : _spTr.thisContentNotProcessable;
|
607 |
setCellMessage(id, $msg, "");
|
608 |
showToolBarAlert(ShortPixel.STATUS_FAIL, $msg);
|
609 |
}
|
611 |
}
|
612 |
|
613 |
function optimizeThumbs(id) {
|
614 |
+
setCellMessage(id, "<img src='" + ShortPixel.WP_PLUGIN_URL + "/res/img/loading.gif' class='sp-loading-small'>" + _spTr.imageWaitOptThumbs, "");
|
615 |
jQuery("li.shortpixel-toolbar-processing").removeClass("shortpixel-hide");
|
616 |
jQuery("li.shortpixel-toolbar-processing").addClass("shortpixel-processing");
|
617 |
var data = { action : 'shortpixel_optimize_thumbs',
|
621 |
if(data["Status"] == ShortPixel.STATUS_SUCCESS) {
|
622 |
setTimeout(checkBulkProgress, 2000);
|
623 |
} else {
|
624 |
+
setCellMessage(id, typeof data["Message"] !== "undefined" ? data["Message"] : _spTr.thisContentNotProcessable, "");
|
625 |
}
|
626 |
});
|
627 |
}
|
737 |
}
|
738 |
}
|
739 |
|
740 |
+
if (!(typeof String.prototype.format == 'function')) {
|
741 |
+
String.prototype.format = function() {
|
742 |
+
var s = this,
|
743 |
+
i = arguments.length;
|
744 |
+
|
745 |
+
while (i--) {
|
746 |
+
s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arguments[i]);
|
747 |
+
}
|
748 |
+
return s;
|
749 |
+
};
|
750 |
+
}
|
shortpixel_api.php
CHANGED
@@ -29,14 +29,8 @@ class ShortPixelAPI {
|
|
29 |
public function __construct($settings) {
|
30 |
$this->_settings = $settings;
|
31 |
$this->_apiEndPoint = $this->_settings->httpProto . '://api.shortpixel.com/v2/reducer.php';
|
32 |
-
//# TODO verifica- pare la oha: add_action('processImageAction', array(&$this, 'processImageAction'), 10, 4);
|
33 |
}
|
34 |
|
35 |
-
//# TODO verifica- pare la oha
|
36 |
-
//#public function processImageAction($url, $filePaths, $itemHandler, $time) {
|
37 |
-
//# $this->processImage($URLs, $PATHs, $itemHandler, $time);
|
38 |
-
//#}
|
39 |
-
|
40 |
/**
|
41 |
* sends a compression request to the API
|
42 |
* @param array $URLs - list of urls to send to API
|
@@ -45,7 +39,7 @@ class ShortPixelAPI {
|
|
45 |
* @param int $compressionType 1 - lossy, 0 - lossless
|
46 |
* @return response from wp_remote_post or error
|
47 |
*/
|
48 |
-
public function doRequests($URLs, $Blocking, $itemHandler, $compressionType = false) {
|
49 |
$requestParameters = array(
|
50 |
'plugin_version' => PLUGIN_VERSION,
|
51 |
'key' => $this->_settings->apiKey,
|
@@ -58,6 +52,9 @@ class ShortPixelAPI {
|
|
58 |
'resize_height' => $this->_settings->resizeHeight,
|
59 |
'urllist' => $URLs
|
60 |
);
|
|
|
|
|
|
|
61 |
$arguments = array(
|
62 |
'method' => 'POST',
|
63 |
'timeout' => 15,
|
@@ -100,10 +97,6 @@ class ShortPixelAPI {
|
|
100 |
{//set details inside file so user can know what happened
|
101 |
$itemHandler->setError($errorCode, $errorMessage);
|
102 |
$itemHandler->incrementRetries();
|
103 |
-
//$meta = wp_get_attachment_metadata($ID);
|
104 |
-
//$meta['ShortPixelImprovement'] = 'Error: <i>' . $errorMessage . '</i>';
|
105 |
-
//unset($meta['ShortPixel']['WaitingProcessing']);
|
106 |
-
//wp_update_attachment_metadata($ID, $meta);
|
107 |
return array("response" => array("code" => $errorCode, "message" => $errorMessage ));
|
108 |
}
|
109 |
|
@@ -149,9 +142,7 @@ class ShortPixelAPI {
|
|
149 |
|
150 |
$PATHs = self::CheckAndFixImagePaths($PATHs);//check for images to make sure they exist on disk
|
151 |
if ( $PATHs === false ) {
|
152 |
-
$msg = 'The file(s) do not exist on disk.';
|
153 |
-
//#$meta['ShortPixelImprovement'] = $msg;
|
154 |
-
//#wp_update_attachment_metadata($ID, $meta);
|
155 |
$itemHandler->setError(self::ERR_FILE_NOT_FOUND, $msg );
|
156 |
return array("Status" => self::STATUS_SKIP, "Message" => $msg, "Silent" => $itemHandler->getType() == ShortPixelMetaFacade::CUSTOM_TYPE ? 1 : 0);
|
157 |
}
|
@@ -166,21 +157,18 @@ class ShortPixelAPI {
|
|
166 |
{//keeps track of time
|
167 |
if ( $apiRetries > MAX_API_RETRIES )//we tried to process this time too many times, giving up...
|
168 |
{
|
169 |
-
|
170 |
-
//#unset($meta['ShortPixel']['WaitingProcessing']);
|
171 |
-
//#wp_update_attachment_metadata($ID, $meta);
|
172 |
-
$itemHandler->setError(self::ERR_TIMEOUT, 'Timed out while processing.');
|
173 |
$itemHandler->incrementRetries();
|
174 |
$this->_settings->apiRetries = 0; //fai added to solve a bug?
|
175 |
return array("Status" => self::STATUS_SKIP,
|
176 |
-
"Message" => ($itemHandler->getType() == ShortPixelMetaFacade::CUSTOM_TYPE ?
|
177 |
-
. $itemHandler->getId() .' Skip this image, try the next one.');
|
178 |
}
|
179 |
else
|
180 |
{//we'll try again next time user visits a page on admin panel
|
181 |
$apiRetries++;
|
182 |
$this->_settings->apiRetries = $apiRetries;
|
183 |
-
return array("Status" => self::STATUS_RETRY, "Message" => 'Timed out while processing. (pass '.$apiRetries.')',
|
184 |
"Count" => $apiRetries);
|
185 |
}
|
186 |
}
|
@@ -191,7 +179,7 @@ class ShortPixelAPI {
|
|
191 |
$response = $this->doRequests($URLs, true, $itemHandler, $compressionType);//send requests to API
|
192 |
|
193 |
if($response['response']['code'] != 200)//response <> 200 -> there was an error apparently?
|
194 |
-
return array("Status" => self::STATUS_FAIL, "Message" =>
|
195 |
|
196 |
$APIresponse = $this->parseResponse($response);//get the actual response from API, its an array
|
197 |
|
@@ -218,15 +206,16 @@ class ShortPixelAPI {
|
|
218 |
if ( !file_exists($PATHs[0]) ) {
|
219 |
$itemHandler->incrementRetries(2);
|
220 |
$err = array("Status" => self::STATUS_NOT_FOUND, "Message" => "File not found on disk. "
|
221 |
-
. ($itemHandler->getType() == ShortPixelMetaFacade::CUSTOM_TYPE ? "Image
|
222 |
. " ID: " . $itemHandler->getId());
|
223 |
}
|
224 |
elseif ( isset($APIresponse[0]->Status->Message) ) {
|
225 |
//return array("Status" => self::STATUS_FAIL, "Message" => "There was an error and your request was not processed (" . $APIresponse[0]->Status->Message . "). REQ: " . json_encode($URLs));
|
226 |
$err = array("Status" => self::STATUS_FAIL, "Code" => (isset($APIresponse[0]->Status->Code) ? $APIresponse[0]->Status->Code : ""),
|
227 |
-
"Message" =>
|
|
|
228 |
} else {
|
229 |
-
$err = array("Status" => self::STATUS_FAIL, "Message" =>
|
230 |
}
|
231 |
|
232 |
$itemHandler->incrementRetries();
|
@@ -242,14 +231,14 @@ class ShortPixelAPI {
|
|
242 |
|
243 |
if(!isset($APIresponse['Status'])) {
|
244 |
WpShortPixel::log("API Response Status unfound : " . json_encode($APIresponse));
|
245 |
-
return array("Status" => self::STATUS_FAIL, "Message" =>
|
246 |
} else {
|
247 |
switch($APIresponse['Status']->Code)
|
248 |
{
|
249 |
case -403:
|
250 |
@delete_option('bulkProcessingStatus');
|
251 |
$this->_settings->quotaExceeded = 1;
|
252 |
-
return array("Status" => self::STATUS_QUOTA_EXCEEDED, "Message" =>
|
253 |
break;
|
254 |
}
|
255 |
|
@@ -310,11 +299,12 @@ class ShortPixelAPI {
|
|
310 |
|
311 |
$downloadTimeout = max(ini_get('max_execution_time') - 10, 15);
|
312 |
|
313 |
-
|
|
|
314 |
$webpURL = $this->setPreferredProtocol(urldecode($fileData->$webpType));
|
315 |
$webpTempFile = download_url($webpURL, $downloadTimeout);
|
|
|
316 |
}
|
317 |
-
$webpTempFile = is_wp_error( $webpTempFile ) ? "NA" : $webpTempFile;
|
318 |
|
319 |
//if there is no improvement in size then we do not download this file
|
320 |
if ( $fileData->OriginalSize == $fileData->$fileSize )
|
@@ -337,7 +327,7 @@ class ShortPixelAPI {
|
|
337 |
@unlink($tempFile);
|
338 |
$returnMessage = array(
|
339 |
"Status" => self::STATUS_ERROR,
|
340 |
-
"Message" =>
|
341 |
}
|
342 |
//check response so that download is OK
|
343 |
elseif( filesize($tempFile) != $correctFileSize) {
|
@@ -345,10 +335,10 @@ class ShortPixelAPI {
|
|
345 |
@unlink($tempFile);
|
346 |
$returnMessage = array(
|
347 |
"Status" => self::STATUS_ERROR,
|
348 |
-
"Message" =>
|
349 |
}
|
350 |
elseif (!file_exists($tempFile)) {
|
351 |
-
$returnMessage = array("Status" => self::STATUS_ERROR, "Message" =>
|
352 |
}
|
353 |
return $returnMessage;
|
354 |
}
|
@@ -401,9 +391,7 @@ class ShortPixelAPI {
|
|
401 |
}
|
402 |
|
403 |
//figure out in what SubDir files should land
|
404 |
-
//#$SubDir = $this->returnSubDir(get_attached_file($ID));
|
405 |
$fullSubDir = str_replace(wp_normalize_path(get_home_path()), "", wp_normalize_path(dirname($itemHandler->getMeta()->getPath()))) . '/';
|
406 |
-
//die("Uploads base: " . SP_UPLOADS_BASE . " FullSubDir: ". $fullSubDir . " PATH: " . dirname($itemHandler->getMeta()->getPath()));
|
407 |
$SubDir = ShortPixelMetaFacade::returnSubDir($itemHandler->getMeta()->getPath(), $itemHandler->getType());
|
408 |
|
409 |
//if backup is enabled - we try to save the images
|
@@ -412,7 +400,7 @@ class ShortPixelAPI {
|
|
412 |
$source = $PATHs; //array with final paths for these files
|
413 |
|
414 |
if( !file_exists(SP_BACKUP_FOLDER) && !@mkdir(SP_BACKUP_FOLDER, 0777, true) ) {//creates backup folder if it doesn't exist
|
415 |
-
return array("Status" => self::STATUS_FAIL, "Message" =>
|
416 |
}
|
417 |
//create subdir in backup folder if needed
|
418 |
@mkdir( SP_BACKUP_FOLDER . '/' . $fullSubDir, 0777, true);
|
@@ -432,8 +420,7 @@ class ShortPixelAPI {
|
|
432 |
{
|
433 |
if ( !@copy($source[$fileID], $filePATH) )
|
434 |
{//file couldn't be saved in backup folder
|
435 |
-
$msg = 'Cannot save file <i>
|
436 |
-
//#ShortPixelAPI::SaveMessageinMetadata($ID, $msg);
|
437 |
$itemHandler->setError(self::ERR_SAVE_BKP, $msg);
|
438 |
$itemHandler->incrementRetries();
|
439 |
return array("Status" => self::STATUS_FAIL, "Message" => $msg);
|
@@ -442,8 +429,7 @@ class ShortPixelAPI {
|
|
442 |
}
|
443 |
$NoBackup = true;
|
444 |
} else {//cannot write to the backup dir, return with an error
|
445 |
-
|
446 |
-
$msg = 'Cannot save file in backup directory';
|
447 |
$itemHandler->setError(self::ERR_SAVE_BKP, $msg);
|
448 |
$itemHandler->incrementRetries();
|
449 |
return array("Status" => self::STATUS_FAIL, "Message" => $msg);
|
@@ -452,9 +438,9 @@ class ShortPixelAPI {
|
|
452 |
}//end backup section
|
453 |
|
454 |
$writeFailed = 0;
|
455 |
-
$firstImage = true;
|
456 |
$width = $height = null;
|
457 |
$resize = $this->_settings->resizeImages;
|
|
|
458 |
|
459 |
if ( !empty($tempFiles) )
|
460 |
{
|
@@ -469,13 +455,11 @@ class ShortPixelAPI {
|
|
469 |
$tempFilePATH = $tempFile["Message"];
|
470 |
if ( file_exists($tempFilePATH) && file_exists($PATHs[$tempFileID]) && is_writable($PATHs[$tempFileID]) ) {
|
471 |
copy($tempFilePATH, $targetFile);
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
$height = $size[1];
|
478 |
-
}
|
479 |
}
|
480 |
//Calculate the saved space
|
481 |
$fileData = $APIresponse[$tempFileID];
|
@@ -506,7 +490,7 @@ class ShortPixelAPI {
|
|
506 |
|
507 |
if ( $writeFailed > 0 )//there was an error
|
508 |
{
|
509 |
-
$msg = 'Optimized version of
|
510 |
//#ShortPixelAPI::SaveMessageinMetadata($ID, 'Error: optimized version of ' . $writeFailed . ' file(s) couldn\'t be updated.');
|
511 |
$itemHandler->setError(self::ERR_SAVE, $msg);
|
512 |
$itemHandler->incrementRetries();
|
@@ -540,6 +524,7 @@ class ShortPixelAPI {
|
|
540 |
$meta->setKeepExif($this->_settings->keepExif);
|
541 |
$meta->setTsOptimized(date("Y-m-d H:i:s"));
|
542 |
$meta->setThumbsOpt(($meta->getThumbsTodo() || $this->_settings->processThumbnails) ? count($meta->getThumbs()) : 0);
|
|
|
543 |
$meta->setThumbsTodo(false);
|
544 |
if($width && $height) {
|
545 |
$meta->setActualWidth($width);
|
29 |
public function __construct($settings) {
|
30 |
$this->_settings = $settings;
|
31 |
$this->_apiEndPoint = $this->_settings->httpProto . '://api.shortpixel.com/v2/reducer.php';
|
|
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* sends a compression request to the API
|
36 |
* @param array $URLs - list of urls to send to API
|
39 |
* @param int $compressionType 1 - lossy, 0 - lossless
|
40 |
* @return response from wp_remote_post or error
|
41 |
*/
|
42 |
+
public function doRequests($URLs, $Blocking, $itemHandler, $compressionType = false, $refresh = false) {
|
43 |
$requestParameters = array(
|
44 |
'plugin_version' => PLUGIN_VERSION,
|
45 |
'key' => $this->_settings->apiKey,
|
52 |
'resize_height' => $this->_settings->resizeHeight,
|
53 |
'urllist' => $URLs
|
54 |
);
|
55 |
+
if($refresh) {
|
56 |
+
$requestParameters['refresh'] = 1;
|
57 |
+
}
|
58 |
$arguments = array(
|
59 |
'method' => 'POST',
|
60 |
'timeout' => 15,
|
97 |
{//set details inside file so user can know what happened
|
98 |
$itemHandler->setError($errorCode, $errorMessage);
|
99 |
$itemHandler->incrementRetries();
|
|
|
|
|
|
|
|
|
100 |
return array("response" => array("code" => $errorCode, "message" => $errorMessage ));
|
101 |
}
|
102 |
|
142 |
|
143 |
$PATHs = self::CheckAndFixImagePaths($PATHs);//check for images to make sure they exist on disk
|
144 |
if ( $PATHs === false ) {
|
145 |
+
$msg = __('The file(s) do not exist on disk.','shortpixel');
|
|
|
|
|
146 |
$itemHandler->setError(self::ERR_FILE_NOT_FOUND, $msg );
|
147 |
return array("Status" => self::STATUS_SKIP, "Message" => $msg, "Silent" => $itemHandler->getType() == ShortPixelMetaFacade::CUSTOM_TYPE ? 1 : 0);
|
148 |
}
|
157 |
{//keeps track of time
|
158 |
if ( $apiRetries > MAX_API_RETRIES )//we tried to process this time too many times, giving up...
|
159 |
{
|
160 |
+
$itemHandler->setError(self::ERR_TIMEOUT, __('Timed out while processing.','shortpixel'));
|
|
|
|
|
|
|
161 |
$itemHandler->incrementRetries();
|
162 |
$this->_settings->apiRetries = 0; //fai added to solve a bug?
|
163 |
return array("Status" => self::STATUS_SKIP,
|
164 |
+
"Message" => ($itemHandler->getType() == ShortPixelMetaFacade::CUSTOM_TYPE ? __('Image ID','shortpixel') : __('Media ID','shortpixel'))
|
165 |
+
. ": " . $itemHandler->getId() .' ' . __('Skip this image, try the next one.','shortpixel'));
|
166 |
}
|
167 |
else
|
168 |
{//we'll try again next time user visits a page on admin panel
|
169 |
$apiRetries++;
|
170 |
$this->_settings->apiRetries = $apiRetries;
|
171 |
+
return array("Status" => self::STATUS_RETRY, "Message" => __('Timed out while processing.','shortpixel') . ' (pass '.$apiRetries.')',
|
172 |
"Count" => $apiRetries);
|
173 |
}
|
174 |
}
|
179 |
$response = $this->doRequests($URLs, true, $itemHandler, $compressionType);//send requests to API
|
180 |
|
181 |
if($response['response']['code'] != 200)//response <> 200 -> there was an error apparently?
|
182 |
+
return array("Status" => self::STATUS_FAIL, "Message" => __('There was an error and your request was not processed.','shortpixel'));
|
183 |
|
184 |
$APIresponse = $this->parseResponse($response);//get the actual response from API, its an array
|
185 |
|
206 |
if ( !file_exists($PATHs[0]) ) {
|
207 |
$itemHandler->incrementRetries(2);
|
208 |
$err = array("Status" => self::STATUS_NOT_FOUND, "Message" => "File not found on disk. "
|
209 |
+
. ($itemHandler->getType() == ShortPixelMetaFacade::CUSTOM_TYPE ? "Image" : "Media")
|
210 |
. " ID: " . $itemHandler->getId());
|
211 |
}
|
212 |
elseif ( isset($APIresponse[0]->Status->Message) ) {
|
213 |
//return array("Status" => self::STATUS_FAIL, "Message" => "There was an error and your request was not processed (" . $APIresponse[0]->Status->Message . "). REQ: " . json_encode($URLs));
|
214 |
$err = array("Status" => self::STATUS_FAIL, "Code" => (isset($APIresponse[0]->Status->Code) ? $APIresponse[0]->Status->Code : ""),
|
215 |
+
"Message" => __('There was an error and your request was not processed.','shortpixel')
|
216 |
+
. " (" . $APIresponse[0]->Status->Message . ")");
|
217 |
} else {
|
218 |
+
$err = array("Status" => self::STATUS_FAIL, "Message" => __('There was an error and your request was not processed.','shortpixel'));
|
219 |
}
|
220 |
|
221 |
$itemHandler->incrementRetries();
|
231 |
|
232 |
if(!isset($APIresponse['Status'])) {
|
233 |
WpShortPixel::log("API Response Status unfound : " . json_encode($APIresponse));
|
234 |
+
return array("Status" => self::STATUS_FAIL, "Message" => __('Unecognized API response. Please contact support.','shortpixel'));
|
235 |
} else {
|
236 |
switch($APIresponse['Status']->Code)
|
237 |
{
|
238 |
case -403:
|
239 |
@delete_option('bulkProcessingStatus');
|
240 |
$this->_settings->quotaExceeded = 1;
|
241 |
+
return array("Status" => self::STATUS_QUOTA_EXCEEDED, "Message" => __('Quota exceeded.','shortpixel'));
|
242 |
break;
|
243 |
}
|
244 |
|
299 |
|
300 |
$downloadTimeout = max(ini_get('max_execution_time') - 10, 15);
|
301 |
|
302 |
+
$webpTempFile = "NA";
|
303 |
+
if(isset($fileData->$webpType) && $fileData->$webpType !== "NA") {
|
304 |
$webpURL = $this->setPreferredProtocol(urldecode($fileData->$webpType));
|
305 |
$webpTempFile = download_url($webpURL, $downloadTimeout);
|
306 |
+
$webpTempFile = is_wp_error( $webpTempFile ) ? "NA" : $webpTempFile;
|
307 |
}
|
|
|
308 |
|
309 |
//if there is no improvement in size then we do not download this file
|
310 |
if ( $fileData->OriginalSize == $fileData->$fileSize )
|
327 |
@unlink($tempFile);
|
328 |
$returnMessage = array(
|
329 |
"Status" => self::STATUS_ERROR,
|
330 |
+
"Message" => __('Error downloading file','shortpixel') . " ({$fileData->$fileType}) " . $tempFile->get_error_message());
|
331 |
}
|
332 |
//check response so that download is OK
|
333 |
elseif( filesize($tempFile) != $correctFileSize) {
|
335 |
@unlink($tempFile);
|
336 |
$returnMessage = array(
|
337 |
"Status" => self::STATUS_ERROR,
|
338 |
+
"Message" => sprintf(__('Error downloading file - incorrect file size (downloaded: %s, correct: %s )','shortpixel'),$size, $correctFileSize));
|
339 |
}
|
340 |
elseif (!file_exists($tempFile)) {
|
341 |
+
$returnMessage = array("Status" => self::STATUS_ERROR, "Message" => __('Unable to locate downloaded file','shortpixel') . " " . $tempFile);
|
342 |
}
|
343 |
return $returnMessage;
|
344 |
}
|
391 |
}
|
392 |
|
393 |
//figure out in what SubDir files should land
|
|
|
394 |
$fullSubDir = str_replace(wp_normalize_path(get_home_path()), "", wp_normalize_path(dirname($itemHandler->getMeta()->getPath()))) . '/';
|
|
|
395 |
$SubDir = ShortPixelMetaFacade::returnSubDir($itemHandler->getMeta()->getPath(), $itemHandler->getType());
|
396 |
|
397 |
//if backup is enabled - we try to save the images
|
400 |
$source = $PATHs; //array with final paths for these files
|
401 |
|
402 |
if( !file_exists(SP_BACKUP_FOLDER) && !@mkdir(SP_BACKUP_FOLDER, 0777, true) ) {//creates backup folder if it doesn't exist
|
403 |
+
return array("Status" => self::STATUS_FAIL, "Message" => __('Backup folder does not exist and it cannot be created','shortpixel'));
|
404 |
}
|
405 |
//create subdir in backup folder if needed
|
406 |
@mkdir( SP_BACKUP_FOLDER . '/' . $fullSubDir, 0777, true);
|
420 |
{
|
421 |
if ( !@copy($source[$fileID], $filePATH) )
|
422 |
{//file couldn't be saved in backup folder
|
423 |
+
$msg = sprintf(__('Cannot save file <i>%s</i> in backup directory','shortpixel'),self::MB_basename($source[$fileID]));
|
|
|
424 |
$itemHandler->setError(self::ERR_SAVE_BKP, $msg);
|
425 |
$itemHandler->incrementRetries();
|
426 |
return array("Status" => self::STATUS_FAIL, "Message" => $msg);
|
429 |
}
|
430 |
$NoBackup = true;
|
431 |
} else {//cannot write to the backup dir, return with an error
|
432 |
+
$msg = __('Cannot save file in backup directory','shortpixel');
|
|
|
433 |
$itemHandler->setError(self::ERR_SAVE_BKP, $msg);
|
434 |
$itemHandler->incrementRetries();
|
435 |
return array("Status" => self::STATUS_FAIL, "Message" => $msg);
|
438 |
}//end backup section
|
439 |
|
440 |
$writeFailed = 0;
|
|
|
441 |
$width = $height = null;
|
442 |
$resize = $this->_settings->resizeImages;
|
443 |
+
$retinas = 0;
|
444 |
|
445 |
if ( !empty($tempFiles) )
|
446 |
{
|
455 |
$tempFilePATH = $tempFile["Message"];
|
456 |
if ( file_exists($tempFilePATH) && file_exists($PATHs[$tempFileID]) && is_writable($PATHs[$tempFileID]) ) {
|
457 |
copy($tempFilePATH, $targetFile);
|
458 |
+
$retinas += ShortPixelMetaFacade::isRetina($targetFile) ? 1 : 0;
|
459 |
+
if($resize && $itemHandler->getMeta()->getPath() == $targetFile) { //this is the main image
|
460 |
+
$size = getimagesize($PATHs[$tempFileID]);
|
461 |
+
$width = $size[0];
|
462 |
+
$height = $size[1];
|
|
|
|
|
463 |
}
|
464 |
//Calculate the saved space
|
465 |
$fileData = $APIresponse[$tempFileID];
|
490 |
|
491 |
if ( $writeFailed > 0 )//there was an error
|
492 |
{
|
493 |
+
$msg = sprintf(__('Optimized version of %s file(s) couldn\'t be updated.','shortpixel'),$writeFailed);
|
494 |
//#ShortPixelAPI::SaveMessageinMetadata($ID, 'Error: optimized version of ' . $writeFailed . ' file(s) couldn\'t be updated.');
|
495 |
$itemHandler->setError(self::ERR_SAVE, $msg);
|
496 |
$itemHandler->incrementRetries();
|
524 |
$meta->setKeepExif($this->_settings->keepExif);
|
525 |
$meta->setTsOptimized(date("Y-m-d H:i:s"));
|
526 |
$meta->setThumbsOpt(($meta->getThumbsTodo() || $this->_settings->processThumbnails) ? count($meta->getThumbs()) : 0);
|
527 |
+
$meta->setRetinasOpt($retinas);
|
528 |
$meta->setThumbsTodo(false);
|
529 |
if($width && $height) {
|
530 |
$meta->setActualWidth($width);
|
wp-shortpixel-req.php
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
<?php
|
2 |
if(defined('SHORTPIXEL_DEBUG') && SHORTPIXEL_DEBUG === true) {
|
3 |
require_once('shortpixel-debug.php');
|
|
|
|
|
4 |
}
|
5 |
|
6 |
require_once('class/wp-shortpixel-settings.php');
|
@@ -27,6 +29,18 @@ require_once('class/shortpixel-tools.php');
|
|
27 |
require_once( ABSPATH . 'wp-admin/includes/image.php' );
|
28 |
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
/*
|
31 |
if ( !is_plugin_active( 'wpmandrill/wpmandrill.php' ) //avoid conflicts with some plugins
|
32 |
&& !is_plugin_active( 'wp-ses/wp-ses.php' )
|
1 |
<?php
|
2 |
if(defined('SHORTPIXEL_DEBUG') && SHORTPIXEL_DEBUG === true) {
|
3 |
require_once('shortpixel-debug.php');
|
4 |
+
} else {
|
5 |
+
define('SHORTPIXEL_DEBUG', false);
|
6 |
}
|
7 |
|
8 |
require_once('class/wp-shortpixel-settings.php');
|
29 |
require_once( ABSPATH . 'wp-admin/includes/image.php' );
|
30 |
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
31 |
|
32 |
+
// for retro compatibility with WP < 3.5
|
33 |
+
if( !function_exists('wp_normalize_path') ){
|
34 |
+
function wp_normalize_path( $path ) {
|
35 |
+
$path = str_replace( '\\', '/', $path );
|
36 |
+
$path = preg_replace( '|(?<=.)/+|', '/', $path );
|
37 |
+
if ( ':' === substr( $path, 1, 1 ) ) {
|
38 |
+
$path = ucfirst( $path );
|
39 |
+
}
|
40 |
+
return $path;
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
/*
|
45 |
if ( !is_plugin_active( 'wpmandrill/wpmandrill.php' ) //avoid conflicts with some plugins
|
46 |
&& !is_plugin_active( 'wp-ses/wp-ses.php' )
|
wp-shortpixel.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: ShortPixel Image Optimizer
|
4 |
* Plugin URI: https://shortpixel.com/
|
5 |
* Description: ShortPixel optimizes images automatically, while guarding the quality of your images. Check your <a href="options-general.php?page=wp-shortpixel" target="_blank">Settings > ShortPixel</a> page on how to start optimizing your image library and make your website load faster.
|
6 |
-
* Version: 4.
|
7 |
* Author: ShortPixel
|
8 |
* Author URI: https://shortpixel.com
|
9 |
*/
|
@@ -12,7 +12,7 @@ define('SP_RESET_ON_ACTIVATE', false); //if true TODO set false
|
|
12 |
|
13 |
define('SP_AFFILIATE_CODE', '');
|
14 |
|
15 |
-
define('PLUGIN_VERSION', "4.
|
16 |
define('SP_MAX_TIMEOUT', 10);
|
17 |
define('SP_VALIDATE_MAX_TIMEOUT', 15);
|
18 |
define('SP_BACKUP', 'ShortpixelBackups');
|
@@ -62,6 +62,7 @@ class WPShortPixel {
|
|
62 |
}
|
63 |
|
64 |
require_once('wp-shortpixel-req.php');
|
|
|
65 |
|
66 |
$isAdminUser = current_user_can( 'manage_options' );
|
67 |
|
@@ -156,14 +157,16 @@ class WPShortPixel {
|
|
156 |
}
|
157 |
|
158 |
public function registerSettingsPage() {
|
159 |
-
add_options_page( 'ShortPixel Settings', 'ShortPixel', 'manage_options', 'wp-shortpixel', array($this, 'renderSettingsMenu'));
|
160 |
}
|
161 |
|
162 |
function registerAdminPage( ) {
|
163 |
if($this->spMetaDao->hasFoldersTable() && count($this->spMetaDao->getFolders())) {
|
164 |
-
|
|
|
165 |
}
|
166 |
-
|
|
|
167 |
}
|
168 |
|
169 |
public static function shortPixelActivatePlugin()//reset some params to avoid trouble for plugins that were activated/deactivated/activated
|
@@ -210,7 +213,7 @@ class WPShortPixel {
|
|
210 |
|
211 |
public function dismissMediaAlert() {
|
212 |
$this->_settings->mediaAlert = 1;
|
213 |
-
die(json_encode(array("Status" => 'success', "Message" => 'Media alert dismissed')));
|
214 |
}
|
215 |
|
216 |
//set default move as "list". only set once, it won't try to set the default mode again.
|
@@ -231,7 +234,7 @@ class WPShortPixel {
|
|
231 |
}
|
232 |
|
233 |
static function log($message) {
|
234 |
-
if (
|
235 |
if (is_array($message) || is_object($message)) {
|
236 |
error_log(print_r($message, true));
|
237 |
} else {
|
@@ -260,7 +263,30 @@ class WPShortPixel {
|
|
260 |
};
|
261 |
</script> <?php
|
262 |
wp_enqueue_style('short-pixel.css', plugins_url('/res/css/short-pixel.css',__FILE__) );
|
263 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
wp_enqueue_script('jquery.knob.js', plugins_url('/res/js/jquery.knob.js',__FILE__) );
|
265 |
wp_enqueue_script('jquery.tooltip.js', plugins_url('/res/js/jquery.tooltip.js',__FILE__) );
|
266 |
}
|
@@ -268,17 +294,18 @@ class WPShortPixel {
|
|
268 |
function toolbar_shortpixel_processing( $wp_admin_bar ) {
|
269 |
|
270 |
$extraClasses = " shortpixel-hide";
|
271 |
-
|
|
|
272 |
$icon = "shortpixel.png";
|
273 |
$successLink = $link = current_user_can( 'edit_others_posts')? 'upload.php?page=wp-short-pixel-bulk' : 'upload.php';
|
274 |
$blank = "";
|
275 |
if($this->prioQ->processing()) {
|
276 |
$extraClasses = " shortpixel-processing";
|
277 |
}
|
278 |
-
self::log("TOOLBAR: Quota exceeded: " . $this->_settings->quotaExceeded);
|
279 |
if($this->_settings->quotaExceeded) {
|
280 |
$extraClasses = " shortpixel-alert shortpixel-quota-exceeded";
|
281 |
-
|
|
|
282 |
//$link = "http://shortpixel.com/login/" . $this->_settings->apiKey;
|
283 |
$link = "options-general.php?page=wp-shortpixel";
|
284 |
//$blank = '_blank';
|
@@ -318,7 +345,7 @@ class WPShortPixel {
|
|
318 |
$meta = wp_get_attachment_metadata($ID);
|
319 |
if( ( !isset($meta['ShortPixel']) //never touched by ShortPixel
|
320 |
|| (isset($meta['ShortPixel']['WaitingProcessing']) && $meta['ShortPixel']['WaitingProcessing'] == true))
|
321 |
-
&& (!isset($meta['ShortPixelImprovement']) || $meta['ShortPixelImprovement'] == 'Optimization N/A')) {
|
322 |
$this->prioQ->push($ID);
|
323 |
$meta['ShortPixel']['WaitingProcessing'] = true;
|
324 |
wp_update_attachment_metadata($ID, $meta);
|
@@ -340,26 +367,30 @@ class WPShortPixel {
|
|
340 |
return $meta;
|
341 |
}
|
342 |
//else
|
343 |
-
self::log("IMG: Auto-analyzing file ID #{$ID}");
|
344 |
|
345 |
if( self::isProcessable($ID) == false )
|
346 |
{//not a file that we can process
|
347 |
-
$meta['ShortPixelImprovement'] = 'Optimization N/A';
|
348 |
return $meta;
|
349 |
}
|
350 |
else
|
351 |
{//the kind of file we can process. goody.
|
352 |
$this->prioQ->push($ID);
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
|
|
|
|
|
|
|
|
|
|
359 |
$meta['ShortPixel']['WaitingProcessing'] = true;
|
360 |
return $meta;
|
361 |
}
|
362 |
-
|
363 |
}//end handleMediaLibraryImageUpload
|
364 |
|
365 |
/**
|
@@ -449,7 +480,7 @@ class WPShortPixel {
|
|
449 |
$idList = array();
|
450 |
$itemList = array();
|
451 |
for ($sanityCheck = 0, $crtStartQueryID = $startQueryID;
|
452 |
-
$crtStartQueryID >= $endQueryID && count($itemList) < 3; $sanityCheck++) {
|
453 |
|
454 |
self::log("GETDB: current StartID: " . $crtStartQueryID);
|
455 |
|
@@ -507,7 +538,7 @@ class WPShortPixel {
|
|
507 |
$crtStartQueryID--;
|
508 |
}
|
509 |
}
|
510 |
-
return array("items" => $itemList, "skipped" => $skippedAlreadyProcessed);
|
511 |
}
|
512 |
|
513 |
/**
|
@@ -534,7 +565,7 @@ class WPShortPixel {
|
|
534 |
$ids = $this->getFromPrioAndCheck();
|
535 |
$itemHandler = (count($ids) > 0 ? $ids[0] : null);
|
536 |
}
|
537 |
-
$response = array("Status" => ShortPixelAPI::STATUS_NO_KEY, "ImageID" => $itemHandler ? $itemHandler->getId() : "-1", "Message" =>
|
538 |
$this->_settings->bulkLastStatus = $response;
|
539 |
die(json_encode($response));
|
540 |
}
|
@@ -550,8 +581,7 @@ class WPShortPixel {
|
|
550 |
//1: get 3 ids to process. Take them with priority from the queue
|
551 |
$ids = $this->getFromPrioAndCheck();
|
552 |
if(count($ids) < 3 ) { //take from bulk if bulk processing active
|
553 |
-
$
|
554 |
-
if($bulkStatus =='running') {
|
555 |
$res = $this->getBulkItemsFromDb();
|
556 |
$bulkItems = $res['items'];
|
557 |
if($bulkItems){
|
@@ -575,11 +605,17 @@ class WPShortPixel {
|
|
575 |
// die("za stop 2");
|
576 |
|
577 |
if ($ids === false || count( $ids ) == 0 ){
|
|
|
|
|
|
|
|
|
|
|
578 |
$bulkEverRan = $this->prioQ->stopBulk();
|
579 |
$avg = $this->getAverageCompression();
|
580 |
$fileCount = $this->_settings->fileCount;
|
581 |
$response = array("Status" => self::BULK_EMPTY_QUEUE,
|
582 |
-
|
|
|
583 |
"BulkStatus" => ($this->prioQ->bulkRunning()
|
584 |
? "1" : ($this->prioQ->bulkPaused() ? "2" : "0")),
|
585 |
"AverageCompression" => $avg,
|
@@ -619,19 +655,13 @@ class WPShortPixel {
|
|
619 |
$prio = $this->prioQ->remove($itemId);
|
620 |
//remove also from the failed list if it failed in the past
|
621 |
$prio = $this->prioQ->removeFromFailed($itemId);
|
622 |
-
/* $result["Type"] = isset($meta['ShortPixel']['type']) ? $meta['ShortPixel']['type'] : '';
|
623 |
-
$result["ThumbsTotal"] = isset($meta['sizes']) && is_array($meta['sizes']) ? count($meta['sizes']): 0;
|
624 |
-
$result["ThumbsCount"] = isset($meta['ShortPixel']['thumbsOpt'])
|
625 |
-
? $meta['ShortPixel']['thumbsOpt'] //below is the fallback for old optimized images that don't have thumbsOpt
|
626 |
-
: ($this->_settings->processThumbnails ? $result["ThumbsTotal"] : 0);
|
627 |
-
*/
|
628 |
$result["Type"] = $meta->getCompressionType() !== null ? ShortPixelAPI::getCompressionTypeName($meta->getCompressionType()) : '';
|
629 |
$result["ThumbsTotal"] = $meta->getThumbs() && is_array($meta->getThumbs()) ? count($meta->getThumbs()): 0;
|
630 |
$result["ThumbsCount"] = $meta->getThumbsOpt()
|
631 |
? $meta->getThumbsOpt() //below is the fallback for old optimized images that don't have thumbsOpt
|
632 |
: ($this->_settings->processThumbnails ? $result["ThumbsTotal"] : 0);
|
633 |
|
634 |
-
|
635 |
$result["BackupEnabled"] = ($this->getBackupFolder($meta->getPath()) ? true : false);//$this->_settings->backupImages;
|
636 |
|
637 |
if(!$prio && $itemId <= $this->prioQ->getStartBulkId()) {
|
@@ -646,16 +676,10 @@ class WPShortPixel {
|
|
646 |
$thumb = $bkThumb = "";
|
647 |
//$percent = 0;
|
648 |
$percent = $meta->getImprovementPercent();
|
649 |
-
//if(isset($meta["ShortPixelImprovement"]) && isset($meta["file"])){
|
650 |
if($percent){
|
651 |
-
//$percent = $meta["ShortPixelImprovement"];
|
652 |
-
|
653 |
-
//$filePath = explode("/", $meta["file"]);
|
654 |
$filePath = explode("/", $meta->getPath());
|
655 |
|
656 |
//Get a suitable thumb
|
657 |
-
//if(isset($meta["sizes"]) && count($meta["sizes"])) {
|
658 |
-
//$sizes = $meta["sizes"];
|
659 |
$sizes = $meta->getThumbs();
|
660 |
if('pdf' == strtolower(pathinfo($result["Filename"], PATHINFO_EXTENSION))) {
|
661 |
// echo($result["Filename"] . " ESTE --> "); die(var_dump(strtolower(pathinfo($result["Filename"], PATHINFO_EXTENSION))));
|
@@ -714,9 +738,11 @@ class WPShortPixel {
|
|
714 |
if(! $this->prioQ->remove($itemId) ){
|
715 |
$this->advanceBulk($meta->getId(), $result);
|
716 |
}
|
717 |
-
$itemHandler->
|
|
|
|
|
718 |
$result["Status"] = ShortPixelAPI::STATUS_SKIP;
|
719 |
-
$result["Message"] .=
|
720 |
$itemHandler->setError(ShortPixelAPI::ERR_INCORRECT_FILE_SIZE, $result["Message"] );
|
721 |
}
|
722 |
else {
|
@@ -730,7 +756,6 @@ class WPShortPixel {
|
|
730 |
$prio = $this->prioQ->remove($itemId);
|
731 |
if(isset($result["Code"])
|
732 |
&& ( $result["Code"] == "write-fail" //could not write
|
733 |
-
//|| $result["Code"] == -201)) {
|
734 |
|| (in_array(0+$result["Code"], array(-201)) && $meta->getRetries() >= 3))) { //for -201 (invalid image format) we retry only 3 times.
|
735 |
//put this one in the failed images list - to show the user at the end
|
736 |
$prio = $this->prioQ->addToFailed($itemHandler->getQueuedId());
|
@@ -812,7 +837,7 @@ class WPShortPixel {
|
|
812 |
return array("Status" => ShortPixelAPI::STATUS_SUCCESS, "message" => "");
|
813 |
}
|
814 |
}
|
815 |
-
return array("Status" => ShortPixelAPI::STATUS_FAIL, "message" =>
|
816 |
break;
|
817 |
case "C-":
|
818 |
throw new Exception("HandleManualOptimization for custom images not implemented");
|
@@ -900,7 +925,10 @@ class WPShortPixel {
|
|
900 |
try {
|
901 |
//main file
|
902 |
$this->renameWithRetina($bkFile, $file);
|
903 |
-
|
|
|
|
|
|
|
904 |
|
905 |
//overwriting thumbnails
|
906 |
foreach($thumbsPaths as $source => $destination) {
|
@@ -914,6 +942,10 @@ class WPShortPixel {
|
|
914 |
}
|
915 |
unset($crtMeta["ShortPixelImprovement"]);
|
916 |
unset($crtMeta['ShortPixel']);
|
|
|
|
|
|
|
|
|
917 |
wp_update_attachment_metadata($ID, $crtMeta);
|
918 |
}
|
919 |
|
@@ -981,7 +1013,7 @@ class WPShortPixel {
|
|
981 |
$this->prioQ->push($qID);
|
982 |
$ret = array("Status" => ShortPixelAPI::STATUS_SUCCESS, "Message" => "");
|
983 |
} else {
|
984 |
-
$ret = array("Status" => ShortPixelAPI::STATUS_SKIP, "Message" =>
|
985 |
}
|
986 |
} else {
|
987 |
$ID = intval($qID);
|
@@ -995,7 +1027,7 @@ class WPShortPixel {
|
|
995 |
$this->sendToProcessing(new ShortPixelMetaFacade($ID), $compressionType == 'lossy' ? 1 : 0);
|
996 |
$ret = array("Status" => ShortPixelAPI::STATUS_SUCCESS, "Message" => "");
|
997 |
} else {
|
998 |
-
$ret = array("Status" => ShortPixelAPI::STATUS_SKIP, "Message" =>
|
999 |
}
|
1000 |
}
|
1001 |
return $ret;
|
@@ -1014,7 +1046,7 @@ class WPShortPixel {
|
|
1014 |
$this->sendToProcessing(new ShortPixelMetaFacade($ID));
|
1015 |
$ret = array("Status" => ShortPixelAPI::STATUS_SUCCESS, "message" => "");
|
1016 |
} else {
|
1017 |
-
$ret = array("Status" => ShortPixelAPI::STATUS_SKIP, "message" => (isset($meta['ShortPixelImprovement']) ?
|
1018 |
}
|
1019 |
die(json_encode($ret));
|
1020 |
}
|
@@ -1119,11 +1151,11 @@ class WPShortPixel {
|
|
1119 |
<div class="wrap shortpixel-other-media">
|
1120 |
<h2>
|
1121 |
<div style="float:right;">
|
1122 |
-
<a href="upload.php?page=wp-short-pixel-custom&refresh=1" id="refresh" class="button button-primary" title="Refresh custom folders content">
|
1123 |
-
Refresh folders
|
1124 |
</a>
|
1125 |
</div>
|
1126 |
-
Other Media optimized by ShortPixel
|
1127 |
</h2>
|
1128 |
|
1129 |
<div id="poststuff">
|
@@ -1299,7 +1331,7 @@ class WPShortPixel {
|
|
1299 |
|
1300 |
public function browseContent() {
|
1301 |
if ( !current_user_can( 'manage_options' ) ) {
|
1302 |
-
wp_die('You do not have sufficient permissions to access this page.');
|
1303 |
}
|
1304 |
|
1305 |
$root = $this->getCustomFolderBase();
|
@@ -1326,7 +1358,7 @@ class WPShortPixel {
|
|
1326 |
|
1327 |
$htmlRel = htmlentities($returnDir . $file);
|
1328 |
$htmlName = htmlentities($file);
|
1329 |
-
$ext
|
1330 |
|
1331 |
if( file_exists($postDir . $file) && $file != '.' && $file != '..' ) {
|
1332 |
if( is_dir($postDir . $file) && (!$onlyFiles || $onlyFolders) )
|
@@ -1390,7 +1422,7 @@ class WPShortPixel {
|
|
1390 |
|
1391 |
public function renderSettingsMenu() {
|
1392 |
if ( !current_user_can( 'manage_options' ) ) {
|
1393 |
-
wp_die('You do not have sufficient permissions to access this page.');
|
1394 |
}
|
1395 |
|
1396 |
wp_enqueue_style('sp-file-tree.css', plugins_url('/res/css/sp-file-tree.css',__FILE__) );
|
@@ -1427,8 +1459,15 @@ class WPShortPixel {
|
|
1427 |
{
|
1428 |
$KeyLength = strlen($_POST['key']);
|
1429 |
|
1430 |
-
$notice = array("status" => "error",
|
1431 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1432 |
}
|
1433 |
else
|
1434 |
{
|
@@ -1445,20 +1484,21 @@ class WPShortPixel {
|
|
1445 |
//display notification
|
1446 |
$urlParts = explode("/", get_site_url());
|
1447 |
if( $validityData['DomainCheck'] == 'NOT Accessible'){
|
1448 |
-
$notice = array("status" => "warn", "msg" => "API Key is valid but your site is not accessible from our servers.
|
1449 |
-
Please make sure that your server is accessible from the Internet before using the API or otherwise we won't be able to optimize them.");
|
1450 |
} else {
|
1451 |
if ( function_exists("is_multisite") && is_multisite() && !defined("SHORTPIXEL_API_KEY"))
|
1452 |
-
$notice = array("status" => "success", "msg" => "API Key valid! <br>You seem to be running a multisite, please note that API Key can also be configured in wp-config.php like this
|
|
|
1453 |
else
|
1454 |
-
$notice = array("status" => "success", "msg" => 'API Key valid!');
|
1455 |
}
|
1456 |
}
|
1457 |
$this->_settings->verifiedKey = true;
|
1458 |
//test that the "uploads" have the right rights and also we can create the backup dir for ShortPixel
|
1459 |
if ( !file_exists(SP_BACKUP_FOLDER) && !@mkdir(SP_BACKUP_FOLDER, 0777, true) )
|
1460 |
-
$notice = array("status" => "error",
|
1461 |
-
|
|
|
1462 |
} else {
|
1463 |
if(isset($_POST['validate'])) {
|
1464 |
//display notification
|
@@ -1486,8 +1526,8 @@ class WPShortPixel {
|
|
1486 |
$uploadDir = wp_upload_dir();
|
1487 |
$uploadPath = $uploadDir["basedir"];
|
1488 |
|
1489 |
-
if( isset($_POST['save']) && $_POST['save'] == "Save and Go to Bulk Process"
|
1490 |
-
|| isset($_POST['saveAdv']) && $_POST['saveAdv'] == "Save and Go to Bulk Process") {
|
1491 |
wp_redirect("upload.php?page=wp-short-pixel-bulk");
|
1492 |
exit();
|
1493 |
}
|
@@ -1505,13 +1545,15 @@ class WPShortPixel {
|
|
1505 |
if(isset($_POST['addCustomFolder']) && strlen($_POST['addCustomFolder']) > 0) {
|
1506 |
$folderMsg = $this->spMetaDao->newFolderFromPath($_POST['addCustomFolder'], $uploadPath, $this->getCustomFolderBase());
|
1507 |
if(!$folderMsg) {
|
1508 |
-
$notice = array("status" => "success", "msg" => 'Folder added successfully.');
|
1509 |
}
|
1510 |
$customFolders = $this->spMetaDao->getFolders();
|
1511 |
$this->_settings->hasCustomFolders = true;
|
1512 |
}
|
1513 |
-
|
1514 |
-
|
|
|
|
|
1515 |
}
|
1516 |
if(isset($_POST['removeFolder']) && strlen(($_POST['removeFolder']))) {
|
1517 |
$this->spMetaDao->removeFolder($_POST['removeFolder']);
|
@@ -1681,9 +1723,9 @@ class WPShortPixel {
|
|
1681 |
|
1682 |
$defaultData = array(
|
1683 |
"APIKeyValid" => false,
|
1684 |
-
"Message" => 'API Key could not be validated due to a connectivity error.<BR>Your firewall may be blocking us. Please contact your hosting provider and ask them to allow connections from your site to IP 176.9.106.46.<BR> If you still cannot validate your API Key after this, please <a href="https://shortpixel.com/contact" target="_blank">contact us</a> and we will try to help. ',
|
1685 |
-
"APICallsMade" => 'Information unavailable. Please check your API key.',
|
1686 |
-
"APICallsQuota" => 'Information unavailable. Please check your API key.',
|
1687 |
"DomainCheck" => 'NOT Accessible');
|
1688 |
|
1689 |
if(is_object($response) && get_class($response) == 'WP_Error') {
|
@@ -1724,10 +1766,10 @@ class WPShortPixel {
|
|
1724 |
|
1725 |
return array(
|
1726 |
"APIKeyValid" => true,
|
1727 |
-
"APICallsMade" => number_format($data->APICallsMade) . ' images',
|
1728 |
-
"APICallsQuota" => number_format($data->APICallsQuota) . ' images',
|
1729 |
-
"APICallsMadeOneTime" => number_format($data->APICallsMadeOneTime) . ' images',
|
1730 |
-
"APICallsQuotaOneTime" => number_format($data->APICallsQuotaOneTime) . ' images',
|
1731 |
"APICallsMadeNumeric" => $data->APICallsMade,
|
1732 |
"APICallsQuotaNumeric" => $data->APICallsQuota,
|
1733 |
"APICallsMadeOneTimeNumeric" => $data->APICallsMadeOneTime,
|
@@ -1758,7 +1800,7 @@ class WPShortPixel {
|
|
1758 |
elseif (empty($data)) { //TODO asta devine if si decomentam returnurile
|
1759 |
if($fileExtension == "pdf") {
|
1760 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'optimizeNow';
|
1761 |
-
$renderData['message'] = 'PDF not processed.';
|
1762 |
}
|
1763 |
else { //Optimization N/A
|
1764 |
$renderData['status'] = 'n/a';
|
@@ -1780,18 +1822,20 @@ class WPShortPixel {
|
|
1780 |
$sizes = isset($data['sizes']) ? count($data['sizes']) : 0;
|
1781 |
$renderData['thumbsTotal'] = $sizes;
|
1782 |
$renderData['thumbsOpt'] = isset($data['ShortPixel']['thumbsOpt']) ? $data['ShortPixel']['thumbsOpt'] : $sizes;
|
|
|
1783 |
$renderData['quotaExceeded'] = $quotaExceeded;
|
1784 |
}
|
1785 |
-
elseif($data['ShortPixelImprovement'] ==
|
1786 |
$renderData['status'] = 'n/a';
|
1787 |
}
|
1788 |
elseif(isset($meta['ShortPixel']['BulkProcessing'])) { //Scheduled to bulk.
|
1789 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'optimizeNow';
|
1790 |
$renderData['message'] = 'Waiting for bulk processing.';
|
1791 |
}
|
1792 |
-
elseif( trim(strip_tags($data['ShortPixelImprovement'])) == "Cannot write optimized file" ) {
|
1793 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'retry';
|
1794 |
-
$renderData['message'] = "Cannot write optimized file - <a href='https://shortpixel.com/faq#cannot-write-optimized-file' target='_blank'>
|
|
|
1795 |
}
|
1796 |
elseif( strlen(trim(strip_tags($data['ShortPixelImprovement']))) > 0 ) {
|
1797 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'retry';
|
@@ -1799,11 +1843,11 @@ class WPShortPixel {
|
|
1799 |
}
|
1800 |
elseif(isset($data['ShortPixel']['NoFileOnDisk'])) {
|
1801 |
$renderData['status'] = 'notFound';
|
1802 |
-
$renderData['message'] = 'Image does not exist';
|
1803 |
}
|
1804 |
elseif(isset($data['ShortPixel']['WaitingProcessing'])) {
|
1805 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'retry';
|
1806 |
-
$renderData['message'] = "<img src=\"" . plugins_url( 'res/img/loading.gif', __FILE__ ) . "\" class='sp-loading-small'> Image waiting to be processed.";
|
1807 |
if($id > $this->prioQ->getFlagBulkId() || !$this->prioQ->bulkRunning()) $this->prioQ->push($id); //should be there but just to make sure
|
1808 |
}
|
1809 |
else { //finally
|
@@ -1820,7 +1864,8 @@ class WPShortPixel {
|
|
1820 |
public function columns( $defaults ) {
|
1821 |
$defaults['wp-shortPixel'] = 'ShortPixel Compression';
|
1822 |
if(current_user_can( 'manage_options' )) {
|
1823 |
-
$defaults['wp-shortPixel'] .= ' <a href="options-general.php?page=wp-shortpixel#stats" title="
|
|
|
1824 |
}
|
1825 |
return $defaults;
|
1826 |
}
|
@@ -1838,7 +1883,7 @@ class WPShortPixel {
|
|
1838 |
}
|
1839 |
|
1840 |
public function nggColumnHeader( $default ) {
|
1841 |
-
return 'ShortPixel Compression';
|
1842 |
}
|
1843 |
|
1844 |
public function nggColumnContent( $unknown, $picture ) {
|
@@ -1856,6 +1901,7 @@ class WPShortPixel {
|
|
1856 |
'bonus' => $meta->getImprovementPercent() < 5,
|
1857 |
'thumbsOpt' => 0,
|
1858 |
'thumbsTotal' => 0,
|
|
|
1859 |
'backup' => true
|
1860 |
));
|
1861 |
break;
|
@@ -1866,6 +1912,7 @@ class WPShortPixel {
|
|
1866 |
'status' => 'optimizeNow',
|
1867 |
'thumbsOpt' => 0,
|
1868 |
'thumbsTotal' => 0,
|
|
|
1869 |
'message' => "Not optimized"
|
1870 |
));
|
1871 |
}
|
@@ -1907,7 +1954,7 @@ class WPShortPixel {
|
|
1907 |
|
1908 |
//return an array with URL(s) and PATH(s) for this file
|
1909 |
public function getURLsAndPATHs($itemHandler, $meta = NULL, $onlyThumbs = false) {
|
1910 |
-
return $itemHandler->getURLsAndPATHs($this->_settings->processThumbnails, $onlyThumbs);
|
1911 |
}
|
1912 |
|
1913 |
|
@@ -2125,7 +2172,11 @@ function shortpixelNggAdd($image) {
|
|
2125 |
if ( !function_exists( 'vc_action' ) || vc_action() !== 'vc_inline' ) { //handle incompatibility with Visual Composer
|
2126 |
add_action( 'init', 'shortpixelInit');
|
2127 |
add_action('ngg_added_new_image', 'shortpixelNggAdd');
|
2128 |
-
|
|
|
|
|
|
|
|
|
2129 |
|
2130 |
register_activation_hook( __FILE__, array( 'WPShortPixel', 'shortPixelActivatePlugin' ) );
|
2131 |
register_deactivation_hook( __FILE__, array( 'WPShortPixel', 'shortPixelDeactivatePlugin' ) );
|
3 |
* Plugin Name: ShortPixel Image Optimizer
|
4 |
* Plugin URI: https://shortpixel.com/
|
5 |
* Description: ShortPixel optimizes images automatically, while guarding the quality of your images. Check your <a href="options-general.php?page=wp-shortpixel" target="_blank">Settings > ShortPixel</a> page on how to start optimizing your image library and make your website load faster.
|
6 |
+
* Version: 4.2.0
|
7 |
* Author: ShortPixel
|
8 |
* Author URI: https://shortpixel.com
|
9 |
*/
|
12 |
|
13 |
define('SP_AFFILIATE_CODE', '');
|
14 |
|
15 |
+
define('PLUGIN_VERSION', "4.2.0");
|
16 |
define('SP_MAX_TIMEOUT', 10);
|
17 |
define('SP_VALIDATE_MAX_TIMEOUT', 15);
|
18 |
define('SP_BACKUP', 'ShortpixelBackups');
|
62 |
}
|
63 |
|
64 |
require_once('wp-shortpixel-req.php');
|
65 |
+
load_plugin_textdomain('shortpixel', false, plugin_basename(dirname( __FILE__ )).'/lang');
|
66 |
|
67 |
$isAdminUser = current_user_can( 'manage_options' );
|
68 |
|
157 |
}
|
158 |
|
159 |
public function registerSettingsPage() {
|
160 |
+
add_options_page( __('ShortPixel Settings','shortpixel'), 'ShortPixel', 'manage_options', 'wp-shortpixel', array($this, 'renderSettingsMenu'));
|
161 |
}
|
162 |
|
163 |
function registerAdminPage( ) {
|
164 |
if($this->spMetaDao->hasFoldersTable() && count($this->spMetaDao->getFolders())) {
|
165 |
+
/*translators: title and menu name for the Other media page*/
|
166 |
+
add_media_page( __('Other Media Optimized by ShortPixel','shortpixel'), __('Other Media','shortpixel'), 'edit_others_posts', 'wp-short-pixel-custom', array( &$this, 'listCustomMedia' ) );
|
167 |
}
|
168 |
+
/*translators: title and menu name for the Bulk Processing page*/
|
169 |
+
add_media_page( __('ShortPixel Bulk Process','shortpixel'), __('Bulk ShortPixel','shortpixel'), 'edit_others_posts', 'wp-short-pixel-bulk', array( &$this, 'bulkProcess' ) );
|
170 |
}
|
171 |
|
172 |
public static function shortPixelActivatePlugin()//reset some params to avoid trouble for plugins that were activated/deactivated/activated
|
213 |
|
214 |
public function dismissMediaAlert() {
|
215 |
$this->_settings->mediaAlert = 1;
|
216 |
+
die(json_encode(array("Status" => 'success', "Message" => __('Media alert dismissed','shortpixel'))));
|
217 |
}
|
218 |
|
219 |
//set default move as "list". only set once, it won't try to set the default mode again.
|
234 |
}
|
235 |
|
236 |
static function log($message) {
|
237 |
+
if (SHORTPIXEL_DEBUG === true) {
|
238 |
if (is_array($message) || is_object($message)) {
|
239 |
error_log(print_r($message, true));
|
240 |
} else {
|
263 |
};
|
264 |
</script> <?php
|
265 |
wp_enqueue_style('short-pixel.css', plugins_url('/res/css/short-pixel.css',__FILE__) );
|
266 |
+
|
267 |
+
wp_register_script('short-pixel.js', plugins_url('/res/js/short-pixel.js',__FILE__) );
|
268 |
+
$jsTranslation = array(
|
269 |
+
'optimizeWithSP' => __( 'Optimize with ShortPixel', 'shortpixel' ),
|
270 |
+
'changeMLToListMode' => __( 'In order to access the ShortPixel Optimization actions and info, please change to {0}List View{1}List View{2}Dismiss{3}', 'shortpixel' ),
|
271 |
+
'alertOnlyAppliesToNewImages' => __( 'This type of optimization will apply to new uploaded images.\nImages that were already processed will not be re-optimized unless you restart the bulk process.', 'shortpixel' ),
|
272 |
+
'areYouSureStopOptimizing' => __( 'Are you sure you want to stop optimizing the folder {0}?', 'shortpixel' ),
|
273 |
+
'reducedBy' => __( 'Reduced by', 'shortpixel' ),
|
274 |
+
'bonusProcessing' => __( 'Bonus processing', 'shortpixel' ),
|
275 |
+
'plusXthumbsOpt' => __( '+{0} thumbnails optimized', 'shortpixel' ),
|
276 |
+
'plusXretinasOpt' => __( '+{0} Retina images optimized', 'shortpixel' ),
|
277 |
+
'optXThumbs' => __( 'Optimize {0} thumbnails', 'shortpixel' ),
|
278 |
+
'reOptimizeAs' => __( 'Reoptimize {0}', 'shortpixel' ),
|
279 |
+
'restoreBackup' => __( 'Restore backup', 'shortpixel' ),
|
280 |
+
'getApiKey' => __( 'Get API Key', 'shortpixel' ),
|
281 |
+
'extendQuota' => __( 'Extend Quota', 'shortpixel' ),
|
282 |
+
'check__Quota' => __( 'Check Quota', 'shortpixel' ),
|
283 |
+
'retry' => __( 'Retry', 'shortpixel' ),
|
284 |
+
'thisContentNotProcessable' => __( 'This content is not processable.', 'shortpixel' ),
|
285 |
+
'imageWaitOptThumbs' => __( 'Image waiting to optimize thumbnails', 'shortpixel' )
|
286 |
+
);
|
287 |
+
wp_localize_script( 'short-pixel.js', '_spTr', $jsTranslation );
|
288 |
+
wp_enqueue_script('short-pixel.js');
|
289 |
+
|
290 |
wp_enqueue_script('jquery.knob.js', plugins_url('/res/js/jquery.knob.js',__FILE__) );
|
291 |
wp_enqueue_script('jquery.tooltip.js', plugins_url('/res/js/jquery.tooltip.js',__FILE__) );
|
292 |
}
|
294 |
function toolbar_shortpixel_processing( $wp_admin_bar ) {
|
295 |
|
296 |
$extraClasses = " shortpixel-hide";
|
297 |
+
/*translators: toolbar icon tooltip*/
|
298 |
+
$tooltip = __('ShortPixel optimizing...','shortpixel');
|
299 |
$icon = "shortpixel.png";
|
300 |
$successLink = $link = current_user_can( 'edit_others_posts')? 'upload.php?page=wp-short-pixel-bulk' : 'upload.php';
|
301 |
$blank = "";
|
302 |
if($this->prioQ->processing()) {
|
303 |
$extraClasses = " shortpixel-processing";
|
304 |
}
|
|
|
305 |
if($this->_settings->quotaExceeded) {
|
306 |
$extraClasses = " shortpixel-alert shortpixel-quota-exceeded";
|
307 |
+
/*translators: toolbar icon tooltip*/
|
308 |
+
$tooltip = __('ShortPixel quota exceeded. Click for details.','shortpixel');
|
309 |
//$link = "http://shortpixel.com/login/" . $this->_settings->apiKey;
|
310 |
$link = "options-general.php?page=wp-shortpixel";
|
311 |
//$blank = '_blank';
|
345 |
$meta = wp_get_attachment_metadata($ID);
|
346 |
if( ( !isset($meta['ShortPixel']) //never touched by ShortPixel
|
347 |
|| (isset($meta['ShortPixel']['WaitingProcessing']) && $meta['ShortPixel']['WaitingProcessing'] == true))
|
348 |
+
&& (!isset($meta['ShortPixelImprovement']) || $meta['ShortPixelImprovement'] == __('Optimization N/A','shortpixel'))) {
|
349 |
$this->prioQ->push($ID);
|
350 |
$meta['ShortPixel']['WaitingProcessing'] = true;
|
351 |
wp_update_attachment_metadata($ID, $meta);
|
367 |
return $meta;
|
368 |
}
|
369 |
//else
|
370 |
+
//self::log("IMG: Auto-analyzing file ID #{$ID}");
|
371 |
|
372 |
if( self::isProcessable($ID) == false )
|
373 |
{//not a file that we can process
|
374 |
+
$meta['ShortPixelImprovement'] = __('Optimization N/A','shortpixel');
|
375 |
return $meta;
|
376 |
}
|
377 |
else
|
378 |
{//the kind of file we can process. goody.
|
379 |
$this->prioQ->push($ID);
|
380 |
+
//that's a hack for watermarking plugins, don't send the image right away to processing, only add it in the queue
|
381 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
382 |
+
if( !is_plugin_active('image-watermark/image-watermark.php')
|
383 |
+
&& !is_plugin_active('easy-watermark/index.php')) {
|
384 |
+
$itemHandler = new ShortPixelMetaFacade($ID);
|
385 |
+
$itemHandler->setRawMeta($meta);
|
386 |
+
$URLsAndPATHs = $this->getURLsAndPATHs($itemHandler);
|
387 |
+
//send a processing request right after a file was uploaded, do NOT wait for response
|
388 |
+
$this->_apiInterface->doRequests($URLsAndPATHs['URLs'], false, $ID);
|
389 |
+
//self::log("IMG: sent: " . json_encode($URLsAndPATHs));
|
390 |
+
}
|
391 |
$meta['ShortPixel']['WaitingProcessing'] = true;
|
392 |
return $meta;
|
393 |
}
|
|
|
394 |
}//end handleMediaLibraryImageUpload
|
395 |
|
396 |
/**
|
480 |
$idList = array();
|
481 |
$itemList = array();
|
482 |
for ($sanityCheck = 0, $crtStartQueryID = $startQueryID;
|
483 |
+
($crtStartQueryID >= $endQueryID) && (count($itemList) < 3) && ($sanityCheck < 150); $sanityCheck++) {
|
484 |
|
485 |
self::log("GETDB: current StartID: " . $crtStartQueryID);
|
486 |
|
538 |
$crtStartQueryID--;
|
539 |
}
|
540 |
}
|
541 |
+
return array("items" => $itemList, "skipped" => $skippedAlreadyProcessed, "searching" => ($sanityCheck >= 150));
|
542 |
}
|
543 |
|
544 |
/**
|
565 |
$ids = $this->getFromPrioAndCheck();
|
566 |
$itemHandler = (count($ids) > 0 ? $ids[0] : null);
|
567 |
}
|
568 |
+
$response = array("Status" => ShortPixelAPI::STATUS_NO_KEY, "ImageID" => $itemHandler ? $itemHandler->getId() : "-1", "Message" => __('Missing API Key','shortpixel'));
|
569 |
$this->_settings->bulkLastStatus = $response;
|
570 |
die(json_encode($response));
|
571 |
}
|
581 |
//1: get 3 ids to process. Take them with priority from the queue
|
582 |
$ids = $this->getFromPrioAndCheck();
|
583 |
if(count($ids) < 3 ) { //take from bulk if bulk processing active
|
584 |
+
if($this->prioQ->bulkRunning()) {
|
|
|
585 |
$res = $this->getBulkItemsFromDb();
|
586 |
$bulkItems = $res['items'];
|
587 |
if($bulkItems){
|
605 |
// die("za stop 2");
|
606 |
|
607 |
if ($ids === false || count( $ids ) == 0 ){
|
608 |
+
//if searching, than the script is searching for not processed items and found none yet, should be relaunced
|
609 |
+
if(isset($res['searching']) && $res['searching']) {
|
610 |
+
die(json_encode(array("Status" => ShortPixelAPI::STATUS_RETRY, "Message" => 'Searching images to optimize... ' . $this->prioQ->getStartBulkId() . '->' . $this->prioQ->getStopBulkId() )));
|
611 |
+
}
|
612 |
+
//in this case the queue is really empty
|
613 |
$bulkEverRan = $this->prioQ->stopBulk();
|
614 |
$avg = $this->getAverageCompression();
|
615 |
$fileCount = $this->_settings->fileCount;
|
616 |
$response = array("Status" => self::BULK_EMPTY_QUEUE,
|
617 |
+
/* translators: console message Empty queue 1234 -> 1234 */
|
618 |
+
"Message" => __('Empty queue ','shortpixel') . $this->prioQ->getStartBulkId() . '->' . $this->prioQ->getStopBulkId(),
|
619 |
"BulkStatus" => ($this->prioQ->bulkRunning()
|
620 |
? "1" : ($this->prioQ->bulkPaused() ? "2" : "0")),
|
621 |
"AverageCompression" => $avg,
|
655 |
$prio = $this->prioQ->remove($itemId);
|
656 |
//remove also from the failed list if it failed in the past
|
657 |
$prio = $this->prioQ->removeFromFailed($itemId);
|
|
|
|
|
|
|
|
|
|
|
|
|
658 |
$result["Type"] = $meta->getCompressionType() !== null ? ShortPixelAPI::getCompressionTypeName($meta->getCompressionType()) : '';
|
659 |
$result["ThumbsTotal"] = $meta->getThumbs() && is_array($meta->getThumbs()) ? count($meta->getThumbs()): 0;
|
660 |
$result["ThumbsCount"] = $meta->getThumbsOpt()
|
661 |
? $meta->getThumbsOpt() //below is the fallback for old optimized images that don't have thumbsOpt
|
662 |
: ($this->_settings->processThumbnails ? $result["ThumbsTotal"] : 0);
|
663 |
|
664 |
+
$result["RetinasCount"] = $meta->getRetinasOpt();
|
665 |
$result["BackupEnabled"] = ($this->getBackupFolder($meta->getPath()) ? true : false);//$this->_settings->backupImages;
|
666 |
|
667 |
if(!$prio && $itemId <= $this->prioQ->getStartBulkId()) {
|
676 |
$thumb = $bkThumb = "";
|
677 |
//$percent = 0;
|
678 |
$percent = $meta->getImprovementPercent();
|
|
|
679 |
if($percent){
|
|
|
|
|
|
|
680 |
$filePath = explode("/", $meta->getPath());
|
681 |
|
682 |
//Get a suitable thumb
|
|
|
|
|
683 |
$sizes = $meta->getThumbs();
|
684 |
if('pdf' == strtolower(pathinfo($result["Filename"], PATHINFO_EXTENSION))) {
|
685 |
// echo($result["Filename"] . " ESTE --> "); die(var_dump(strtolower(pathinfo($result["Filename"], PATHINFO_EXTENSION))));
|
738 |
if(! $this->prioQ->remove($itemId) ){
|
739 |
$this->advanceBulk($meta->getId(), $result);
|
740 |
}
|
741 |
+
if($itemHandler->getType() == ShortPixelMetaFacade::MEDIA_LIBRARY_TYPE) {
|
742 |
+
$itemHandler->deleteMeta(); //this deletes only the ShortPixel fields from meta, in case of WP Media library
|
743 |
+
}
|
744 |
$result["Status"] = ShortPixelAPI::STATUS_SKIP;
|
745 |
+
$result["Message"] .= __(' Retry limit reached. Skipping file ID ','shortpixel') . $itemId . ".";
|
746 |
$itemHandler->setError(ShortPixelAPI::ERR_INCORRECT_FILE_SIZE, $result["Message"] );
|
747 |
}
|
748 |
else {
|
756 |
$prio = $this->prioQ->remove($itemId);
|
757 |
if(isset($result["Code"])
|
758 |
&& ( $result["Code"] == "write-fail" //could not write
|
|
|
759 |
|| (in_array(0+$result["Code"], array(-201)) && $meta->getRetries() >= 3))) { //for -201 (invalid image format) we retry only 3 times.
|
760 |
//put this one in the failed images list - to show the user at the end
|
761 |
$prio = $this->prioQ->addToFailed($itemHandler->getQueuedId());
|
837 |
return array("Status" => ShortPixelAPI::STATUS_SUCCESS, "message" => "");
|
838 |
}
|
839 |
}
|
840 |
+
return array("Status" => ShortPixelAPI::STATUS_FAIL, "message" => __('NextGen image not found','shortpixel'));
|
841 |
break;
|
842 |
case "C-":
|
843 |
throw new Exception("HandleManualOptimization for custom images not implemented");
|
925 |
try {
|
926 |
//main file
|
927 |
$this->renameWithRetina($bkFile, $file);
|
928 |
+
//getSize to update meta if image was resized by ShortPixel
|
929 |
+
$size = getimagesize($file);
|
930 |
+
$width = $size[0];
|
931 |
+
$height = $size[1];
|
932 |
|
933 |
//overwriting thumbnails
|
934 |
foreach($thumbsPaths as $source => $destination) {
|
942 |
}
|
943 |
unset($crtMeta["ShortPixelImprovement"]);
|
944 |
unset($crtMeta['ShortPixel']);
|
945 |
+
if($width && $height) {
|
946 |
+
$crtMeta['width'] = $width;
|
947 |
+
$crtMeta['height'] = $height;
|
948 |
+
}
|
949 |
wp_update_attachment_metadata($ID, $crtMeta);
|
950 |
}
|
951 |
|
1013 |
$this->prioQ->push($qID);
|
1014 |
$ret = array("Status" => ShortPixelAPI::STATUS_SUCCESS, "Message" => "");
|
1015 |
} else {
|
1016 |
+
$ret = array("Status" => ShortPixelAPI::STATUS_SKIP, "Message" => __('Could not restore from backup: ','shortpixel') . $qID);
|
1017 |
}
|
1018 |
} else {
|
1019 |
$ID = intval($qID);
|
1027 |
$this->sendToProcessing(new ShortPixelMetaFacade($ID), $compressionType == 'lossy' ? 1 : 0);
|
1028 |
$ret = array("Status" => ShortPixelAPI::STATUS_SUCCESS, "Message" => "");
|
1029 |
} else {
|
1030 |
+
$ret = array("Status" => ShortPixelAPI::STATUS_SKIP, "Message" => __('Could not restore from backup: ','shortpixel') . $ID);
|
1031 |
}
|
1032 |
}
|
1033 |
return $ret;
|
1046 |
$this->sendToProcessing(new ShortPixelMetaFacade($ID));
|
1047 |
$ret = array("Status" => ShortPixelAPI::STATUS_SUCCESS, "message" => "");
|
1048 |
} else {
|
1049 |
+
$ret = array("Status" => ShortPixelAPI::STATUS_SKIP, "message" => (isset($meta['ShortPixelImprovement']) ? __('No thumbnails to optimize for ID: ','shortpixel') : __('Please optimize image for ID: ','shortpixel')) . $ID);
|
1050 |
}
|
1051 |
die(json_encode($ret));
|
1052 |
}
|
1151 |
<div class="wrap shortpixel-other-media">
|
1152 |
<h2>
|
1153 |
<div style="float:right;">
|
1154 |
+
<a href="upload.php?page=wp-short-pixel-custom&refresh=1" id="refresh" class="button button-primary" title="<?php _e('Refresh custom folders content','shortpixel');?>">
|
1155 |
+
<?php _e('Refresh folders','shortpixel');?>
|
1156 |
</a>
|
1157 |
</div>
|
1158 |
+
<?php _e('Other Media optimized by ShortPixel','shortpixel');?>
|
1159 |
</h2>
|
1160 |
|
1161 |
<div id="poststuff">
|
1331 |
|
1332 |
public function browseContent() {
|
1333 |
if ( !current_user_can( 'manage_options' ) ) {
|
1334 |
+
wp_die(__('You do not have sufficient permissions to access this page.','shortpixel'));
|
1335 |
}
|
1336 |
|
1337 |
$root = $this->getCustomFolderBase();
|
1358 |
|
1359 |
$htmlRel = htmlentities($returnDir . $file);
|
1360 |
$htmlName = htmlentities($file);
|
1361 |
+
$ext = preg_replace('/^.*\./', '', $file);
|
1362 |
|
1363 |
if( file_exists($postDir . $file) && $file != '.' && $file != '..' ) {
|
1364 |
if( is_dir($postDir . $file) && (!$onlyFiles || $onlyFolders) )
|
1422 |
|
1423 |
public function renderSettingsMenu() {
|
1424 |
if ( !current_user_can( 'manage_options' ) ) {
|
1425 |
+
wp_die(__('You do not have sufficient permissions to access this page.','shortpixel'));
|
1426 |
}
|
1427 |
|
1428 |
wp_enqueue_style('sp-file-tree.css', plugins_url('/res/css/sp-file-tree.css',__FILE__) );
|
1459 |
{
|
1460 |
$KeyLength = strlen($_POST['key']);
|
1461 |
|
1462 |
+
$notice = array("status" => "error",
|
1463 |
+
"msg" => sprintf(__("The key you provided has %s characters. The API key should have 20 characters, letters and numbers only.",'shortpixel'), $KeyLength)
|
1464 |
+
. "<BR> <b>"
|
1465 |
+
. __('Please check that the API key is the same as the one you received in your confirmation email.','shortpixel')
|
1466 |
+
. "</b><BR> "
|
1467 |
+
. __('If this problem persists, please contact us at ','shortpixel')
|
1468 |
+
. "<a href='mailto:help@shortpixel.com?Subject=API Key issues' target='_top'>help@shortpixel.com</a>"
|
1469 |
+
. __(' or ','shortpixel')
|
1470 |
+
. "<a href='https://shortpixel.com/contact' target='_blank'>" . __('here','shortpixel') . "</a>.");
|
1471 |
}
|
1472 |
else
|
1473 |
{
|
1484 |
//display notification
|
1485 |
$urlParts = explode("/", get_site_url());
|
1486 |
if( $validityData['DomainCheck'] == 'NOT Accessible'){
|
1487 |
+
$notice = array("status" => "warn", "msg" => __("API Key is valid but your site is not accessible from our servers. Please make sure that your server is accessible from the Internet before using the API or otherwise we won't be able to optimize them.",'shortpixel'));
|
|
|
1488 |
} else {
|
1489 |
if ( function_exists("is_multisite") && is_multisite() && !defined("SHORTPIXEL_API_KEY"))
|
1490 |
+
$notice = array("status" => "success", "msg" => __("API Key valid! <br>You seem to be running a multisite, please note that API Key can also be configured in wp-config.php like this:",'shortpixel')
|
1491 |
+
. "<BR> <b>define('SHORTPIXEL_API_KEY', '".$this->_settings->apiKey."');</b>");
|
1492 |
else
|
1493 |
+
$notice = array("status" => "success", "msg" => __('API Key valid!','shortpixel'));
|
1494 |
}
|
1495 |
}
|
1496 |
$this->_settings->verifiedKey = true;
|
1497 |
//test that the "uploads" have the right rights and also we can create the backup dir for ShortPixel
|
1498 |
if ( !file_exists(SP_BACKUP_FOLDER) && !@mkdir(SP_BACKUP_FOLDER, 0777, true) )
|
1499 |
+
$notice = array("status" => "error",
|
1500 |
+
"msg" => sprintf(__("There is something preventing us to create a new folder for backing up your original files.<BR>Please make sure that folder <b>%s</b> has the necessary write and read rights.",'shortpixel'),
|
1501 |
+
WP_CONTENT_DIR . '/' . SP_UPLOADS_NAME ));
|
1502 |
} else {
|
1503 |
if(isset($_POST['validate'])) {
|
1504 |
//display notification
|
1526 |
$uploadDir = wp_upload_dir();
|
1527 |
$uploadPath = $uploadDir["basedir"];
|
1528 |
|
1529 |
+
if( isset($_POST['save']) && $_POST['save'] == __("Save and Go to Bulk Process",'shortpixel')
|
1530 |
+
|| isset($_POST['saveAdv']) && $_POST['saveAdv'] == __("Save and Go to Bulk Process",'shortpixel')) {
|
1531 |
wp_redirect("upload.php?page=wp-short-pixel-bulk");
|
1532 |
exit();
|
1533 |
}
|
1545 |
if(isset($_POST['addCustomFolder']) && strlen($_POST['addCustomFolder']) > 0) {
|
1546 |
$folderMsg = $this->spMetaDao->newFolderFromPath($_POST['addCustomFolder'], $uploadPath, $this->getCustomFolderBase());
|
1547 |
if(!$folderMsg) {
|
1548 |
+
$notice = array("status" => "success", "msg" => __('Folder added successfully.','shortpixel'));
|
1549 |
}
|
1550 |
$customFolders = $this->spMetaDao->getFolders();
|
1551 |
$this->_settings->hasCustomFolders = true;
|
1552 |
}
|
1553 |
+
$this->_settings->createWebp = (isset($_POST['createWebp']) ? 1: 0);
|
1554 |
+
$this->_settings->optimizeRetina = (isset($_POST['optimizeRetina']) ? 1: 0);
|
1555 |
+
$this->_settings->frontBootstrap = (isset($_POST['frontBootstrap']) ? 1: 0);
|
1556 |
+
$this->_settings->autoMediaLibrary = (isset($_POST['autoMediaLibrary']) ? 1: 0);
|
1557 |
}
|
1558 |
if(isset($_POST['removeFolder']) && strlen(($_POST['removeFolder']))) {
|
1559 |
$this->spMetaDao->removeFolder($_POST['removeFolder']);
|
1723 |
|
1724 |
$defaultData = array(
|
1725 |
"APIKeyValid" => false,
|
1726 |
+
"Message" => __('API Key could not be validated due to a connectivity error.<BR>Your firewall may be blocking us. Please contact your hosting provider and ask them to allow connections from your site to IP 176.9.106.46.<BR> If you still cannot validate your API Key after this, please <a href="https://shortpixel.com/contact" target="_blank">contact us</a> and we will try to help. ','shortpixel'),
|
1727 |
+
"APICallsMade" => __('Information unavailable. Please check your API key.','shortpixel'),
|
1728 |
+
"APICallsQuota" => __('Information unavailable. Please check your API key.','shortpixel'),
|
1729 |
"DomainCheck" => 'NOT Accessible');
|
1730 |
|
1731 |
if(is_object($response) && get_class($response) == 'WP_Error') {
|
1766 |
|
1767 |
return array(
|
1768 |
"APIKeyValid" => true,
|
1769 |
+
"APICallsMade" => number_format($data->APICallsMade) . __(' images','shortpixel'),
|
1770 |
+
"APICallsQuota" => number_format($data->APICallsQuota) . __(' images','shortpixel'),
|
1771 |
+
"APICallsMadeOneTime" => number_format($data->APICallsMadeOneTime) . __(' images','shortpixel'),
|
1772 |
+
"APICallsQuotaOneTime" => number_format($data->APICallsQuotaOneTime) . __(' images','shortpixel'),
|
1773 |
"APICallsMadeNumeric" => $data->APICallsMade,
|
1774 |
"APICallsQuotaNumeric" => $data->APICallsQuota,
|
1775 |
"APICallsMadeOneTimeNumeric" => $data->APICallsMadeOneTime,
|
1800 |
elseif (empty($data)) { //TODO asta devine if si decomentam returnurile
|
1801 |
if($fileExtension == "pdf") {
|
1802 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'optimizeNow';
|
1803 |
+
$renderData['message'] = __('PDF not processed.','shortpixel');
|
1804 |
}
|
1805 |
else { //Optimization N/A
|
1806 |
$renderData['status'] = 'n/a';
|
1822 |
$sizes = isset($data['sizes']) ? count($data['sizes']) : 0;
|
1823 |
$renderData['thumbsTotal'] = $sizes;
|
1824 |
$renderData['thumbsOpt'] = isset($data['ShortPixel']['thumbsOpt']) ? $data['ShortPixel']['thumbsOpt'] : $sizes;
|
1825 |
+
$renderData['retinasOpt'] = isset($data['ShortPixel']['retinasOpt']) ? $data['ShortPixel']['retinasOpt'] : null;
|
1826 |
$renderData['quotaExceeded'] = $quotaExceeded;
|
1827 |
}
|
1828 |
+
elseif($data['ShortPixelImprovement'] == __('Optimization N/A','shortpixel')) { //We don't optimize this
|
1829 |
$renderData['status'] = 'n/a';
|
1830 |
}
|
1831 |
elseif(isset($meta['ShortPixel']['BulkProcessing'])) { //Scheduled to bulk.
|
1832 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'optimizeNow';
|
1833 |
$renderData['message'] = 'Waiting for bulk processing.';
|
1834 |
}
|
1835 |
+
elseif( trim(strip_tags($data['ShortPixelImprovement'])) == __("Cannot write optimized file",'shortpixel') ) {
|
1836 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'retry';
|
1837 |
+
$renderData['message'] = __("Cannot write optimized file",'shortpixel') . " - <a href='https://shortpixel.com/faq#cannot-write-optimized-file' target='_blank'>"
|
1838 |
+
. __("Why?",'shortpixel') . "</a>";
|
1839 |
}
|
1840 |
elseif( strlen(trim(strip_tags($data['ShortPixelImprovement']))) > 0 ) {
|
1841 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'retry';
|
1843 |
}
|
1844 |
elseif(isset($data['ShortPixel']['NoFileOnDisk'])) {
|
1845 |
$renderData['status'] = 'notFound';
|
1846 |
+
$renderData['message'] = __('Image does not exist','shortpixel');
|
1847 |
}
|
1848 |
elseif(isset($data['ShortPixel']['WaitingProcessing'])) {
|
1849 |
$renderData['status'] = $quotaExceeded ? 'quotaExceeded' : 'retry';
|
1850 |
+
$renderData['message'] = "<img src=\"" . plugins_url( 'res/img/loading.gif', __FILE__ ) . "\" class='sp-loading-small'> " . __("Image waiting to be processed.",'shortpixel');
|
1851 |
if($id > $this->prioQ->getFlagBulkId() || !$this->prioQ->bulkRunning()) $this->prioQ->push($id); //should be there but just to make sure
|
1852 |
}
|
1853 |
else { //finally
|
1864 |
public function columns( $defaults ) {
|
1865 |
$defaults['wp-shortPixel'] = 'ShortPixel Compression';
|
1866 |
if(current_user_can( 'manage_options' )) {
|
1867 |
+
$defaults['wp-shortPixel'] .= ' <a href="options-general.php?page=wp-shortpixel#stats" title="'
|
1868 |
+
. __('ShortPixel Statistics','shortpixel') . '"><span class="dashicons dashicons-dashboard"></span></a>';
|
1869 |
}
|
1870 |
return $defaults;
|
1871 |
}
|
1883 |
}
|
1884 |
|
1885 |
public function nggColumnHeader( $default ) {
|
1886 |
+
return __('ShortPixel Compression','shortpixel');
|
1887 |
}
|
1888 |
|
1889 |
public function nggColumnContent( $unknown, $picture ) {
|
1901 |
'bonus' => $meta->getImprovementPercent() < 5,
|
1902 |
'thumbsOpt' => 0,
|
1903 |
'thumbsTotal' => 0,
|
1904 |
+
'retinasOpt' => 0,
|
1905 |
'backup' => true
|
1906 |
));
|
1907 |
break;
|
1912 |
'status' => 'optimizeNow',
|
1913 |
'thumbsOpt' => 0,
|
1914 |
'thumbsTotal' => 0,
|
1915 |
+
'retinasOpt' => 0,
|
1916 |
'message' => "Not optimized"
|
1917 |
));
|
1918 |
}
|
1954 |
|
1955 |
//return an array with URL(s) and PATH(s) for this file
|
1956 |
public function getURLsAndPATHs($itemHandler, $meta = NULL, $onlyThumbs = false) {
|
1957 |
+
return $itemHandler->getURLsAndPATHs($this->_settings->processThumbnails, $onlyThumbs, $this->_settings->optimizeRetina);
|
1958 |
}
|
1959 |
|
1960 |
|
2172 |
if ( !function_exists( 'vc_action' ) || vc_action() !== 'vc_inline' ) { //handle incompatibility with Visual Composer
|
2173 |
add_action( 'init', 'shortpixelInit');
|
2174 |
add_action('ngg_added_new_image', 'shortpixelNggAdd');
|
2175 |
+
|
2176 |
+
$autoMediaLibrary = get_option('wp-short-pixel-auto-media-library');
|
2177 |
+
if($autoMediaLibrary) {
|
2178 |
+
add_filter( 'wp_generate_attachment_metadata', 'handleImageUploadHook', 10, 2 );
|
2179 |
+
}
|
2180 |
|
2181 |
register_activation_hook( __FILE__, array( 'WPShortPixel', 'shortPixelActivatePlugin' ) );
|
2182 |
register_deactivation_hook( __FILE__, array( 'WPShortPixel', 'shortPixelDeactivatePlugin' ) );
|