SEO SQUIRRLY™ - Version 10.2.00

Version Description

  • 10/21/2020 =
  • Update - Keyword Research Algoritm get better results with the last Google Algorithm upgrades
  • Update - Bulk SEO and Focus Pages works with keywords having special chars
  • Update - Keyword Research, Briefcase and Live Assistant work with special chars and all languages
  • Update - Show in Briefcase the posts where a specific keyword was used
  • Update - Show in Briefcase the search volume for a keyword if exists
  • Update - The user experience in Focus Pages when the page is indexed
  • Update - Added the option to disconnect and send feedback on plugin deactivation
  • Update - Sitemap XML works with special chars in title, description and keywords
  • Update - Squirrly SEO tracking tool supports Google Analytics 4
  • Fixed - Escaped all translations and variables in the plugin to prevent errors on plugin translation
  • Fixed - Corrected all the numbers format in Focus Pages, SEO Audit, Briefcase, Rankings
  • Fixed - Show the decoded arabic URLs on all the plugin places
  • Fixed - Compatibility with plugins like Polylang, Woocommerce
Download this release

Release Info

Developer cifi
Plugin Icon 128x128 SEO SQUIRRLY™
Version 10.2.00
Comparing to
See all releases

Code changes from version 10.1.07 to 10.2.00

Files changed (49) hide show
  1. classes/ActionController.php +9 -3
  2. classes/BlockController.php +3 -14
  3. classes/DisplayController.php +1 -3
  4. classes/Error.php +11 -17
  5. classes/FrontController.php +2 -2
  6. classes/RemoteController.php +98 -76
  7. classes/helpers/DevKit.php +10 -6
  8. classes/helpers/Sanitize.php +105 -13
  9. classes/helpers/Tools.php +33 -23
  10. config.json +2 -1
  11. config/config.php +32 -32
  12. config/paths.php +15 -14
  13. controllers/Account.php +1 -1
  14. controllers/Api.php +13 -13
  15. controllers/Assistant.php +9 -9
  16. controllers/Audits.php +14 -14
  17. controllers/BulkSeo.php +3 -3
  18. controllers/CheckSeo.php +10 -8
  19. controllers/Dashboard.php +1 -1
  20. controllers/FocusPages.php +14 -14
  21. controllers/Frontend.php +3 -3
  22. controllers/Menu.php +21 -15
  23. controllers/Overview.php +1 -1
  24. controllers/Patterns.php +15 -13
  25. controllers/Post.php +35 -33
  26. controllers/PostsList.php +13 -13
  27. controllers/Ranking.php +12 -12
  28. controllers/Research.php +76 -76
  29. controllers/SeoSettings.php +59 -60
  30. controllers/Sitemaps.php +2 -2
  31. controllers/Snippet.php +8 -8
  32. controllers/Uninstall.php +16 -0
  33. core/BlockAudits.php +0 -43
  34. core/BlockFocusPages.php +0 -65
  35. core/BlockKRFound.php +0 -16
  36. core/BlockKRHistory.php +0 -16
  37. core/BlockRanks.php +0 -62
  38. core/BlockSEOIssues.php +0 -14
  39. core/BlockSupport.php +27 -37
  40. core/Blocklogin.php +10 -10
  41. debug/index.php +2 -2
  42. languages/squirrly-seo-cs_CZ.mo +0 -0
  43. languages/squirrly-seo-cs_CZ.po +2169 -1915
  44. languages/squirrly-seo-de_DE.mo +0 -0
  45. languages/squirrly-seo-de_DE.po +2665 -2010
  46. languages/squirrly-seo-en_US.mo +0 -0
  47. languages/squirrly-seo-ro_RO.mo +0 -0
  48. languages/squirrly-seo-ro_RO.po +2032 -1835
  49. languages/{squirrly-seo-en_US.po → squirrly-seo.pot} +312 -386
classes/ActionController.php CHANGED
@@ -70,8 +70,13 @@ class SQ_Classes_ActionController extends SQ_Classes_FrontController {
70
  *
71
  */
72
  public function getActions() {
 
 
 
 
73
  $this->actions = array();
74
  $cur_action = SQ_Classes_Helpers_Tools::getValue('action', false);
 
75
  $sq_nonce = SQ_Classes_Helpers_Tools::getValue('sq_nonce', false);
76
 
77
  if (!function_exists('is_user_logged_in')) {
@@ -83,12 +88,12 @@ class SQ_Classes_ActionController extends SQ_Classes_FrontController {
83
  /* if config allready in cache */
84
  if (!isset(self::$config)) {
85
  $config_file = _SQ_ROOT_DIR_ . 'config.json';
86
- if (!file_exists($config_file)) {
87
  return;
88
  }
89
 
90
  /* load configuration blocks data from core config files */
91
- self::$config = json_decode(file_get_contents($config_file), 1);
92
  }
93
 
94
  if (is_array(self::$config))
@@ -117,10 +122,11 @@ class SQ_Classes_ActionController extends SQ_Classes_FrontController {
117
  }
118
  }
119
 
 
120
  if (!empty($this->actions)) {
121
  /* add the actions in WP */
122
  foreach ($this->actions as $actions) {
123
- if (SQ_Classes_Helpers_Tools::isAjax()) {
124
  check_ajax_referer(_SQ_NONCE_ID_, 'sq_nonce');
125
  add_action('wp_ajax_' . $cur_action, array(SQ_Classes_ObjController::getClass($actions['class']), 'action'));
126
  } else {
70
  *
71
  */
72
  public function getActions() {
73
+ global $wp_filesystem;
74
+ require_once(ABSPATH . '/wp-admin/includes/file.php');
75
+ WP_Filesystem();
76
+
77
  $this->actions = array();
78
  $cur_action = SQ_Classes_Helpers_Tools::getValue('action', false);
79
+ $http_referer = SQ_Classes_Helpers_Tools::getValue('_wp_http_referer', false);
80
  $sq_nonce = SQ_Classes_Helpers_Tools::getValue('sq_nonce', false);
81
 
82
  if (!function_exists('is_user_logged_in')) {
88
  /* if config allready in cache */
89
  if (!isset(self::$config)) {
90
  $config_file = _SQ_ROOT_DIR_ . 'config.json';
91
+ if (!$wp_filesystem->exists($config_file)) {
92
  return;
93
  }
94
 
95
  /* load configuration blocks data from core config files */
96
+ self::$config = json_decode($wp_filesystem->get_contents($config_file), 1);
97
  }
98
 
99
  if (is_array(self::$config))
122
  }
123
  }
124
 
125
+ //If there is an action found in the config.js file
126
  if (!empty($this->actions)) {
127
  /* add the actions in WP */
128
  foreach ($this->actions as $actions) {
129
+ if (SQ_Classes_Helpers_Tools::isAjax() && !$http_referer) {
130
  check_ajax_referer(_SQ_NONCE_ID_, 'sq_nonce');
131
  add_action('wp_ajax_' . $cur_action, array(SQ_Classes_ObjController::getClass($actions['class']), 'action'));
132
  } else {
classes/BlockController.php CHANGED
@@ -25,7 +25,7 @@ class SQ_Classes_BlockController {
25
 
26
  /* create the model and view instances */
27
  $model_classname = str_replace('Core', 'Models', $this->name);
28
- if(SQ_Classes_ObjController::getClassPath($model_classname)) {
29
  $this->model = SQ_Classes_ObjController::getClass($model_classname);
30
  }
31
  }
@@ -45,9 +45,9 @@ class SQ_Classes_BlockController {
45
  if ($this->flush) {
46
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia($class['name']);
47
 
48
- echo $this->getView($class['name']);
49
  } else {
50
- return $this->getView($class['name']);
51
  }
52
 
53
  return '';
@@ -73,17 +73,6 @@ class SQ_Classes_BlockController {
73
  echo $this->init();
74
  }
75
 
76
- public function preloadSettings() {
77
- if (SQ_Classes_Helpers_Tools::getOption('sq_api') <> '') {
78
- echo '<script>
79
- var __blog_url = "' . get_bloginfo('url') . '";
80
- var __token = "' . SQ_Classes_Helpers_Tools::getOption('sq_api') . '";
81
- var __language = "' . get_bloginfo('language') . '";
82
- var __apiv2_url = "' . _SQ_APIV2_URL_ . '";
83
- </script>';
84
- }
85
- }
86
-
87
  /**
88
  * This function is called from Ajax class as a wp_ajax_action
89
  *
25
 
26
  /* create the model and view instances */
27
  $model_classname = str_replace('Core', 'Models', $this->name);
28
+ if (SQ_Classes_ObjController::getClassPath($model_classname)) {
29
  $this->model = SQ_Classes_ObjController::getClass($model_classname);
30
  }
31
  }
45
  if ($this->flush) {
46
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia($class['name']);
47
 
48
+ echo (string)$this->getView($class['name']);
49
  } else {
50
+ return (string)$this->getView($class['name']);
51
  }
52
 
53
  return '';
73
  echo $this->init();
74
  }
75
 
 
 
 
 
 
 
 
 
 
 
 
76
  /**
77
  * This function is called from Ajax class as a wp_ajax_action
78
  *
classes/DisplayController.php CHANGED
@@ -75,7 +75,6 @@ class SQ_Classes_DisplayController {
75
  }
76
  }
77
 
78
-
79
  }
80
 
81
  if ($js_uri <> '') {
@@ -109,15 +108,14 @@ class SQ_Classes_DisplayController {
109
  $file = apply_filters('sq_view', _SQ_THEME_DIR_ . $block . '.php', $block);
110
 
111
  if (file_exists($file)) {
112
-
113
  ob_start();
114
  include($file);
115
  return ob_get_clean();
116
  }
117
 
118
  } catch (Exception $e) {
119
- // SQ_Debug::dump($file, $e->getMessage(), $e->getFile(), $e->getLine());
120
  }
 
121
  return false;
122
  }
123
 
75
  }
76
  }
77
 
 
78
  }
79
 
80
  if ($js_uri <> '') {
108
  $file = apply_filters('sq_view', _SQ_THEME_DIR_ . $block . '.php', $block);
109
 
110
  if (file_exists($file)) {
 
111
  ob_start();
112
  include($file);
113
  return ob_get_clean();
114
  }
115
 
116
  } catch (Exception $e) {
 
117
  }
118
+
119
  return false;
120
  }
121
 
classes/Error.php CHANGED
@@ -22,6 +22,7 @@ class SQ_Classes_Error extends SQ_Classes_FrontController {
22
  if (count(self::$errors) > 0) {
23
  return self::$errors[0]['text'];
24
  }
 
25
  return false;
26
  }
27
 
@@ -46,6 +47,10 @@ class SQ_Classes_Error extends SQ_Classes_FrontController {
46
  'text' => $error);
47
  }
48
 
 
 
 
 
49
  public static function isError() {
50
  if(!empty(self::$errors)){
51
  foreach (self::$errors as $error){
@@ -56,6 +61,11 @@ class SQ_Classes_Error extends SQ_Classes_FrontController {
56
  }
57
  }
58
 
 
 
 
 
 
59
  public static function setMessage($message = '', $id = '') {
60
  self::$errors[] = array(
61
  'id' => $id,
@@ -80,29 +90,15 @@ class SQ_Classes_Error extends SQ_Classes_FrontController {
80
  self::showError($error['text'] . " ", $error['id']);
81
  break;
82
 
83
- case 'helpnotice':
84
- if (!SQ_Classes_Helpers_Tools::getOption('ignore_warn')) {
85
- self::$switch_off = "<a href=\"javascript:void(0);\" onclick=\"jQuery.post( ajaxurl, {action: 'sq_warnings_off', nonce: '" . wp_create_nonce(_SQ_NONCE_ID_) . "'}, function() {jQuery('#sq_ignore_warn').attr('checked', true); jQuery('.sq_message').hide(); jQuery('#toplevel_page_squirrly .awaiting-mod').fadeOut('slow'); });\" >" . __("Don't bother me!", _SQ_PLUGIN_NAME_) . "</a>";
86
- self::showError($error['text'] . " " . self::$switch_off, $error['id'], 'sq_helpnotice');
87
- }
88
- break;
89
-
90
  case 'success':
91
  self::showError($error['text'] . " ", $error['id'], 'sq_success');
92
  break;
93
 
94
- case 'trial':
95
- if (SQ_Classes_Helpers_Tools::getOption('sq_google_alert_trial')) {
96
- self::$switch_off = "<a href=\"javascript:void(0);\" style=\"font-size: 12px;float:right;margin-right: 5px;color: #ddd;\" onclick=\"jQuery.post( ajaxurl, {action: 'sq_google_alert_trial', nonce: '" . wp_create_nonce(_SQ_NONCE_ID_) . "'}, function() {jQuery('.sq_message').fadeOut('slow');});\" >" . __("Don't bother me!", _SQ_PLUGIN_NAME_) . "</a>";
97
- self::showError($error['text'] . " " . self::$switch_off, $error['id'], 'sq_success');
98
- }
99
- break;
100
  default:
101
 
102
  self::showError($error['text'], $error['id']);
103
  }
104
  }
105
- //self::$errors = array();
106
  }
107
 
108
  /**
@@ -120,7 +116,7 @@ class SQ_Classes_Error extends SQ_Classes_FrontController {
120
  ob_end_clean();
121
  }
122
 
123
- return $message;
124
  }
125
 
126
  /**
@@ -135,8 +131,6 @@ class SQ_Classes_Error extends SQ_Classes_FrontController {
135
  public static function showError($message, $id = '', $type = 'sq_error') {
136
  if (file_exists(_SQ_THEME_DIR_ . 'Notices.php')) {
137
  include(_SQ_THEME_DIR_ . 'Notices.php');
138
- } else {
139
- echo $message;
140
  }
141
  }
142
 
22
  if (count(self::$errors) > 0) {
23
  return self::$errors[0]['text'];
24
  }
25
+
26
  return false;
27
  }
28
 
47
  'text' => $error);
48
  }
49
 
50
+ /**
51
+ * Check if there is a Squirrly Error triggered
52
+ * @return bool
53
+ */
54
  public static function isError() {
55
  if(!empty(self::$errors)){
56
  foreach (self::$errors as $error){
61
  }
62
  }
63
 
64
+ /**
65
+ * Set a success message
66
+ * @param string $message
67
+ * @param string $id
68
+ */
69
  public static function setMessage($message = '', $id = '') {
70
  self::$errors[] = array(
71
  'id' => $id,
90
  self::showError($error['text'] . " ", $error['id']);
91
  break;
92
 
 
 
 
 
 
 
 
93
  case 'success':
94
  self::showError($error['text'] . " ", $error['id'], 'sq_success');
95
  break;
96
 
 
 
 
 
 
 
97
  default:
98
 
99
  self::showError($error['text'], $error['id']);
100
  }
101
  }
 
102
  }
103
 
104
  /**
116
  ob_end_clean();
117
  }
118
 
119
+ return (string)$message;
120
  }
121
 
122
  /**
131
  public static function showError($message, $id = '', $type = 'sq_error') {
132
  if (file_exists(_SQ_THEME_DIR_ . 'Notices.php')) {
133
  include(_SQ_THEME_DIR_ . 'Notices.php');
 
 
134
  }
135
  }
136
 
classes/FrontController.php CHANGED
@@ -60,9 +60,9 @@ class SQ_Classes_FrontController {
60
  if ($this->flush) {
61
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia($class['name']);
62
 
63
- echo $this->getView($class['name']);
64
  } else {
65
- return $this->getView($class['name']);
66
  }
67
 
68
  return '';
60
  if ($this->flush) {
61
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia($class['name']);
62
 
63
+ echo (string)$this->getView($class['name']);
64
  } else {
65
+ return (string)$this->getView($class['name']);
66
  }
67
 
68
  return '';
classes/RemoteController.php CHANGED
@@ -42,7 +42,6 @@ class SQ_Classes_RemoteController {
42
  //call it with http to prevent curl issues with ssls
43
  $url = self::cleanUrl(_SQ_APIV2_URL_ . $module . "?" . $parameters);
44
 
45
- //print_R($options) . '<br>';echo $url . '<br>';exit();
46
  if (!isset(self::$cache[md5($url)])) {
47
  if ($options['method'] == 'post') {
48
  $options['body'] = $args;
@@ -260,11 +259,11 @@ class SQ_Classes_RemoteController {
260
 
261
  //prevent throttling on API
262
  if ($json->error == 'too_many_requests') {
263
- SQ_Classes_Error::setError(__("Too many API attempts, please slow down the request.", _SQ_PLUGIN_NAME_));
264
  SQ_Classes_Error::hookNotices();
265
  return (new WP_Error('api_error', $json->error));
266
  } elseif ($json->error == 'maintenance') {
267
- SQ_Classes_Error::setError(__("Squirrly Cloud is down for a bit of maintenance right now. But we'll be back in a minute.", _SQ_PLUGIN_NAME_));
268
  SQ_Classes_Error::hookNotices();
269
  return (new WP_Error('maintenance', $json->error));
270
  }
@@ -293,6 +292,30 @@ class SQ_Classes_RemoteController {
293
  return $json->data;
294
  }
295
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296
  /**
297
  * Get the API stats for this blog
298
  * @return array
@@ -323,74 +346,50 @@ class SQ_Classes_RemoteController {
323
  //Get last month articles
324
  $stats['all_articles'] = array();
325
  $stats['all_articles']['value'] = ((int)$data->optimized_articles);
326
- $stats['all_articles']['text'] = __('Articles optimized so far', _SQ_PLUGIN_NAME_);
327
  $stats['all_articles']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_assistant', 'assistant');
328
- $stats['all_articles']['linktext'] = __('add post', _SQ_PLUGIN_NAME_);
329
 
330
  //Get last month articles
331
  $stats['avg_articles'] = array();
332
  $stats['avg_articles']['value'] = ((int)$data->average_optimization);
333
- $stats['avg_articles']['text'] = __('Average optimization', _SQ_PLUGIN_NAME_);
334
  $stats['avg_articles']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_assistant');
335
- $stats['avg_articles']['linktext'] = __('add post', _SQ_PLUGIN_NAME_);
336
 
337
  //Get all keyword researched
338
  $stats['all_researches'] = array();
339
  $stats['all_researches']['value'] = (int)$data->kr_research;
340
- $stats['all_researches']['text'] = __('Keyword Researches', _SQ_PLUGIN_NAME_);
341
  $stats['all_researches']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_research');
342
- $stats['all_researches']['linktext'] = __('do research', _SQ_PLUGIN_NAME_);
343
 
344
  //Get all keywords from briefcase
345
  $stats['all_briefcase'] = array();
346
  $stats['all_briefcase']['value'] = (int)$data->kr_in_briefcase;
347
- $stats['all_briefcase']['text'] = __('Keywords stored in Squirrly Briefcase', _SQ_PLUGIN_NAME_);
348
  $stats['all_briefcase']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'briefcase');
349
- $stats['all_briefcase']['linktext'] = __('add keyword', _SQ_PLUGIN_NAME_);
350
 
351
  //Get the top 100 ranking
352
  $stats['top_ranking'] = array();
353
  $stats['top_ranking']['value'] = (int)$data->ranked_top;
354
- $stats['top_ranking']['text'] = __('Pages ranking in top 100 Google', _SQ_PLUGIN_NAME_);
355
  $stats['top_ranking']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_rankings');
356
- $stats['top_ranking']['linktext'] = __('see rankings', _SQ_PLUGIN_NAME_);
357
 
358
  //Get last month audits
359
  $stats['lm_audit'] = array();
360
  $stats['lm_audit']['value'] = (int)$data->audits_made;
361
- $stats['lm_audit']['text'] = __('SEO Audits', _SQ_PLUGIN_NAME_);
362
  $stats['lm_audit']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits');
363
- $stats['lm_audit']['linktext'] = __('see audits', _SQ_PLUGIN_NAME_);
364
  }
365
  }
366
 
367
  return $stats;
368
  }
369
 
370
- /******************************** NOTIFICATIONS *********************/
371
- /**
372
- * Get the Notifications from API for the current blog
373
- * @return array|WP_Error
374
- */
375
- public static function getNotifications() {
376
- self::$apimethod = 'get'; //call method
377
-
378
- $notifications = array();
379
- if ($json = json_decode(self::apiCall('api/audits/notifications', array()))) {
380
-
381
- if (isset($json->error) && $json->error <> '') {
382
- return (new WP_Error('api_error', $json->error));
383
- } elseif (!isset($json->data)) {
384
- return (new WP_Error('api_error', 'no_data'));
385
- }
386
-
387
- $notifications = $json->data;
388
-
389
- }
390
-
391
- return $notifications;
392
- }
393
-
394
  /**
395
  * Get audits from API
396
  *
@@ -415,6 +414,25 @@ class SQ_Classes_RemoteController {
415
  return $json->data->audits;
416
  }
417
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
418
  /******************************** BRIEFCASE *********************/
419
  public static function getBriefcase($args = array()) {
420
  self::$apimethod = 'get'; //call method
@@ -1216,7 +1234,7 @@ class SQ_Classes_RemoteController {
1216
  public static function saveSettings($args) {
1217
  self::$apimethod = 'post'; //call method
1218
 
1219
- self::apiCall('api/user/settings', array('settings' => json_encode($args)));
1220
  }
1221
 
1222
  /**
@@ -1249,6 +1267,7 @@ class SQ_Classes_RemoteController {
1249
  global $post;
1250
  $referer = '';
1251
 
 
1252
  $sq_postID = (isset($post->ID) ? $post->ID : 0);
1253
 
1254
  if (SQ_Classes_Helpers_Tools::isPluginInstalled('elementor/elementor.php')) {
@@ -1276,43 +1295,46 @@ class SQ_Classes_RemoteController {
1276
  frontend_css: "' . _SQ_ASSETS_URL_ . 'css/frontend' . (SQ_DEBUG ? '' : '.min') . '.css",
1277
  postID: "' . $sq_postID . '",
1278
  prevNonce: "' . wp_create_nonce('post_preview_' . $sq_postID) . '",
1279
- __keyword: "' . __('Keyword:', _SQ_PLUGIN_NAME_) . '",
1280
- __date: "' . __('date', _SQ_PLUGIN_NAME_) . '",
1281
- __saved: "' . __('Saved!', _SQ_PLUGIN_NAME_) . '",
1282
- __readit: "' . __('Read it!', _SQ_PLUGIN_NAME_) . '",
1283
- __insertit: "' . __('Insert it!', _SQ_PLUGIN_NAME_) . '",
1284
- __reference: "' . __('Reference', _SQ_PLUGIN_NAME_) . '",
1285
- __insertasbox: "' . __('Insert as box', _SQ_PLUGIN_NAME_) . '",
1286
- __addlink: "' . __('Insert Link', _SQ_PLUGIN_NAME_) . '",
1287
- __notrelevant: "' . __('Not relevant?', _SQ_PLUGIN_NAME_) . '",
1288
- __insertparagraph: "' . __('Insert in your article', _SQ_PLUGIN_NAME_) . '",
1289
- __ajaxerror: "' . __(':( An error occurred while processing your request. Please try again', _SQ_PLUGIN_NAME_) . '",
1290
- __nofound: "' . __('No results found!', _SQ_PLUGIN_NAME_) . '",
1291
- __sq_photo_copyright: "' . __('[ ATTRIBUTE: Please check: %s to find out how to attribute this image ]', _SQ_PLUGIN_NAME_) . '",
1292
- __has_attributes: "' . __('Has creative commons attributes', _SQ_PLUGIN_NAME_) . '",
1293
- __no_attributes: "' . __('No known copyright restrictions', _SQ_PLUGIN_NAME_) . '",
1294
- __noopt: "' . __('You haven`t used Squirrly SEO to optimize your article. Do you want to optimize for a keyword before publishing?', _SQ_PLUGIN_NAME_) . '",
1295
- __subscription_expired: "' . __('Your Subscription has Expired', _SQ_PLUGIN_NAME_) . '",
1296
- __no_briefcase: "' . __('There are no keywords saved in briefcase yet', _SQ_PLUGIN_NAME_) . '",
1297
- __fulloptimized: "' . __('Congratulations! Your article is 100% optimized!', _SQ_PLUGIN_NAME_) . '",
1298
- __toomanytimes: "' . __('appears too many times. Try to remove %s of them', _SQ_PLUGIN_NAME_) . '",
1299
- __writemorewords: "' . __('write %s more words', _SQ_PLUGIN_NAME_) . '",
1300
- __keywordinintroduction: "' . __('Add the keyword in the %s of your article', _SQ_PLUGIN_NAME_) . '",
1301
- __clicktohighlight: "' . __('Click to keep the highlight on', _SQ_PLUGIN_NAME_) . '",
1302
- __introduction: "' . __('introduction', _SQ_PLUGIN_NAME_) . '",
1303
- __morewordsafter: "' . __('Write more words after the %s keyword', _SQ_PLUGIN_NAME_) . '",
1304
- __orusesynonyms: "' . __('or use synonyms', _SQ_PLUGIN_NAME_) . '",
1305
- __addmorewords: "' . __('add %s more word(s)', _SQ_PLUGIN_NAME_) . '",
1306
- __removewords: "' . __('or remove %s word(s)', _SQ_PLUGIN_NAME_) . '",
1307
- __addmorekeywords: "' . __('add %s more keyword(s)', _SQ_PLUGIN_NAME_) . '",
1308
- __addminimumwords: "' . __('write %s more words to start calculating', _SQ_PLUGIN_NAME_) . '",
1309
- __add_to_briefcase: "' . __('Add to Briefcase', _SQ_PLUGIN_NAME_) . '",
1310
- __add_keyword_briefcase: "' . __('Add Keyword to Briefcase', _SQ_PLUGIN_NAME_) . '",
1311
- __usekeyword: "' . __('Select', _SQ_PLUGIN_NAME_) . '",
1312
- __new_post_title: "' . __('Auto Draft') . '",
1313
- __frontend_optimized: "' . __('You’ve already used the Live Assistant to optimize this post when creating it in your Page Builder. Please go back and resume your optimization work there.', _SQ_PLUGIN_NAME_) . '",
 
 
 
 
1314
  };
1315
-
1316
  })(jQuery);
1317
  </script>';
1318
 
42
  //call it with http to prevent curl issues with ssls
43
  $url = self::cleanUrl(_SQ_APIV2_URL_ . $module . "?" . $parameters);
44
 
 
45
  if (!isset(self::$cache[md5($url)])) {
46
  if ($options['method'] == 'post') {
47
  $options['body'] = $args;
259
 
260
  //prevent throttling on API
261
  if ($json->error == 'too_many_requests') {
262
+ SQ_Classes_Error::setError(esc_html__("Too many API attempts, please slow down the request.", _SQ_PLUGIN_NAME_));
263
  SQ_Classes_Error::hookNotices();
264
  return (new WP_Error('api_error', $json->error));
265
  } elseif ($json->error == 'maintenance') {
266
+ SQ_Classes_Error::setError(esc_html__("Squirrly Cloud is down for a bit of maintenance right now. But we'll be back in a minute.", _SQ_PLUGIN_NAME_));
267
  SQ_Classes_Error::hookNotices();
268
  return (new WP_Error('maintenance', $json->error));
269
  }
292
  return $json->data;
293
  }
294
 
295
+ /******************************** NOTIFICATIONS *********************/
296
+ /**
297
+ * Get the Notifications from API for the current blog
298
+ * @return array|WP_Error
299
+ */
300
+ public static function getNotifications() {
301
+ self::$apimethod = 'get'; //call method
302
+
303
+ $notifications = array();
304
+ if ($json = json_decode(self::apiCall('api/audits/notifications', array()))) {
305
+
306
+ if (isset($json->error) && $json->error <> '') {
307
+ return (new WP_Error('api_error', $json->error));
308
+ } elseif (!isset($json->data)) {
309
+ return (new WP_Error('api_error', 'no_data'));
310
+ }
311
+
312
+ $notifications = $json->data;
313
+
314
+ }
315
+
316
+ return $notifications;
317
+ }
318
+
319
  /**
320
  * Get the API stats for this blog
321
  * @return array
346
  //Get last month articles
347
  $stats['all_articles'] = array();
348
  $stats['all_articles']['value'] = ((int)$data->optimized_articles);
349
+ $stats['all_articles']['text'] = esc_html__("Articles optimized so far", _SQ_PLUGIN_NAME_);
350
  $stats['all_articles']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_assistant', 'assistant');
351
+ $stats['all_articles']['linktext'] = esc_html__("add post", _SQ_PLUGIN_NAME_);
352
 
353
  //Get last month articles
354
  $stats['avg_articles'] = array();
355
  $stats['avg_articles']['value'] = ((int)$data->average_optimization);
356
+ $stats['avg_articles']['text'] = esc_html__("Average optimization", _SQ_PLUGIN_NAME_);
357
  $stats['avg_articles']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_assistant');
358
+ $stats['avg_articles']['linktext'] = esc_html__("add post", _SQ_PLUGIN_NAME_);
359
 
360
  //Get all keyword researched
361
  $stats['all_researches'] = array();
362
  $stats['all_researches']['value'] = (int)$data->kr_research;
363
+ $stats['all_researches']['text'] = esc_html__("Keyword Researches", _SQ_PLUGIN_NAME_);
364
  $stats['all_researches']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_research');
365
+ $stats['all_researches']['linktext'] = esc_html__("do research", _SQ_PLUGIN_NAME_);
366
 
367
  //Get all keywords from briefcase
368
  $stats['all_briefcase'] = array();
369
  $stats['all_briefcase']['value'] = (int)$data->kr_in_briefcase;
370
+ $stats['all_briefcase']['text'] = esc_html__("Keywords stored in Squirrly Briefcase", _SQ_PLUGIN_NAME_);
371
  $stats['all_briefcase']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_research', 'briefcase');
372
+ $stats['all_briefcase']['linktext'] = esc_html__("add keyword", _SQ_PLUGIN_NAME_);
373
 
374
  //Get the top 100 ranking
375
  $stats['top_ranking'] = array();
376
  $stats['top_ranking']['value'] = (int)$data->ranked_top;
377
+ $stats['top_ranking']['text'] = esc_html__("Pages ranking in top 100 Google", _SQ_PLUGIN_NAME_);
378
  $stats['top_ranking']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_rankings');
379
+ $stats['top_ranking']['linktext'] = esc_html__("see rankings", _SQ_PLUGIN_NAME_);
380
 
381
  //Get last month audits
382
  $stats['lm_audit'] = array();
383
  $stats['lm_audit']['value'] = (int)$data->audits_made;
384
+ $stats['lm_audit']['text'] = esc_html__("SEO Audits", _SQ_PLUGIN_NAME_);
385
  $stats['lm_audit']['link'] = SQ_Classes_Helpers_Tools::getAdminUrl('sq_audits');
386
+ $stats['lm_audit']['linktext'] = esc_html__("see audits", _SQ_PLUGIN_NAME_);
387
  }
388
  }
389
 
390
  return $stats;
391
  }
392
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
393
  /**
394
  * Get audits from API
395
  *
414
  return $json->data->audits;
415
  }
416
 
417
+ public static function saveFeedback($args = array()) {
418
+ self::$apimethod = 'post'; //call method
419
+
420
+ $json = json_decode(self::apiCall('api/user/feedback', $args));
421
+
422
+ if (isset($json->error) && $json->error <> '') {
423
+ return (new WP_Error('api_error', $json->error));
424
+ } elseif (!isset($json->data)) {
425
+ return (new WP_Error('api_error', 'no_data'));
426
+ }
427
+
428
+ if (!empty($json->data)) {
429
+ return $json->data;
430
+ }
431
+
432
+ return false;
433
+ }
434
+
435
+
436
  /******************************** BRIEFCASE *********************/
437
  public static function getBriefcase($args = array()) {
438
  self::$apimethod = 'get'; //call method
1234
  public static function saveSettings($args) {
1235
  self::$apimethod = 'post'; //call method
1236
 
1237
+ self::apiCall('api/user/settings', array('settings' => wp_json_encode($args)));
1238
  }
1239
 
1240
  /**
1267
  global $post;
1268
  $referer = '';
1269
 
1270
+ $metas = json_decode(wp_json_encode(SQ_Classes_Helpers_Tools::getOption('sq_metas')));
1271
  $sq_postID = (isset($post->ID) ? $post->ID : 0);
1272
 
1273
  if (SQ_Classes_Helpers_Tools::isPluginInstalled('elementor/elementor.php')) {
1295
  frontend_css: "' . _SQ_ASSETS_URL_ . 'css/frontend' . (SQ_DEBUG ? '' : '.min') . '.css",
1296
  postID: "' . $sq_postID . '",
1297
  prevNonce: "' . wp_create_nonce('post_preview_' . $sq_postID) . '",
1298
+ __keyword: "' . esc_html__('Keyword:', _SQ_PLUGIN_NAME_) . '",
1299
+ __date: "' . esc_html__('date', _SQ_PLUGIN_NAME_) . '",
1300
+ __saved: "' . esc_html__('Saved!', _SQ_PLUGIN_NAME_) . '",
1301
+ __readit: "' . esc_html__('Read it!', _SQ_PLUGIN_NAME_) . '",
1302
+ __insertit: "' . esc_html__('Insert it!', _SQ_PLUGIN_NAME_) . '",
1303
+ __reference: "' . esc_html__('Reference', _SQ_PLUGIN_NAME_) . '",
1304
+ __insertasbox: "' . esc_html__('Insert as box', _SQ_PLUGIN_NAME_) . '",
1305
+ __addlink: "' . esc_html__('Insert Link', _SQ_PLUGIN_NAME_) . '",
1306
+ __notrelevant: "' . esc_html__('Not relevant?', _SQ_PLUGIN_NAME_) . '",
1307
+ __insertparagraph: "' . esc_html__('Insert in your article', _SQ_PLUGIN_NAME_) . '",
1308
+ __ajaxerror: "' . esc_html__(':( An error occurred while processing your request. Please try again', _SQ_PLUGIN_NAME_) . '",
1309
+ __nofound: "' . esc_html__('No results found!', _SQ_PLUGIN_NAME_) . '",
1310
+ __sq_photo_copyright: "' . esc_html__('[ ATTRIBUTE: Please check: %s to find out how to attribute this image ]', _SQ_PLUGIN_NAME_) . '",
1311
+ __has_attributes: "' . esc_html__('Has creative commons attributes', _SQ_PLUGIN_NAME_) . '",
1312
+ __no_attributes: "' . esc_html__('No known copyright restrictions', _SQ_PLUGIN_NAME_) . '",
1313
+ __noopt: "' . esc_html__('You haven`t used Squirrly SEO to optimize your article. Do you want to optimize for a keyword before publishing?', _SQ_PLUGIN_NAME_) . '",
1314
+ __subscription_expired: "' . esc_html__('Your Subscription has Expired', _SQ_PLUGIN_NAME_) . '",
1315
+ __no_briefcase: "' . esc_html__('There are no keywords saved in briefcase yet', _SQ_PLUGIN_NAME_) . '",
1316
+ __fulloptimized: "' . esc_html__('Congratulations! Your article is 100% optimized!', _SQ_PLUGIN_NAME_) . '",
1317
+ __toomanytimes: "' . esc_html__('appears too many times. Try to remove %s of them', _SQ_PLUGIN_NAME_) . '",
1318
+ __writemorewords: "' . esc_html__('write %s more words', _SQ_PLUGIN_NAME_) . '",
1319
+ __keywordinintroduction: "' . esc_html__('Add the keyword in the %s of your article', _SQ_PLUGIN_NAME_) . '",
1320
+ __clicktohighlight: "' . esc_html__('Click to keep the highlight on', _SQ_PLUGIN_NAME_) . '",
1321
+ __introduction: "' . esc_html__('introduction', _SQ_PLUGIN_NAME_) . '",
1322
+ __morewordsafter: "' . esc_html__('Write more words after the %s keyword', _SQ_PLUGIN_NAME_) . '",
1323
+ __orusesynonyms: "' . esc_html__('or use synonyms', _SQ_PLUGIN_NAME_) . '",
1324
+ __addmorewords: "' . esc_html__('add %s more word(s)', _SQ_PLUGIN_NAME_) . '",
1325
+ __removewords: "' . esc_html__('or remove %s word(s)', _SQ_PLUGIN_NAME_) . '",
1326
+ __addmorekeywords: "' . esc_html__('add %s more keyword(s)', _SQ_PLUGIN_NAME_) . '",
1327
+ __addminimumwords: "' . esc_html__('write %s more words to start calculating', _SQ_PLUGIN_NAME_) . '",
1328
+ __add_to_briefcase: "' . esc_html__('Add to Briefcase', _SQ_PLUGIN_NAME_) . '",
1329
+ __add_keyword_briefcase: "' . esc_html__('Add Keyword to Briefcase', _SQ_PLUGIN_NAME_) . '",
1330
+ __usekeyword: "' . esc_html__('Select', _SQ_PLUGIN_NAME_) . '",
1331
+ __new_post_title: "' . esc_html__('Auto Draft') . '",
1332
+ __frontend_optimized: "' . esc_html__('You’ve already used the Live Assistant to optimize this post when creating it in your Page Builder. Please go back and resume your optimization work there.', _SQ_PLUGIN_NAME_) . '",
1333
+ };
1334
+ $.sq_params = {
1335
+ max_length_title: '.(int)$metas->title_maxlength.',
1336
+ max_length_description: '.(int)$metas->description_maxlength.',
1337
  };
 
1338
  })(jQuery);
1339
  </script>';
1340
 
classes/helpers/DevKit.php CHANGED
@@ -25,25 +25,29 @@ class SQ_Classes_Helpers_DevKit {
25
  * @return bool
26
  */
27
  public function updatePluginData() {
 
 
 
 
28
  $package_file = _SQ_ROOT_DIR_ . 'package.json';
29
- if (!file_exists($package_file)) {
30
  return false;
31
  }
32
 
33
  /* load configuration blocks data from core config files */
34
- $config = json_decode(file_get_contents($package_file), 1);
35
  if (isset($config['package'])) {
36
  self::$package = $config['package'];
37
 
38
- if (isset(self::$package['settings']) && !empty(SQ_Classes_Helpers_Tools::$options)) {
39
- SQ_Classes_Helpers_Tools::$options = @array_replace_recursive(SQ_Classes_Helpers_Tools::$options, self::$package['settings']);
40
 
41
  if (isset(self::$package['name']) && self::$package['name'] <> '') {
42
  SQ_Classes_Helpers_Tools::$options['sq_devkit_name'] = self::$package['name'];
43
  }
44
 
45
  SQ_Classes_Helpers_Tools::saveOptions();
46
- @unlink($package_file);
47
 
48
  wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
49
  exit();
@@ -52,7 +56,7 @@ class SQ_Classes_Helpers_DevKit {
52
 
53
 
54
  //remove the package after activation
55
- @unlink($package_file);
56
 
57
  return true;
58
  }
25
  * @return bool
26
  */
27
  public function updatePluginData() {
28
+ global $wp_filesystem;
29
+ require_once(ABSPATH . '/wp-admin/includes/file.php');
30
+ WP_Filesystem();
31
+
32
  $package_file = _SQ_ROOT_DIR_ . 'package.json';
33
+ if (!$wp_filesystem->exists($package_file)) {
34
  return false;
35
  }
36
 
37
  /* load configuration blocks data from core config files */
38
+ $config = json_decode($wp_filesystem->get_contents($package_file), 1);
39
  if (isset($config['package'])) {
40
  self::$package = $config['package'];
41
 
42
+ if (isset(self::$package['settings']) && !empty(SQ_Classes_Helpers_Tools::$options) && function_exists('array_replace_recursive')) {
43
+ SQ_Classes_Helpers_Tools::$options = array_replace_recursive((array)SQ_Classes_Helpers_Tools::$options, (array)self::$package['settings']);
44
 
45
  if (isset(self::$package['name']) && self::$package['name'] <> '') {
46
  SQ_Classes_Helpers_Tools::$options['sq_devkit_name'] = self::$package['name'];
47
  }
48
 
49
  SQ_Classes_Helpers_Tools::saveOptions();
50
+ unlink($package_file);
51
 
52
  wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
53
  exit();
56
 
57
 
58
  //remove the package after activation
59
+ unlink($package_file);
60
 
61
  return true;
62
  }
classes/helpers/Sanitize.php CHANGED
@@ -63,6 +63,48 @@ class SQ_Classes_Helpers_Sanitize {
63
  return self::clearTitle($keywords);
64
  }
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  /**
67
  * Truncate the text
68
  *
@@ -82,7 +124,7 @@ class SQ_Classes_Helpers_Sanitize {
82
  }
83
 
84
  $text = str_replace(']]>', ']]&gt;', $text);
85
- $text = @preg_replace('/\[(.+?)\]/is', '', $text);
86
 
87
  if ($max < strlen($text)) {
88
  while ($text[$max] != ' ' && $max > $min) {
@@ -103,6 +145,57 @@ class SQ_Classes_Helpers_Sanitize {
103
  return $text;
104
  }
105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  /**
107
  * Check the google code saved at settings
108
  *
@@ -113,15 +206,15 @@ class SQ_Classes_Helpers_Sanitize {
113
  if ($code <> '') {
114
  $code = stripslashes($code);
115
  if (strpos($code, 'content') !== false) {
116
- @preg_match('/content\\s*=\\s*[\"]([^\"]+)[\"]/i', $code, $result);
117
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
118
  }
119
  if (strpos($code, '"') !== false) {
120
- @preg_match('/[\"]([^\"]+)[\"]/i', $code, $result);
121
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
122
  }
123
 
124
- if ($code == '') SQ_Classes_Error::setError(__("The code for Google Webmaster Tool is incorrect.", _SQ_PLUGIN_NAME_));
125
  }
126
  return $code;
127
  }
@@ -133,7 +226,6 @@ class SQ_Classes_Helpers_Sanitize {
133
  * @return string
134
  */
135
  public static function checkGoogleAnalyticsCode($code) {
136
- //echo $code;
137
  if ($code <> '') {
138
  $code = stripslashes($code);
139
 
@@ -147,9 +239,9 @@ class SQ_Classes_Helpers_Sanitize {
147
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
148
  }
149
 
150
- if (strpos($code, 'UA-') === false) {
151
  $code = '';
152
- SQ_Classes_Error::setError(__("The code for Google Analytics is incorrect.", _SQ_PLUGIN_NAME_));
153
  }
154
  }
155
  return trim($code);
@@ -186,7 +278,7 @@ class SQ_Classes_Helpers_Sanitize {
186
  return $code;
187
  }
188
 
189
- SQ_Classes_Error::setError(__("The code for Facebook is incorrect.", _SQ_PLUGIN_NAME_));
190
 
191
  }
192
  return false;
@@ -212,7 +304,7 @@ class SQ_Classes_Helpers_Sanitize {
212
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
213
  }
214
 
215
- if ($code == '') SQ_Classes_Error::setError(__("The code for Pinterest is incorrect.", _SQ_PLUGIN_NAME_));
216
  }
217
  return $code;
218
  }
@@ -237,7 +329,7 @@ class SQ_Classes_Helpers_Sanitize {
237
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
238
  }
239
 
240
- if ($code == '') SQ_Classes_Error::setError(__("The code for Bing is incorrect.", _SQ_PLUGIN_NAME_));
241
  }
242
  return $code;
243
  }
@@ -262,7 +354,7 @@ class SQ_Classes_Helpers_Sanitize {
262
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
263
  }
264
 
265
- if ($code == '') SQ_Classes_Error::setError(__("The code for Alexa is incorrect.", _SQ_PLUGIN_NAME_));
266
  }
267
  return $code;
268
  }
@@ -388,7 +480,7 @@ class SQ_Classes_Helpers_Sanitize {
388
  public static function checkFacebookPixel($code) {
389
  if ($code <> '') {
390
  if ((int)$code == 0) {
391
- SQ_Classes_Error::setError(__("The code for Facebook Pixel must only contain numbers.", _SQ_PLUGIN_NAME_));
392
  $code = '';
393
  }
394
  }
@@ -403,7 +495,7 @@ class SQ_Classes_Helpers_Sanitize {
403
  public static function checkFacebookApp($code) {
404
  if ($code <> '') {
405
  if ((int)$code == 0) {
406
- SQ_Classes_Error::setError(__("The code for Facebook App must only contain numbers.", _SQ_PLUGIN_NAME_));
407
  $code = '';
408
  }
409
  }
63
  return self::clearTitle($keywords);
64
  }
65
 
66
+ /**
67
+ * Escape the keyword for tags and urls
68
+ * @param $str
69
+ * @return string
70
+ */
71
+ public static function escapeAttr($str) {
72
+ $str = esc_attr($str);
73
+
74
+ return $str;
75
+ }
76
+
77
+ /**
78
+ * Escape the keyword for tags and urls
79
+ * @param $str
80
+ * @return string
81
+ */
82
+ public static function escapeHtml($str) {
83
+ $str = esc_attr($str);
84
+
85
+ return $str;
86
+ }
87
+
88
+ /**
89
+ * Escape the keyword for tags and urls
90
+ * @param $keyword
91
+ * @param string $for
92
+ * @return string|void
93
+ */
94
+ public static function escapeKeyword($keyword, $for = 'all') {
95
+ switch ($for){
96
+ case 'url':
97
+ $keyword = urlencode(esc_attr($keyword));
98
+ break;
99
+ case 'attr':
100
+ $keyword = htmlspecialchars(str_replace('"', '\"', $keyword));
101
+ break;
102
+ default:
103
+ $keyword = esc_attr($keyword);
104
+ }
105
+ return $keyword;
106
+ }
107
+
108
  /**
109
  * Truncate the text
110
  *
124
  }
125
 
126
  $text = str_replace(']]>', ']]&gt;', $text);
127
+ $text = preg_replace('/\[(.+?)\]/is', '', $text);
128
 
129
  if ($max < strlen($text)) {
130
  while ($text[$max] != ' ' && $max > $min) {
145
  return $text;
146
  }
147
 
148
+ /**
149
+ * Replace language-specific characters by ASCII-equivalents.
150
+ * @param string $s
151
+ * @return string
152
+ */
153
+ public static function normalizeChars($s) {
154
+ $replace = array(
155
+ 'ъ'=>'-', 'Ь'=>'-', 'Ъ'=>'-', 'ь'=>'-',
156
+ 'Ă'=>'A', 'Ą'=>'A', 'À'=>'A', 'Ã'=>'A', 'Á'=>'A', 'Æ'=>'A', 'Â'=>'A', 'Å'=>'A', 'Ä'=>'Ae',
157
+ 'Þ'=>'B',
158
+ 'Ć'=>'C', 'ץ'=>'C', 'Ç'=>'C',
159
+ 'È'=>'E', 'Ę'=>'E', 'É'=>'E', 'Ë'=>'E', 'Ê'=>'E',
160
+ 'Ğ'=>'G',
161
+ 'İ'=>'I', 'Ï'=>'I', 'Î'=>'I', 'Í'=>'I', 'Ì'=>'I',
162
+ 'Ł'=>'L',
163
+ 'Ñ'=>'N', 'Ń'=>'N',
164
+ 'Ø'=>'O', 'Ó'=>'O', 'Ò'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'Oe',
165
+ 'Ş'=>'S', 'Ś'=>'S', 'Ș'=>'S', 'Š'=>'S',
166
+ 'Ț'=>'T',
167
+ 'Ù'=>'U', 'Û'=>'U', 'Ú'=>'U', 'Ü'=>'Ue',
168
+ 'Ý'=>'Y',
169
+ 'Ź'=>'Z', 'Ž'=>'Z', 'Ż'=>'Z',
170
+ 'â'=>'a', 'ǎ'=>'a', 'ą'=>'a', 'á'=>'a', 'ă'=>'a', 'ã'=>'a', 'Ǎ'=>'a', 'а'=>'a', 'А'=>'a', 'å'=>'a', 'à'=>'a', 'א'=>'a', 'Ǻ'=>'a', 'Ā'=>'a', 'ǻ'=>'a', 'ā'=>'a', 'ä'=>'ae', 'æ'=>'ae', 'Ǽ'=>'ae', 'ǽ'=>'ae',
171
+ 'б'=>'b', 'ב'=>'b', 'Б'=>'b', 'þ'=>'b',
172
+ 'ĉ'=>'c', 'Ĉ'=>'c', 'Ċ'=>'c', 'ć'=>'c', 'ç'=>'c', 'ц'=>'c', 'צ'=>'c', 'ċ'=>'c', 'Ц'=>'c', 'Č'=>'c', 'č'=>'c', 'Ч'=>'ch', 'ч'=>'ch',
173
+ 'ד'=>'d', 'ď'=>'d', 'Đ'=>'d', 'Ď'=>'d', 'đ'=>'d', 'д'=>'d', 'Д'=>'D', 'ð'=>'d',
174
+ 'є'=>'e', 'ע'=>'e', 'е'=>'e', 'Е'=>'e', 'Ə'=>'e', 'ę'=>'e', 'ĕ'=>'e', 'ē'=>'e', 'Ē'=>'e', 'Ė'=>'e', 'ė'=>'e', 'ě'=>'e', 'Ě'=>'e', 'Є'=>'e', 'Ĕ'=>'e', 'ê'=>'e', 'ə'=>'e', 'è'=>'e', 'ë'=>'e', 'é'=>'e',
175
+ 'ф'=>'f', 'ƒ'=>'f', 'Ф'=>'f',
176
+ 'ġ'=>'g', 'Ģ'=>'g', 'Ġ'=>'g', 'Ĝ'=>'g', 'Г'=>'g', 'г'=>'g', 'ĝ'=>'g', 'ğ'=>'g', 'ג'=>'g', 'Ґ'=>'g', 'ґ'=>'g', 'ģ'=>'g',
177
+ 'ח'=>'h', 'ħ'=>'h', 'Х'=>'h', 'Ħ'=>'h', 'Ĥ'=>'h', 'ĥ'=>'h', 'х'=>'h', 'ה'=>'h',
178
+ 'î'=>'i', 'ï'=>'i', 'í'=>'i', 'ì'=>'i', 'į'=>'i', 'ĭ'=>'i', 'ı'=>'i', 'Ĭ'=>'i', 'И'=>'i', 'ĩ'=>'i', 'ǐ'=>'i', 'Ĩ'=>'i', 'Ǐ'=>'i', 'и'=>'i', 'Į'=>'i', 'י'=>'i', 'Ї'=>'i', 'Ī'=>'i', 'І'=>'i', 'ї'=>'i', 'і'=>'i', 'ī'=>'i', 'ij'=>'ij', 'IJ'=>'ij',
179
+ 'й'=>'j', 'Й'=>'j', 'Ĵ'=>'j', 'ĵ'=>'j', 'я'=>'ja', 'Я'=>'ja', 'Э'=>'je', 'э'=>'je', 'ё'=>'jo', 'Ё'=>'jo', 'ю'=>'ju', 'Ю'=>'ju',
180
+ 'ĸ'=>'k', 'כ'=>'k', 'Ķ'=>'k', 'К'=>'k', 'к'=>'k', 'ķ'=>'k', 'ך'=>'k',
181
+ 'Ŀ'=>'l', 'ŀ'=>'l', 'Л'=>'l', 'ł'=>'l', 'ļ'=>'l', 'ĺ'=>'l', 'Ĺ'=>'l', 'Ļ'=>'l', 'л'=>'l', 'Ľ'=>'l', 'ľ'=>'l', 'ל'=>'l',
182
+ 'מ'=>'m', 'М'=>'m', 'ם'=>'m', 'м'=>'m',
183
+ 'ñ'=>'n', 'н'=>'n', 'Ņ'=>'n', 'ן'=>'n', 'ŋ'=>'n', 'נ'=>'n', 'Н'=>'n', 'ń'=>'n', 'Ŋ'=>'n', 'ņ'=>'n', 'ʼn'=>'n', 'Ň'=>'n', 'ň'=>'n',
184
+ 'о'=>'o', 'О'=>'o', 'ő'=>'o', 'õ'=>'o', 'ô'=>'o', 'Ő'=>'o', 'ŏ'=>'o', 'Ŏ'=>'o', 'Ō'=>'o', 'ō'=>'o', 'ø'=>'o', 'ǿ'=>'o', 'ǒ'=>'o', 'ò'=>'o', 'Ǿ'=>'o', 'Ǒ'=>'o', 'ơ'=>'o', 'ó'=>'o', 'Ơ'=>'o', 'œ'=>'oe', 'Œ'=>'oe', 'ö'=>'oe',
185
+ 'פ'=>'p', 'ף'=>'p', 'п'=>'p', 'П'=>'p',
186
+ 'ק'=>'q',
187
+ 'ŕ'=>'r', 'ř'=>'r', 'Ř'=>'r', 'ŗ'=>'r', 'Ŗ'=>'r', 'ר'=>'r', 'Ŕ'=>'r', 'Р'=>'r', 'р'=>'r',
188
+ 'ș'=>'s', 'с'=>'s', 'Ŝ'=>'s', 'š'=>'s', 'ś'=>'s', 'ס'=>'s', 'ş'=>'s', 'С'=>'s', 'ŝ'=>'s', 'Щ'=>'sch', 'щ'=>'sch', 'ш'=>'sh', 'Ш'=>'sh', 'ß'=>'ss',
189
+ 'т'=>'t', 'ט'=>'t', 'ŧ'=>'t', 'ת'=>'t', 'ť'=>'t', 'ţ'=>'t', 'Ţ'=>'t', 'Т'=>'t', 'ț'=>'t', 'Ŧ'=>'t', 'Ť'=>'t', '™'=>'tm',
190
+ 'ū'=>'u', 'у'=>'u', 'Ũ'=>'u', 'ũ'=>'u', 'Ư'=>'u', 'ư'=>'u', 'Ū'=>'u', 'Ǔ'=>'u', 'ų'=>'u', 'Ų'=>'u', 'ŭ'=>'u', 'Ŭ'=>'u', 'Ů'=>'u', 'ů'=>'u', 'ű'=>'u', 'Ű'=>'u', 'Ǖ'=>'u', 'ǔ'=>'u', 'Ǜ'=>'u', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'У'=>'u', 'ǚ'=>'u', 'ǜ'=>'u', 'Ǚ'=>'u', 'Ǘ'=>'u', 'ǖ'=>'u', 'ǘ'=>'u', 'ü'=>'ue',
191
+ 'в'=>'v', 'ו'=>'v', 'В'=>'v',
192
+ 'ש'=>'w', 'ŵ'=>'w', 'Ŵ'=>'w',
193
+ 'ы'=>'y', 'ŷ'=>'y', 'ý'=>'y', 'ÿ'=>'y', 'Ÿ'=>'y', 'Ŷ'=>'y',
194
+ 'Ы'=>'y', 'ž'=>'z', 'З'=>'z', 'з'=>'z', 'ź'=>'z', 'ז'=>'z', 'ż'=>'z', 'ſ'=>'z', 'Ж'=>'zh', 'ж'=>'zh'
195
+ );
196
+ return strtr($s, $replace);
197
+ }
198
+
199
  /**
200
  * Check the google code saved at settings
201
  *
206
  if ($code <> '') {
207
  $code = stripslashes($code);
208
  if (strpos($code, 'content') !== false) {
209
+ preg_match('/content\\s*=\\s*[\"]([^\"]+)[\"]/i', $code, $result);
210
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
211
  }
212
  if (strpos($code, '"') !== false) {
213
+ preg_match('/[\"]([^\"]+)[\"]/i', $code, $result);
214
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
215
  }
216
 
217
+ if ($code == '') SQ_Classes_Error::setError(esc_html__("The code for Google Webmaster Tool is incorrect.", _SQ_PLUGIN_NAME_));
218
  }
219
  return $code;
220
  }
226
  * @return string
227
  */
228
  public static function checkGoogleAnalyticsCode($code) {
 
229
  if ($code <> '') {
230
  $code = stripslashes($code);
231
 
239
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
240
  }
241
 
242
+ if (strpos($code, 'UA-') === false && strpos($code, 'G-') === false) {
243
  $code = '';
244
+ SQ_Classes_Error::setError(esc_html__("The code for Google Analytics is incorrect.", _SQ_PLUGIN_NAME_));
245
  }
246
  }
247
  return trim($code);
278
  return $code;
279
  }
280
 
281
+ SQ_Classes_Error::setError(esc_html__("The code for Facebook is incorrect.", _SQ_PLUGIN_NAME_));
282
 
283
  }
284
  return false;
304
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
305
  }
306
 
307
+ if ($code == '') SQ_Classes_Error::setError(esc_html__("The code for Pinterest is incorrect.", _SQ_PLUGIN_NAME_));
308
  }
309
  return $code;
310
  }
329
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
330
  }
331
 
332
+ if ($code == '') SQ_Classes_Error::setError(esc_html__("The code for Bing is incorrect.", _SQ_PLUGIN_NAME_));
333
  }
334
  return $code;
335
  }
354
  if (isset($result[1]) && !empty($result[1])) $code = $result[1];
355
  }
356
 
357
+ if ($code == '') SQ_Classes_Error::setError(esc_html__("The code for Alexa is incorrect.", _SQ_PLUGIN_NAME_));
358
  }
359
  return $code;
360
  }
480
  public static function checkFacebookPixel($code) {
481
  if ($code <> '') {
482
  if ((int)$code == 0) {
483
+ SQ_Classes_Error::setError(esc_html__("The code for Facebook Pixel must only contain numbers.", _SQ_PLUGIN_NAME_));
484
  $code = '';
485
  }
486
  }
495
  public static function checkFacebookApp($code) {
496
  if ($code <> '') {
497
  if ((int)$code == 0) {
498
+ SQ_Classes_Error::setError(esc_html__("The code for Facebook App must only contain numbers.", _SQ_PLUGIN_NAME_));
499
  $code = '';
500
  }
501
  }
classes/helpers/Tools.php CHANGED
@@ -79,7 +79,7 @@ class SQ_Classes_Helpers_Tools {
79
  */
80
  public function hookActionlink($links, $file) {
81
  if ($file == _SQ_PLUGIN_NAME_ . '/squirrly.php') {
82
- $link = '<a href="' . self::getAdminUrl('sq_dashboard') . '">' . __('Getting started', _SQ_PLUGIN_NAME_) . '</a>';
83
  array_unshift($links, $link);
84
  }
85
 
@@ -104,8 +104,8 @@ class SQ_Classes_Helpers_Tools {
104
  .ml-stars svg:hover ~ svg{fill:none}
105
  </style>';
106
 
107
- $meta[] = "<a href='https://howto.squirrly.co/wordpress-seo/' target='_blank'>" . __('Documentation', _SQ_PLUGIN_NAME_) . "</a>";
108
- $meta[] = "<a href='https://wordpress.org/support/plugin/squirrly-seo/reviews/#new-post' target='_blank' title='" . __('Leave a review', _SQ_PLUGIN_NAME_) . "'><i class='ml-stars'><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg></i></a>";
109
  }
110
  return $meta;
111
  }
@@ -188,7 +188,7 @@ class SQ_Classes_Helpers_Tools {
188
  'sq_sitemap_perpage' => 200,
189
  'sq_sitemap_frequency' => 'weekly',
190
  'sq_url_fix' => 1,
191
- 'sq_sitemap_combinelangs' => 1,
192
  'sq_sitemap' => array(
193
  'sitemap' => array('sitemap.xml', 1),
194
  'sitemap-home' => array('sitemap-home.xml', 1),
@@ -405,7 +405,7 @@ class SQ_Classes_Helpers_Tools {
405
  'tax-post_format' => array(
406
  'protected' => 1,
407
  'sep' => '|',
408
- 'title' => '{{term_title}} ' . __('Format', _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
409
  'description' => '{{excerpt}}',
410
  'noindex' => 0,
411
  'nofollow' => 0,
@@ -423,7 +423,7 @@ class SQ_Classes_Helpers_Tools {
423
  'tax-category' => array(
424
  'protected' => 1,
425
  'sep' => '|',
426
- 'title' => '{{term_title}} ' . __('Category', _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
427
  'description' => '{{excerpt}}',
428
  'noindex' => 0,
429
  'nofollow' => 0,
@@ -441,7 +441,7 @@ class SQ_Classes_Helpers_Tools {
441
  'tax-post_tag' => array(
442
  'protected' => 1,
443
  'sep' => '|',
444
- 'title' => '{{term_title}} ' . __('Tag', _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
445
  'description' => '{{excerpt}}',
446
  'noindex' => 0,
447
  'nofollow' => 0,
@@ -459,7 +459,7 @@ class SQ_Classes_Helpers_Tools {
459
  'tax-product_cat' => array(
460
  'protected' => 1,
461
  'sep' => '|',
462
- 'title' => '{{term_title}} ' . __('Category', _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
463
  'description' => '{{excerpt}}',
464
  'noindex' => 0,
465
  'nofollow' => 0,
@@ -477,7 +477,7 @@ class SQ_Classes_Helpers_Tools {
477
  'tax-product_tag' => array(
478
  'protected' => 1,
479
  'sep' => '|',
480
- 'title' => '{{term_title}} ' . __('Tag', _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
481
  'description' => '{{excerpt}}',
482
  'noindex' => 0,
483
  'nofollow' => 0,
@@ -495,7 +495,7 @@ class SQ_Classes_Helpers_Tools {
495
  'tax-product_shipping_class' => array(
496
  'protected' => 1,
497
  'sep' => '|',
498
- 'title' => '{{term_title}} ' . __('Shipping Option', _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
499
  'description' => '{{excerpt}}',
500
  'noindex' => 0,
501
  'nofollow' => 0,
@@ -513,7 +513,7 @@ class SQ_Classes_Helpers_Tools {
513
  'profile' => array(
514
  'protected' => 1,
515
  'sep' => '|',
516
- 'title' => '{{name}}, ' . __('Author at', _SQ_PLUGIN_NAME_) . ' {{sitename}} {{page}}',
517
  'description' => '{{excerpt}}',
518
  'noindex' => 0,
519
  'nofollow' => 0,
@@ -585,8 +585,8 @@ class SQ_Classes_Helpers_Tools {
585
  'search' => array(
586
  'protected' => 1,
587
  'sep' => '|',
588
- 'title' => __('Are you looking for', _SQ_PLUGIN_NAME_) . ' {{searchphrase}}? {{page}} {{sep}} {{sitename}}',
589
- 'description' => __('These are the results for', _SQ_PLUGIN_NAME_) . ' {{searchphrase}} ' . __('that you can find on our website.', _SQ_PLUGIN_NAME_) . ' {{excerpt}}',
590
  'noindex' => 1,
591
  'nofollow' => 0,
592
  'og_type' => 'website',
@@ -620,8 +620,8 @@ class SQ_Classes_Helpers_Tools {
620
  '404' => array(
621
  'protected' => 1,
622
  'sep' => '|',
623
- 'title' => __('Page not found', _SQ_PLUGIN_NAME_) . ' {{sep}} {{sitename}}',
624
- 'description' => __('This page could not be found on our website.', _SQ_PLUGIN_NAME_) . ' {{excerpt}}',
625
  'noindex' => 1,
626
  'nofollow' => 1,
627
  'og_type' => 'website',
@@ -664,8 +664,7 @@ class SQ_Classes_Helpers_Tools {
664
  }
665
 
666
  if (is_array($options)) {
667
- //$options['patterns'] = @array_replace_recursive($default['patterns'], $options['patterns']);
668
- $options = @array_replace_recursive($default, $options);
669
  return $options;
670
  }
671
 
@@ -700,7 +699,7 @@ class SQ_Classes_Helpers_Tools {
700
  self::$options[$key] = $value;
701
  }
702
 
703
- update_option(SQ_OPTION, json_encode(self::$options));
704
  }
705
 
706
  /**
@@ -723,7 +722,7 @@ class SQ_Classes_Helpers_Tools {
723
  $usermeta = $usermetatmp;
724
 
725
  if (is_array($usermeta)) {
726
- $usermeta = @array_merge($default, $usermeta);
727
  } else {
728
  $usermeta = $default;
729
  }
@@ -839,7 +838,7 @@ class SQ_Classes_Helpers_Tools {
839
  }
840
 
841
  if ($echo) {
842
- echo $nonce_field;
843
  }
844
 
845
  return $nonce_field;
@@ -906,13 +905,24 @@ class SQ_Classes_Helpers_Tools {
906
  *
907
  * @param string $content
908
  * @param string $string
 
909
  * @return bool|false|int
910
  */
911
- public static function findStr($content, $string) {
 
 
 
 
 
 
 
 
 
 
912
  if (function_exists('mb_stripos')) {
913
  return mb_stripos($content, $string);
914
  } else {
915
- SQ_Classes_Error::setMessage(sprintf(__("For better text comparison you need to install PHP mbstring extension.", _SQ_PLUGIN_NAME_), _QSS_PLUGIN_NAME_));
916
 
917
  return stripos($content, $string);
918
  }
@@ -1101,7 +1111,7 @@ class SQ_Classes_Helpers_Tools {
1101
  $url .= join('&', $args);
1102
  }
1103
 
1104
- return apply_filters('sq_menu_url', $url, $page, $tab, $args);
1105
  }
1106
 
1107
  }
79
  */
80
  public function hookActionlink($links, $file) {
81
  if ($file == _SQ_PLUGIN_NAME_ . '/squirrly.php') {
82
+ $link = '<a href="' . self::getAdminUrl('sq_dashboard') . '">' . esc_html__("Getting started", _SQ_PLUGIN_NAME_) . '</a>';
83
  array_unshift($links, $link);
84
  }
85
 
104
  .ml-stars svg:hover ~ svg{fill:none}
105
  </style>';
106
 
107
+ $meta[] = "<a href='https://howto.squirrly.co/wordpress-seo/' target='_blank'>" . esc_html__("Documentation", _SQ_PLUGIN_NAME_) . "</a>";
108
+ $meta[] = "<a href='https://wordpress.org/support/plugin/squirrly-seo/reviews/#new-post' target='_blank' title='" . esc_html__("Leave a review", _SQ_PLUGIN_NAME_) . "'><i class='ml-stars'><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg></i></a>";
109
  }
110
  return $meta;
111
  }
188
  'sq_sitemap_perpage' => 200,
189
  'sq_sitemap_frequency' => 'weekly',
190
  'sq_url_fix' => 1,
191
+ 'sq_sitemap_combinelangs' => 0,
192
  'sq_sitemap' => array(
193
  'sitemap' => array('sitemap.xml', 1),
194
  'sitemap-home' => array('sitemap-home.xml', 1),
405
  'tax-post_format' => array(
406
  'protected' => 1,
407
  'sep' => '|',
408
+ 'title' => '{{term_title}} ' . esc_html__("Format", _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
409
  'description' => '{{excerpt}}',
410
  'noindex' => 0,
411
  'nofollow' => 0,
423
  'tax-category' => array(
424
  'protected' => 1,
425
  'sep' => '|',
426
+ 'title' => '{{term_title}} ' . esc_html__("Category", _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
427
  'description' => '{{excerpt}}',
428
  'noindex' => 0,
429
  'nofollow' => 0,
441
  'tax-post_tag' => array(
442
  'protected' => 1,
443
  'sep' => '|',
444
+ 'title' => '{{term_title}} ' . esc_html__("Tag", _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
445
  'description' => '{{excerpt}}',
446
  'noindex' => 0,
447
  'nofollow' => 0,
459
  'tax-product_cat' => array(
460
  'protected' => 1,
461
  'sep' => '|',
462
+ 'title' => '{{term_title}} ' . esc_html__("Category", _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
463
  'description' => '{{excerpt}}',
464
  'noindex' => 0,
465
  'nofollow' => 0,
477
  'tax-product_tag' => array(
478
  'protected' => 1,
479
  'sep' => '|',
480
+ 'title' => '{{term_title}} ' . esc_html__("Tag", _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
481
  'description' => '{{excerpt}}',
482
  'noindex' => 0,
483
  'nofollow' => 0,
495
  'tax-product_shipping_class' => array(
496
  'protected' => 1,
497
  'sep' => '|',
498
+ 'title' => '{{term_title}} ' . esc_html__("Shipping Option", _SQ_PLUGIN_NAME_) . ' {{page}} {{sep}} {{sitename}}',
499
  'description' => '{{excerpt}}',
500
  'noindex' => 0,
501
  'nofollow' => 0,
513
  'profile' => array(
514
  'protected' => 1,
515
  'sep' => '|',
516
+ 'title' => '{{name}}, ' . esc_html__("Author at", _SQ_PLUGIN_NAME_) . ' {{sitename}} {{page}}',
517
  'description' => '{{excerpt}}',
518
  'noindex' => 0,
519
  'nofollow' => 0,
585
  'search' => array(
586
  'protected' => 1,
587
  'sep' => '|',
588
+ 'title' => esc_html__("Are you looking for", _SQ_PLUGIN_NAME_) . ' {{searchphrase}}? {{page}} {{sep}} {{sitename}}',
589
+ 'description' => esc_html__("These are the results for", _SQ_PLUGIN_NAME_) . ' {{searchphrase}} ' . esc_html__("that you can find on our website.", _SQ_PLUGIN_NAME_) . ' {{excerpt}}',
590
  'noindex' => 1,
591
  'nofollow' => 0,
592
  'og_type' => 'website',
620
  '404' => array(
621
  'protected' => 1,
622
  'sep' => '|',
623
+ 'title' => esc_html__("Page not found", _SQ_PLUGIN_NAME_) . ' {{sep}} {{sitename}}',
624
+ 'description' => esc_html__("This page could not be found on our website.", _SQ_PLUGIN_NAME_) . ' {{excerpt}}',
625
  'noindex' => 1,
626
  'nofollow' => 1,
627
  'og_type' => 'website',
664
  }
665
 
666
  if (is_array($options)) {
667
+ $options = array_replace_recursive((array)$default, (array)$options);
 
668
  return $options;
669
  }
670
 
699
  self::$options[$key] = $value;
700
  }
701
 
702
+ update_option(SQ_OPTION, wp_json_encode(self::$options));
703
  }
704
 
705
  /**
722
  $usermeta = $usermetatmp;
723
 
724
  if (is_array($usermeta)) {
725
+ $usermeta = array_merge((array)$default, (array)$usermeta);
726
  } else {
727
  $usermeta = $default;
728
  }
838
  }
839
 
840
  if ($echo) {
841
+ echo (string)$nonce_field;
842
  }
843
 
844
  return $nonce_field;
905
  *
906
  * @param string $content
907
  * @param string $string
908
+ * @param bool $normalize
909
  * @return bool|false|int
910
  */
911
+ public static function findStr($content, $string, $normalize = false) {
912
+ if($normalize) {
913
+ //Check if the search requires char normalization
914
+ $content = SQ_Classes_Helpers_Sanitize::normalizeChars($content);
915
+ $string = SQ_Classes_Helpers_Sanitize::normalizeChars($string);
916
+ }else{
917
+ //decode the content to match quotes and special chars
918
+ $content = html_entity_decode($content, ENT_QUOTES);
919
+ $string = html_entity_decode($string, ENT_QUOTES);
920
+ }
921
+
922
  if (function_exists('mb_stripos')) {
923
  return mb_stripos($content, $string);
924
  } else {
925
+ SQ_Classes_Error::setMessage(esc_html__("For better text comparison you need to install PHP mbstring extension.", _SQ_PLUGIN_NAME_));
926
 
927
  return stripos($content, $string);
928
  }
1111
  $url .= join('&', $args);
1112
  }
1113
 
1114
+ return apply_filters('sq_menu_url', esc_url($url), $page, $tab, $args);
1115
  }
1116
 
1117
  }
config.json CHANGED
@@ -258,7 +258,8 @@
258
  "name": "SQ_Core_BlockSupport",
259
  "actions": {
260
  "action": [
261
- "sq_feedback"
 
262
  ]
263
  },
264
  "admin": "1",
258
  "name": "SQ_Core_BlockSupport",
259
  "actions": {
260
  "action": [
261
+ "sq_feedback",
262
+ "sq_uninstall_feedback"
263
  ]
264
  },
265
  "admin": "1",
config/config.php CHANGED
@@ -26,41 +26,41 @@ defined('SQ_OPTION') || define('SQ_OPTION', 'sq_options');
26
  defined('SQ_TASKS') || define('SQ_TASKS', 'sq_tasks');
27
  defined('_SQ_DB_') || define('_SQ_DB_', 'qss');
28
 
29
- define('SQ_ALL_PATTERNS', json_encode(array(
30
- '{{sep}}' => __("Places a separator between the elements of the post description", _SQ_PLUGIN_NAME_),
31
- '{{title}}' => __("Adds the title of the post/page/term once it’s published", _SQ_PLUGIN_NAME_),
32
- '{{excerpt}}' => __("Will display an excerpt from the post/page/term (if not customized, the excerpt will be auto-generated)", _SQ_PLUGIN_NAME_),
33
- '{{excerpt_only}}' => __("Will display an excerpt from the post/page (no auto-generation)", _SQ_PLUGIN_NAME_),
34
- '{{keyword}}' => __("Adds the post's keyword to the post description", _SQ_PLUGIN_NAME_),
35
- '{{page}}' => __("Displays the number of the current page (i.e. 1 of 6)", _SQ_PLUGIN_NAME_),
36
- '{{sitename}}' => __("Adds the site's name to the post description", _SQ_PLUGIN_NAME_),
37
- '{{sitedesc}}' => __("Adds the tagline/description of your site", _SQ_PLUGIN_NAME_),
38
- '{{category}}' => __("Adds the post category (several categories will be comma-separated)", _SQ_PLUGIN_NAME_),
39
- '{{primary_category}}' => __("Adds the primary category of the post/page", _SQ_PLUGIN_NAME_),
40
- '{{category_description}}' => __("Adds the category description to the post description", _SQ_PLUGIN_NAME_),
41
- '{{tag}}' => __("Adds the current tag(s) (several tags will be comma-separated)", _SQ_PLUGIN_NAME_),
42
- '{{tag_description}}' => __("Adds the tag description", _SQ_PLUGIN_NAME_),
43
- '{{term_title}}' => __("Adds the term name", _SQ_PLUGIN_NAME_),
44
- '{{term_description}}' => __("Adds the term description", _SQ_PLUGIN_NAME_),
45
- '{{searchphrase}}' => __("Displays the search phrase (if it appears in the post)", _SQ_PLUGIN_NAME_),
46
- '{{modified}}' => __("Replaces the publication date of a post/page with the modified one", _SQ_PLUGIN_NAME_),
47
- '{{name}}' => __("Displays the author's nicename", _SQ_PLUGIN_NAME_),
48
- '{{user_description}}' => __("Adds the author's biographical info to the post description", _SQ_PLUGIN_NAME_),
49
- '{{currentdate}}' => __("Displays the current date", _SQ_PLUGIN_NAME_),
50
- '{{date}}' => __("Displays the date of the post/page once it's published", _SQ_PLUGIN_NAME_),
51
- '{{currentday}}' => __("Adds the current day", _SQ_PLUGIN_NAME_),
52
- '{{currentmonth}}' => __("Adds the current month", _SQ_PLUGIN_NAME_),
53
- '{{currentyear}}' => __("Adds the current year", _SQ_PLUGIN_NAME_),
54
- '{{parent_title}}' => __('Adds the title of a page\'s parent page', _SQ_PLUGIN_NAME_),
55
- '{{product_name}}' => __('Adds the product name from Woocommerce for the current product', _SQ_PLUGIN_NAME_),
56
- '{{product_price}}' => __('Adds the product price from Woocommerce for the current product', _SQ_PLUGIN_NAME_),
57
- '{{product_sale}}' => __('Adds the product sale price from Woocommerce for the current product', _SQ_PLUGIN_NAME_),
58
- '{{product_currency}}' => __('Adds the product price currency from Woocommerce for the current product', _SQ_PLUGIN_NAME_),
59
  )));
60
 
61
- define('SQ_ALL_JSONLD_TYPES', json_encode(array('website','profile','article','book','music','product','video')));
62
 
63
- define('SQ_ALL_SEP', json_encode(array(
64
  'sc-dash' => '-',
65
  'sc-ndash' => '&ndash;',
66
  'sc-mdash' => '&mdash;',
26
  defined('SQ_TASKS') || define('SQ_TASKS', 'sq_tasks');
27
  defined('_SQ_DB_') || define('_SQ_DB_', 'qss');
28
 
29
+ define('SQ_ALL_PATTERNS', wp_json_encode(array(
30
+ '{{sep}}' => esc_html__("Places a separator between the elements of the post description", _SQ_PLUGIN_NAME_),
31
+ '{{title}}' => esc_html__("Adds the title of the post/page/term once it’s published", _SQ_PLUGIN_NAME_),
32
+ '{{excerpt}}' => esc_html__("Will display an excerpt from the post/page/term (if not customized, the excerpt will be auto-generated)", _SQ_PLUGIN_NAME_),
33
+ '{{excerpt_only}}' => esc_html__("Will display an excerpt from the post/page (no auto-generation)", _SQ_PLUGIN_NAME_),
34
+ '{{keyword}}' => esc_html__("Adds the post's keyword to the post description", _SQ_PLUGIN_NAME_),
35
+ '{{page}}' => esc_html__("Displays the number of the current page (i.e. 1 of 6)", _SQ_PLUGIN_NAME_),
36
+ '{{sitename}}' => esc_html__("Adds the site's name to the post description", _SQ_PLUGIN_NAME_),
37
+ '{{sitedesc}}' => esc_html__("Adds the tagline/description of your site", _SQ_PLUGIN_NAME_),
38
+ '{{category}}' => esc_html__("Adds the post category (several categories will be comma-separated)", _SQ_PLUGIN_NAME_),
39
+ '{{primary_category}}' => esc_html__("Adds the primary category of the post/page", _SQ_PLUGIN_NAME_),
40
+ '{{category_description}}' => esc_html__("Adds the category description to the post description", _SQ_PLUGIN_NAME_),
41
+ '{{tag}}' => esc_html__("Adds the current tag(s) (several tags will be comma-separated)", _SQ_PLUGIN_NAME_),
42
+ '{{tag_description}}' => esc_html__("Adds the tag description", _SQ_PLUGIN_NAME_),
43
+ '{{term_title}}' => esc_html__("Adds the term name", _SQ_PLUGIN_NAME_),
44
+ '{{term_description}}' => esc_html__("Adds the term description", _SQ_PLUGIN_NAME_),
45
+ '{{searchphrase}}' => esc_html__("Displays the search phrase (if it appears in the post)", _SQ_PLUGIN_NAME_),
46
+ '{{modified}}' => esc_html__("Replaces the publication date of a post/page with the modified one", _SQ_PLUGIN_NAME_),
47
+ '{{name}}' => esc_html__("Displays the author's nicename", _SQ_PLUGIN_NAME_),
48
+ '{{user_description}}' => esc_html__("Adds the author's biographical info to the post description", _SQ_PLUGIN_NAME_),
49
+ '{{currentdate}}' => esc_html__("Displays the current date", _SQ_PLUGIN_NAME_),
50
+ '{{date}}' => esc_html__("Displays the date of the post/page once it's published", _SQ_PLUGIN_NAME_),
51
+ '{{currentday}}' => esc_html__("Adds the current day", _SQ_PLUGIN_NAME_),
52
+ '{{currentmonth}}' => esc_html__("Adds the current month", _SQ_PLUGIN_NAME_),
53
+ '{{currentyear}}' => esc_html__("Adds the current year", _SQ_PLUGIN_NAME_),
54
+ '{{parent_title}}' => esc_html__("Adds the title of a page's parent page", _SQ_PLUGIN_NAME_),
55
+ '{{product_name}}' => esc_html__("Adds the product name from Woocommerce for the current product", _SQ_PLUGIN_NAME_),
56
+ '{{product_price}}' => esc_html__("Adds the product price from Woocommerce for the current product", _SQ_PLUGIN_NAME_),
57
+ '{{product_sale}}' => esc_html__("Adds the product sale price from Woocommerce for the current product", _SQ_PLUGIN_NAME_),
58
+ '{{product_currency}}' => esc_html__("Adds the product price currency from Woocommerce for the current product", _SQ_PLUGIN_NAME_),
59
  )));
60
 
61
+ define('SQ_ALL_JSONLD_TYPES', wp_json_encode(array('website','profile','article','book','music','product','video')));
62
 
63
+ define('SQ_ALL_SEP', wp_json_encode(array(
64
  'sc-dash' => '-',
65
  'sc-ndash' => '&ndash;',
66
  'sc-mdash' => '&mdash;',
config/paths.php CHANGED
@@ -12,7 +12,7 @@ defined('SQ_CHECK_SSL') || define('SQ_CHECK_SSL', SQ_SSL);
12
  defined('SQ_URI') || define('SQ_URI', 'wp530');
13
  defined('_SQ_DASH_URL_') || define('_SQ_DASH_URL_', 'https://cloud.squirrly.co/');
14
  defined('_SQ_APIV2_URL_') || define('_SQ_APIV2_URL_', SQ_SSL . '//api.squirrly.co/v2/');
15
- define('_SQ_SITE_HOST_', @parse_url(home_url(), PHP_URL_HOST));
16
 
17
  define('_SQ_SUPPORT_EMAIL_', 'support@squirrly.co');
18
  defined('_SQ_STATIC_API_URL_') || define('_SQ_STATIC_API_URL_', '//storage.googleapis.com/squirrly/');
@@ -43,22 +43,23 @@ $upload_dir = array();
43
  $upload_dir['baseurl'] = WP_CONTENT_URL . '/uploads';
44
  $upload_dir['basedir'] = WP_CONTENT_DIR . '/uploads';
45
 
46
- $upload_path = '';
47
- if (is_dir($upload_dir['basedir'])) {
48
- $upload_path = $upload_dir['basedir'] . '/' . _SQ_NAME_ . '/';
 
 
 
49
  }
50
 
51
- if ($upload_path <> '') {
52
- if (!is_dir($upload_path)) {
53
- wp_mkdir_p($upload_path);
54
- }
55
 
56
- if (is_dir($upload_path) && function_exists('wp_is_writable') && wp_is_writable($upload_path)) {
57
- defined('_SQ_CACHE_DIR_') || define('_SQ_CACHE_DIR_', realpath($upload_path) . '/');
58
- defined('_SQ_CACHE_URL_') || define('_SQ_CACHE_URL_', $upload_dir['baseurl'] . '/' . _SQ_NAME_ . '/');
59
- }
60
  }
61
 
62
- defined('_SQ_CACHE_DIR_') || define('_SQ_CACHE_DIR_', _SQ_ROOT_DIR_ . '/cache/');
63
- defined('_SQ_CACHE_URL_') || define('_SQ_CACHE_URL_', _SQ_URL_ . '/cache/');
64
 
12
  defined('SQ_URI') || define('SQ_URI', 'wp530');
13
  defined('_SQ_DASH_URL_') || define('_SQ_DASH_URL_', 'https://cloud.squirrly.co/');
14
  defined('_SQ_APIV2_URL_') || define('_SQ_APIV2_URL_', SQ_SSL . '//api.squirrly.co/v2/');
15
+ define('_SQ_SITE_HOST_', parse_url(home_url(), PHP_URL_HOST));
16
 
17
  define('_SQ_SUPPORT_EMAIL_', 'support@squirrly.co');
18
  defined('_SQ_STATIC_API_URL_') || define('_SQ_STATIC_API_URL_', '//storage.googleapis.com/squirrly/');
43
  $upload_dir['baseurl'] = WP_CONTENT_URL . '/uploads';
44
  $upload_dir['basedir'] = WP_CONTENT_DIR . '/uploads';
45
 
46
+ if (!defined('UPLOADS')) {
47
+ $basedir = WP_CONTENT_DIR . '/uploads/' . _SQ_NAME_;
48
+ $baseurl = rtrim(content_url(), '/') . '/uploads/' . _SQ_NAME_;
49
+ } else {
50
+ $basedir = rtrim(ABSPATH, '/') . '/' . trim(UPLOADS, '/') . '/' . _SQ_NAME_;
51
+ $baseurl = home_url() . '/' . trim(UPLOADS, '/') . '/' . _SQ_NAME_;
52
  }
53
 
54
+ if (!is_dir($basedir)) {
55
+ @wp_mkdir_p($basedir);
56
+ }
 
57
 
58
+ if (!is_dir($basedir) || !function_exists('wp_is_writable') || !wp_is_writable($basedir)) {
59
+ $basedir = _SQ_ROOT_DIR_ . 'cache';
60
+ $baseurl = _SQ_URL_ . 'cache';
 
61
  }
62
 
63
+ defined('_SQ_CACHE_DIR_') || define('_SQ_CACHE_DIR_', $basedir . '/');
64
+ defined('_SQ_CACHE_URL_') || define('_SQ_CACHE_URL_', $baseurl . '/');
65
 
controllers/Account.php CHANGED
@@ -28,7 +28,7 @@ class SQ_Controllers_Account extends SQ_Classes_FrontController {
28
  $json['error'] = SQ_Classes_Error::getError();
29
  }
30
 
31
- echo json_encode($json);
32
  exit();
33
  }
34
 
28
  $json['error'] = SQ_Classes_Error::getError();
29
  }
30
 
31
+ echo wp_json_encode($json);
32
  exit();
33
  }
34
 
controllers/Api.php CHANGED
@@ -63,10 +63,10 @@ class SQ_Controllers_Api extends SQ_Classes_FrontController {
63
  }
64
 
65
  if ($this->token <> $token) {
66
- exit(json_encode(array('connected' => false, 'error' => __('Invalid Token. Please try again', _SQ_PLUGIN_NAME_))));
67
  }
68
 
69
- echo json_encode(array('connected' => true, 'error' => false));
70
  exit();
71
  }
72
 
@@ -84,7 +84,7 @@ class SQ_Controllers_Api extends SQ_Classes_FrontController {
84
  }
85
 
86
  if ($this->token <> $token) {
87
- exit(json_encode(array('error' => __('Connection expired. Please try again', _SQ_PLUGIN_NAME_))));
88
  }
89
 
90
  $post = $request->get_param('post');
@@ -97,25 +97,25 @@ class SQ_Controllers_Api extends SQ_Classes_FrontController {
97
  if ($user = get_user_by('email', $post->post_author)) {
98
  $post->post_author = $user->ID;
99
  } else {
100
- exit(json_encode(array('error' => __('Author not found', _SQ_PLUGIN_NAME_))));
101
  }
102
  } else {
103
- exit(json_encode(array('error' => __('Author not found', _SQ_PLUGIN_NAME_))));
104
  }
105
  } else {
106
- exit(json_encode(array('error' => __('Author not found', _SQ_PLUGIN_NAME_))));
107
  }
108
 
109
  $post_ID = wp_insert_post($post->to_array());
110
  if (is_wp_error($post_ID)) {
111
- echo json_encode(array('error' => $post_ID->get_error_message()));
112
  } else {
113
- echo json_encode(array('saved' => true, 'post_ID' => $post_ID, 'permalink' => get_permalink($post_ID)));
114
  }
115
  exit();
116
  }
117
  }
118
- echo json_encode(array('error' => true));
119
  exit();
120
  }
121
 
@@ -136,7 +136,7 @@ class SQ_Controllers_Api extends SQ_Classes_FrontController {
136
  }
137
 
138
  if ($this->token <> $token) {
139
- exit(json_encode(array('error' => __('Connection expired. Please try again', _SQ_PLUGIN_NAME_))));
140
  }
141
 
142
  $select = $request->get_param('select');
@@ -146,7 +146,7 @@ class SQ_Controllers_Api extends SQ_Classes_FrontController {
146
  case 'innerlinks':
147
  $url = $request->get_param('url');
148
  if ($url == '') {
149
- exit(json_encode(array('error' => __('Wrong Params', _SQ_PLUGIN_NAME_))));
150
  }
151
 
152
  //get post inner links
@@ -168,7 +168,7 @@ class SQ_Controllers_Api extends SQ_Classes_FrontController {
168
  case 'post':
169
  $url = $request->get_param('url');
170
  if ($url == '') {
171
- exit(json_encode(array('error' => __('Wrong Params', _SQ_PLUGIN_NAME_))));
172
  }
173
  //get Squirrly SEO post metas
174
  if ($post = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByURL($url)) {
@@ -184,7 +184,7 @@ class SQ_Controllers_Api extends SQ_Classes_FrontController {
184
 
185
  break;
186
  }
187
- echo json_encode($response);
188
 
189
  exit();
190
 
63
  }
64
 
65
  if ($this->token <> $token) {
66
+ exit(wp_json_encode(array('connected' => false, 'error' => esc_html__("Invalid Token. Please try again", _SQ_PLUGIN_NAME_))));
67
  }
68
 
69
+ echo wp_json_encode(array('connected' => true, 'error' => false));
70
  exit();
71
  }
72
 
84
  }
85
 
86
  if ($this->token <> $token) {
87
+ exit(wp_json_encode(array('error' => esc_html__("Connection expired. Please try again", _SQ_PLUGIN_NAME_))));
88
  }
89
 
90
  $post = $request->get_param('post');
97
  if ($user = get_user_by('email', $post->post_author)) {
98
  $post->post_author = $user->ID;
99
  } else {
100
+ exit(wp_json_encode(array('error' => esc_html__("Author not found", _SQ_PLUGIN_NAME_))));
101
  }
102
  } else {
103
+ exit(wp_json_encode(array('error' => esc_html__("Author not found", _SQ_PLUGIN_NAME_))));
104
  }
105
  } else {
106
+ exit(wp_json_encode(array('error' => esc_html__("Author not found", _SQ_PLUGIN_NAME_))));
107
  }
108
 
109
  $post_ID = wp_insert_post($post->to_array());
110
  if (is_wp_error($post_ID)) {
111
+ echo wp_json_encode(array('error' => $post_ID->get_error_message()));
112
  } else {
113
+ echo wp_json_encode(array('saved' => true, 'post_ID' => $post_ID, 'permalink' => get_permalink($post_ID)));
114
  }
115
  exit();
116
  }
117
  }
118
+ echo wp_json_encode(array('error' => true));
119
  exit();
120
  }
121
 
136
  }
137
 
138
  if ($this->token <> $token) {
139
+ exit(wp_json_encode(array('error' => esc_html__("Connection expired. Please try again.", _SQ_PLUGIN_NAME_))));
140
  }
141
 
142
  $select = $request->get_param('select');
146
  case 'innerlinks':
147
  $url = $request->get_param('url');
148
  if ($url == '') {
149
+ exit(wp_json_encode(array('error' => esc_html__("Wrong Params", _SQ_PLUGIN_NAME_))));
150
  }
151
 
152
  //get post inner links
168
  case 'post':
169
  $url = $request->get_param('url');
170
  if ($url == '') {
171
+ exit(wp_json_encode(array('error' => esc_html__("Wrong Params", _SQ_PLUGIN_NAME_))));
172
  }
173
  //get Squirrly SEO post metas
174
  if ($post = SQ_Classes_ObjController::getClass('SQ_Models_Snippet')->setPostByURL($url)) {
184
 
185
  break;
186
  }
187
+ echo wp_json_encode($response);
188
 
189
  exit();
190
 
controllers/Assistant.php CHANGED
@@ -66,7 +66,7 @@ class SQ_Controllers_Assistant extends SQ_Classes_FrontController {
66
  $this->keywords = $json->keywords;
67
  } else {
68
 
69
- $this->error = __('No keyword found.', _SQ_PLUGIN_NAME_);
70
 
71
  }
72
 
@@ -105,15 +105,15 @@ class SQ_Controllers_Assistant extends SQ_Classes_FrontController {
105
  }
106
 
107
  //show the saved message
108
- SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
109
 
110
  break;
111
 
112
  case 'sq_ajax_assistant':
113
  if (!current_user_can('sq_manage_snippets')) {
114
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
115
  SQ_Classes_Helpers_Tools::setHeader('json');
116
- echo json_encode($response);
117
  exit();
118
  }
119
 
@@ -129,16 +129,16 @@ class SQ_Controllers_Assistant extends SQ_Classes_FrontController {
129
  if ($category_name <> '' && $name <> '') {
130
  if (!$option) $option = 'active';
131
  $dbtasks[$category_name][$name][$option] = $value;
132
- update_option(SQ_TASKS, json_encode($dbtasks));
133
  }
134
 
135
- $response['data'] = SQ_Classes_Error::showNotices(__('Saved', _SQ_PLUGIN_NAME_), 'sq_success');
136
- echo json_encode($response);
137
  exit;
138
  }
139
 
140
- $response['data'] = SQ_Classes_Error::showNotices(__('Error: Could not save the data.', _SQ_PLUGIN_NAME_), 'sq_error');
141
- echo json_encode($response);
142
  exit();
143
 
144
 
66
  $this->keywords = $json->keywords;
67
  } else {
68
 
69
+ $this->error = esc_html__("No keyword found.", _SQ_PLUGIN_NAME_);
70
 
71
  }
72
 
105
  }
106
 
107
  //show the saved message
108
+ SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
109
 
110
  break;
111
 
112
  case 'sq_ajax_assistant':
113
  if (!current_user_can('sq_manage_snippets')) {
114
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
115
  SQ_Classes_Helpers_Tools::setHeader('json');
116
+ echo wp_json_encode($response);
117
  exit();
118
  }
119
 
129
  if ($category_name <> '' && $name <> '') {
130
  if (!$option) $option = 'active';
131
  $dbtasks[$category_name][$name][$option] = $value;
132
+ update_option(SQ_TASKS, wp_json_encode($dbtasks));
133
  }
134
 
135
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Saved", _SQ_PLUGIN_NAME_), 'sq_success');
136
+ echo wp_json_encode($response);
137
  exit;
138
  }
139
 
140
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Error: Could not save the data.", _SQ_PLUGIN_NAME_), 'sq_error');
141
+ echo wp_json_encode($response);
142
  exit();
143
 
144
 
controllers/Audits.php CHANGED
@@ -133,7 +133,7 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
133
  }
134
 
135
  } else {
136
- SQ_Classes_Error::setError(__('The audit was not found. Please load another audit.', _SQ_PLUGIN_NAME_));
137
 
138
  }
139
 
@@ -166,7 +166,7 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
166
  $this->audit = SQ_Classes_RemoteController::getAudit(array('days_back' => $days_back));
167
 
168
  if (is_wp_error($this->audit)) {
169
- SQ_Classes_Error::setError(__('Could not load the Audit Page.', _SQ_PLUGIN_NAME_));
170
  } elseif ($auditpages = SQ_Classes_RemoteController::getAuditPages()) {
171
 
172
  if (is_wp_error($auditpages)) {
@@ -255,7 +255,7 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
255
  if (SQ_Classes_Helpers_Tools::getValue('sq_debug') == 'on') {
256
  return;
257
  }
258
- echo json_encode($json);
259
  exit();
260
  }
261
  break;
@@ -280,17 +280,17 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
280
  $args['permalink'] = $post->url;
281
  if ($auditpage = SQ_Classes_RemoteController::addAuditPage($args)) {
282
  if (!is_wp_error($auditpage)) {
283
- SQ_Classes_Error::setError(__('Audit page is added. The audit may take a while so please be patient.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
284
  set_transient('sq_auditpage_all', time());
285
  } elseif ($auditpage->get_error_message() == 'limit_exceed') {
286
- SQ_Classes_Error::setError(__('You reached the maximum number of audit pages for your account.', _SQ_PLUGIN_NAME_) . " <br /> ");
287
  }
288
  } else {
289
- SQ_Classes_Error::setError(__('Error! Could not add the audit page.', _SQ_PLUGIN_NAME_) . " <br /> ");
290
  }
291
 
292
  } else {
293
- SQ_Classes_Error::setError(__('Error! Could not find the audit page in your website.', _SQ_PLUGIN_NAME_) . " <br /> ");
294
  }
295
  break;
296
  case 'sq_audits_update':
@@ -300,13 +300,13 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
300
 
301
  if ($auditpage = SQ_Classes_RemoteController::updateAudit()) {
302
  if (!is_wp_error($auditpage)) {
303
- SQ_Classes_Error::setError(__('Audit page sent for recheck. It may take a while so please be patient.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
304
  set_transient('sq_auditpage_all', time());
305
  } elseif ($auditpage->get_error_message() == 'too_many_attempts') {
306
- SQ_Classes_Error::setError(__("The audit for all pages can be made once an hour.", _SQ_PLUGIN_NAME_) . " <br /> ");
307
  }
308
  } else {
309
- SQ_Classes_Error::setError(__("The audit for all pages can be made once an hour.", _SQ_PLUGIN_NAME_) . " <br /> ");
310
  }
311
  break;
312
  case 'sq_audits_delete':
@@ -316,9 +316,9 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
316
 
317
  if ($user_post_id = SQ_Classes_Helpers_Tools::getValue('id', false)) {
318
  SQ_Classes_RemoteController::deleteAuditPage(array('user_post_id' => $user_post_id));
319
- SQ_Classes_Error::setError(__('The audit page is deleted', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
320
  } else {
321
- SQ_Classes_Error::setError(__('Invalid params!', _SQ_PLUGIN_NAME_) . " <br /> ");
322
  }
323
 
324
  break;
@@ -339,9 +339,9 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController {
339
  ///////////////////////////////
340
 
341
  //show the saved message
342
- SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
343
  } else {
344
- SQ_Classes_Error::setError(__('Not a valid email address', _SQ_PLUGIN_NAME_));
345
 
346
  }
347
 
133
  }
134
 
135
  } else {
136
+ SQ_Classes_Error::setError(esc_html__("The audit was not found. Please load another audit.", _SQ_PLUGIN_NAME_));
137
 
138
  }
139
 
166
  $this->audit = SQ_Classes_RemoteController::getAudit(array('days_back' => $days_back));
167
 
168
  if (is_wp_error($this->audit)) {
169
+ SQ_Classes_Error::setError(esc_html__("Could not load the Audit Page.", _SQ_PLUGIN_NAME_));
170
  } elseif ($auditpages = SQ_Classes_RemoteController::getAuditPages()) {
171
 
172
  if (is_wp_error($auditpages)) {
255
  if (SQ_Classes_Helpers_Tools::getValue('sq_debug') == 'on') {
256
  return;
257
  }
258
+ echo wp_json_encode($json);
259
  exit();
260
  }
261
  break;
280
  $args['permalink'] = $post->url;
281
  if ($auditpage = SQ_Classes_RemoteController::addAuditPage($args)) {
282
  if (!is_wp_error($auditpage)) {
283
+ SQ_Classes_Error::setError(esc_html__("Audit page is added. The audit may take a while so please be patient.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
284
  set_transient('sq_auditpage_all', time());
285
  } elseif ($auditpage->get_error_message() == 'limit_exceed') {
286
+ SQ_Classes_Error::setError(esc_html__("You reached the maximum number of audit pages for your account.", _SQ_PLUGIN_NAME_) . " <br /> ");
287
  }
288
  } else {
289
+ SQ_Classes_Error::setError(esc_html__("Error! Could not add the audit page.", _SQ_PLUGIN_NAME_) . " <br /> ");
290
  }
291
 
292
  } else {
293
+ SQ_Classes_Error::setError(esc_html__("Error! Could not find the audit page in your website.", _SQ_PLUGIN_NAME_) . " <br /> ");
294
  }
295
  break;
296
  case 'sq_audits_update':
300
 
301
  if ($auditpage = SQ_Classes_RemoteController::updateAudit()) {
302
  if (!is_wp_error($auditpage)) {
303
+ SQ_Classes_Error::setError(esc_html__("Audit page sent for recheck. It may take a while so please be patient.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
304
  set_transient('sq_auditpage_all', time());
305
  } elseif ($auditpage->get_error_message() == 'too_many_attempts') {
306
+ SQ_Classes_Error::setError(esc_html__("The audit for all pages can be made once an hour.", _SQ_PLUGIN_NAME_) . " <br /> ");
307
  }
308
  } else {
309
+ SQ_Classes_Error::setError(esc_html__("The audit for all pages can be made once an hour.", _SQ_PLUGIN_NAME_) . " <br /> ");
310
  }
311
  break;
312
  case 'sq_audits_delete':
316
 
317
  if ($user_post_id = SQ_Classes_Helpers_Tools::getValue('id', false)) {
318
  SQ_Classes_RemoteController::deleteAuditPage(array('user_post_id' => $user_post_id));
319
+ SQ_Classes_Error::setError(esc_html__("The audit page is deleted.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
320
  } else {
321
+ SQ_Classes_Error::setError(esc_html__("Invalid params!", _SQ_PLUGIN_NAME_) . " <br /> ");
322
  }
323
 
324
  break;
339
  ///////////////////////////////
340
 
341
  //show the saved message
342
+ SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
343
  } else {
344
+ SQ_Classes_Error::setError(esc_html__("Not a valid email address.", _SQ_PLUGIN_NAME_));
345
 
346
  }
347
 
controllers/BulkSeo.php CHANGED
@@ -72,8 +72,8 @@ class SQ_Controllers_BulkSeo extends SQ_Classes_FrontController {
72
 
73
  $response = array();
74
  if (!current_user_can('sq_manage_snippet')) {
75
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
76
- echo json_encode($response);
77
  exit();
78
  }
79
 
@@ -103,7 +103,7 @@ class SQ_Controllers_BulkSeo extends SQ_Classes_FrontController {
103
  }
104
  $json['assistant_dest'] = "#sq_assistant_" . $this->post->hash;
105
 
106
- echo json_encode($json);
107
  exit();
108
 
109
  }
72
 
73
  $response = array();
74
  if (!current_user_can('sq_manage_snippet')) {
75
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
76
+ echo wp_json_encode($response);
77
  exit();
78
  }
79
 
103
  }
104
  $json['assistant_dest'] = "#sq_assistant_" . $this->post->hash;
105
 
106
+ echo wp_json_encode($json);
107
  exit();
108
 
109
  }
controllers/CheckSeo.php CHANGED
@@ -48,6 +48,8 @@ class SQ_Controllers_CheckSeo extends SQ_Classes_FrontController {
48
  //Load the tasks from database and filter them
49
  $tasks = $this->model->getTasks();
50
 
 
 
51
  if (!empty($report)) {
52
 
53
  if (!isset($this->model->dbtasks['count_tasks_for_today'])) {
@@ -262,7 +264,7 @@ class SQ_Controllers_CheckSeo extends SQ_Classes_FrontController {
262
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
263
 
264
  case 'sq_checkseo':
265
- SQ_Classes_Error::setMessage(__('Done!', _SQ_PLUGIN_NAME_));
266
  //Check all the SEO
267
  //Process all the tasks and save the report
268
  $this->model->checkSEO();
@@ -272,7 +274,7 @@ class SQ_Controllers_CheckSeo extends SQ_Classes_FrontController {
272
  $this->model->dbtasks['tasks_for_today'] = array();
273
  $this->model->saveDbTasks();
274
 
275
- SQ_Classes_Error::setMessage(__('Done!', _SQ_PLUGIN_NAME_));
276
  //Check all the SEO
277
  //Process all the tasks and save the report
278
  $this->model->checkSEO();
@@ -289,25 +291,25 @@ class SQ_Controllers_CheckSeo extends SQ_Classes_FrontController {
289
  //Process all the tasks and save the report
290
  $this->model->checkSEO();
291
 
292
- SQ_Classes_Error::setMessage(__('Fixed!', _SQ_PLUGIN_NAME_));
293
  return;
294
  }
295
  }
296
 
297
- SQ_Classes_Error::setError(__('Could not fix it. You need to change it manually.', _SQ_PLUGIN_NAME_));
298
  break;
299
  case 'sq_donetask':
300
  $name = SQ_Classes_Helpers_Tools::getValue('name', false);
301
 
302
  $this->model->doneTask($name);
303
 
304
- SQ_Classes_Error::setMessage(__('Saved! Task marked as done.', _SQ_PLUGIN_NAME_));
305
  break;
306
  case 'sq_resetignored':
307
  //Remove ignored tasks
308
  $this->model->clearIgnoredTasks();
309
 
310
- SQ_Classes_Error::setMessage(__('Saved!', _SQ_PLUGIN_NAME_));
311
 
312
  break;
313
  case 'sq_ajax_checkseo':
@@ -322,7 +324,7 @@ class SQ_Controllers_CheckSeo extends SQ_Classes_FrontController {
322
  $json['error'] = SQ_Classes_Error::getError();
323
  }
324
 
325
- echo json_encode($json);
326
  exit();
327
  case 'sq_ajax_getgoals':
328
  SQ_Classes_Helpers_Tools::setHeader('json');
@@ -341,7 +343,7 @@ class SQ_Controllers_CheckSeo extends SQ_Classes_FrontController {
341
  $json['error'] = SQ_Classes_Error::getError();
342
  }
343
 
344
- echo json_encode($json);
345
  exit();
346
  }
347
 
48
  //Load the tasks from database and filter them
49
  $tasks = $this->model->getTasks();
50
 
51
+ // $this->model->dbtasks['tasks_for_today'] = array();
52
+ // $this->model->dbtasks['count_tasks_for_today'] = 300;
53
  if (!empty($report)) {
54
 
55
  if (!isset($this->model->dbtasks['count_tasks_for_today'])) {
264
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
265
 
266
  case 'sq_checkseo':
267
+ SQ_Classes_Error::setMessage(esc_html__("Done!", _SQ_PLUGIN_NAME_));
268
  //Check all the SEO
269
  //Process all the tasks and save the report
270
  $this->model->checkSEO();
274
  $this->model->dbtasks['tasks_for_today'] = array();
275
  $this->model->saveDbTasks();
276
 
277
+ SQ_Classes_Error::setMessage(esc_html__("Done!", _SQ_PLUGIN_NAME_));
278
  //Check all the SEO
279
  //Process all the tasks and save the report
280
  $this->model->checkSEO();
291
  //Process all the tasks and save the report
292
  $this->model->checkSEO();
293
 
294
+ SQ_Classes_Error::setMessage(esc_html__("Fixed!", _SQ_PLUGIN_NAME_));
295
  return;
296
  }
297
  }
298
 
299
+ SQ_Classes_Error::setError(esc_html__("Could not fix it. You need to change it manually.", _SQ_PLUGIN_NAME_));
300
  break;
301
  case 'sq_donetask':
302
  $name = SQ_Classes_Helpers_Tools::getValue('name', false);
303
 
304
  $this->model->doneTask($name);
305
 
306
+ SQ_Classes_Error::setMessage(esc_html__("Saved! Task marked as done.", _SQ_PLUGIN_NAME_));
307
  break;
308
  case 'sq_resetignored':
309
  //Remove ignored tasks
310
  $this->model->clearIgnoredTasks();
311
 
312
+ SQ_Classes_Error::setMessage(esc_html__("Saved!", _SQ_PLUGIN_NAME_));
313
 
314
  break;
315
  case 'sq_ajax_checkseo':
324
  $json['error'] = SQ_Classes_Error::getError();
325
  }
326
 
327
+ echo wp_json_encode($json);
328
  exit();
329
  case 'sq_ajax_getgoals':
330
  SQ_Classes_Helpers_Tools::setHeader('json');
343
  $json['error'] = SQ_Classes_Error::getError();
344
  }
345
 
346
+ echo wp_json_encode($json);
347
  exit();
348
  }
349
 
controllers/Dashboard.php CHANGED
@@ -33,7 +33,7 @@ class SQ_Controllers_Dashboard extends SQ_Classes_FrontController {
33
  //Process all the tasks and save the report
34
  SQ_Classes_ObjController::getClass('SQ_Models_CheckSeo')->checkSEO();
35
 
36
- echo json_encode(array('data' => $this->getView('Blocks/Dashboard')));
37
  exit();
38
 
39
  }
33
  //Process all the tasks and save the report
34
  SQ_Classes_ObjController::getClass('SQ_Models_CheckSeo')->checkSEO();
35
 
36
+ echo wp_json_encode(array('data' => $this->getView('Blocks/Dashboard')));
37
  exit();
38
 
39
  }
controllers/FocusPages.php CHANGED
@@ -150,7 +150,7 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
150
  $this->focuspages[] = SQ_Classes_ObjController::getClass('SQ_Models_FocusPages')->parseFocusPage($focuspage, $labels)->getFocusPage();
151
 
152
  } elseif ($focuspage->user_post_id) {
153
- SQ_Classes_Error::setError(__('Focus Page does not exist or was deleted from your website.', _SQ_PLUGIN_NAME_));
154
  SQ_Classes_RemoteController::deleteFocusPage(array('user_post_id' => $focuspage->user_post_id));
155
  }
156
  }
@@ -297,7 +297,7 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
297
  $json['error'] = SQ_Classes_Error::getError();
298
  }
299
 
300
- echo json_encode($json);
301
  exit();
302
 
303
  case 'sq_focuspages_getpage':
@@ -318,7 +318,7 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
318
  $json['error'] = SQ_Classes_Error::getError();
319
  }
320
 
321
- echo json_encode($json);
322
  exit();
323
  case 'sq_focuspages_addnew':
324
  if (!current_user_can('sq_manage_focuspages')) {
@@ -342,24 +342,24 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
342
  $args['permalink'] = $post->url;
343
  if ($focuspage = SQ_Classes_RemoteController::addFocusPage($args)) {
344
  if (!is_wp_error($focuspage)) {
345
- SQ_Classes_Error::setError(__('Focus page is added. The audit may take a while so please be patient.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
346
  if (isset($focuspage->user_post_id)) {
347
  set_transient('sq_auditpage_' . $focuspage->user_post_id, time());
348
 
349
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
350
  }
351
  } elseif ($focuspage->get_error_message() == 'limit_exceed') {
352
- SQ_Classes_Error::setError(__('You reached the maximum number of focus pages for all your websites.', _SQ_PLUGIN_NAME_) . " <br /> ");
353
  }
354
  } else {
355
- SQ_Classes_Error::setError(__('Error! Could not add the focus page.', _SQ_PLUGIN_NAME_) . " <br /> ");
356
  }
357
  } else {
358
- SQ_Classes_Error::setError(__('Error! This focus page is not public.', _SQ_PLUGIN_NAME_) . " <br /> ");
359
  }
360
 
361
  } else {
362
- SQ_Classes_Error::setError(__('Error! Could not find the focus page in your website.', _SQ_PLUGIN_NAME_) . " <br /> ");
363
  }
364
  break;
365
  case 'sq_focuspages_update':
@@ -386,19 +386,19 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
386
  if ($focuspage = SQ_Classes_RemoteController::updateFocusPage($args)) {
387
 
388
  if (!is_wp_error($focuspage)) {
389
- SQ_Classes_Error::setError(__('Focus page sent for recheck. It may take a while so please be patient.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
390
  set_transient('sq_auditpage_' . $user_post_id, time());
391
  } elseif ($focuspage->get_error_message() == 'too_many_attempts') {
392
- SQ_Classes_Error::setError(__("You've made too many requests, please wait a few minutes.", _SQ_PLUGIN_NAME_) . " <br /> ");
393
  }
394
 
395
  } else {
396
- SQ_Classes_Error::setError(__("You've made too many requests, please wait a few minutes.", _SQ_PLUGIN_NAME_) . " <br /> ");
397
  set_transient('sq_auditpage_' . $user_post_id, time());
398
  }
399
 
400
  } else {
401
- SQ_Classes_Error::setError(__('Error! Could not find the focus page in your website.', _SQ_PLUGIN_NAME_) . " <br /> ");
402
  }
403
  }
404
  break;
@@ -409,9 +409,9 @@ class SQ_Controllers_FocusPages extends SQ_Classes_FrontController {
409
 
410
  if ($user_post_id = SQ_Classes_Helpers_Tools::getValue('id', false)) {
411
  SQ_Classes_RemoteController::deleteFocusPage(array('user_post_id' => $user_post_id));
412
- SQ_Classes_Error::setError(__('The focus page is deleted', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
413
  } else {
414
- SQ_Classes_Error::setError(__('Invalid params!', _SQ_PLUGIN_NAME_) . " <br /> ");
415
  }
416
 
417
  break;
150
  $this->focuspages[] = SQ_Classes_ObjController::getClass('SQ_Models_FocusPages')->parseFocusPage($focuspage, $labels)->getFocusPage();
151
 
152
  } elseif ($focuspage->user_post_id) {
153
+ SQ_Classes_Error::setError(esc_html__("Focus Page does not exist or was deleted from your website.", _SQ_PLUGIN_NAME_));
154
  SQ_Classes_RemoteController::deleteFocusPage(array('user_post_id' => $focuspage->user_post_id));
155
  }
156
  }
297
  $json['error'] = SQ_Classes_Error::getError();
298
  }
299
 
300
+ echo wp_json_encode($json);
301
  exit();
302
 
303
  case 'sq_focuspages_getpage':
318
  $json['error'] = SQ_Classes_Error::getError();
319
  }
320
 
321
+ echo wp_json_encode($json);
322
  exit();
323
  case 'sq_focuspages_addnew':
324
  if (!current_user_can('sq_manage_focuspages')) {
342
  $args['permalink'] = $post->url;
343
  if ($focuspage = SQ_Classes_RemoteController::addFocusPage($args)) {
344
  if (!is_wp_error($focuspage)) {
345
+ SQ_Classes_Error::setError(esc_html__("Focus page is added. The audit may take a while so please be patient.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
346
  if (isset($focuspage->user_post_id)) {
347
  set_transient('sq_auditpage_' . $focuspage->user_post_id, time());
348
 
349
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
350
  }
351
  } elseif ($focuspage->get_error_message() == 'limit_exceed') {
352
+ SQ_Classes_Error::setError(esc_html__("You reached the maximum number of focus pages for all your websites.", _SQ_PLUGIN_NAME_) . " <br /> ");
353
  }
354
  } else {
355
+ SQ_Classes_Error::setError(esc_html__("Error! Could not add the focus page.", _SQ_PLUGIN_NAME_) . " <br /> ");
356
  }
357
  } else {
358
+ SQ_Classes_Error::setError(esc_html__("Error! This focus page is not public.", _SQ_PLUGIN_NAME_) . " <br /> ");
359
  }
360
 
361
  } else {
362
+ SQ_Classes_Error::setError(esc_html__("Error! Could not find the focus page in your website.", _SQ_PLUGIN_NAME_) . " <br /> ");
363
  }
364
  break;
365
  case 'sq_focuspages_update':
386
  if ($focuspage = SQ_Classes_RemoteController::updateFocusPage($args)) {
387
 
388
  if (!is_wp_error($focuspage)) {
389
+ SQ_Classes_Error::setError(esc_html__("Focus page sent for recheck. It may take a while so please be patient.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
390
  set_transient('sq_auditpage_' . $user_post_id, time());
391
  } elseif ($focuspage->get_error_message() == 'too_many_attempts') {
392
+ SQ_Classes_Error::setError(esc_html__("You've made too many requests, please wait a few minutes.", _SQ_PLUGIN_NAME_) . " <br /> ");
393
  }
394
 
395
  } else {
396
+ SQ_Classes_Error::setError(esc_html__("You've made too many requests, please wait a few minutes.", _SQ_PLUGIN_NAME_) . " <br /> ");
397
  set_transient('sq_auditpage_' . $user_post_id, time());
398
  }
399
 
400
  } else {
401
+ SQ_Classes_Error::setError(esc_html__("Error! Could not find the focus page in your website.", _SQ_PLUGIN_NAME_) . " <br /> ");
402
  }
403
  }
404
  break;
409
 
410
  if ($user_post_id = SQ_Classes_Helpers_Tools::getValue('id', false)) {
411
  SQ_Classes_RemoteController::deleteFocusPage(array('user_post_id' => $user_post_id));
412
+ SQ_Classes_Error::setError(esc_html__("The focus page is deleted", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
413
  } else {
414
+ SQ_Classes_Error::setError(esc_html__("Invalid params!", _SQ_PLUGIN_NAME_) . " <br /> ");
415
  }
416
 
417
  break;
controllers/Frontend.php CHANGED
@@ -130,7 +130,7 @@ class SQ_Controllers_Frontend extends SQ_Classes_FrontController {
130
  if (is_feed()) {
131
  $find = $replace = $urls = array();
132
 
133
- @preg_match_all('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $content, $out);
134
  if (is_array($out)) {
135
  if (!is_array($out[1]) || empty($out[1]))
136
  return $content;
@@ -144,7 +144,7 @@ class SQ_Controllers_Frontend extends SQ_Classes_FrontController {
144
  }
145
  }
146
 
147
- @preg_match_all('/<a[^>]*href=[\'"]([^\'"]+)[\'"][^>]*>/i', $content, $out);
148
  if (is_array($out)) {
149
  if (!is_array($out[1]) || empty($out[1]))
150
  return $content;
@@ -179,7 +179,7 @@ class SQ_Controllers_Frontend extends SQ_Classes_FrontController {
179
  * Hook the footer
180
  */
181
  public function hookFrontfooter() {
182
- echo $this->model->getFooter();
183
  }
184
 
185
  /**
130
  if (is_feed()) {
131
  $find = $replace = $urls = array();
132
 
133
+ preg_match_all('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $content, $out);
134
  if (is_array($out)) {
135
  if (!is_array($out[1]) || empty($out[1]))
136
  return $content;
144
  }
145
  }
146
 
147
+ preg_match_all('/<a[^>]*href=[\'"]([^\'"]+)[\'"][^>]*>/i', $content, $out);
148
  if (is_array($out)) {
149
  if (!is_array($out[1]) || empty($out[1]))
150
  return $content;
179
  * Hook the footer
180
  */
181
  public function hookFrontfooter() {
182
+ echo (string)$this->model->getFooter();
183
  }
184
 
185
  /**
controllers/Menu.php CHANGED
@@ -29,6 +29,12 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
29
  //Hook the Frontend Editors
30
  $this->hookBuilders();
31
  }
 
 
 
 
 
 
32
  }
33
 
34
  /**
@@ -120,7 +126,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
120
  flush_rewrite_rules();
121
  }
122
  } catch (Exception $e) {
123
- SQ_Classes_Error::setMessage(sprintf(__("An error occurred during activation. If this error persists, please contact us at: %s", _SQ_PLUGIN_NAME_), _SQ_SUPPORT_URL_));
124
  }
125
 
126
 
@@ -159,7 +165,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
159
  $wp_admin_bar->add_node(array(
160
  'parent' => 'site-name',
161
  'id' => 'dashboard',
162
- 'title' => __('Dashboard'),
163
  'href' => admin_url(),
164
  ));
165
  }
@@ -184,7 +190,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
184
 
185
  $wp_admin_bar->add_node(array(
186
  'id' => 'sq_toolbar',
187
- 'title' => '<span class="sq_logo" style="margin-right: 2px"></span>' . __('Squirrly SEO', _SQ_PLUGIN_NAME_) . (($errors) ? '<span class="sq_errorcount">' . $errors . '</span>' : ''),
188
  'href' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'),
189
  'parent' => false
190
  ));
@@ -258,7 +264,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
258
  }
259
 
260
  $this->model->addMeta(array('sq_blocksnippet',
261
- ucfirst(_SQ_NAME_) . ' ' . __('SEO Snippet', _SQ_PLUGIN_NAME_),
262
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Snippet'), 'init'),
263
  null,
264
  'normal',
@@ -273,7 +279,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
273
 
274
  $wp_admin_bar->add_node(array(
275
  'id' => 'sq_bar_menu',
276
- 'title' => $style . '<span class="sq_logo"></span> ' . __('Custom SEO', _SQ_PLUGIN_NAME_),
277
  'parent' => 'top-secondary',
278
  ));
279
 
@@ -295,7 +301,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
295
  public function hookDashboardSetup() {
296
  wp_add_dashboard_widget(
297
  'sq_dashboard_widget',
298
- __('Squirrly SEO', _SQ_PLUGIN_NAME_),
299
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Dashboard'), 'dashboard')
300
  );
301
 
@@ -330,7 +336,7 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
330
 
331
  ///////////////
332
  $this->model->addMenu(array(ucfirst(_SQ_NAME_),
333
- __('Squirrly SEO', _SQ_PLUGIN_NAME_) . (($errors) ? '<span class="sq_errorcount">' . $errors . '</span>' : ''),
334
  'edit_posts',
335
  'sq_dashboard',
336
  null,
@@ -338,8 +344,8 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
338
  ));
339
 
340
  $this->model->addSubmenu(array('sq_none',
341
- __('Squirrly Onboarding', _SQ_PLUGIN_NAME_),
342
- __('Onboarding', _SQ_PLUGIN_NAME_),
343
  'edit_posts',
344
  'sq_onboarding',
345
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Onboarding'), 'init')
@@ -368,8 +374,8 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
368
  }
369
 
370
  $this->model->addSubmenu(array('sq_dashboard',
371
- __("Import & Export SEO", _SQ_PLUGIN_NAME_),
372
- __("Import SEO", _SQ_PLUGIN_NAME_),
373
  'sq_manage_settings',
374
  'sq_import',
375
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_SeoSettings'), 'init')
@@ -379,8 +385,8 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
379
  if (current_user_can('sq_manage_settings')) {
380
  if (SQ_Classes_Helpers_Tools::getMenuVisible('show_account_info')) {
381
  $this->model->addSubmenu(array('sq_dashboard',
382
- __('Squirrly Account Info', _SQ_PLUGIN_NAME_),
383
- __('Account Info', _SQ_PLUGIN_NAME_),
384
  'manage_options',
385
  'sq_account',
386
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Account'), 'init')
@@ -389,8 +395,8 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController {
389
  }
390
 
391
  $this->model->addSubmenu(array('sq_dashboard',
392
- __('Squirrly How To & Support', _SQ_PLUGIN_NAME_),
393
- __('Help & Support', _SQ_PLUGIN_NAME_),
394
  'edit_posts',
395
  'sq_help',
396
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Help'), 'init')
29
  //Hook the Frontend Editors
30
  $this->hookBuilders();
31
  }
32
+
33
+ add_action( 'current_screen', function () {
34
+ if (in_array( get_current_screen()->id, array('plugins', 'plugins-network') )) {
35
+ SQ_Classes_ObjController::getClass('SQ_Controllers_Uninstall');
36
+ }
37
+ } );
38
  }
39
 
40
  /**
126
  flush_rewrite_rules();
127
  }
128
  } catch (Exception $e) {
129
+ SQ_Classes_Error::setMessage(sprintf(esc_html__("An error occurred during activation. If this error persists, please contact us at: %s", _SQ_PLUGIN_NAME_), _SQ_SUPPORT_URL_));
130
  }
131
 
132
 
165
  $wp_admin_bar->add_node(array(
166
  'parent' => 'site-name',
167
  'id' => 'dashboard',
168
+ 'title' => esc_html__("Dashboard"),
169
  'href' => admin_url(),
170
  ));
171
  }
190
 
191
  $wp_admin_bar->add_node(array(
192
  'id' => 'sq_toolbar',
193
+ 'title' => '<span class="sq_logo" style="margin-right: 2px"></span>' . esc_html__("Squirrly SEO", _SQ_PLUGIN_NAME_) . (($errors) ? '<span class="sq_errorcount">' . $errors . '</span>' : ''),
194
  'href' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'),
195
  'parent' => false
196
  ));
264
  }
265
 
266
  $this->model->addMeta(array('sq_blocksnippet',
267
+ ucfirst(_SQ_NAME_) . ' ' . esc_html__("SEO Snippet", _SQ_PLUGIN_NAME_),
268
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Snippet'), 'init'),
269
  null,
270
  'normal',
279
 
280
  $wp_admin_bar->add_node(array(
281
  'id' => 'sq_bar_menu',
282
+ 'title' => $style . '<span class="sq_logo"></span> ' . esc_html__("Custom SEO", _SQ_PLUGIN_NAME_),
283
  'parent' => 'top-secondary',
284
  ));
285
 
301
  public function hookDashboardSetup() {
302
  wp_add_dashboard_widget(
303
  'sq_dashboard_widget',
304
+ esc_html__("Squirrly SEO", _SQ_PLUGIN_NAME_),
305
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Dashboard'), 'dashboard')
306
  );
307
 
336
 
337
  ///////////////
338
  $this->model->addMenu(array(ucfirst(_SQ_NAME_),
339
+ esc_html__("Squirrly SEO", _SQ_PLUGIN_NAME_) . (($errors) ? '<span class="sq_errorcount">' . $errors . '</span>' : ''),
340
  'edit_posts',
341
  'sq_dashboard',
342
  null,
344
  ));
345
 
346
  $this->model->addSubmenu(array('sq_none',
347
+ esc_html__("Squirrly Onboarding", _SQ_PLUGIN_NAME_),
348
+ esc_html__("Onboarding", _SQ_PLUGIN_NAME_),
349
  'edit_posts',
350
  'sq_onboarding',
351
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Onboarding'), 'init')
374
  }
375
 
376
  $this->model->addSubmenu(array('sq_dashboard',
377
+ esc_html__("Import & Export SEO", _SQ_PLUGIN_NAME_),
378
+ esc_html__("Import SEO", _SQ_PLUGIN_NAME_),
379
  'sq_manage_settings',
380
  'sq_import',
381
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_SeoSettings'), 'init')
385
  if (current_user_can('sq_manage_settings')) {
386
  if (SQ_Classes_Helpers_Tools::getMenuVisible('show_account_info')) {
387
  $this->model->addSubmenu(array('sq_dashboard',
388
+ esc_html__("Squirrly Account Info", _SQ_PLUGIN_NAME_),
389
+ esc_html__("Account Info", _SQ_PLUGIN_NAME_),
390
  'manage_options',
391
  'sq_account',
392
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Account'), 'init')
395
  }
396
 
397
  $this->model->addSubmenu(array('sq_dashboard',
398
+ esc_html__("Squirrly How To & Support", _SQ_PLUGIN_NAME_),
399
+ esc_html__("Help & Support", _SQ_PLUGIN_NAME_),
400
  'edit_posts',
401
  'sq_help',
402
  array(SQ_Classes_ObjController::getClass('SQ_Controllers_Help'), 'init')
controllers/Overview.php CHANGED
@@ -53,7 +53,7 @@ class SQ_Controllers_Overview extends SQ_Classes_FrontController {
53
  <input type="hidden" name="alert" value="sq_alert_overview"/>
54
  <button type="submit" class="btn float-right bg-transparent p-0 m-0">x</button>
55
  </form>
56
- <?php echo sprintf(__("Detected %s: We encourage you to %sImport the Settings and SEO%s from %s and deactivate %s to increase the page loading speed for better Google ranking.", _SQ_PLUGIN_NAME_), '<strong>' . $plugin . '</strong>', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'backup') . '" style="font-weight: bold;" >', '</a>', $plugin, $plugin); ?>
57
  </div>
58
  <?php
59
  break;
53
  <input type="hidden" name="alert" value="sq_alert_overview"/>
54
  <button type="submit" class="btn float-right bg-transparent p-0 m-0">x</button>
55
  </form>
56
+ <?php echo sprintf(esc_html__("Detected %s: We encourage you to %sImport the Settings and SEO%s from %s and deactivate %s to increase the page loading speed for better Google ranking.", _SQ_PLUGIN_NAME_), '<strong>' . $plugin . '</strong>', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'backup') . '" style="font-weight: bold;" >', '</a>', $plugin, $plugin); ?>
57
  </div>
58
  <?php
59
  break;
controllers/Patterns.php CHANGED
@@ -7,20 +7,20 @@ class SQ_Controllers_Patterns extends SQ_Classes_FrontController {
7
  public $patterns;
8
 
9
  public function init() {
10
- if(is_rtl()){
11
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('sqbootstrap.rtl', array('trigger' => true, 'media' => 'all'));
12
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('rtl', array('trigger' => true, 'media' => 'all'));
13
- }else{
14
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('sqbootstrap', array('trigger' => true, 'media' => 'all'));
15
  }
16
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('patterns', array('trigger' => true, 'media' => 'all'));
17
 
18
  echo '
19
  <script>
20
- jQuery.sq_patterns_list = jQuery.parseJSON("' . addslashes(SQ_ALL_PATTERNS) . '");
21
- var __sq_save_message = "' . __('Saved!', _SQ_PLUGIN_NAME_) . '";
22
- var __sq_save_message_preview = "' . __('Saved! This is how the preview looks like', _SQ_PLUGIN_NAME_) . '";
23
- </script>';
24
  }
25
 
26
  /**
@@ -72,16 +72,18 @@ class SQ_Controllers_Patterns extends SQ_Classes_FrontController {
72
  $object->$name = preg_replace('/%%([^\%]+)%%/s', '{{$1}}', $object->$name);
73
  }
74
 
75
- if (@strpos($value, '{{') !== false && @strpos($value, '}}') !== false) {
76
- $sq_with_patterns[$name] = $value;
 
 
77
  }
78
  }
79
  }
80
  if (!empty($sq_with_patterns)) {
81
  foreach ($this->patterns->getPatterns() as $key => $pattern) {
82
  foreach ($sq_with_patterns as $name => $value) {
83
- if ($name <> '' && $value <> '') {
84
- if (@strpos($value, $pattern) !== false) {
85
  $object->$name = str_replace($pattern, $this->patterns->$key, $object->$name);
86
  }
87
  }
@@ -102,9 +104,9 @@ class SQ_Controllers_Patterns extends SQ_Classes_FrontController {
102
  parent::action();
103
 
104
  if (!current_user_can('sq_manage_snippet')) {
105
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
106
  SQ_Classes_Helpers_Tools::setHeader('json');
107
- echo json_encode($response);
108
  exit();
109
  }
110
 
@@ -138,7 +140,7 @@ class SQ_Controllers_Patterns extends SQ_Classes_FrontController {
138
  SQ_Classes_Helpers_Tools::setHeader('json');
139
 
140
  if (SQ_Classes_Helpers_Tools::getValue('sq_debug') !== 'on') {
141
- echo json_encode(array('json' => json_encode($all_patterns)));
142
  } else {
143
  SQ_Debug::dump($all_patterns, $patterns);
144
  }
7
  public $patterns;
8
 
9
  public function init() {
10
+ if (is_rtl()) {
11
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('sqbootstrap.rtl', array('trigger' => true, 'media' => 'all'));
12
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('rtl', array('trigger' => true, 'media' => 'all'));
13
+ } else {
14
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('sqbootstrap', array('trigger' => true, 'media' => 'all'));
15
  }
16
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('patterns', array('trigger' => true, 'media' => 'all'));
17
 
18
  echo '
19
  <script>
20
+ jQuery.sq_patterns_list = jQuery.parseJSON("' . addslashes(SQ_ALL_PATTERNS) . '");
21
+ var __sq_save_message = "' . esc_html__("Saved!", _SQ_PLUGIN_NAME_) . '";
22
+ var __sq_save_message_preview = "' . esc_html__("Saved! This is how the preview looks like", _SQ_PLUGIN_NAME_) . '";
23
+ </script>';
24
  }
25
 
26
  /**
72
  $object->$name = preg_replace('/%%([^\%]+)%%/s', '{{$1}}', $object->$name);
73
  }
74
 
75
+ if(is_string($value) && $value <> '') {
76
+ if (strpos($value, '{{') !== false && strpos($value, '}}') !== false) {
77
+ $sq_with_patterns[$name] = $value;
78
+ }
79
  }
80
  }
81
  }
82
  if (!empty($sq_with_patterns)) {
83
  foreach ($this->patterns->getPatterns() as $key => $pattern) {
84
  foreach ($sq_with_patterns as $name => $value) {
85
+ if ($name <> '' && is_string($value) && $value <> '' && $pattern <> '') {
86
+ if (strpos($value, $pattern) !== false) {
87
  $object->$name = str_replace($pattern, $this->patterns->$key, $object->$name);
88
  }
89
  }
104
  parent::action();
105
 
106
  if (!current_user_can('sq_manage_snippet')) {
107
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
108
  SQ_Classes_Helpers_Tools::setHeader('json');
109
+ echo wp_json_encode($response);
110
  exit();
111
  }
112
 
140
  SQ_Classes_Helpers_Tools::setHeader('json');
141
 
142
  if (SQ_Classes_Helpers_Tools::getValue('sq_debug') !== 'on') {
143
+ echo wp_json_encode(array('json' => wp_json_encode($all_patterns)));
144
  } else {
145
  SQ_Debug::dump($all_patterns, $patterns);
146
  }
controllers/Post.php CHANGED
@@ -10,7 +10,7 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
10
 
11
  //Load post style in post edit
12
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('post');
13
- if(is_rtl()) {
14
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('rtl');
15
  }
16
  //load the draggable script in post edit for the floating SLA
@@ -41,10 +41,10 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
41
  }
42
 
43
  //Make sure the URL is local and not changed by other plugins
44
- add_filter('sq_homeurl', function ($url){
45
- if(defined('WP_HOME')) {
46
  return WP_HOME;
47
- }else {
48
  return get_option('home');
49
  }
50
  });
@@ -92,8 +92,6 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
92
 
93
  //if the option to save the images locally is set on
94
  if (SQ_Classes_Helpers_Tools::getOption('sq_local_images')) {
95
- @set_time_limit(90);
96
-
97
  $urls = array();
98
  if (function_exists('preg_match_all')) {
99
  @preg_match_all('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', stripslashes($post_data['post_content']), $out);
@@ -120,7 +118,9 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
120
  return $post_data;
121
  }
122
 
123
- $urls = @array_unique($urls);
 
 
124
 
125
  $time = microtime(true);
126
  foreach ($urls as $url) {
@@ -253,18 +253,20 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
253
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
254
  case 'sq_create_demo':
255
  if (!current_user_can('sq_manage_snippet')) {
256
- SQ_Classes_Error::setError(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
257
  break;
258
  }
259
 
260
  $post_type = 'post';
261
  if (post_type_exists($post_type)) {
262
- if (file_exists(_SQ_ROOT_DIR_ . 'demo.json')) {
263
- $json = json_decode(file_get_contents(_SQ_ROOT_DIR_ . 'demo.json'));
 
264
 
265
- if (isset($json->demo->title) && isset($json->demo->content)) {
266
- @setrawcookie('sq_keyword', rawurlencode($json->demo->keyword), strtotime('+1 hour'), COOKIEPATH, COOKIE_DOMAIN, is_ssl());
267
 
 
268
  $args = array();
269
  $args['s'] = '"' . addslashes($json->demo->title) . '"';
270
  $args['post_type'] = $post_type;
@@ -285,14 +287,14 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
285
 
286
  if ($post_id = wp_insert_post($post)) {
287
  if (!is_wp_error($post_id)) {
288
- wp_redirect(admin_url("post.php?post=" . $post_id . "&action=edit&post_type=" . $post_type));
289
  exit();
290
 
291
  }
292
  }
293
  } else {
294
  foreach ($posts as $post) {
295
- wp_redirect(admin_url("post.php?post=" . $post->ID . "&action=edit&post_type=" . $post_type));
296
  exit();
297
  }
298
  }
@@ -300,15 +302,15 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
300
  }
301
  }
302
  }
303
- SQ_Classes_Error::setError(__('Could not add the demo post.', _SQ_PLUGIN_NAME_));
304
  break;
305
 
306
  /**************************** AJAX CALLS *************************/
307
  case 'sq_ajax_save_ogimage':
308
  if (!current_user_can('sq_manage_snippet')) {
309
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
310
  SQ_Classes_Helpers_Tools::setHeader('json');
311
- echo json_encode($response);
312
  exit();
313
  }
314
 
@@ -332,14 +334,14 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
332
  SQ_Classes_Helpers_Tools::setHeader('json');
333
  SQ_Classes_Helpers_Tools::emptyCache();
334
 
335
- echo json_encode($return);
336
  exit();
337
  case 'sq_ajax_save_post':
338
  SQ_Classes_Helpers_Tools::setHeader('json');
339
 
340
  if (!current_user_can('sq_manage_snippet')) {
341
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
342
- echo json_encode($response);
343
  exit();
344
  }
345
 
@@ -360,21 +362,21 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
360
  if ($referer) update_post_meta($post_id, '_sq_sla', $referer);
361
  }
362
 
363
- echo json_encode($post->toArray());
364
  } else {
365
- $response['error'] = SQ_Classes_Error::showNotices(__("Can't get the post URL", _SQ_PLUGIN_NAME_), 'sq_error');
366
  SQ_Classes_Helpers_Tools::setHeader('json');
367
- echo json_encode($response);
368
  }
369
 
370
- echo json_encode(array());
371
  exit();
372
  case 'sq_ajax_get_post':
373
  SQ_Classes_Helpers_Tools::setHeader('json');
374
 
375
  if (!current_user_can('sq_manage_snippet')) {
376
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
377
- echo json_encode($response);
378
  exit();
379
  }
380
 
@@ -385,16 +387,16 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
385
  if ($post->post_status <> 'publish') {
386
  $post->url = sanitize_title($post->post_title);
387
  }
388
- echo json_encode($post->toArray());
389
  } else {
390
- $response['error'] = SQ_Classes_Error::showNotices(__("Can't get the post URL", _SQ_PLUGIN_NAME_), 'sq_error');
391
  SQ_Classes_Helpers_Tools::setHeader('json');
392
- echo json_encode($response);
393
  }
394
  } else {
395
- $response['error'] = SQ_Classes_Error::showNotices(__("Invalid request", _SQ_PLUGIN_NAME_), 'sq_error');
396
  SQ_Classes_Helpers_Tools::setHeader('json');
397
- echo json_encode($response);
398
  }
399
  exit();
400
  case 'sq_ajax_type_click':
@@ -428,7 +430,7 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
428
  }
429
  }
430
 
431
- echo json_encode($responce);
432
  exit();
433
  }
434
  }
@@ -512,7 +514,7 @@ class SQ_Controllers_Post extends SQ_Classes_FrontController {
512
 
513
  $elementor = (SQ_Classes_Helpers_Tools::getValue('action', false) == 'elementor');
514
 
515
- if (($elementor && is_admin()) ) {
516
  global $post;
517
 
518
  if (isset($post->ID) && isset($post->post_type)) {
10
 
11
  //Load post style in post edit
12
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('post');
13
+ if (is_rtl()) {
14
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('rtl');
15
  }
16
  //load the draggable script in post edit for the floating SLA
41
  }
42
 
43
  //Make sure the URL is local and not changed by other plugins
44
+ add_filter('sq_homeurl', function ($url) {
45
+ if (defined('WP_HOME')) {
46
  return WP_HOME;
47
+ } else {
48
  return get_option('home');
49
  }
50
  });
92
 
93
  //if the option to save the images locally is set on
94
  if (SQ_Classes_Helpers_Tools::getOption('sq_local_images')) {
 
 
95
  $urls = array();
96
  if (function_exists('preg_match_all')) {
97
  @preg_match_all('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', stripslashes($post_data['post_content']), $out);
118
  return $post_data;
119
  }
120
 
121
+ if (count((array)$urls) > 1) {
122
+ $urls = array_unique($urls);
123
+ }
124
 
125
  $time = microtime(true);
126
  foreach ($urls as $url) {
253
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
254
  case 'sq_create_demo':
255
  if (!current_user_can('sq_manage_snippet')) {
256
+ SQ_Classes_Error::setError(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
257
  break;
258
  }
259
 
260
  $post_type = 'post';
261
  if (post_type_exists($post_type)) {
262
+ global $wp_filesystem;
263
+ require_once(ABSPATH . '/wp-admin/includes/file.php');
264
+ WP_Filesystem();
265
 
266
+ if ($wp_filesystem->exists(_SQ_ROOT_DIR_ . 'demo.json')) {
267
+ $json = json_decode($wp_filesystem->get_contents(_SQ_ROOT_DIR_ . 'demo.json'));
268
 
269
+ if (isset($json->demo->title) && isset($json->demo->content)) {
270
  $args = array();
271
  $args['s'] = '"' . addslashes($json->demo->title) . '"';
272
  $args['post_type'] = $post_type;
287
 
288
  if ($post_id = wp_insert_post($post)) {
289
  if (!is_wp_error($post_id)) {
290
+ wp_redirect(admin_url("post.php?post=" . $post_id . "&action=edit&post_type=" . $post_type . "&keyword=" . SQ_Classes_Helpers_Sanitize::escapeKeyword($json->demo->keyword, 'url')));
291
  exit();
292
 
293
  }
294
  }
295
  } else {
296
  foreach ($posts as $post) {
297
+ wp_redirect(admin_url("post.php?post=" . $post->ID . "&action=edit&post_type=" . $post_type . "&keyword=" . SQ_Classes_Helpers_Sanitize::escapeKeyword($json->demo->keyword, 'url')));
298
  exit();
299
  }
300
  }
302
  }
303
  }
304
  }
305
+ SQ_Classes_Error::setError(esc_html__("Could not add the demo post.", _SQ_PLUGIN_NAME_));
306
  break;
307
 
308
  /**************************** AJAX CALLS *************************/
309
  case 'sq_ajax_save_ogimage':
310
  if (!current_user_can('sq_manage_snippet')) {
311
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
312
  SQ_Classes_Helpers_Tools::setHeader('json');
313
+ echo wp_json_encode($response);
314
  exit();
315
  }
316
 
334
  SQ_Classes_Helpers_Tools::setHeader('json');
335
  SQ_Classes_Helpers_Tools::emptyCache();
336
 
337
+ echo wp_json_encode($return);
338
  exit();
339
  case 'sq_ajax_save_post':
340
  SQ_Classes_Helpers_Tools::setHeader('json');
341
 
342
  if (!current_user_can('sq_manage_snippet')) {
343
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
344
+ echo wp_json_encode($response);
345
  exit();
346
  }
347
 
362
  if ($referer) update_post_meta($post_id, '_sq_sla', $referer);
363
  }
364
 
365
+ echo wp_json_encode($post->toArray());
366
  } else {
367
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("Can't get the post URL", _SQ_PLUGIN_NAME_), 'sq_error');
368
  SQ_Classes_Helpers_Tools::setHeader('json');
369
+ echo wp_json_encode($response);
370
  }
371
 
372
+ echo wp_json_encode(array());
373
  exit();
374
  case 'sq_ajax_get_post':
375
  SQ_Classes_Helpers_Tools::setHeader('json');
376
 
377
  if (!current_user_can('sq_manage_snippet')) {
378
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
379
+ echo wp_json_encode($response);
380
  exit();
381
  }
382
 
387
  if ($post->post_status <> 'publish') {
388
  $post->url = sanitize_title($post->post_title);
389
  }
390
+ echo wp_json_encode($post->toArray());
391
  } else {
392
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("Can't get the post URL", _SQ_PLUGIN_NAME_), 'sq_error');
393
  SQ_Classes_Helpers_Tools::setHeader('json');
394
+ echo wp_json_encode($response);
395
  }
396
  } else {
397
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("Invalid request", _SQ_PLUGIN_NAME_), 'sq_error');
398
  SQ_Classes_Helpers_Tools::setHeader('json');
399
+ echo wp_json_encode($response);
400
  }
401
  exit();
402
  case 'sq_ajax_type_click':
430
  }
431
  }
432
 
433
+ echo wp_json_encode($responce);
434
  exit();
435
  }
436
  }
514
 
515
  $elementor = (SQ_Classes_Helpers_Tools::getValue('action', false) == 'elementor');
516
 
517
+ if (($elementor && is_admin())) {
518
  global $post;
519
 
520
  if (isset($post->ID) && isset($post->post_type)) {
controllers/PostsList.php CHANGED
@@ -71,8 +71,8 @@ class SQ_Controllers_PostsList extends SQ_Classes_FrontController {
71
  public function add_post_column($columns) {
72
  $this->loadHead(); //load the js only for post list
73
 
74
- $columns = $this->insert($columns, array($this->_column_id => __('SQ Snippet', _SQ_PLUGIN_NAME_)), $this->_pos);
75
- $columns = $this->insert($columns, array($this->_slacolumn_id => __('Optimized', _SQ_PLUGIN_NAME_)), $this->_pos);
76
 
77
  return $columns;
78
  }
@@ -114,7 +114,7 @@ class SQ_Controllers_PostsList extends SQ_Classes_FrontController {
114
  public function add_tax_column($columns) {
115
  $this->loadHead(); //load the js only for post list
116
 
117
- $columns = $this->insert($columns, array($this->_column_id => __('SQ Snippet', _SQ_PLUGIN_NAME_)), $this->_pos);
118
  return $columns;
119
  }
120
 
@@ -179,9 +179,9 @@ class SQ_Controllers_PostsList extends SQ_Classes_FrontController {
179
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
180
  case 'sq_ajax_postslist':
181
  if (!current_user_can('sq_manage_snippet')) {
182
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
183
  SQ_Classes_Helpers_Tools::setHeader('json');
184
- echo json_encode($response);
185
  exit();
186
  }
187
 
@@ -197,24 +197,24 @@ class SQ_Controllers_PostsList extends SQ_Classes_FrontController {
197
  $array = array();
198
  if($json->get_error_message() == 'no_data') {
199
  foreach ($posts as $post_id) {
200
- $array[$post_id] = __('Network Error. Please Refresh.',_SQ_PLUGIN_NAME_);
201
  }
202
  }elseif($json->get_error_message() == 'maintenance') {
203
  foreach ($posts as $post_id) {
204
- $array[$post_id] = sprintf(__("Maintenance. %sWe'll be back in a minute.",_SQ_PLUGIN_NAME_),'<br />');
205
  }
206
  }
207
 
208
- echo json_encode(array('posts' => $array));
209
  } else {
210
  $posts = $this->model->processPost($json, $post_type);
211
- echo json_encode(array('posts' => $posts));
212
  }
213
 
214
  exit();
215
  }
216
  }
217
- echo json_encode(array('posts' => array()));
218
  exit();
219
  }
220
  }
@@ -232,9 +232,9 @@ class SQ_Controllers_PostsList extends SQ_Classes_FrontController {
232
  if (strlen($posts) > 0) $posts = substr($posts, 0, strlen($posts) - 1);
233
 
234
  echo '<script>
235
- var __sq_ranknotpublic_text = "' . __('Not Public', _SQ_PLUGIN_NAME_) . '";
236
- var __sq_couldnotprocess_text = "' . __('Could not process', _SQ_PLUGIN_NAME_) . '";
237
- var __sq_subscriptionexpired_text = "' . __('The Squirrly subscription has expired!', _SQ_PLUGIN_NAME_) . '";
238
  var sq_posts = new Array(' . $posts . ');
239
  </script>';
240
 
71
  public function add_post_column($columns) {
72
  $this->loadHead(); //load the js only for post list
73
 
74
+ $columns = $this->insert($columns, array($this->_column_id => esc_html__("SQ Snippet", _SQ_PLUGIN_NAME_)), $this->_pos);
75
+ $columns = $this->insert($columns, array($this->_slacolumn_id => esc_html__("Optimized", _SQ_PLUGIN_NAME_)), $this->_pos);
76
 
77
  return $columns;
78
  }
114
  public function add_tax_column($columns) {
115
  $this->loadHead(); //load the js only for post list
116
 
117
+ $columns = $this->insert($columns, array($this->_column_id => esc_html__("SQ Snippet", _SQ_PLUGIN_NAME_)), $this->_pos);
118
  return $columns;
119
  }
120
 
179
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
180
  case 'sq_ajax_postslist':
181
  if (!current_user_can('sq_manage_snippet')) {
182
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
183
  SQ_Classes_Helpers_Tools::setHeader('json');
184
+ echo wp_json_encode($response);
185
  exit();
186
  }
187
 
197
  $array = array();
198
  if($json->get_error_message() == 'no_data') {
199
  foreach ($posts as $post_id) {
200
+ $array[$post_id] = esc_html__("Network Error. Please Refresh.",_SQ_PLUGIN_NAME_);
201
  }
202
  }elseif($json->get_error_message() == 'maintenance') {
203
  foreach ($posts as $post_id) {
204
+ $array[$post_id] = sprintf(esc_html__("Maintenance. %sWe'll be back in a minute.",_SQ_PLUGIN_NAME_),'<br />');
205
  }
206
  }
207
 
208
+ echo wp_json_encode(array('posts' => $array));
209
  } else {
210
  $posts = $this->model->processPost($json, $post_type);
211
+ echo wp_json_encode(array('posts' => $posts));
212
  }
213
 
214
  exit();
215
  }
216
  }
217
+ echo wp_json_encode(array('posts' => array()));
218
  exit();
219
  }
220
  }
232
  if (strlen($posts) > 0) $posts = substr($posts, 0, strlen($posts) - 1);
233
 
234
  echo '<script>
235
+ var __sq_ranknotpublic_text = "' . esc_html__("Not Public", _SQ_PLUGIN_NAME_) . '";
236
+ var __sq_couldnotprocess_text = "' . esc_html__("Could not process", _SQ_PLUGIN_NAME_) . '";
237
+ var __sq_subscriptionexpired_text = "' . esc_html__("The Squirrly subscription has expired!", _SQ_PLUGIN_NAME_) . '";
238
  var sq_posts = new Array(' . $posts . ');
239
  </script>';
240
 
controllers/Ranking.php CHANGED
@@ -81,7 +81,7 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
81
 
82
  if ($this->ranks = SQ_Classes_RemoteController::getRanks($args)) {
83
  if (is_wp_error($this->ranks)) {
84
- SQ_Classes_Error::setError(__('Could not load the Rankings.', _SQ_PLUGIN_NAME_));
85
  $this->ranks = array();
86
  }
87
  }
@@ -94,7 +94,7 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
94
 
95
  if ($this->suggested = SQ_Classes_RemoteController::syncGSC($args)) {
96
  if (is_wp_error($this->suggested)) {
97
- SQ_Classes_Error::setError(__('Could not load data.', _SQ_PLUGIN_NAME_));
98
  $this->suggested = array();
99
  }
100
  }
@@ -137,7 +137,7 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
137
  ///////////////////////////////
138
 
139
  //show the saved message
140
- SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
141
 
142
  break;
143
  case 'sq_serp_refresh_post':
@@ -146,9 +146,9 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
146
  $args = array();
147
  $args['keyword'] = $keyword;
148
  if (SQ_Classes_RemoteController::checkPostRank($args) === false) {
149
- SQ_Classes_Error::setError(sprintf(__('Could not refresh the rank. Please check your SERP credits %shere%s', _SQ_PLUGIN_NAME_), '<a href="' . SQ_Classes_RemoteController::getMySquirrlyLink('account') . '">', '</a>'));
150
  } else {
151
- SQ_Classes_Error::setMessage(sprintf(__('%s is queued and the rank will be checked soon.', _SQ_PLUGIN_NAME_), '<strong>' . $keyword . '</strong>'));
152
  }
153
  }
154
 
@@ -159,12 +159,12 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
159
  if ($keyword) {
160
  $response = SQ_Classes_RemoteController::deleteSerpKeyword(array('keyword' => $keyword));
161
  if (!is_wp_error($response)) {
162
- SQ_Classes_Error::setError(__('The keyword is deleted', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
163
  } else {
164
- SQ_Classes_Error::setError(__('Could not delete the keyword!', _SQ_PLUGIN_NAME_) . " <br /> ");
165
  }
166
  } else {
167
- SQ_Classes_Error::setError(__('Invalid params!', _SQ_PLUGIN_NAME_) . " <br /> ");
168
  }
169
  break;
170
  case 'sq_ajax_rank_bulk_delete':
@@ -180,9 +180,9 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
180
  }
181
  }
182
 
183
- echo json_encode( array( 'message' => __( 'Deleted!', _SQ_PLUGIN_NAME_ ) ) );
184
  } else {
185
- echo json_encode( array( 'error' => __( 'Invalid params!', _SQ_PLUGIN_NAME_ ) ) );
186
  }
187
  exit();
188
  case 'sq_ajax_rank_bulk_refresh':
@@ -197,10 +197,10 @@ class SQ_Controllers_Ranking extends SQ_Classes_FrontController {
197
  SQ_Classes_RemoteController::checkPostRank($args);
198
  }
199
 
200
- echo json_encode( array( 'message' => __( 'Sent!', _SQ_PLUGIN_NAME_ ) ) );
201
  }
202
  } else {
203
- echo json_encode( array( 'error' => __( 'Invalid params!', _SQ_PLUGIN_NAME_ ) ) );
204
  }
205
  exit();
206
 
81
 
82
  if ($this->ranks = SQ_Classes_RemoteController::getRanks($args)) {
83
  if (is_wp_error($this->ranks)) {
84
+ SQ_Classes_Error::setError(esc_html__("Could not load the Rankings.", _SQ_PLUGIN_NAME_));
85
  $this->ranks = array();
86
  }
87
  }
94
 
95
  if ($this->suggested = SQ_Classes_RemoteController::syncGSC($args)) {
96
  if (is_wp_error($this->suggested)) {
97
+ SQ_Classes_Error::setError(esc_html__("Could not load data.", _SQ_PLUGIN_NAME_));
98
  $this->suggested = array();
99
  }
100
  }
137
  ///////////////////////////////
138
 
139
  //show the saved message
140
+ SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
141
 
142
  break;
143
  case 'sq_serp_refresh_post':
146
  $args = array();
147
  $args['keyword'] = $keyword;
148
  if (SQ_Classes_RemoteController::checkPostRank($args) === false) {
149
+ SQ_Classes_Error::setError(sprintf(esc_html__("Could not refresh the rank. Please check your SERP credits %shere%s", _SQ_PLUGIN_NAME_), '<a href="' . SQ_Classes_RemoteController::getMySquirrlyLink('account') . '">', '</a>'));
150
  } else {
151
+ SQ_Classes_Error::setMessage(sprintf(esc_html__("%s is queued and the rank will be checked soon.", _SQ_PLUGIN_NAME_), '<strong>' . $keyword . '</strong>'));
152
  }
153
  }
154
 
159
  if ($keyword) {
160
  $response = SQ_Classes_RemoteController::deleteSerpKeyword(array('keyword' => $keyword));
161
  if (!is_wp_error($response)) {
162
+ SQ_Classes_Error::setError(esc_html__("The keyword is deleted.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
163
  } else {
164
+ SQ_Classes_Error::setError(esc_html__("Could not delete the keyword!", _SQ_PLUGIN_NAME_) . " <br /> ");
165
  }
166
  } else {
167
+ SQ_Classes_Error::setError(esc_html__("Invalid params!", _SQ_PLUGIN_NAME_) . " <br /> ");
168
  }
169
  break;
170
  case 'sq_ajax_rank_bulk_delete':
180
  }
181
  }
182
 
183
+ echo wp_json_encode( array( 'message' => esc_html__( "Deleted!", _SQ_PLUGIN_NAME_ ) ) );
184
  } else {
185
+ echo wp_json_encode( array( 'error' => esc_html__( "Invalid params!", _SQ_PLUGIN_NAME_ ) ) );
186
  }
187
  exit();
188
  case 'sq_ajax_rank_bulk_refresh':
197
  SQ_Classes_RemoteController::checkPostRank($args);
198
  }
199
 
200
+ echo wp_json_encode( array( 'message' => esc_html__( "Sent!", _SQ_PLUGIN_NAME_ ) ) );
201
  }
202
  } else {
203
+ echo wp_json_encode( array( 'error' => esc_html__( "Invalid params!", _SQ_PLUGIN_NAME_ ) ) );
204
  }
205
  exit();
206
 
controllers/Research.php CHANGED
@@ -101,7 +101,7 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
101
  if (isset($briefcase->keywords) && !empty($briefcase->keywords)) {
102
  $this->keywords = $briefcase->keywords;
103
  } else {
104
- $this->error = __('No keyword found.', _SQ_PLUGIN_NAME_);
105
  }
106
 
107
  if (isset($briefcase->labels)) {
@@ -175,14 +175,14 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
175
 
176
  case 'sq_briefcase_addkeyword':
177
  if (!current_user_can('sq_manage_snippet')) {
178
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
179
  SQ_Classes_Helpers_Tools::setHeader('json');
180
 
181
  if (SQ_Classes_Helpers_Tools::isAjax()) {
182
- echo json_encode($response);
183
  exit();
184
  } else {
185
- SQ_Classes_Error::setError(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_));
186
  }
187
  }
188
 
@@ -194,35 +194,35 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
194
  if ($keyword <> '') {
195
  //set ignore on API
196
  $args = array();
197
- $args['keyword'] = stripslashes($keyword);
198
  $args['do_serp'] = $do_serp;
199
  $args['is_hidden'] = $is_hidden;
200
  SQ_Classes_RemoteController::addBriefcaseKeyword($args);
201
 
202
  if (SQ_Classes_Helpers_Tools::isAjax()) {
203
  if ($do_serp) {
204
- echo json_encode(array('message' => __('Keyword Saved. The rank check will be ready in a minute.', _SQ_PLUGIN_NAME_)));
205
  } else {
206
- echo json_encode(array('message' => __('Keyword Saved!', _SQ_PLUGIN_NAME_)));
207
  }
208
  exit();
209
  } else {
210
- SQ_Classes_Error::setMessage(__('Keyword Saved!', _SQ_PLUGIN_NAME_));
211
  }
212
  } else {
213
  if (SQ_Classes_Helpers_Tools::isAjax()) {
214
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
215
  exit();
216
  } else {
217
- SQ_Classes_Error::setError(__('Invalid params!', _SQ_PLUGIN_NAME_));
218
  }
219
  }
220
  break;
221
  case 'sq_briefcase_deletekeyword':
222
  if (!current_user_can('sq_manage_settings')) {
223
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
224
  SQ_Classes_Helpers_Tools::setHeader('json');
225
- echo json_encode($response);
226
  exit();
227
  }
228
 
@@ -235,17 +235,17 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
235
  $args['keyword'] = stripslashes($keyword);
236
  SQ_Classes_RemoteController::removeBriefcaseKeyword($args);
237
 
238
- echo json_encode(array('message' => __('Deleted!', _SQ_PLUGIN_NAME_)));
239
  } else {
240
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
241
  }
242
  exit();
243
  /**********************************/
244
  case 'sq_briefcase_addlabel':
245
  if (!current_user_can('sq_manage_snippet')) {
246
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
247
  SQ_Classes_Helpers_Tools::setHeader('json');
248
- echo json_encode($response);
249
  exit();
250
  }
251
 
@@ -262,20 +262,20 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
262
  $json = SQ_Classes_RemoteController::addBriefcaseLabel($args);
263
 
264
  if (!is_wp_error($json)) {
265
- echo json_encode(array('saved' => __('Saved!', _SQ_PLUGIN_NAME_)));
266
  } else {
267
- echo json_encode(array('error' => $json->get_error_message()));
268
  }
269
 
270
  } else {
271
- echo json_encode(array('error' => __('Invalid Label or Color!', _SQ_PLUGIN_NAME_)));
272
  }
273
  exit();
274
  case 'sq_briefcase_editlabel':
275
  if (!current_user_can('sq_manage_snippet')) {
276
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
277
  SQ_Classes_Helpers_Tools::setHeader('json');
278
- echo json_encode($response);
279
  exit();
280
  }
281
 
@@ -293,16 +293,16 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
293
  $args['color'] = $color;
294
  SQ_Classes_RemoteController::saveBriefcaseLabel($args);
295
 
296
- echo json_encode(array('saved' => __('Saved!', _SQ_PLUGIN_NAME_)));
297
  } else {
298
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
299
  }
300
  exit();
301
  case 'sq_briefcase_deletelabel':
302
  if (!current_user_can('sq_manage_snippets')) {
303
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
304
  SQ_Classes_Helpers_Tools::setHeader('json');
305
- echo json_encode($response);
306
  exit();
307
  }
308
 
@@ -317,16 +317,16 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
317
  $args['id'] = $id;
318
  SQ_Classes_RemoteController::removeBriefcaseLabel($args);
319
 
320
- echo json_encode(array('deleted' => __('Deleted!', _SQ_PLUGIN_NAME_)));
321
  } else {
322
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
323
  }
324
  exit();
325
  case 'sq_briefcase_keywordlabel':
326
  if (!current_user_can('sq_manage_snippet')) {
327
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
328
  SQ_Classes_Helpers_Tools::setHeader('json');
329
- echo json_encode($response);
330
  exit();
331
  }
332
 
@@ -347,14 +347,14 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
347
  SQ_Classes_RemoteController::saveBriefcaseKeywordLabel($args);
348
 
349
  }
350
- echo json_encode(array('saved' => __('Saved!', _SQ_PLUGIN_NAME_)));
351
  } else {
352
- echo json_encode(array('error' => __('Invalid Keyword!', _SQ_PLUGIN_NAME_)));
353
  }
354
  exit();
355
  case 'sq_briefcase_backup':
356
  if (!current_user_can('sq_manage_settings')) {
357
- SQ_Classes_Error::setError(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
358
  return;
359
  }
360
 
@@ -375,7 +375,7 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
375
  exit();
376
  case 'sq_briefcase_restore':
377
  if (!current_user_can('sq_manage_settings')) {
378
- SQ_Classes_Error::setError(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
379
  return;
380
  }
381
 
@@ -408,7 +408,7 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
408
 
409
  while (($data = fgetcsv($fp, 1000, ";")) !== FALSE) {
410
  if (!isset($data[0]) || $data[0] == '' || strlen($data[0]) > 255 || is_numeric($data[0])) {
411
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
412
  break;
413
  }
414
 
@@ -422,7 +422,7 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
422
 
423
  while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
424
  if (!isset($data[0]) || $data[0] == '' || strlen($data[0]) > 255 || is_numeric($data[0])) {
425
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
426
  break;
427
  }
428
 
@@ -442,23 +442,23 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
442
  }
443
  }
444
 
445
- SQ_Classes_Error::setError(__('Great! The backup is restored.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
446
  } else {
447
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
448
  }
449
  } catch (Exception $e) {
450
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
451
  }
452
  } else {
453
- SQ_Classes_Error::setError(__('Error! You have to enter a previously saved backup file.', _SQ_PLUGIN_NAME_) . " <br /> ");
454
  }
455
  break;
456
  /************************************************* AJAX */
457
  case 'sq_ajax_briefcase_doserp':
458
  if (!current_user_can('sq_manage_settings')) {
459
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
460
  SQ_Classes_Helpers_Tools::setHeader('json');
461
- echo json_encode($response);
462
  exit();
463
  }
464
 
@@ -469,18 +469,18 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
469
 
470
  if ($keyword <> '') {
471
  $args = array();
472
- $args['keyword'] = stripslashes($keyword);
473
  if (SQ_Classes_RemoteController::addSerpKeyword($args) === false) {
474
- $json['error'] = SQ_Classes_Error::showNotices(__('Could not add the keyword to SERP Check. Please try again.', _SQ_PLUGIN_NAME_), 'sq_error');
475
  } else {
476
- $json['message'] = SQ_Classes_Error::showNotices(__('The keyword is added to SERP Check.', _SQ_PLUGIN_NAME_), 'sq_success');
477
  }
478
  } else {
479
- $json['error'] = SQ_Classes_Error::showNotices(__('Invalid parameters.', _SQ_PLUGIN_NAME_), 'sq_error');
480
  }
481
 
482
  SQ_Classes_Helpers_Tools::setHeader('json');
483
- echo json_encode($json);
484
  exit();
485
  case 'sq_ajax_research_others':
486
  SQ_Classes_Helpers_Tools::setHeader('json');
@@ -497,13 +497,13 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
497
 
498
  if (!is_wp_error($json)) {
499
  if(isset($json->keywords)) {
500
- echo json_encode(array('keywords' => $json->keywords));
501
  }
502
  } else {
503
- echo json_encode(array('error' => $json->get_error_message()));
504
  }
505
  } else {
506
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
507
  }
508
 
509
  exit();
@@ -534,22 +534,22 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
534
  }
535
 
536
  //research ready, return the results
537
- echo json_encode(array('done' => true, 'html' => $this->getView('Research/ResearchDetails')));
538
  } else {
539
  //still loading
540
- echo json_encode(array('done' => false));
541
  }
542
  } else {
543
  //show the keywords in results to be able to add them to brifcase
544
  $keywords = explode(',', $keywords);
545
  if (!empty($keywords)) {
546
  foreach ($keywords as $keyword) {
547
- $this->kr[] = json_decode(json_encode(array(
548
  'keyword' => $keyword,
549
  )));
550
  }
551
  }
552
- echo json_encode(array('done' => true, 'html' => $this->getView('Research/ResearchDetails')));
553
 
554
  }
555
  } elseif ($keywords) {
@@ -563,18 +563,18 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
563
  if (!is_wp_error($process)) {
564
  if(isset($process->id)) {
565
  //Get the briefcase keywords
566
- echo json_encode(array('done' => false, 'id' => $process->id));
567
 
568
  }
569
  } else {
570
  if ($process->get_error_code() == 'limit_exceeded') {
571
- echo json_encode(array('done' => true, 'error' => __('Keyword Research limit exceeded', _SQ_PLUGIN_NAME_)));
572
  } else {
573
- echo json_encode(array('done' => true, 'error' => $process->get_error_message()));
574
  }
575
  }
576
  } else {
577
- echo json_encode(array('done' => true, 'error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
578
  }
579
  exit();
580
  case 'sq_ajax_research_history':
@@ -599,17 +599,17 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
599
  }
600
  }
601
 
602
- echo json_encode(array('html' => $this->getView('Research/HistoryDetails')));
603
  } else {
604
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
605
  }
606
  exit();
607
 
608
  case 'sq_ajax_briefcase_bulk_delete':
609
  if (!current_user_can('sq_manage_settings')) {
610
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
611
  SQ_Classes_Helpers_Tools::setHeader('json');
612
- echo json_encode($response);
613
  exit();
614
  }
615
 
@@ -624,16 +624,16 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
624
  SQ_Classes_RemoteController::removeBriefcaseKeyword($args);
625
  }
626
 
627
- echo json_encode(array('message' => __('Deleted!', _SQ_PLUGIN_NAME_)));
628
  } else {
629
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
630
  }
631
  exit();
632
  case 'sq_ajax_briefcase_bulk_label':
633
  if (!current_user_can('sq_manage_settings')) {
634
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
635
  SQ_Classes_Helpers_Tools::setHeader('json');
636
- echo json_encode($response);
637
  exit();
638
  }
639
 
@@ -657,17 +657,17 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
657
  }
658
  }
659
 
660
- echo json_encode(array('message' => __('Saved!', _SQ_PLUGIN_NAME_)));
661
  } else {
662
- echo json_encode(array('error' => __('Invalid Keyword!', _SQ_PLUGIN_NAME_)));
663
  }
664
 
665
  exit();
666
  case 'sq_ajax_briefcase_bulk_doserp':
667
  if (!current_user_can('sq_manage_settings')) {
668
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
669
  SQ_Classes_Helpers_Tools::setHeader('json');
670
- echo json_encode($response);
671
  exit();
672
  }
673
 
@@ -678,22 +678,22 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
678
  if (!empty($keywords)) {
679
  foreach ($keywords as $keyword) {
680
  $args = array();
681
- $args['keyword'] = stripslashes($keyword);
682
  SQ_Classes_RemoteController::addSerpKeyword($args);
683
 
684
  }
685
 
686
- echo json_encode(array('message' => __('The keywords are added to SERP Check!', _SQ_PLUGIN_NAME_)));
687
  } else {
688
- echo json_encode(array('error' => __('Invalid Keyword!', _SQ_PLUGIN_NAME_)));
689
  }
690
  exit();
691
 
692
  case 'sq_ajax_labels_bulk_delete':
693
  if (!current_user_can('sq_manage_settings')) {
694
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
695
  SQ_Classes_Helpers_Tools::setHeader('json');
696
- echo json_encode($response);
697
  exit();
698
  }
699
 
@@ -709,9 +709,9 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController {
709
  }
710
  }
711
 
712
- echo json_encode(array('message' => __('Deleted!', _SQ_PLUGIN_NAME_)));
713
  } else {
714
- echo json_encode(array('error' => __('Invalid params!', _SQ_PLUGIN_NAME_)));
715
  }
716
  exit();
717
  }
101
  if (isset($briefcase->keywords) && !empty($briefcase->keywords)) {
102
  $this->keywords = $briefcase->keywords;
103
  } else {
104
+ $this->error = esc_html__("No keyword found.", _SQ_PLUGIN_NAME_);
105
  }
106
 
107
  if (isset($briefcase->labels)) {
175
 
176
  case 'sq_briefcase_addkeyword':
177
  if (!current_user_can('sq_manage_snippet')) {
178
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
179
  SQ_Classes_Helpers_Tools::setHeader('json');
180
 
181
  if (SQ_Classes_Helpers_Tools::isAjax()) {
182
+ echo wp_json_encode($response);
183
  exit();
184
  } else {
185
+ SQ_Classes_Error::setError(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_));
186
  }
187
  }
188
 
194
  if ($keyword <> '') {
195
  //set ignore on API
196
  $args = array();
197
+ $args['keyword'] = $keyword;
198
  $args['do_serp'] = $do_serp;
199
  $args['is_hidden'] = $is_hidden;
200
  SQ_Classes_RemoteController::addBriefcaseKeyword($args);
201
 
202
  if (SQ_Classes_Helpers_Tools::isAjax()) {
203
  if ($do_serp) {
204
+ echo wp_json_encode(array('message' => esc_html__("Keyword Saved. The rank check will be ready in a minute.", _SQ_PLUGIN_NAME_)));
205
  } else {
206
+ echo wp_json_encode(array('message' => esc_html__("Keyword Saved!", _SQ_PLUGIN_NAME_)));
207
  }
208
  exit();
209
  } else {
210
+ SQ_Classes_Error::setMessage(esc_html__("Keyword Saved!", _SQ_PLUGIN_NAME_));
211
  }
212
  } else {
213
  if (SQ_Classes_Helpers_Tools::isAjax()) {
214
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
215
  exit();
216
  } else {
217
+ SQ_Classes_Error::setError(esc_html__("Invalid params!", _SQ_PLUGIN_NAME_));
218
  }
219
  }
220
  break;
221
  case 'sq_briefcase_deletekeyword':
222
  if (!current_user_can('sq_manage_settings')) {
223
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
224
  SQ_Classes_Helpers_Tools::setHeader('json');
225
+ echo wp_json_encode($response);
226
  exit();
227
  }
228
 
235
  $args['keyword'] = stripslashes($keyword);
236
  SQ_Classes_RemoteController::removeBriefcaseKeyword($args);
237
 
238
+ echo wp_json_encode(array('message' => esc_html__("Deleted!", _SQ_PLUGIN_NAME_)));
239
  } else {
240
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
241
  }
242
  exit();
243
  /**********************************/
244
  case 'sq_briefcase_addlabel':
245
  if (!current_user_can('sq_manage_snippet')) {
246
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
247
  SQ_Classes_Helpers_Tools::setHeader('json');
248
+ echo wp_json_encode($response);
249
  exit();
250
  }
251
 
262
  $json = SQ_Classes_RemoteController::addBriefcaseLabel($args);
263
 
264
  if (!is_wp_error($json)) {
265
+ echo wp_json_encode(array('saved' => esc_html__("Saved!", _SQ_PLUGIN_NAME_)));
266
  } else {
267
+ echo wp_json_encode(array('error' => $json->get_error_message()));
268
  }
269
 
270
  } else {
271
+ echo wp_json_encode(array('error' => esc_html__("Invalid Label or Color!", _SQ_PLUGIN_NAME_)));
272
  }
273
  exit();
274
  case 'sq_briefcase_editlabel':
275
  if (!current_user_can('sq_manage_snippet')) {
276
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
277
  SQ_Classes_Helpers_Tools::setHeader('json');
278
+ echo wp_json_encode($response);
279
  exit();
280
  }
281
 
293
  $args['color'] = $color;
294
  SQ_Classes_RemoteController::saveBriefcaseLabel($args);
295
 
296
+ echo wp_json_encode(array('saved' => esc_html__("Saved!", _SQ_PLUGIN_NAME_)));
297
  } else {
298
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
299
  }
300
  exit();
301
  case 'sq_briefcase_deletelabel':
302
  if (!current_user_can('sq_manage_snippets')) {
303
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
304
  SQ_Classes_Helpers_Tools::setHeader('json');
305
+ echo wp_json_encode($response);
306
  exit();
307
  }
308
 
317
  $args['id'] = $id;
318
  SQ_Classes_RemoteController::removeBriefcaseLabel($args);
319
 
320
+ echo wp_json_encode(array('deleted' => esc_html__("Deleted!", _SQ_PLUGIN_NAME_)));
321
  } else {
322
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
323
  }
324
  exit();
325
  case 'sq_briefcase_keywordlabel':
326
  if (!current_user_can('sq_manage_snippet')) {
327
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
328
  SQ_Classes_Helpers_Tools::setHeader('json');
329
+ echo wp_json_encode($response);
330
  exit();
331
  }
332
 
347
  SQ_Classes_RemoteController::saveBriefcaseKeywordLabel($args);
348
 
349
  }
350
+ echo wp_json_encode(array('saved' => esc_html__("Saved!", _SQ_PLUGIN_NAME_)));
351
  } else {
352
+ echo wp_json_encode(array('error' => esc_html__("Invalid Keyword!", _SQ_PLUGIN_NAME_)));
353
  }
354
  exit();
355
  case 'sq_briefcase_backup':
356
  if (!current_user_can('sq_manage_settings')) {
357
+ SQ_Classes_Error::setError(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
358
  return;
359
  }
360
 
375
  exit();
376
  case 'sq_briefcase_restore':
377
  if (!current_user_can('sq_manage_settings')) {
378
+ SQ_Classes_Error::setError(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
379
  return;
380
  }
381
 
408
 
409
  while (($data = fgetcsv($fp, 1000, ";")) !== FALSE) {
410
  if (!isset($data[0]) || $data[0] == '' || strlen($data[0]) > 255 || is_numeric($data[0])) {
411
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
412
  break;
413
  }
414
 
422
 
423
  while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
424
  if (!isset($data[0]) || $data[0] == '' || strlen($data[0]) > 255 || is_numeric($data[0])) {
425
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
426
  break;
427
  }
428
 
442
  }
443
  }
444
 
445
+ SQ_Classes_Error::setError(esc_html__("Great! The backup is restored.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
446
  } else {
447
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
448
  }
449
  } catch (Exception $e) {
450
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
451
  }
452
  } else {
453
+ SQ_Classes_Error::setError(esc_html__("Error! You have to enter a previously saved backup file.", _SQ_PLUGIN_NAME_) . " <br /> ");
454
  }
455
  break;
456
  /************************************************* AJAX */
457
  case 'sq_ajax_briefcase_doserp':
458
  if (!current_user_can('sq_manage_settings')) {
459
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
460
  SQ_Classes_Helpers_Tools::setHeader('json');
461
+ echo wp_json_encode($response);
462
  exit();
463
  }
464
 
469
 
470
  if ($keyword <> '') {
471
  $args = array();
472
+ $args['keyword'] = $keyword;
473
  if (SQ_Classes_RemoteController::addSerpKeyword($args) === false) {
474
+ $json['error'] = SQ_Classes_Error::showNotices(esc_html__("Could not add the keyword to SERP Check. Please try again.", _SQ_PLUGIN_NAME_), 'sq_error');
475
  } else {
476
+ $json['message'] = SQ_Classes_Error::showNotices(esc_html__("The keyword is added to SERP Check.", _SQ_PLUGIN_NAME_), 'sq_success');
477
  }
478
  } else {
479
+ $json['error'] = SQ_Classes_Error::showNotices(esc_html__("Invalid parameters.", _SQ_PLUGIN_NAME_), 'sq_error');
480
  }
481
 
482
  SQ_Classes_Helpers_Tools::setHeader('json');
483
+ echo wp_json_encode($json);
484
  exit();
485
  case 'sq_ajax_research_others':
486
  SQ_Classes_Helpers_Tools::setHeader('json');
497
 
498
  if (!is_wp_error($json)) {
499
  if(isset($json->keywords)) {
500
+ echo wp_json_encode(array('keywords' => $json->keywords));
501
  }
502
  } else {
503
+ echo wp_json_encode(array('error' => $json->get_error_message()));
504
  }
505
  } else {
506
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
507
  }
508
 
509
  exit();
534
  }
535
 
536
  //research ready, return the results
537
+ echo wp_json_encode(array('done' => true, 'html' => $this->getView('Research/ResearchDetails')));
538
  } else {
539
  //still loading
540
+ echo wp_json_encode(array('done' => false));
541
  }
542
  } else {
543
  //show the keywords in results to be able to add them to brifcase
544
  $keywords = explode(',', $keywords);
545
  if (!empty($keywords)) {
546
  foreach ($keywords as $keyword) {
547
+ $this->kr[] = json_decode(wp_json_encode(array(
548
  'keyword' => $keyword,
549
  )));
550
  }
551
  }
552
+ echo wp_json_encode(array('done' => true, 'html' => $this->getView('Research/ResearchDetails')));
553
 
554
  }
555
  } elseif ($keywords) {
563
  if (!is_wp_error($process)) {
564
  if(isset($process->id)) {
565
  //Get the briefcase keywords
566
+ echo wp_json_encode(array('done' => false, 'id' => $process->id));
567
 
568
  }
569
  } else {
570
  if ($process->get_error_code() == 'limit_exceeded') {
571
+ echo wp_json_encode(array('done' => true, 'error' => esc_html__("Keyword Research limit exceeded", _SQ_PLUGIN_NAME_)));
572
  } else {
573
+ echo wp_json_encode(array('done' => true, 'error' => $process->get_error_message()));
574
  }
575
  }
576
  } else {
577
+ echo wp_json_encode(array('done' => true, 'error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
578
  }
579
  exit();
580
  case 'sq_ajax_research_history':
599
  }
600
  }
601
 
602
+ echo wp_json_encode(array('html' => $this->getView('Research/HistoryDetails')));
603
  } else {
604
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
605
  }
606
  exit();
607
 
608
  case 'sq_ajax_briefcase_bulk_delete':
609
  if (!current_user_can('sq_manage_settings')) {
610
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
611
  SQ_Classes_Helpers_Tools::setHeader('json');
612
+ echo wp_json_encode($response);
613
  exit();
614
  }
615
 
624
  SQ_Classes_RemoteController::removeBriefcaseKeyword($args);
625
  }
626
 
627
+ echo wp_json_encode(array('message' => esc_html__("Deleted!", _SQ_PLUGIN_NAME_)));
628
  } else {
629
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
630
  }
631
  exit();
632
  case 'sq_ajax_briefcase_bulk_label':
633
  if (!current_user_can('sq_manage_settings')) {
634
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
635
  SQ_Classes_Helpers_Tools::setHeader('json');
636
+ echo wp_json_encode($response);
637
  exit();
638
  }
639
 
657
  }
658
  }
659
 
660
+ echo wp_json_encode(array('message' => esc_html__("Saved!", _SQ_PLUGIN_NAME_)));
661
  } else {
662
+ echo wp_json_encode(array('error' => esc_html__("Invalid Keyword!", _SQ_PLUGIN_NAME_)));
663
  }
664
 
665
  exit();
666
  case 'sq_ajax_briefcase_bulk_doserp':
667
  if (!current_user_can('sq_manage_settings')) {
668
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
669
  SQ_Classes_Helpers_Tools::setHeader('json');
670
+ echo wp_json_encode($response);
671
  exit();
672
  }
673
 
678
  if (!empty($keywords)) {
679
  foreach ($keywords as $keyword) {
680
  $args = array();
681
+ $args['keyword'] = $keyword;
682
  SQ_Classes_RemoteController::addSerpKeyword($args);
683
 
684
  }
685
 
686
+ echo wp_json_encode(array('message' => esc_html__("The keywords are added to SERP Check!", _SQ_PLUGIN_NAME_)));
687
  } else {
688
+ echo wp_json_encode(array('error' => esc_html__("Invalid Keyword!", _SQ_PLUGIN_NAME_)));
689
  }
690
  exit();
691
 
692
  case 'sq_ajax_labels_bulk_delete':
693
  if (!current_user_can('sq_manage_settings')) {
694
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
695
  SQ_Classes_Helpers_Tools::setHeader('json');
696
+ echo wp_json_encode($response);
697
  exit();
698
  }
699
 
709
  }
710
  }
711
 
712
+ echo wp_json_encode(array('message' => esc_html__("Deleted!", _SQ_PLUGIN_NAME_)));
713
  } else {
714
+ echo wp_json_encode(array('error' => esc_html__("Invalid params!", _SQ_PLUGIN_NAME_)));
715
  }
716
  exit();
717
  }
controllers/SeoSettings.php CHANGED
@@ -156,7 +156,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
156
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
157
 
158
  //show the saved message
159
- if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
160
 
161
  break;
162
 
@@ -173,7 +173,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
173
 
174
 
175
  //show the saved message
176
- if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
177
 
178
  break;
179
  ///////////////////////////////////////////SEO SETTINGS METAS
@@ -197,7 +197,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
197
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
198
 
199
  //show the saved message
200
- if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
201
 
202
 
203
  break;
@@ -230,14 +230,13 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
230
  //delete other sitemap xml files from root
231
  if (SQ_Classes_Helpers_Tools::getOption('sq_auto_sitemap') && file_exists(ABSPATH . "/" . 'sitemap.xml')) {
232
  @rename(ABSPATH . "/" . 'sitemap.xml', ABSPATH . "/" . 'sitemap_ren' . time() . '.xml');
233
-
234
  }
235
 
236
  //reset the report time
237
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
238
 
239
  //show the saved message
240
- if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
241
 
242
  break;
243
 
@@ -266,7 +265,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
266
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
267
 
268
  //show the saved message
269
- if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
270
 
271
  break;
272
 
@@ -297,7 +296,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
297
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
298
 
299
  //show the saved message
300
- if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(__('Saved', _SQ_PLUGIN_NAME_));
301
 
302
 
303
  break;
@@ -340,9 +339,9 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
340
  //remove connection with Google Analytics
341
  $response = SQ_Classes_RemoteController::revokeGaConnection();
342
  if (!is_wp_error($response)) {
343
- SQ_Classes_Error::setError(__('Google Analytics account is disconnected.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
344
  } else {
345
- SQ_Classes_Error::setError(__('Error! Could not disconnect the account.', _SQ_PLUGIN_NAME_) . " <br /> ");
346
  }
347
  break;
348
  case 'sq_seosettings_gsc_revoke':
@@ -353,16 +352,16 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
353
  //remove connection with Google Search Console
354
  $response = SQ_Classes_RemoteController::revokeGscConnection();
355
  if (!is_wp_error($response)) {
356
- SQ_Classes_Error::setError(__('Google Search Console account is disconnected.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
357
  } else {
358
- SQ_Classes_Error::setError(__('Error! Could not disconnect the account.', _SQ_PLUGIN_NAME_) . " <br /> ");
359
  }
360
  break;
361
  case 'sq_seosettings_backupsettings':
362
  if (!current_user_can('sq_manage_settings')) {
363
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
364
  SQ_Classes_Helpers_Tools::setHeader('json');
365
- echo json_encode($response);
366
  exit();
367
  }
368
 
@@ -370,9 +369,9 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
370
  header("Content-Disposition: attachment; filename=squirrly-settings-" . gmdate('Y-m-d') . ".txt");
371
 
372
  if (function_exists('base64_encode')) {
373
- echo base64_encode(json_encode(SQ_Classes_Helpers_Tools::$options));
374
  } else {
375
- echo json_encode(SQ_Classes_Helpers_Tools::$options);
376
  }
377
  exit();
378
  case 'sq_seosettings_restoresettings':
@@ -407,15 +406,15 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
407
  //reset the report time
408
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
409
 
410
- SQ_Classes_Error::setError(__('Great! The backup is restored.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
411
  } else {
412
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
413
  }
414
  } catch (Exception $e) {
415
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
416
  }
417
  } else {
418
- SQ_Classes_Error::setError(__('Error! You have to enter a previously saved backup file.', _SQ_PLUGIN_NAME_) . " <br /> ");
419
  }
420
  break;
421
  case 'sq_seosettings_backupseo':
@@ -453,16 +452,16 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
453
  try {
454
  $queries = explode(";\n", $sql_file);
455
  SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->executeSql($queries);
456
- SQ_Classes_Error::setError(__('Great! The SEO backup is restored.', _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
457
 
458
  } catch (Exception $e) {
459
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
460
  }
461
  } else {
462
- SQ_Classes_Error::setError(__('Error! The backup is not valid.', _SQ_PLUGIN_NAME_) . " <br /> ");
463
  }
464
  } else {
465
- SQ_Classes_Error::setError(__('Error! You have to enter a previously saved backup file.', _SQ_PLUGIN_NAME_) . " <br /> ");
466
  }
467
  break;
468
  case 'sq_seosettings_importall':
@@ -490,9 +489,9 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
490
  }
491
  }
492
 
493
- SQ_Classes_Error::setMessage(sprintf(__('Success! The import from %s was completed successfully and your SEO is safe!', _SQ_PLUGIN_NAME_), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
494
  } catch (Exception $e) {
495
- SQ_Classes_Error::setMessage(__('Error! An error occured while import. Please try again.', _SQ_PLUGIN_NAME_));
496
  }
497
  }
498
  break;
@@ -504,9 +503,9 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
504
  $platform = SQ_Classes_Helpers_Tools::getValue('sq_import_platform', '');
505
  if ($platform <> '') {
506
  if (SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->importDBSettings($platform)) {
507
- SQ_Classes_Error::setMessage(__('All the Plugin settings were imported successfuly!', _SQ_PLUGIN_NAME_));
508
  } else {
509
- SQ_Classes_Error::setMessage(__('No settings found for this plugin/theme.', _SQ_PLUGIN_NAME_));
510
  }
511
  }
512
  break;
@@ -538,7 +537,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
538
  }
539
  }
540
 
541
- SQ_Classes_Error::setMessage(sprintf(__('Success! The import from %s was completed successfully and your SEO is safe!', _SQ_PLUGIN_NAME_), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
542
  }
543
  break;
544
  case 'sq_rollback':
@@ -558,7 +557,7 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
558
  $rollback->run();
559
 
560
  wp_die(
561
- '', __('Rollback to Previous Version', _SQ_PLUGIN_NAME_), [
562
  'response' => 200,
563
  ]
564
  );
@@ -576,8 +575,8 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
576
  SQ_Classes_Helpers_Tools::setHeader('json');
577
  $response = array();
578
  if (!current_user_can('sq_manage_settings')) {
579
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
580
- echo json_encode($response);
581
  exit();
582
  }
583
 
@@ -587,34 +586,34 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
587
 
588
  if (isset(SQ_Classes_Helpers_Tools::$options[$name])) {
589
  SQ_Classes_Helpers_Tools::saveOptions($name, $value);
590
- $response['data'] = SQ_Classes_Error::showNotices(__('Saved', _SQ_PLUGIN_NAME_), 'sq_success');
591
  } else {
592
- $response['data'] = SQ_Classes_Error::showNotices(__('Could not save the changes', _SQ_PLUGIN_NAME_), 'sq_error');
593
 
594
  }
595
 
596
- echo json_encode($response);
597
  exit();
598
  case 'sq_ajax_sla_sticky':
599
  SQ_Classes_Helpers_Tools::setHeader('json');
600
 
601
  $response = array();
602
  if (!current_user_can('sq_manage_snippet')) {
603
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
604
- echo json_encode($response);
605
  exit();
606
  }
607
 
608
  SQ_Classes_Helpers_Tools::saveUserMeta('sq_auto_sticky', (int)SQ_Classes_Helpers_Tools::getValue('sq_auto_sticky'));
609
- echo json_encode(array());
610
  exit();
611
  case 'sq_ajax_gsc_code':
612
  SQ_Classes_Helpers_Tools::setHeader('json');
613
 
614
  $response = array();
615
  if (!current_user_can('sq_manage_snippet')) {
616
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
617
- echo json_encode($response);
618
  exit();
619
  }
620
 
@@ -624,18 +623,18 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
624
  if (!is_wp_error($code) && $code) {
625
  $response['code'] = SQ_Classes_Helpers_Sanitize::checkGoogleWTCode($code);
626
  } else {
627
- $response['error'] = SQ_Classes_Error::showNotices(__('Error! Could not get the code. Connect to Google Search Console and validate the connection.', _SQ_PLUGIN_NAME_), 'sq_error');
628
  }
629
 
630
- echo json_encode($response);
631
  exit();
632
  case 'sq_ajax_ga_code':
633
  SQ_Classes_Helpers_Tools::setHeader('json');
634
 
635
  $response = array();
636
  if (!current_user_can('sq_manage_snippet')) {
637
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
638
- echo json_encode($response);
639
  exit();
640
  }
641
 
@@ -644,25 +643,25 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
644
  if (!is_wp_error($code) && $code) {
645
  $response['code'] = $code;
646
  } else {
647
- $response['error'] = SQ_Classes_Error::showNotices(__('Error! Could not get the tracking code. Connect to Google Analytics and get the website tracking code from Admin area.', _SQ_PLUGIN_NAME_), 'sq_error');
648
  }
649
 
650
- echo json_encode($response);
651
  exit();
652
  case 'sq_ajax_connection_check':
653
  SQ_Classes_Helpers_Tools::setHeader('json');
654
 
655
  $response = array();
656
  if (!current_user_can('sq_manage_snippet')) {
657
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
658
- echo json_encode($response);
659
  exit();
660
  }
661
 
662
  //remove connection with Google Analytics
663
  SQ_Classes_RemoteController::checkin();
664
 
665
- echo json_encode(array());
666
  exit();
667
 
668
  /************************ Automation ********************************************************/
@@ -670,8 +669,8 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
670
  SQ_Classes_Helpers_Tools::setHeader('json');
671
  $response = array();
672
  if (!current_user_can('sq_manage_settings')) {
673
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
674
- echo json_encode($response);
675
  exit();
676
  }
677
 
@@ -691,23 +690,23 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
691
  //save the options in database
692
  SQ_Classes_Helpers_Tools::saveOptions('patterns', $patterns);
693
 
694
- $response['data'] = SQ_Classes_Error::showNotices(__('Saved', _SQ_PLUGIN_NAME_), 'sq_success');
695
- echo json_encode($response);
696
  exit();
697
  }
698
  }
699
 
700
 
701
  //Return error in case the post is not saved
702
- $response['data'] = SQ_Classes_Error::showNotices(__('Could not add the post type', _SQ_PLUGIN_NAME_), 'sq_error');
703
- echo json_encode($response);
704
  exit();
705
  case 'sq_ajax_automation_deletepostype':
706
  SQ_Classes_Helpers_Tools::setHeader('json');
707
  $response = array();
708
  if (!current_user_can('sq_manage_settings')) {
709
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
710
- echo json_encode($response);
711
  exit();
712
  }
713
 
@@ -726,16 +725,16 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController {
726
  //save the options in database
727
  SQ_Classes_Helpers_Tools::saveOptions('patterns', $patterns);
728
 
729
- $response['data'] = SQ_Classes_Error::showNotices(__('Saved', _SQ_PLUGIN_NAME_), 'sq_success');
730
- echo json_encode($response);
731
  exit();
732
  }
733
  }
734
 
735
 
736
  //Return error in case the post is not saved
737
- $response['data'] = SQ_Classes_Error::showNotices(__('Could not add the post type', _SQ_PLUGIN_NAME_), 'sq_error');
738
- echo json_encode($response);
739
  exit();
740
 
741
  }
156
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
157
 
158
  //show the saved message
159
+ if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
160
 
161
  break;
162
 
173
 
174
 
175
  //show the saved message
176
+ if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
177
 
178
  break;
179
  ///////////////////////////////////////////SEO SETTINGS METAS
197
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
198
 
199
  //show the saved message
200
+ if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
201
 
202
 
203
  break;
230
  //delete other sitemap xml files from root
231
  if (SQ_Classes_Helpers_Tools::getOption('sq_auto_sitemap') && file_exists(ABSPATH . "/" . 'sitemap.xml')) {
232
  @rename(ABSPATH . "/" . 'sitemap.xml', ABSPATH . "/" . 'sitemap_ren' . time() . '.xml');
 
233
  }
234
 
235
  //reset the report time
236
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
237
 
238
  //show the saved message
239
+ if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
240
 
241
  break;
242
 
265
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
266
 
267
  //show the saved message
268
+ if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
269
 
270
  break;
271
 
296
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
297
 
298
  //show the saved message
299
+ if (!SQ_Classes_Error::isError()) SQ_Classes_Error::setMessage(esc_html__("Saved", _SQ_PLUGIN_NAME_));
300
 
301
 
302
  break;
339
  //remove connection with Google Analytics
340
  $response = SQ_Classes_RemoteController::revokeGaConnection();
341
  if (!is_wp_error($response)) {
342
+ SQ_Classes_Error::setError(esc_html__("Google Analytics account is disconnected.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
343
  } else {
344
+ SQ_Classes_Error::setError(esc_html__("Error! Could not disconnect the account.", _SQ_PLUGIN_NAME_) . " <br /> ");
345
  }
346
  break;
347
  case 'sq_seosettings_gsc_revoke':
352
  //remove connection with Google Search Console
353
  $response = SQ_Classes_RemoteController::revokeGscConnection();
354
  if (!is_wp_error($response)) {
355
+ SQ_Classes_Error::setError(esc_html__("Google Search Console account is disconnected.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
356
  } else {
357
+ SQ_Classes_Error::setError(esc_html__("Error! Could not disconnect the account.", _SQ_PLUGIN_NAME_) . " <br /> ");
358
  }
359
  break;
360
  case 'sq_seosettings_backupsettings':
361
  if (!current_user_can('sq_manage_settings')) {
362
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
363
  SQ_Classes_Helpers_Tools::setHeader('json');
364
+ echo wp_json_encode($response);
365
  exit();
366
  }
367
 
369
  header("Content-Disposition: attachment; filename=squirrly-settings-" . gmdate('Y-m-d') . ".txt");
370
 
371
  if (function_exists('base64_encode')) {
372
+ echo base64_encode(wp_json_encode(SQ_Classes_Helpers_Tools::$options));
373
  } else {
374
+ echo wp_json_encode(SQ_Classes_Helpers_Tools::$options);
375
  }
376
  exit();
377
  case 'sq_seosettings_restoresettings':
406
  //reset the report time
407
  SQ_Classes_Helpers_Tools::saveOptions('seoreport_time', false);
408
 
409
+ SQ_Classes_Error::setError(esc_html__("Great! The backup is restored.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
410
  } else {
411
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
412
  }
413
  } catch (Exception $e) {
414
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
415
  }
416
  } else {
417
+ SQ_Classes_Error::setError(esc_html__("Error! You have to enter a previously saved backup file.", _SQ_PLUGIN_NAME_) . " <br /> ");
418
  }
419
  break;
420
  case 'sq_seosettings_backupseo':
452
  try {
453
  $queries = explode(";\n", $sql_file);
454
  SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->executeSql($queries);
455
+ SQ_Classes_Error::setError(esc_html__("Great! The SEO backup is restored.", _SQ_PLUGIN_NAME_) . " <br /> ", 'success');
456
 
457
  } catch (Exception $e) {
458
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
459
  }
460
  } else {
461
+ SQ_Classes_Error::setError(esc_html__("Error! The backup is not valid.", _SQ_PLUGIN_NAME_) . " <br /> ");
462
  }
463
  } else {
464
+ SQ_Classes_Error::setError(esc_html__("Error! You have to enter a previously saved backup file.", _SQ_PLUGIN_NAME_) . " <br /> ");
465
  }
466
  break;
467
  case 'sq_seosettings_importall':
489
  }
490
  }
491
 
492
+ SQ_Classes_Error::setMessage(sprintf(esc_html__("Success! The import from %s was completed successfully and your SEO is safe!", _SQ_PLUGIN_NAME_), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
493
  } catch (Exception $e) {
494
+ SQ_Classes_Error::setMessage(esc_html__("Error! An error occured while import. Please try again.", _SQ_PLUGIN_NAME_));
495
  }
496
  }
497
  break;
503
  $platform = SQ_Classes_Helpers_Tools::getValue('sq_import_platform', '');
504
  if ($platform <> '') {
505
  if (SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->importDBSettings($platform)) {
506
+ SQ_Classes_Error::setMessage(esc_html__("All the Plugin settings were imported successfuly!", _SQ_PLUGIN_NAME_));
507
  } else {
508
+ SQ_Classes_Error::setMessage(esc_html__("No settings found for this plugin/theme.", _SQ_PLUGIN_NAME_));
509
  }
510
  }
511
  break;
537
  }
538
  }
539
 
540
+ SQ_Classes_Error::setMessage(sprintf(esc_html__("Success! The import from %s was completed successfully and your SEO is safe!", _SQ_PLUGIN_NAME_), SQ_Classes_ObjController::getClass('SQ_Models_ImportExport')->getName($platform)));
541
  }
542
  break;
543
  case 'sq_rollback':
557
  $rollback->run();
558
 
559
  wp_die(
560
+ '', esc_html__("Rollback to Previous Version", _SQ_PLUGIN_NAME_), [
561
  'response' => 200,
562
  ]
563
  );
575
  SQ_Classes_Helpers_Tools::setHeader('json');
576
  $response = array();
577
  if (!current_user_can('sq_manage_settings')) {
578
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
579
+ echo wp_json_encode($response);
580
  exit();
581
  }
582
 
586
 
587
  if (isset(SQ_Classes_Helpers_Tools::$options[$name])) {
588
  SQ_Classes_Helpers_Tools::saveOptions($name, $value);
589
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Saved", _SQ_PLUGIN_NAME_), 'sq_success');
590
  } else {
591
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Could not save the changes", _SQ_PLUGIN_NAME_), 'sq_error');
592
 
593
  }
594
 
595
+ echo wp_json_encode($response);
596
  exit();
597
  case 'sq_ajax_sla_sticky':
598
  SQ_Classes_Helpers_Tools::setHeader('json');
599
 
600
  $response = array();
601
  if (!current_user_can('sq_manage_snippet')) {
602
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
603
+ echo wp_json_encode($response);
604
  exit();
605
  }
606
 
607
  SQ_Classes_Helpers_Tools::saveUserMeta('sq_auto_sticky', (int)SQ_Classes_Helpers_Tools::getValue('sq_auto_sticky'));
608
+ echo wp_json_encode(array());
609
  exit();
610
  case 'sq_ajax_gsc_code':
611
  SQ_Classes_Helpers_Tools::setHeader('json');
612
 
613
  $response = array();
614
  if (!current_user_can('sq_manage_snippet')) {
615
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
616
+ echo wp_json_encode($response);
617
  exit();
618
  }
619
 
623
  if (!is_wp_error($code) && $code) {
624
  $response['code'] = SQ_Classes_Helpers_Sanitize::checkGoogleWTCode($code);
625
  } else {
626
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("Error! Could not get the code. Connect to Google Search Console and validate the connection.", _SQ_PLUGIN_NAME_), 'sq_error');
627
  }
628
 
629
+ echo wp_json_encode($response);
630
  exit();
631
  case 'sq_ajax_ga_code':
632
  SQ_Classes_Helpers_Tools::setHeader('json');
633
 
634
  $response = array();
635
  if (!current_user_can('sq_manage_snippet')) {
636
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
637
+ echo wp_json_encode($response);
638
  exit();
639
  }
640
 
643
  if (!is_wp_error($code) && $code) {
644
  $response['code'] = $code;
645
  } else {
646
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("Error! Could not get the tracking code. Connect to Google Analytics and get the website tracking code from Admin area.", _SQ_PLUGIN_NAME_), 'sq_error');
647
  }
648
 
649
+ echo wp_json_encode($response);
650
  exit();
651
  case 'sq_ajax_connection_check':
652
  SQ_Classes_Helpers_Tools::setHeader('json');
653
 
654
  $response = array();
655
  if (!current_user_can('sq_manage_snippet')) {
656
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
657
+ echo wp_json_encode($response);
658
  exit();
659
  }
660
 
661
  //remove connection with Google Analytics
662
  SQ_Classes_RemoteController::checkin();
663
 
664
+ echo wp_json_encode(array());
665
  exit();
666
 
667
  /************************ Automation ********************************************************/
669
  SQ_Classes_Helpers_Tools::setHeader('json');
670
  $response = array();
671
  if (!current_user_can('sq_manage_settings')) {
672
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
673
+ echo wp_json_encode($response);
674
  exit();
675
  }
676
 
690
  //save the options in database
691
  SQ_Classes_Helpers_Tools::saveOptions('patterns', $patterns);
692
 
693
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Saved", _SQ_PLUGIN_NAME_), 'sq_success');
694
+ echo wp_json_encode($response);
695
  exit();
696
  }
697
  }
698
 
699
 
700
  //Return error in case the post is not saved
701
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Could not add the post type.", _SQ_PLUGIN_NAME_), 'sq_error');
702
+ echo wp_json_encode($response);
703
  exit();
704
  case 'sq_ajax_automation_deletepostype':
705
  SQ_Classes_Helpers_Tools::setHeader('json');
706
  $response = array();
707
  if (!current_user_can('sq_manage_settings')) {
708
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
709
+ echo wp_json_encode($response);
710
  exit();
711
  }
712
 
725
  //save the options in database
726
  SQ_Classes_Helpers_Tools::saveOptions('patterns', $patterns);
727
 
728
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Saved", _SQ_PLUGIN_NAME_), 'sq_success');
729
+ echo wp_json_encode($response);
730
  exit();
731
  }
732
  }
733
 
734
 
735
  //Return error in case the post is not saved
736
+ $response['data'] = SQ_Classes_Error::showNotices(esc_html__("Could not add the post type.", _SQ_PLUGIN_NAME_), 'sq_error');
737
+ echo wp_json_encode($response);
738
  exit();
739
 
740
  }
controllers/Sitemaps.php CHANGED
@@ -28,7 +28,7 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController {
28
 
29
  if (isset($_SERVER['REQUEST_URI'])) {
30
  if (strpos($_SERVER['REQUEST_URI'], 'sq_feed') !== false) {
31
- $parseurl = @parse_url($_SERVER['REQUEST_URI']);
32
  $sitemap = 'sitemap';
33
  $page = 0;
34
 
@@ -46,7 +46,7 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController {
46
  die();
47
 
48
  } elseif (strpos($_SERVER['REQUEST_URI'], '.xml') !== false) {
49
- $parseurl = @parse_url($_SERVER['REQUEST_URI']);
50
  $stemaplist = SQ_Classes_Helpers_Tools::getOption('sq_sitemap');
51
  $page = 0;
52
 
28
 
29
  if (isset($_SERVER['REQUEST_URI'])) {
30
  if (strpos($_SERVER['REQUEST_URI'], 'sq_feed') !== false) {
31
+ $parseurl = parse_url($_SERVER['REQUEST_URI']);
32
  $sitemap = 'sitemap';
33
  $page = 0;
34
 
46
  die();
47
 
48
  } elseif (strpos($_SERVER['REQUEST_URI'], '.xml') !== false) {
49
+ $parseurl = parse_url($_SERVER['REQUEST_URI']);
50
  $stemaplist = SQ_Classes_Helpers_Tools::getOption('sq_sitemap');
51
  $page = 0;
52
 
controllers/Snippet.php CHANGED
@@ -84,7 +84,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
84
  * @return string
85
  */
86
  public function getSnippetDiv($content, $attributes = '') {
87
- return '<div id="sq_blocksnippet" ' . $attributes . ' class="sq_blocksnippet sq-shadow-sm sq-border-bottom sq-mb-4"><h2 class="hndle"><span class="sq_logo" style="margin-right: 5px;width: 30px !important;height: 30px !important;"></span>' . __('Squirrly SEO Snippet', _SQ_PLUGIN_NAME_) . '</span></h2><div class="inside">' . $content . '</div></div>';
88
 
89
  }
90
 
@@ -139,7 +139,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
139
 
140
  $wp_admin_bar->add_node(array(
141
  'id' => 'sq_bar_menu',
142
- 'title' => $style . '<span class="sq_logo"></span> ' . __('Custom SEO', _SQ_PLUGIN_NAME_),
143
  'parent' => 'top-secondary',
144
  ));
145
 
@@ -168,9 +168,9 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
168
 
169
  $response = array();
170
  if (!current_user_can('sq_manage_snippet')) {
171
- $response['error'] = SQ_Classes_Error::showNotices(__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
172
  SQ_Classes_Helpers_Tools::setHeader('json');
173
- echo json_encode($response);
174
  exit();
175
  }
176
 
@@ -187,7 +187,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
187
  $json['saved'] = $sq_hash;
188
  } else {
189
  global $wpdb;
190
- $json['error'] = sprintf(__('Could not save the snippet. Please check the database table %s integrity.', _SQ_PLUGIN_NAME_), '<strong>' . $wpdb->prefix . _SQ_DB_ . '</strong>');
191
  }
192
 
193
  if ($this->post = $this->model->getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type)) {
@@ -196,7 +196,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
196
  if (SQ_Classes_Helpers_Tools::isAjax()) {
197
  SQ_Classes_Helpers_Tools::setHeader('json');
198
 
199
- echo json_encode($json);
200
  exit();
201
  }
202
  break;
@@ -225,7 +225,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
225
  $json['error'] = 'Not found!';
226
  }
227
 
228
- echo json_encode($json);
229
  exit();
230
  case 'sq_previewsnippet':
231
 
@@ -245,7 +245,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController {
245
 
246
  if (SQ_Classes_Helpers_Tools::isAjax()) {
247
  SQ_Classes_Helpers_Tools::setHeader('json');
248
- echo json_encode($snippet);
249
  exit();
250
  }
251
  }
84
  * @return string
85
  */
86
  public function getSnippetDiv($content, $attributes = '') {
87
+ return '<div id="sq_blocksnippet" ' . $attributes . ' class="sq_blocksnippet sq-shadow-sm sq-border-bottom sq-mb-4"><h2 class="hndle"><span class="sq_logo" style="margin-right: 5px;width: 30px !important;height: 30px !important;"></span>' . esc_html__("Squirrly SEO Snippet", _SQ_PLUGIN_NAME_) . '</span></h2><div class="inside">' . $content . '</div></div>';
88
 
89
  }
90
 
139
 
140
  $wp_admin_bar->add_node(array(
141
  'id' => 'sq_bar_menu',
142
+ 'title' => $style . '<span class="sq_logo"></span> ' . esc_html__("Custom SEO", _SQ_PLUGIN_NAME_),
143
  'parent' => 'top-secondary',
144
  ));
145
 
168
 
169
  $response = array();
170
  if (!current_user_can('sq_manage_snippet')) {
171
+ $response['error'] = SQ_Classes_Error::showNotices(esc_html__("You do not have permission to perform this action", _SQ_PLUGIN_NAME_), 'sq_error');
172
  SQ_Classes_Helpers_Tools::setHeader('json');
173
+ echo wp_json_encode($response);
174
  exit();
175
  }
176
 
187
  $json['saved'] = $sq_hash;
188
  } else {
189
  global $wpdb;
190
+ $json['error'] = sprintf(esc_html__("Could not save the snippet. Please check the database table %s integrity.", _SQ_PLUGIN_NAME_), '<strong>' . $wpdb->prefix . _SQ_DB_ . '</strong>');
191
  }
192
 
193
  if ($this->post = $this->model->getCurrentSnippet($post_id, $term_id, $taxonomy, $post_type)) {
196
  if (SQ_Classes_Helpers_Tools::isAjax()) {
197
  SQ_Classes_Helpers_Tools::setHeader('json');
198
 
199
+ echo wp_json_encode($json);
200
  exit();
201
  }
202
  break;
225
  $json['error'] = 'Not found!';
226
  }
227
 
228
+ echo wp_json_encode($json);
229
  exit();
230
  case 'sq_previewsnippet':
231
 
245
 
246
  if (SQ_Classes_Helpers_Tools::isAjax()) {
247
  SQ_Classes_Helpers_Tools::setHeader('json');
248
+ echo wp_json_encode($snippet);
249
  exit();
250
  }
251
  }
controllers/Uninstall.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined('ABSPATH') || die('Cheatin\' uh?');
3
+
4
+ /**
5
+ * Uninstall Options
6
+ */
7
+ class SQ_Controllers_Uninstall extends SQ_Classes_FrontController {
8
+
9
+ public function hookHead() {
10
+ SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('uninstall');
11
+ }
12
+
13
+ public function hookFooter() {
14
+ echo $this->getView('Blocks/Uninstall');
15
+ }
16
+ }
core/BlockAudits.php DELETED
@@ -1,43 +0,0 @@
1
- <?php
2
- defined('ABSPATH') || die('Cheatin\' uh?');
3
-
4
- class SQ_Core_BlockAudits extends SQ_Classes_BlockController {
5
- public $audits;
6
- public $tasks;
7
- //
8
- public $title = true;
9
-
10
- public function hookGetContent() {
11
- $this->audits = SQ_Classes_RemoteController::getBlogAudits();
12
- echo $this->getView('Blocks/Audits');
13
- }
14
-
15
- public function getScripts() {
16
- return '<script>
17
- function drawChart(id, values, reverse) {
18
- var data = google.visualization.arrayToDataTable(values);
19
-
20
- var options = {
21
-
22
- title : "",
23
- chartArea:{width:"80%",height:"70%"},
24
- vAxis: {title: "",
25
- viewWindowMode:"explicit",
26
- viewWindow: {
27
- max:100,
28
- min:0
29
- }},
30
- hAxis: {title: ""},
31
- seriesType: "bars",
32
- series: {2: {type: "line"}},
33
- legend: {position: "bottom"},
34
- colors:["#17c6ea","#fb3b47"]
35
- };
36
-
37
- var chart = new google.visualization.ComboChart(document.getElementById(id));
38
- chart.draw(data, options);
39
- return chart;
40
- }
41
- </script>';
42
- }
43
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
core/BlockFocusPages.php DELETED
@@ -1,65 +0,0 @@
1
- <?php
2
- defined('ABSPATH') || die('Cheatin\' uh?');
3
-
4
- class SQ_Core_BlockFocusPages extends SQ_Classes_BlockController {
5
- public $focuspages;
6
-
7
- public function hookGetContent() {
8
- if ($focuspages = SQ_Classes_RemoteController::getFocusPages()) {
9
- //Get the audits for the focus pages
10
- $audits = SQ_Classes_RemoteController::getFocusAudits();
11
-
12
- if (!empty($focuspages)) {
13
- foreach ($focuspages as $focuspage) {
14
- //Add the audit data if exists
15
- if (isset($focuspage->user_post_id) && !empty($audits)) {
16
- foreach ($audits as $audit) {
17
- if ($focuspage->user_post_id == $audit->user_post_id) {
18
- $audit = json_decode($audit->audit);
19
- if (isset($audit->properties) && isset($audit->properties->created_at->date)) {
20
- $focuspage->audit_datetime = date(get_option('date_format') . ' ' . get_option('time_format'), strtotime($audit->properties->created_at->date));
21
- } else {
22
- $focuspage->audit_datetime = __('Audit in progress', _SQ_PLUGIN_NAME_);
23
- }
24
- }
25
- }
26
- }
27
-
28
- /** @var SQ_Models_Domain_FocusPage $focuspage */
29
- $this->focuspages[] = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_FocusPage', $focuspage);
30
-
31
- }
32
- }
33
- }
34
- echo $this->getView('Blocks/FocusPages');
35
- }
36
-
37
- public function getScripts() {
38
- return '<script>
39
- function drawChart(id, values, reverse) {
40
- var data = google.visualization.arrayToDataTable(values);
41
-
42
- var options = {
43
-
44
- title : "",
45
- chartArea:{width:"80%",height:"70%"},
46
- vAxis: {title: "",
47
- viewWindowMode:"explicit",
48
- viewWindow: {
49
- max:100,
50
- min:0
51
- }},
52
- hAxis: {title: ""},
53
- seriesType: "bars",
54
- series: {2: {type: "line"}},
55
- legend: {position: "bottom"},
56
- colors:["#17c6ea","#fb3b47"]
57
- };
58
-
59
- var chart = new google.visualization.ComboChart(document.getElementById(id));
60
- chart.draw(data, options);
61
- return chart;
62
- }
63
- </script>';
64
- }
65
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
core/BlockKRFound.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- defined('ABSPATH') || die('Cheatin\' uh?');
3
-
4
- class SQ_Core_BlockKRFound extends SQ_Classes_BlockController {
5
-
6
- public $keywords;
7
-
8
- function hookGetContent() {
9
-
10
- $this->keywords = SQ_Classes_RemoteController::getKrFound();
11
- SQ_Debug::dump($this->keywords);
12
-
13
- echo $this->getView('Blocks/KRFound');
14
- }
15
-
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
core/BlockKRHistory.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- defined('ABSPATH') || die('Cheatin\' uh?');
3
-
4
- class SQ_Core_BlockKRHistory extends SQ_Classes_BlockController {
5
-
6
- public $kr;
7
-
8
- function hookGetContent() {
9
- $args = array();
10
- $args['limit'] = 100;
11
- $this->kr = SQ_Classes_RemoteController::getKRHistory($args);
12
-
13
- echo $this->getView('Blocks/KRHistory');
14
- }
15
-
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
core/BlockRanks.php DELETED
@@ -1,62 +0,0 @@
1
- <?php
2
- defined('ABSPATH') || die('Cheatin\' uh?');
3
-
4
- class SQ_Core_BlockRanks extends SQ_Classes_BlockController {
5
- public $info;
6
- public $ranks;
7
-
8
-
9
- public function hookGetContent() {
10
- $args = array();
11
- $args['days_back'] = 7;
12
- $args['has_ranks'] = 1;
13
-
14
-
15
- if ($this->info = SQ_Classes_RemoteController::getRanksStats($args)) {
16
- if (is_wp_error($this->info)) {
17
- $this->info = array();
18
- }
19
- }
20
- if ($this->ranks = SQ_Classes_RemoteController::getRanks($args)) {
21
- if (is_wp_error($this->ranks)) {
22
- $this->ranks = array();
23
- }
24
- }
25
-
26
- echo $this->getView('Blocks/Ranks');
27
- }
28
-
29
- public function getScripts() {
30
- return '<script>
31
- function drawChart(id, values, reverse) {
32
- var data = google.visualization.arrayToDataTable(values);
33
-
34
- var options = {
35
-
36
- curveType: "function",
37
- title: "",
38
- chartArea:{width:"80%",height:"70%"},
39
- enableInteractivity: "true",
40
- tooltip: {trigger: "auto"},
41
- pointSize: "4",
42
- colors: ["#55b2ca"],
43
- hAxis: {
44
- baselineColor: "#55b2ca",
45
- gridlineColor: "#55b2ca",
46
- textPosition: "out"
47
- } ,
48
- vAxis:{
49
- direction: ((reverse) ? -1 : 1),
50
- baselineColor: "#f8f8f8",
51
- gridlineColor: "#f8f8f8",
52
- textPosition: "out"
53
- }
54
- };
55
-
56
- var chart = new google.visualization.LineChart(document.getElementById(id));
57
- chart.draw(data, options);
58
- return chart;
59
- }
60
- </script>';
61
- }
62
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
core/BlockSEOIssues.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- defined('ABSPATH') || die('Cheatin\' uh?');
3
-
4
- class SQ_Core_BlockSEOIssues extends SQ_Classes_BlockController {
5
- public $audits;
6
- public $tasks;
7
- //
8
- public $title = true;
9
-
10
- public function hookGetContent() {
11
- echo $this->getView('Blocks/SEOIssues');
12
- }
13
-
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
core/BlockSupport.php CHANGED
@@ -15,57 +15,47 @@ class SQ_Core_BlockSupport extends SQ_Classes_BlockController {
15
  * @return void
16
  */
17
  public function action() {
18
- global $current_user;
19
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
20
  case 'sq_feedback':
21
  $return = array();
22
 
23
- SQ_Classes_Helpers_Tools::saveOptions('sq_feedback', 1);
24
 
25
- $from = $current_user->user_email;
26
- $subject = __('Plugin Feedback', _SQ_PLUGIN_NAME_);
27
- $face = SQ_Classes_Helpers_Tools::getValue('feedback', false);
28
 
29
- if ($face) {
30
- switch ($face) {
31
- case 1:
32
- $face = 'Angry';
33
- break;
34
- case 2:
35
- $face = 'Sad';
36
- break;
37
- case 3:
38
- $face = 'Happy';
39
- break;
40
- case 4:
41
- $face = 'Excited';
42
- break;
43
- case 5:
44
- $face = 'Love it';
45
- break;
46
- }
47
 
48
- $message = '';
49
- if ($face <> '') {
50
- $message .= 'Url:' . get_bloginfo('wpurl') . "\n";
51
- $message .= 'Face:' . $face;
52
- }
53
-
54
- $headers[] = 'From: ' . $from . ' <' . $from . '>';
55
-
56
- //$this->error='buuum';
57
- wp_mail(_SQ_SUPPORT_EMAIL_, $subject, $message, $headers);
58
- $return['message'] = __('Thank you for your feedback', _SQ_PLUGIN_NAME_);
59
  $return['success'] = true;
60
 
61
  } else {
62
- $return['message'] = __('No message.', _SQ_PLUGIN_NAME_);
63
  $return['error'] = true;
64
  }
65
 
66
  SQ_Classes_Helpers_Tools::setHeader('json');
67
- echo json_encode($return);
68
- break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  }
70
  exit();
71
  }
15
  * @return void
16
  */
17
  public function action() {
 
18
  switch (SQ_Classes_Helpers_Tools::getValue('action')) {
19
  case 'sq_feedback':
20
  $return = array();
21
 
22
+ $feedback = SQ_Classes_Helpers_Tools::getValue('feedback', false);
23
 
24
+ if ($feedback) {
25
+ SQ_Classes_Helpers_Tools::saveOptions('sq_feedback', 1);
 
26
 
27
+ $args['action'] = 'feedback';
28
+ $args['value'] = $feedback;
29
+ SQ_Classes_RemoteController::saveFeedback($args);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
+ $return['message'] = esc_html__("Thank you for your feedback.", _SQ_PLUGIN_NAME_);
 
 
 
 
 
 
 
 
 
 
32
  $return['success'] = true;
33
 
34
  } else {
35
+ $return['message'] = esc_html__("No message.", _SQ_PLUGIN_NAME_);
36
  $return['error'] = true;
37
  }
38
 
39
  SQ_Classes_Helpers_Tools::setHeader('json');
40
+ echo wp_json_encode($return);
41
+ exit();
42
+
43
+ case 'sq_uninstall_feedback':
44
+ $reason['select'] = SQ_Classes_Helpers_Tools::getValue('reason_key', false);
45
+ $reason['plugin'] = SQ_Classes_Helpers_Tools::getValue('reason_found_a_better_plugin', false);
46
+ $reason['other'] = SQ_Classes_Helpers_Tools::getValue('reason_other', false);
47
+
48
+ $args['action'] = 'deactivate';
49
+ $args['value'] = json_encode($reason);
50
+ SQ_Classes_RemoteController::saveFeedback($args);
51
+
52
+ if (SQ_Classes_Helpers_Tools::getValue('option_remove_records', false)) {
53
+ SQ_Classes_Helpers_Tools::saveOptions('sq_api', false);
54
+ }
55
+
56
+ SQ_Classes_Helpers_Tools::setHeader('json');
57
+ echo wp_json_encode(array());
58
+ exit();
59
  }
60
  exit();
61
  }
core/Blocklogin.php CHANGED
@@ -50,13 +50,13 @@ class SQ_Core_Blocklogin extends SQ_Classes_BlockController {
50
  if (is_wp_error($responce)) {
51
  switch ($responce->get_error_message()) {
52
  case 'alreadyregistered':
53
- SQ_Classes_Error::setError(sprintf(__("We found your email, so it means you already have a Squirrly.co account. %sClick %sI already have an account%s and login. If you forgot your password, click %shere%s", _SQ_PLUGIN_NAME_), '<br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard','login') . '" style="color:yellow">', '</a>','<a href="' . _SQ_DASH_URL_ . '/login?action=lostpassword" target="_blank" style="color:yellow">', '</a>'));
54
  break;
55
  case 'invalidemail':
56
- SQ_Classes_Error::setError(__('Your email is not valid. Please enter a valid email', _SQ_PLUGIN_NAME_));
57
  break;
58
  default:
59
- SQ_Classes_Error::setError(__('We could not create your account. Please enter a valid email', _SQ_PLUGIN_NAME_));
60
  break;
61
  }
62
 
@@ -75,11 +75,11 @@ class SQ_Core_Blocklogin extends SQ_Classes_BlockController {
75
  } else {
76
  if (!SQ_Classes_Error::isError()) {
77
  //if unknown error
78
- SQ_Classes_Error::setError(sprintf(__("Error: Couldn't connect to host :( . Please contact your site's webhost (or webmaster) and request them to add %s to their IP whitelist.", _SQ_PLUGIN_NAME_), _SQ_APIV2_URL_));
79
  }
80
  }
81
  } else {
82
- SQ_Classes_Error::setError(__('Could not send your information to Squirrly. Please try again.', _SQ_PLUGIN_NAME_));
83
  }
84
  }
85
 
@@ -101,13 +101,13 @@ class SQ_Core_Blocklogin extends SQ_Classes_BlockController {
101
  if (is_wp_error($responce)) {
102
  switch ($responce->get_error_message()) {
103
  case 'badlogin':
104
- SQ_Classes_Error::setError(__('Wrong email or password!', _SQ_PLUGIN_NAME_));
105
  break;
106
  case 'multisite':
107
- SQ_Classes_Error::setError(__('You can only use this account for the URL you registered first!', _SQ_PLUGIN_NAME_));
108
  break;
109
  default:
110
- SQ_Classes_Error::setError(__('An error occured', _SQ_PLUGIN_NAME_) . ':' . $responce->get_error_message());
111
  break;
112
  }
113
 
@@ -127,12 +127,12 @@ class SQ_Core_Blocklogin extends SQ_Classes_BlockController {
127
  //if unknown error
128
  if (!SQ_Classes_Error::isError()) {
129
  //if unknown error
130
- SQ_Classes_Error::setError(sprintf(__("Error: Couldn't connect to host :( . Please contact your site's webhost (or webmaster) and request them to add %s to their IP whitelist.", _SQ_PLUGIN_NAME_), _SQ_APIV2_URL_));
131
  }
132
  }
133
 
134
  } else {
135
- SQ_Classes_Error::setError(__('Both fields are required.', _SQ_PLUGIN_NAME_));
136
  }
137
 
138
  }
50
  if (is_wp_error($responce)) {
51
  switch ($responce->get_error_message()) {
52
  case 'alreadyregistered':
53
+ SQ_Classes_Error::setError(sprintf(esc_html__("We found your email, so it means you already have a Squirrly.co account. %sClick %sI already have an account%s and login. If you forgot your password, click %shere%s", _SQ_PLUGIN_NAME_), '<br />', '<a href="' . SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard','login') . '" style="color:yellow">', '</a>','<a href="' . _SQ_DASH_URL_ . '/login?action=lostpassword" target="_blank" style="color:yellow">', '</a>'));
54
  break;
55
  case 'invalidemail':
56
+ SQ_Classes_Error::setError(esc_html__("Your email is not valid. Please enter a valid email.", _SQ_PLUGIN_NAME_));
57
  break;
58
  default:
59
+ SQ_Classes_Error::setError(esc_html__("We could not create your account. Please enter a valid email.", _SQ_PLUGIN_NAME_));
60
  break;
61
  }
62
 
75
  } else {
76
  if (!SQ_Classes_Error::isError()) {
77
  //if unknown error
78
+ SQ_Classes_Error::setError(sprintf(esc_html__("Error: Couldn't connect to host :( . Please contact your site's webhost (or webmaster) and request them to add %s to their IP whitelist.", _SQ_PLUGIN_NAME_), _SQ_APIV2_URL_));
79
  }
80
  }
81
  } else {
82
+ SQ_Classes_Error::setError(esc_html__("Could not send your information to Squirrly. Please try again.", _SQ_PLUGIN_NAME_));
83
  }
84
  }
85
 
101
  if (is_wp_error($responce)) {
102
  switch ($responce->get_error_message()) {
103
  case 'badlogin':
104
+ SQ_Classes_Error::setError(esc_html__("Wrong email or password!", _SQ_PLUGIN_NAME_));
105
  break;
106
  case 'multisite':
107
+ SQ_Classes_Error::setError(esc_html__("You can only use this account for the URL you registered first!", _SQ_PLUGIN_NAME_));
108
  break;
109
  default:
110
+ SQ_Classes_Error::setError(esc_html__("An error occured.", _SQ_PLUGIN_NAME_) . ':' . $responce->get_error_message());
111
  break;
112
  }
113
 
127
  //if unknown error
128
  if (!SQ_Classes_Error::isError()) {
129
  //if unknown error
130
+ SQ_Classes_Error::setError(sprintf(esc_html__("Error: Couldn't connect to host :( . Please contact your site's webhost (or webmaster) and request them to add %s to their IP whitelist.", _SQ_PLUGIN_NAME_), _SQ_APIV2_URL_));
131
  }
132
  }
133
 
134
  } else {
135
+ SQ_Classes_Error::setError(esc_html__("Both fields are required.", _SQ_PLUGIN_NAME_));
136
  }
137
 
138
  }
debug/index.php CHANGED
@@ -141,8 +141,8 @@ class SQ_Debug {
141
  */
142
  public static function showDebug() {
143
  SQ_Classes_Helpers_Tools::setHeader('html');
144
- $errors = error_get_last();
145
- echo "Debug result: <br />" . '<div id="wpcontent">' . '<br />' . @implode('<br />', self::$debug) . '<div>';
146
 
147
  $run_time = number_format(microtime(true) - SQ_REQUEST_TIME, 3);
148
  $pps = number_format(1 / $run_time, 0);
141
  */
142
  public static function showDebug() {
143
  SQ_Classes_Helpers_Tools::setHeader('html');
144
+ error_get_last();
145
+ echo "Debug result: <br />" . '<div id="wpcontent">' . '<br />' . implode('<br />', (array)self::$debug) . '<div>';
146
 
147
  $run_time = number_format(microtime(true) - SQ_REQUEST_TIME, 3);
148
  $pps = number_format(1 / $run_time, 0);
languages/squirrly-seo-cs_CZ.mo CHANGED
Binary file
languages/squirrly-seo-cs_CZ.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Squirrly SEO Plugin\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2020-06-01 16:36+0300\n"
6
- "PO-Revision-Date: 2020-06-01 16:36+0300\n"
7
  "Last-Translator: Squirrly <contact@squirrly.co>\n"
8
  "Language-Team: \n"
9
  "Language: cs_CZ\n"
@@ -16,13 +16,9 @@ msgstr ""
16
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
  "X-Poedit-Basepath: ..\n"
18
  "X-Textdomain-Support: yes\n"
19
- "X-Generator: Poedit 2.3.1\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
- #: classes/Error.php:79 classes/Error.php:90
23
- msgid "Don't bother me!"
24
- msgstr ""
25
-
26
  #: classes/RemoteController.php:263
27
  msgid "Too many API attempts, please slow down the request."
28
  msgstr ""
@@ -33,218 +29,222 @@ msgid ""
33
  "in a minute."
34
  msgstr ""
35
 
36
- #: classes/RemoteController.php:326
37
  msgid "Articles optimized so far"
38
  msgstr ""
39
 
40
- #: classes/RemoteController.php:328 classes/RemoteController.php:335
41
  msgid "add post"
42
  msgstr ""
43
 
44
- #: classes/RemoteController.php:333
45
  msgid "Average optimization"
46
  msgstr ""
47
 
48
  # @ squirrly-seo
49
- #: classes/RemoteController.php:340
50
  #, fuzzy
51
  #| msgid "Do the research"
52
  msgid "Keyword Researches"
53
  msgstr "Recherchieren"
54
 
55
  # @ squirrly-seo
56
- #: classes/RemoteController.php:342
57
  #, fuzzy
58
  #| msgid "Do the research"
59
  msgid "do research"
60
  msgstr "Recherchieren"
61
 
62
- #: classes/RemoteController.php:347
63
  msgid "Keywords stored in Squirrly Briefcase"
64
  msgstr ""
65
 
66
- #: classes/RemoteController.php:349
 
 
 
67
  msgid "add keyword"
68
- msgstr ""
69
 
70
- #: classes/RemoteController.php:354
71
  msgid "Pages ranking in top 100 Google"
72
  msgstr ""
73
 
74
- #: classes/RemoteController.php:356
75
  msgid "see rankings"
76
  msgstr ""
77
 
78
- #: classes/RemoteController.php:361
79
  msgid "SEO Audits"
80
  msgstr ""
81
 
82
- #: classes/RemoteController.php:363
83
  msgid "see audits"
84
  msgstr ""
85
 
86
  # @ squirrly-seo
87
- #: classes/RemoteController.php:1279
 
 
88
  msgid "Keyword:"
89
- msgstr ""
90
 
91
- # @ squirrly-seo
92
- #: classes/RemoteController.php:1280
93
  msgid "date"
94
  msgstr ""
95
 
96
- #: classes/RemoteController.php:1281 controllers/CheckSeo.php:317
97
- #: controllers/Patterns.php:16 controllers/Research.php:259
98
- #: controllers/Research.php:290 controllers/Research.php:344
99
- #: controllers/Research.php:654
100
  msgid "Saved!"
101
  msgstr ""
102
 
103
- # @ squirrly-seo
104
- #: classes/RemoteController.php:1282
105
  msgid "Read it!"
106
  msgstr ""
107
 
108
- # @ squirrly-seo
109
- #: classes/RemoteController.php:1283
110
  msgid "Insert it!"
111
  msgstr ""
112
 
113
- # @ squirrly-seo
114
- #: classes/RemoteController.php:1284
115
  msgid "Reference"
116
  msgstr ""
117
 
118
- # @ squirrly-seo
119
- #: classes/RemoteController.php:1285
120
  msgid "Insert as box"
121
  msgstr ""
122
 
123
- #: classes/RemoteController.php:1286
124
  msgid "Insert Link"
125
  msgstr ""
126
 
127
- # @ squirrly-seo
128
- #: classes/RemoteController.php:1287
129
  msgid "Not relevant?"
130
  msgstr ""
131
 
132
- # @ squirrly-seo
133
- #: classes/RemoteController.php:1288
134
  msgid "Insert in your article"
135
  msgstr ""
136
 
137
- #: classes/RemoteController.php:1289
138
  msgid ":( An error occurred while processing your request. Please try again"
139
  msgstr ""
140
 
141
- # @ squirrly-seo
142
- #: classes/RemoteController.php:1290
143
  msgid "No results found!"
144
  msgstr ""
145
 
146
- #: classes/RemoteController.php:1291
147
  #, php-format
148
  msgid "[ ATTRIBUTE: Please check: %s to find out how to attribute this image ]"
149
  msgstr ""
150
 
151
- #: classes/RemoteController.php:1292
152
  msgid "Has creative commons attributes"
153
  msgstr ""
154
 
155
- #: classes/RemoteController.php:1293
156
  msgid "No known copyright restrictions"
157
  msgstr ""
158
 
159
- #: classes/RemoteController.php:1294
160
  msgid ""
161
  "You haven`t used Squirrly SEO to optimize your article. Do you want to "
162
  "optimize for a keyword before publishing?"
163
  msgstr ""
164
 
165
- #: classes/RemoteController.php:1295
166
  msgid "Your Subscription has Expired"
167
  msgstr ""
168
 
169
- #: classes/RemoteController.php:1296
170
  msgid "There are no keywords saved in briefcase yet"
171
  msgstr ""
172
 
173
- #: classes/RemoteController.php:1297
174
  #, php-format
175
  msgid "Congratulations! Your article is 100% optimized!"
176
  msgstr ""
177
 
178
- #: classes/RemoteController.php:1298
179
  #, php-format
180
  msgid "appears too many times. Try to remove %s of them"
181
  msgstr ""
182
 
183
- #: classes/RemoteController.php:1299
184
  #, php-format
185
  msgid "write %s more words"
186
  msgstr ""
187
 
188
- #: classes/RemoteController.php:1300
189
  #, php-format
190
  msgid "Add the keyword in the %s of your article"
191
  msgstr ""
192
 
193
- #: classes/RemoteController.php:1301
194
  msgid "Click to keep the highlight on"
195
  msgstr ""
196
 
197
- #: classes/RemoteController.php:1302
198
  msgid "introduction"
199
  msgstr ""
200
 
201
- #: classes/RemoteController.php:1303
202
- #, php-format
 
 
203
  msgid "Write more words after the %s keyword"
204
- msgstr ""
205
 
206
- #: classes/RemoteController.php:1304
207
  msgid "or use synonyms"
208
  msgstr ""
209
 
210
- #: classes/RemoteController.php:1305
211
  #, php-format
212
  msgid "add %s more word(s)"
213
  msgstr ""
214
 
215
- #: classes/RemoteController.php:1306
216
  #, php-format
217
  msgid "or remove %s word(s)"
218
  msgstr ""
219
 
220
- #: classes/RemoteController.php:1307
221
- #, php-format
 
 
222
  msgid "add %s more keyword(s)"
223
- msgstr ""
224
 
225
- #: classes/RemoteController.php:1308
226
  #, php-format
227
  msgid "write %s more words to start calculating"
228
  msgstr ""
229
 
230
- #: classes/RemoteController.php:1309 view/Research/Research.php:48
231
  msgid "Add to Briefcase"
232
  msgstr ""
233
 
234
- #: classes/RemoteController.php:1310
235
  msgid "Add Keyword to Briefcase"
236
  msgstr ""
237
 
238
- #: classes/RemoteController.php:1311
239
  msgid "Select"
240
  msgstr ""
241
 
242
- #: classes/RemoteController.php:1312 view/Blocks/Snippet.php:136
243
- #: view/Blocks/Snippet.php:509 view/Blocks/Snippet.php:765
 
 
 
244
  msgid "Auto Draft"
245
- msgstr ""
246
 
247
- #: classes/RemoteController.php:1313
248
  msgid ""
249
  "You’ve already used the Live Assistant to optimize this post when creating "
250
  "it in your Page Builder. Please go back and resume your optimization work "
@@ -252,38 +252,40 @@ msgid ""
252
  msgstr ""
253
 
254
  # @ squirrly-seo
255
- #: classes/helpers/Sanitize.php:124
 
 
256
  msgid "The code for Google Webmaster Tool is incorrect."
257
- msgstr ""
258
 
259
  # @ squirrly-seo
260
- #: classes/helpers/Sanitize.php:152
 
 
261
  msgid "The code for Google Analytics is incorrect."
262
- msgstr ""
263
 
264
- # @ squirrly-seo
265
- #: classes/helpers/Sanitize.php:189
266
  msgid "The code for Facebook is incorrect."
267
  msgstr ""
268
 
269
- #: classes/helpers/Sanitize.php:215
270
  msgid "The code for Pinterest is incorrect."
271
  msgstr ""
272
 
273
- # @ squirrly-seo
274
- #: classes/helpers/Sanitize.php:240
275
  msgid "The code for Bing is incorrect."
276
  msgstr ""
277
 
278
- #: classes/helpers/Sanitize.php:265
279
  msgid "The code for Alexa is incorrect."
280
  msgstr ""
281
 
282
- #: classes/helpers/Sanitize.php:391
283
  msgid "The code for Facebook Pixel must only contain numbers."
284
  msgstr ""
285
 
286
- #: classes/helpers/Sanitize.php:406
287
  msgid "The code for Facebook App must only contain numbers."
288
  msgstr ""
289
 
@@ -291,55 +293,58 @@ msgstr ""
291
  msgid "Getting started"
292
  msgstr ""
293
 
 
294
  #: classes/helpers/Tools.php:107
 
 
295
  msgid "Documentation"
296
- msgstr ""
297
 
298
  #: classes/helpers/Tools.php:108
299
  msgid "Leave a review"
300
  msgstr ""
301
 
302
- #: classes/helpers/Tools.php:407
303
  msgid "Format"
304
  msgstr ""
305
 
306
- #: classes/helpers/Tools.php:425 classes/helpers/Tools.php:461
307
  msgid "Category"
308
  msgstr ""
309
 
310
- #: classes/helpers/Tools.php:443 classes/helpers/Tools.php:479
311
  msgid "Tag"
312
  msgstr ""
313
 
314
- #: classes/helpers/Tools.php:497
315
  msgid "Shipping Option"
316
  msgstr ""
317
 
318
- #: classes/helpers/Tools.php:515
319
  msgid "Author at"
320
  msgstr ""
321
 
322
- #: classes/helpers/Tools.php:587
323
  msgid "Are you looking for"
324
  msgstr ""
325
 
326
- #: classes/helpers/Tools.php:588
327
  msgid "These are the results for"
328
  msgstr ""
329
 
330
- #: classes/helpers/Tools.php:588
331
  msgid "that you can find on our website."
332
  msgstr ""
333
 
334
- #: classes/helpers/Tools.php:622
335
  msgid "Page not found"
336
  msgstr ""
337
 
338
- #: classes/helpers/Tools.php:623
339
  msgid "This page could not be found on our website."
340
  msgstr ""
341
 
342
- #: classes/helpers/Tools.php:891
343
  msgid "For better text comparison you need to install PHP mbstring extension."
344
  msgstr ""
345
 
@@ -466,7 +471,7 @@ msgstr ""
466
  msgid "Invalid Token. Please try again"
467
  msgstr ""
468
 
469
- #: controllers/Api.php:87 controllers/Api.php:139
470
  msgid "Connection expired. Please try again"
471
  msgstr ""
472
 
@@ -474,244 +479,280 @@ msgstr ""
474
  msgid "Author not found"
475
  msgstr ""
476
 
 
 
 
 
477
  #: controllers/Api.php:149 controllers/Api.php:171
478
  msgid "Wrong Params"
479
  msgstr ""
480
 
481
- #: controllers/Assistant.php:63 controllers/Research.php:98
 
 
 
482
  msgid "No keyword found."
483
- msgstr ""
484
 
485
- #: controllers/Assistant.php:102 controllers/Assistant.php:129
486
- #: controllers/Audits.php:337 controllers/Ranking.php:134
487
- #: controllers/SeoSettings.php:149 controllers/SeoSettings.php:166
488
- #: controllers/SeoSettings.php:187 controllers/SeoSettings.php:224
489
- #: controllers/SeoSettings.php:250 controllers/SeoSettings.php:278
490
- #: controllers/SeoSettings.php:554 controllers/SeoSettings.php:589
491
- #: controllers/SeoSettings.php:625
492
  msgid "Saved"
493
  msgstr ""
494
 
495
- #: controllers/Assistant.php:108 controllers/BulkSeo.php:69
496
- #: controllers/Patterns.php:100 controllers/Post.php:254
497
- #: controllers/Post.php:307 controllers/Post.php:339 controllers/Post.php:374
498
- #: controllers/PostsList.php:182 controllers/Research.php:172
499
- #: controllers/Research.php:179 controllers/Research.php:217
500
- #: controllers/Research.php:240 controllers/Research.php:270
501
- #: controllers/Research.php:297 controllers/Research.php:321
502
- #: controllers/Research.php:351 controllers/Research.php:372
503
- #: controllers/Research.php:453 controllers/Research.php:604
504
- #: controllers/Research.php:628 controllers/Research.php:662
505
- #: controllers/Research.php:688 controllers/SeoSettings.php:341
506
- #: controllers/SeoSettings.php:543 controllers/SeoSettings.php:568
507
- #: controllers/SeoSettings.php:605 controllers/SeoSettings.php:642
508
- #: controllers/SeoSettings.php:656 controllers/SeoSettings.php:678
509
- #: controllers/SeoSettings.php:699 controllers/Snippet.php:166
510
  msgid "You do not have permission to perform this action"
511
  msgstr ""
512
 
513
  # @ squirrly-seo
514
- #: controllers/Assistant.php:134
515
  #, fuzzy
516
  #| msgid "Could not send the email..."
517
  msgid "Error: Could not save the data."
518
  msgstr "Konnte E-Mail nicht senden ..."
519
 
520
- #: controllers/Audits.php:130
521
  msgid "The audit was not found. Please load another audit."
522
  msgstr ""
523
 
524
  # @ squirrly-seo
525
- #: controllers/Audits.php:163
526
  #, fuzzy
527
  #| msgid "Could not send the email..."
528
  msgid "Could not load the Audit Page."
529
  msgstr "Konnte E-Mail nicht senden ..."
530
 
531
- #: controllers/Audits.php:278
532
  msgid "Audit page is added. The audit may take a while so please be patient."
533
  msgstr ""
534
 
535
- #: controllers/Audits.php:281
536
  msgid "You reached the maximum number of audit pages for your account."
537
  msgstr ""
538
 
539
  # @ squirrly-seo
540
- #: controllers/Audits.php:284
541
  #, fuzzy
542
  #| msgid "Could not send the email..."
543
  msgid "Error! Could not add the audit page."
544
  msgstr "Konnte E-Mail nicht senden ..."
545
 
546
- #: controllers/Audits.php:288
 
 
 
547
  msgid "Error! Could not find the audit page in your website."
548
- msgstr ""
549
 
550
- #: controllers/Audits.php:298
551
  msgid "Audit page sent for recheck. It may take a while so please be patient."
552
  msgstr ""
553
 
554
- #: controllers/Audits.php:301 controllers/Audits.php:304
555
  msgid "The audit for all pages can be made once an hour."
556
  msgstr ""
557
 
558
- #: controllers/Audits.php:314
559
- msgid "The audit page is deleted"
560
  msgstr ""
561
 
562
- #: controllers/Audits.php:316 controllers/FocusPages.php:409
563
- #: controllers/Ranking.php:161 controllers/Ranking.php:179
564
- #: controllers/Ranking.php:197 controllers/Research.php:208
565
- #: controllers/Research.php:211 controllers/Research.php:234
566
- #: controllers/Research.php:292 controllers/Research.php:316
567
- #: controllers/Research.php:500 controllers/Research.php:571
568
- #: controllers/Research.php:598 controllers/Research.php:623
569
- #: controllers/Research.php:708
570
  msgid "Invalid params!"
571
  msgstr ""
572
 
573
- #: controllers/Audits.php:339
574
- msgid "Not a valid email address"
575
  msgstr ""
576
 
577
- #: controllers/CheckSeo.php:268 controllers/CheckSeo.php:279
578
  msgid "Done!"
579
  msgstr ""
580
 
581
- #: controllers/CheckSeo.php:296
582
  msgid "Fixed!"
583
  msgstr ""
584
 
585
- #: controllers/CheckSeo.php:301
586
  msgid "Could not fix it. You need to change it manually."
587
  msgstr ""
588
 
589
- #: controllers/CheckSeo.php:310
590
  msgid "Saved! Task marked as done."
591
  msgstr ""
592
 
593
- #: controllers/FocusPages.php:147
594
  msgid "Focus Page does not exist or was deleted from your website."
595
  msgstr ""
596
 
597
- #: controllers/FocusPages.php:340
598
  msgid "Focus page is added. The audit may take a while so please be patient."
599
  msgstr ""
600
 
601
- #: controllers/FocusPages.php:347
602
  msgid "You reached the maximum number of focus pages for all your websites."
603
  msgstr ""
604
 
605
- #: controllers/FocusPages.php:350
 
 
 
606
  msgid "Error! Could not add the focus page."
607
- msgstr ""
608
 
609
- #: controllers/FocusPages.php:353
610
  msgid "Error! This focus page is not public."
611
  msgstr ""
612
 
613
- #: controllers/FocusPages.php:357 controllers/FocusPages.php:396
 
 
 
614
  msgid "Error! Could not find the focus page in your website."
615
- msgstr ""
616
 
617
- #: controllers/FocusPages.php:384
618
  msgid "Focus page sent for recheck. It may take a while so please be patient."
619
  msgstr ""
620
 
621
- #: controllers/FocusPages.php:387 controllers/FocusPages.php:391
622
  msgid "You've made too many requests, please wait a few minutes."
623
  msgstr ""
624
 
625
- #: controllers/FocusPages.php:407
626
  msgid "The focus page is deleted"
627
  msgstr ""
628
 
629
- #: controllers/Menu.php:123
630
  #, php-format
631
  msgid ""
632
  "An error occurred during activation. If this error persists, please contact "
633
  "us at: %s"
634
  msgstr ""
635
 
636
- #: controllers/Menu.php:160
637
  msgid "Dashboard"
638
  msgstr ""
639
 
640
  # @ squirrly-seo
641
- #: controllers/Menu.php:185 controllers/Menu.php:290 controllers/Menu.php:325
 
642
  #: view/Blocks/SLASearch.php:7
643
  #, fuzzy
644
  #| msgid "Squirrly settings"
645
  msgid "Squirrly SEO"
646
  msgstr "Squirrly Einstellungen"
647
 
648
- #: controllers/Menu.php:253
 
 
 
649
  msgid "SEO Snippet"
650
- msgstr ""
651
 
652
- #: controllers/Menu.php:268 controllers/Snippet.php:137
653
  msgid "Custom SEO"
654
  msgstr ""
655
 
656
  # @ squirrly-seo
657
- #: controllers/Menu.php:333
658
  #, fuzzy
659
  #| msgid "Squirrly settings"
660
  msgid "Squirrly Onboarding"
661
  msgstr "Squirrly Einstellungen"
662
 
663
- #: controllers/Menu.php:334
 
 
 
664
  msgid "Onboarding"
665
- msgstr ""
666
 
667
- #: controllers/Menu.php:363
668
  msgid "Import & Export SEO"
669
  msgstr ""
670
 
671
- #: controllers/Menu.php:364 view/SeoSettings/Backup.php:88
672
  msgid "Import SEO"
673
  msgstr ""
674
 
675
- #: controllers/Menu.php:374
676
  msgid "Squirrly Account Info"
677
  msgstr ""
678
 
679
- #: controllers/Menu.php:375
680
  msgid "Account Info"
681
  msgstr ""
682
 
683
- #: controllers/Menu.php:384
 
 
 
684
  msgid "Squirrly How To & Support"
685
- msgstr ""
686
 
687
- #: controllers/Menu.php:385
688
  msgid "Help & Support"
689
  msgstr ""
690
 
691
- #: controllers/Patterns.php:17
 
 
 
 
 
 
 
692
  msgid "Saved! This is how the preview looks like"
693
  msgstr ""
694
 
695
  # @ squirrly-seo
696
- #: controllers/Post.php:301
697
  #, fuzzy
698
  #| msgid "Could not send the email..."
699
  msgid "Could not add the demo post."
700
  msgstr "Konnte E-Mail nicht senden ..."
701
 
702
- #: controllers/Post.php:363 controllers/Post.php:388
703
  msgid "Can't get the post URL"
704
  msgstr ""
705
 
706
- #: controllers/Post.php:393
707
  msgid "Invalid request"
708
  msgstr ""
709
 
 
710
  #: controllers/PostsList.php:74 controllers/PostsList.php:117
 
 
711
  msgid "SQ Snippet"
712
- msgstr ""
713
 
714
- #: controllers/PostsList.php:75
715
  msgid "Optimized"
716
  msgstr ""
717
 
@@ -728,206 +769,215 @@ msgstr ""
728
  msgid "Not Public"
729
  msgstr ""
730
 
 
731
  #: controllers/PostsList.php:236
 
 
732
  msgid "Could not process"
733
- msgstr ""
734
 
735
  #: controllers/PostsList.php:237
736
  msgid "The Squirrly subscription has expired!"
737
  msgstr ""
738
 
739
  # @ squirrly-seo
740
- #: controllers/Ranking.php:78
741
  #, fuzzy
742
  #| msgid "Could not send the email..."
743
  msgid "Could not load the Rankings."
744
  msgstr "Konnte E-Mail nicht senden ..."
745
 
746
  # @ squirrly-seo
747
- #: controllers/Ranking.php:91
748
  #, fuzzy
749
  #| msgid "Could not send the email..."
750
  msgid "Could not load data."
751
  msgstr "Konnte E-Mail nicht senden ..."
752
 
753
- #: controllers/Ranking.php:143
754
  #, php-format
755
  msgid "Could not refresh the rank. Please check your SERP credits %shere%s"
756
  msgstr ""
757
 
758
- #: controllers/Ranking.php:145
759
  #, php-format
760
  msgid "%s is queued and the rank will be checked soon."
761
  msgstr ""
762
 
763
- #: controllers/Ranking.php:156
764
- msgid "The keyword is deleted"
765
  msgstr ""
766
 
767
  # @ squirrly-seo
768
- #: controllers/Ranking.php:158
769
  #, fuzzy
770
  #| msgid "Could not send the email..."
771
  msgid "Could not delete the keyword!"
772
  msgstr "Konnte E-Mail nicht senden ..."
773
 
774
- #: controllers/Ranking.php:177 controllers/Research.php:232
775
- #: controllers/Research.php:314 controllers/Research.php:621
776
- #: controllers/Research.php:706
777
  msgid "Deleted!"
778
  msgstr ""
779
 
780
- #: controllers/Ranking.php:194
781
  msgid "Sent!"
782
  msgstr ""
783
 
784
- #: controllers/Research.php:198
785
  msgid "Keyword Saved. The rank check will be ready in a minute."
786
  msgstr ""
787
 
788
- #: controllers/Research.php:200 controllers/Research.php:204
 
 
 
789
  msgid "Keyword Saved!"
790
- msgstr ""
791
 
792
- #: controllers/Research.php:265
793
  msgid "Invalid Label or Color!"
794
  msgstr ""
795
 
796
- #: controllers/Research.php:346 controllers/Research.php:656
797
- #: controllers/Research.php:682
 
 
 
798
  msgid "Invalid Keyword!"
799
- msgstr ""
800
 
801
- #: controllers/Research.php:405 controllers/Research.php:419
802
- #: controllers/Research.php:441 controllers/Research.php:444
803
- #: controllers/SeoSettings.php:387 controllers/SeoSettings.php:390
804
- #: controllers/SeoSettings.php:434 controllers/SeoSettings.php:437
805
  msgid "Error! The backup is not valid."
806
  msgstr ""
807
 
808
- #: controllers/Research.php:439 controllers/SeoSettings.php:385
809
  msgid "Great! The backup is restored."
810
  msgstr ""
811
 
812
- #: controllers/Research.php:447 controllers/SeoSettings.php:393
813
- #: controllers/SeoSettings.php:440
814
  msgid "Error! You have to enter a previously saved backup file."
815
  msgstr ""
816
 
817
- #: controllers/Research.php:468
818
  msgid "Could not add the keyword to SERP Check. Please try again."
819
  msgstr ""
820
 
821
- #: controllers/Research.php:470
822
  msgid "The keyword is added to SERP Check."
823
  msgstr ""
824
 
825
- #: controllers/Research.php:473
826
  msgid "Invalid parameters."
827
  msgstr ""
828
 
829
- #: controllers/Research.php:565
 
 
 
830
  msgid "Keyword Research limit exceeded"
831
- msgstr ""
832
 
833
- #: controllers/Research.php:680
834
  msgid "The keywords are added to SERP Check!"
835
  msgstr ""
836
 
837
- #: controllers/SeoSettings.php:321
 
 
 
838
  msgid "Google Analytics account is disconnected."
839
- msgstr ""
840
 
841
- #: controllers/SeoSettings.php:323 controllers/SeoSettings.php:336
 
 
 
842
  msgid "Error! Could not disconnect the account."
843
- msgstr ""
844
 
845
- #: controllers/SeoSettings.php:334
 
 
 
846
  msgid "Google Search Console account is disconnected."
847
- msgstr ""
848
 
849
- #: controllers/SeoSettings.php:431
850
  msgid "Great! The SEO backup is restored."
851
  msgstr ""
852
 
853
- #: controllers/SeoSettings.php:468 controllers/SeoSettings.php:512
854
  #, php-format
855
  msgid ""
856
  "Success! The import from %s was completed successfully and your SEO is safe!"
857
  msgstr ""
858
 
859
- #: controllers/SeoSettings.php:470
860
  msgid "Error! An error occured while import. Please try again."
861
  msgstr ""
862
 
863
- #: controllers/SeoSettings.php:482
864
  msgid "All the Plugin settings were imported successfuly!"
865
  msgstr ""
866
 
867
- #: controllers/SeoSettings.php:484
868
  msgid "No settings found for this plugin/theme."
869
  msgstr ""
870
 
871
- #: controllers/SeoSettings.php:532 models/Rollback.php:98
872
  msgid "Rollback to Previous Version"
873
  msgstr ""
874
 
875
  # @ squirrly-seo
876
- #: controllers/SeoSettings.php:556
877
  #, fuzzy
878
  #| msgid "Could not send the email..."
879
  msgid "Could not save the changes"
880
  msgstr "Konnte E-Mail nicht senden ..."
881
 
882
- # @ squirrly-seo
883
- #: controllers/SeoSettings.php:597 controllers/SeoSettings.php:633
884
- #, fuzzy
885
- #| msgid "Could not send the email..."
886
- msgid "Could not add the post type"
887
- msgstr "Konnte E-Mail nicht senden ..."
888
-
889
- #: controllers/SeoSettings.php:667
890
  msgid ""
891
  "Error! Could not get the code. Connect to Google Search Console and validate "
892
  "the connection."
893
  msgstr ""
894
 
895
- #: controllers/SeoSettings.php:688
896
  msgid ""
897
  "Error! Could not get the tracking code. Connect to Google Analytics and get "
898
  "the website tracking code from Admin area."
899
  msgstr ""
900
 
901
  # @ squirrly-seo
902
- #: controllers/Snippet.php:82
903
- #, fuzzy
904
- #| msgid "Squirrly LIVE SEO assistant"
905
- msgid "Squirrly SEO Snippet"
906
- msgstr "Squirrly LIVE SEO-Assistent"
907
-
908
- # @ squirrly-seo
909
- #: controllers/Snippet.php:184
910
  #, fuzzy
911
  #| msgid "Could not send the email..."
912
- msgid "Could not save the data"
913
  msgstr "Konnte E-Mail nicht senden ..."
914
 
915
- #: core/BlockFocusPages.php:22 view/Audits/AuditStats.php:89
916
- msgid "Audit in progress"
917
- msgstr ""
918
-
919
  # @ squirrly-seo
920
- #: core/BlockSupport.php:26
921
- msgid "Plugin Feedback"
 
 
 
 
 
 
 
 
922
  msgstr ""
923
 
924
- # @ squirrly-seo
925
- #: core/BlockSupport.php:58
926
- msgid "Thank you for your feedback"
927
  msgstr ""
928
 
929
- # @ squirrly-seo
930
- #: core/BlockSupport.php:62
931
  msgid "No message."
932
  msgstr ""
933
 
@@ -940,11 +990,11 @@ msgid ""
940
  msgstr ""
941
 
942
  #: core/Blocklogin.php:56
943
- msgid "Your email is not valid. Please enter a valid email"
944
  msgstr ""
945
 
946
  #: core/Blocklogin.php:59
947
- msgid "We could not create your account. Please enter a valid email"
948
  msgstr ""
949
 
950
  #: core/Blocklogin.php:78
@@ -958,7 +1008,6 @@ msgstr ""
958
  msgid "Could not send your information to Squirrly. Please try again."
959
  msgstr ""
960
 
961
- # @ squirrly-seo
962
  #: core/Blocklogin.php:104
963
  msgid "Wrong email or password!"
964
  msgstr ""
@@ -968,7 +1017,7 @@ msgid "You can only use this account for the URL you registered first!"
968
  msgstr ""
969
 
970
  #: core/Blocklogin.php:110
971
- msgid "An error occured"
972
  msgstr ""
973
 
974
  #: core/Blocklogin.php:130
@@ -978,14 +1027,16 @@ msgid ""
978
  "webmaster) and request them to add %s to their IP whitelist."
979
  msgstr ""
980
 
981
- # @ squirrly-seo
982
  #: core/Blocklogin.php:135
983
  msgid "Both fields are required."
984
  msgstr ""
985
 
986
- #: models/Assistant.php:50 view/Blocks/SEOIssues.php:42
 
 
 
987
  msgid "Task Details"
988
- msgstr ""
989
 
990
  #: models/Assistant.php:57
991
  msgid "active task"
@@ -993,7 +1044,6 @@ msgstr ""
993
 
994
  # @ squirrly-seo
995
  #: models/Assistant.php:80 view/Blocks/Jorney.php:69
996
- #: view/Blocks/KRHistory.php:47
997
  #, fuzzy
998
  #| msgid "Do the research"
999
  msgid "Do Keyword Research"
@@ -1088,9 +1138,12 @@ msgid ""
1088
  "your way around it."
1089
  msgstr ""
1090
 
 
1091
  #: models/Assistant.php:114
 
 
1092
  msgid "Activate Meta Automation"
1093
- msgstr ""
1094
 
1095
  #: models/Assistant.php:115
1096
  #, php-format
@@ -1119,7 +1172,7 @@ msgid ""
1119
  "off."
1120
  msgstr ""
1121
 
1122
- #: models/Assistant.php:124 view/Blocks/Snippet.php:376
1123
  #: view/SeoSettings/Jsonld.php:35
1124
  msgid "Activate JSON-LD"
1125
  msgstr ""
@@ -1138,7 +1191,7 @@ msgid ""
1138
  "you're an advanced user."
1139
  msgstr ""
1140
 
1141
- #: models/Assistant.php:129 view/Blocks/Snippet.php:479
1142
  #: view/SeoSettings/Automation.php:377 view/SeoSettings/Social.php:47
1143
  msgid "Activate Open Graph"
1144
  msgstr ""
@@ -1153,7 +1206,7 @@ msgid ""
1153
  "your site."
1154
  msgstr ""
1155
 
1156
- #: models/Assistant.php:134 view/Blocks/Snippet.php:733
1157
  #: view/SeoSettings/Automation.php:404 view/SeoSettings/Social.php:270
1158
  msgid "Activate Twitter Card"
1159
  msgstr ""
@@ -1233,7 +1286,7 @@ msgstr ""
1233
 
1234
  # @ squirrly-seo
1235
  #: models/Assistant.php:163 models/focuspages/Accuracy.php:45
1236
- #: models/focuspages/Length.php:71 models/focuspages/Traffic.php:105
1237
  #, fuzzy
1238
  #| msgid "Google %sAnalytics ID%s`:"
1239
  msgid "Connect Google Analytics"
@@ -1250,9 +1303,12 @@ msgid ""
1250
  "having to know a single thing about Google Analytics."
1251
  msgstr ""
1252
 
 
1253
  #: models/Assistant.php:168 models/Assistant.php:190
 
 
1254
  msgid "Connect Google Search Console"
1255
- msgstr ""
1256
 
1257
  #: models/Assistant.php:169
1258
  #, php-format
@@ -1265,9 +1321,12 @@ msgid ""
1265
  "Google has about your site, directly from your Squirrly SEO Plugin."
1266
  msgstr ""
1267
 
 
1268
  #: models/Assistant.php:173
 
 
1269
  msgid "Set the Audit Email"
1270
- msgstr ""
1271
 
1272
  #: models/Assistant.php:174
1273
  #, php-format
@@ -1345,7 +1404,7 @@ msgid ""
1345
  "on those tasks and turning elements to green you'll complete this task."
1346
  msgstr ""
1347
 
1348
- #: models/Assistant.php:253 models/abstract/Assistant.php:179
1349
  msgid "You chose to ignore this task. Click to activate it."
1350
  msgstr ""
1351
 
@@ -1354,7 +1413,7 @@ msgid "Average Content Optimization"
1354
  msgstr ""
1355
 
1356
  #: models/Audits.php:18 models/Audits.php:97 models/Audits.php:107
1357
- #: models/Audits.php:117 models/Audits.php:127 models/Audits.php:716
1358
  msgid "Great!"
1359
  msgstr ""
1360
 
@@ -1372,20 +1431,19 @@ msgid ""
1372
  "you can use, that are related to: 'jazz concert', 'john dane', 'jazz 2025' "
1373
  "and 'jazz in phoenix'. Find out what others search for. If you'll optimize "
1374
  "the page for those keywords, you'll be certain that jazz fans will find it. "
1375
- "The keyword research tool from Squirrly SEO (available as a web tool and "
1376
- "also as a plugin for WordPress) helps you figure out exactly what to use. %s "
1377
- "Start optimizing your content. You can use a tool like Squirrly SEO to "
1378
- "optimize your pages. Squirrly guides you towards the best practices of "
1379
- "optimizing a page for SEO and avoiding keyword stuffing.%s"
1380
  msgstr ""
1381
 
1382
  #: models/Audits.php:21
1383
  msgid ""
1384
  "Optimization is NOT about stuffing in keywords. It's about writing the page "
1385
- "in such page that Search Engine bots and Humans alike will easily understand "
1386
- "that the page is exactly about the topic they were searching for. If you are "
1387
- "unsure how to do this, Squirrly SEO (available as a web tool or as a "
1388
- "WordPress plugin) helps you get the job done with ease."
1389
  msgstr ""
1390
 
1391
  #: models/Audits.php:22
@@ -1429,9 +1487,12 @@ msgid ""
1429
  "does not bloat your code."
1430
  msgstr ""
1431
 
 
1432
  #: models/Audits.php:31
 
 
1433
  msgid "Add the meta DcPublisher tag in the page's header"
1434
- msgstr ""
1435
 
1436
  #: models/Audits.php:38
1437
  msgid "Top Ten Pages This Week"
@@ -1443,10 +1504,10 @@ msgid ""
1443
  "If there is enough data in Google Analytics, you should see the list of "
1444
  "pages with the most visitors in the last week. %s Having at least 100 "
1445
  "visitors per page every week is crucial. %s Search Engines like Google and "
1446
- "Bing will push down a page which doesn't attact visitors."
1447
  msgstr ""
1448
 
1449
- #: models/Audits.php:45 view/FocusPages/FocusPageStats.php:188
1450
  msgid "Page Traffic"
1451
  msgstr ""
1452
 
@@ -1470,15 +1531,23 @@ msgid ""
1470
  "bringing you traffic. Of course, the key is to first make these items "
1471
  "visible in the places where you publish them. %s You need an email list. "
1472
  "Make sure that people who come to your store, do business with you, visit "
1473
- "your website, read your blog leave their email address so you can "
1474
  "communicate with them further on. An alternative to this is to make a "
1475
  "Chatbot for Facebook Messenger and get them hooked to the bot. By doing any "
1476
- "of these, you'll be able to bring those people back to your website. %s"
 
 
 
 
 
 
 
 
1477
  msgstr ""
1478
 
1479
  #: models/Audits.php:49
1480
  msgid ""
1481
- "Get each person who arrives to your site once to leave something that you "
1482
  "can use later on to bring them to your site again. You can use Facebook "
1483
  "Pixel and then retarget them, you can make them subscribe to Desktop "
1484
  "Notifications to receive push notifications, you can have them download an "
@@ -1503,14 +1572,15 @@ msgid "The pages with noindex"
1503
  msgstr ""
1504
 
1505
  #: models/Audits.php:60
1506
- #, php-format
1507
  msgid ""
1508
  "How can we fix the noindex for our pages? %s You're currently telling Google "
1509
  "not to index some of your pages through a robots tag inside your code. %s On "
1510
  "WordPress, it's super easy to control on which pages to place no-index and "
1511
  "which pages should never get tagged with no-index if you use the Squirrly "
1512
- "SEO Plugin. %s If you're using something else, make sure you remove <META "
1513
- "NAME=“ROBOTS” CONTENT=“NOINDEX, NOFOLLOW”> from the <head> of your HTML.%s"
 
 
1514
  msgstr ""
1515
 
1516
  #: models/Audits.php:61
@@ -1528,9 +1598,12 @@ msgstr ""
1528
  msgid "Add the correct meta robots tag in the pages"
1529
  msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
1530
 
 
1531
  #: models/Audits.php:67
 
 
1532
  msgid "Followed by search engines?"
1533
- msgstr ""
1534
 
1535
  #: models/Audits.php:69
1536
  msgid "The pages with nofollow"
@@ -1600,8 +1673,7 @@ msgid ""
1600
  "compress them with tools like ShortPixel.com %s Minify Javascripts, use "
1601
  "CDNs, use gZip. %s Use a professional service if your site is based on "
1602
  "WordPress. Our parent company, Squirrly Limited, offers such a service for "
1603
- "WordPress.org based websites [link]https://plugin.squirrly.co/store/fix-site-"
1604
- "structure-seo-security-speed-broken-links-css-javascript/[/link]%s"
1605
  msgstr ""
1606
 
1607
  #: models/Audits.php:90
@@ -1638,7 +1710,7 @@ msgstr ""
1638
  #, php-format
1639
  msgid ""
1640
  "How can we fix the Duplicate Titles on our pages? %s Features like SEO "
1641
- "Automation or SEO Snippet from Squirrly SEO it will generate your META title "
1642
  "automatically from the content of your page (in case you didn't already "
1643
  "place a custom title). Make every single META Title of every page unique "
1644
  "(you never repeat it on any other URL from the website). You will write what "
@@ -1653,8 +1725,7 @@ msgid ""
1653
  "Strike GO. Buy it Now'. %s All these problematic cases can be forgotten once "
1654
  "you start using Squirrly SEO . With its Patterns feature, it will create "
1655
  "rules for WordPress that ensure each title for each page on your site is "
1656
- "unique. This is completely available on the free version, so you can start "
1657
- "right away.%s"
1658
  msgstr ""
1659
 
1660
  #: models/Audits.php:100
@@ -1688,29 +1759,20 @@ msgstr ""
1688
  #: models/Audits.php:109
1689
  #, php-format
1690
  msgid ""
1691
- "How can we fix the Duplicate Descriptions on our website? %s Features like "
1692
- "SEO Automation feature from Squirrly SEO, because it will generate your META "
1693
  "description automatically from the content of your page (in case you didn't "
1694
  "already place a custom description). Make every single META description of "
1695
  "every page unique (you never repeat it on any other URL from the website). "
1696
- "Make this text awesome and you'll get people clicking on it. %s See if you "
1697
- "can assign rules on WordPress to have it change the META description of each "
1698
- "URL according to different patterns. Normally the platform will take the "
1699
- "Meta Description of the latest product inside the category and add it to the "
1700
- "Meta Description of that particular category. In this case you can end up "
1701
- "with something like: example.com/shooter-games will have description: "
1702
- "'Counter Strike GO is the most popular shooter. Buy it Now' and also: "
1703
- "example.com/shooter-games/cs-go will also have the description: 'Counter "
1704
- "Strike GO is the most popular shooter. Buy it Now' %s All these problematic "
1705
- "cases can be forgotten once you start using Squirrly SEO . With its Patterns "
1706
- "feature, it will create rules for WordPress that ensure each description for "
1707
- "each page on your site is unique. This is completely available on the free "
1708
- "version, so you can start right away.%s"
1709
  msgstr ""
1710
 
1711
  #: models/Audits.php:110
1712
  msgid ""
1713
- "On WordPress you can use Squirrly SEO to control everything about your META "
1714
  "descriptions and make them stand out on search engines."
1715
  msgstr ""
1716
 
@@ -1743,24 +1805,19 @@ msgstr ""
1743
  #: models/Audits.php:119
1744
  #, php-format
1745
  msgid ""
1746
- "How can we fix the Empty Titles on our pages? %s Features like SEO "
1747
- "Automation or SEO Snippet from Squirrly SEO it will generate your META title "
1748
  "automatically from the content of your page. Write what you want Google to "
1749
  "display in the search results as a title for your listing. Make this text "
1750
- "awesome and you'll get people clicking on it. %s See if you can assign rules "
1751
- "to WordPress to have it create Titles for each URL according to different "
1752
- "patterns. By having clear rules for all URLs you'll ensure that Empty Titles "
1753
- "will no longer be a problem in the future. %s All these problematic cases "
1754
- "can be forgotten once you start using Squirrly SEO . With its Patterns "
1755
- "feature, it will create rules for WordPress that ensure each title for each "
1756
- "page on your site is unique. This is completely available on the free "
1757
- "version, so you can start right away.%s"
1758
  msgstr ""
1759
 
1760
  #: models/Audits.php:120
1761
  msgid ""
1762
- "On WordPress you can use Squirrly SEO to create and control everything about "
1763
- "your META titles and make them stand out on search engines."
1764
  msgstr ""
1765
 
1766
  #: models/Audits.php:121
@@ -1790,23 +1847,23 @@ msgstr ""
1790
  #: models/Audits.php:129
1791
  #, php-format
1792
  msgid ""
1793
- "How can we fix the Empty Descriptions on our website? %s Features like SEO "
1794
- "Automation or SEO Snippet from Squirrly SEO it will generate your META "
1795
- "description automatically from the content of your page. Make this text "
1796
  "awesome and you'll get people clicking on it. %s See if you can assign rules "
1797
  "to WordPress to have it create META descriptions for each URL according to "
1798
  "different patterns. By having clear rules for all URLs you'll ensure that "
1799
  "Empty Descriptions will no longer be a problem in the future. %s All these "
1800
  "problematic cases can be forgotten once you start using Squirrly SEO . With "
1801
  "its Patterns feature, it will create rules for WordPress that ensure each "
1802
- "description for each page on your site is unique. This is completely "
1803
- "available on the free version, so you can start right away.%s"
1804
  msgstr ""
1805
 
1806
  #: models/Audits.php:130
1807
  msgid ""
1808
- "On WordPress you can use Squirrly SEO to create and control everything about "
1809
- "your META descriptions and make them stand out on search engines."
1810
  msgstr ""
1811
 
1812
  #: models/Audits.php:131
@@ -1824,20 +1881,14 @@ msgstr ""
1824
  #: models/Audits.php:139
1825
  #, php-format
1826
  msgid ""
1827
- "How can we fix the title tags of our pages %s Add HTML tags where you define "
1828
- "the title of each page. Namely, add <title> ### </title>, where ### will be "
1829
- "whatever you want to display as title for the page. %s In my example, above, "
1830
- "if you don't replace the ###, then when you see a browser tab opened with "
1831
- "your page, it will show you site icon (favicon) and the text ###. %s You "
1832
- "will place the title tag inside the <head> section of your page's code.%s"
1833
  msgstr ""
1834
 
1835
  #: models/Audits.php:140
1836
- msgid ""
1837
- "Platforms like Shopify handle this with their default engine. On WordPress "
1838
- "you can use Squirrly SEO. It will create titles for every page. It will help "
1839
- "you customize titles for every page, all while making you write ZERO, nada, "
1840
- "rien, code. No coding required once you use a tool like Squirrly SEO."
1841
  msgstr ""
1842
 
1843
  #: models/Audits.php:141
@@ -1860,31 +1911,27 @@ msgid ""
1860
  "make for a horrible listing inside the Google search page. If people find "
1861
  "your listing, they will not click on your listing in case your META "
1862
  "Description is horrible to look at, is poorly written, or it doesn't seem to "
1863
- "make sense. %s <meta name=\"description\" content=\"\" /> %s You will place "
1864
- "the META description text inside the content=\"\" section above, between \" "
1865
- "and \". Make sure your text describes the value / benefit that a person "
1866
- "searching on Google would get by accessing your page. Once you're done "
1867
- "writing the content part of the above tag, make sure you place it inside the "
1868
- "<head> section of your page's code.%s"
1869
  msgstr ""
1870
 
1871
  #: models/Audits.php:150
1872
- msgid ""
1873
- "Platforms like Shopify handle this with their default engine. On WordPress "
1874
- "you can use Squirrly SEO. It will automatically create META Descriptions for "
1875
- "every page. It will help you customize these descriptions for every page, "
1876
- "all while making you write ZERO, nada, rien, code. No coding required once "
1877
- "you use a tool like Squirrly SEO. You can even customize the way it "
1878
- "automates your descriptions."
1879
  msgstr ""
1880
 
1881
  #: models/Audits.php:151
1882
  msgid "Add meta description to this page of your site"
1883
  msgstr ""
1884
 
1885
- #: models/Audits.php:156 models/bulkseo/Metas.php:89
 
 
 
1886
  msgid "Meta Keyword"
1887
- msgstr ""
1888
 
1889
  # @ squirrly-seo
1890
  #: models/Audits.php:157
@@ -1911,7 +1958,7 @@ msgstr ""
1911
  msgid "Make sure that the search for your keywords is on a rising trend"
1912
  msgstr ""
1913
 
1914
- #: models/Audits.php:166 models/bulkseo/Metas.php:94
1915
  msgid "Canonical Link"
1916
  msgstr ""
1917
 
@@ -1923,8 +1970,8 @@ msgstr ""
1923
  #, php-format
1924
  msgid ""
1925
  "How can we fix the Canonical Links problems of our pages? %s Add this code "
1926
- "to the <head> section of your HTML page: <link rel=\"canonical\" href="
1927
- "\"{site}\" /> %s Think of a canonical link as the \"preferred version\" of "
1928
  "the page. %s Make sure you have this definition on your URL especially if "
1929
  "you've copied the content from another LINK on the web. Example: You "
1930
  "published a blog post on Medium and then also added it to your own blog on "
@@ -1932,7 +1979,8 @@ msgid ""
1932
  "penalized for duplicate content. Medium also allows you to re-publish "
1933
  "content from your own site to Medium and helps you get the rel=\"canonical\" "
1934
  "inside the medium post to show that the original is hosted on your own site."
1935
- "%s"
 
1936
  msgstr ""
1937
 
1938
  #: models/Audits.php:170
@@ -2008,11 +2056,14 @@ msgid ""
2008
  "specification made."
2009
  msgstr ""
2010
 
 
2011
  #: models/Audits.php:191
 
 
2012
  msgid "Add the meta encoding tag in the page's header"
2013
- msgstr ""
2014
 
2015
- #: models/Audits.php:196 models/Audits.php:206
2016
  msgid "Does your site have a feed or sitemap?"
2017
  msgstr ""
2018
 
@@ -2044,15 +2095,19 @@ msgstr ""
2044
  msgid "Add a RSS feed and Sitemap to your site"
2045
  msgstr ""
2046
 
 
 
 
 
2047
  #: models/Audits.php:209
2048
  #, php-format
2049
  msgid ""
2050
  "How can we fix the robots.txt of the website? %s You'll need to have a "
2051
- "http://domain.com/robots.txt link on your site, that crawlers can access to "
2052
  "know which pages they are allowed to crawl. (gather info from) %s Create or "
2053
- "Edit a robots.txt file using this free tool [link]http://tools.seochat.com/"
2054
- "tools/online-robots-txt-generator/#sthash.Ucw1odTS.dpbs[/link] %s Once you "
2055
- "have the file, upload it to your ftp and make sure it can be accessed.%s"
2056
  msgstr ""
2057
 
2058
  #: models/Audits.php:210
@@ -2086,14 +2141,17 @@ msgstr ""
2086
 
2087
  #: models/Audits.php:220
2088
  msgid ""
2089
- "Platforms like Shopify handle this with their default engine. On WordPress "
2090
- "need to make sure the WordPress theme you buy is responsive and has this "
2091
  "definition."
2092
  msgstr ""
2093
 
 
2094
  #: models/Audits.php:221
 
 
2095
  msgid "Add the meta viewport tag in the page's header"
2096
- msgstr ""
2097
 
2098
  #: models/Audits.php:226
2099
  msgid "Site optimized for speed?"
@@ -2109,10 +2167,11 @@ msgid ""
2109
  "How can we fix the gzip compression for our website? %s GZIP compression "
2110
  "must be installed on the web server, such as in Apache, IIS and nginx. When "
2111
  "retrieving the website the web browser will prompt the visitor he/she can "
2112
- "receive the GZIP. %s Then the web server will send the files GZIP-"
2113
- "compressed to the web browser, after which the web browser will unzip them. "
2114
- "%s If the visitor’s web browser does not support GZIP, the files will be "
2115
- "sent back to the visitor in their original state (uncompressed).%s"
 
2116
  msgstr ""
2117
 
2118
  #: models/Audits.php:230
@@ -2209,17 +2268,23 @@ msgid ""
2209
  "profiles. Using tools like these will also give you a clear picture of what "
2210
  "Social Media platforms your desired audience uses most, so that you can "
2211
  "create profiles only for those social media platforms. %s You should create "
2212
- "Giveways with Gleam.io [link]http://gleam.io[/link] or create Thunder Claps "
2213
- "[link]http://thunderclap.it[/link] or HeadTalker [link]https://headtalker."
2214
- "com/[/link] to make any page super popular on social media. %s"
 
 
 
 
 
2215
  msgstr ""
2216
 
2217
  #: models/Audits.php:289
2218
  msgid ""
2219
  "All the shares and likes that your fans will give your pages will contribute "
2220
- "to the total number of shares from social media (social signals). This "
2221
- "ranking factor that is important for search engines like Google, because it "
2222
- "shows that many people care about your pages."
 
2223
  msgstr ""
2224
 
2225
  #: models/Audits.php:290
@@ -2304,29 +2369,29 @@ msgstr ""
2304
  msgid ""
2305
  "How can we fix the Open Graph of the website? %s You need to make sure "
2306
  "you're going to fix the Open Graph image AS WELL AS all the other open graph "
2307
- "elements. The third bullet point in this section offers you the examples you "
2308
- "need to implement in the <head> section of your page's code. Make sure you "
2309
- "replace the elements inside content=\" \" with your own stuff: your own "
2310
- "titles, own image URLs, etc. %s If you're on WordPress, you're easily "
2311
- "getting all the settings you need from the Squirrly SEO . Make sure you use "
2312
- "it. %s <meta property=“og:url” content=“{site}/product/expectation-marketing-"
2313
  "ebook/“ /> %s <meta property=“og:title” content=“Expectation Marketing "
2314
- "[Book]” /> %s <meta property=“og:description” content=“If you&#039;re "
2315
- "wondering why your marketing strategy isn&#039;t bringing the results you "
2316
- "expected this is the right ebook for you. Expectation Marketing is about "
2317
- "giving you an acti” /> %s <meta property=“og:type” content=“product” /> %s "
2318
- "<meta property=“og:image” content=“{site}/image.jpg” /> %s <meta "
2319
- "property=“og:image:width” content=“700” /> %s <meta property=“og:image:"
2320
- "height” content=“536” /> %s <meta property=“og:image:type” content=“image/"
2321
- "jpeg” /> %s <meta property=“og:site_namecontent=“Expectation Marketing” /> "
2322
- "%s <meta property=“og:locale” content=“en” />%s"
2323
  msgstr ""
2324
 
2325
  #: models/Audits.php:319
2326
  msgid ""
2327
- "Fixing this will improve Click Through Rates on Facebook, Google Plus, "
2328
- "LinkedIN. Guaranteed. Make sure you use this to control how your pages look "
2329
- "on social media when people share them."
2330
  msgstr ""
2331
 
2332
  #: models/Audits.php:320
@@ -2346,20 +2411,19 @@ msgstr ""
2346
  msgid ""
2347
  "How can we fix the Twitter Cards of the website? %s You need to make sure "
2348
  "you're going to fix the Twitter Card image AS WELL AS all the other twitter "
2349
- "card elements. The third bullet point in this section offers you the "
2350
- "examples you need to implement in the <head> section of your page's code. "
2351
- "Make sure you replace the elements inside content=\" \" with your own stuff: "
2352
- "your own titles, own image URLs, etc. %s If you're on WordPress, you're "
2353
- "easily getting all the settings you need from the Squirrly SEO . Make sure "
2354
- "you use it. %s <meta property=“twitter:url” content=“{site}/product/"
2355
- "expectation-marketing-ebook/“ /> %s <meta property=“twitter:title” "
2356
- "content=“Expectation Marketing [Book]” /> %s <meta property=“twitter:"
2357
- "description” content=“If you&#039;re wondering why your marketing strategy "
2358
- "isn&#039;t bringing the results you expected this is the right ebook for "
2359
- "you. Expectation Marketing is about giving you an acti” /> %s <meta "
2360
- "property=“twitter:image” content=“{site}/image.jpg” /> %s <meta "
2361
- "property=“twitter:domain” content=“Expectation Marketing/> %s <meta "
2362
- "property=“twitter:card” content=“summary” />%s"
2363
  msgstr ""
2364
 
2365
  #: models/Audits.php:329
@@ -2402,16 +2466,22 @@ msgid ""
2402
  "coupon codes and links to your site) - hosts giveaways and contests (many "
2403
  "websites that will happily link to the contest page on your website) %s "
2404
  "Broken Link Building, using tools like Screaming Frog to help you find "
2405
- "broken links.%s"
 
 
 
 
 
2406
  msgstr ""
2407
 
2408
- #: models/Audits.php:342 models/Audits.php:351 models/Audits.php:360
2409
  msgid ""
2410
  "Use the BackLinks Assistant [link]https://www.producthunt.com/upcoming/"
2411
- "backlinks-assistant-by-squirrly[/link] . There are many other ways to "
2412
- "increase the number of backlinks. Just check out the full documentation "
2413
- "below. Send it to your team. Brainstorm items from our list which your team "
2414
- "can start working on."
 
2415
  msgstr ""
2416
 
2417
  #: models/Audits.php:347
@@ -2453,6 +2523,15 @@ msgid ""
2453
  "broken links.%s"
2454
  msgstr ""
2455
 
 
 
 
 
 
 
 
 
 
2456
  #: models/Audits.php:361
2457
  msgid ""
2458
  "Find more blogs, forums, directories to add links there. Contribute to the "
@@ -2470,24 +2549,26 @@ msgstr ""
2470
  #: models/Audits.php:369
2471
  #, php-format
2472
  msgid ""
2473
- "How can we fix the No-Follow links of the website? %s You can start doing "
2474
- "this even if you don't have an advanced or complex SEO strategy for all your "
2475
- "site's inner links. If you have pages in your SEO strategy that are super "
2476
- "important (you NEED those pages to be found via search) make sure you add: "
2477
- "<meta name=\"robots\" content=\"index, nofollow\" /> This ensures that "
2478
- "Google considers this a final page. If many other pages link on to this page "
2479
- "and this is the final one, it means that it is the most valuable resource. "
2480
- "%s Identify links on your pages that are not important for you or for the "
2481
- "purpose of the site itself. Maybe you're sending a link to chef Jamie "
2482
- "Oliver's recipe for hot sauce. You should make sure that you add the No "
2483
- "Follow tag to that link going out of your site, because you don't want "
2484
- "Google to pass on link juice to Jaime Oliver. You'd give him a part of your "
2485
- "SEO Authority and you don't want that. You should also add No-Follow tags to "
2486
- "internal links from your very own site. Add no-follow to pages like \"/login"
2487
- "\", \"/register\" \"/terms-of-use\", which are not important to be found via "
2488
- "search engines. %s Add rel=\"nofollow\" to links inside your pages to fix "
2489
- "this task. If you'd want to NoFollow your Sign In page you could do it like "
2490
- "this: <a href=\"signin.php\" rel=\"nofollow\">sign in</a>%s"
 
 
2491
  msgstr ""
2492
 
2493
  #: models/Audits.php:370
@@ -2521,14 +2602,21 @@ msgid ""
2521
  "from social media, google analytics and inbound links (backlinks to your own "
2522
  "site) %s You can follow the PRO Tips sections from Audit. %s Get more Buzz "
2523
  "on Social Media. Get More Traffic. Get More Sites to link back to your own "
2524
- "site. That's how you increase your Authority.%s"
 
 
 
 
 
 
2525
  msgstr ""
2526
 
2527
  #: models/Audits.php:384
2528
  msgid ""
2529
- "You can build up a solid Content Strategy using this Assistant Software "
2530
- "[link]https://www.producthunt.com/upcoming/strategy-assistant-by-squirrly[/"
2531
- "link] or you can start getting more BackLinks using the BackLinks Assistant "
 
2532
  "[link]https://www.producthunt.com/upcoming/backlinks-assistant-by-squirrly[/"
2533
  "link]."
2534
  msgstr ""
@@ -2551,7 +2639,8 @@ msgid ""
2551
  "of course). %s Increase your SEO rankings, get more shares on social media. "
2552
  "You can use tools like Social Squirrly to make sure you constantly promote "
2553
  "your pages, without doing any manual work. And without forgetting to keep "
2554
- "posting them. (link: squirrly.co/social)%s"
 
2555
  msgstr ""
2556
 
2557
  #: models/Audits.php:394
@@ -2575,9 +2664,10 @@ msgid ""
2575
  "How can we fix the Domain Age of the website? %s While you certainly can't "
2576
  "go back and forth in time like the Flash, there are things you can do, like: "
2577
  "make sure your domain can be crawled by search engines. %s Ping your domain "
2578
- "name as soon as possible using a tool like: Google Ping (LINK: googleping."
2579
- "com) %s Get your website on Way Back Machine. [link]https://archive.org/web/"
2580
- "[/link] Archive.org even has a tool called Save Page Now which will "
 
2581
  "guarantee your entry into Way Back Machine.%s"
2582
  msgstr ""
2583
 
@@ -2644,62 +2734,62 @@ msgid ""
2644
  "user's home screens when they bookmark your pages."
2645
  msgstr ""
2646
 
2647
- #: models/Audits.php:465 models/Audits.php:498 models/Audits.php:517
2648
- #: models/Audits.php:619 models/focuspages/Audit.php:189
2649
- #: models/focuspages/Audit.php:210 models/focuspages/Audit.php:231
2650
- #: models/focuspages/Audit.php:252
2651
  msgid "URL"
2652
  msgstr ""
2653
 
2654
- #: models/Audits.php:466
2655
  msgid "Visitors"
2656
  msgstr ""
2657
 
2658
- #: models/Audits.php:467
2659
  msgid "Bounce"
2660
  msgstr ""
2661
 
2662
- #: models/Audits.php:483
2663
  msgid "No traffic data found"
2664
  msgstr ""
2665
 
2666
- #: models/Audits.php:499 models/Audits.php:518
2667
  msgid "Total"
2668
  msgstr ""
2669
 
2670
- #: models/Audits.php:545
2671
  msgid "Facebook reactions"
2672
  msgstr ""
2673
 
2674
- #: models/Audits.php:549
2675
  msgid "Facebook shares"
2676
  msgstr ""
2677
 
2678
- #: models/Audits.php:553
2679
  msgid "Reddit shares"
2680
  msgstr ""
2681
 
2682
- #: models/Audits.php:557
2683
  msgid "Pinterest shares"
2684
  msgstr ""
2685
 
2686
- #: models/Audits.php:620
2687
  msgid "Value"
2688
  msgstr ""
2689
 
2690
- #: models/Audits.php:688 view/Audits/Audit.php:141 view/Audits/Compare.php:162
2691
  msgid "PRO TIP"
2692
  msgstr ""
2693
 
2694
- #: models/Audits.php:708
2695
  msgid "Requires Attention!"
2696
  msgstr ""
2697
 
2698
- #: models/Audits.php:712
2699
- msgid "Can be improved"
2700
  msgstr ""
2701
 
2702
- #: models/Audits.php:774
2703
  msgid "not yet"
2704
  msgstr ""
2705
 
@@ -2707,15 +2797,15 @@ msgstr ""
2707
  msgid "METAs"
2708
  msgstr ""
2709
 
2710
- #: models/BulkSeo.php:18 view/Blocks/Snippet.php:92
2711
  msgid "Open Graph"
2712
  msgstr ""
2713
 
2714
- #: models/BulkSeo.php:19 view/Blocks/Snippet.php:96
2715
  msgid "Twitter Card"
2716
  msgstr ""
2717
 
2718
- #: models/BulkSeo.php:20 models/FocusPages.php:20 view/Blocks/Snippet.php:100
2719
  msgid "Visibility"
2720
  msgstr ""
2721
 
@@ -2734,7 +2824,7 @@ msgid ""
2734
  msgstr ""
2735
 
2736
  #: models/CheckSeo.php:39 models/CheckSeo.php:40
2737
- #: models/bulkseo/Visibility.php:104 view/Blocks/Snippet.php:960
2738
  msgid "Discourage search engines from indexing this site"
2739
  msgstr ""
2740
 
@@ -4302,9 +4392,12 @@ msgid ""
4302
  "Pages (the ones where you see low CTR)"
4303
  msgstr ""
4304
 
 
4305
  #: models/CheckSeo.php:867
 
 
4306
  msgid "Audit Score is Over 50%"
4307
- msgstr ""
4308
 
4309
  #: models/CheckSeo.php:868
4310
  msgid ""
@@ -4443,9 +4536,12 @@ msgid ""
4443
  "be nearly impossible for those pages to reach top positions on Google."
4444
  msgstr ""
4445
 
 
4446
  #: models/CheckSeo.php:945
 
 
4447
  msgid "Audit Score is Over 70%"
4448
- msgstr ""
4449
 
4450
  #: models/CheckSeo.php:946
4451
  msgid ""
@@ -4657,22 +4753,26 @@ msgid "You got better Score for your Audit"
4657
  msgstr ""
4658
 
4659
  # @ squirrly-seo
4660
- #: models/CheckSeo.php:1464
4661
  #, fuzzy
4662
  #| msgid "Could not send the email..."
4663
  msgid "Could not verify the frontend."
4664
  msgstr "Konnte E-Mail nicht senden ..."
4665
 
4666
- #: models/CheckSeo.php:1831
 
 
 
 
4667
  msgid "Just another WordPress site"
4668
  msgstr ""
4669
 
4670
- #: models/CheckSeo.php:1970
4671
  #, php-format
4672
  msgid "Focus Page was not found (error %s)"
4673
  msgstr ""
4674
 
4675
- #: models/CheckSeo.php:1971 models/CheckSeo.php:2015
4676
  msgid ""
4677
  "The way your WordPress site is currently hosted can affect the way Squirrly "
4678
  "SEO operates in order to retrieve and process data about your Focus Pages. "
@@ -4680,23 +4780,23 @@ msgid ""
4680
  "audits can be generated by our system."
4681
  msgstr ""
4682
 
4683
- #: models/CheckSeo.php:1972 models/CheckSeo.php:1991
4684
  msgid ""
4685
  "Use a different browser to check if your Focus Page is visible. Whitelist "
4686
  "our crawler IP address (176.9.112.210) to allow our server to verify your "
4687
  "page so that you’ll receive a full audit."
4688
  msgstr ""
4689
 
4690
- #: models/CheckSeo.php:1973 models/CheckSeo.php:2017
4691
  msgid "An error is preventing Squirrly from processing your Focus Page audits."
4692
  msgstr ""
4693
 
4694
- #: models/CheckSeo.php:1980
4695
  #, php-format
4696
  msgid "Your Focus Page is redirected to another page (error %s)"
4697
  msgstr ""
4698
 
4699
- #: models/CheckSeo.php:1981
4700
  #, php-format
4701
  msgid ""
4702
  "Right now, your Focus Page sends users and search engines to a different URL "
@@ -4708,23 +4808,23 @@ msgid ""
4708
  "operates."
4709
  msgstr ""
4710
 
4711
- #: models/CheckSeo.php:1982
4712
  msgid ""
4713
  "Choose a page that does NOT redirect to a different page as your Focus Page. "
4714
  "Your Focus Page should have a single URL associated to it so that Squirrly "
4715
  "can serve you the best data."
4716
  msgstr ""
4717
 
4718
- #: models/CheckSeo.php:1983
4719
  msgid "Make sure that your Focus Page is NOT redirected to a different page."
4720
  msgstr ""
4721
 
4722
- #: models/CheckSeo.php:1989
4723
  #, php-format
4724
  msgid "Ensure your Focus Pages can be accessed (error %s)"
4725
  msgstr ""
4726
 
4727
- #: models/CheckSeo.php:1990
4728
  #, php-format
4729
  msgid ""
4730
  "A server-side error is preventing Squirrly from being able to access and "
@@ -4734,16 +4834,16 @@ msgid ""
4734
  "page, which is a critical issue."
4735
  msgstr ""
4736
 
4737
- #: models/CheckSeo.php:1992
4738
  msgid "A server-side error is preventing your Focus Pages from being accessed."
4739
  msgstr ""
4740
 
4741
- #: models/CheckSeo.php:1997
4742
  #, php-format
4743
  msgid "Make sure your Focus Pages can be audited (error %s)"
4744
  msgstr ""
4745
 
4746
- #: models/CheckSeo.php:1998
4747
  msgid ""
4748
  "Squirrly is unable to generate the audit for your Focus Page because it "
4749
  "can’t connect to your WordPress site’s server. Why? Your WordPress site’s "
@@ -4751,54 +4851,56 @@ msgid ""
4751
  "Squirrly’s IP address."
4752
  msgstr ""
4753
 
4754
- #: models/CheckSeo.php:1999
4755
  msgid ""
4756
  "Check to see if your WordPress site’s server is offline. Whitelist our "
4757
  "crawler IP address (176.9.112.210) to allow our server to verify your page "
4758
  "so that you’ll receive a full audit."
4759
  msgstr ""
4760
 
4761
- #: models/CheckSeo.php:2000 models/CheckSeo.php:2008
4762
  msgid ""
4763
  "An error prevents Squirrly from gathering critical data about your Focus "
4764
  "Page."
4765
  msgstr ""
4766
 
4767
- #: models/CheckSeo.php:2005
4768
  msgid "Make sure your Focus Pages can be audited (firewall protection)"
4769
  msgstr ""
4770
 
4771
- #: models/CheckSeo.php:2006
4772
  msgid ""
4773
  "Squirrly is unable to generate the audit for your Focus Page because it "
4774
  "can’t connect to your WordPress site’s server. Why? Your WordPress site’s "
4775
  "server has a firewall protection and is blocking Squirrly’s IP address."
4776
  msgstr ""
4777
 
4778
- #: models/CheckSeo.php:2007 models/CheckSeo.php:2016
4779
  msgid ""
4780
  "Whitelist our crawler IP address (176.9.112.210) to allow our server to "
4781
  "verify your page so that you’ll receive a full audit."
4782
  msgstr ""
4783
 
4784
- #: models/CheckSeo.php:2014
4785
  #, php-format
4786
  msgid "Focus Page could not be verified (error: %s)"
4787
  msgstr ""
4788
 
4789
- #: models/FocusPages.php:21 models/bulkseo/Metas.php:134
 
4790
  #: models/focuspages/Clicks.php:64 models/focuspages/Content.php:88
4791
  #: models/focuspages/Ctr.php:64 models/focuspages/Image.php:80
4792
- #: models/focuspages/Impressions.php:64 models/focuspages/Keyword.php:103
4793
- #: models/focuspages/Keyword.php:106 models/focuspages/Snippet.php:151
4794
- #: models/focuspages/Strategy.php:102 view/Blocks/KRFound.php:15
4795
- #: view/Blocks/KRHistory.php:15 view/Ranking/Gscsync.php:31
4796
- #: view/Ranking/Rankings.php:210 view/Ranking/Rankings.php:348
4797
- #: view/Research/Briefcase.php:107 view/Research/Briefcase.php:247
4798
  #: view/Research/History.php:29 view/Research/HistoryDetails.php:7
4799
- #: view/Research/Research.php:194 view/Research/Suggested.php:28
 
 
4800
  msgid "Keyword"
4801
- msgstr ""
4802
 
4803
  #: models/FocusPages.php:22
4804
  msgid "Strategy"
@@ -4860,400 +4962,426 @@ msgid "CTR"
4860
  msgstr ""
4861
 
4862
  #: models/FocusPages.php:37 view/Ranking/Gscsync.php:33
4863
- #: view/Ranking/Rankings.php:362
4864
  msgid "Impressions"
4865
  msgstr ""
4866
 
4867
  #: models/FocusPages.php:38 view/Ranking/Gscsync.php:32
4868
- #: view/Ranking/Rankings.php:368
4869
  msgid "Clicks"
4870
  msgstr ""
4871
 
 
4872
  #: models/Ico.php:43
 
 
4873
  msgid "File type error: Only ICO, JPEG, JPG, GIF or PNG files are allowed."
4874
- msgstr ""
4875
 
4876
  # @ squirrly-seo
4877
- #: models/Ico.php:49
4878
- msgid "GD error: The GD library must be installed on your server."
4879
- msgstr ""
4880
-
4881
- # @ squirrly-seo
4882
- #: models/Ico.php:55
4883
  msgid "Delete error: Could not delete the old favicon."
4884
- msgstr ""
4885
 
4886
  # @ squirrly-seo
4887
- #: models/Ico.php:62
 
 
4888
  msgid "Upload error: Could not upload the favicon."
4889
- msgstr ""
4890
 
4891
- # @ squirrly-seo
4892
- #: models/Ico.php:68
4893
  msgid "Permission error: Could not change the favicon permissions."
4894
  msgstr ""
4895
 
4896
- # @ squirrly-seo
4897
- #: models/Ico.php:89
4898
  msgid ""
4899
  "ICO Error: Could not create the ICO from file. Try with another file type."
4900
  msgstr ""
4901
 
4902
- # @ squirrly-seo
4903
- #: models/Ico.php:106
4904
  msgid "The favicon has been updated."
4905
  msgstr ""
4906
 
4907
- #: models/Menu.php:123 models/Menu.php:394
4908
  msgid "First Step"
4909
  msgstr ""
4910
 
4911
- #: models/Menu.php:123 models/Menu.php:270 view/Blocks/Toolbar.php:39
 
4912
  msgid "Overview"
4913
  msgstr ""
4914
 
4915
- #: models/Menu.php:124
4916
- msgid " Overview"
4917
- msgstr ""
4918
-
4919
  # @ squirrly-seo
4920
- #: models/Menu.php:131 view/Research/Briefcase.php:118
4921
  #, fuzzy
4922
  #| msgid "Do the research"
4923
  msgid "Research"
4924
  msgstr "Recherchieren"
4925
 
4926
- # @ squirrly-seo
4927
- #: models/Menu.php:132
4928
- #, fuzzy
4929
- #| msgid "Do the research"
4930
- msgid " Research"
4931
- msgstr "Recherchieren"
4932
-
4933
- #: models/Menu.php:139 view/Blocks/Features.php:34
4934
  msgid "Live Assistant"
4935
  msgstr ""
4936
 
4937
- #: models/Menu.php:140
4938
- msgid " Live Assistant"
4939
- msgstr ""
4940
-
4941
- #: models/Menu.php:147
4942
  msgid "All Snippets"
4943
- msgstr ""
4944
 
4945
- #: models/Menu.php:148
4946
- msgid " Bulk Seo"
4947
  msgstr ""
4948
 
4949
- #: models/Menu.php:155
 
 
 
4950
  msgid "SEO Settings"
4951
- msgstr ""
4952
-
4953
- #: models/Menu.php:156
4954
- msgid " SEO Settings"
4955
- msgstr ""
4956
 
4957
- #: models/Menu.php:163 models/Menu.php:250 view/Blocks/Features.php:7
4958
- #: view/Blocks/FocusPages.php:6 view/FocusPages/Pagelist.php:23
 
 
 
4959
  msgid "Focus Pages"
4960
- msgstr ""
4961
-
4962
- #: models/Menu.php:164
4963
- msgid " Focus Pages"
4964
- msgstr ""
4965
 
4966
- #: models/Menu.php:171 view/Blocks/Audits.php:6 view/Blocks/Features.php:187
 
 
 
4967
  msgid "SEO Audit"
4968
- msgstr ""
4969
-
4970
- #: models/Menu.php:172
4971
- msgid " SEO Audit"
4972
- msgstr ""
4973
 
4974
- #: models/Menu.php:179 models/Menu.php:290
 
 
 
4975
  msgid "Rankings"
4976
- msgstr ""
4977
-
4978
- #: models/Menu.php:180
4979
- msgid " Rankings"
4980
- msgstr ""
4981
 
4982
- #: models/Menu.php:204
 
 
 
4983
  msgid "Find Keywords"
4984
- msgstr ""
4985
 
4986
  # @ squirrly-seo
4987
- #: models/Menu.php:205
4988
  #, fuzzy
4989
  #| msgid "Do the research"
4990
  msgid "do a keyword research"
4991
  msgstr "Recherchieren"
4992
 
4993
- #: models/Menu.php:210 view/Research/Briefcase.php:18
4994
  msgid "Briefcase"
4995
  msgstr ""
4996
 
4997
- #: models/Menu.php:211
 
 
 
4998
  msgid "save the best Keywords"
4999
- msgstr ""
5000
 
5001
- #: models/Menu.php:216 view/Research/Briefcase.php:30
5002
  msgid "Labels"
5003
  msgstr ""
5004
 
5005
  # @ squirrly-seo
5006
- #: models/Menu.php:217
5007
  #, fuzzy
5008
  #| msgid "Tips: 2-4 keywords"
5009
  msgid "group keywords"
5010
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
5011
 
5012
- #: models/Menu.php:222 view/Research/Suggested.php:15
5013
  msgid "Suggested"
5014
  msgstr ""
5015
 
5016
- #: models/Menu.php:223
 
 
 
5017
  msgid "better keywords found"
5018
- msgstr ""
5019
 
5020
- #: models/Menu.php:228 view/Research/History.php:16
5021
  msgid "History"
5022
  msgstr ""
5023
 
5024
- #: models/Menu.php:229
 
 
 
5025
  msgid "keyword research history"
5026
- msgstr ""
5027
 
5028
- #: models/Menu.php:236
5029
  msgid "Optimize Posts"
5030
  msgstr ""
5031
 
5032
- #: models/Menu.php:237
5033
  msgid "use the Live Assistant"
5034
  msgstr ""
5035
 
5036
- #: models/Menu.php:242 models/Menu.php:282 models/Menu.php:302
 
 
 
5037
  msgid "Settings"
5038
- msgstr ""
5039
 
5040
- #: models/Menu.php:243
5041
  msgid "live assistant setup"
5042
  msgstr ""
5043
 
5044
- #: models/Menu.php:251
5045
  msgid "all my focus pages"
5046
  msgstr ""
5047
 
5048
- #: models/Menu.php:262 models/Menu.php:276
 
 
 
5049
  msgid "Add New Page"
5050
- msgstr ""
5051
 
5052
- #: models/Menu.php:263
5053
  msgid "add page in focus pages"
5054
  msgstr ""
5055
 
5056
- #: models/Menu.php:271
5057
  msgid "See all the SEO audits"
5058
  msgstr ""
5059
 
5060
- #: models/Menu.php:277
5061
  msgid "add page in audit"
5062
  msgstr ""
5063
 
5064
  # @ squirrly-seo
5065
- #: models/Menu.php:283
5066
  #, fuzzy
5067
  #| msgid "Squirrly settings"
5068
  msgid "Audit settings"
5069
  msgstr "Squirrly Einstellungen"
5070
 
5071
- #: models/Menu.php:291
 
 
 
5072
  msgid "See Google ranking"
5073
- msgstr ""
5074
 
5075
- #: models/Menu.php:296
 
 
 
5076
  msgid "Add Keywords"
5077
- msgstr ""
5078
 
5079
- #: models/Menu.php:297
 
 
 
5080
  msgid "Add briefcase keywords"
5081
- msgstr ""
5082
 
5083
  # @ squirrly-seo
5084
- #: models/Menu.php:303
5085
  #, fuzzy
5086
  #| msgid "Squirrly settings"
5087
  msgid "Ranking settings"
5088
  msgstr "Squirrly Einstellungen"
5089
 
5090
- #: models/Menu.php:312 view/BulkSeo/Bulkseo.php:29
 
 
 
5091
  msgid "Bulk SEO"
5092
- msgstr ""
5093
 
5094
- #: models/Menu.php:313
5095
  msgid "optimize all pages"
5096
  msgstr ""
5097
 
5098
  # @ squirrly-seo
5099
- #: models/Menu.php:321
5100
  #, fuzzy
5101
  #| msgid "automatically"
5102
  msgid "Automation"
5103
  msgstr "automatisch"
5104
 
5105
- #: models/Menu.php:322
5106
  msgid "patterns & automation"
5107
  msgstr ""
5108
 
5109
- #: models/Menu.php:327 view/SeoSettings/Metas.php:29
 
 
 
5110
  msgid "SEO Metas"
5111
- msgstr ""
5112
 
5113
- #: models/Menu.php:328
5114
  msgid "required on-page metas"
5115
  msgstr ""
5116
 
5117
- #: models/Menu.php:333
5118
  msgid "JSON LD"
5119
  msgstr ""
5120
 
5121
- #: models/Menu.php:334
5122
  msgid "google structured data"
5123
  msgstr ""
5124
 
5125
- #: models/Menu.php:339 view/SeoSettings/Social.php:27
5126
  msgid "Social Media"
5127
  msgstr ""
5128
 
5129
- #: models/Menu.php:340
5130
  msgid "social share options"
5131
  msgstr ""
5132
 
5133
- #: models/Menu.php:345 view/SeoSettings/Tracking.php:27
5134
  msgid "Tracking Tools"
5135
  msgstr ""
5136
 
5137
- #: models/Menu.php:346
 
 
 
5138
  msgid "google analytics, pixel, etc."
5139
- msgstr ""
5140
 
5141
- #: models/Menu.php:351
5142
  msgid "Connection"
5143
  msgstr ""
5144
 
5145
- #: models/Menu.php:352
5146
  msgid "webmaster tools"
5147
  msgstr ""
5148
 
5149
- #: models/Menu.php:357 view/SeoSettings/Sitemap.php:28
5150
  msgid "Sitemap XML"
5151
  msgstr ""
5152
 
5153
- #: models/Menu.php:358
5154
  msgid "setup the sitemap"
5155
  msgstr ""
5156
 
5157
- #: models/Menu.php:363
5158
  msgid "Robots.txt"
5159
  msgstr ""
5160
 
5161
- #: models/Menu.php:364
5162
  msgid "search engine filters"
5163
  msgstr ""
5164
 
5165
- #: models/Menu.php:369
5166
  msgid "Favicon"
5167
  msgstr ""
5168
 
5169
- #: models/Menu.php:370
5170
  msgid "add website icon"
5171
  msgstr ""
5172
 
5173
- #: models/Menu.php:375
5174
  msgid "Import/Export"
5175
  msgstr ""
5176
 
5177
- #: models/Menu.php:376
5178
  msgid "import & export SEO"
5179
  msgstr ""
5180
 
5181
- #: models/Menu.php:385
 
 
 
5182
  msgid "Advanced"
5183
- msgstr ""
5184
 
5185
  # @ squirrly-seo
5186
- #: models/Menu.php:386
5187
  #, fuzzy
5188
  #| msgid "Squirrly settings"
5189
  msgid "Advanced SEO Settings"
5190
  msgstr "Squirrly Einstellungen"
5191
 
5192
- #: models/Menu.php:395
5193
  msgid "all the SEO features"
5194
  msgstr ""
5195
 
5196
- #: models/Menu.php:400 view/Onboarding/Step3.php:52
5197
  msgid "Import"
5198
  msgstr ""
5199
 
5200
- #: models/Menu.php:401
5201
  msgid "import settings and SEO"
5202
  msgstr ""
5203
 
5204
- #: models/Menu.php:406 view/Onboarding/Step4.php:11
5205
  msgid "Final Step"
5206
  msgstr ""
5207
 
5208
- #: models/Menu.php:407
 
 
 
5209
  msgid "start using Squirrly SEO"
5210
- msgstr ""
5211
 
5212
- #: models/Menu.php:415
5213
  msgid "Blogging"
5214
  msgstr ""
5215
 
5216
- #: models/Menu.php:416
5217
  msgid "Blogging overwiew"
5218
  msgstr ""
5219
 
5220
- #: models/Menu.php:421
5221
  msgid "Traffic"
5222
  msgstr ""
5223
 
5224
- #: models/Menu.php:422
5225
  msgid "Weekly website traffic"
5226
  msgstr ""
5227
 
5228
- #: models/Menu.php:427
5229
  msgid "SEO"
5230
  msgstr ""
5231
 
5232
- #: models/Menu.php:428
5233
  msgid "On-Page optimization"
5234
  msgstr ""
5235
 
5236
- #: models/Menu.php:433
5237
  msgid "Social"
5238
  msgstr ""
5239
 
5240
- #: models/Menu.php:434
5241
  msgid "Social signals and shares"
5242
  msgstr ""
5243
 
5244
- #: models/Menu.php:439
5245
  msgid "Links"
5246
  msgstr ""
5247
 
5248
- #: models/Menu.php:440
5249
  msgid "Backlinks and Innerlinks"
5250
  msgstr ""
5251
 
5252
- #: models/Menu.php:445 models/focuspages/Authority.php:47
5253
  msgid "Authority"
5254
  msgstr ""
5255
 
5256
- #: models/Menu.php:446
5257
  msgid "Website Off-Page score"
5258
  msgstr ""
5259
 
@@ -5391,11 +5519,11 @@ msgid ""
5391
  msgstr ""
5392
 
5393
  #: models/Post.php:262 models/focuspages/Snippet.php:89
5394
- #: models/focuspages/Snippet.php:218 models/focuspages/Snippet.php:240
5395
- #: view/Audits/Addpage.php:131 view/Blocks/Snippet.php:171
5396
- #: view/Blocks/Snippet.php:570 view/Blocks/Snippet.php:825
5397
  #: view/BulkSeo/Bulkseo.php:143 view/FocusPages/Addpage.php:132
5398
- #: view/SeoSettings/Automation.php:125 view/SeoSettings/Metas.php:157
5399
  msgid "Title"
5400
  msgstr ""
5401
 
@@ -5489,16 +5617,12 @@ msgid ""
5489
  "description of the image. The Alternative Text field of the image."
5490
  msgstr ""
5491
 
5492
- #: models/PostsList.php:21
5493
- msgid "Optimized:"
5494
- msgstr ""
5495
-
5496
  #: models/PostsList.php:24
5497
  msgid "Optimize it with Squirrly Live Assistant"
5498
  msgstr ""
5499
 
5500
  #: models/PostsList.php:48 models/PostsList.php:74
5501
- msgid "Snippet optimized:"
5502
  msgstr ""
5503
 
5504
  #: models/PostsList.php:48 models/PostsList.php:74
@@ -5509,7 +5633,7 @@ msgstr ""
5509
  msgid "Can't get snippet data"
5510
  msgstr ""
5511
 
5512
- #: models/PostsList.php:55 models/PostsList.php:80 view/Blocks/Snippet.php:133
5513
  msgid "Edit Snippet"
5514
  msgstr ""
5515
 
@@ -5549,32 +5673,38 @@ msgstr ""
5549
  msgid "Couldn't find the page"
5550
  msgstr "Konnte E-Mail nicht senden ..."
5551
 
5552
- #: models/Snippet.php:396 models/Snippet.php:407
5553
  msgid "No Polylang translation for this post."
5554
  msgstr ""
5555
 
5556
- #: models/abstract/Assistant.php:120
5557
  msgid "We are gathering data for this category"
5558
  msgstr ""
5559
 
5560
- #: models/abstract/Assistant.php:161
 
 
 
 
 
 
5561
  msgid "Not enough data to process this task"
5562
  msgstr ""
5563
 
5564
- #: models/abstract/Assistant.php:165 view/Blocks/Snippet.php:308
5565
  msgid "Current"
5566
  msgstr ""
5567
 
5568
- #: models/bulkseo/Metas.php:52
5569
  msgid "Title not empty"
5570
  msgstr ""
5571
 
5572
- #: models/bulkseo/Metas.php:53 view/Blocks/Snippet.php:187
5573
- #: view/Blocks/Snippet.php:586 view/Blocks/Snippet.php:841
5574
  msgid "Current Title"
5575
  msgstr ""
5576
 
5577
- #: models/bulkseo/Metas.php:55
5578
  #, php-format
5579
  msgid ""
5580
  "The title for this URL must not be empty. %s Write a title for this page. "
@@ -5583,48 +5713,53 @@ msgid ""
5583
  "more clicks you can get when people find your page on search engines."
5584
  msgstr ""
5585
 
5586
- #: models/bulkseo/Metas.php:58
5587
- #, php-format
 
 
5588
  msgid "Title up to %s chars"
5589
- msgstr ""
5590
 
5591
- #: models/bulkseo/Metas.php:59
5592
  msgid "Current Title Length"
5593
  msgstr ""
5594
 
5595
- #: models/bulkseo/Metas.php:60 models/bulkseo/Metas.php:78
5596
- #: models/bulkseo/Opengraph.php:78 models/bulkseo/Opengraph.php:88
5597
- #: models/bulkseo/Twittercard.php:75 models/bulkseo/Twittercard.php:85
5598
  msgid "chars"
5599
  msgstr ""
5600
 
5601
- #: models/bulkseo/Metas.php:61 models/bulkseo/Opengraph.php:79
5602
- #: models/bulkseo/Twittercard.php:76
5603
  #, php-format
5604
  msgid ""
5605
  "Title has to be longer than %s chars and up to %s chars. %s You can change "
5606
  "the title max length from %sSEO Settings > Automation%s."
5607
  msgstr ""
5608
 
5609
- #: models/bulkseo/Metas.php:64 models/focuspages/Snippet.php:100
 
 
 
5610
  msgid "Keyword in title"
5611
- msgstr ""
5612
 
5613
  # @ squirrly-seo
5614
- #: models/bulkseo/Metas.php:65 models/bulkseo/Metas.php:83
5615
  #, fuzzy
5616
- #| msgid "Squirrly settings"
5617
- msgid "Squirrly Keyword"
5618
- msgstr "Squirrly Einstellungen"
5619
 
5620
  # @ squirrly-seo
5621
- #: models/bulkseo/Metas.php:66 models/bulkseo/Metas.php:84
5622
  #, fuzzy
5623
  #| msgid "Tips: 2-4 keywords"
5624
  msgid "no keywords"
5625
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
5626
 
5627
- #: models/bulkseo/Metas.php:67 models/focuspages/Snippet.php:103
5628
  #, php-format
5629
  msgid ""
5630
  "Your keyword must be present in the title of the page. %s It's a very "
@@ -5636,16 +5771,16 @@ msgid ""
5636
  "VectorWatch\" would be a much better choice for a title."
5637
  msgstr ""
5638
 
5639
- #: models/bulkseo/Metas.php:70
5640
  msgid "Description not empty"
5641
  msgstr ""
5642
 
5643
- #: models/bulkseo/Metas.php:71 view/Blocks/Snippet.php:239
5644
- #: view/Blocks/Snippet.php:630 view/Blocks/Snippet.php:885
5645
  msgid "Current Description"
5646
  msgstr ""
5647
 
5648
- #: models/bulkseo/Metas.php:73
5649
  #, php-format
5650
  msgid ""
5651
  "Meta descriptions are important for SEO on multiple search engines. %s You "
@@ -5654,28 +5789,28 @@ msgid ""
5654
  "on search engines."
5655
  msgstr ""
5656
 
5657
- #: models/bulkseo/Metas.php:76
5658
  #, php-format
5659
  msgid "Description up to %s chars"
5660
  msgstr ""
5661
 
5662
- #: models/bulkseo/Metas.php:77
5663
  msgid "Current Description Length"
5664
  msgstr ""
5665
 
5666
- #: models/bulkseo/Metas.php:79 models/bulkseo/Opengraph.php:89
5667
- #: models/bulkseo/Twittercard.php:86
5668
  #, php-format
5669
  msgid ""
5670
  "Description has to be longer than %s chars and up to %s chars. %s You can "
5671
  "change the description max length from %sSEO Settings > Automation%s."
5672
  msgstr ""
5673
 
5674
- #: models/bulkseo/Metas.php:82 models/focuspages/Snippet.php:106
5675
  msgid "Keyword in description"
5676
  msgstr ""
5677
 
5678
- #: models/bulkseo/Metas.php:85
5679
  #, php-format
5680
  msgid ""
5681
  "Same as with the title task. %s If a user reads the description of your page "
@@ -5687,28 +5822,31 @@ msgid ""
5687
  "lot about this, because that's what people want to find on the search engine."
5688
  msgstr ""
5689
 
5690
- #: models/bulkseo/Metas.php:88
 
 
 
5691
  msgid "Meta Keywords (2-4 Words)"
5692
- msgstr ""
5693
 
5694
  # @ squirrly-seo
5695
- #: models/bulkseo/Metas.php:90
5696
  #, fuzzy
5697
  #| msgid "Enter even more keywords."
5698
  msgid "no meta keywords"
5699
  msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5700
 
5701
- #: models/bulkseo/Metas.php:91
5702
  msgid ""
5703
  "Even if Meta keywords are not mandatory for Google, it's important for other "
5704
  "search engines to find this meta and to index your post for these keywords."
5705
  msgstr ""
5706
 
5707
- #: models/bulkseo/Metas.php:95
5708
  msgid "Current Link"
5709
  msgstr ""
5710
 
5711
- #: models/bulkseo/Metas.php:97
5712
  #, php-format
5713
  msgid ""
5714
  "You don't have to set any canonical link if your post is not copied from "
@@ -5718,121 +5856,127 @@ msgid ""
5718
  "gets indexed and ranked."
5719
  msgstr ""
5720
 
5721
- #: models/bulkseo/Metas.php:106
5722
  msgid "Some Squirrly Metas are deactivated."
5723
  msgstr ""
5724
 
5725
- #: models/bulkseo/Metas.php:111
5726
  msgid ""
5727
  "Some Squirrly Metas are not set correctly. Click to open the Assistant in "
5728
  "the right sidebar and follow the instructions."
5729
  msgstr ""
5730
 
5731
- #: models/bulkseo/Metas.php:116
 
 
 
5732
  msgid "Some Squirrly Metas are generated automatically."
5733
- msgstr ""
5734
 
5735
- #: models/bulkseo/Metas.php:119
5736
  msgid "All Squirrly Metas are customized and set correctly."
5737
  msgstr ""
5738
 
5739
- #: models/bulkseo/Metas.php:130 models/bulkseo/Opengraph.php:131
5740
- #: models/bulkseo/Twittercard.php:128 models/bulkseo/Visibility.php:69
5741
- #: models/focuspages/Accuracy.php:34 models/focuspages/Audit.php:144
5742
  #: models/focuspages/Authority.php:33 models/focuspages/Backlinks.php:46
5743
  #: models/focuspages/Clicks.php:56 models/focuspages/Content.php:75
5744
  #: models/focuspages/Ctr.php:56 models/focuspages/Image.php:74
5745
  #: models/focuspages/Impressions.php:56 models/focuspages/Indexability.php:89
5746
- #: models/focuspages/Innerlinks.php:64 models/focuspages/Keyword.php:79
5747
- #: models/focuspages/Length.php:55 models/focuspages/Nofollow.php:65
5748
- #: models/focuspages/Onpage.php:78 models/focuspages/Ranking.php:35
5749
  #: models/focuspages/Snippet.php:145 models/focuspages/Social.php:56
5750
- #: models/focuspages/Strategy.php:96 models/focuspages/Traffic.php:94
5751
  msgid "Current URL"
5752
  msgstr ""
5753
 
5754
  # @ squirrly-seo
5755
- #: models/bulkseo/Metas.php:136
5756
  #, fuzzy
5757
  #| msgid "Enter even more keywords."
5758
  msgid "No Meta Keyword Found"
5759
  msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5760
 
5761
- #: models/bulkseo/Metas.php:152 models/bulkseo/Metas.php:188
5762
- #: models/bulkseo/Metas.php:221 models/bulkseo/Metas.php:265
5763
- #: models/bulkseo/Metas.php:301 models/bulkseo/Metas.php:334
5764
- #: models/bulkseo/Metas.php:382 models/bulkseo/Metas.php:421
5765
- #: models/bulkseo/Opengraph.php:145 models/bulkseo/Opengraph.php:181
5766
- #: models/bulkseo/Opengraph.php:213 models/bulkseo/Opengraph.php:249
5767
- #: models/bulkseo/Opengraph.php:285 models/bulkseo/Twittercard.php:142
5768
- #: models/bulkseo/Twittercard.php:178 models/bulkseo/Twittercard.php:210
5769
- #: models/bulkseo/Twittercard.php:246 models/bulkseo/Twittercard.php:282
5770
  #: models/bulkseo/Visibility.php:83 models/bulkseo/Visibility.php:122
5771
  #: models/bulkseo/Visibility.php:155
5772
  msgid "Squirrly Snippet is deactivated from this post."
5773
  msgstr ""
5774
 
5775
- #: models/bulkseo/Metas.php:156 models/bulkseo/Metas.php:192
5776
- #: models/bulkseo/Metas.php:225 models/bulkseo/Metas.php:269
5777
- #: models/bulkseo/Metas.php:305 models/bulkseo/Metas.php:338
5778
- #: models/bulkseo/Metas.php:386 models/bulkseo/Metas.php:425
5779
  #, php-format
5780
  msgid ""
5781
  "SEO Metas for this post type are deactivated from %sSEO Settings > Automation"
5782
  "%s."
5783
  msgstr ""
5784
 
5785
- #: models/bulkseo/Metas.php:160 models/bulkseo/Metas.php:196
5786
- #: models/bulkseo/Metas.php:229
5787
  #, php-format
5788
  msgid "Meta Title is deactivated from %sSEO Settings > Metas%s."
5789
  msgstr ""
5790
 
5791
- #: models/bulkseo/Metas.php:164 models/bulkseo/Metas.php:200
5792
- #: models/bulkseo/Metas.php:233 models/bulkseo/Metas.php:277
5793
- #: models/bulkseo/Metas.php:313 models/bulkseo/Metas.php:346
5794
- #: models/bulkseo/Metas.php:390 models/bulkseo/Metas.php:433
5795
  #, php-format
5796
  msgid "SEO Metas is deactivated from %sSEO Settings > Metas%s."
5797
  msgstr ""
5798
 
5799
  # @ squirrly-seo
5800
- #: models/bulkseo/Metas.php:173 models/bulkseo/Metas.php:209
5801
- #: models/bulkseo/Opengraph.php:166 models/bulkseo/Opengraph.php:202
5802
- #: models/bulkseo/Twittercard.php:163 models/bulkseo/Twittercard.php:199
5803
  #, fuzzy
5804
  #| msgid "<< Leave it automatically"
5805
  msgid "Title is generated automatically."
5806
  msgstr "<< Lass es automatisch"
5807
 
5808
- #: models/bulkseo/Metas.php:237 models/bulkseo/Metas.php:350
5809
- #: models/bulkseo/Metas.php:394
5810
  #, php-format
5811
  msgid "Meta Keywords is deactivated from %sSEO Settings > Metas%s."
5812
  msgstr ""
5813
 
5814
- #: models/bulkseo/Metas.php:273 models/bulkseo/Metas.php:309
5815
- #: models/bulkseo/Metas.php:342
5816
  #, php-format
5817
  msgid "Meta Description is deactivated from %sSEO Settings > Metas%s."
5818
  msgstr ""
5819
 
5820
- #: models/bulkseo/Metas.php:286 models/bulkseo/Metas.php:323
5821
- #: models/bulkseo/Opengraph.php:234 models/bulkseo/Opengraph.php:270
5822
- #: models/bulkseo/Twittercard.php:231 models/bulkseo/Twittercard.php:267
 
 
 
5823
  msgid "Description is generated automatically."
5824
- msgstr ""
5825
 
5826
- #: models/bulkseo/Metas.php:429
5827
  #, php-format
5828
  msgid "Meta Canonical is deactivated from %sSEO Settings > Metas%s."
5829
  msgstr ""
5830
 
5831
- #: models/bulkseo/Opengraph.php:72
5832
  msgid "OG title not empty"
5833
  msgstr ""
5834
 
5835
- #: models/bulkseo/Opengraph.php:74
5836
  #, php-format
5837
  msgid ""
5838
  "You need to have an Open Graph title for this post. %s It will help you "
@@ -5840,16 +5984,16 @@ msgid ""
5840
  "LinkedIN and other social networks. %s It's also important for SEO purposes."
5841
  msgstr ""
5842
 
5843
- #: models/bulkseo/Opengraph.php:77
5844
  #, php-format
5845
  msgid "OG title up to %s chars"
5846
  msgstr ""
5847
 
5848
- #: models/bulkseo/Opengraph.php:82
5849
  msgid "OG description not empty"
5850
  msgstr ""
5851
 
5852
- #: models/bulkseo/Opengraph.php:84
5853
  #, php-format
5854
  msgid ""
5855
  "You need to have an Open Graph description for this post. %s It will help "
@@ -5857,20 +6001,20 @@ msgid ""
5857
  "LinkedIN and other social networks. %s It's also important for SEO purposes."
5858
  msgstr ""
5859
 
5860
- #: models/bulkseo/Opengraph.php:87
5861
  #, php-format
5862
  msgid "OG description up to %s chars"
5863
  msgstr ""
5864
 
5865
- #: models/bulkseo/Opengraph.php:92 view/SeoSettings/Metas.php:184
5866
  msgid "OG Image"
5867
  msgstr ""
5868
 
5869
- #: models/bulkseo/Opengraph.php:93 models/bulkseo/Twittercard.php:90
5870
  msgid "(featured image)"
5871
  msgstr ""
5872
 
5873
- #: models/bulkseo/Opengraph.php:94
5874
  #, php-format
5875
  msgid ""
5876
  "Set a good looking image for your URL. It needs to look good in Facebook and "
@@ -5878,57 +6022,63 @@ msgid ""
5878
  "attract more clicks to your site."
5879
  msgstr ""
5880
 
5881
- #: models/bulkseo/Opengraph.php:108
 
 
 
5882
  msgid "Open Graph is deactivated."
5883
- msgstr ""
5884
 
5885
- #: models/bulkseo/Opengraph.php:113
5886
  msgid ""
5887
  "Open Graph is not set correctly. Click to open the Assistant in the right "
5888
  "sidebar and follow the instructions."
5889
  msgstr ""
5890
 
5891
  # @ squirrly-seo
5892
- #: models/bulkseo/Opengraph.php:118
5893
  #, fuzzy
5894
  #| msgid "<< Leave it automatically"
5895
  msgid "Open Graph is generated automatically."
5896
  msgstr "<< Lass es automatisch"
5897
 
5898
- #: models/bulkseo/Opengraph.php:121
 
 
 
5899
  msgid "Open Graph is customized and set correctly."
5900
- msgstr ""
5901
 
5902
- #: models/bulkseo/Opengraph.php:149 models/bulkseo/Opengraph.php:185
5903
- #: models/bulkseo/Opengraph.php:217 models/bulkseo/Opengraph.php:253
5904
- #: models/bulkseo/Opengraph.php:289
5905
  #, php-format
5906
  msgid ""
5907
  "Open Graph for this post type is deactivated from %sSEO Settings > Automation"
5908
  "%s."
5909
  msgstr ""
5910
 
5911
- #: models/bulkseo/Opengraph.php:153 models/bulkseo/Opengraph.php:189
5912
- #: models/bulkseo/Opengraph.php:221 models/bulkseo/Opengraph.php:257
5913
- #: models/bulkseo/Opengraph.php:293
5914
  #, php-format
5915
  msgid "Open Graph is deactivated from %sSEO Settings > Social Media%s."
5916
  msgstr ""
5917
 
5918
- #: models/bulkseo/Opengraph.php:157 models/bulkseo/Opengraph.php:193
5919
- #: models/bulkseo/Opengraph.php:225 models/bulkseo/Opengraph.php:261
5920
- #: models/bulkseo/Opengraph.php:297 models/bulkseo/Twittercard.php:154
5921
- #: models/bulkseo/Twittercard.php:190 models/bulkseo/Twittercard.php:222
5922
- #: models/bulkseo/Twittercard.php:258 models/bulkseo/Twittercard.php:294
5923
  #, php-format
5924
  msgid "Social Media is deactivated from %sSEO Settings > Social Media%s."
5925
  msgstr ""
5926
 
5927
- #: models/bulkseo/Twittercard.php:69
5928
  msgid "TC title not empty"
5929
  msgstr ""
5930
 
5931
- #: models/bulkseo/Twittercard.php:71
5932
  #, php-format
5933
  msgid ""
5934
  "You need to have a title for the Twitter Card of this post. %s It will help "
@@ -5936,16 +6086,16 @@ msgid ""
5936
  "also important for SEO purposes."
5937
  msgstr ""
5938
 
5939
- #: models/bulkseo/Twittercard.php:74
5940
  #, php-format
5941
  msgid "TC title up to %s chars"
5942
  msgstr ""
5943
 
5944
- #: models/bulkseo/Twittercard.php:79
5945
  msgid "TC Description not empty"
5946
  msgstr ""
5947
 
5948
- #: models/bulkseo/Twittercard.php:81
5949
  #, php-format
5950
  msgid ""
5951
  "You need to have a Twitter Card description for this post. %s It will help "
@@ -5954,16 +6104,16 @@ msgid ""
5954
  "to your site. %s It's also important for SEO purposes."
5955
  msgstr ""
5956
 
5957
- #: models/bulkseo/Twittercard.php:84
5958
  #, php-format
5959
  msgid "TC description up to %s chars"
5960
  msgstr ""
5961
 
5962
- #: models/bulkseo/Twittercard.php:89
5963
  msgid "TC Image"
5964
  msgstr ""
5965
 
5966
- #: models/bulkseo/Twittercard.php:91
5967
  #, php-format
5968
  msgid ""
5969
  "Set a good looking image for your URL. It needs to look good in Twitter "
@@ -5971,36 +6121,39 @@ msgid ""
5971
  "clicks to your site."
5972
  msgstr ""
5973
 
5974
- #: models/bulkseo/Twittercard.php:105
5975
  msgid "Twitter Card is deactivated."
5976
  msgstr ""
5977
 
5978
- #: models/bulkseo/Twittercard.php:110
5979
  msgid ""
5980
  "Twitter Card is not set correctly. Click to open the Assistant in the right "
5981
  "sidebar and follow the instructions."
5982
  msgstr ""
5983
 
5984
- #: models/bulkseo/Twittercard.php:115
 
 
 
5985
  msgid "Twitter Card is generated automatically."
5986
- msgstr ""
5987
 
5988
- #: models/bulkseo/Twittercard.php:118
5989
  msgid "Twitter Card is customized and set correctly."
5990
  msgstr ""
5991
 
5992
- #: models/bulkseo/Twittercard.php:146 models/bulkseo/Twittercard.php:182
5993
- #: models/bulkseo/Twittercard.php:214 models/bulkseo/Twittercard.php:250
5994
- #: models/bulkseo/Twittercard.php:286
5995
  #, php-format
5996
  msgid ""
5997
  "Twitter Card for this post type is deactivated from %sSEO Settings > "
5998
  "Automation%s."
5999
  msgstr ""
6000
 
6001
- #: models/bulkseo/Twittercard.php:150 models/bulkseo/Twittercard.php:186
6002
- #: models/bulkseo/Twittercard.php:218 models/bulkseo/Twittercard.php:254
6003
- #: models/bulkseo/Twittercard.php:290
6004
  #, php-format
6005
  msgid "Twitter Card is deactivated from %sSEO Settings > Social Media%s."
6006
  msgstr ""
@@ -6013,11 +6166,11 @@ msgstr ""
6013
  #, php-format
6014
  msgid ""
6015
  "Let Google Index this page. %s You need to make sure your settings are "
6016
- "turned to green for the \"let Google index this page\" section of this URL's "
6017
  "visibility settings."
6018
  msgstr ""
6019
 
6020
- #: models/bulkseo/Visibility.php:31 view/Blocks/Snippet.php:1029
6021
  msgid "Send Authority to this page"
6022
  msgstr ""
6023
 
@@ -6029,8 +6182,7 @@ msgid ""
6029
  "to this one. %s The previous page means any page that leads to the current "
6030
  "one. Passing authority from the previous page to this one will improve the "
6031
  "current page's visibility. %s You need to make sure your settings are turned "
6032
- "to green for the \"Pass Link Juice\" section of this URL's visibility "
6033
- "settings."
6034
  msgstr ""
6035
 
6036
  #: models/bulkseo/Visibility.php:35
@@ -6040,7 +6192,7 @@ msgstr ""
6040
  #: models/bulkseo/Visibility.php:36
6041
  #, php-format
6042
  msgid ""
6043
- "Turn the \"Show it in Sitemap.xml\" toggle to green (ON). %s That setting "
6044
  "helps you control if the current URL should be found within the sitemap. "
6045
  "There are pages you will want in the sitemap, and pages that you will want "
6046
  "out of the sitemap. %s If your purpose is to maximize visibility for the "
@@ -6130,16 +6282,21 @@ msgid ""
6130
  "care about FULL accuracy, then you can stick with your current plan."
6131
  msgstr ""
6132
 
 
6133
  #: models/focuspages/Accuracy.php:40 models/focuspages/Clicks.php:62
6134
  #: models/focuspages/Ctr.php:62 models/focuspages/Impressions.php:62
6135
- #: models/focuspages/Indexability.php:95 models/focuspages/Traffic.php:100
 
 
6136
  msgid "Connect Google Search"
6137
- msgstr ""
6138
 
 
6139
  #: models/focuspages/Audit.php:101
6140
- #, php-format
 
6141
  msgid "Audit score is over %s"
6142
- msgstr ""
6143
 
6144
  #: models/focuspages/Audit.php:104
6145
  #, php-format
@@ -6204,7 +6361,7 @@ msgstr ""
6204
  msgid "No empty descriptions"
6205
  msgstr ""
6206
 
6207
- #: models/focuspages/Audit.php:121
6208
  #, php-format
6209
  msgid ""
6210
  "Make sure that you do not have pages with empty descriptions. %s This means: "
@@ -6213,15 +6370,15 @@ msgid ""
6213
  "problem by either automating or customizing descriptions for your pages."
6214
  msgstr ""
6215
 
6216
- #: models/focuspages/Audit.php:124
6217
  msgid "SEO speed"
6218
  msgstr ""
6219
 
6220
- #: models/focuspages/Audit.php:125
6221
  msgid "sec"
6222
  msgstr ""
6223
 
6224
- #: models/focuspages/Audit.php:126
6225
  #, php-format
6226
  msgid ""
6227
  "You need to get good loading times for your pages. %s Good loading times "
@@ -6229,11 +6386,11 @@ msgid ""
6229
  "drag you down in search results."
6230
  msgstr ""
6231
 
6232
- #: models/focuspages/Audit.php:129
6233
  msgid "Mobile-friendly"
6234
  msgstr ""
6235
 
6236
- #: models/focuspages/Audit.php:130
6237
  #, php-format
6238
  msgid ""
6239
  "Your website must be mobile friendly. %s It used to be an optional thing for "
@@ -6242,24 +6399,24 @@ msgid ""
6242
  "most people search using mobile devices these days."
6243
  msgstr ""
6244
 
6245
- #: models/focuspages/Audit.php:150
6246
  msgid "Go to Audit"
6247
  msgstr ""
6248
 
6249
- #: models/focuspages/Audit.php:154
6250
  msgid "Note! The audit is not ready yet"
6251
  msgstr ""
6252
 
6253
- #: models/focuspages/Audit.php:155
6254
  msgid "Request a new audit"
6255
  msgstr ""
6256
 
6257
- #: models/focuspages/Authority.php:46
6258
  #, php-format
6259
  msgid "Authority over %s"
6260
  msgstr ""
6261
 
6262
- #: models/focuspages/Authority.php:48
6263
  #, php-format
6264
  msgid ""
6265
  "Your Page Authority Needs to be over %s to complete this task. %s To do that "
@@ -6268,6 +6425,19 @@ msgid ""
6268
  "backlinks from 3rd party sites."
6269
  msgstr ""
6270
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6271
  #: models/focuspages/Backlinks.php:58
6272
  #, php-format
6273
  msgid "At Least %s MOZ BackLinks"
@@ -6291,18 +6461,6 @@ msgstr ""
6291
  msgid "At Least %s Majestic SEO Links"
6292
  msgstr ""
6293
 
6294
- #: models/focuspages/Backlinks.php:81 models/focuspages/Content.php:118
6295
- #: models/focuspages/Image.php:109 models/focuspages/Impressions.php:102
6296
- #: models/focuspages/Indexability.php:112 models/focuspages/Innerlinks.php:86
6297
- #: models/focuspages/Keyword.php:156 models/focuspages/Length.php:93
6298
- #: models/focuspages/Nofollow.php:77 models/focuspages/Onpage.php:94
6299
- #: models/focuspages/Ranking.php:48 models/focuspages/Snippet.php:168
6300
- #: models/focuspages/Social.php:72 models/focuspages/Strategy.php:136
6301
- #: models/focuspages/Traffic.php:126
6302
- msgid ""
6303
- "Click to open the Assistant in the right sidebar and follow the instructions."
6304
- msgstr ""
6305
-
6306
  # @ squirrly-seo
6307
  #: models/focuspages/Clicks.php:42
6308
  #, fuzzy
@@ -6315,40 +6473,46 @@ msgstr "Tool für Suchmaschinen"
6315
  #: models/focuspages/Content.php:94 models/focuspages/Ctr.php:65
6316
  #: models/focuspages/Ctr.php:76 models/focuspages/Image.php:89
6317
  #: models/focuspages/Impressions.php:65 models/focuspages/Impressions.php:76
6318
- #: models/focuspages/Keyword.php:107 models/focuspages/Keyword.php:116
6319
- #: models/focuspages/Strategy.php:113 view/Research/Briefcase.php:216
 
 
6320
  msgid "Do a research"
6321
- msgstr ""
6322
 
 
6323
  #: models/focuspages/Clicks.php:75 models/focuspages/Content.php:93
6324
  #: models/focuspages/Ctr.php:75 models/focuspages/Image.php:88
6325
- #: models/focuspages/Impressions.php:75 models/focuspages/Keyword.php:114
6326
- #: models/focuspages/Keyword.php:182 models/focuspages/Keyword.php:200
6327
- #: models/focuspages/Keyword.php:223 models/focuspages/Snippet.php:153
6328
- #: models/focuspages/Strategy.php:112
 
 
6329
  msgid "No Keyword Found"
6330
- msgstr ""
6331
 
6332
  #: models/focuspages/Clicks.php:78 models/focuspages/Content.php:97
6333
  #: models/focuspages/Ctr.php:78 models/focuspages/Image.php:95
6334
- #: models/focuspages/Impressions.php:78 models/focuspages/Keyword.php:117
6335
- #: models/focuspages/Strategy.php:115
6336
  msgid "Optimize for a keyword"
6337
  msgstr ""
6338
 
6339
- #: models/focuspages/Clicks.php:96 models/focuspages/Content.php:114
6340
- #: models/focuspages/Ctr.php:100 models/focuspages/Impressions.php:96
6341
- #: models/focuspages/Keyword.php:149 models/focuspages/Strategy.php:132
6342
  msgid ""
6343
  "Optimize the page for a keyword. Click to open the Assistant in the right "
6344
  "sidebar and follow the instructions."
6345
  msgstr ""
6346
 
6347
  # @ squirrly-seo
6348
- #: models/focuspages/Clicks.php:98 models/focuspages/Ctr.php:96
 
6349
  #, fuzzy
6350
  #| msgid "Google %sAnalytics ID%s`:"
6351
- msgid "Connect to Google Search Console"
6352
  msgstr "Google %sAnalytics ID%s`:"
6353
 
6354
  #: models/focuspages/Content.php:46
@@ -6411,9 +6575,9 @@ msgid ""
6411
  "easiest ways to ensure that the content on the page keeps being relevant."
6412
  msgstr ""
6413
 
6414
- #: models/focuspages/Content.php:90 models/focuspages/Keyword.php:110
6415
- #: view/Research/Briefcase.php:203 view/Research/HistoryDetails.php:76
6416
- #: view/Research/ResearchDetails.php:47
6417
  msgid "Optimize for this"
6418
  msgstr ""
6419
 
@@ -6430,9 +6594,12 @@ msgid ""
6430
  "5%%. %s Keep the CTR above %s with enhanced headlines."
6431
  msgstr ""
6432
 
 
6433
  #: models/focuspages/Image.php:57
 
 
6434
  msgid "Keyword in filename"
6435
- msgstr ""
6436
 
6437
  #: models/focuspages/Image.php:60
6438
  #, php-format
@@ -6449,24 +6616,20 @@ msgstr ""
6449
  msgid "Edit your snippet"
6450
  msgstr ""
6451
 
6452
- #: models/focuspages/Image.php:125
6453
  msgid "Optimize the post first using a Keyword from Squirrly Briefcase"
6454
  msgstr ""
6455
 
6456
- #: models/focuspages/Image.php:126
6457
  msgid "No image found"
6458
  msgstr ""
6459
 
6460
- #: models/focuspages/Impressions.php:42
6461
- msgid "Search Results Impressions in the last 3 months"
6462
- msgstr ""
6463
-
6464
  # @ squirrly-seo
6465
- #: models/focuspages/Impressions.php:98
6466
  #, fuzzy
6467
- #| msgid "Google %sAnalytics ID%s`:"
6468
- msgid "Connect to Google Search Console."
6469
- msgstr "Google %sAnalytics ID%s`:"
6470
 
6471
  #: models/focuspages/Indexability.php:52
6472
  msgid "Yes, do index"
@@ -6541,7 +6704,7 @@ msgid ""
6541
  "Search Console API to send Google the request on your behalf."
6542
  msgstr ""
6543
 
6544
- #: models/focuspages/Indexability.php:72 view/Blocks/Snippet.php:298
6545
  msgid "Canonical link"
6546
  msgstr ""
6547
 
@@ -6597,11 +6760,7 @@ msgid "Get %s inner links"
6597
  msgstr ""
6598
 
6599
  #: models/focuspages/Innerlinks.php:54
6600
- msgid "inner links"
6601
- msgstr ""
6602
-
6603
- #: models/focuspages/Innerlinks.php:54
6604
- msgid "to"
6605
  msgstr ""
6606
 
6607
  #: models/focuspages/Innerlinks.php:56
@@ -6618,11 +6777,11 @@ msgstr ""
6618
  msgid "Build with Blogging Assistant"
6619
  msgstr ""
6620
 
6621
- #: models/focuspages/Keyword.php:50
6622
  msgid "Keyword Competition"
6623
  msgstr ""
6624
 
6625
- #: models/focuspages/Keyword.php:53
6626
  #, php-format
6627
  msgid ""
6628
  "To complete this task you must make sure that the main keyword you're "
@@ -6633,11 +6792,11 @@ msgid ""
6633
  "shot at ranking, make sure the competition is low for the keyword you choose."
6634
  msgstr ""
6635
 
6636
- #: models/focuspages/Keyword.php:56
6637
  msgid "Search volume"
6638
  msgstr ""
6639
 
6640
- #: models/focuspages/Keyword.php:58
6641
  #, php-format
6642
  msgid ""
6643
  "To turn this task to green, go and find a keyword that has a good search "
@@ -6650,11 +6809,11 @@ msgid ""
6650
  "visiting this page. And then all the effort will have been for nothing."
6651
  msgstr ""
6652
 
6653
- #: models/focuspages/Keyword.php:61
6654
  msgid "Google Trend"
6655
  msgstr ""
6656
 
6657
- #: models/focuspages/Keyword.php:63
6658
  #, php-format
6659
  msgid ""
6660
  "Trend levels required to get the Green Check on this task: %s - Steady %s - "
@@ -6667,31 +6826,31 @@ msgid ""
6667
  "little traffic even if you'd end up on Position 1 in Google Search."
6668
  msgstr ""
6669
 
6670
- #: models/focuspages/Keyword.php:104
 
 
 
6671
  msgid "Find Better Keywords"
6672
- msgstr ""
6673
-
6674
- #: models/focuspages/Keyword.php:152
6675
- msgid ""
6676
- "Congratulations for ranking with this keyword, but it will require special "
6677
- "attention from you to keep it within TOP 10 positions"
6678
- msgstr ""
6679
 
6680
- #: models/focuspages/Keyword.php:182 models/focuspages/Keyword.php:200
6681
- #: models/focuspages/Keyword.php:223
6682
  msgid "Please add a keyword first."
6683
  msgstr ""
6684
 
6685
- #: models/focuspages/Length.php:38
6686
  #, php-format
6687
  msgid "Write %s words"
6688
  msgstr ""
6689
 
6690
- #: models/focuspages/Length.php:39
 
 
 
6691
  msgid "words"
6692
- msgstr ""
6693
 
6694
- #: models/focuspages/Length.php:41
6695
  #, php-format
6696
  msgid ""
6697
  "For Focus Pages it's mandatory, in our opinion, to have at least 1,500 "
@@ -6702,15 +6861,15 @@ msgid ""
6702
  "that your chances of ranking will be very high."
6703
  msgstr ""
6704
 
6705
- #: models/focuspages/Length.php:44
6706
  msgid "Reader's Experience"
6707
  msgstr ""
6708
 
6709
- #: models/focuspages/Length.php:45
6710
  msgid "minutes average"
6711
  msgstr ""
6712
 
6713
- #: models/focuspages/Length.php:46
6714
  #, php-format
6715
  msgid ""
6716
  "Get an average time on page of minimum 2 minutes for this focus page. You "
@@ -6724,20 +6883,23 @@ msgid ""
6724
  "take into account if website visitors love this page."
6725
  msgstr ""
6726
 
6727
- #: models/focuspages/Length.php:68
 
 
 
6728
  msgid "Edit Page"
6729
- msgstr ""
6730
 
6731
  # @ squirrly-seo
6732
- #: models/focuspages/Length.php:89
6733
  #, fuzzy
6734
  #| msgid "Google %sAnalytics ID%s`:"
6735
  msgid "Connect to Google Analytics first."
6736
  msgstr "Google %sAnalytics ID%s`:"
6737
 
6738
  # @ squirrly-seo
6739
- #: models/focuspages/Length.php:125 models/focuspages/Traffic.php:143
6740
- #: models/focuspages/Traffic.php:159 models/focuspages/Traffic.php:175
6741
  #, fuzzy
6742
  #| msgid "Google %sAnalytics ID%s`:"
6743
  msgid "Connect Google Analytics first."
@@ -6767,11 +6929,11 @@ msgid ""
6767
  "that ALL outbound links have a no-follow attribute attached to them."
6768
  msgstr ""
6769
 
6770
- #: models/focuspages/Onpage.php:51
6771
  msgid "Enhance your sitemap"
6772
  msgstr ""
6773
 
6774
- #: models/focuspages/Onpage.php:52
6775
  #, php-format
6776
  msgid ""
6777
  "Add images / videos to your sitemap. It's important to have images / videos "
@@ -6780,11 +6942,11 @@ msgid ""
6780
  "XML%s. Find the XML sitemap section and use the settings from that panel. "
6781
  msgstr ""
6782
 
6783
- #: models/focuspages/Onpage.php:55
6784
  msgid "Post Type settings activated"
6785
  msgstr ""
6786
 
6787
- #: models/focuspages/Onpage.php:56
6788
  #, php-format
6789
  msgid ""
6790
  "Are the SEO Settings from Squirrly SEO activated for the post type of this "
@@ -6798,11 +6960,11 @@ msgid ""
6798
  "%sSquirrly SEO Automation%s."
6799
  msgstr ""
6800
 
6801
- #: models/focuspages/Onpage.php:59
6802
  msgid "Patterns activated"
6803
  msgstr ""
6804
 
6805
- #: models/focuspages/Onpage.php:60
6806
  #, php-format
6807
  msgid ""
6808
  "To turn this task to green, go and activate the %sPatterns%s from Squirrly "
@@ -6813,11 +6975,11 @@ msgid ""
6813
  "%s It's for your ranking safety."
6814
  msgstr ""
6815
 
6816
- #: models/focuspages/Onpage.php:63 view/SeoSettings/Robots.php:27
6817
  msgid "Robots File"
6818
  msgstr ""
6819
 
6820
- #: models/focuspages/Onpage.php:65
6821
  #, php-format
6822
  msgid ""
6823
  "You have a certain definition for your Robots.txt file made in Squirrly SEO "
@@ -6832,9 +6994,12 @@ msgid ""
6832
  "everything is Perfect!"
6833
  msgstr ""
6834
 
6835
- #: models/focuspages/Onpage.php:83
 
 
 
6836
  msgid "Go to SEO Settings"
6837
- msgstr ""
6838
 
6839
  #: models/focuspages/Ranking.php:23
6840
  msgid "Nofollow on external links"
@@ -6853,10 +7018,10 @@ msgid ""
6853
  "that product."
6854
  msgstr ""
6855
 
6856
- #: models/focuspages/Snippet.php:95 models/focuspages/Snippet.php:219
6857
- #: models/focuspages/Snippet.php:241 view/Blocks/Snippet.php:613
6858
- #: view/Blocks/Snippet.php:868 view/SeoSettings/Automation.php:134
6859
- #: view/SeoSettings/Metas.php:166
6860
  msgid "Description"
6861
  msgstr ""
6862
 
@@ -6959,7 +7124,7 @@ msgid ""
6959
  "own custom snippet will be the one that gets displayed."
6960
  msgstr ""
6961
 
6962
- #: models/focuspages/Snippet.php:220 models/focuspages/Snippet.php:242
6963
  msgid "Image"
6964
  msgstr ""
6965
 
@@ -6982,23 +7147,29 @@ msgid ""
6982
  "services. %s %shttps://developer.twitter.com/en/pricing/search-fullarchive%s"
6983
  msgstr ""
6984
 
 
6985
  #: models/focuspages/Social.php:61
 
 
6986
  msgid "Go to Social Media Settings"
6987
- msgstr ""
6988
 
6989
- #: models/focuspages/Strategy.php:69
 
 
 
6990
  msgid "Add keyword to Briefcase"
6991
- msgstr ""
6992
 
6993
- #: models/focuspages/Strategy.php:70
6994
  msgid "Great! The keyword exists in Briefcase"
6995
  msgstr ""
6996
 
6997
- #: models/focuspages/Strategy.php:70
6998
  msgid "The keyword does not exist in Briefcase"
6999
  msgstr ""
7000
 
7001
- #: models/focuspages/Strategy.php:71
7002
  #, php-format
7003
  msgid ""
7004
  "Go add a keyword to your %sBriefcase%s. %s The Briefcase is the command "
@@ -7010,11 +7181,14 @@ msgid ""
7010
  "find through the %sSquirrly SEO Keyword Research tool%s."
7011
  msgstr ""
7012
 
7013
- #: models/focuspages/Strategy.php:74
 
 
 
7014
  msgid "Add SEO Context"
7015
- msgstr ""
7016
 
7017
- #: models/focuspages/Strategy.php:77
7018
  #, php-format
7019
  msgid ""
7020
  "Optimize to %s for a secondary keyword. %s Squirrly SEO's Live Assistant "
@@ -7028,19 +7202,19 @@ msgid ""
7028
  "Google that your page really is about a restaurant where people can dine."
7029
  msgstr ""
7030
 
7031
- #: models/focuspages/Strategy.php:81
7032
  msgid "Labels Exist"
7033
  msgstr ""
7034
 
7035
- #: models/focuspages/Strategy.php:82
7036
  msgid "Great! The keyword has Label attached to it"
7037
  msgstr ""
7038
 
7039
- #: models/focuspages/Strategy.php:82
7040
  msgid "The keyword does not have a label attached to it"
7041
  msgstr ""
7042
 
7043
- #: models/focuspages/Strategy.php:83
7044
  #, php-format
7045
  msgid ""
7046
  "To turn this task to green, go to %sLabels section%s and add a label to the "
@@ -7054,7 +7228,7 @@ msgid ""
7054
  "Briefcase Labels are all about."
7055
  msgstr ""
7056
 
7057
- #: models/focuspages/Strategy.php:103
7058
  msgid "Manage Strategy"
7059
  msgstr ""
7060
 
@@ -7062,16 +7236,16 @@ msgstr ""
7062
  msgid "Add a secondary keyword in Squirrly Live Assistant from Briefcase"
7063
  msgstr ""
7064
 
7065
- #: models/focuspages/Traffic.php:65
7066
  #, php-format
7067
  msgid "Below %s Bounce Rate"
7068
  msgstr ""
7069
 
7070
- #: models/focuspages/Traffic.php:66
7071
  msgid "bounce rate"
7072
  msgstr ""
7073
 
7074
- #: models/focuspages/Traffic.php:67
7075
  #, php-format
7076
  msgid ""
7077
  "Make sure this number is below %s %s Why? %s A high bounce rate means that "
@@ -7085,16 +7259,16 @@ msgid ""
7085
  "site."
7086
  msgstr ""
7087
 
7088
- #: models/focuspages/Traffic.php:70
7089
  #, php-format
7090
  msgid "Time on page is %s minutes"
7091
  msgstr ""
7092
 
7093
- #: models/focuspages/Traffic.php:71
7094
  msgid "minutes avg."
7095
  msgstr ""
7096
 
7097
- #: models/focuspages/Traffic.php:73
7098
  #, php-format
7099
  msgid ""
7100
  "Make sure that visitors spend on average at least %s minutes on your site. "
@@ -7106,16 +7280,16 @@ msgid ""
7106
  "too slow."
7107
  msgstr ""
7108
 
7109
- #: models/focuspages/Traffic.php:76
7110
  #, php-format
7111
  msgid "%s visitors / day / page"
7112
  msgstr ""
7113
 
7114
- #: models/focuspages/Traffic.php:77
7115
  msgid "unique views avg."
7116
  msgstr ""
7117
 
7118
- #: models/focuspages/Traffic.php:78
7119
  #, php-format
7120
  msgid ""
7121
  "For this task, we're looking at unique page views from your %sGoogle "
@@ -7124,11 +7298,14 @@ msgid ""
7124
  "make sure that more people end up visiting it."
7125
  msgstr ""
7126
 
7127
- #: models/focuspages/Traffic.php:81
 
 
 
7128
  msgid "Just one Google Analytics tracking code"
7129
- msgstr ""
7130
 
7131
- #: models/focuspages/Traffic.php:82
7132
  #, php-format
7133
  msgid ""
7134
  "We've seen many sites where there were multiple google analytics codes "
@@ -7143,28 +7320,34 @@ msgid ""
7143
  msgstr ""
7144
 
7145
  # @ squirrly-seo
7146
- #: models/focuspages/Traffic.php:120
7147
  #, fuzzy
7148
  #| msgid "Google %sAnalytics ID%s`:"
7149
  msgid "Connect Google Analytics first"
7150
  msgstr "Google %sAnalytics ID%s`:"
7151
 
7152
- #: models/focuspages/Traffic.php:122
7153
  msgid "Not enough traffic to show relevant stats"
7154
  msgstr ""
7155
 
 
7156
  #: models/services/Robots.php:13
 
 
7157
  msgid "Squirrly SEO Robots"
7158
- msgstr ""
7159
 
7160
  #: models/services/Robots.php:16
7161
  msgid ""
7162
  "Your blog is not public. Please see Site Visibility on Settings > Reading."
7163
  msgstr ""
7164
 
 
7165
  #: models/services/Robots.php:32
 
 
7166
  msgid "No Squirrly SEO Robots found."
7167
- msgstr ""
7168
 
7169
  #: view/Assistant/Assistant.php:16
7170
  msgid "Optimize with Squirrly Live Assistant"
@@ -7198,9 +7381,12 @@ msgid ""
7198
  "role."
7199
  msgstr ""
7200
 
 
7201
  #: view/Assistant/Settings.php:25
 
 
7202
  msgid "Live Assistant Settings"
7203
- msgstr ""
7204
 
7205
  # @ squirrly-seo
7206
  #: view/Assistant/Settings.php:40
@@ -7212,13 +7398,16 @@ msgstr "Squirrly Einstellungen"
7212
  #: view/Assistant/Settings.php:41
7213
  #, php-format
7214
  msgid ""
7215
- "Show %sSquirrly Tooltips%s when posting a new article (e.g. \"Enter a keyword"
7216
- "\")."
7217
  msgstr ""
7218
 
 
7219
  #: view/Assistant/Settings.php:51
 
 
7220
  msgid "Download Remote Images"
7221
- msgstr ""
7222
 
7223
  #: view/Assistant/Settings.php:52
7224
  #, php-format
@@ -7264,10 +7453,6 @@ msgstr ""
7264
  msgid "Activate Live Assistant in Frontend"
7265
  msgstr ""
7266
 
7267
- #: view/Assistant/Settings.php:95
7268
- msgid "(BETA)"
7269
- msgstr ""
7270
-
7271
  #: view/Assistant/Settings.php:96
7272
  msgid ""
7273
  "Load Squirrly Live Assistant in Frontend to customize the posts and pages "
@@ -7300,26 +7485,32 @@ msgstr ""
7300
  msgid "Hold Control key to select multiple places"
7301
  msgstr ""
7302
 
 
7303
  #: view/Assistant/Settings.php:141 view/SeoSettings/Automation.php:474
7304
  #: view/SeoSettings/Automation.php:595 view/SeoSettings/Jsonld.php:243
7305
- #: view/SeoSettings/Metas.php:231 view/SeoSettings/Sitemap.php:305
7306
  #: view/SeoSettings/Social.php:372
 
 
7307
  msgid "Show Advanced Options"
7308
- msgstr ""
7309
 
 
7310
  #: view/Assistant/Settings.php:142 view/SeoSettings/Automation.php:475
7311
  #: view/SeoSettings/Automation.php:596 view/SeoSettings/Jsonld.php:244
7312
- #: view/SeoSettings/Metas.php:232 view/SeoSettings/Sitemap.php:306
7313
  #: view/SeoSettings/Social.php:373
 
 
7314
  msgid "Hide Advanced Options"
7315
- msgstr ""
7316
 
7317
  # @ squirrly-seo
7318
  #: view/Assistant/Settings.php:145 view/Audits/Settings.php:60
7319
- #: view/Ranking/Settings.php:173 view/SeoSettings/Advanced.php:90
7320
  #: view/SeoSettings/Automation.php:478 view/SeoSettings/Automation.php:599
7321
- #: view/SeoSettings/Backup.php:206 view/SeoSettings/Favicon.php:107
7322
- #: view/SeoSettings/Jsonld.php:247 view/SeoSettings/Metas.php:235
7323
  #: view/SeoSettings/Robots.php:80 view/SeoSettings/Sitemap.php:309
7324
  #: view/SeoSettings/Social.php:376 view/SeoSettings/Tracking.php:142
7325
  #: view/SeoSettings/Webmaster.php:122
@@ -7339,24 +7530,30 @@ msgid ""
7339
  "performing in terms of Blogging, SEO, Social, Authority, Links, and Traffic"
7340
  msgstr ""
7341
 
7342
- #: view/Audits/Addpage.php:92 view/BulkSeo/Bulkseo.php:101
7343
  #: view/FocusPages/Addpage.php:92
7344
  msgid "Any status"
7345
  msgstr ""
7346
 
7347
- #: view/Audits/Addpage.php:112 view/BulkSeo/Bulkseo.php:121
7348
- #: view/FocusPages/Addpage.php:112 view/Research/Research.php:202
 
 
 
7349
  msgid "Search"
7350
- msgstr ""
7351
 
7352
- #: view/Audits/Addpage.php:114 view/Audits/Audit.php:38
 
7353
  #: view/Audits/Compare.php:44 view/BulkSeo/Bulkseo.php:123
7354
  #: view/FocusPages/Addpage.php:114 view/FocusPages/FocusPages.php:6
7355
  #: view/Ranking/Rankings.php:58 view/Research/Briefcase.php:37
 
 
7356
  msgid "Show All"
7357
- msgstr ""
7358
 
7359
- #: view/Audits/Addpage.php:132 view/FocusPages/Addpage.php:133
7360
  msgid "Option"
7361
  msgstr ""
7362
 
@@ -7365,7 +7562,7 @@ msgid "Add Page to Audit"
7365
  msgstr ""
7366
 
7367
  #: view/Audits/Addpage.php:179
7368
- msgid "Already added"
7369
  msgstr ""
7370
 
7371
  #: view/Audits/Addpage.php:193 view/BulkSeo/Bulkseo.php:198
@@ -7373,13 +7570,16 @@ msgstr ""
7373
  msgid "Prev Page"
7374
  msgstr ""
7375
 
 
7376
  #: view/Audits/Addpage.php:194 view/BulkSeo/Bulkseo.php:199
7377
  #: view/FocusPages/Addpage.php:197
 
 
7378
  msgid "Next Page"
7379
- msgstr ""
7380
 
7381
  #: view/Audits/Addpage.php:202 view/FocusPages/Addpage.php:205
7382
- msgid "No page found."
7383
  msgstr ""
7384
 
7385
  # @ squirrly-seo
@@ -7390,17 +7590,17 @@ msgid "Audit Details"
7390
  msgstr "Ihre E-Mail Adresse:"
7391
 
7392
  # @ squirrly-seo
7393
- #: view/Audits/Audit.php:65
7394
  #, fuzzy
7395
  #| msgid "Squirrly settings"
7396
  msgid "Audit Pages"
7397
  msgstr "Squirrly Einstellungen"
7398
 
7399
- #: view/Audits/Audit.php:86
7400
  msgid "Show Only Completed Tasks"
7401
  msgstr ""
7402
 
7403
- #: view/Audits/Audit.php:91
7404
  msgid "Show Only Incompleted Tasks"
7405
  msgstr ""
7406
 
@@ -7419,7 +7619,7 @@ msgstr "Konnte E-Mail nicht senden ..."
7419
  msgid "error code"
7420
  msgstr ""
7421
 
7422
- #: view/Audits/AuditPageRow.php:49
7423
  #, php-format
7424
  msgid ""
7425
  "The way your WordPress site is currently hosted can affect the way Squirrly "
@@ -7429,20 +7629,33 @@ msgid ""
7429
  "to allow our server to verify your page so that you’ll receive a full audit."
7430
  msgstr ""
7431
 
7432
- #: view/Audits/AuditPageRow.php:50 view/FocusPages/FocusPageRow.php:96
 
 
 
 
7433
  msgid "Inspect URL"
7434
- msgstr ""
7435
 
7436
- #: view/Audits/AuditPageRow.php:73
 
 
 
 
 
 
 
7437
  msgid "Delete Page from Audit"
7438
  msgstr ""
7439
 
 
7440
  #: view/Audits/AuditPages.php:6
 
 
7441
  msgid "Audited pages"
7442
- msgstr ""
7443
 
7444
- #: view/Audits/AuditPages.php:13 view/Blocks/FocusPages.php:16
7445
- #: view/FocusPages/FocusPages.php:53
7446
  msgid "Permalink"
7447
  msgstr ""
7448
 
@@ -7451,16 +7664,19 @@ msgstr ""
7451
  msgid "No data for this filter. %sShow All%s Audit Pages."
7452
  msgstr ""
7453
 
 
7454
  #: view/Audits/AuditPages.php:53
 
 
7455
  msgid "Welcome to Squirrly SEO Audits"
7456
- msgstr ""
7457
 
7458
  #: view/Audits/AuditPages.php:55
7459
  msgid "Add a new page for Audit to get started"
7460
  msgstr ""
7461
 
7462
  #: view/Audits/AuditPages.php:68 view/Errors/Error.php:20
7463
- #: view/FocusPages/FocusPages.php:125 view/Ranking/Rankings.php:451
7464
  #, php-format
7465
  msgid ""
7466
  "There is a connection error with Squirrly Cloud. Please check the connection "
@@ -7473,24 +7689,27 @@ msgid ""
7473
  msgstr ""
7474
 
7475
  #: view/Audits/AuditStats.php:31
7476
- msgid "Your score is medium. A good score is over 80"
7477
  msgstr ""
7478
 
7479
  #: view/Audits/AuditStats.php:33
7480
- msgid "Your score is good. Keep it as high as posible for good results"
7481
  msgstr ""
7482
 
7483
  # @ squirrly-seo
7484
- #: view/Audits/AuditStats.php:40 view/Audits/AuditStats.php:230
7485
  #: view/Audits/Compare.php:73
7486
  #, fuzzy
7487
  #| msgid "Squirrly settings"
7488
  msgid "Audit Score"
7489
  msgstr "Squirrly Einstellungen"
7490
 
 
7491
  #: view/Audits/AuditStats.php:53
7492
- msgid "Your audit score is:"
7493
- msgstr ""
 
 
7494
 
7495
  #: view/Audits/AuditStats.php:62
7496
  msgid "Add a new page for Audit"
@@ -7511,21 +7730,30 @@ msgstr ""
7511
  msgid "Request Website Audit"
7512
  msgstr ""
7513
 
 
 
 
 
 
 
 
 
7514
  #: view/Audits/AuditStats.php:95
 
 
7515
  msgid "Audit not ready yet"
7516
- msgstr ""
7517
 
7518
- #: view/Audits/AuditStats.php:122 view/Audits/AuditStats.php:232
7519
- #: view/Blocks/Audits.php:21 view/Blocks/KRHistory.php:17
7520
- #: view/Ranking/Rankings.php:403 view/Research/History.php:31
7521
  msgid "Date"
7522
  msgstr ""
7523
 
7524
- #: view/Audits/AuditStats.php:122 view/Blocks/Audits.php:22
7525
  msgid "On-Page"
7526
  msgstr ""
7527
 
7528
- #: view/Audits/AuditStats.php:122 view/Blocks/Audits.php:23
7529
  msgid "Off-Page"
7530
  msgstr ""
7531
 
@@ -7543,46 +7771,52 @@ msgstr ""
7543
  msgid "the latest %s days evolution for Audit"
7544
  msgstr ""
7545
 
7546
- #: view/Audits/AuditStats.php:191 view/FocusPages/FocusPageStats.php:136
7547
- #: view/Goals/CheckSeo.php:20 view/Ranking/Rankings.php:149
7548
  msgid "Progress & Achievements"
7549
  msgstr ""
7550
 
7551
- #: view/Audits/AuditStats.php:192
7552
  #, php-format
7553
  msgid "the latest %s days progress for Audit Pages"
7554
  msgstr ""
7555
 
7556
- #: view/Audits/AuditStats.php:202 view/FocusPages/FocusPageStats.php:147
7557
- #: view/Ranking/Rankings.php:178
7558
  msgid "No progress found yet"
7559
  msgstr ""
7560
 
7561
- #: view/Audits/AuditStats.php:215
 
 
 
7562
  msgid "Audit History"
7563
- msgstr ""
7564
 
7565
- #: view/Audits/AuditStats.php:222
7566
  msgid "Compare Audits"
7567
  msgstr ""
7568
 
7569
- #: view/Audits/AuditStats.php:231
7570
  msgid "Page(s)"
7571
  msgstr ""
7572
 
7573
- #: view/Audits/AuditStats.php:248
7574
  msgid "pages"
7575
  msgstr ""
7576
 
7577
- #: view/Audits/AuditStats.php:252
7578
  msgid "Show Audit"
7579
  msgstr ""
7580
 
 
7581
  #: view/Audits/Audits.php:25
 
 
7582
  msgid "Audits"
7583
- msgstr ""
7584
 
7585
- #: view/Audits/Audits.php:59
7586
  #, php-format
7587
  msgid ""
7588
  "%sNote:%s remember that it takes anywhere between %s1 minute to 5 minutes%s "
@@ -7590,13 +7824,13 @@ msgid ""
7590
  "involved."
7591
  msgstr ""
7592
 
7593
- #: view/Audits/Audits.php:66
7594
  #, php-format
7595
  msgid "Learn how to improve your SEO Audit score over time %sClick Here%s"
7596
  msgstr ""
7597
 
7598
  # @ squirrly-seo
7599
- #: view/Audits/Audits.php:87 view/FocusPages/Pagelist.php:85
7600
  #, fuzzy
7601
  #| msgid "Squirrly LIVE SEO assistant"
7602
  msgid "Squirrly Inspect URL"
@@ -7625,116 +7859,95 @@ msgid "Account Info Unavailable"
7625
  msgstr ""
7626
 
7627
  #: view/Blocks/Account.php:43
7628
- msgid "Your Plan: "
7629
  msgstr ""
7630
 
7631
  #: view/Blocks/Account.php:44
7632
  msgid "Check Account Info"
7633
  msgstr ""
7634
 
7635
- #: view/Blocks/Account.php:49
7636
- msgid "Email: "
7637
- msgstr ""
 
 
 
7638
 
7639
  #: view/Blocks/Account.php:55
7640
  #, php-format
7641
  msgid "Due Date: %s"
7642
  msgstr ""
7643
 
7644
- #: view/Blocks/Audits.php:7 view/Blocks/Audits.php:53
7645
- msgid "See Audits"
7646
- msgstr ""
7647
-
7648
- #: view/Blocks/Audits.php:15
7649
- msgid "Audits Score"
7650
- msgstr ""
7651
-
7652
- #: view/Blocks/Audits.php:16
7653
- msgid "last 4 audits"
7654
- msgstr ""
7655
-
7656
- #: view/Blocks/Audits.php:42
7657
- msgid "No data yet"
7658
- msgstr ""
7659
-
7660
- #: view/Blocks/Audits.php:62
7661
- msgid "The SEO Audit is generated once every week"
7662
- msgstr ""
7663
-
7664
- #: view/Blocks/Audits.php:63
7665
- msgid "Until the audit is ready, try the Focus Pages section"
7666
- msgstr ""
7667
-
7668
- #: view/Blocks/Audits.php:67
7669
- msgid "Go to Focus Pages"
7670
- msgstr ""
7671
-
7672
  #: view/Blocks/Connect.php:14 view/Blocks/Connect.php:28
7673
  msgid ""
7674
  "This option is used to track innerlinks and insights for your Focus Pages "
7675
  "and give detailed informations about them."
7676
  msgstr ""
7677
 
7678
- #: view/Blocks/Connect.php:16 view/Blocks/Connect.php:30
7679
- msgid "Let Squirrly API get data for Focus Pages"
7680
  msgstr ""
7681
 
7682
  #: view/Blocks/Connect.php:17
7683
  msgid "Connect"
7684
  msgstr ""
7685
 
 
 
 
 
7686
  #: view/Blocks/Connect.php:31
7687
  msgid "disconnect"
7688
  msgstr ""
7689
 
7690
- #: view/Blocks/Dashboard.php:162
7691
  msgid "Upgrade your SEO with Squirrly and improve your rankings on Google"
7692
  msgstr ""
7693
 
7694
- #: view/Blocks/Dashboard.php:172
7695
  msgid "Congratulations! you have success messages"
7696
  msgstr ""
7697
 
7698
- #: view/Blocks/Dashboard.php:187 view/Blocks/Dashboard.php:221
7699
  msgid "others"
7700
  msgstr ""
7701
 
7702
- #: view/Blocks/Dashboard.php:195
7703
  #, php-format
7704
  msgid "See %s other achievements"
7705
  msgstr ""
7706
 
7707
- #: view/Blocks/Dashboard.php:197
7708
  msgid "See today's achievements"
7709
  msgstr ""
7710
 
7711
- #: view/Blocks/Dashboard.php:206
7712
  msgid "You got new goals for today"
7713
  msgstr ""
7714
 
7715
- #: view/Blocks/Dashboard.php:230
7716
  #, php-format
7717
  msgid "See %s other goals"
7718
  msgstr ""
7719
 
7720
- #: view/Blocks/Dashboard.php:232
7721
  msgid "See today's goals"
7722
  msgstr ""
7723
 
7724
- #: view/Blocks/Dashboard.php:238 view/Goals/Goals.php:213
7725
  #, php-format
7726
  msgid "No other goals for today. %sGood job!"
7727
  msgstr ""
7728
 
7729
- #: view/Blocks/Dashboard.php:241 view/Goals/Goals.php:224
7730
  msgid "Rank your best pages with Focus Pages"
7731
  msgstr ""
7732
 
7733
- #: view/Blocks/Dashboard.php:244 view/Goals/Goals.php:221
7734
  msgid "Boost your SEO with Bulk SEO"
7735
  msgstr ""
7736
 
7737
- #: view/Blocks/Dashboard.php:268 view/Goals/CheckSeo.php:109
7738
  msgid "Checking the website ..."
7739
  msgstr ""
7740
 
@@ -7749,10 +7962,12 @@ msgstr ""
7749
  msgid "Freemium"
7750
  msgstr ""
7751
 
7752
- #: view/Blocks/Features.php:16 view/Blocks/KRHistory.php:5
7753
- #: view/Onboarding/Step1.3.php:11 view/Research/Research.php:18
 
 
7754
  msgid "Keyword Research"
7755
- msgstr ""
7756
 
7757
  #: view/Blocks/Features.php:17
7758
  msgid ""
@@ -7818,7 +8033,7 @@ msgstr ""
7818
  msgid "Bulk SEO & Snippets"
7819
  msgstr "Squirrly LIVE SEO-Assistent"
7820
 
7821
- #: view/Blocks/Features.php:62
7822
  msgid ""
7823
  "Simplify the SEO process for all your posts types and optimize them in just "
7824
  "minutes."
@@ -7892,9 +8107,12 @@ msgid ""
7892
  "Campaigns."
7893
  msgstr ""
7894
 
 
7895
  #: view/Blocks/Features.php:133 view/Connect/GoogleSearchConsole.php:7
 
 
7896
  msgid "Google Search Console"
7897
- msgstr ""
7898
 
7899
  #: view/Blocks/Features.php:134
7900
  msgid ""
@@ -7973,7 +8191,7 @@ msgstr ""
7973
  msgid "Pro"
7974
  msgstr ""
7975
 
7976
- #: view/Blocks/Features.php:214 view/Onboarding/Step1.5.php:21
7977
  msgid "Google SERP Checker"
7978
  msgstr ""
7979
 
@@ -8017,30 +8235,6 @@ msgstr ""
8017
  msgid "more details"
8018
  msgstr ""
8019
 
8020
- #: view/Blocks/FocusPages.php:7
8021
- msgid "See Focus Pages"
8022
- msgstr ""
8023
-
8024
- #: view/Blocks/FocusPages.php:17
8025
- msgid "Last audited"
8026
- msgstr ""
8027
-
8028
- #: view/Blocks/FocusPages.php:54
8029
- msgid "Check Focus Page"
8030
- msgstr ""
8031
-
8032
- #: view/Blocks/FocusPages.php:66
8033
- msgid "To get started with managing the focus pages"
8034
- msgstr ""
8035
-
8036
- #: view/Blocks/FocusPages.php:70
8037
- msgid "Add new page"
8038
- msgstr ""
8039
-
8040
- #: view/Blocks/FocusPages.php:76
8041
- msgid "Then set a page as focus"
8042
- msgstr ""
8043
-
8044
  #: view/Blocks/Jorney.php:17
8045
  #, php-format
8046
  msgid "Follow the %sdaily recipe%s from below."
@@ -8091,128 +8285,26 @@ msgstr ""
8091
  msgid "I'm ready to start the Journey To Better Ranking"
8092
  msgstr ""
8093
 
8094
- #: view/Blocks/KRFound.php:6
8095
- msgid "Suggested Keywords"
8096
- msgstr ""
8097
-
8098
- #: view/Blocks/KRFound.php:16 view/Blocks/KRHistory.php:16
8099
- #: view/Ranking/Rankings.php:395 view/Research/Briefcase.php:256
8100
- #: view/Research/History.php:30 view/Research/Research.php:195
8101
- #: view/Research/Suggested.php:29
8102
- msgid "Country"
8103
- msgstr ""
8104
-
8105
- #: view/Blocks/KRFound.php:16 view/Blocks/KRHistory.php:16
8106
- #: view/Research/History.php:30 view/Research/Research.php:195
8107
- #: view/Research/Suggested.php:29
8108
- msgid "Co"
8109
- msgstr ""
8110
-
8111
- #: view/Blocks/KRFound.php:18 view/Blocks/KRFound.php:19
8112
- #: view/Blocks/KRFound.php:64 view/Research/Briefcase.php:261
8113
- #: view/Research/HistoryDetails.php:16 view/Research/HistoryDetails.php:18
8114
- #: view/Research/Research.php:197 view/Research/Research.php:198
8115
- #: view/Research/Suggested.php:31 view/Research/Suggested.php:32
8116
- #: view/Research/Suggested.php:81
8117
- msgid "Competition"
8118
- msgstr ""
8119
-
8120
- #: view/Blocks/KRFound.php:22 view/Blocks/KRFound.php:69
8121
- #: view/Research/HistoryDetails.php:12 view/Research/Research.php:201
8122
- #: view/Research/Suggested.php:35 view/Research/Suggested.php:86
8123
- msgid "SEO Search Volume"
8124
- msgstr ""
8125
-
8126
- #: view/Blocks/KRFound.php:23 view/Research/HistoryDetails.php:14
8127
- #: view/Research/Suggested.php:36
8128
- msgid "SV"
8129
- msgstr ""
8130
-
8131
- #: view/Blocks/KRFound.php:26 view/Blocks/KRFound.php:74
8132
- #: view/Research/Briefcase.php:277 view/Research/HistoryDetails.php:8
8133
- #: view/Research/Research.php:205 view/Research/Suggested.php:39
8134
- #: view/Research/Suggested.php:91
8135
- msgid "Recent discussions"
8136
- msgstr ""
8137
-
8138
- #: view/Blocks/KRFound.php:27 view/Research/HistoryDetails.php:10
8139
- #: view/Research/Research.php:206 view/Research/Suggested.php:40
8140
- msgid "Discussion"
8141
- msgstr ""
8142
-
8143
- #: view/Blocks/KRFound.php:30 view/Blocks/KRFound.php:31
8144
- #: view/Blocks/KRFound.php:79 view/Research/Briefcase.php:283
8145
- #: view/Research/HistoryDetails.php:20 view/Research/Research.php:209
8146
- #: view/Research/Suggested.php:43
8147
- msgid "Trending"
8148
- msgstr ""
8149
-
8150
- #: view/Blocks/KRFound.php:64 view/Blocks/KRFound.php:69
8151
- #: view/Blocks/KRFound.php:74 view/Blocks/KRFound.php:79
8152
- #: view/Research/Briefcase.php:262 view/Research/Briefcase.php:272
8153
- #: view/Research/Briefcase.php:278 view/Research/Suggested.php:81
8154
- #: view/Research/Suggested.php:86 view/Research/Suggested.php:91
8155
- msgid "-"
8156
- msgstr ""
8157
-
8158
- #: view/Blocks/KRFound.php:83
8159
- msgid "Use Keyword"
8160
- msgstr ""
8161
-
8162
- #: view/Blocks/KRFound.php:96 view/Research/Suggested.php:153
8163
- msgid "Once a week, Squirrly checks all the keywords from your briefcase."
8164
- msgstr ""
8165
-
8166
- #: view/Blocks/KRFound.php:97 view/Research/Suggested.php:154
8167
- msgid "If it finds better keywords, they will be listed here"
8168
- msgstr ""
8169
-
8170
- #: view/Blocks/KRFound.php:98 view/Research/Suggested.php:155
8171
- msgid "Until then, add keywords in Briefcase"
8172
- msgstr ""
8173
-
8174
- #: view/Blocks/KRFound.php:102 view/Blocks/SLASearch.php:23
8175
- msgid "Go to Briefcase"
8176
- msgstr ""
8177
-
8178
- #: view/Blocks/KRHistory.php:6
8179
- msgid "See Research History"
8180
- msgstr ""
8181
-
8182
- #: view/Blocks/KRHistory.php:43 view/Research/History.php:55
8183
- msgid "See your research results and compare them over time"
8184
- msgstr ""
8185
-
8186
  #: view/Blocks/KnowledgeBase.php:6
8187
  msgid "Knowledge Base"
8188
  msgstr ""
8189
 
8190
- # @ squirrly-seo
8191
- #: view/Blocks/Login.php:11 view/Blocks/Login.php:29
8192
- msgid "Email:"
8193
- msgstr ""
8194
-
8195
- # @ squirrly-seo
8196
  #: view/Blocks/Login.php:15
8197
- msgid "Password:"
8198
  msgstr ""
8199
 
8200
- # @ squirrly-seo
8201
  #: view/Blocks/Login.php:19
8202
  msgid "Register to Squirrly.co"
8203
  msgstr ""
8204
 
8205
- # @ squirrly-seo
8206
  #: view/Blocks/Login.php:20
8207
  msgid "Lost password?"
8208
  msgstr ""
8209
 
8210
- # @ squirrly-seo
8211
  #: view/Blocks/Login.php:20
8212
  msgid "Lost password"
8213
  msgstr ""
8214
 
8215
- # @ squirrly-seo
8216
  #: view/Blocks/Login.php:22
8217
  msgid "Login"
8218
  msgstr ""
@@ -8230,93 +8322,14 @@ msgstr ""
8230
  msgid "Sign Up"
8231
  msgstr ""
8232
 
8233
- #: view/Blocks/Ranks.php:6 view/Ranking/Rankings.php:31
8234
- msgid "Google Rankings"
8235
- msgstr ""
8236
-
8237
- #: view/Blocks/Ranks.php:7 view/Blocks/Ranks.php:77
8238
- #: view/Onboarding/Step1.5.php:25
8239
- msgid "See Rankings"
8240
- msgstr ""
8241
-
8242
- #: view/Blocks/Ranks.php:19 view/Blocks/Ranks.php:84
8243
- msgid "Google Ranks"
8244
- msgstr ""
8245
-
8246
- #: view/Blocks/Ranks.php:20 view/Blocks/Ranks.php:85
8247
- msgid "last 7 days"
8248
- msgstr ""
8249
-
8250
- #: view/Blocks/Ranks.php:44
8251
- msgid "Today Average"
8252
- msgstr ""
8253
-
8254
- #: view/Blocks/Ranks.php:67
8255
- #, php-format
8256
- msgid "The average rank went down with %s since %s"
8257
- msgstr ""
8258
-
8259
- #: view/Blocks/Ranks.php:69
8260
- #, php-format
8261
- msgid "The average rank went up with %s since %s"
8262
- msgstr ""
8263
-
8264
- #: view/Blocks/Ranks.php:100
8265
- msgid "To see how your website is ranking on Google"
8266
- msgstr ""
8267
-
8268
- #: view/Blocks/Ranks.php:104 view/Ranking/Rankings.php:432
8269
- msgid "Add keywords in Briefcase"
8270
- msgstr ""
8271
-
8272
- #: view/Blocks/Ranks.php:110
8273
- msgid "Then send keywords to Rank Checker"
8274
- msgstr ""
8275
-
8276
- #: view/Blocks/SEOIssues.php:5
8277
- msgid "SEO Issues"
8278
- msgstr ""
8279
-
8280
- #: view/Blocks/SEOIssues.php:10
8281
- msgid "Run new test"
8282
- msgstr ""
8283
-
8284
- #: view/Blocks/SEOIssues.php:23
8285
- msgid "Problem"
8286
- msgstr ""
8287
-
8288
- #: view/Blocks/SEOIssues.php:24
8289
- msgid "Solution"
8290
- msgstr ""
8291
-
8292
- #: view/Blocks/SEOIssues.php:56
8293
- msgid "See solution"
8294
- msgstr ""
8295
-
8296
- #: view/Blocks/SEOIssues.php:67
8297
- msgid "Fix It"
8298
- msgstr ""
8299
-
8300
- #: view/Blocks/SEOIssues.php:88
8301
- msgid "No SEO major issues found in your website"
8302
- msgstr ""
8303
-
8304
- #: view/Blocks/SEOIssues.php:90
8305
- msgid "Now, check the SEO for each page using Bulk SEO"
8306
- msgstr ""
8307
-
8308
- #: view/Blocks/SEOIssues.php:94
8309
- msgid "Go to Bulk SEO"
8310
- msgstr ""
8311
-
8312
  #: view/Blocks/SLASearch.php:2
8313
- msgid "Waiting for your editor to load .. "
8314
  msgstr ""
8315
 
8316
- #: view/Blocks/SLASearch.php:3
8317
  msgid ""
8318
- "Javascript is disabled! You need to activate the javascript in order to use "
8319
- "Squirrly SEO."
8320
  msgstr ""
8321
 
8322
  #: view/Blocks/SLASearch.php:8
@@ -8331,9 +8344,12 @@ msgstr ""
8331
  msgid "Click to Maximize Box"
8332
  msgstr ""
8333
 
 
8334
  #: view/Blocks/SLASearch.php:11 view/Blocks/SLASearch.php:17
 
 
8335
  msgid "Squirrly Briefcase"
8336
- msgstr ""
8337
 
8338
  #: view/Blocks/SLASearch.php:18
8339
  msgid "Refresh the briefcase"
@@ -8347,15 +8363,23 @@ msgstr ""
8347
  msgid "Search in Briefcase ..."
8348
  msgstr ""
8349
 
 
 
 
 
8350
  # @ squirrly-seo
8351
  #: view/Blocks/SLASearch.php:31
 
 
8352
  msgid "Enter a keyword"
8353
- msgstr ""
8354
 
8355
  # @ squirrly-seo
8356
  #: view/Blocks/SLASearch.php:32
 
 
8357
  msgid "for Squirrly Live SEO optimization"
8358
- msgstr ""
8359
 
8360
  # @ squirrly-seo
8361
  #: view/Blocks/SLASearch.php:37
@@ -8366,8 +8390,10 @@ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
8366
 
8367
  # @ squirrly-seo
8368
  #: view/Blocks/SLASearch.php:39
 
 
8369
  msgid "Use this keyword"
8370
- msgstr ""
8371
 
8372
  # @ squirrly-seo
8373
  #: view/Blocks/SLASearch.php:42
@@ -8376,39 +8402,36 @@ msgstr ""
8376
  msgid "Do keyword research!"
8377
  msgstr "Recherchieren"
8378
 
8379
- # @ squirrly-seo
8380
  #: view/Blocks/SLASearch.php:46
8381
  msgid "Images"
8382
  msgstr ""
8383
 
8384
- # @ squirrly-seo
8385
  #: view/Blocks/SLASearch.php:47
8386
  msgid "Twitter"
8387
  msgstr ""
8388
 
8389
- # @ squirrly-seo
8390
  #: view/Blocks/SLASearch.php:48
8391
  msgid "Wiki"
8392
  msgstr ""
8393
 
8394
- # @ squirrly-seo
8395
  #: view/Blocks/SLASearch.php:49
8396
  msgid "Blogs"
8397
  msgstr ""
8398
 
8399
- # @ squirrly-seo
8400
  #: view/Blocks/SLASearch.php:50
8401
  msgid "My articles"
8402
  msgstr ""
8403
 
8404
- # @ squirrly-seo
8405
  #: view/Blocks/SLASearch.php:58
8406
  msgid "Show only Copyright Free images"
8407
  msgstr ""
8408
 
8409
- #: view/Blocks/SLASeo.php:3 view/Onboarding/Step1.2.php:11
 
 
 
8410
  msgid "Squirrly Live Assistant"
8411
- msgstr ""
8412
 
8413
  #: view/Blocks/SLASeo.php:6
8414
  msgid "Update"
@@ -8418,313 +8441,347 @@ msgstr ""
8418
  msgid "Split Window"
8419
  msgstr ""
8420
 
8421
- #: view/Blocks/Snippet.php:82
8422
  msgid "Meta Tags"
8423
  msgstr ""
8424
 
8425
- #: view/Blocks/Snippet.php:87
8426
  msgid "JSON-LD"
8427
  msgstr ""
8428
 
8429
- #: view/Blocks/Snippet.php:111 view/Blocks/Snippet.php:471
8430
- #: view/Blocks/Snippet.php:725
8431
  #, php-format
8432
  msgid ""
8433
  "Post Type (%s) was excluded from %sSquirrly > SEO Settings%s. Squirrly SEO "
8434
  "will not load for this post type on the frontend"
8435
  msgstr ""
8436
 
8437
- #: view/Blocks/Snippet.php:119 view/SeoSettings/Automation.php:170
 
8438
  #: view/SeoSettings/Automation.php:197 view/SeoSettings/Automation.php:275
 
 
8439
  msgid "Activate Metas"
8440
- msgstr ""
8441
 
8442
- #: view/Blocks/Snippet.php:128
8443
  msgid "How this page will appear on Search Engines"
8444
  msgstr ""
8445
 
8446
- #: view/Blocks/Snippet.php:132 view/Blocks/Snippet.php:364
8447
- #: view/Blocks/Snippet.php:493 view/Blocks/Snippet.php:747
8448
- #: view/Blocks/Snippet.php:968
8449
  msgid "Refresh"
8450
  msgstr ""
8451
 
8452
- #: view/Blocks/Snippet.php:136 view/Blocks/Snippet.php:509
8453
- #: view/Blocks/Snippet.php:765
8454
  msgid "AUTO-DRAFT"
8455
  msgstr ""
8456
 
8457
- #: view/Blocks/Snippet.php:147 view/Blocks/Snippet.php:530
8458
- #: view/Blocks/Snippet.php:785
8459
  msgid "Please save the post first to be able to edit the Squirrly SEO Snippet"
8460
  msgstr ""
8461
 
8462
- #: view/Blocks/Snippet.php:154 view/Blocks/Snippet.php:537
8463
- #: view/Blocks/Snippet.php:792
8464
  msgid "Cancel"
8465
  msgstr ""
8466
 
8467
- #: view/Blocks/Snippet.php:155 view/Blocks/Snippet.php:365
8468
- #: view/Blocks/Snippet.php:538 view/Blocks/Snippet.php:793
8469
- #: view/Blocks/Snippet.php:969
8470
  msgid "Save"
8471
  msgstr ""
8472
 
8473
- #: view/Blocks/Snippet.php:165
 
 
 
8474
  msgid "Activate Title"
8475
- msgstr ""
8476
 
8477
  # @ squirrly-seo
8478
- #: view/Blocks/Snippet.php:172 view/Blocks/Snippet.php:223
8479
- #: view/Blocks/Snippet.php:571 view/Blocks/Snippet.php:614
8480
- #: view/Blocks/Snippet.php:826 view/Blocks/Snippet.php:869
8481
  #, fuzzy, php-format
8482
  #| msgid "Tips: Length 10-70 chars"
8483
  msgid "Tips: Length %s-%s chars"
8484
  msgstr "Tipp: Länge 10-70 Charaktere"
8485
 
8486
- #: view/Blocks/Snippet.php:175 view/Blocks/Snippet.php:226
8487
- #: view/Blocks/Snippet.php:574 view/Blocks/Snippet.php:617
8488
- #: view/Blocks/Snippet.php:829 view/Blocks/Snippet.php:872
8489
- msgid "Pattern: "
 
 
 
8490
  msgstr ""
8491
 
8492
- #: view/Blocks/Snippet.php:192 view/Blocks/Snippet.php:591
8493
- #: view/Blocks/Snippet.php:846
8494
  msgid "Default Title"
8495
  msgstr ""
8496
 
8497
- #: view/Blocks/Snippet.php:199 view/Blocks/Snippet.php:253
8498
- #: view/Blocks/Snippet.php:598 view/Blocks/Snippet.php:644
8499
- #: view/Blocks/Snippet.php:853 view/Blocks/Snippet.php:899
8500
- msgid "Pattern"
8501
- msgstr ""
8502
-
8503
- #: view/Blocks/Snippet.php:216
8504
  msgid "Activate Description"
8505
  msgstr ""
8506
 
8507
- #: view/Blocks/Snippet.php:222
8508
  msgid "Meta Description"
8509
  msgstr ""
8510
 
8511
- #: view/Blocks/Snippet.php:246 view/Blocks/Snippet.php:637
8512
- #: view/Blocks/Snippet.php:892
8513
  msgid "Default Description"
8514
  msgstr ""
8515
 
8516
- #: view/Blocks/Snippet.php:270
 
 
 
8517
  msgid "Activate Keywords"
8518
- msgstr ""
8519
 
8520
- #: view/Blocks/Snippet.php:276
 
 
 
8521
  msgid "Meta Keywords"
8522
- msgstr ""
8523
 
8524
  # @ squirrly-seo
8525
- #: view/Blocks/Snippet.php:280
 
 
8526
  msgid "+ Add keyword"
8527
- msgstr ""
8528
 
8529
- #: view/Blocks/Snippet.php:292
 
 
 
8530
  msgid "Activate Canonical"
8531
- msgstr ""
8532
 
8533
- #: view/Blocks/Snippet.php:299
8534
  msgid "Leave it blank if you don't have an external canonical"
8535
  msgstr ""
8536
 
8537
- #: view/Blocks/Snippet.php:302
8538
- msgid "Found: "
8539
  msgstr ""
8540
 
8541
- #: view/Blocks/Snippet.php:314
8542
  msgid "Default Link"
8543
  msgstr ""
8544
 
8545
- #: view/Blocks/Snippet.php:336 view/Blocks/Snippet.php:459
8546
- #: view/Blocks/Snippet.php:705 view/Blocks/Snippet.php:940
8547
- #: view/Blocks/Snippet.php:1073
8548
  msgid ""
8549
  "To edit the snippet, you have to activate Squirrly SEO for this page first"
8550
  msgstr ""
8551
 
8552
- #: view/Blocks/Snippet.php:345
 
 
 
8553
  msgid "Activate Squirrly Snippet for this page"
8554
- msgstr ""
8555
 
8556
- #: view/Blocks/Snippet.php:350 view/Blocks/Snippet.php:710
8557
- #: view/Blocks/Snippet.php:945
8558
  msgid "Post Type"
8559
  msgstr ""
8560
 
8561
- #: view/Blocks/Snippet.php:352 view/Blocks/Snippet.php:674
8562
- #: view/Blocks/Snippet.php:712
8563
  msgid "OG Type"
8564
  msgstr ""
8565
 
8566
- #: view/Blocks/Snippet.php:382
8567
  #, php-format
8568
  msgid ""
8569
  "JSON-LD is disable for this Post Type (%s). See %sSquirrly > SEO Settings > "
8570
  "Automation%s."
8571
  msgstr ""
8572
 
8573
- #: view/Blocks/Snippet.php:406
8574
  msgid "JSON-LD Code"
8575
  msgstr ""
8576
 
8577
- #: view/Blocks/Snippet.php:411 view/Blocks/Snippet.php:682
8578
- #: view/Blocks/Snippet.php:920
8579
  msgid "(Auto)"
8580
  msgstr ""
8581
 
8582
- #: view/Blocks/Snippet.php:412
8583
  msgid "Custom Code"
8584
  msgstr ""
8585
 
8586
- #: view/Blocks/Snippet.php:422
8587
  msgid "Custom JSON-LD Code"
8588
  msgstr ""
8589
 
8590
- #: view/Blocks/Snippet.php:423
8591
  #, php-format
8592
  msgid "Add JSON-LD code from %sSchema Generator Online%s."
8593
  msgstr ""
8594
 
8595
- #: view/Blocks/Snippet.php:432
8596
  msgid "Current JSON-LD Code"
8597
  msgstr ""
8598
 
8599
- #: view/Blocks/Snippet.php:440
8600
  msgid "Validate"
8601
  msgstr ""
8602
 
8603
- #: view/Blocks/Snippet.php:488
 
 
 
 
 
 
 
8604
  msgid "How this page appears on Facebook"
8605
  msgstr ""
8606
 
8607
- #: view/Blocks/Snippet.php:494
8608
  msgid "Edit Open Graph"
8609
  msgstr ""
8610
 
8611
- #: view/Blocks/Snippet.php:502 view/Blocks/Snippet.php:757
8612
  msgid "The image size must be at least 500 pixels wide"
8613
  msgstr ""
8614
 
8615
- #: view/Blocks/Snippet.php:518
8616
  msgid ""
8617
  "This is the Featured Image. You can change it if you edit the snippet and "
8618
- "upload another image. "
8619
  msgstr ""
8620
 
8621
- #: view/Blocks/Snippet.php:547 view/Blocks/Snippet.php:802
 
 
 
 
8622
  msgid "Media Image"
8623
  msgstr ""
8624
 
8625
- # @ squirrly-seo
8626
- #: view/Blocks/Snippet.php:551 view/Blocks/Snippet.php:806
8627
- #: view/Research/Briefcase.php:419 view/SeoSettings/Favicon.php:77
8628
  msgid "Upload"
8629
  msgstr ""
8630
 
8631
- #: view/Blocks/Snippet.php:552 view/Blocks/Snippet.php:807
8632
  msgid "Image size must be at least 500 pixels wide"
8633
  msgstr ""
8634
 
8635
- #: view/Blocks/Snippet.php:659
8636
  msgid "Author Link"
8637
  msgstr ""
8638
 
8639
- #: view/Blocks/Snippet.php:660
8640
  msgid "For multiple authors, separate their Facebook links with commas"
8641
  msgstr ""
8642
 
8643
- #: view/Blocks/Snippet.php:742
8644
  msgid "How this page appears on Twitter"
8645
  msgstr ""
8646
 
8647
- #: view/Blocks/Snippet.php:748
8648
  msgid "Edit Twitter Card"
8649
  msgstr ""
8650
 
8651
- #: view/Blocks/Snippet.php:774
8652
- msgid ""
8653
- "This is the Featured Image. You can change it if you edit the snippet and "
8654
- "upload another image."
8655
- msgstr ""
8656
-
8657
- #: view/Blocks/Snippet.php:915
8658
  msgid "Card Type"
8659
  msgstr ""
8660
 
8661
- #: view/Blocks/Snippet.php:916 view/SeoSettings/Social.php:285
8662
  #, php-format
8663
  msgid "Every change needs %sTwitter Card Validator%s"
8664
  msgstr ""
8665
 
8666
- #: view/Blocks/Snippet.php:921
8667
  msgid "summary"
8668
  msgstr ""
8669
 
8670
- #: view/Blocks/Snippet.php:922
8671
  msgid "summary_large_image"
8672
  msgstr ""
8673
 
8674
- #: view/Blocks/Snippet.php:947
8675
  msgid "Twitter Type"
8676
  msgstr ""
8677
 
8678
- #: view/Blocks/Snippet.php:960
8679
  #, php-format
8680
  msgid ""
8681
  "You selected '%s' in %sSettings > Reading%s. It's important to uncheck that "
8682
  "option."
8683
  msgstr ""
8684
 
8685
- #: view/Blocks/Snippet.php:980 view/Blocks/Snippet.php:1011
8686
  #, php-format
8687
  msgid ""
8688
  "This Post Type (%s) has Nofollow set in Automation. See %sSquirrly > SEO "
8689
  "Settings > Automation%s."
8690
  msgstr ""
8691
 
8692
- #: view/Blocks/Snippet.php:987 view/Blocks/Snippet.php:1018
8693
  #: view/SeoSettings/Automation.php:177 view/SeoSettings/Automation.php:204
8694
  msgid "Activate Robots Meta"
8695
  msgstr ""
8696
 
8697
- #: view/Blocks/Snippet.php:998
8698
  msgid "Let Google Index This Page"
8699
  msgstr ""
8700
 
8701
- #: view/Blocks/Snippet.php:1041
8702
  #, php-format
8703
  msgid ""
8704
  "Show in sitemap for this Post Type (%s) was excluded from %sSquirrly > SEO "
8705
  "Settings > Automation%s."
8706
  msgstr ""
8707
 
8708
- #: view/Blocks/Snippet.php:1048 view/SeoSettings/Automation.php:223
8709
  #: view/SeoSettings/Sitemap.php:33
8710
  msgid "Activate Sitemap"
8711
  msgstr ""
8712
 
8713
- #: view/Blocks/Snippet.php:1058
8714
  msgid "Show it in Sitemap.xml"
8715
  msgstr ""
8716
 
8717
- #: view/Blocks/Snippet.php:1096
 
 
 
8718
  msgid "Loading Squirrly Snippet ..."
8719
- msgstr ""
8720
 
8721
- #: view/Blocks/Snippet.php:1122
 
 
 
8722
  msgid "Enable Squirrly SEO to load Squirrly Snippet"
8723
- msgstr ""
8724
 
8725
- #: view/Blocks/Snippet.php:1134
8726
- #, php-format
 
 
8727
  msgid "%sPlease connect to SquirrlyCloud first%s"
 
 
 
 
 
 
 
8728
  msgstr ""
8729
 
8730
  #: view/Blocks/Stats.php:45
@@ -8757,13 +8814,13 @@ msgstr ""
8757
  msgid "Post Types Covered"
8758
  msgstr ""
8759
 
8760
- #: view/Blocks/Stats.php:79 view/Goals/CheckSeo.php:102
8761
  #, php-format
8762
  msgid "%s Aspects"
8763
  msgstr ""
8764
 
8765
  # @ squirrly-seo
8766
- #: view/Blocks/Stats.php:80 view/Goals/CheckSeo.php:103
8767
  #, fuzzy
8768
  #| msgid "Squirrly settings"
8769
  msgid "Handled by Squirrly Genius."
@@ -8777,42 +8834,44 @@ msgstr ""
8777
  msgid "Run SEO Test"
8778
  msgstr ""
8779
 
8780
- # @ squirrly-seo
8781
  #: view/Blocks/Support.php:7
8782
  msgid "Go to Profile"
8783
  msgstr ""
8784
 
8785
- # @ squirrly-seo
8786
  #: view/Blocks/Support.php:7 view/Blocks/Support.php:8
8787
  msgid "Profile"
8788
  msgstr ""
8789
 
8790
  # @ squirrly-seo
8791
  #: view/Blocks/Support.php:18
 
 
8792
  msgid "Support"
8793
- msgstr ""
8794
 
8795
  # @ squirrly-seo
8796
  #: view/Blocks/Support.php:21
 
 
8797
  msgid "Need Help with Squirrly SEO?"
8798
- msgstr ""
8799
 
8800
- #: view/Blocks/Support.php:23 view/Blocks/Support.php:76
8801
  #, php-format
8802
  msgid "10 AM to 4 PM (GMT): Mon-Fri %sby contact form%s."
8803
  msgstr ""
8804
 
8805
- #: view/Blocks/Support.php:24 view/Blocks/Support.php:77
8806
  #, php-format
8807
  msgid "How To Squirrly %swebsite%s."
8808
  msgstr ""
8809
 
8810
- #: view/Blocks/Support.php:25 view/Blocks/Support.php:78
8811
  #, php-format
8812
  msgid "Facebook %sSupport Community%s."
8813
  msgstr ""
8814
 
8815
- #: view/Blocks/Support.php:26 view/Blocks/Support.php:79
8816
  #, php-format
8817
  msgid "Facebook %sMessenger%s."
8818
  msgstr ""
@@ -8822,100 +8881,135 @@ msgstr ""
8822
  msgid "Twitter %sSupport%s."
8823
  msgstr ""
8824
 
8825
- # @ squirrly-seo
8826
- #: view/Blocks/Support.php:39
8827
  msgid "How was your Squirrly experience today?"
8828
  msgstr ""
8829
 
8830
- # @ squirrly-seo
8831
- #: view/Blocks/Support.php:48
8832
- msgid "How was Squirrly today?"
8833
- msgstr ""
8834
-
8835
- #: view/Blocks/Support.php:53
8836
- msgid "Angry"
8837
- msgstr ""
8838
-
8839
- #: view/Blocks/Support.php:53
8840
  msgid "Annoying"
8841
  msgstr ""
8842
 
8843
- #: view/Blocks/Support.php:56
8844
- msgid "Sad"
8845
- msgstr ""
8846
-
8847
- #: view/Blocks/Support.php:56
8848
  msgid "Bad"
8849
  msgstr ""
8850
 
8851
- #: view/Blocks/Support.php:59
8852
- msgid "Happy"
8853
- msgstr ""
8854
-
8855
- #: view/Blocks/Support.php:59
8856
  msgid "Nice"
8857
  msgstr ""
8858
 
8859
- #: view/Blocks/Support.php:62
8860
- msgid "Excited"
8861
- msgstr ""
8862
-
8863
- #: view/Blocks/Support.php:62
8864
  msgid "Great"
8865
  msgstr ""
8866
 
8867
- #: view/Blocks/Support.php:65
8868
  msgid "Love it"
8869
  msgstr ""
8870
 
8871
- # @ squirrly-seo
8872
- #: view/Blocks/Support.php:71
 
 
 
8873
  msgid "Send feedback"
8874
  msgstr ""
8875
 
8876
- #: view/Blocks/Support.php:75
8877
  msgid "For more support:"
8878
  msgstr ""
8879
 
8880
- #: view/Blocks/Support.php:80
8881
  #, php-format
8882
  msgid "New Lessons Mon. and Tue. on %sTwitter%s."
8883
  msgstr ""
8884
 
8885
- #: view/Blocks/Support.php:85
8886
  msgid "Thank you! You can send us a happy face tomorrow too."
8887
  msgstr ""
8888
 
8889
- #: view/Blocks/VersionBar.php:9
8890
- #, php-format
8891
- msgid ""
8892
- "%sSERP Checker %s:%s We update the best ranks for each keyword, daily. 100%% "
8893
- "accurate and objective."
8894
  msgstr ""
8895
 
8896
- #: view/Blocks/VersionBar.php:12
8897
- #, php-format
8898
- msgid ""
8899
- "%sNo SERP queries remained.%s Please check your %saccount status and limits%s"
8900
  msgstr ""
8901
 
8902
- #: view/Blocks/VersionBar.php:18
8903
- #, php-format
8904
- msgid ""
8905
- "%sSERP Checker %s:%s We show ranks according to what Google shows you in "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8906
  "Google Search Console. %sPositions shown by GSC are averages, not exact "
8907
  "positions in SERPs. %sTo have your rankings checked daily please upgrade "
8908
  "your plan to %sBusiness Plan%s"
8909
  msgstr ""
8910
 
8911
- #: view/Blocks/VersionBar.php:25
8912
  #, php-format
8913
  msgid ""
8914
  "%sAudit %s:%s Add maximum %s page(s) in Audit and request a new audit every "
8915
  "hour."
8916
  msgstr ""
8917
 
8918
- #: view/Blocks/VersionBar.php:29
8919
  #, php-format
8920
  msgid ""
8921
  "%sAudit %s:%s Add maximum %s page(s) in Audit. The audit will be generated "
@@ -8923,14 +9017,14 @@ msgid ""
8923
  "please upgrade your plan to %sPRO Plan%s"
8924
  msgstr ""
8925
 
8926
- #: view/Blocks/VersionBar.php:36
8927
  #, php-format
8928
  msgid ""
8929
  "%sFocus Pages %s:%s Add maximum %s page(s) in Focus Pages and request a new "
8930
  "audit for each page every 5 mins."
8931
  msgstr ""
8932
 
8933
- #: view/Blocks/VersionBar.php:40
8934
  #, php-format
8935
  msgid ""
8936
  "%sFocus Pages %s:%s Add maximum %s page(s) in Focus Pages and request a new "
@@ -8938,7 +9032,7 @@ msgid ""
8938
  "upgrade your plan to %sPRO Plan%s"
8939
  msgstr ""
8940
 
8941
- #: view/Blocks/VersionBar.php:44
8942
  #, php-format
8943
  msgid ""
8944
  "Your current plan is OLD Squirrly plan: Please read the official notes about "
@@ -8946,14 +9040,14 @@ msgid ""
8946
  "squirrly-seo/%s"
8947
  msgstr ""
8948
 
8949
- #: view/Blocks/VersionBar.php:52
8950
  #, php-format
8951
  msgid ""
8952
  "%sLive Assistant %s:%s Use Squirrly Live Assistant with all the optimization "
8953
  "tasks to get 100%% optimized posts and pages."
8954
  msgstr ""
8955
 
8956
- #: view/Blocks/VersionBar.php:56
8957
  #, php-format
8958
  msgid ""
8959
  "%sLive Assistant %s:%s Use the main SEO tasks to optimize your posts and "
@@ -8961,7 +9055,7 @@ msgid ""
8961
  "Plan%s"
8962
  msgstr ""
8963
 
8964
- #: view/Blocks/VersionBar.php:64
8965
  #, php-format
8966
  msgid ""
8967
  "%sResearch %s:%s You have %s researches left for your account. The research "
@@ -8969,14 +9063,14 @@ msgid ""
8969
  "to 50 results per research, please upgrade your plan to %sBusiness Plan%s"
8970
  msgstr ""
8971
 
8972
- #: view/Blocks/VersionBar.php:68
8973
  #, php-format
8974
  msgid ""
8975
  "%sResearch %s:%s You have %s researches left for your account. %sYou can do "
8976
  "Deep Keyword Research and get up to 50 results on each research."
8977
  msgstr ""
8978
 
8979
- #: view/Blocks/VersionBar.php:72
8980
  #, php-format
8981
  msgid ""
8982
  "%sResearch %s:%s You have %s researches left for your account. The research "
@@ -8984,54 +9078,48 @@ msgid ""
8984
  "to 50 results per research, please upgrade your plan to %sBusiness Plan%s"
8985
  msgstr ""
8986
 
8987
- #: view/Blocks/VersionBar.php:79
8988
  #, php-format
8989
  msgid ""
8990
  "%sSquirrly Briefcase:%s Add unlimited keywords in your Squirrly Briefcase to "
8991
  "optimize your posts and pages."
8992
  msgstr ""
8993
 
8994
- #: view/Blocks/VersionBar.php:84
8995
  #, php-format
8996
  msgid ""
8997
  "%sSquirrly Labels:%s Add unlimited Labels for the Squirrly Briefcase "
8998
  "keywords to organize the keywords by your SEO strategy."
8999
  msgstr ""
9000
 
9001
- #: view/Blocks/VersionBar.php:90
9002
  #, php-format
9003
  msgid ""
9004
  "%sKeyword Suggestion %s:%s You'll get keyword suggestions every week if we "
9005
  "find better matching keywords based on your research history."
9006
  msgstr ""
9007
 
9008
- #: view/Blocks/VersionBar.php:94
9009
  #, php-format
9010
  msgid ""
9011
  "This feature is only available for PRO and Business accounts. %sTo get "
9012
  "Keyword Suggections every week please upgrade your plan to %sBusiness Plan%s"
9013
  msgstr ""
9014
 
9015
- #: view/Blocks/VersionBar.php:103
9016
  #, php-format
9017
  msgid ""
9018
  "%sBulk SEO Settings:%s This feature is included in all versions of Squirrly "
9019
  "SEO for free."
9020
  msgstr ""
9021
 
9022
- #: view/Blocks/VersionBar.php:109
9023
  #, php-format
9024
  msgid ""
9025
  "%sOn-Page SEO Settings:%s This feature is included in all versions of "
9026
  "Squirrly SEO for free."
9027
  msgstr ""
9028
 
9029
- #: view/BulkSeo/Bulkseo.php:30
9030
- msgid ""
9031
- "Simplify the SEO process for all your posts types and optimize them in just "
9032
- "minutes. "
9033
- msgstr ""
9034
-
9035
  #: view/BulkSeo/Bulkseo.php:183
9036
  #, php-format
9037
  msgid "No data for this filter. %sShow All%s records for this post type."
@@ -9053,9 +9141,12 @@ msgstr ""
9053
  msgid "Google Analytics"
9054
  msgstr "Google %sAnalytics ID%s`:"
9055
 
 
9056
  #: view/Connect/GoogleAnalytics.php:14
 
 
9057
  msgid "You are connected to Google Analytics"
9058
- msgstr ""
9059
 
9060
  #: view/Connect/GoogleAnalytics.php:20 view/Connect/GoogleSearchConsole.php:18
9061
  msgid "Disconnect"
@@ -9084,9 +9175,12 @@ msgstr ""
9084
  msgid "Check connection"
9085
  msgstr ""
9086
 
 
9087
  #: view/Connect/GoogleSearchConsole.php:12
 
 
9088
  msgid "You are connected to Google Search Console"
9089
- msgstr ""
9090
 
9091
  # @ squirrly-seo
9092
  #: view/Connect/GoogleSearchConsole.php:29
@@ -9135,39 +9229,75 @@ msgstr ""
9135
  msgid "Best Practices"
9136
  msgstr ""
9137
 
9138
- #: view/FocusPages/FocusPageRow.php:62
9139
- msgid "Audited"
 
9140
  msgstr ""
9141
 
9142
- #: view/FocusPages/FocusPageRow.php:77
 
 
 
 
 
 
 
9143
  msgid "You can refresh the audit once every 5 minutes"
9144
  msgstr ""
9145
 
9146
- #: view/FocusPages/FocusPageRow.php:79
9147
  msgid "Request new audit"
9148
  msgstr ""
9149
 
9150
- #: view/FocusPages/FocusPageRow.php:83 view/Ranking/Rankings.php:218
 
9151
  #: view/Research/History.php:32
 
 
9152
  msgid "Details"
9153
- msgstr ""
9154
 
9155
- #: view/FocusPages/FocusPageRow.php:100
9156
  msgid "Currently processing data. Please refresh in a few minutes."
9157
  msgstr ""
9158
 
9159
  # @ squirrly-seo
9160
- #: view/FocusPages/FocusPageRow.php:106 view/FocusPages/FocusPageRow.php:110
9161
- #: view/FocusPages/FocusPageRow.php:126 view/FocusPages/FocusPages.php:54
9162
  #, fuzzy
9163
  #| msgid "Change it >>"
9164
  msgid "Chance to Rank"
9165
  msgstr "Ändern >>"
9166
 
9167
- #: view/FocusPages/FocusPageRow.php:164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9168
  msgid "Delete Focus Page"
9169
  msgstr ""
9170
 
 
 
 
 
 
9171
  #: view/FocusPages/FocusPageStats.php:53
9172
  #, php-format
9173
  msgid "Rank increased %s positions for the keyword: %s"
@@ -9211,24 +9341,24 @@ msgid "Chances of Ranking"
9211
  msgstr "Ändern >>"
9212
 
9213
  #: view/FocusPages/FocusPageStats.php:115
9214
- #: view/FocusPages/FocusPageStats.php:137
9215
  #, php-format
9216
  msgid "the latest %s days evolution for this Focus Page"
9217
  msgstr ""
9218
 
9219
  # @ squirrly-seo
9220
- #: view/FocusPages/FocusPageStats.php:166
9221
  #, fuzzy
9222
  #| msgid "Do the research"
9223
  msgid "Keyword Ranking"
9224
  msgstr "Recherchieren"
9225
 
9226
- #: view/FocusPages/FocusPageStats.php:167
9227
  #, php-format
9228
  msgid "the latest %s days ranking for %s"
9229
  msgstr ""
9230
 
9231
- #: view/FocusPages/FocusPageStats.php:189
9232
  #, php-format
9233
  msgid "the latest %s days page views"
9234
  msgstr ""
@@ -9237,34 +9367,34 @@ msgstr ""
9237
  msgid "Current Ranking Drawbacks"
9238
  msgstr ""
9239
 
9240
- #: view/FocusPages/FocusPages.php:101
9241
  #, php-format
9242
  msgid "No data for this filter. %sShow All%s Focus Pages."
9243
  msgstr ""
9244
 
9245
- #: view/FocusPages/FocusPages.php:105
9246
  msgid "Welcome to Focus Pages"
9247
  msgstr ""
9248
 
9249
- #: view/FocusPages/FocusPages.php:107
9250
  msgid "Add a new page as Focus Page to get started"
9251
  msgstr ""
9252
 
9253
- #: view/FocusPages/FocusPages.php:111
9254
  msgid "Tips: Which Page Should I Choose?"
9255
  msgstr ""
9256
 
9257
- #: view/FocusPages/FocusPages.php:113
9258
  msgid ""
9259
  "One of the most important pages in your website, you money-makers, the pages "
9260
  "that bring you conversions."
9261
  msgstr ""
9262
 
9263
- #: view/FocusPages/FocusPages.php:114
9264
  msgid "Don't choose your Home Page, Contact Page or About Use page."
9265
  msgstr ""
9266
 
9267
- #: view/FocusPages/Pagelist.php:53
9268
  #, php-format
9269
  msgid ""
9270
  "%sNote:%s remember that it takes anywhere between %s1 minute to 5 minutes%s "
@@ -9272,13 +9402,12 @@ msgid ""
9272
  "involved."
9273
  msgstr ""
9274
 
 
9275
  #: view/FocusPages/Settings.php:21
 
 
9276
  msgid "Focus Pages Settings"
9277
- msgstr ""
9278
-
9279
- #: view/Frontend/Assistant.php:31 view/Post.php:5
9280
- msgid "img/editor/sla.png"
9281
- msgstr ""
9282
 
9283
  #: view/Frontend/Assistant.php:34 view/Post.php:8
9284
  msgid ""
@@ -9295,17 +9424,17 @@ msgstr ""
9295
  msgid "See results"
9296
  msgstr ""
9297
 
9298
- #: view/Goals/CheckSeo.php:90
9299
  msgid "Website SEO Check"
9300
  msgstr ""
9301
 
9302
- #: view/Goals/CheckSeo.php:104
9303
  msgid ""
9304
  "Remember that it may take up to 1 minute for a complete SEO check. There is "
9305
  "a lot of processing involved."
9306
  msgstr ""
9307
 
9308
- #: view/Goals/CheckSeo.php:131
9309
  msgid "Congratulations!"
9310
  msgstr ""
9311
 
@@ -9401,133 +9530,50 @@ msgstr ""
9401
  msgid "Load more goals if exist"
9402
  msgstr ""
9403
 
9404
- #: view/Onboarding/Step1.1.php:11
9405
- msgid "Welcome to Squirrly SEO 2019 (Strategy)"
9406
  msgstr ""
9407
 
9408
- #: view/Onboarding/Step1.1.php:14 view/Onboarding/Step1.1.php:92
9409
  #: view/Onboarding/Step1.php:24 view/Onboarding/Step2.1.php:14
9410
  #: view/Onboarding/Step2.1.php:49 view/Onboarding/Step3.php:14
9411
- msgid "Continue >"
9412
- msgstr ""
 
 
9413
 
9414
- #: view/Onboarding/Step1.1.php:24
9415
- msgid "We're getting your site ready for Excellent SEO"
9416
  msgstr ""
9417
 
9418
- #: view/Onboarding/Step1.1.php:31 view/Onboarding/Step1.php:40
9419
  msgid "Getting SEO Automation ready on your WP"
9420
  msgstr ""
9421
 
9422
- #: view/Onboarding/Step1.1.php:39 view/Onboarding/Step1.php:48
9423
  msgid "Activating METAs"
9424
  msgstr ""
9425
 
9426
- #: view/Onboarding/Step1.1.php:47
9427
- msgid "Activating JSON-LD schema.org implementations"
9428
  msgstr ""
9429
 
9430
- #: view/Onboarding/Step1.1.php:55 view/Onboarding/Step1.php:64
9431
  msgid "Activating Open Graph"
9432
  msgstr ""
9433
 
9434
- #: view/Onboarding/Step1.1.php:63 view/Onboarding/Step1.php:72
9435
  msgid "Activating Twitter Cards"
9436
  msgstr ""
9437
 
9438
- #: view/Onboarding/Step1.1.php:71 view/Onboarding/Step1.php:80
9439
  msgid "Creating your Sitemap"
9440
  msgstr ""
9441
 
9442
- #: view/Onboarding/Step1.1.php:79 view/Onboarding/Step1.php:88
9443
  msgid "Creating robots.txt"
9444
  msgstr ""
9445
 
9446
- #: view/Onboarding/Step1.1.php:84
9447
- msgid "Success! You are all setup."
9448
- msgstr ""
9449
-
9450
- #: view/Onboarding/Step1.1.php:88
9451
- msgid "Now"
9452
- msgstr ""
9453
-
9454
- #: view/Onboarding/Step1.1.php:88
9455
- msgid ""
9456
- "Do you want to be placed within the first 10 results, out of Millions of "
9457
- "competing pages?"
9458
- msgstr ""
9459
-
9460
- #: view/Onboarding/Step1.2.php:15 view/Onboarding/Step1.2.php:44
9461
- #: view/Onboarding/Step1.3.php:14 view/Onboarding/Step1.3.php:37
9462
- #: view/Onboarding/Step1.4.php:14 view/Onboarding/Step1.4.php:37
9463
- #: view/Onboarding/Step1.5.php:24 view/Onboarding/Step1.5.php:47
9464
- msgid "Next Feature >"
9465
- msgstr ""
9466
-
9467
- #: view/Onboarding/Step1.2.php:20
9468
- msgid "Demo Post"
9469
- msgstr ""
9470
-
9471
- #: view/Onboarding/Step1.2.php:32
9472
- msgid ""
9473
- "Squirrly’s SEO Virtual Assistant Gives You an SEO Green Light to Publish "
9474
- "Your Content"
9475
- msgstr ""
9476
-
9477
- #: view/Onboarding/Step1.2.php:40 view/Onboarding/Step1.3.php:33
9478
- #: view/Onboarding/Step1.4.php:33 view/Onboarding/Step1.5.php:43
9479
- msgid "Read more about this feature >"
9480
- msgstr ""
9481
-
9482
- #: view/Onboarding/Step1.2.php:45 view/Onboarding/Step1.3.php:38
9483
- #: view/Onboarding/Step1.4.php:38 view/Onboarding/Step1.5.php:48
9484
- msgid "Close Tutorial"
9485
- msgstr ""
9486
-
9487
- # @ squirrly-seo
9488
- #: view/Onboarding/Step1.3.php:15
9489
- #, fuzzy
9490
- #| msgid "Do the research"
9491
- msgid "Do Research"
9492
- msgstr "Recherchieren"
9493
-
9494
- #: view/Onboarding/Step1.3.php:25
9495
- msgid "Find The Best Keywords that Your Own Site Can Rank for."
9496
- msgstr ""
9497
-
9498
- # @ squirrly-seo
9499
- #: view/Onboarding/Step1.4.php:11
9500
- #, fuzzy
9501
- #| msgid "Squirrly LIVE SEO assistant"
9502
- msgid "Bulk SEO & SEO Snippet"
9503
- msgstr "Squirrly LIVE SEO-Assistent"
9504
-
9505
- #: view/Onboarding/Step1.4.php:15
9506
- msgid "Customize SEO"
9507
- msgstr ""
9508
-
9509
- #: view/Onboarding/Step1.4.php:25
9510
- msgid "Get a Birds-Eye-View of your Site’s Overall SEO Optimization"
9511
- msgstr ""
9512
-
9513
- #: view/Onboarding/Step1.5.php:35
9514
- msgid ""
9515
- "Accurately Track Your Rankings with Squirrly’s User-Friendly Google SERP "
9516
- "Checker"
9517
- msgstr ""
9518
-
9519
- #: view/Onboarding/Step1.php:21
9520
- msgid "Welcome to Squirrly SEO 2020 (Smart Strategy)"
9521
- msgstr ""
9522
-
9523
- #: view/Onboarding/Step1.php:32
9524
- msgid "Your Private SEO Consultant Sets Up the SEO for Your WordPress"
9525
- msgstr ""
9526
-
9527
- #: view/Onboarding/Step1.php:56
9528
- msgid "Activating JSON-LD schema.org"
9529
- msgstr ""
9530
-
9531
  #: view/Onboarding/Step1.php:93
9532
  msgid "Success! You are all setup"
9533
  msgstr ""
@@ -9590,10 +9636,6 @@ msgstr ""
9590
  msgid "Start the 14 Days Journey"
9591
  msgstr ""
9592
 
9593
- #: view/Onboarding/Step2.2.php:13
9594
- msgid "X"
9595
- msgstr ""
9596
-
9597
  #: view/Onboarding/Step2.2.php:24
9598
  msgid "Awesome! You are on your way to better results."
9599
  msgstr ""
@@ -9631,9 +9673,12 @@ msgstr ""
9631
  msgid "Close Window"
9632
  msgstr ""
9633
 
 
9634
  #: view/Onboarding/Step3.php:11
 
 
9635
  msgid "Import SEO & Settings"
9636
- msgstr ""
9637
 
9638
  #: view/Onboarding/Step3.php:29
9639
  msgid "We've detected another SEO Plugin on your site."
@@ -9646,8 +9691,8 @@ msgid ""
9646
  "Squirrly SEO"
9647
  msgstr ""
9648
 
9649
- #: view/Onboarding/Step3.php:54 view/SeoSettings/Backup.php:62
9650
- #: view/SeoSettings/Backup.php:90
9651
  msgid "We couldn't find any SEO plugin or theme to import from."
9652
  msgstr ""
9653
 
@@ -9745,9 +9790,12 @@ msgid ""
9745
  "Editor role."
9746
  msgstr ""
9747
 
 
9748
  #: view/Overview.php:80
 
 
9749
  msgid "Show Advanced SEO"
9750
- msgstr ""
9751
 
9752
  #: view/Overview.php:81
9753
  msgid ""
@@ -9765,13 +9813,19 @@ msgstr ""
9765
  msgid "We Need Your Support"
9766
  msgstr ""
9767
 
 
9768
  #: view/Overview.php:103
 
 
9769
  msgid "Rate us if you like Squirrly SEO"
9770
- msgstr ""
9771
 
 
9772
  #: view/Ranking/Gscsync.php:15
 
 
9773
  msgid "Google Search Console Keywords Sync"
9774
- msgstr ""
9775
 
9776
  #: view/Ranking/Gscsync.php:16 view/Research/Suggested.php:16
9777
  msgid ""
@@ -9798,19 +9852,21 @@ msgstr ""
9798
  msgid "AVG Position"
9799
  msgstr ""
9800
 
9801
- #: view/Ranking/Gscsync.php:78 view/Research/HistoryDetails.php:82
9802
- #: view/Research/ResearchDetails.php:52 view/Research/Suggested.php:131
9803
  msgid "Already in briefcase"
9804
  msgstr ""
9805
 
9806
- #: view/Ranking/Gscsync.php:83 view/Research/HistoryDetails.php:87
9807
- #: view/Research/ResearchDetails.php:57 view/Research/Suggested.php:136
9808
- msgid "Add to briefcase"
9809
  msgstr ""
9810
 
 
9811
  #: view/Ranking/Gscsync.php:99
 
 
9812
  msgid "Welcome to Google Search Console Keywords Sync"
9813
- msgstr ""
9814
 
9815
  #: view/Ranking/Gscsync.php:102
9816
  #, php-format
@@ -9828,13 +9884,20 @@ msgstr ""
9828
  msgid "Tips: Which Keyword Should I Choose?"
9829
  msgstr ""
9830
 
9831
- #: view/Ranking/Gscsync.php:107 view/Ranking/Rankings.php:438
9832
  #, php-format
9833
  msgid ""
9834
  "From %sSquirrly Briefcase%s you can send keywords to Rank Checker to track "
9835
  "the SERP evolution."
9836
  msgstr ""
9837
 
 
 
 
 
 
 
 
9838
  #: view/Ranking/Rankings.php:33
9839
  msgid ""
9840
  "It's a fully functional SEO Ranking Tool that helps you find the true "
@@ -9847,171 +9910,199 @@ msgid ""
9847
  "all organic keywords of your website."
9848
  msgstr ""
9849
 
9850
- #: view/Ranking/Rankings.php:98
9851
  msgid "Only show ranked articles"
9852
  msgstr ""
9853
 
9854
- #: view/Ranking/Rankings.php:102
 
 
 
9855
  msgid "Today Avg. Ranking"
9856
- msgstr ""
9857
 
9858
- #: view/Ranking/Rankings.php:106
9859
  msgid "Only show SERP changes"
9860
  msgstr ""
9861
 
9862
- #: view/Ranking/Rankings.php:128
9863
  msgid "Today SERP Changes"
9864
  msgstr ""
9865
 
9866
- #: view/Ranking/Rankings.php:150
9867
  #, php-format
9868
  msgid "the latest %s days Google Rankings evolution"
9869
  msgstr ""
9870
 
9871
- #: view/Ranking/Rankings.php:156
9872
  #, php-format
9873
  msgid "%s keyword ranked in TOP 10"
9874
  msgstr ""
9875
 
9876
- #: view/Ranking/Rankings.php:161
9877
  #, php-format
9878
  msgid "%s keyword ranked better today"
9879
  msgstr ""
9880
 
9881
- #: view/Ranking/Rankings.php:173
9882
  #, php-format
9883
- msgid "Ranks improved with an average of %s in the last 7 days"
9884
  msgstr ""
9885
 
9886
- #: view/Ranking/Rankings.php:197 view/Research/Briefcase.php:64
9887
  #: view/Research/Labels.php:80
9888
  msgid "Bulk Actions"
9889
  msgstr ""
9890
 
9891
  # @ squirrly-seo
9892
- #: view/Ranking/Rankings.php:198
9893
  #, fuzzy
9894
  #| msgid "Could not send the email..."
9895
  msgid "Ar you sure you want to delete the keyword?"
9896
  msgstr "Konnte E-Mail nicht senden ..."
9897
 
9898
- #: view/Ranking/Rankings.php:198 view/Research/Briefcase.php:67
9899
  #: view/Research/Labels.php:81
9900
  msgid "Delete"
9901
  msgstr ""
9902
 
9903
- #: view/Ranking/Rankings.php:200
9904
  msgid "Refresh Serp"
9905
  msgstr ""
9906
 
9907
- #: view/Ranking/Rankings.php:203 view/Research/Briefcase.php:69
9908
  #: view/Research/Labels.php:83
9909
  msgid "Apply"
9910
  msgstr ""
9911
 
9912
- #: view/Ranking/Rankings.php:211
9913
  msgid "Path"
9914
  msgstr ""
9915
 
9916
- #: view/Ranking/Rankings.php:213 view/Research/Briefcase.php:112
9917
  msgid "Rank"
9918
  msgstr ""
9919
 
9920
- #: view/Ranking/Rankings.php:214
9921
  msgid "Best"
9922
  msgstr ""
9923
 
9924
- #: view/Ranking/Rankings.php:216 view/Research/Briefcase.php:114
9925
  msgid "Avg Rank"
9926
  msgstr ""
9927
 
9928
- #: view/Ranking/Rankings.php:247 view/Ranking/Rankings.php:280
9929
  msgid "Google Search Console has no data for this keyword"
9930
  msgstr ""
9931
 
9932
  # @ squirrly-seo
9933
- #: view/Ranking/Rankings.php:256
9934
  #, fuzzy
9935
  #| msgid "Tips: 2-4 keywords"
9936
  msgid "Sync Keywords"
9937
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
9938
 
9939
- #: view/Ranking/Rankings.php:270
9940
  msgid "Not indexed"
9941
  msgstr ""
9942
 
9943
- #: view/Ranking/Rankings.php:281
9944
  msgid "GSC"
9945
  msgstr ""
9946
 
9947
- #: view/Ranking/Rankings.php:285
9948
  msgid "rank details"
9949
  msgstr ""
9950
 
9951
- #: view/Ranking/Rankings.php:304
9952
  msgid "Check Ranking again"
9953
  msgstr ""
9954
 
9955
- #: view/Ranking/Rankings.php:317
 
 
 
9956
  msgid "Remove Keyword"
9957
- msgstr ""
9958
 
9959
- #: view/Ranking/Rankings.php:375
9960
  msgid "Optimized with SLA"
9961
  msgstr ""
9962
 
9963
- #: view/Ranking/Rankings.php:383
9964
  msgid "Social Shares"
9965
  msgstr ""
9966
 
9967
- #: view/Ranking/Rankings.php:386
9968
- msgid "Facebook"
9969
  msgstr ""
9970
 
9971
- #: view/Ranking/Rankings.php:387
9972
- msgid "Reddit"
9973
  msgstr ""
9974
 
9975
- #: view/Ranking/Rankings.php:388
9976
- msgid "Pinterest"
 
 
 
 
 
 
9977
  msgstr ""
9978
 
9979
- #: view/Ranking/Rankings.php:410
9980
  msgid ""
9981
  "Note! The clicks and impressions data is taken from Google Search Console "
9982
- "for the last 90 days for the current URL"
9983
  msgstr ""
9984
 
9985
- #: view/Ranking/Rankings.php:425
9986
  msgid "No ranking found."
9987
  msgstr ""
9988
 
9989
- #: view/Ranking/Rankings.php:429
9990
  msgid "Welcome to Squirrly Rankings"
9991
  msgstr ""
9992
 
9993
- #: view/Ranking/Rankings.php:436
 
 
 
 
 
 
 
9994
  msgid "Tips: How to add Keywords in Rankings?"
9995
  msgstr ""
9996
 
9997
- #: view/Ranking/Rankings.php:439
9998
  #, php-format
9999
  msgid ""
10000
  "Connect with %sGoogle Search Console%s to synchronize the keywords for which "
10001
  "your website is ranking."
10002
  msgstr ""
10003
 
10004
- #: view/Ranking/Rankings.php:461
 
 
 
10005
  msgid "Synchronize Keywords with Google Search Console"
10006
- msgstr ""
10007
 
 
10008
  #: view/Ranking/Settings.php:29
 
 
10009
  msgid "Rankings Settings"
10010
- msgstr ""
10011
 
 
10012
  #: view/Ranking/Settings.php:43
 
 
10013
  msgid "Google Country"
10014
- msgstr ""
10015
 
10016
  #: view/Ranking/Settings.php:44
10017
  msgid ""
@@ -10091,7 +10182,7 @@ msgid "Costa Rica"
10091
  msgstr ""
10092
 
10093
  #: view/Ranking/Settings.php:66
10094
- msgid "Côte d'Ivoire"
10095
  msgstr ""
10096
 
10097
  #: view/Ranking/Settings.php:67
@@ -10123,334 +10214,338 @@ msgid "Ecuador"
10123
  msgstr ""
10124
 
10125
  #: view/Ranking/Settings.php:74
10126
- msgid "El Salvador"
10127
  msgstr ""
10128
 
10129
  #: view/Ranking/Settings.php:75
10130
- msgid "Estonia"
10131
  msgstr ""
10132
 
10133
  #: view/Ranking/Settings.php:76
10134
- msgid "Federated States of Micronesia"
10135
  msgstr ""
10136
 
10137
  #: view/Ranking/Settings.php:77
10138
- msgid "Fiji"
10139
  msgstr ""
10140
 
10141
  #: view/Ranking/Settings.php:78
10142
- msgid "Finland"
10143
  msgstr ""
10144
 
10145
  #: view/Ranking/Settings.php:79
10146
- msgid "France"
10147
  msgstr ""
10148
 
10149
  #: view/Ranking/Settings.php:80
10150
- msgid "The Gambia"
10151
  msgstr ""
10152
 
10153
  #: view/Ranking/Settings.php:81
10154
- msgid "Georgia"
10155
  msgstr ""
10156
 
10157
  #: view/Ranking/Settings.php:82
10158
- msgid "Germany"
10159
  msgstr ""
10160
 
10161
  #: view/Ranking/Settings.php:83
10162
- msgid "Ghana "
10163
  msgstr ""
10164
 
10165
  #: view/Ranking/Settings.php:84
10166
- msgid "Gibraltar"
10167
  msgstr ""
10168
 
10169
  #: view/Ranking/Settings.php:85
10170
- msgid "Greece"
10171
  msgstr ""
10172
 
10173
  #: view/Ranking/Settings.php:86
10174
- msgid "Greenland"
10175
  msgstr ""
10176
 
10177
  #: view/Ranking/Settings.php:87
10178
- msgid "Guernsey"
10179
  msgstr ""
10180
 
10181
  #: view/Ranking/Settings.php:88
10182
- msgid "Honduras"
10183
  msgstr ""
10184
 
10185
  #: view/Ranking/Settings.php:89
10186
- msgid "Hong Kong"
10187
  msgstr ""
10188
 
10189
  #: view/Ranking/Settings.php:90
10190
- msgid "Hungary"
10191
  msgstr ""
10192
 
10193
  #: view/Ranking/Settings.php:91
10194
- msgid "India"
10195
  msgstr ""
10196
 
10197
  #: view/Ranking/Settings.php:92
10198
- msgid "Indonesia"
10199
  msgstr ""
10200
 
10201
  #: view/Ranking/Settings.php:93
10202
- msgid "Ireland"
10203
  msgstr ""
10204
 
10205
  #: view/Ranking/Settings.php:94
10206
- msgid "Isle of Man"
10207
  msgstr ""
10208
 
10209
  #: view/Ranking/Settings.php:95
10210
- msgid "Israel"
10211
  msgstr ""
10212
 
10213
  #: view/Ranking/Settings.php:96
10214
- msgid "Italy"
10215
  msgstr ""
10216
 
10217
  #: view/Ranking/Settings.php:97
10218
- msgid "Jamaica"
10219
  msgstr ""
10220
 
10221
  #: view/Ranking/Settings.php:98
10222
- msgid "Japan"
10223
  msgstr ""
10224
 
10225
  #: view/Ranking/Settings.php:99
10226
- msgid "Jersey"
10227
  msgstr ""
10228
 
10229
  #: view/Ranking/Settings.php:100
10230
- msgid "Kazakhstan"
10231
  msgstr ""
10232
 
10233
  #: view/Ranking/Settings.php:101
10234
- msgid "Korea"
10235
  msgstr ""
10236
 
10237
  #: view/Ranking/Settings.php:102
10238
- msgid "Latvia"
10239
  msgstr ""
10240
 
10241
  #: view/Ranking/Settings.php:103
10242
- msgid "Lesotho"
10243
  msgstr ""
10244
 
10245
  #: view/Ranking/Settings.php:104
10246
- msgid "Liechtenstein"
10247
  msgstr ""
10248
 
10249
  #: view/Ranking/Settings.php:105
10250
- msgid "Lithuania"
10251
  msgstr ""
10252
 
10253
  #: view/Ranking/Settings.php:106
10254
- msgid "Luxembourg"
10255
  msgstr ""
10256
 
10257
  #: view/Ranking/Settings.php:107
10258
- msgid "Malawi"
10259
  msgstr ""
10260
 
10261
  #: view/Ranking/Settings.php:108
10262
- msgid "Malaysia"
10263
  msgstr ""
10264
 
10265
  #: view/Ranking/Settings.php:109
10266
- msgid "Malta"
10267
  msgstr ""
10268
 
10269
  #: view/Ranking/Settings.php:110
10270
- msgid "Mauritius"
10271
  msgstr ""
10272
 
10273
  #: view/Ranking/Settings.php:111
10274
- msgid "México"
10275
  msgstr ""
10276
 
10277
  #: view/Ranking/Settings.php:112
10278
- msgid "Montserrat"
10279
  msgstr ""
10280
 
10281
  #: view/Ranking/Settings.php:113
10282
- msgid "Namibia"
10283
  msgstr ""
10284
 
10285
  #: view/Ranking/Settings.php:114
10286
- msgid "Nepal"
10287
  msgstr ""
10288
 
10289
  #: view/Ranking/Settings.php:115
10290
- msgid "Netherlands"
10291
  msgstr ""
10292
 
10293
  #: view/Ranking/Settings.php:116
10294
- msgid "New Zealand"
10295
  msgstr ""
10296
 
10297
  #: view/Ranking/Settings.php:117
10298
- msgid "Nicaragua"
10299
  msgstr ""
10300
 
10301
  #: view/Ranking/Settings.php:118
10302
- msgid "Nigeria"
10303
  msgstr ""
10304
 
10305
  #: view/Ranking/Settings.php:119
10306
- msgid "Norfolk Island"
10307
  msgstr ""
10308
 
10309
  #: view/Ranking/Settings.php:120
10310
- msgid "Norway"
10311
  msgstr ""
10312
 
10313
  #: view/Ranking/Settings.php:121
10314
- msgid "Pakistan"
10315
  msgstr ""
10316
 
10317
  #: view/Ranking/Settings.php:122
10318
- msgid "Panamá"
10319
  msgstr ""
10320
 
10321
  #: view/Ranking/Settings.php:123
10322
- msgid "Paraguay"
10323
  msgstr ""
10324
 
10325
  #: view/Ranking/Settings.php:124
10326
- msgid "Perú"
10327
  msgstr ""
10328
 
10329
  #: view/Ranking/Settings.php:125
10330
- msgid "Philippines"
10331
  msgstr ""
10332
 
10333
  #: view/Ranking/Settings.php:126
10334
- msgid "Pitcairn Islands"
10335
  msgstr ""
10336
 
10337
  #: view/Ranking/Settings.php:127
10338
- msgid "Poland"
10339
  msgstr ""
10340
 
10341
  #: view/Ranking/Settings.php:128
10342
- msgid "Portugal"
10343
  msgstr ""
10344
 
10345
  #: view/Ranking/Settings.php:129
10346
- msgid "Puerto Rico"
10347
  msgstr ""
10348
 
10349
  #: view/Ranking/Settings.php:130
10350
- msgid "Rep. of the Congo"
10351
  msgstr ""
10352
 
10353
  #: view/Ranking/Settings.php:131
10354
- msgid "Romania"
10355
  msgstr ""
10356
 
10357
  #: view/Ranking/Settings.php:132
10358
- msgid "Russia"
10359
  msgstr ""
10360
 
10361
  #: view/Ranking/Settings.php:133
10362
- msgid "Rwanda"
10363
  msgstr ""
10364
 
10365
  #: view/Ranking/Settings.php:134
10366
- msgid "Saint Helena"
10367
  msgstr ""
10368
 
10369
  #: view/Ranking/Settings.php:135
10370
- msgid "San Marino"
10371
  msgstr ""
10372
 
10373
  #: view/Ranking/Settings.php:136
10374
- msgid "Saudi Arabia"
10375
  msgstr ""
10376
 
10377
  #: view/Ranking/Settings.php:137
10378
- msgid "Singapore"
10379
  msgstr ""
10380
 
10381
  #: view/Ranking/Settings.php:138
10382
- msgid "Slovakia"
10383
  msgstr ""
10384
 
10385
  #: view/Ranking/Settings.php:139
10386
- msgid "South Africa"
10387
  msgstr ""
10388
 
10389
  #: view/Ranking/Settings.php:140
10390
- msgid "Spain"
10391
  msgstr ""
10392
 
10393
  #: view/Ranking/Settings.php:141
10394
- msgid "Sri Lanka"
10395
  msgstr ""
10396
 
10397
  #: view/Ranking/Settings.php:142
10398
- msgid "Sweden"
10399
  msgstr ""
10400
 
10401
  #: view/Ranking/Settings.php:143
10402
- msgid "Switzerland"
10403
  msgstr ""
10404
 
10405
  #: view/Ranking/Settings.php:144
10406
- msgid "Taiwan"
10407
  msgstr ""
10408
 
10409
  #: view/Ranking/Settings.php:145
10410
- msgid "Thailand"
10411
  msgstr ""
10412
 
10413
  #: view/Ranking/Settings.php:146
10414
- msgid "Trinidad and Tobago"
10415
  msgstr ""
10416
 
10417
  #: view/Ranking/Settings.php:147
10418
- msgid "Turkey"
10419
  msgstr ""
10420
 
10421
  #: view/Ranking/Settings.php:148
10422
- msgid "Ukraine"
10423
  msgstr ""
10424
 
10425
  #: view/Ranking/Settings.php:149
10426
- msgid "United Arab Emirates"
10427
  msgstr ""
10428
 
10429
  #: view/Ranking/Settings.php:150
10430
- msgid "United Kingdom"
10431
  msgstr ""
10432
 
10433
  #: view/Ranking/Settings.php:151
10434
- msgid "United States"
10435
  msgstr ""
10436
 
10437
  #: view/Ranking/Settings.php:152
10438
- msgid "Uruguay"
10439
  msgstr ""
10440
 
10441
  #: view/Ranking/Settings.php:153
10442
- msgid "Uzbekistan"
10443
  msgstr ""
10444
 
10445
  #: view/Ranking/Settings.php:154
10446
- msgid "Vanuatu"
10447
  msgstr ""
10448
 
10449
  #: view/Ranking/Settings.php:155
10450
- msgid "Venezuela"
10451
  msgstr ""
10452
 
10453
  #: view/Ranking/Settings.php:156
 
 
 
 
10454
  msgid "Vietnam"
10455
  msgstr ""
10456
 
@@ -10462,15 +10557,18 @@ msgid ""
10462
  "Journey."
10463
  msgstr ""
10464
 
 
10465
  #: view/Research/Briefcase.php:35
 
 
10466
  msgid "Search Keyword"
10467
- msgstr ""
10468
 
10469
- #: view/Research/Briefcase.php:65 view/Research/Briefcase.php:209
10470
  msgid "Send to Rank Checker"
10471
  msgstr ""
10472
 
10473
- #: view/Research/Briefcase.php:66 view/Research/Briefcase.php:223
10474
  msgid "Assign Label"
10475
  msgstr ""
10476
 
@@ -10481,7 +10579,7 @@ msgstr ""
10481
  msgid "Ar you sure you want to delete the keywords?"
10482
  msgstr "Konnte E-Mail nicht senden ..."
10483
 
10484
- #: view/Research/Briefcase.php:75 view/Research/Briefcase.php:319
10485
  #, php-format
10486
  msgid "Select Labels for: %s"
10487
  msgstr ""
@@ -10499,12 +10597,12 @@ msgid ""
10499
  "each keyword individually."
10500
  msgstr ""
10501
 
10502
- #: view/Research/Briefcase.php:88 view/Research/Briefcase.php:341
10503
  #: view/Research/Labels.php:22
10504
  msgid "Add new Label"
10505
  msgstr ""
10506
 
10507
- #: view/Research/Briefcase.php:93 view/Research/Briefcase.php:347
10508
  msgid "Save Labels"
10509
  msgstr ""
10510
 
@@ -10512,117 +10610,143 @@ msgstr ""
10512
  msgid "Usage"
10513
  msgstr ""
10514
 
10515
- #: view/Research/Briefcase.php:158
10516
- msgid "in"
10517
- msgstr ""
10518
-
10519
- #: view/Research/Briefcase.php:158
10520
- msgid "post"
10521
- msgstr ""
10522
-
10523
- #: view/Research/Briefcase.php:158
10524
- msgid "posts"
10525
  msgstr ""
10526
 
10527
- #: view/Research/Briefcase.php:161
10528
- msgid "N/A"
 
10529
  msgstr ""
10530
 
10531
- #: view/Research/Briefcase.php:168
 
 
 
10532
  msgid "keyword info"
10533
- msgstr ""
10534
 
10535
  # @ squirrly-seo
10536
- #: view/Research/Briefcase.php:190
10537
  #, fuzzy
10538
  #| msgid "Do the research"
10539
  msgid "No research data"
10540
  msgstr "Recherchieren"
10541
 
10542
- #: view/Research/Briefcase.php:218
 
 
 
10543
  msgid "Refresh Research"
10544
- msgstr ""
10545
 
10546
- #: view/Research/Briefcase.php:228
 
 
 
10547
  msgid "Delete Keyword"
 
 
 
 
10548
  msgstr ""
10549
 
10550
- #: view/Research/Briefcase.php:271
10551
- msgid "Search Volume"
 
 
 
 
 
 
 
 
 
10552
  msgstr ""
10553
 
10554
- #: view/Research/Briefcase.php:363
 
 
 
 
 
10555
  msgid "Welcome to Squirrly Briefcase"
10556
  msgstr ""
10557
 
10558
  # @ squirrly-seo
10559
- #: view/Research/Briefcase.php:366 view/Research/History.php:58
10560
  #: view/Research/Suggested.php:158
10561
  #, fuzzy
10562
  #| msgid "Tips: 2-4 keywords"
10563
  msgid "Go Find New Keywords"
10564
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
10565
 
10566
- #: view/Research/Briefcase.php:370
10567
  msgid "Tips: How to add Keywords in Briefcase?"
10568
  msgstr ""
10569
 
10570
- #: view/Research/Briefcase.php:372
10571
  #, php-format
10572
  msgid "From %sKeyword Research%s send keywords to Briefcase."
10573
  msgstr ""
10574
 
10575
- #: view/Research/Briefcase.php:373
10576
  #, php-format
10577
  msgid ""
10578
  "From Briefcase you can use the keywords in %sSquirrly Live Assistant%s to "
10579
  "optimize your pages."
10580
  msgstr ""
10581
 
10582
- #: view/Research/Briefcase.php:374
10583
  msgid ""
10584
  "If you already have a list of keywords, Import the keywords usign the below "
10585
  "button."
10586
  msgstr ""
10587
 
10588
- #: view/Research/Briefcase.php:384
10589
  msgid "Backup/Restore Briefcase Keywords"
10590
  msgstr ""
10591
 
10592
- #: view/Research/Briefcase.php:385
10593
  msgid ""
10594
  "Keep your briefcase keywords safe in case you change your domain or "
10595
  "reinstall the plugin"
10596
  msgstr ""
10597
 
10598
- #: view/Research/Briefcase.php:386
10599
  #, php-format
10600
  msgid "%sLearn how to import keywords into briefcase%s"
10601
  msgstr ""
10602
 
10603
  # @ squirrly-seo
10604
- #: view/Research/Briefcase.php:392
10605
  #, fuzzy
10606
  #| msgid "Tips: 2-4 keywords"
10607
  msgid "Download Keywords"
10608
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
10609
 
10610
  # @ squirrly-seo
10611
- #: view/Research/Briefcase.php:395
10612
  #, fuzzy
10613
  #| msgid "Tips: 2-4 keywords"
10614
  msgid "Import Keywords"
10615
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
10616
 
10617
- #: view/Research/Briefcase.php:401
 
 
 
10618
  msgid "Restore Briefcase Keywords"
10619
- msgstr ""
10620
 
10621
- #: view/Research/Briefcase.php:409
 
 
 
10622
  msgid "Restore Keywords"
10623
- msgstr ""
10624
 
10625
- #: view/Research/Briefcase.php:410
10626
  msgid "Upload the file with the saved Squirrly Briefcase Keywords."
10627
  msgstr ""
10628
 
@@ -10630,6 +10754,11 @@ msgstr ""
10630
  msgid "See the Keyword Researches you made in the last 30 days"
10631
  msgstr ""
10632
 
 
 
 
 
 
10633
  # @ squirrly-seo
10634
  #: view/Research/History.php:46
10635
  #, fuzzy
@@ -10637,15 +10766,41 @@ msgstr ""
10637
  msgid "Show All Keywords"
10638
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
10639
 
 
10640
  #: view/Research/History.php:54
 
 
10641
  msgid "Welcome to Keyword Research History"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10642
  msgstr ""
10643
 
10644
- #: view/Research/HistoryDetails.php:22 view/Research/Research.php:210
10645
  #: view/Research/Suggested.php:44
10646
  msgid "Trend"
10647
  msgstr ""
10648
 
 
 
 
 
 
10649
  #: view/Research/Labels.php:16
10650
  msgid "Briefcase Labels"
10651
  msgstr ""
@@ -10673,17 +10828,23 @@ msgstr ""
10673
  msgid "Add Label"
10674
  msgstr ""
10675
 
 
10676
  #: view/Research/Labels.php:53 view/Research/Labels.php:121
 
 
10677
  msgid "Edit Label"
10678
- msgstr ""
10679
 
10680
  #: view/Research/Labels.php:68
10681
  msgid "Save Label"
10682
  msgstr ""
10683
 
 
10684
  #: view/Research/Labels.php:81
 
 
10685
  msgid "Ar you sure you want to delete the labels?"
10686
- msgstr ""
10687
 
10688
  #: view/Research/Labels.php:90
10689
  msgid "Name"
@@ -10731,9 +10892,12 @@ msgstr ""
10731
  msgid "Check Your Account"
10732
  msgstr ""
10733
 
 
10734
  #: view/Research/Research.php:38
 
 
10735
  msgid "Add a keyword to Briefcase"
10736
- msgstr ""
10737
 
10738
  #: view/Research/Research.php:42
10739
  msgid "It's best if you focus on finding Long-Tail Keywords."
@@ -10751,9 +10915,12 @@ msgstr ""
10751
  msgid "Focus on finding Long Tail Keywords."
10752
  msgstr ""
10753
 
 
10754
  #: view/Research/Research.php:65
 
 
10755
  msgid "You need to enter a keyword first"
10756
- msgstr ""
10757
 
10758
  #: view/Research/Research.php:71 view/Research/Research.php:103
10759
  msgid "Next"
@@ -10767,13 +10934,17 @@ msgstr ""
10767
  msgid "Select country"
10768
  msgstr ""
10769
 
 
 
 
 
10770
  #: view/Research/Research.php:95
10771
  msgid ""
10772
  "For local SEO you need to select the Country where you run your business"
10773
  msgstr ""
10774
 
10775
  #: view/Research/Research.php:100 view/Research/Research.php:154
10776
- #: view/Research/Research.php:222
10777
  msgid "Start Over"
10778
  msgstr ""
10779
 
@@ -10789,7 +10960,7 @@ msgstr ""
10789
 
10790
  #: view/Research/Research.php:150
10791
  #, php-format
10792
- msgid "We could not find similar keywords. %sClick on \"Do research\""
10793
  msgstr ""
10794
 
10795
  # @ squirrly-seo
@@ -10851,35 +11022,56 @@ msgstr ""
10851
  msgid "Preparing the results."
10852
  msgstr ""
10853
 
10854
- #: view/Research/Research.php:188
10855
  msgid "Step 4/4: We found some relevant keywords for you"
10856
  msgstr ""
10857
 
10858
- #: view/Research/Research.php:189
10859
  #, php-format
10860
  msgid ""
10861
  "Still processing. give it a bit more time, then go to %sResearch History%s. "
10862
  "Results will appear there."
10863
  msgstr ""
10864
 
10865
- #: view/Research/Research.php:190
10866
  msgid "Step 4/4: We could not find relevant keywords for you"
10867
  msgstr ""
10868
 
10869
- #: view/Research/Research.php:237
10870
  msgid "How to Find Amazing Keywords and get more search traffic?"
10871
  msgstr ""
10872
 
10873
- #: view/Research/Research.php:251
 
 
 
10874
  msgid "Already Have Keywords?"
10875
- msgstr ""
10876
 
10877
- #: view/Research/Research.php:254
 
 
 
10878
  msgid "Import Keywords From CSV"
10879
- msgstr ""
10880
 
 
10881
  #: view/Research/Suggested.php:152
 
 
10882
  msgid "Welcome to Suggested Keywords"
 
 
 
 
 
 
 
 
 
 
 
 
10883
  msgstr ""
10884
 
10885
  # @ squirrly-seo
@@ -10940,9 +11132,12 @@ msgstr ""
10940
  msgid "Delete Squirrly SEO table and options on uninstall."
10941
  msgstr ""
10942
 
 
10943
  #: view/SeoSettings/Automation.php:26
 
 
10944
  msgid "Meta Automation"
10945
- msgstr ""
10946
 
10947
  #: view/SeoSettings/Automation.php:28
10948
  msgid ""
@@ -10954,9 +11149,12 @@ msgstr ""
10954
  msgid "Activate Patterns"
10955
  msgstr ""
10956
 
 
10957
  #: view/SeoSettings/Automation.php:66
 
 
10958
  msgid "Add Post Type for SEO Automation"
10959
- msgstr ""
10960
 
10961
  #: view/SeoSettings/Automation.php:72 view/SeoSettings/Automation.php:84
10962
  msgid "Add Post Type"
@@ -10970,13 +11168,19 @@ msgstr ""
10970
  msgid "Customize the automation for each post type"
10971
  msgstr ""
10972
 
10973
- #: view/SeoSettings/Automation.php:126 view/SeoSettings/Metas.php:158
 
 
 
10974
  msgid "Tips: Length 10-75 chars"
10975
- msgstr ""
10976
 
10977
- #: view/SeoSettings/Automation.php:135 view/SeoSettings/Metas.php:167
 
 
 
10978
  msgid "Tips: Length 70-320 chars"
10979
- msgstr ""
10980
 
10981
  #: view/SeoSettings/Automation.php:144
10982
  msgid "Separator"
@@ -11037,9 +11241,12 @@ msgstr ""
11037
  msgid "Recommended if your website is not a photography website."
11038
  msgstr ""
11039
 
 
11040
  #: view/SeoSettings/Automation.php:282
 
 
11041
  msgid "Load Squirrly SEO METAs"
11042
- msgstr ""
11043
 
11044
  #: view/SeoSettings/Automation.php:283
11045
  msgid ""
@@ -11087,17 +11294,23 @@ msgstr ""
11087
  msgid "JSON-LD will try to load the relevant data for this type."
11088
  msgstr ""
11089
 
 
11090
  #: view/SeoSettings/Automation.php:384
 
 
11091
  msgid "Load Squirrly Open Graph"
11092
- msgstr ""
11093
 
11094
  #: view/SeoSettings/Automation.php:385
11095
  msgid "Let Squirrly SEO load the Open Graph for this post type."
11096
  msgstr ""
11097
 
 
11098
  #: view/SeoSettings/Automation.php:411
 
 
11099
  msgid "Load Squirrly Twitter Card"
11100
- msgstr ""
11101
 
11102
  #: view/SeoSettings/Automation.php:412
11103
  msgid "Let Squirrly SEO load the Twitter Card for this post type."
@@ -11108,13 +11321,19 @@ msgstr ""
11108
  msgid "Activate Trackers"
11109
  msgstr ""
11110
 
 
11111
  #: view/SeoSettings/Automation.php:434
 
 
11112
  msgid "Load Google Analytics Tracking Script"
11113
- msgstr ""
11114
 
 
11115
  #: view/SeoSettings/Automation.php:435
 
 
11116
  msgid "Let Google Analytics Tracking to load for this post type."
11117
- msgstr ""
11118
 
11119
  #: view/SeoSettings/Automation.php:453
11120
  msgid "Load Facebook Pixel Tracking Script"
@@ -11124,10 +11343,12 @@ msgstr ""
11124
  msgid "Let Facebook Pixel Tracking to load for this post type."
11125
  msgstr ""
11126
 
 
11127
  #: view/SeoSettings/Automation.php:464
11128
- #, php-format
 
11129
  msgid "Do you want to delete the automation for %s?"
11130
- msgstr ""
11131
 
11132
  #: view/SeoSettings/Automation.php:464
11133
  #, php-format
@@ -11246,95 +11467,114 @@ msgstr ""
11246
  msgid "Select the plugin or theme you want to import the Settings from."
11247
  msgstr ""
11248
 
11249
- #: view/SeoSettings/Backup.php:60
11250
- msgid "Import Settings"
11251
  msgstr ""
11252
 
11253
- #: view/SeoSettings/Backup.php:71
 
 
 
 
 
 
 
11254
  msgid "Import SEO From"
11255
  msgstr ""
11256
 
11257
- #: view/SeoSettings/Backup.php:72
11258
  msgid "Select the plugin or theme you want to import the SEO settings from."
11259
  msgstr ""
11260
 
11261
- #: view/SeoSettings/Backup.php:99
11262
- msgid "Backup Settings & SEO"
 
 
11263
  msgstr ""
11264
 
11265
  #: view/SeoSettings/Backup.php:101
 
 
 
 
11266
  msgid ""
11267
  "You can now download your Squirrly settings in an sql file before you go "
11268
  "ahead and import the SEO settings from another plugin. That way, you can "
11269
  "always go back to your Squirrly settings."
11270
  msgstr ""
11271
 
11272
- #: view/SeoSettings/Backup.php:108
 
 
 
11273
  msgid "Backup Settings"
11274
- msgstr ""
11275
 
11276
- #: view/SeoSettings/Backup.php:109
11277
  msgid "Download all the settings from Squirrly SEO."
11278
  msgstr ""
11279
 
11280
- #: view/SeoSettings/Backup.php:114
11281
  msgid "Download Backup"
11282
  msgstr ""
11283
 
11284
- #: view/SeoSettings/Backup.php:122
11285
  msgid "Backup SEO"
11286
  msgstr ""
11287
 
11288
- #: view/SeoSettings/Backup.php:123
11289
  msgid "Download all the Squirrly SEO Snippet optimizations."
11290
  msgstr ""
11291
 
11292
- #: view/SeoSettings/Backup.php:128
11293
  msgid "Download Backup"
11294
  msgstr ""
11295
 
11296
- #: view/SeoSettings/Backup.php:136
11297
  msgid "Restore Settings & SEO"
11298
  msgstr ""
11299
 
11300
- #: view/SeoSettings/Backup.php:138
11301
  msgid "Restore the settings and all the pages optimized with Squirrly SEO."
11302
  msgstr ""
11303
 
11304
- #: view/SeoSettings/Backup.php:145 view/SeoSettings/Backup.php:154
 
 
 
11305
  msgid "Restore Settings"
11306
- msgstr ""
11307
 
11308
- #: view/SeoSettings/Backup.php:146
11309
  msgid "Upload the file with the saved Squirrly Settings."
11310
  msgstr ""
11311
 
11312
- #: view/SeoSettings/Backup.php:162 view/SeoSettings/Backup.php:171
11313
  msgid "Restore SEO"
11314
  msgstr ""
11315
 
11316
- #: view/SeoSettings/Backup.php:163
11317
  msgid "Upload the file with the saved Squirrly SEO SQL file."
11318
  msgstr ""
11319
 
11320
- #: view/SeoSettings/Backup.php:178
11321
  msgid "Rollback Plugin"
11322
  msgstr ""
11323
 
11324
- #: view/SeoSettings/Backup.php:180
11325
  msgid "You can rollback Squirrly SEO plugin to the last stable version."
11326
  msgstr ""
11327
 
11328
- #: view/SeoSettings/Backup.php:187
11329
  msgid "Rollback to"
11330
  msgstr ""
11331
 
11332
- #: view/SeoSettings/Backup.php:188
11333
  msgid "Install the last stable version of the plugin."
11334
  msgstr ""
11335
 
11336
  # @ squirrly-seo
11337
- #: view/SeoSettings/Backup.php:193
11338
  #, fuzzy
11339
  #| msgid "Squirrly settings"
11340
  msgid "Install Squirrly SEO"
@@ -11364,7 +11604,6 @@ msgstr ""
11364
  msgid "Also load the favicon for Apple devices."
11365
  msgstr ""
11366
 
11367
- # @ squirrly-seo
11368
  #: view/SeoSettings/Favicon.php:93
11369
  msgid ""
11370
  "If you don't see the new icon in your browser, empty the browser cache and "
@@ -11416,7 +11655,7 @@ msgid "Logo URL"
11416
  msgstr ""
11417
 
11418
  #: view/SeoSettings/Jsonld.php:88 view/SeoSettings/Jsonld.php:159
11419
- #: view/SeoSettings/Metas.php:189
11420
  msgid "Select Image"
11421
  msgstr ""
11422
 
@@ -11545,134 +11784,152 @@ msgid ""
11545
  "Clear the Json-LD from other plugins and theme to avoid duplicate schemas."
11546
  msgstr ""
11547
 
11548
- #: view/SeoSettings/Metas.php:46
11549
  msgid "Optimize the Titles"
11550
  msgstr ""
11551
 
11552
- #: view/SeoSettings/Metas.php:47
11553
  msgid ""
11554
  "Add the Title Tag in the page header. You can customize it using the Bulk "
11555
  "SEO and Squirrly SEO Snippet."
11556
  msgstr ""
11557
 
11558
- #: view/SeoSettings/Metas.php:57
11559
  msgid "Optimize Descriptions"
11560
  msgstr ""
11561
 
11562
- #: view/SeoSettings/Metas.php:58
11563
  msgid ""
11564
  "Add the Description meta in the page header. You can customize it using the "
11565
  "Bulk SEO and Squirrly SEO Snippet."
11566
  msgstr ""
11567
 
11568
- #: view/SeoSettings/Metas.php:68
 
 
 
11569
  msgid "Optimize Keywords"
11570
- msgstr ""
11571
 
11572
- #: view/SeoSettings/Metas.php:69
11573
  msgid ""
11574
  "Add the Keyword meta in the page header. You can customize it using the Bulk "
11575
  "SEO and Squirrly SEO Snippet."
11576
  msgstr ""
11577
 
11578
- #: view/SeoSettings/Metas.php:70
11579
  msgid ""
11580
  "This meta is not mandatory for Google but other search engines still use it "
11581
  "for ranking"
11582
  msgstr ""
11583
 
11584
- #: view/SeoSettings/Metas.php:81
 
 
 
11585
  msgid "Add Canonical Meta Link"
11586
- msgstr ""
11587
 
11588
- #: view/SeoSettings/Metas.php:82
11589
  msgid ""
11590
  "Add canonical link meta in the page header. You can customize the canonical "
11591
  "link on each page."
11592
  msgstr ""
11593
 
11594
- #: view/SeoSettings/Metas.php:83
11595
  msgid ""
11596
  "Also add prev & next links metas in the page header when navigate between "
11597
  "blog pages."
11598
  msgstr ""
11599
 
11600
- #: view/SeoSettings/Metas.php:93
11601
  msgid "Add Dublin Core Meta"
11602
  msgstr ""
11603
 
11604
- #: view/SeoSettings/Metas.php:94
 
 
 
11605
  msgid "Add the Dublin Core meta in the page header."
11606
- msgstr ""
11607
 
11608
- #: view/SeoSettings/Metas.php:104
11609
  msgid "Add Robots Meta"
11610
  msgstr ""
11611
 
11612
- #: view/SeoSettings/Metas.php:105
11613
  msgid ""
11614
  "Add the Index/Noindex and Follow/Nofollow options in Squirrly SEO Snippet."
11615
  msgstr ""
11616
 
11617
- #: view/SeoSettings/Metas.php:106
11618
  msgid "Add googlebot and bingbot METAs for better performance."
11619
  msgstr ""
11620
 
11621
- #: view/SeoSettings/Metas.php:113
 
 
 
11622
  msgid "More SEO Settings"
11623
- msgstr ""
11624
 
11625
- #: view/SeoSettings/Metas.php:121
11626
  msgid "Add the Post tags in Keyword META"
11627
  msgstr ""
11628
 
11629
- #: view/SeoSettings/Metas.php:122
11630
  msgid ""
11631
  "Add all the tags from your posts as keywords. Not recommended when you use "
11632
  "Keywords in Squirrly SEO Snippet."
11633
  msgstr ""
11634
 
11635
- #: view/SeoSettings/Metas.php:132
11636
  msgid "Activate Snippet in Frontend"
11637
  msgstr ""
11638
 
11639
- #: view/SeoSettings/Metas.php:133
11640
  msgid ""
11641
  "Load Squirrly SEO Snippet in Frontend to customize the SEO directly from "
11642
  "page preview."
11643
  msgstr ""
11644
 
11645
- #: view/SeoSettings/Metas.php:145
11646
  msgid "First Page Optimization"
11647
  msgstr ""
11648
 
11649
- #: view/SeoSettings/Metas.php:147
11650
  msgid ""
11651
  "Needed when you didn't set a specific page as Homepage in Settings > Reading "
11652
  "page"
11653
  msgstr ""
11654
 
11655
- #: view/SeoSettings/Metas.php:175
 
 
 
11656
  msgid "Keywords"
11657
- msgstr ""
11658
 
11659
- #: view/SeoSettings/Metas.php:176
11660
  msgid "Tips: use 2-4 keywords"
11661
  msgstr ""
11662
 
11663
- #: view/SeoSettings/Metas.php:197
11664
  msgid "First Page Preview"
11665
  msgstr ""
11666
 
11667
- #: view/SeoSettings/Metas.php:199
11668
  msgid "See how the social snippet will look like for the front page"
11669
  msgstr ""
11670
 
11671
- #: view/SeoSettings/Metas.php:204
 
 
 
11672
  msgid "Squirrly Snippet"
11673
- msgstr ""
11674
 
11675
- #: view/SeoSettings/Metas.php:215
11676
  msgid ""
11677
  "If you don't see any changes in your Google snippet, check if other SEO "
11678
  "themes or plugins affect Squirrly."
@@ -11684,9 +11941,12 @@ msgid ""
11684
  "crawler can or can't request from your site."
11685
  msgstr ""
11686
 
 
11687
  #: view/SeoSettings/Robots.php:35
 
 
11688
  msgid "Activate Robots"
11689
- msgstr ""
11690
 
11691
  #: view/SeoSettings/Robots.php:56
11692
  msgid "Edit the Robots.txt data"
@@ -11734,9 +11994,12 @@ msgstr ""
11734
  msgid "Ping your sitemap to Google and Bing when a new post is published."
11735
  msgstr ""
11736
 
 
11737
  #: view/SeoSettings/Sitemap.php:76
 
 
11738
  msgid "Not recommended if you added your sitemap in Google Search Console."
11739
- msgstr ""
11740
 
11741
  #: view/SeoSettings/Sitemap.php:87
11742
  msgid "Combine Languages in Sitemap"
@@ -11820,9 +12083,12 @@ msgstr ""
11820
  msgid "Build the sitemap for your post tags."
11821
  msgstr ""
11822
 
 
11823
  #: view/SeoSettings/Sitemap.php:178
 
 
11824
  msgid "Pages"
11825
- msgstr ""
11826
 
11827
  #: view/SeoSettings/Sitemap.php:179
11828
  msgid "Build the sitemap for your pages."
@@ -11990,10 +12256,6 @@ msgstr ""
11990
  msgid "Twitter Profile URL"
11991
  msgstr ""
11992
 
11993
- #: view/SeoSettings/Social.php:301
11994
- msgid "https://twitter.com/XXXXXXXX"
11995
- msgstr ""
11996
-
11997
  #: view/SeoSettings/Social.php:302
11998
  msgid "Required for Twitter Card Validator"
11999
  msgstr ""
@@ -12002,42 +12264,22 @@ msgstr ""
12002
  msgid "Facebook Profile or Page URL"
12003
  msgstr ""
12004
 
12005
- #: view/SeoSettings/Social.php:312
12006
- msgid "https://facebook.com/XXXXXXXX"
12007
- msgstr ""
12008
-
12009
  #: view/SeoSettings/Social.php:322
12010
  msgid "Linkedin Profile URL"
12011
  msgstr ""
12012
 
12013
- #: view/SeoSettings/Social.php:323
12014
- msgid "https://linkedin.com/XXXXXXXX"
12015
- msgstr ""
12016
-
12017
  #: view/SeoSettings/Social.php:332
12018
  msgid "Pinterest Profile URL"
12019
  msgstr ""
12020
 
12021
- #: view/SeoSettings/Social.php:333
12022
- msgid "https://pinterest.com/XXXXXXXX"
12023
- msgstr ""
12024
-
12025
  #: view/SeoSettings/Social.php:342
12026
  msgid "Instagram Profile URL"
12027
  msgstr ""
12028
 
12029
- #: view/SeoSettings/Social.php:343
12030
- msgid "https://instagram.com/XXXXXXXX"
12031
- msgstr ""
12032
-
12033
  #: view/SeoSettings/Social.php:352
12034
  msgid "Youtube Channel URL"
12035
  msgstr ""
12036
 
12037
- #: view/SeoSettings/Social.php:353
12038
- msgid "https://youtube.com/channel/XXXXXXXX"
12039
- msgstr ""
12040
-
12041
  # @ squirrly-seo
12042
  #: view/SeoSettings/Tracking.php:56
12043
  #, fuzzy
@@ -12056,15 +12298,18 @@ msgstr ""
12056
  msgid "Get GA Code"
12057
  msgstr ""
12058
 
 
12059
  #: view/SeoSettings/Tracking.php:84
 
 
12060
  msgid "Google Tracking Mode"
12061
- msgstr ""
12062
 
12063
  #: view/SeoSettings/Tracking.php:85
12064
  #, php-format
12065
  msgid ""
12066
- "Choose gtag.js if you use %sGoogle Tag Manager%s. Otherwise select analytics."
12067
- "js to track the website traffic."
12068
  msgstr ""
12069
 
12070
  #: view/SeoSettings/Tracking.php:89
@@ -12162,12 +12407,53 @@ msgid ""
12162
  "Pinterest account. Visit the %sRich Pins Validator%s"
12163
  msgstr ""
12164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12165
  # @ squirrly-seo
12166
  #, fuzzy
12167
  #~| msgid "Squirrly settings"
12168
- #~ msgid "Start using Squirrly SEO"
12169
  #~ msgstr "Squirrly Einstellungen"
12170
 
 
 
 
 
 
 
 
 
 
 
 
 
12171
  # @ squirrly-seo
12172
  #, fuzzy
12173
  #~| msgid "Do the research"
@@ -12180,24 +12466,12 @@ msgstr ""
12180
  #~ msgid "Could not verify the frontend"
12181
  #~ msgstr "Konnte E-Mail nicht senden ..."
12182
 
12183
- # @ squirrly-seo
12184
- #, fuzzy
12185
- #~| msgid "Tips: 2-4 keywords"
12186
- #~ msgid "keywords"
12187
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
12188
-
12189
  # @ squirrly-seo
12190
  #, fuzzy
12191
  #~| msgid "Turn off warnings!"
12192
  #~ msgid "errors/warnings"
12193
  #~ msgstr "Warnungen ausschalten!"
12194
 
12195
- # @ squirrly-seo
12196
- #, fuzzy
12197
- #~| msgid "Squirrly settings"
12198
- #~ msgid "Squirrly Stats"
12199
- #~ msgstr "Squirrly Einstellungen"
12200
-
12201
  # @ squirrly-seo
12202
  #~ msgid ""
12203
  #~ "For Squirrly to work properly you have to use a higher version of "
@@ -12227,10 +12501,6 @@ msgstr ""
12227
  #~ msgid "Go to:"
12228
  #~ msgstr "Gehe zu:"
12229
 
12230
- # @ squirrly-seo
12231
- #~ msgid "support page"
12232
- #~ msgstr "Support Page"
12233
-
12234
  # @ squirrly-seo
12235
  #~ msgid "Clear"
12236
  #~ msgstr "Löschen"
@@ -12271,19 +12541,11 @@ msgstr ""
12271
  #~ msgid "Message sent..."
12272
  #~ msgstr "Nachricht gesendet ..."
12273
 
12274
- # @ squirrly-seo
12275
- #~ msgid "Use more words in one keyword"
12276
- #~ msgstr "Verwenden Sie mehrere Wörter in einem Schlüsselwort"
12277
-
12278
  # @ squirrly-seo
12279
  #~ msgid ""
12280
  #~ "The system is acting Squirrly. I can not find the link to the server."
12281
  #~ msgstr "Kann den Link auf den Server nicht finden."
12282
 
12283
- # @ squirrly-seo
12284
- #~ msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
12285
- #~ msgstr "Dateityp Fehler: Nur JPEG, JPG, GIF oder PNG-Dateien sind erlaubt."
12286
-
12287
  # @ squirrly-seo
12288
  #~ msgid ""
12289
  #~ "With Squirrly SEO, your Wordpress will get Perfect SEO on each article "
@@ -12302,10 +12564,6 @@ msgstr ""
12302
  #~ "Wordpress mit Squirrly, so dass wir die besten SEO-Möglichkeiten finden, "
12303
  #~ "erstatten Ihnen Bericht und analysieren Ihre Konkurrenz."
12304
 
12305
- # @ squirrly-seo
12306
- #~ msgid "Write a new post with Squirrly"
12307
- #~ msgstr "Schreiben Sie einen neuen Beitrag mit Squirrly"
12308
-
12309
  #~ msgid " API"
12310
  #~ msgstr " API"
12311
 
@@ -12382,7 +12640,3 @@ msgstr ""
12382
  # @ squirrly-seo
12383
  #~ msgid "Facebook META code (for %sInsights%s )`:"
12384
  #~ msgstr "Facebook META Code (für %sInsights%s )`:"
12385
-
12386
- # @ squirrly-seo
12387
- #~ msgid "Bing META code (for %sWebmaster Tool%s )`:"
12388
- #~ msgstr "Bing META Code (für %sWebmaster Tool%s )`:"
2
  msgstr ""
3
  "Project-Id-Version: Squirrly SEO Plugin\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2020-10-22 13:28+0300\n"
6
+ "PO-Revision-Date: 2020-10-22 13:32+0300\n"
7
  "Last-Translator: Squirrly <contact@squirrly.co>\n"
8
  "Language-Team: \n"
9
  "Language: cs_CZ\n"
16
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
  "X-Poedit-Basepath: ..\n"
18
  "X-Textdomain-Support: yes\n"
19
+ "X-Generator: Poedit 2.4.1\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
 
 
 
 
22
  #: classes/RemoteController.php:263
23
  msgid "Too many API attempts, please slow down the request."
24
  msgstr ""
29
  "in a minute."
30
  msgstr ""
31
 
32
+ #: classes/RemoteController.php:350
33
  msgid "Articles optimized so far"
34
  msgstr ""
35
 
36
+ #: classes/RemoteController.php:352 classes/RemoteController.php:359
37
  msgid "add post"
38
  msgstr ""
39
 
40
+ #: classes/RemoteController.php:357
41
  msgid "Average optimization"
42
  msgstr ""
43
 
44
  # @ squirrly-seo
45
+ #: classes/RemoteController.php:364
46
  #, fuzzy
47
  #| msgid "Do the research"
48
  msgid "Keyword Researches"
49
  msgstr "Recherchieren"
50
 
51
  # @ squirrly-seo
52
+ #: classes/RemoteController.php:366
53
  #, fuzzy
54
  #| msgid "Do the research"
55
  msgid "do research"
56
  msgstr "Recherchieren"
57
 
58
+ #: classes/RemoteController.php:371
59
  msgid "Keywords stored in Squirrly Briefcase"
60
  msgstr ""
61
 
62
+ # @ squirrly-seo
63
+ #: classes/RemoteController.php:373
64
+ #, fuzzy
65
+ #| msgid "Tips: 2-4 keywords"
66
  msgid "add keyword"
67
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
68
 
69
+ #: classes/RemoteController.php:378
70
  msgid "Pages ranking in top 100 Google"
71
  msgstr ""
72
 
73
+ #: classes/RemoteController.php:380
74
  msgid "see rankings"
75
  msgstr ""
76
 
77
+ #: classes/RemoteController.php:385
78
  msgid "SEO Audits"
79
  msgstr ""
80
 
81
+ #: classes/RemoteController.php:387
82
  msgid "see audits"
83
  msgstr ""
84
 
85
  # @ squirrly-seo
86
+ #: classes/RemoteController.php:1299
87
+ #, fuzzy
88
+ #| msgid "Tips: 2-4 keywords"
89
  msgid "Keyword:"
90
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
91
 
92
+ #: classes/RemoteController.php:1300
 
93
  msgid "date"
94
  msgstr ""
95
 
96
+ #: classes/RemoteController.php:1301 controllers/CheckSeo.php:312
97
+ #: controllers/Patterns.php:21 controllers/Research.php:265
98
+ #: controllers/Research.php:296 controllers/Research.php:350
99
+ #: controllers/Research.php:660 view/Blocks/Snippet.php:1152
100
  msgid "Saved!"
101
  msgstr ""
102
 
103
+ #: classes/RemoteController.php:1302
 
104
  msgid "Read it!"
105
  msgstr ""
106
 
107
+ #: classes/RemoteController.php:1303
 
108
  msgid "Insert it!"
109
  msgstr ""
110
 
111
+ #: classes/RemoteController.php:1304
 
112
  msgid "Reference"
113
  msgstr ""
114
 
115
+ #: classes/RemoteController.php:1305
 
116
  msgid "Insert as box"
117
  msgstr ""
118
 
119
+ #: classes/RemoteController.php:1306
120
  msgid "Insert Link"
121
  msgstr ""
122
 
123
+ #: classes/RemoteController.php:1307
 
124
  msgid "Not relevant?"
125
  msgstr ""
126
 
127
+ #: classes/RemoteController.php:1308
 
128
  msgid "Insert in your article"
129
  msgstr ""
130
 
131
+ #: classes/RemoteController.php:1309
132
  msgid ":( An error occurred while processing your request. Please try again"
133
  msgstr ""
134
 
135
+ #: classes/RemoteController.php:1310
 
136
  msgid "No results found!"
137
  msgstr ""
138
 
139
+ #: classes/RemoteController.php:1311
140
  #, php-format
141
  msgid "[ ATTRIBUTE: Please check: %s to find out how to attribute this image ]"
142
  msgstr ""
143
 
144
+ #: classes/RemoteController.php:1312
145
  msgid "Has creative commons attributes"
146
  msgstr ""
147
 
148
+ #: classes/RemoteController.php:1313
149
  msgid "No known copyright restrictions"
150
  msgstr ""
151
 
152
+ #: classes/RemoteController.php:1314
153
  msgid ""
154
  "You haven`t used Squirrly SEO to optimize your article. Do you want to "
155
  "optimize for a keyword before publishing?"
156
  msgstr ""
157
 
158
+ #: classes/RemoteController.php:1315
159
  msgid "Your Subscription has Expired"
160
  msgstr ""
161
 
162
+ #: classes/RemoteController.php:1316
163
  msgid "There are no keywords saved in briefcase yet"
164
  msgstr ""
165
 
166
+ #: classes/RemoteController.php:1317
167
  #, php-format
168
  msgid "Congratulations! Your article is 100% optimized!"
169
  msgstr ""
170
 
171
+ #: classes/RemoteController.php:1318
172
  #, php-format
173
  msgid "appears too many times. Try to remove %s of them"
174
  msgstr ""
175
 
176
+ #: classes/RemoteController.php:1319
177
  #, php-format
178
  msgid "write %s more words"
179
  msgstr ""
180
 
181
+ #: classes/RemoteController.php:1320
182
  #, php-format
183
  msgid "Add the keyword in the %s of your article"
184
  msgstr ""
185
 
186
+ #: classes/RemoteController.php:1321
187
  msgid "Click to keep the highlight on"
188
  msgstr ""
189
 
190
+ #: classes/RemoteController.php:1322
191
  msgid "introduction"
192
  msgstr ""
193
 
194
+ # @ squirrly-seo
195
+ #: classes/RemoteController.php:1323
196
+ #, fuzzy, php-format
197
+ #| msgid "Use more words in one keyword"
198
  msgid "Write more words after the %s keyword"
199
+ msgstr "Verwenden Sie mehrere Wörter in einem Schlüsselwort"
200
 
201
+ #: classes/RemoteController.php:1324
202
  msgid "or use synonyms"
203
  msgstr ""
204
 
205
+ #: classes/RemoteController.php:1325
206
  #, php-format
207
  msgid "add %s more word(s)"
208
  msgstr ""
209
 
210
+ #: classes/RemoteController.php:1326
211
  #, php-format
212
  msgid "or remove %s word(s)"
213
  msgstr ""
214
 
215
+ # @ squirrly-seo
216
+ #: classes/RemoteController.php:1327
217
+ #, fuzzy, php-format
218
+ #| msgid "Enter even more keywords."
219
  msgid "add %s more keyword(s)"
220
+ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
221
 
222
+ #: classes/RemoteController.php:1328
223
  #, php-format
224
  msgid "write %s more words to start calculating"
225
  msgstr ""
226
 
227
+ #: classes/RemoteController.php:1329 view/Research/Research.php:48
228
  msgid "Add to Briefcase"
229
  msgstr ""
230
 
231
+ #: classes/RemoteController.php:1330
232
  msgid "Add Keyword to Briefcase"
233
  msgstr ""
234
 
235
+ #: classes/RemoteController.php:1331
236
  msgid "Select"
237
  msgstr ""
238
 
239
+ # @ squirrly-seo
240
+ #: classes/RemoteController.php:1332 view/Blocks/Snippet.php:137
241
+ #: view/Blocks/Snippet.php:516 view/Blocks/Snippet.php:775
242
+ #, fuzzy
243
+ #| msgid "automatically"
244
  msgid "Auto Draft"
245
+ msgstr "automatisch"
246
 
247
+ #: classes/RemoteController.php:1333
248
  msgid ""
249
  "You’ve already used the Live Assistant to optimize this post when creating "
250
  "it in your Page Builder. Please go back and resume your optimization work "
252
  msgstr ""
253
 
254
  # @ squirrly-seo
255
+ #: classes/helpers/Sanitize.php:217
256
+ #, fuzzy
257
+ #| msgid "Bing META code (for %sWebmaster Tool%s )`:"
258
  msgid "The code for Google Webmaster Tool is incorrect."
259
+ msgstr "Bing META Code (für %sWebmaster Tool%s )`:"
260
 
261
  # @ squirrly-seo
262
+ #: classes/helpers/Sanitize.php:244
263
+ #, fuzzy
264
+ #| msgid "Google %sAnalytics ID%s`:"
265
  msgid "The code for Google Analytics is incorrect."
266
+ msgstr "Google %sAnalytics ID%s`:"
267
 
268
+ #: classes/helpers/Sanitize.php:281
 
269
  msgid "The code for Facebook is incorrect."
270
  msgstr ""
271
 
272
+ #: classes/helpers/Sanitize.php:307
273
  msgid "The code for Pinterest is incorrect."
274
  msgstr ""
275
 
276
+ #: classes/helpers/Sanitize.php:332
 
277
  msgid "The code for Bing is incorrect."
278
  msgstr ""
279
 
280
+ #: classes/helpers/Sanitize.php:357
281
  msgid "The code for Alexa is incorrect."
282
  msgstr ""
283
 
284
+ #: classes/helpers/Sanitize.php:483
285
  msgid "The code for Facebook Pixel must only contain numbers."
286
  msgstr ""
287
 
288
+ #: classes/helpers/Sanitize.php:498
289
  msgid "The code for Facebook App must only contain numbers."
290
  msgstr ""
291
 
293
  msgid "Getting started"
294
  msgstr ""
295
 
296
+ # @ squirrly-seo
297
  #: classes/helpers/Tools.php:107
298
+ #, fuzzy
299
+ #| msgid "automatically"
300
  msgid "Documentation"
301
+ msgstr "automatisch"
302
 
303
  #: classes/helpers/Tools.php:108
304
  msgid "Leave a review"
305
  msgstr ""
306
 
307
+ #: classes/helpers/Tools.php:408
308
  msgid "Format"
309
  msgstr ""
310
 
311
+ #: classes/helpers/Tools.php:426 classes/helpers/Tools.php:462
312
  msgid "Category"
313
  msgstr ""
314
 
315
+ #: classes/helpers/Tools.php:444 classes/helpers/Tools.php:480
316
  msgid "Tag"
317
  msgstr ""
318
 
319
+ #: classes/helpers/Tools.php:498
320
  msgid "Shipping Option"
321
  msgstr ""
322
 
323
+ #: classes/helpers/Tools.php:516
324
  msgid "Author at"
325
  msgstr ""
326
 
327
+ #: classes/helpers/Tools.php:588
328
  msgid "Are you looking for"
329
  msgstr ""
330
 
331
+ #: classes/helpers/Tools.php:589
332
  msgid "These are the results for"
333
  msgstr ""
334
 
335
+ #: classes/helpers/Tools.php:589
336
  msgid "that you can find on our website."
337
  msgstr ""
338
 
339
+ #: classes/helpers/Tools.php:623
340
  msgid "Page not found"
341
  msgstr ""
342
 
343
+ #: classes/helpers/Tools.php:624
344
  msgid "This page could not be found on our website."
345
  msgstr ""
346
 
347
+ #: classes/helpers/Tools.php:925
348
  msgid "For better text comparison you need to install PHP mbstring extension."
349
  msgstr ""
350
 
471
  msgid "Invalid Token. Please try again"
472
  msgstr ""
473
 
474
+ #: controllers/Api.php:87
475
  msgid "Connection expired. Please try again"
476
  msgstr ""
477
 
479
  msgid "Author not found"
480
  msgstr ""
481
 
482
+ #: controllers/Api.php:139
483
+ msgid "Connection expired. Please try again."
484
+ msgstr ""
485
+
486
  #: controllers/Api.php:149 controllers/Api.php:171
487
  msgid "Wrong Params"
488
  msgstr ""
489
 
490
+ # @ squirrly-seo
491
+ #: controllers/Assistant.php:69 controllers/Research.php:104
492
+ #, fuzzy
493
+ #| msgid "Tips: 2-4 keywords"
494
  msgid "No keyword found."
495
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
496
 
497
+ #: controllers/Assistant.php:108 controllers/Assistant.php:135
498
+ #: controllers/Audits.php:342 controllers/Ranking.php:140
499
+ #: controllers/SeoSettings.php:159 controllers/SeoSettings.php:176
500
+ #: controllers/SeoSettings.php:200 controllers/SeoSettings.php:239
501
+ #: controllers/SeoSettings.php:268 controllers/SeoSettings.php:299
502
+ #: controllers/SeoSettings.php:589 controllers/SeoSettings.php:693
503
+ #: controllers/SeoSettings.php:728
504
  msgid "Saved"
505
  msgstr ""
506
 
507
+ #: controllers/Assistant.php:114 controllers/BulkSeo.php:75
508
+ #: controllers/Patterns.php:107 controllers/Post.php:256
509
+ #: controllers/Post.php:311 controllers/Post.php:343 controllers/Post.php:378
510
+ #: controllers/PostsList.php:182 controllers/Research.php:178
511
+ #: controllers/Research.php:185 controllers/Research.php:223
512
+ #: controllers/Research.php:246 controllers/Research.php:276
513
+ #: controllers/Research.php:303 controllers/Research.php:327
514
+ #: controllers/Research.php:357 controllers/Research.php:378
515
+ #: controllers/Research.php:459 controllers/Research.php:610
516
+ #: controllers/Research.php:634 controllers/Research.php:668
517
+ #: controllers/Research.php:694 controllers/SeoSettings.php:362
518
+ #: controllers/SeoSettings.php:578 controllers/SeoSettings.php:602
519
+ #: controllers/SeoSettings.php:615 controllers/SeoSettings.php:636
520
+ #: controllers/SeoSettings.php:656 controllers/SeoSettings.php:672
521
+ #: controllers/SeoSettings.php:708 controllers/Snippet.php:171
522
  msgid "You do not have permission to perform this action"
523
  msgstr ""
524
 
525
  # @ squirrly-seo
526
+ #: controllers/Assistant.php:140
527
  #, fuzzy
528
  #| msgid "Could not send the email..."
529
  msgid "Error: Could not save the data."
530
  msgstr "Konnte E-Mail nicht senden ..."
531
 
532
+ #: controllers/Audits.php:136
533
  msgid "The audit was not found. Please load another audit."
534
  msgstr ""
535
 
536
  # @ squirrly-seo
537
+ #: controllers/Audits.php:169
538
  #, fuzzy
539
  #| msgid "Could not send the email..."
540
  msgid "Could not load the Audit Page."
541
  msgstr "Konnte E-Mail nicht senden ..."
542
 
543
+ #: controllers/Audits.php:283
544
  msgid "Audit page is added. The audit may take a while so please be patient."
545
  msgstr ""
546
 
547
+ #: controllers/Audits.php:286
548
  msgid "You reached the maximum number of audit pages for your account."
549
  msgstr ""
550
 
551
  # @ squirrly-seo
552
+ #: controllers/Audits.php:289
553
  #, fuzzy
554
  #| msgid "Could not send the email..."
555
  msgid "Error! Could not add the audit page."
556
  msgstr "Konnte E-Mail nicht senden ..."
557
 
558
+ # @ squirrly-seo
559
+ #: controllers/Audits.php:293
560
+ #, fuzzy
561
+ #| msgid "Could not send the email..."
562
  msgid "Error! Could not find the audit page in your website."
563
+ msgstr "Konnte E-Mail nicht senden ..."
564
 
565
+ #: controllers/Audits.php:303
566
  msgid "Audit page sent for recheck. It may take a while so please be patient."
567
  msgstr ""
568
 
569
+ #: controllers/Audits.php:306 controllers/Audits.php:309
570
  msgid "The audit for all pages can be made once an hour."
571
  msgstr ""
572
 
573
+ #: controllers/Audits.php:319
574
+ msgid "The audit page is deleted."
575
  msgstr ""
576
 
577
+ #: controllers/Audits.php:321 controllers/FocusPages.php:414
578
+ #: controllers/Ranking.php:167 controllers/Ranking.php:185
579
+ #: controllers/Ranking.php:203 controllers/Research.php:214
580
+ #: controllers/Research.php:217 controllers/Research.php:240
581
+ #: controllers/Research.php:298 controllers/Research.php:322
582
+ #: controllers/Research.php:506 controllers/Research.php:577
583
+ #: controllers/Research.php:604 controllers/Research.php:629
584
+ #: controllers/Research.php:714
585
  msgid "Invalid params!"
586
  msgstr ""
587
 
588
+ #: controllers/Audits.php:344
589
+ msgid "Not a valid email address."
590
  msgstr ""
591
 
592
+ #: controllers/CheckSeo.php:267 controllers/CheckSeo.php:277
593
  msgid "Done!"
594
  msgstr ""
595
 
596
+ #: controllers/CheckSeo.php:294
597
  msgid "Fixed!"
598
  msgstr ""
599
 
600
+ #: controllers/CheckSeo.php:299
601
  msgid "Could not fix it. You need to change it manually."
602
  msgstr ""
603
 
604
+ #: controllers/CheckSeo.php:306
605
  msgid "Saved! Task marked as done."
606
  msgstr ""
607
 
608
+ #: controllers/FocusPages.php:153
609
  msgid "Focus Page does not exist or was deleted from your website."
610
  msgstr ""
611
 
612
+ #: controllers/FocusPages.php:345
613
  msgid "Focus page is added. The audit may take a while so please be patient."
614
  msgstr ""
615
 
616
+ #: controllers/FocusPages.php:352
617
  msgid "You reached the maximum number of focus pages for all your websites."
618
  msgstr ""
619
 
620
+ # @ squirrly-seo
621
+ #: controllers/FocusPages.php:355
622
+ #, fuzzy
623
+ #| msgid "Could not send the email..."
624
  msgid "Error! Could not add the focus page."
625
+ msgstr "Konnte E-Mail nicht senden ..."
626
 
627
+ #: controllers/FocusPages.php:358
628
  msgid "Error! This focus page is not public."
629
  msgstr ""
630
 
631
+ # @ squirrly-seo
632
+ #: controllers/FocusPages.php:362 controllers/FocusPages.php:401
633
+ #, fuzzy
634
+ #| msgid "Could not send the email..."
635
  msgid "Error! Could not find the focus page in your website."
636
+ msgstr "Konnte E-Mail nicht senden ..."
637
 
638
+ #: controllers/FocusPages.php:389
639
  msgid "Focus page sent for recheck. It may take a while so please be patient."
640
  msgstr ""
641
 
642
+ #: controllers/FocusPages.php:392 controllers/FocusPages.php:396
643
  msgid "You've made too many requests, please wait a few minutes."
644
  msgstr ""
645
 
646
+ #: controllers/FocusPages.php:412
647
  msgid "The focus page is deleted"
648
  msgstr ""
649
 
650
+ #: controllers/Menu.php:129
651
  #, php-format
652
  msgid ""
653
  "An error occurred during activation. If this error persists, please contact "
654
  "us at: %s"
655
  msgstr ""
656
 
657
+ #: controllers/Menu.php:168
658
  msgid "Dashboard"
659
  msgstr ""
660
 
661
  # @ squirrly-seo
662
+ #. Author of the plugin/theme
663
+ #: controllers/Menu.php:193 controllers/Menu.php:304 controllers/Menu.php:339
664
  #: view/Blocks/SLASearch.php:7
665
  #, fuzzy
666
  #| msgid "Squirrly settings"
667
  msgid "Squirrly SEO"
668
  msgstr "Squirrly Einstellungen"
669
 
670
+ # @ squirrly-seo
671
+ #: controllers/Menu.php:267
672
+ #, fuzzy
673
+ #| msgid "Squirrly LIVE SEO assistant"
674
  msgid "SEO Snippet"
675
+ msgstr "Squirrly LIVE SEO-Assistent"
676
 
677
+ #: controllers/Menu.php:282 controllers/Snippet.php:142
678
  msgid "Custom SEO"
679
  msgstr ""
680
 
681
  # @ squirrly-seo
682
+ #: controllers/Menu.php:347
683
  #, fuzzy
684
  #| msgid "Squirrly settings"
685
  msgid "Squirrly Onboarding"
686
  msgstr "Squirrly Einstellungen"
687
 
688
+ # @ squirrly-seo
689
+ #: controllers/Menu.php:348
690
+ #, fuzzy
691
+ #| msgid "Squirrly settings"
692
  msgid "Onboarding"
693
+ msgstr "Squirrly Einstellungen"
694
 
695
+ #: controllers/Menu.php:377
696
  msgid "Import & Export SEO"
697
  msgstr ""
698
 
699
+ #: controllers/Menu.php:378 view/SeoSettings/Backup.php:90
700
  msgid "Import SEO"
701
  msgstr ""
702
 
703
+ #: controllers/Menu.php:388
704
  msgid "Squirrly Account Info"
705
  msgstr ""
706
 
707
+ #: controllers/Menu.php:389
708
  msgid "Account Info"
709
  msgstr ""
710
 
711
+ # @ squirrly-seo
712
+ #: controllers/Menu.php:398
713
+ #, fuzzy
714
+ #| msgid "Squirrly LIVE SEO assistant"
715
  msgid "Squirrly How To & Support"
716
+ msgstr "Squirrly LIVE SEO-Assistent"
717
 
718
+ #: controllers/Menu.php:399
719
  msgid "Help & Support"
720
  msgstr ""
721
 
722
+ #: controllers/Overview.php:56
723
+ #, php-format
724
+ msgid ""
725
+ "Detected %s: We encourage you to %sImport the Settings and SEO%s from %s and "
726
+ "deactivate %s to increase the page loading speed for better Google ranking."
727
+ msgstr ""
728
+
729
+ #: controllers/Patterns.php:22
730
  msgid "Saved! This is how the preview looks like"
731
  msgstr ""
732
 
733
  # @ squirrly-seo
734
+ #: controllers/Post.php:305
735
  #, fuzzy
736
  #| msgid "Could not send the email..."
737
  msgid "Could not add the demo post."
738
  msgstr "Konnte E-Mail nicht senden ..."
739
 
740
+ #: controllers/Post.php:367 controllers/Post.php:392
741
  msgid "Can't get the post URL"
742
  msgstr ""
743
 
744
+ #: controllers/Post.php:397
745
  msgid "Invalid request"
746
  msgstr ""
747
 
748
+ # @ squirrly-seo
749
  #: controllers/PostsList.php:74 controllers/PostsList.php:117
750
+ #, fuzzy
751
+ #| msgid "Squirrly LIVE SEO assistant"
752
  msgid "SQ Snippet"
753
+ msgstr "Squirrly LIVE SEO-Assistent"
754
 
755
+ #: controllers/PostsList.php:75 models/PostsList.php:21
756
  msgid "Optimized"
757
  msgstr ""
758
 
769
  msgid "Not Public"
770
  msgstr ""
771
 
772
+ # @ squirrly-seo
773
  #: controllers/PostsList.php:236
774
+ #, fuzzy
775
+ #| msgid "Could not send the email..."
776
  msgid "Could not process"
777
+ msgstr "Konnte E-Mail nicht senden ..."
778
 
779
  #: controllers/PostsList.php:237
780
  msgid "The Squirrly subscription has expired!"
781
  msgstr ""
782
 
783
  # @ squirrly-seo
784
+ #: controllers/Ranking.php:84
785
  #, fuzzy
786
  #| msgid "Could not send the email..."
787
  msgid "Could not load the Rankings."
788
  msgstr "Konnte E-Mail nicht senden ..."
789
 
790
  # @ squirrly-seo
791
+ #: controllers/Ranking.php:97
792
  #, fuzzy
793
  #| msgid "Could not send the email..."
794
  msgid "Could not load data."
795
  msgstr "Konnte E-Mail nicht senden ..."
796
 
797
+ #: controllers/Ranking.php:149
798
  #, php-format
799
  msgid "Could not refresh the rank. Please check your SERP credits %shere%s"
800
  msgstr ""
801
 
802
+ #: controllers/Ranking.php:151
803
  #, php-format
804
  msgid "%s is queued and the rank will be checked soon."
805
  msgstr ""
806
 
807
+ #: controllers/Ranking.php:162
808
+ msgid "The keyword is deleted."
809
  msgstr ""
810
 
811
  # @ squirrly-seo
812
+ #: controllers/Ranking.php:164
813
  #, fuzzy
814
  #| msgid "Could not send the email..."
815
  msgid "Could not delete the keyword!"
816
  msgstr "Konnte E-Mail nicht senden ..."
817
 
818
+ #: controllers/Ranking.php:183 controllers/Research.php:238
819
+ #: controllers/Research.php:320 controllers/Research.php:627
820
+ #: controllers/Research.php:712
821
  msgid "Deleted!"
822
  msgstr ""
823
 
824
+ #: controllers/Ranking.php:200
825
  msgid "Sent!"
826
  msgstr ""
827
 
828
+ #: controllers/Research.php:204
829
  msgid "Keyword Saved. The rank check will be ready in a minute."
830
  msgstr ""
831
 
832
+ # @ squirrly-seo
833
+ #: controllers/Research.php:206 controllers/Research.php:210
834
+ #, fuzzy
835
+ #| msgid "Do the research"
836
  msgid "Keyword Saved!"
837
+ msgstr "Recherchieren"
838
 
839
+ #: controllers/Research.php:271
840
  msgid "Invalid Label or Color!"
841
  msgstr ""
842
 
843
+ # @ squirrly-seo
844
+ #: controllers/Research.php:352 controllers/Research.php:662
845
+ #: controllers/Research.php:688
846
+ #, fuzzy
847
+ #| msgid "Tips: 2-4 keywords"
848
  msgid "Invalid Keyword!"
849
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
850
 
851
+ #: controllers/Research.php:411 controllers/Research.php:425
852
+ #: controllers/Research.php:447 controllers/Research.php:450
853
+ #: controllers/SeoSettings.php:411 controllers/SeoSettings.php:414
854
+ #: controllers/SeoSettings.php:458 controllers/SeoSettings.php:461
855
  msgid "Error! The backup is not valid."
856
  msgstr ""
857
 
858
+ #: controllers/Research.php:445 controllers/SeoSettings.php:409
859
  msgid "Great! The backup is restored."
860
  msgstr ""
861
 
862
+ #: controllers/Research.php:453 controllers/SeoSettings.php:417
863
+ #: controllers/SeoSettings.php:464
864
  msgid "Error! You have to enter a previously saved backup file."
865
  msgstr ""
866
 
867
+ #: controllers/Research.php:474
868
  msgid "Could not add the keyword to SERP Check. Please try again."
869
  msgstr ""
870
 
871
+ #: controllers/Research.php:476
872
  msgid "The keyword is added to SERP Check."
873
  msgstr ""
874
 
875
+ #: controllers/Research.php:479
876
  msgid "Invalid parameters."
877
  msgstr ""
878
 
879
+ # @ squirrly-seo
880
+ #: controllers/Research.php:571
881
+ #, fuzzy
882
+ #| msgid "Do the research"
883
  msgid "Keyword Research limit exceeded"
884
+ msgstr "Recherchieren"
885
 
886
+ #: controllers/Research.php:686
887
  msgid "The keywords are added to SERP Check!"
888
  msgstr ""
889
 
890
+ # @ squirrly-seo
891
+ #: controllers/SeoSettings.php:342
892
+ #, fuzzy
893
+ #| msgid "Google %sAnalytics ID%s`:"
894
  msgid "Google Analytics account is disconnected."
895
+ msgstr "Google %sAnalytics ID%s`:"
896
 
897
+ # @ squirrly-seo
898
+ #: controllers/SeoSettings.php:344 controllers/SeoSettings.php:357
899
+ #, fuzzy
900
+ #| msgid "Could not send the email..."
901
  msgid "Error! Could not disconnect the account."
902
+ msgstr "Konnte E-Mail nicht senden ..."
903
 
904
+ # @ squirrly-seo
905
+ #: controllers/SeoSettings.php:355
906
+ #, fuzzy
907
+ #| msgid "Google %sAnalytics ID%s`:"
908
  msgid "Google Search Console account is disconnected."
909
+ msgstr "Google %sAnalytics ID%s`:"
910
 
911
+ #: controllers/SeoSettings.php:455
912
  msgid "Great! The SEO backup is restored."
913
  msgstr ""
914
 
915
+ #: controllers/SeoSettings.php:492 controllers/SeoSettings.php:540
916
  #, php-format
917
  msgid ""
918
  "Success! The import from %s was completed successfully and your SEO is safe!"
919
  msgstr ""
920
 
921
+ #: controllers/SeoSettings.php:494
922
  msgid "Error! An error occured while import. Please try again."
923
  msgstr ""
924
 
925
+ #: controllers/SeoSettings.php:506
926
  msgid "All the Plugin settings were imported successfuly!"
927
  msgstr ""
928
 
929
+ #: controllers/SeoSettings.php:508
930
  msgid "No settings found for this plugin/theme."
931
  msgstr ""
932
 
933
+ #: controllers/SeoSettings.php:560 models/Rollback.php:98
934
  msgid "Rollback to Previous Version"
935
  msgstr ""
936
 
937
  # @ squirrly-seo
938
+ #: controllers/SeoSettings.php:591
939
  #, fuzzy
940
  #| msgid "Could not send the email..."
941
  msgid "Could not save the changes"
942
  msgstr "Konnte E-Mail nicht senden ..."
943
 
944
+ #: controllers/SeoSettings.php:626
 
 
 
 
 
 
 
945
  msgid ""
946
  "Error! Could not get the code. Connect to Google Search Console and validate "
947
  "the connection."
948
  msgstr ""
949
 
950
+ #: controllers/SeoSettings.php:646
951
  msgid ""
952
  "Error! Could not get the tracking code. Connect to Google Analytics and get "
953
  "the website tracking code from Admin area."
954
  msgstr ""
955
 
956
  # @ squirrly-seo
957
+ #: controllers/SeoSettings.php:701 controllers/SeoSettings.php:736
 
 
 
 
 
 
 
958
  #, fuzzy
959
  #| msgid "Could not send the email..."
960
+ msgid "Could not add the post type."
961
  msgstr "Konnte E-Mail nicht senden ..."
962
 
 
 
 
 
963
  # @ squirrly-seo
964
+ #: controllers/Snippet.php:87
965
+ #, fuzzy
966
+ #| msgid "Squirrly LIVE SEO assistant"
967
+ msgid "Squirrly SEO Snippet"
968
+ msgstr "Squirrly LIVE SEO-Assistent"
969
+
970
+ #: controllers/Snippet.php:190
971
+ #, php-format
972
+ msgid ""
973
+ "Could not save the snippet. Please check the database table %s integrity."
974
  msgstr ""
975
 
976
+ #: core/BlockSupport.php:31
977
+ msgid "Thank you for your feedback."
 
978
  msgstr ""
979
 
980
+ #: core/BlockSupport.php:35
 
981
  msgid "No message."
982
  msgstr ""
983
 
990
  msgstr ""
991
 
992
  #: core/Blocklogin.php:56
993
+ msgid "Your email is not valid. Please enter a valid email."
994
  msgstr ""
995
 
996
  #: core/Blocklogin.php:59
997
+ msgid "We could not create your account. Please enter a valid email."
998
  msgstr ""
999
 
1000
  #: core/Blocklogin.php:78
1008
  msgid "Could not send your information to Squirrly. Please try again."
1009
  msgstr ""
1010
 
 
1011
  #: core/Blocklogin.php:104
1012
  msgid "Wrong email or password!"
1013
  msgstr ""
1017
  msgstr ""
1018
 
1019
  #: core/Blocklogin.php:110
1020
+ msgid "An error occured."
1021
  msgstr ""
1022
 
1023
  #: core/Blocklogin.php:130
1027
  "webmaster) and request them to add %s to their IP whitelist."
1028
  msgstr ""
1029
 
 
1030
  #: core/Blocklogin.php:135
1031
  msgid "Both fields are required."
1032
  msgstr ""
1033
 
1034
+ # @ squirrly-seo
1035
+ #: models/Assistant.php:50
1036
+ #, fuzzy
1037
+ #| msgid "Your E-mail:"
1038
  msgid "Task Details"
1039
+ msgstr "Ihre E-Mail Adresse:"
1040
 
1041
  #: models/Assistant.php:57
1042
  msgid "active task"
1044
 
1045
  # @ squirrly-seo
1046
  #: models/Assistant.php:80 view/Blocks/Jorney.php:69
 
1047
  #, fuzzy
1048
  #| msgid "Do the research"
1049
  msgid "Do Keyword Research"
1138
  "your way around it."
1139
  msgstr ""
1140
 
1141
+ # @ squirrly-seo
1142
  #: models/Assistant.php:114
1143
+ #, fuzzy
1144
+ #| msgid "Google %sAnalytics ID%s`:"
1145
  msgid "Activate Meta Automation"
1146
+ msgstr "Google %sAnalytics ID%s`:"
1147
 
1148
  #: models/Assistant.php:115
1149
  #, php-format
1172
  "off."
1173
  msgstr ""
1174
 
1175
+ #: models/Assistant.php:124 view/Blocks/Snippet.php:377
1176
  #: view/SeoSettings/Jsonld.php:35
1177
  msgid "Activate JSON-LD"
1178
  msgstr ""
1191
  "you're an advanced user."
1192
  msgstr ""
1193
 
1194
+ #: models/Assistant.php:129 view/Blocks/Snippet.php:483
1195
  #: view/SeoSettings/Automation.php:377 view/SeoSettings/Social.php:47
1196
  msgid "Activate Open Graph"
1197
  msgstr ""
1206
  "your site."
1207
  msgstr ""
1208
 
1209
+ #: models/Assistant.php:134 view/Blocks/Snippet.php:740
1210
  #: view/SeoSettings/Automation.php:404 view/SeoSettings/Social.php:270
1211
  msgid "Activate Twitter Card"
1212
  msgstr ""
1286
 
1287
  # @ squirrly-seo
1288
  #: models/Assistant.php:163 models/focuspages/Accuracy.php:45
1289
+ #: models/focuspages/Length.php:69 models/focuspages/Traffic.php:106
1290
  #, fuzzy
1291
  #| msgid "Google %sAnalytics ID%s`:"
1292
  msgid "Connect Google Analytics"
1303
  "having to know a single thing about Google Analytics."
1304
  msgstr ""
1305
 
1306
+ # @ squirrly-seo
1307
  #: models/Assistant.php:168 models/Assistant.php:190
1308
+ #, fuzzy
1309
+ #| msgid "Google %sAnalytics ID%s`:"
1310
  msgid "Connect Google Search Console"
1311
+ msgstr "Google %sAnalytics ID%s`:"
1312
 
1313
  #: models/Assistant.php:169
1314
  #, php-format
1321
  "Google has about your site, directly from your Squirrly SEO Plugin."
1322
  msgstr ""
1323
 
1324
+ # @ squirrly-seo
1325
  #: models/Assistant.php:173
1326
+ #, fuzzy
1327
+ #| msgid "Your E-mail:"
1328
  msgid "Set the Audit Email"
1329
+ msgstr "Ihre E-Mail Adresse:"
1330
 
1331
  #: models/Assistant.php:174
1332
  #, php-format
1404
  "on those tasks and turning elements to green you'll complete this task."
1405
  msgstr ""
1406
 
1407
+ #: models/Assistant.php:253 models/abstract/Assistant.php:197
1408
  msgid "You chose to ignore this task. Click to activate it."
1409
  msgstr ""
1410
 
1413
  msgstr ""
1414
 
1415
  #: models/Audits.php:18 models/Audits.php:97 models/Audits.php:107
1416
+ #: models/Audits.php:117 models/Audits.php:127 models/Audits.php:714
1417
  msgid "Great!"
1418
  msgstr ""
1419
 
1431
  "you can use, that are related to: 'jazz concert', 'john dane', 'jazz 2025' "
1432
  "and 'jazz in phoenix'. Find out what others search for. If you'll optimize "
1433
  "the page for those keywords, you'll be certain that jazz fans will find it. "
1434
+ "The keyword research tool available in Squirrly SEO helps you figure out "
1435
+ "exactly what keywords to use. %s Start optimizing your content. Use the "
1436
+ "Live Assistant from Squirrly SEO to do this, as it guides you towards the "
1437
+ "best practices of optimizing a page for SEO and helps you avoid keyword "
1438
+ "stuffing.%s"
1439
  msgstr ""
1440
 
1441
  #: models/Audits.php:21
1442
  msgid ""
1443
  "Optimization is NOT about stuffing in keywords. It's about writing the page "
1444
+ "in such a way that Search Engine bots and Humans alike will easily "
1445
+ "understand that the page is exactly about the topic they were searching for. "
1446
+ "Use the Live Assistant from Squirrly SEO to get the job done with ease."
 
1447
  msgstr ""
1448
 
1449
  #: models/Audits.php:22
1487
  "does not bloat your code."
1488
  msgstr ""
1489
 
1490
+ # @ squirrly-seo
1491
  #: models/Audits.php:31
1492
+ #, fuzzy
1493
+ #| msgid "adds the correct <strong>title</strong> in the home page"
1494
  msgid "Add the meta DcPublisher tag in the page's header"
1495
+ msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
1496
 
1497
  #: models/Audits.php:38
1498
  msgid "Top Ten Pages This Week"
1504
  "If there is enough data in Google Analytics, you should see the list of "
1505
  "pages with the most visitors in the last week. %s Having at least 100 "
1506
  "visitors per page every week is crucial. %s Search Engines like Google and "
1507
+ "Bing will push down a page which doesn't attract visitors."
1508
  msgstr ""
1509
 
1510
+ #: models/Audits.php:45 view/FocusPages/FocusPageStats.php:196
1511
  msgid "Page Traffic"
1512
  msgstr ""
1513
 
1531
  "bringing you traffic. Of course, the key is to first make these items "
1532
  "visible in the places where you publish them. %s You need an email list. "
1533
  "Make sure that people who come to your store, do business with you, visit "
1534
+ "your website, or read your blog give you their email address so you can "
1535
  "communicate with them further on. An alternative to this is to make a "
1536
  "Chatbot for Facebook Messenger and get them hooked to the bot. By doing any "
1537
+ "of these, you'll be able to bring those people back to your website. %sUse "
1538
+ "the Keyword Research tool included in Squirrly SEO, to spot keywords that "
1539
+ "are easy to rank for: [link]https://plugin.squirrly.co/best-keyword-research-"
1540
+ "tool-for-seo/[link] %sRank for more keywords with low competition. This will "
1541
+ "start building up traffic for your site. %sTo Easily rank new pages, use "
1542
+ "Daily SEO Goals: [link]https://plugin.squirrly.co/best-seo-goals/[/link] "
1543
+ "%sStudy website rankings to learn how to bring more traffic, by using our "
1544
+ "Special Cloud Services for Rank Checking, available only on: Business Plans "
1545
+ "[link]https://plugin.squirrly.co/squirrly-seo-pricing/[/link]"
1546
  msgstr ""
1547
 
1548
  #: models/Audits.php:49
1549
  msgid ""
1550
+ "Get each person who arrives on your site once to leave something that you "
1551
  "can use later on to bring them to your site again. You can use Facebook "
1552
  "Pixel and then retarget them, you can make them subscribe to Desktop "
1553
  "Notifications to receive push notifications, you can have them download an "
1572
  msgstr ""
1573
 
1574
  #: models/Audits.php:60
 
1575
  msgid ""
1576
  "How can we fix the noindex for our pages? %s You're currently telling Google "
1577
  "not to index some of your pages through a robots tag inside your code. %s On "
1578
  "WordPress, it's super easy to control on which pages to place no-index and "
1579
  "which pages should never get tagged with no-index if you use the Squirrly "
1580
+ "SEO Plugin. %s If you decided you 100% want these pages to be No-Index (you "
1581
+ "don’t want Google to index them) - then remove these pages from the SEO "
1582
+ "Audit. Use the SEO Audit for the pages you want to be seen on search engines."
1583
+ "%s"
1584
  msgstr ""
1585
 
1586
  #: models/Audits.php:61
1598
  msgid "Add the correct meta robots tag in the pages"
1599
  msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
1600
 
1601
+ # @ squirrly-seo
1602
  #: models/Audits.php:67
1603
+ #, fuzzy
1604
+ #| msgid "Tool for Search Engines"
1605
  msgid "Followed by search engines?"
1606
+ msgstr "Tool für Suchmaschinen"
1607
 
1608
  #: models/Audits.php:69
1609
  msgid "The pages with nofollow"
1673
  "compress them with tools like ShortPixel.com %s Minify Javascripts, use "
1674
  "CDNs, use gZip. %s Use a professional service if your site is based on "
1675
  "WordPress. Our parent company, Squirrly Limited, offers such a service for "
1676
+ "WordPress.org based websites [link]https://www.squirrly.co/agency/[/link] %s"
 
1677
  msgstr ""
1678
 
1679
  #: models/Audits.php:90
1710
  #, php-format
1711
  msgid ""
1712
  "How can we fix the Duplicate Titles on our pages? %s Features like SEO "
1713
+ "Automation or SEO Snippet from Squirrly SEO will generate your META title "
1714
  "automatically from the content of your page (in case you didn't already "
1715
  "place a custom title). Make every single META Title of every page unique "
1716
  "(you never repeat it on any other URL from the website). You will write what "
1725
  "Strike GO. Buy it Now'. %s All these problematic cases can be forgotten once "
1726
  "you start using Squirrly SEO . With its Patterns feature, it will create "
1727
  "rules for WordPress that ensure each title for each page on your site is "
1728
+ "unique. This feature is available in the Free version of Squirry.%s"
 
1729
  msgstr ""
1730
 
1731
  #: models/Audits.php:100
1759
  #: models/Audits.php:109
1760
  #, php-format
1761
  msgid ""
1762
+ "How can we fix the Duplicate Descriptions on our website? %s Use the SEO "
1763
+ "Automation feature from Squirrly SEO, because it will generate your META "
1764
  "description automatically from the content of your page (in case you didn't "
1765
  "already place a custom description). Make every single META description of "
1766
  "every page unique (you never repeat it on any other URL from the website). "
1767
+ "Make this text awesome and you'll get people clicking on it. %s Use the "
1768
+ "Patterns feature from Squirrly SEO. It will help you create rules for "
1769
+ "WordPress that ensure each description for each page on your site is unique. "
1770
+ "This feature is available on all plans. %s"
 
 
 
 
 
 
 
 
 
1771
  msgstr ""
1772
 
1773
  #: models/Audits.php:110
1774
  msgid ""
1775
+ "Use Squirrly SEO’s BULK SEO section to control everything about your META "
1776
  "descriptions and make them stand out on search engines."
1777
  msgstr ""
1778
 
1805
  #: models/Audits.php:119
1806
  #, php-format
1807
  msgid ""
1808
+ "How can we fix the Empty Titles on our pages? %s Use Squirrly’s SEO "
1809
+ "Automation features or the SEO Snippet to generate your META title "
1810
  "automatically from the content of your page. Write what you want Google to "
1811
  "display in the search results as a title for your listing. Make this text "
1812
+ "awesome and you'll get people clicking on it. %s Use the Patterns feature "
1813
+ "from Squirrly. It will create rules for WordPress that ensure each title for "
1814
+ "each page on your site is unique. This feature is available on all plans.%s"
 
 
 
 
 
1815
  msgstr ""
1816
 
1817
  #: models/Audits.php:120
1818
  msgid ""
1819
+ "Use Squirrly SEO to create and control everything about your META titles and "
1820
+ "make them stand out on search engines."
1821
  msgstr ""
1822
 
1823
  #: models/Audits.php:121
1847
  #: models/Audits.php:129
1848
  #, php-format
1849
  msgid ""
1850
+ "How can we fix the Empty Descriptions on our website? %s Use Squirrly’s SEO "
1851
+ "Automation features or the SEO Snippet which will generate your META "
1852
+ "description automatically from the content of your page. Make this text "
1853
  "awesome and you'll get people clicking on it. %s See if you can assign rules "
1854
  "to WordPress to have it create META descriptions for each URL according to "
1855
  "different patterns. By having clear rules for all URLs you'll ensure that "
1856
  "Empty Descriptions will no longer be a problem in the future. %s All these "
1857
  "problematic cases can be forgotten once you start using Squirrly SEO . With "
1858
  "its Patterns feature, it will create rules for WordPress that ensure each "
1859
+ "description for each page on your site is unique. This feature is available "
1860
+ "on all plans.%s"
1861
  msgstr ""
1862
 
1863
  #: models/Audits.php:130
1864
  msgid ""
1865
+ "Use Squirrly SEO to create and control everything about your META "
1866
+ "descriptions and make them stand out on search engines."
1867
  msgstr ""
1868
 
1869
  #: models/Audits.php:131
1881
  #: models/Audits.php:139
1882
  #, php-format
1883
  msgid ""
1884
+ "How can we fix the title tags of our pages %s On WordPress, using Squirrly "
1885
+ "SEO will ensure your pages have title tags. It will create titles for every "
1886
+ "page. It will help you customize titles for every page, all while making you "
1887
+ "write ZERO code. No coding required when you use Squirrly SEO.%s"
 
 
1888
  msgstr ""
1889
 
1890
  #: models/Audits.php:140
1891
+ msgid "Platforms like Shopify handle this aspect with their default engine."
 
 
 
 
1892
  msgstr ""
1893
 
1894
  #: models/Audits.php:141
1911
  "make for a horrible listing inside the Google search page. If people find "
1912
  "your listing, they will not click on your listing in case your META "
1913
  "Description is horrible to look at, is poorly written, or it doesn't seem to "
1914
+ "make sense. %s On WordPress, you can use Squirrly SEO for this. It will "
1915
+ "automatically create META Descriptions for every page. It will help you "
1916
+ "customize these descriptions for every page, all while making you write "
1917
+ "ZERO, nada, rien, code. No coding required when you use Squirrly SEO. You "
1918
+ "can even customize the way it automates your descriptions.%s"
 
1919
  msgstr ""
1920
 
1921
  #: models/Audits.php:150
1922
+ msgid "Platforms like Shopify handle this with their default engines."
 
 
 
 
 
 
1923
  msgstr ""
1924
 
1925
  #: models/Audits.php:151
1926
  msgid "Add meta description to this page of your site"
1927
  msgstr ""
1928
 
1929
+ # @ squirrly-seo
1930
+ #: models/Audits.php:156 models/bulkseo/Metas.php:94
1931
+ #, fuzzy
1932
+ #| msgid "Enter even more keywords."
1933
  msgid "Meta Keyword"
1934
+ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1935
 
1936
  # @ squirrly-seo
1937
  #: models/Audits.php:157
1958
  msgid "Make sure that the search for your keywords is on a rising trend"
1959
  msgstr ""
1960
 
1961
+ #: models/Audits.php:166 models/bulkseo/Metas.php:99
1962
  msgid "Canonical Link"
1963
  msgstr ""
1964
 
1970
  #, php-format
1971
  msgid ""
1972
  "How can we fix the Canonical Links problems of our pages? %s Add this code "
1973
+ "to the <head> section of your HTML page: <link rel=\"canonical\" href=\"your "
1974
+ "site URL\" /> %s Think of a canonical link as the \"preferred version\" of "
1975
  "the page. %s Make sure you have this definition on your URL especially if "
1976
  "you've copied the content from another LINK on the web. Example: You "
1977
  "published a blog post on Medium and then also added it to your own blog on "
1979
  "penalized for duplicate content. Medium also allows you to re-publish "
1980
  "content from your own site to Medium and helps you get the rel=\"canonical\" "
1981
  "inside the medium post to show that the original is hosted on your own site."
1982
+ "%s Use Squirrly SEO's Bulk SEO to define canonical links and indexing "
1983
+ "options for your pages. %s"
1984
  msgstr ""
1985
 
1986
  #: models/Audits.php:170
2056
  "specification made."
2057
  msgstr ""
2058
 
2059
+ # @ squirrly-seo
2060
  #: models/Audits.php:191
2061
+ #, fuzzy
2062
+ #| msgid "adds <strong>canonical</strong> link in home page"
2063
  msgid "Add the meta encoding tag in the page's header"
2064
+ msgstr "fügt den richtigen <strong>canonical</strong> in die Startseite ein"
2065
 
2066
+ #: models/Audits.php:196
2067
  msgid "Does your site have a feed or sitemap?"
2068
  msgstr ""
2069
 
2095
  msgid "Add a RSS feed and Sitemap to your site"
2096
  msgstr ""
2097
 
2098
+ #: models/Audits.php:206
2099
+ msgid "Does your site have a robots.txt file?"
2100
+ msgstr ""
2101
+
2102
  #: models/Audits.php:209
2103
  #, php-format
2104
  msgid ""
2105
  "How can we fix the robots.txt of the website? %s You'll need to have a "
2106
+ "http://domain.com/robots.txt link on your site that crawlers can access to "
2107
  "know which pages they are allowed to crawl. (gather info from) %s Create or "
2108
+ "Edit a robots.txt file using Squirrly SEO %s Once you have the file, upload "
2109
+ "it to your ftp (if you don’t want to let Squirrly operate it for you) and "
2110
+ "make sure it can be accessed. %s"
2111
  msgstr ""
2112
 
2113
  #: models/Audits.php:210
2141
 
2142
  #: models/Audits.php:220
2143
  msgid ""
2144
+ "Platforms like Shopify handle this with their default engine. On WordPress, "
2145
+ "you need to make sure the WordPress theme you buy is responsive and has this "
2146
  "definition."
2147
  msgstr ""
2148
 
2149
+ # @ squirrly-seo
2150
  #: models/Audits.php:221
2151
+ #, fuzzy
2152
+ #| msgid "adds the correct <strong>title</strong> in the home page"
2153
  msgid "Add the meta viewport tag in the page's header"
2154
+ msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
2155
 
2156
  #: models/Audits.php:226
2157
  msgid "Site optimized for speed?"
2167
  "How can we fix the gzip compression for our website? %s GZIP compression "
2168
  "must be installed on the web server, such as in Apache, IIS and nginx. When "
2169
  "retrieving the website the web browser will prompt the visitor he/she can "
2170
+ "receive the GZIP. %s Squirrly’s teams of experts can help you get this done. "
2171
+ "[link]https://www.squirrly.co/agency/[/link] - Premium Paid Services, "
2172
+ "separate from any software license you may have from the Squirrly Company. "
2173
+ "%s Ask your webmaster / developer / host to help you with this. Or try to "
2174
+ "find plugins to help you with this.%s"
2175
  msgstr ""
2176
 
2177
  #: models/Audits.php:230
2268
  "profiles. Using tools like these will also give you a clear picture of what "
2269
  "Social Media platforms your desired audience uses most, so that you can "
2270
  "create profiles only for those social media platforms. %s You should create "
2271
+ "social media Giveaways, or even viral communities like: [link]https://www."
2272
+ "squirrly.co/dmsuperstars/[/link] %s Use a service like [link]https://"
2273
+ "techfork.xyz/about/[/link] (warning: other social media providers will most "
2274
+ "likely cause problems, because they use bots. - TechFork has been verified "
2275
+ "by our community and it has been a partner for over 4 years) %s Learn from "
2276
+ "our Episode on the Marketing Education Cloud Podcast how to share your pages "
2277
+ "so that you get better social signals and also 10,000 visits from social "
2278
+ "media: [link]https://www.squirrly.co/podcast/[/link] %s"
2279
  msgstr ""
2280
 
2281
  #: models/Audits.php:289
2282
  msgid ""
2283
  "All the shares and likes that your fans will give your pages will contribute "
2284
+ "to the total number of shares from social media (social signals). When "
2285
+ "Google’s algorithm starts “seeing” that people share your pages on social "
2286
+ "media, it will consider that your site is becoming popular and will increase "
2287
+ "its rankings."
2288
  msgstr ""
2289
 
2290
  #: models/Audits.php:290
2369
  msgid ""
2370
  "How can we fix the Open Graph of the website? %s You need to make sure "
2371
  "you're going to fix the Open Graph image AS WELL AS all the other open graph "
2372
+ "elements. %s If you're on WordPress, you're easily getting all the settings "
2373
+ "you need from Squirrly SEO . Make sure you use it. %s Below, you can see "
2374
+ "the examples of open graph elements you need to implement in the <head> "
2375
+ "section of your page's code. Make sure you replace the elements inside "
2376
+ "content=\" \" with your own data: your own titles, own image URLs, etc. %s "
2377
+ "<meta property=“og:url” content=“{site}/product/expectation-marketing-"
2378
  "ebook/“ /> %s <meta property=“og:title” content=“Expectation Marketing "
2379
+ "[Book]” /> %s <meta property=“og:description” content=“If you`re wondering "
2380
+ "why your marketing strategy isn`t bringing the results you expected this is "
2381
+ "the right ebook for you. Expectation Marketing is about giving you an acti” /"
2382
+ "> %s <meta property=“og:type” content=“product” /> %s <meta property=“og:"
2383
+ "image” content=“{site}/image.jpg” /> %s <meta property=“og:image:width” "
2384
+ "content=“700” /> %s <meta property=“og:image:height” content=“536” /> %s "
2385
+ "<meta property=“og:image:type” content=“image/jpeg” /> %s <meta property=“og:"
2386
+ "site_namecontent=“Expectation Marketing” /> %s <meta property=“og:locale” "
2387
+ "content=“en” />%s"
2388
  msgstr ""
2389
 
2390
  #: models/Audits.php:319
2391
  msgid ""
2392
+ "Fixing this will improve Click Through Rates on Facebook, LinkedIN. "
2393
+ "Guaranteed. Make sure you use this to control how your pages look on social "
2394
+ "media when people share them."
2395
  msgstr ""
2396
 
2397
  #: models/Audits.php:320
2411
  msgid ""
2412
  "How can we fix the Twitter Cards of the website? %s You need to make sure "
2413
  "you're going to fix the Twitter Card image AS WELL AS all the other twitter "
2414
+ "card elements. %s If you're on WordPress, you're easily getting all the "
2415
+ "settings you need from Squirrly SEO. Make sure you use it. %s Below, you can "
2416
+ "see examples of twitter card elements you need to implement in the <head> "
2417
+ "section of your page's code. Make sure you replace the elements inside "
2418
+ "content=\" \" with your own data: your own titles, own image URLs, etc. %s "
2419
+ "<meta property=“twitter:url” content=“{site}/product/expectation-marketing-"
2420
+ "ebook/“ /> %s <meta property=“twitter:title” content=“Expectation Marketing "
2421
+ "[Book]” /> %s <meta property=“twitter:description” content=“If you`re "
2422
+ "wondering why your marketing strategy isn`t bringing the results you "
2423
+ "expected this is the right ebook for you. Expectation Marketing is about "
2424
+ "giving you an acti” /> %s <meta property=“twitter:image” content=“{site}/"
2425
+ "image.jpg” /> %s <meta property=“twitter:domain” content=“Expectation "
2426
+ "Marketing” /> %s <meta property=“twitter:card” content=“summary/>%s"
 
2427
  msgstr ""
2428
 
2429
  #: models/Audits.php:329
2466
  "coupon codes and links to your site) - hosts giveaways and contests (many "
2467
  "websites that will happily link to the contest page on your website) %s "
2468
  "Broken Link Building, using tools like Screaming Frog to help you find "
2469
+ "broken links.%s Use Squirrly SPY to check the sites which send links to your "
2470
+ "competitors or to other websites in your niche (or audience, or market): "
2471
+ "[link]https://www.squirrly.co/seo/spy/[/link] %s Many Squirrly users decided "
2472
+ "to purchase SPY reports and found out that they easily identified people "
2473
+ "from their industry who were easy to reach. This helped them secure new "
2474
+ "links from trust-worthy sites. %s"
2475
  msgstr ""
2476
 
2477
+ #: models/Audits.php:342 models/Audits.php:351
2478
  msgid ""
2479
  "Use the BackLinks Assistant [link]https://www.producthunt.com/upcoming/"
2480
+ "backlinks-assistant-by-squirrly[/link]. There are many other ways to "
2481
+ "increase the number of backlinks. Find more ideas in this resource: https://"
2482
+ "www.squirrly.co/how-to-improve-the-site-audit-score-given-by-squirrly-seo-"
2483
+ "plugin/. Send it to your team. Brainstorm items from our list which your "
2484
+ "team can start working on."
2485
  msgstr ""
2486
 
2487
  #: models/Audits.php:347
2523
  "broken links.%s"
2524
  msgstr ""
2525
 
2526
+ #: models/Audits.php:360
2527
+ msgid ""
2528
+ "Use the BackLinks Assistant [link]https://www.producthunt.com/upcoming/"
2529
+ "backlinks-assistant-by-squirrly[/link] . There are many other ways to "
2530
+ "increase the number of backlinks. Just check out the full documentation "
2531
+ "below. Send it to your team. Brainstorm items from our list which your team "
2532
+ "can start working on."
2533
+ msgstr ""
2534
+
2535
  #: models/Audits.php:361
2536
  msgid ""
2537
  "Find more blogs, forums, directories to add links there. Contribute to the "
2549
  #: models/Audits.php:369
2550
  #, php-format
2551
  msgid ""
2552
+ "How can we fix the No-Follow links of the website? %s You can find an "
2553
+ "extremely easy way to do this in the SEO Kit of Squirrly: [link]https://www."
2554
+ "squirrly.co/seo/kit/[/link] %s You can start doing this even if you don't "
2555
+ "have an advanced or complex SEO strategy for all your site's inner links. If "
2556
+ "you have pages in your SEO strategy that are super important (you NEED those "
2557
+ "pages to be found via search) make sure you add: <meta name=\"robots\" "
2558
+ "content=\"index, nofollow\" /> This ensures that Google considers this a "
2559
+ "final page. If many other pages link on to this page and this is the final "
2560
+ "one, it means that it is the most valuable resource. %s Identify links on "
2561
+ "your pages that are not important for you or for the purpose of the site "
2562
+ "itself. Maybe you're sending a link to chef Jamie Oliver's recipe for hot "
2563
+ "sauce. You should make sure that you add the No Follow tag to that link "
2564
+ "going out of your site, because you don't want Google to pass on link juice "
2565
+ "to Jaime Oliver. You'd give him a part of your SEO Authority and you don't "
2566
+ "want that. You should also add No-Follow tags to internal links from your "
2567
+ "very own site. Add no-follow to pages like \"/login\", \"/register\" \"/"
2568
+ "terms-of-use\", which are not important to be found via search engines. %s "
2569
+ "Add rel=\"nofollow\" to links inside your pages to fix this task. If you'd "
2570
+ "want to NoFollow your Sign In page you could do it like this: <a href="
2571
+ "\"signin.php\" rel=\"nofollow\">sign in</a>%s"
2572
  msgstr ""
2573
 
2574
  #: models/Audits.php:370
2602
  "from social media, google analytics and inbound links (backlinks to your own "
2603
  "site) %s You can follow the PRO Tips sections from Audit. %s Get more Buzz "
2604
  "on Social Media. Get More Traffic. Get More Sites to link back to your own "
2605
+ "site. That's how you increase your Authority.%s Read the Traffic section of "
2606
+ "the Audit for more fixes and ideas. Bringing more Traffic increases "
2607
+ "Authority. %s Read the Social Media ideas for getting your pages shared on "
2608
+ "social networks. In the SEO Audit from Squirrly. Get more shares and traffic "
2609
+ "from social media. That will help boost your overall Web Authority %s Use "
2610
+ "Focus Pages from Squirrly: everything we tell you there helps boost your "
2611
+ "authority: [link]https://plugin.squirrly.co/focus-pages/[/link] %s"
2612
  msgstr ""
2613
 
2614
  #: models/Audits.php:384
2615
  msgid ""
2616
+ "You can build up a solid Content Strategy using the Daily SEO Goals and our "
2617
+ "brand new Private SEO Consultant. In a Plugin. Powered by Machine Learning "
2618
+ "and Cloud Services: [link]https://plugin.squirrly.co/best-seo-goals/[/link] "
2619
+ "or you can start getting more BackLinks using the BackLinks Assistant "
2620
  "[link]https://www.producthunt.com/upcoming/backlinks-assistant-by-squirrly[/"
2621
  "link]."
2622
  msgstr ""
2639
  "of course). %s Increase your SEO rankings, get more shares on social media. "
2640
  "You can use tools like Social Squirrly to make sure you constantly promote "
2641
  "your pages, without doing any manual work. And without forgetting to keep "
2642
+ "posting them. [link]https://www.squirrly.co/social-media/tools-for-digital-"
2643
+ "marketing/[/link]%s"
2644
  msgstr ""
2645
 
2646
  #: models/Audits.php:394
2664
  "How can we fix the Domain Age of the website? %s While you certainly can't "
2665
  "go back and forth in time like the Flash, there are things you can do, like: "
2666
  "make sure your domain can be crawled by search engines. %s Ping your domain "
2667
+ "name as soon as possible using Google Search Console. Ask GSC asap to index "
2668
+ "your pages. Both by manual URL index and by placing the sitemaps generated "
2669
+ "by Squirrly. %s Get your website on Way Back Machine. [link]https://archive."
2670
+ "org/web/[/link] Archive.org even has a tool called Save Page Now which will "
2671
  "guarantee your entry into Way Back Machine.%s"
2672
  msgstr ""
2673
 
2734
  "user's home screens when they bookmark your pages."
2735
  msgstr ""
2736
 
2737
+ #: models/Audits.php:464 models/Audits.php:497 models/Audits.php:516
2738
+ #: models/Audits.php:618 models/focuspages/Audit.php:188
2739
+ #: models/focuspages/Audit.php:209 models/focuspages/Audit.php:230
2740
+ #: models/focuspages/Audit.php:251
2741
  msgid "URL"
2742
  msgstr ""
2743
 
2744
+ #: models/Audits.php:465
2745
  msgid "Visitors"
2746
  msgstr ""
2747
 
2748
+ #: models/Audits.php:466
2749
  msgid "Bounce"
2750
  msgstr ""
2751
 
2752
+ #: models/Audits.php:482
2753
  msgid "No traffic data found"
2754
  msgstr ""
2755
 
2756
+ #: models/Audits.php:498 models/Audits.php:517
2757
  msgid "Total"
2758
  msgstr ""
2759
 
2760
+ #: models/Audits.php:544
2761
  msgid "Facebook reactions"
2762
  msgstr ""
2763
 
2764
+ #: models/Audits.php:548
2765
  msgid "Facebook shares"
2766
  msgstr ""
2767
 
2768
+ #: models/Audits.php:552
2769
  msgid "Reddit shares"
2770
  msgstr ""
2771
 
2772
+ #: models/Audits.php:556
2773
  msgid "Pinterest shares"
2774
  msgstr ""
2775
 
2776
+ #: models/Audits.php:619
2777
  msgid "Value"
2778
  msgstr ""
2779
 
2780
+ #: models/Audits.php:686 view/Audits/Audit.php:142 view/Audits/Compare.php:162
2781
  msgid "PRO TIP"
2782
  msgstr ""
2783
 
2784
+ #: models/Audits.php:706
2785
  msgid "Requires Attention!"
2786
  msgstr ""
2787
 
2788
+ #: models/Audits.php:710
2789
+ msgid "Can be improved."
2790
  msgstr ""
2791
 
2792
+ #: models/Audits.php:772
2793
  msgid "not yet"
2794
  msgstr ""
2795
 
2797
  msgid "METAs"
2798
  msgstr ""
2799
 
2800
+ #: models/BulkSeo.php:18 view/Blocks/Snippet.php:93
2801
  msgid "Open Graph"
2802
  msgstr ""
2803
 
2804
+ #: models/BulkSeo.php:19 view/Blocks/Snippet.php:97
2805
  msgid "Twitter Card"
2806
  msgstr ""
2807
 
2808
+ #: models/BulkSeo.php:20 models/FocusPages.php:20 view/Blocks/Snippet.php:101
2809
  msgid "Visibility"
2810
  msgstr ""
2811
 
2824
  msgstr ""
2825
 
2826
  #: models/CheckSeo.php:39 models/CheckSeo.php:40
2827
+ #: models/bulkseo/Visibility.php:104 view/Blocks/Snippet.php:970
2828
  msgid "Discourage search engines from indexing this site"
2829
  msgstr ""
2830
 
4392
  "Pages (the ones where you see low CTR)"
4393
  msgstr ""
4394
 
4395
+ # @ squirrly-seo
4396
  #: models/CheckSeo.php:867
4397
+ #, fuzzy
4398
+ #| msgid "Squirrly settings"
4399
  msgid "Audit Score is Over 50%"
4400
+ msgstr "Squirrly Einstellungen"
4401
 
4402
  #: models/CheckSeo.php:868
4403
  msgid ""
4536
  "be nearly impossible for those pages to reach top positions on Google."
4537
  msgstr ""
4538
 
4539
+ # @ squirrly-seo
4540
  #: models/CheckSeo.php:945
4541
+ #, fuzzy
4542
+ #| msgid "Squirrly settings"
4543
  msgid "Audit Score is Over 70%"
4544
+ msgstr "Squirrly Einstellungen"
4545
 
4546
  #: models/CheckSeo.php:946
4547
  msgid ""
4753
  msgstr ""
4754
 
4755
  # @ squirrly-seo
4756
+ #: models/CheckSeo.php:1482
4757
  #, fuzzy
4758
  #| msgid "Could not send the email..."
4759
  msgid "Could not verify the frontend."
4760
  msgstr "Konnte E-Mail nicht senden ..."
4761
 
4762
+ #: models/CheckSeo.php:1848
4763
+ msgid "'Just another WordPress site'"
4764
+ msgstr ""
4765
+
4766
+ #: models/CheckSeo.php:1849
4767
  msgid "Just another WordPress site"
4768
  msgstr ""
4769
 
4770
+ #: models/CheckSeo.php:2021
4771
  #, php-format
4772
  msgid "Focus Page was not found (error %s)"
4773
  msgstr ""
4774
 
4775
+ #: models/CheckSeo.php:2022 models/CheckSeo.php:2066
4776
  msgid ""
4777
  "The way your WordPress site is currently hosted can affect the way Squirrly "
4778
  "SEO operates in order to retrieve and process data about your Focus Pages. "
4780
  "audits can be generated by our system."
4781
  msgstr ""
4782
 
4783
+ #: models/CheckSeo.php:2023 models/CheckSeo.php:2042
4784
  msgid ""
4785
  "Use a different browser to check if your Focus Page is visible. Whitelist "
4786
  "our crawler IP address (176.9.112.210) to allow our server to verify your "
4787
  "page so that you’ll receive a full audit."
4788
  msgstr ""
4789
 
4790
+ #: models/CheckSeo.php:2024 models/CheckSeo.php:2068
4791
  msgid "An error is preventing Squirrly from processing your Focus Page audits."
4792
  msgstr ""
4793
 
4794
+ #: models/CheckSeo.php:2031
4795
  #, php-format
4796
  msgid "Your Focus Page is redirected to another page (error %s)"
4797
  msgstr ""
4798
 
4799
+ #: models/CheckSeo.php:2032
4800
  #, php-format
4801
  msgid ""
4802
  "Right now, your Focus Page sends users and search engines to a different URL "
4808
  "operates."
4809
  msgstr ""
4810
 
4811
+ #: models/CheckSeo.php:2033
4812
  msgid ""
4813
  "Choose a page that does NOT redirect to a different page as your Focus Page. "
4814
  "Your Focus Page should have a single URL associated to it so that Squirrly "
4815
  "can serve you the best data."
4816
  msgstr ""
4817
 
4818
+ #: models/CheckSeo.php:2034
4819
  msgid "Make sure that your Focus Page is NOT redirected to a different page."
4820
  msgstr ""
4821
 
4822
+ #: models/CheckSeo.php:2040
4823
  #, php-format
4824
  msgid "Ensure your Focus Pages can be accessed (error %s)"
4825
  msgstr ""
4826
 
4827
+ #: models/CheckSeo.php:2041
4828
  #, php-format
4829
  msgid ""
4830
  "A server-side error is preventing Squirrly from being able to access and "
4834
  "page, which is a critical issue."
4835
  msgstr ""
4836
 
4837
+ #: models/CheckSeo.php:2043
4838
  msgid "A server-side error is preventing your Focus Pages from being accessed."
4839
  msgstr ""
4840
 
4841
+ #: models/CheckSeo.php:2048
4842
  #, php-format
4843
  msgid "Make sure your Focus Pages can be audited (error %s)"
4844
  msgstr ""
4845
 
4846
+ #: models/CheckSeo.php:2049
4847
  msgid ""
4848
  "Squirrly is unable to generate the audit for your Focus Page because it "
4849
  "can’t connect to your WordPress site’s server. Why? Your WordPress site’s "
4851
  "Squirrly’s IP address."
4852
  msgstr ""
4853
 
4854
+ #: models/CheckSeo.php:2050
4855
  msgid ""
4856
  "Check to see if your WordPress site’s server is offline. Whitelist our "
4857
  "crawler IP address (176.9.112.210) to allow our server to verify your page "
4858
  "so that you’ll receive a full audit."
4859
  msgstr ""
4860
 
4861
+ #: models/CheckSeo.php:2051 models/CheckSeo.php:2059
4862
  msgid ""
4863
  "An error prevents Squirrly from gathering critical data about your Focus "
4864
  "Page."
4865
  msgstr ""
4866
 
4867
+ #: models/CheckSeo.php:2056
4868
  msgid "Make sure your Focus Pages can be audited (firewall protection)"
4869
  msgstr ""
4870
 
4871
+ #: models/CheckSeo.php:2057
4872
  msgid ""
4873
  "Squirrly is unable to generate the audit for your Focus Page because it "
4874
  "can’t connect to your WordPress site’s server. Why? Your WordPress site’s "
4875
  "server has a firewall protection and is blocking Squirrly’s IP address."
4876
  msgstr ""
4877
 
4878
+ #: models/CheckSeo.php:2058 models/CheckSeo.php:2067
4879
  msgid ""
4880
  "Whitelist our crawler IP address (176.9.112.210) to allow our server to "
4881
  "verify your page so that you’ll receive a full audit."
4882
  msgstr ""
4883
 
4884
+ #: models/CheckSeo.php:2065
4885
  #, php-format
4886
  msgid "Focus Page could not be verified (error: %s)"
4887
  msgstr ""
4888
 
4889
+ # @ squirrly-seo
4890
+ #: models/FocusPages.php:21 models/bulkseo/Metas.php:139
4891
  #: models/focuspages/Clicks.php:64 models/focuspages/Content.php:88
4892
  #: models/focuspages/Ctr.php:64 models/focuspages/Image.php:80
4893
+ #: models/focuspages/Impressions.php:64 models/focuspages/Keyword.php:97
4894
+ #: models/focuspages/Keyword.php:100 models/focuspages/Snippet.php:151
4895
+ #: models/focuspages/Strategy.php:103 view/Ranking/Gscsync.php:31
4896
+ #: view/Ranking/Rankings.php:216 view/Ranking/Rankings.php:353
4897
+ #: view/Research/Briefcase.php:107 view/Research/Briefcase.php:290
 
4898
  #: view/Research/History.php:29 view/Research/HistoryDetails.php:7
4899
+ #: view/Research/Research.php:198 view/Research/Suggested.php:28
4900
+ #, fuzzy
4901
+ #| msgid "Tips: 2-4 keywords"
4902
  msgid "Keyword"
4903
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
4904
 
4905
  #: models/FocusPages.php:22
4906
  msgid "Strategy"
4962
  msgstr ""
4963
 
4964
  #: models/FocusPages.php:37 view/Ranking/Gscsync.php:33
4965
+ #: view/Ranking/Rankings.php:367
4966
  msgid "Impressions"
4967
  msgstr ""
4968
 
4969
  #: models/FocusPages.php:38 view/Ranking/Gscsync.php:32
4970
+ #: view/Ranking/Rankings.php:373
4971
  msgid "Clicks"
4972
  msgstr ""
4973
 
4974
+ # @ squirrly-seo
4975
  #: models/Ico.php:43
4976
+ #, fuzzy
4977
+ #| msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
4978
  msgid "File type error: Only ICO, JPEG, JPG, GIF or PNG files are allowed."
4979
+ msgstr "Dateityp Fehler: Nur JPEG, JPG, GIF oder PNG-Dateien sind erlaubt."
4980
 
4981
  # @ squirrly-seo
4982
+ #: models/Ico.php:52
4983
+ #, fuzzy
4984
+ #| msgid "Could not send the email..."
 
 
 
4985
  msgid "Delete error: Could not delete the old favicon."
4986
+ msgstr "Konnte E-Mail nicht senden ..."
4987
 
4988
  # @ squirrly-seo
4989
+ #: models/Ico.php:59
4990
+ #, fuzzy
4991
+ #| msgid "Could not send the email..."
4992
  msgid "Upload error: Could not upload the favicon."
4993
+ msgstr "Konnte E-Mail nicht senden ..."
4994
 
4995
+ #: models/Ico.php:65
 
4996
  msgid "Permission error: Could not change the favicon permissions."
4997
  msgstr ""
4998
 
4999
+ #: models/Ico.php:86
 
5000
  msgid ""
5001
  "ICO Error: Could not create the ICO from file. Try with another file type."
5002
  msgstr ""
5003
 
5004
+ #: models/Ico.php:103
 
5005
  msgid "The favicon has been updated."
5006
  msgstr ""
5007
 
5008
+ #: models/Menu.php:110 models/Menu.php:381
5009
  msgid "First Step"
5010
  msgstr ""
5011
 
5012
+ #: models/Menu.php:110 models/Menu.php:111 models/Menu.php:257
5013
+ #: view/Blocks/Toolbar.php:44
5014
  msgid "Overview"
5015
  msgstr ""
5016
 
 
 
 
 
5017
  # @ squirrly-seo
5018
+ #: models/Menu.php:118 models/Menu.php:119 view/Research/Briefcase.php:119
5019
  #, fuzzy
5020
  #| msgid "Do the research"
5021
  msgid "Research"
5022
  msgstr "Recherchieren"
5023
 
5024
+ #: models/Menu.php:126 models/Menu.php:127 view/Blocks/Features.php:34
 
 
 
 
 
 
 
5025
  msgid "Live Assistant"
5026
  msgstr ""
5027
 
5028
+ # @ squirrly-seo
5029
+ #: models/Menu.php:134
5030
+ #, fuzzy
5031
+ #| msgid "Squirrly LIVE SEO assistant"
 
5032
  msgid "All Snippets"
5033
+ msgstr "Squirrly LIVE SEO-Assistent"
5034
 
5035
+ #: models/Menu.php:135
5036
+ msgid "Bulk Seo"
5037
  msgstr ""
5038
 
5039
+ # @ squirrly-seo
5040
+ #: models/Menu.php:142 models/Menu.php:143
5041
+ #, fuzzy
5042
+ #| msgid "Squirrly settings"
5043
  msgid "SEO Settings"
5044
+ msgstr "Squirrly Einstellungen"
 
 
 
 
5045
 
5046
+ # @ squirrly-seo
5047
+ #: models/Menu.php:150 models/Menu.php:151 models/Menu.php:237
5048
+ #: view/Blocks/Features.php:7 view/FocusPages/Pagelist.php:23
5049
+ #, fuzzy
5050
+ #| msgid "Squirrly settings"
5051
  msgid "Focus Pages"
5052
+ msgstr "Squirrly Einstellungen"
 
 
 
 
5053
 
5054
+ # @ squirrly-seo
5055
+ #: models/Menu.php:158 models/Menu.php:159 view/Blocks/Features.php:187
5056
+ #, fuzzy
5057
+ #| msgid "automatically"
5058
  msgid "SEO Audit"
5059
+ msgstr "automatisch"
 
 
 
 
5060
 
5061
+ # @ squirrly-seo
5062
+ #: models/Menu.php:166 models/Menu.php:167 models/Menu.php:277
5063
+ #, fuzzy
5064
+ #| msgid "Squirrly settings"
5065
  msgid "Rankings"
5066
+ msgstr "Squirrly Einstellungen"
 
 
 
 
5067
 
5068
+ # @ squirrly-seo
5069
+ #: models/Menu.php:191
5070
+ #, fuzzy
5071
+ #| msgid "Tips: 2-4 keywords"
5072
  msgid "Find Keywords"
5073
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
5074
 
5075
  # @ squirrly-seo
5076
+ #: models/Menu.php:192
5077
  #, fuzzy
5078
  #| msgid "Do the research"
5079
  msgid "do a keyword research"
5080
  msgstr "Recherchieren"
5081
 
5082
+ #: models/Menu.php:197 view/Research/Briefcase.php:18
5083
  msgid "Briefcase"
5084
  msgstr ""
5085
 
5086
+ # @ squirrly-seo
5087
+ #: models/Menu.php:198
5088
+ #, fuzzy
5089
+ #| msgid "Enter even more keywords."
5090
  msgid "save the best Keywords"
5091
+ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5092
 
5093
+ #: models/Menu.php:203 view/Research/Briefcase.php:30
5094
  msgid "Labels"
5095
  msgstr ""
5096
 
5097
  # @ squirrly-seo
5098
+ #: models/Menu.php:204
5099
  #, fuzzy
5100
  #| msgid "Tips: 2-4 keywords"
5101
  msgid "group keywords"
5102
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
5103
 
5104
+ #: models/Menu.php:209 view/Research/Suggested.php:15
5105
  msgid "Suggested"
5106
  msgstr ""
5107
 
5108
+ # @ squirrly-seo
5109
+ #: models/Menu.php:210
5110
+ #, fuzzy
5111
+ #| msgid "Enter even more keywords."
5112
  msgid "better keywords found"
5113
+ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5114
 
5115
+ #: models/Menu.php:215 view/Research/History.php:16
5116
  msgid "History"
5117
  msgstr ""
5118
 
5119
+ # @ squirrly-seo
5120
+ #: models/Menu.php:216
5121
+ #, fuzzy
5122
+ #| msgid "Do the research"
5123
  msgid "keyword research history"
5124
+ msgstr "Recherchieren"
5125
 
5126
+ #: models/Menu.php:223
5127
  msgid "Optimize Posts"
5128
  msgstr ""
5129
 
5130
+ #: models/Menu.php:224
5131
  msgid "use the Live Assistant"
5132
  msgstr ""
5133
 
5134
+ # @ squirrly-seo
5135
+ #: models/Menu.php:229 models/Menu.php:269 models/Menu.php:289
5136
+ #, fuzzy
5137
+ #| msgid "Squirrly settings"
5138
  msgid "Settings"
5139
+ msgstr "Squirrly Einstellungen"
5140
 
5141
+ #: models/Menu.php:230
5142
  msgid "live assistant setup"
5143
  msgstr ""
5144
 
5145
+ #: models/Menu.php:238
5146
  msgid "all my focus pages"
5147
  msgstr ""
5148
 
5149
+ # @ squirrly-seo
5150
+ #: models/Menu.php:249 models/Menu.php:263
5151
+ #, fuzzy
5152
+ #| msgid "Squirrly settings"
5153
  msgid "Add New Page"
5154
+ msgstr "Squirrly Einstellungen"
5155
 
5156
+ #: models/Menu.php:250
5157
  msgid "add page in focus pages"
5158
  msgstr ""
5159
 
5160
+ #: models/Menu.php:258
5161
  msgid "See all the SEO audits"
5162
  msgstr ""
5163
 
5164
+ #: models/Menu.php:264
5165
  msgid "add page in audit"
5166
  msgstr ""
5167
 
5168
  # @ squirrly-seo
5169
+ #: models/Menu.php:270
5170
  #, fuzzy
5171
  #| msgid "Squirrly settings"
5172
  msgid "Audit settings"
5173
  msgstr "Squirrly Einstellungen"
5174
 
5175
+ # @ squirrly-seo
5176
+ #: models/Menu.php:278
5177
+ #, fuzzy
5178
+ #| msgid "Google %sAnalytics ID%s`:"
5179
  msgid "See Google ranking"
5180
+ msgstr "Google %sAnalytics ID%s`:"
5181
 
5182
+ # @ squirrly-seo
5183
+ #: models/Menu.php:283
5184
+ #, fuzzy
5185
+ #| msgid "Tips: 2-4 keywords"
5186
  msgid "Add Keywords"
5187
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
5188
 
5189
+ # @ squirrly-seo
5190
+ #: models/Menu.php:284
5191
+ #, fuzzy
5192
+ #| msgid "Enter even more keywords."
5193
  msgid "Add briefcase keywords"
5194
+ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5195
 
5196
  # @ squirrly-seo
5197
+ #: models/Menu.php:290
5198
  #, fuzzy
5199
  #| msgid "Squirrly settings"
5200
  msgid "Ranking settings"
5201
  msgstr "Squirrly Einstellungen"
5202
 
5203
+ # @ squirrly-seo
5204
+ #: models/Menu.php:299 view/BulkSeo/Bulkseo.php:29
5205
+ #, fuzzy
5206
+ #| msgid "Squirrly settings"
5207
  msgid "Bulk SEO"
5208
+ msgstr "Squirrly Einstellungen"
5209
 
5210
+ #: models/Menu.php:300
5211
  msgid "optimize all pages"
5212
  msgstr ""
5213
 
5214
  # @ squirrly-seo
5215
+ #: models/Menu.php:308
5216
  #, fuzzy
5217
  #| msgid "automatically"
5218
  msgid "Automation"
5219
  msgstr "automatisch"
5220
 
5221
+ #: models/Menu.php:309
5222
  msgid "patterns & automation"
5223
  msgstr ""
5224
 
5225
+ # @ squirrly-seo
5226
+ #: models/Menu.php:314 view/SeoSettings/Metas.php:31
5227
+ #, fuzzy
5228
+ #| msgid "SEO Software"
5229
  msgid "SEO Metas"
5230
+ msgstr "SEO Software"
5231
 
5232
+ #: models/Menu.php:315
5233
  msgid "required on-page metas"
5234
  msgstr ""
5235
 
5236
+ #: models/Menu.php:320
5237
  msgid "JSON LD"
5238
  msgstr ""
5239
 
5240
+ #: models/Menu.php:321
5241
  msgid "google structured data"
5242
  msgstr ""
5243
 
5244
+ #: models/Menu.php:326 view/SeoSettings/Social.php:27
5245
  msgid "Social Media"
5246
  msgstr ""
5247
 
5248
+ #: models/Menu.php:327
5249
  msgid "social share options"
5250
  msgstr ""
5251
 
5252
+ #: models/Menu.php:332 view/SeoSettings/Tracking.php:27
5253
  msgid "Tracking Tools"
5254
  msgstr ""
5255
 
5256
+ # @ squirrly-seo
5257
+ #: models/Menu.php:333
5258
+ #, fuzzy
5259
+ #| msgid "Google %sAnalytics ID%s`:"
5260
  msgid "google analytics, pixel, etc."
5261
+ msgstr "Google %sAnalytics ID%s`:"
5262
 
5263
+ #: models/Menu.php:338
5264
  msgid "Connection"
5265
  msgstr ""
5266
 
5267
+ #: models/Menu.php:339
5268
  msgid "webmaster tools"
5269
  msgstr ""
5270
 
5271
+ #: models/Menu.php:344 view/SeoSettings/Sitemap.php:28
5272
  msgid "Sitemap XML"
5273
  msgstr ""
5274
 
5275
+ #: models/Menu.php:345
5276
  msgid "setup the sitemap"
5277
  msgstr ""
5278
 
5279
+ #: models/Menu.php:350
5280
  msgid "Robots.txt"
5281
  msgstr ""
5282
 
5283
+ #: models/Menu.php:351
5284
  msgid "search engine filters"
5285
  msgstr ""
5286
 
5287
+ #: models/Menu.php:356
5288
  msgid "Favicon"
5289
  msgstr ""
5290
 
5291
+ #: models/Menu.php:357
5292
  msgid "add website icon"
5293
  msgstr ""
5294
 
5295
+ #: models/Menu.php:362
5296
  msgid "Import/Export"
5297
  msgstr ""
5298
 
5299
+ #: models/Menu.php:363
5300
  msgid "import & export SEO"
5301
  msgstr ""
5302
 
5303
+ # @ squirrly-seo
5304
+ #: models/Menu.php:372
5305
+ #, fuzzy
5306
+ #| msgid "Squirrly settings"
5307
  msgid "Advanced"
5308
+ msgstr "Squirrly Einstellungen"
5309
 
5310
  # @ squirrly-seo
5311
+ #: models/Menu.php:373
5312
  #, fuzzy
5313
  #| msgid "Squirrly settings"
5314
  msgid "Advanced SEO Settings"
5315
  msgstr "Squirrly Einstellungen"
5316
 
5317
+ #: models/Menu.php:382
5318
  msgid "all the SEO features"
5319
  msgstr ""
5320
 
5321
+ #: models/Menu.php:387 view/Onboarding/Step3.php:52
5322
  msgid "Import"
5323
  msgstr ""
5324
 
5325
+ #: models/Menu.php:388
5326
  msgid "import settings and SEO"
5327
  msgstr ""
5328
 
5329
+ #: models/Menu.php:393 view/Onboarding/Step4.php:11
5330
  msgid "Final Step"
5331
  msgstr ""
5332
 
5333
+ # @ squirrly-seo
5334
+ #: models/Menu.php:394
5335
+ #, fuzzy
5336
+ #| msgid "Squirrly settings"
5337
  msgid "start using Squirrly SEO"
5338
+ msgstr "Squirrly Einstellungen"
5339
 
5340
+ #: models/Menu.php:402
5341
  msgid "Blogging"
5342
  msgstr ""
5343
 
5344
+ #: models/Menu.php:403
5345
  msgid "Blogging overwiew"
5346
  msgstr ""
5347
 
5348
+ #: models/Menu.php:408
5349
  msgid "Traffic"
5350
  msgstr ""
5351
 
5352
+ #: models/Menu.php:409
5353
  msgid "Weekly website traffic"
5354
  msgstr ""
5355
 
5356
+ #: models/Menu.php:414
5357
  msgid "SEO"
5358
  msgstr ""
5359
 
5360
+ #: models/Menu.php:415
5361
  msgid "On-Page optimization"
5362
  msgstr ""
5363
 
5364
+ #: models/Menu.php:420
5365
  msgid "Social"
5366
  msgstr ""
5367
 
5368
+ #: models/Menu.php:421
5369
  msgid "Social signals and shares"
5370
  msgstr ""
5371
 
5372
+ #: models/Menu.php:426
5373
  msgid "Links"
5374
  msgstr ""
5375
 
5376
+ #: models/Menu.php:427
5377
  msgid "Backlinks and Innerlinks"
5378
  msgstr ""
5379
 
5380
+ #: models/Menu.php:432 models/focuspages/Authority.php:59
5381
  msgid "Authority"
5382
  msgstr ""
5383
 
5384
+ #: models/Menu.php:433
5385
  msgid "Website Off-Page score"
5386
  msgstr ""
5387
 
5519
  msgstr ""
5520
 
5521
  #: models/Post.php:262 models/focuspages/Snippet.php:89
5522
+ #: models/focuspages/Snippet.php:219 models/focuspages/Snippet.php:241
5523
+ #: view/Audits/Addpage.php:132 view/Blocks/Snippet.php:172
5524
+ #: view/Blocks/Snippet.php:577 view/Blocks/Snippet.php:835
5525
  #: view/BulkSeo/Bulkseo.php:143 view/FocusPages/Addpage.php:132
5526
+ #: view/SeoSettings/Automation.php:125 view/SeoSettings/Metas.php:167
5527
  msgid "Title"
5528
  msgstr ""
5529
 
5617
  "description of the image. The Alternative Text field of the image."
5618
  msgstr ""
5619
 
 
 
 
 
5620
  #: models/PostsList.php:24
5621
  msgid "Optimize it with Squirrly Live Assistant"
5622
  msgstr ""
5623
 
5624
  #: models/PostsList.php:48 models/PostsList.php:74
5625
+ msgid "Snippet optimized"
5626
  msgstr ""
5627
 
5628
  #: models/PostsList.php:48 models/PostsList.php:74
5633
  msgid "Can't get snippet data"
5634
  msgstr ""
5635
 
5636
+ #: models/PostsList.php:55 models/PostsList.php:80 view/Blocks/Snippet.php:134
5637
  msgid "Edit Snippet"
5638
  msgstr ""
5639
 
5673
  msgid "Couldn't find the page"
5674
  msgstr "Konnte E-Mail nicht senden ..."
5675
 
5676
+ #: models/Snippet.php:396 models/Snippet.php:408
5677
  msgid "No Polylang translation for this post."
5678
  msgstr ""
5679
 
5680
+ #: models/abstract/Assistant.php:133
5681
  msgid "We are gathering data for this category"
5682
  msgstr ""
5683
 
5684
+ #: models/abstract/Assistant.php:136
5685
+ msgid ""
5686
+ "Congratulations for ranking with this keyword, but it will require special "
5687
+ "attention from you to keep it within TOP 10 positions"
5688
+ msgstr ""
5689
+
5690
+ #: models/abstract/Assistant.php:179
5691
  msgid "Not enough data to process this task"
5692
  msgstr ""
5693
 
5694
+ #: models/abstract/Assistant.php:183 view/Blocks/Snippet.php:309
5695
  msgid "Current"
5696
  msgstr ""
5697
 
5698
+ #: models/bulkseo/Metas.php:57
5699
  msgid "Title not empty"
5700
  msgstr ""
5701
 
5702
+ #: models/bulkseo/Metas.php:58 view/Blocks/Snippet.php:188
5703
+ #: view/Blocks/Snippet.php:593 view/Blocks/Snippet.php:851
5704
  msgid "Current Title"
5705
  msgstr ""
5706
 
5707
+ #: models/bulkseo/Metas.php:60
5708
  #, php-format
5709
  msgid ""
5710
  "The title for this URL must not be empty. %s Write a title for this page. "
5713
  "more clicks you can get when people find your page on search engines."
5714
  msgstr ""
5715
 
5716
+ # @ squirrly-seo
5717
+ #: models/bulkseo/Metas.php:63
5718
+ #, fuzzy, php-format
5719
+ #| msgid "Tips: Length 10-70 chars"
5720
  msgid "Title up to %s chars"
5721
+ msgstr "Tipp: Länge 10-70 Charaktere"
5722
 
5723
+ #: models/bulkseo/Metas.php:64
5724
  msgid "Current Title Length"
5725
  msgstr ""
5726
 
5727
+ #: models/bulkseo/Metas.php:65 models/bulkseo/Metas.php:83
5728
+ #: models/bulkseo/Opengraph.php:84 models/bulkseo/Opengraph.php:94
5729
+ #: models/bulkseo/Twittercard.php:80 models/bulkseo/Twittercard.php:90
5730
  msgid "chars"
5731
  msgstr ""
5732
 
5733
+ #: models/bulkseo/Metas.php:66 models/bulkseo/Opengraph.php:85
5734
+ #: models/bulkseo/Twittercard.php:81
5735
  #, php-format
5736
  msgid ""
5737
  "Title has to be longer than %s chars and up to %s chars. %s You can change "
5738
  "the title max length from %sSEO Settings > Automation%s."
5739
  msgstr ""
5740
 
5741
+ # @ squirrly-seo
5742
+ #: models/bulkseo/Metas.php:69 models/focuspages/Snippet.php:100
5743
+ #, fuzzy
5744
+ #| msgid "Do the research"
5745
  msgid "Keyword in title"
5746
+ msgstr "Recherchieren"
5747
 
5748
  # @ squirrly-seo
5749
+ #: models/bulkseo/Metas.php:70 models/bulkseo/Metas.php:88
5750
  #, fuzzy
5751
+ #| msgid "Tips: 2-4 keywords"
5752
+ msgid "Snippet Keyword"
5753
+ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
5754
 
5755
  # @ squirrly-seo
5756
+ #: models/bulkseo/Metas.php:71 models/bulkseo/Metas.php:89
5757
  #, fuzzy
5758
  #| msgid "Tips: 2-4 keywords"
5759
  msgid "no keywords"
5760
  msgstr "Tipp: Länge 2-4 Schlüsselwörter"
5761
 
5762
+ #: models/bulkseo/Metas.php:72 models/focuspages/Snippet.php:103
5763
  #, php-format
5764
  msgid ""
5765
  "Your keyword must be present in the title of the page. %s It's a very "
5771
  "VectorWatch\" would be a much better choice for a title."
5772
  msgstr ""
5773
 
5774
+ #: models/bulkseo/Metas.php:75
5775
  msgid "Description not empty"
5776
  msgstr ""
5777
 
5778
+ #: models/bulkseo/Metas.php:76 view/Blocks/Snippet.php:240
5779
+ #: view/Blocks/Snippet.php:637 view/Blocks/Snippet.php:895
5780
  msgid "Current Description"
5781
  msgstr ""
5782
 
5783
+ #: models/bulkseo/Metas.php:78
5784
  #, php-format
5785
  msgid ""
5786
  "Meta descriptions are important for SEO on multiple search engines. %s You "
5789
  "on search engines."
5790
  msgstr ""
5791
 
5792
+ #: models/bulkseo/Metas.php:81
5793
  #, php-format
5794
  msgid "Description up to %s chars"
5795
  msgstr ""
5796
 
5797
+ #: models/bulkseo/Metas.php:82
5798
  msgid "Current Description Length"
5799
  msgstr ""
5800
 
5801
+ #: models/bulkseo/Metas.php:84 models/bulkseo/Opengraph.php:95
5802
+ #: models/bulkseo/Twittercard.php:91
5803
  #, php-format
5804
  msgid ""
5805
  "Description has to be longer than %s chars and up to %s chars. %s You can "
5806
  "change the description max length from %sSEO Settings > Automation%s."
5807
  msgstr ""
5808
 
5809
+ #: models/bulkseo/Metas.php:87 models/focuspages/Snippet.php:106
5810
  msgid "Keyword in description"
5811
  msgstr ""
5812
 
5813
+ #: models/bulkseo/Metas.php:90
5814
  #, php-format
5815
  msgid ""
5816
  "Same as with the title task. %s If a user reads the description of your page "
5822
  "lot about this, because that's what people want to find on the search engine."
5823
  msgstr ""
5824
 
5825
+ # @ squirrly-seo
5826
+ #: models/bulkseo/Metas.php:93
5827
+ #, fuzzy
5828
+ #| msgid "Enter even more keywords."
5829
  msgid "Meta Keywords (2-4 Words)"
5830
+ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5831
 
5832
  # @ squirrly-seo
5833
+ #: models/bulkseo/Metas.php:95
5834
  #, fuzzy
5835
  #| msgid "Enter even more keywords."
5836
  msgid "no meta keywords"
5837
  msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5838
 
5839
+ #: models/bulkseo/Metas.php:96
5840
  msgid ""
5841
  "Even if Meta keywords are not mandatory for Google, it's important for other "
5842
  "search engines to find this meta and to index your post for these keywords."
5843
  msgstr ""
5844
 
5845
+ #: models/bulkseo/Metas.php:100
5846
  msgid "Current Link"
5847
  msgstr ""
5848
 
5849
+ #: models/bulkseo/Metas.php:102
5850
  #, php-format
5851
  msgid ""
5852
  "You don't have to set any canonical link if your post is not copied from "
5856
  "gets indexed and ranked."
5857
  msgstr ""
5858
 
5859
+ #: models/bulkseo/Metas.php:111
5860
  msgid "Some Squirrly Metas are deactivated."
5861
  msgstr ""
5862
 
5863
+ #: models/bulkseo/Metas.php:116
5864
  msgid ""
5865
  "Some Squirrly Metas are not set correctly. Click to open the Assistant in "
5866
  "the right sidebar and follow the instructions."
5867
  msgstr ""
5868
 
5869
+ # @ squirrly-seo
5870
+ #: models/bulkseo/Metas.php:121
5871
+ #, fuzzy
5872
+ #| msgid "<< Leave it automatically"
5873
  msgid "Some Squirrly Metas are generated automatically."
5874
+ msgstr "<< Lass es automatisch"
5875
 
5876
+ #: models/bulkseo/Metas.php:124
5877
  msgid "All Squirrly Metas are customized and set correctly."
5878
  msgstr ""
5879
 
5880
+ #: models/bulkseo/Metas.php:135 models/bulkseo/Opengraph.php:137
5881
+ #: models/bulkseo/Twittercard.php:133 models/bulkseo/Visibility.php:69
5882
+ #: models/focuspages/Accuracy.php:34 models/focuspages/Audit.php:143
5883
  #: models/focuspages/Authority.php:33 models/focuspages/Backlinks.php:46
5884
  #: models/focuspages/Clicks.php:56 models/focuspages/Content.php:75
5885
  #: models/focuspages/Ctr.php:56 models/focuspages/Image.php:74
5886
  #: models/focuspages/Impressions.php:56 models/focuspages/Indexability.php:89
5887
+ #: models/focuspages/Innerlinks.php:64 models/focuspages/Keyword.php:73
5888
+ #: models/focuspages/Length.php:53 models/focuspages/Nofollow.php:65
5889
+ #: models/focuspages/Onpage.php:80 models/focuspages/Ranking.php:35
5890
  #: models/focuspages/Snippet.php:145 models/focuspages/Social.php:56
5891
+ #: models/focuspages/Strategy.php:97 models/focuspages/Traffic.php:95
5892
  msgid "Current URL"
5893
  msgstr ""
5894
 
5895
  # @ squirrly-seo
5896
+ #: models/bulkseo/Metas.php:141
5897
  #, fuzzy
5898
  #| msgid "Enter even more keywords."
5899
  msgid "No Meta Keyword Found"
5900
  msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
5901
 
5902
+ #: models/bulkseo/Metas.php:157 models/bulkseo/Metas.php:193
5903
+ #: models/bulkseo/Metas.php:226 models/bulkseo/Metas.php:270
5904
+ #: models/bulkseo/Metas.php:306 models/bulkseo/Metas.php:339
5905
+ #: models/bulkseo/Metas.php:387 models/bulkseo/Metas.php:426
5906
+ #: models/bulkseo/Opengraph.php:151 models/bulkseo/Opengraph.php:187
5907
+ #: models/bulkseo/Opengraph.php:219 models/bulkseo/Opengraph.php:255
5908
+ #: models/bulkseo/Opengraph.php:291 models/bulkseo/Twittercard.php:147
5909
+ #: models/bulkseo/Twittercard.php:183 models/bulkseo/Twittercard.php:215
5910
+ #: models/bulkseo/Twittercard.php:251 models/bulkseo/Twittercard.php:287
5911
  #: models/bulkseo/Visibility.php:83 models/bulkseo/Visibility.php:122
5912
  #: models/bulkseo/Visibility.php:155
5913
  msgid "Squirrly Snippet is deactivated from this post."
5914
  msgstr ""
5915
 
5916
+ #: models/bulkseo/Metas.php:161 models/bulkseo/Metas.php:197
5917
+ #: models/bulkseo/Metas.php:230 models/bulkseo/Metas.php:274
5918
+ #: models/bulkseo/Metas.php:310 models/bulkseo/Metas.php:343
5919
+ #: models/bulkseo/Metas.php:391 models/bulkseo/Metas.php:430
5920
  #, php-format
5921
  msgid ""
5922
  "SEO Metas for this post type are deactivated from %sSEO Settings > Automation"
5923
  "%s."
5924
  msgstr ""
5925
 
5926
+ #: models/bulkseo/Metas.php:165 models/bulkseo/Metas.php:201
5927
+ #: models/bulkseo/Metas.php:234
5928
  #, php-format
5929
  msgid "Meta Title is deactivated from %sSEO Settings > Metas%s."
5930
  msgstr ""
5931
 
5932
+ #: models/bulkseo/Metas.php:169 models/bulkseo/Metas.php:205
5933
+ #: models/bulkseo/Metas.php:238 models/bulkseo/Metas.php:282
5934
+ #: models/bulkseo/Metas.php:318 models/bulkseo/Metas.php:351
5935
+ #: models/bulkseo/Metas.php:395 models/bulkseo/Metas.php:438
5936
  #, php-format
5937
  msgid "SEO Metas is deactivated from %sSEO Settings > Metas%s."
5938
  msgstr ""
5939
 
5940
  # @ squirrly-seo
5941
+ #: models/bulkseo/Metas.php:178 models/bulkseo/Metas.php:214
5942
+ #: models/bulkseo/Opengraph.php:172 models/bulkseo/Opengraph.php:208
5943
+ #: models/bulkseo/Twittercard.php:168 models/bulkseo/Twittercard.php:204
5944
  #, fuzzy
5945
  #| msgid "<< Leave it automatically"
5946
  msgid "Title is generated automatically."
5947
  msgstr "<< Lass es automatisch"
5948
 
5949
+ #: models/bulkseo/Metas.php:242 models/bulkseo/Metas.php:355
5950
+ #: models/bulkseo/Metas.php:399
5951
  #, php-format
5952
  msgid "Meta Keywords is deactivated from %sSEO Settings > Metas%s."
5953
  msgstr ""
5954
 
5955
+ #: models/bulkseo/Metas.php:278 models/bulkseo/Metas.php:314
5956
+ #: models/bulkseo/Metas.php:347
5957
  #, php-format
5958
  msgid "Meta Description is deactivated from %sSEO Settings > Metas%s."
5959
  msgstr ""
5960
 
5961
+ # @ squirrly-seo
5962
+ #: models/bulkseo/Metas.php:291 models/bulkseo/Metas.php:328
5963
+ #: models/bulkseo/Opengraph.php:240 models/bulkseo/Opengraph.php:276
5964
+ #: models/bulkseo/Twittercard.php:236 models/bulkseo/Twittercard.php:272
5965
+ #, fuzzy
5966
+ #| msgid "<< Leave it automatically"
5967
  msgid "Description is generated automatically."
5968
+ msgstr "<< Lass es automatisch"
5969
 
5970
+ #: models/bulkseo/Metas.php:434
5971
  #, php-format
5972
  msgid "Meta Canonical is deactivated from %sSEO Settings > Metas%s."
5973
  msgstr ""
5974
 
5975
+ #: models/bulkseo/Opengraph.php:78
5976
  msgid "OG title not empty"
5977
  msgstr ""
5978
 
5979
+ #: models/bulkseo/Opengraph.php:80
5980
  #, php-format
5981
  msgid ""
5982
  "You need to have an Open Graph title for this post. %s It will help you "
5984
  "LinkedIN and other social networks. %s It's also important for SEO purposes."
5985
  msgstr ""
5986
 
5987
+ #: models/bulkseo/Opengraph.php:83
5988
  #, php-format
5989
  msgid "OG title up to %s chars"
5990
  msgstr ""
5991
 
5992
+ #: models/bulkseo/Opengraph.php:88
5993
  msgid "OG description not empty"
5994
  msgstr ""
5995
 
5996
+ #: models/bulkseo/Opengraph.php:90
5997
  #, php-format
5998
  msgid ""
5999
  "You need to have an Open Graph description for this post. %s It will help "
6001
  "LinkedIN and other social networks. %s It's also important for SEO purposes."
6002
  msgstr ""
6003
 
6004
+ #: models/bulkseo/Opengraph.php:93
6005
  #, php-format
6006
  msgid "OG description up to %s chars"
6007
  msgstr ""
6008
 
6009
+ #: models/bulkseo/Opengraph.php:98 view/SeoSettings/Metas.php:194
6010
  msgid "OG Image"
6011
  msgstr ""
6012
 
6013
+ #: models/bulkseo/Opengraph.php:99 models/bulkseo/Twittercard.php:95
6014
  msgid "(featured image)"
6015
  msgstr ""
6016
 
6017
+ #: models/bulkseo/Opengraph.php:100
6018
  #, php-format
6019
  msgid ""
6020
  "Set a good looking image for your URL. It needs to look good in Facebook and "
6022
  "attract more clicks to your site."
6023
  msgstr ""
6024
 
6025
+ # @ squirrly-seo
6026
+ #: models/bulkseo/Opengraph.php:114
6027
+ #, fuzzy
6028
+ #| msgid "<< Leave it automatically"
6029
  msgid "Open Graph is deactivated."
6030
+ msgstr "<< Lass es automatisch"
6031
 
6032
+ #: models/bulkseo/Opengraph.php:119
6033
  msgid ""
6034
  "Open Graph is not set correctly. Click to open the Assistant in the right "
6035
  "sidebar and follow the instructions."
6036
  msgstr ""
6037
 
6038
  # @ squirrly-seo
6039
+ #: models/bulkseo/Opengraph.php:124
6040
  #, fuzzy
6041