WP Meta SEO - Version 1.2.0

Version Description

  • Change language to po/mo files
  • Include .pot file and French language
  • Setting for home page meta
  • Bigger edit meta boxes
  • Update icon of notification in meta view
Download this release

Release Info

Developer JoomUnited
Plugin Icon 128x128 WP Meta SEO
Version 1.2.0
Comparing to
See all releases

Code changes from version 1.1.0 to 1.2.0

css/style.css CHANGED
@@ -203,7 +203,7 @@ a.info .tooltip
203
  }
204
 
205
  .opt-info-warning{
206
- background:url('../img/warning-25x25.png') no-repeat scroll 1px 5px;
207
  min-height:30px;
208
  }
209
 
@@ -272,3 +272,6 @@ span.hz-loading{
272
  min-height:14px;
273
  }
274
 
 
 
 
203
  }
204
 
205
  .opt-info-warning{
206
+ background:url('../img/loop.png') no-repeat scroll 1px 5px;
207
  min-height:30px;
208
  }
209
 
272
  min-height:14px;
273
  }
274
 
275
+ .metaseo-img-meta{
276
+ max-width: 100%;
277
+ }
img/loop.png ADDED
Binary file
inc/class-metaseo-mutils.php CHANGED
@@ -23,27 +23,27 @@ class WPMSEO_Utils {
23
  }
24
  switch ($val) {
25
  case 0:
26
- $score = __('N/A', 'wordpress-seo');
27
  $css = 'na';
28
  break;
29
  case 4:
30
  case 5:
31
- $score = __('Poor', 'wordpress-seo');
32
  $css = 'poor';
33
  break;
34
  case 6:
35
  case 7:
36
- $score = __('OK', 'wordpress-seo');
37
  $css = 'ok';
38
  break;
39
  case 8:
40
  case 9:
41
  case 10:
42
- $score = __('Good', 'wordpress-seo');
43
  $css = 'good';
44
  break;
45
  default:
46
- $score = __('Bad', 'wordpress-seo');
47
  $css = 'bad';
48
  break;
49
  }
23
  }
24
  switch ($val) {
25
  case 0:
26
+ $score = __('N/A', 'wpms');
27
  $css = 'na';
28
  break;
29
  case 4:
30
  case 5:
31
+ $score = __('Poor', 'wpms');
32
  $css = 'poor';
33
  break;
34
  case 6:
35
  case 7:
36
+ $score = __('OK', 'wpms');
37
  $css = 'ok';
38
  break;
39
  case 8:
40
  case 9:
41
  case 10:
42
+ $score = __('Good', 'wpms');
43
  $css = 'good';
44
  break;
45
  default:
46
+ $score = __('Bad', 'wpms');
47
  $css = 'bad';
48
  break;
49
  }
inc/class.image-helper.php CHANGED
@@ -344,15 +344,15 @@ class ImageHelper{
344
  $im = ' image ';
345
  }
346
 
347
- $msg[$iID]['iNotGood']['msg'] = __($results['iNotGoodTotal'][$iID] .$im. 'with wrong size', 'wp-meta-seo');
348
  $msg[$iID]['iNotGood']['warning'] = true;
349
 
350
- $msg[$iID]['iNotGood']['button'] = '<a href="javascript:void(0);" class=" img-resize button button-primary" data-img-name="'.$_imgs[$iID].'" data-post-id="'. $iID.'" data-opt-key="resize_image" onclick="showPostsList(this)">'.__('Resize image', 'wp-meta-seo').'<span class="spinner-light"></span></a>';
351
 
352
  update_post_meta($iID, '_metaseo_resize_image_counter', $results['iNotGoodTotal'][$iID]);
353
  update_post_meta($iID, '_metaseo_resize_image', $post_group);
354
  }else{
355
- $msg[$iID]['iNotGood']['msg'] = __('Image sizes are good!', 'wp-meta-seo');
356
  $msg[$iID]['iNotGood']['warning'] = false;
357
 
358
  delete_post_meta($iID, '_metaseo_resize_image_counter');
@@ -369,16 +369,16 @@ class ImageHelper{
369
  if($mkey == 'alt'){ $text = ' text'; }
370
 
371
  if($results['imNotGoodTotal'][$iID][$mkey] > 1){
372
- $msg[$iID]['imNotGood']['msg'][$mkey] = __($results['imNotGoodTotal'][$iID][$mkey] . ' ' . $mkey . $text . 's are missing', 'wp-meta-seo');
373
  }
374
  elseif($results['imNotGoodTotal'][$iID][$mkey] == 1){
375
- $msg[$iID]['imNotGood']['msg'][$mkey] = __($results['imNotGoodTotal'][$iID][$mkey] . ' ' . $mkey . $text . ' is missing', 'wp-meta-seo');
376
  }
377
 
378
  }
379
 
380
  $msg[$iID]['imNotGood']['warning'] = true;
381
- $msg[$iID]['imNotGood']['button'] = '<a href="javascript:void(0);" class=" fix-metas button button-primary" data-img-name="'.$_imgs[$iID].'" data-post-id="'. $iID.'" data-opt-key="fix_metas" onclick="showPostsList(this)">'.__('Fix meta', 'wp-meta-seo').'<span class="spinner-light"></span></a>';
382
 
383
 
384
  update_post_meta($iID, '_metaseo_fix_metas_counter', count($post_group));
@@ -388,7 +388,7 @@ class ImageHelper{
388
  if( $results['imNotGoodTotal'][$iID]['alt'] == 0
389
  && $results['imNotGoodTotal'][$iID]['title'] == 0 ){
390
  if($results['iNotGoodTotal'][$iID] != -1){
391
- $msg[$iID]['imNotGood']['button'] = '<a href="javascript:void(0);" class=" fix-metas button" data-img-name="'.$_imgs[$iID].'" data-post-id="'. $iID.'" data-opt-key="fix_metas" onclick="showPostsList(this)">'.__('Edit meta', 'wp-meta-seo').'<span class="spinner-light"></span></a>';
392
  }
393
  else{
394
  $msg[$iID]['imNotGood']['button'] = '';
@@ -414,7 +414,7 @@ class ImageHelper{
414
  $query = "SELECT `post_content` FROM $wpdb->posts WHERE `ID`=" . $post_id;
415
 
416
  if(!($post_content = @$wpdb->get_row($query)->post_content)){
417
- $ret['msg'] = __('This post is not existed or deleted, please choose one another!','wp-meta-seo');
418
 
419
  return $ret;
420
  }
@@ -456,10 +456,10 @@ class ImageHelper{
456
 
457
  if($id){
458
  $ret['success'] = true;
459
- $ret['msg'] = __('Well! This image is so good now.', 'wp-meta-seo');
460
  }
461
  else{
462
- $ret['msg'] = __('Opps! An error occured when updating the post, please try again', 'wp-meta-seo');
463
  }
464
 
465
  return $ret;
344
  $im = ' image ';
345
  }
346
 
347
+ $msg[$iID]['iNotGood']['msg'] = __($results['iNotGoodTotal'][$iID] .$im. 'with wrong size', 'wpms');
348
  $msg[$iID]['iNotGood']['warning'] = true;
349
 
350
+ $msg[$iID]['iNotGood']['button'] = '<a href="javascript:void(0);" class=" img-resize button button-primary" data-img-name="'.$_imgs[$iID].'" data-post-id="'. $iID.'" data-opt-key="resize_image" onclick="showPostsList(this)">'.__('Resize image', 'wpms').'<span class="spinner-light"></span></a>';
351
 
352
  update_post_meta($iID, '_metaseo_resize_image_counter', $results['iNotGoodTotal'][$iID]);
353
  update_post_meta($iID, '_metaseo_resize_image', $post_group);
354
  }else{
355
+ $msg[$iID]['iNotGood']['msg'] = __('Image sizes are good!', 'wpms');
356
  $msg[$iID]['iNotGood']['warning'] = false;
357
 
358
  delete_post_meta($iID, '_metaseo_resize_image_counter');
369
  if($mkey == 'alt'){ $text = ' text'; }
370
 
371
  if($results['imNotGoodTotal'][$iID][$mkey] > 1){
372
+ $msg[$iID]['imNotGood']['msg'][$mkey] = __($results['imNotGoodTotal'][$iID][$mkey] . ' ' . $mkey . $text . 's are missing', 'wpms');
373
  }
374
  elseif($results['imNotGoodTotal'][$iID][$mkey] == 1){
375
+ $msg[$iID]['imNotGood']['msg'][$mkey] = __($results['imNotGoodTotal'][$iID][$mkey] . ' ' . $mkey . $text . ' is missing', 'wpms');
376
  }
377
 
378
  }
379
 
380
  $msg[$iID]['imNotGood']['warning'] = true;
381
+ $msg[$iID]['imNotGood']['button'] = '<a href="javascript:void(0);" class=" fix-metas button button-primary" data-img-name="'.$_imgs[$iID].'" data-post-id="'. $iID.'" data-opt-key="fix_metas" onclick="showPostsList(this)">'.__('Fix meta', 'wpms').'<span class="spinner-light"></span></a>';
382
 
383
 
384
  update_post_meta($iID, '_metaseo_fix_metas_counter', count($post_group));
388
  if( $results['imNotGoodTotal'][$iID]['alt'] == 0
389
  && $results['imNotGoodTotal'][$iID]['title'] == 0 ){
390
  if($results['iNotGoodTotal'][$iID] != -1){
391
+ $msg[$iID]['imNotGood']['button'] = '<a href="javascript:void(0);" class=" fix-metas button" data-img-name="'.$_imgs[$iID].'" data-post-id="'. $iID.'" data-opt-key="fix_metas" onclick="showPostsList(this)">'.__('Edit meta', 'wpms').'<span class="spinner-light"></span></a>';
392
  }
393
  else{
394
  $msg[$iID]['imNotGood']['button'] = '';
414
  $query = "SELECT `post_content` FROM $wpdb->posts WHERE `ID`=" . $post_id;
415
 
416
  if(!($post_content = @$wpdb->get_row($query)->post_content)){
417
+ $ret['msg'] = __('This post is not existed or deleted, please choose one another!','wpms');
418
 
419
  return $ret;
420
  }
456
 
457
  if($id){
458
  $ret['success'] = true;
459
+ $ret['msg'] = __('Well! This image is so good now.', 'wpms');
460
  }
461
  else{
462
+ $ret['msg'] = __('Opps! An error occured when updating the post, please try again', 'wpms');
463
  }
464
 
465
  return $ret;
inc/class.metaseo-admin.php CHANGED
@@ -10,6 +10,8 @@ class MetaSeo_Admin {
10
 
11
  function __construct() {
12
  $this->settings = array(
 
 
13
  "metaseo_showfacebook"=>"",
14
  "metaseo_showtwitter"=>"",
15
  "metaseo_showtmetablock"=>0
@@ -38,10 +40,15 @@ class MetaSeo_Admin {
38
  add_action( 'wp_ajax_updateContentMeta', array($this, 'updateContentMeta_callback') );
39
  add_action( 'admin_init', array($this, 'stop_heartbeat') , 1 );
40
  add_action('admin_init', array($this,'metaseo_field_settings'));
 
41
  add_action('wp_ajax_metaseo_reload_analysis',array($this,'metaseo_reload_analysis'));
42
 
43
  }
44
 
 
 
 
 
45
  function metaseo_reload_analysis() {
46
  if(empty($_POST['datas'])){
47
  wp_send_json(false);
@@ -56,7 +63,7 @@ class MetaSeo_Admin {
56
  $test = false;
57
  if(is_array($words_meta_title) && is_array($words_post_title)){
58
  foreach ($words_meta_title as $mtitle){
59
- if(in_array($mtitle, $words_post_title)){
60
  $test = true;
61
  }
62
  }
@@ -65,14 +72,14 @@ class MetaSeo_Admin {
65
  }
66
 
67
  if($test){
68
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wp-meta-seo').'</div>';
69
  $check ++;
70
  }else{
71
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content heading','wp-meta-seo').'</div>';
72
  }
73
 
74
  }else{
75
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wp-meta-seo').'</div>';
76
  $check ++;
77
  }
78
 
@@ -83,7 +90,7 @@ class MetaSeo_Admin {
83
  $test1 = false;
84
  if(is_array($words_title) && is_array($words_post_content)){
85
  foreach ($words_title as $mtitle){
86
- if(in_array($mtitle, $words_post_content)){
87
  $test1 = true;
88
  }
89
  }
@@ -92,41 +99,41 @@ class MetaSeo_Admin {
92
  }
93
 
94
  if($test1){
95
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content','wp-meta-seo').'</div>';
96
  $check ++;
97
  }else{
98
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content','wp-meta-seo').'</div>';
99
  }
100
 
101
  // page url matches page title
102
  $mtitle = $_POST['datas']['title'];
103
  if($_POST['datas']['mpageurl'] == sanitize_title($mtitle)){
104
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page url matches with page title','wp-meta-seo').'</div>';
105
  $check ++;
106
  }else{
107
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page url matches with page title','wp-meta-seo').'</div>';
108
  }
109
 
110
  // meta title filled
111
  if($_POST['datas']['meta_title'] != '' && strlen($_POST['datas']['meta_title']) <= self::$title_length){
112
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta title filled','wp-meta-seo').'</div>';
113
  $check++;
114
  }else{
115
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta title filled','wp-meta-seo').'</div>';
116
  }
117
 
118
  // desc filled
119
  if($_POST['datas']['meta_desc'] != '' && strlen($_POST['datas']['meta_desc']) <= self::$desc_length){
120
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta description filled','wp-meta-seo').'</div>';
121
  $check++;
122
  }else{
123
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta description filled','wp-meta-seo').'</div>';
124
  }
125
 
126
  // image resize
127
  if($_POST['datas']['content'] == '') {
128
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
129
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wp-meta-seo').'</div>';
130
  $check += 2;
131
  }else{
132
  $dom = new DOMDocument;
@@ -156,21 +163,21 @@ class MetaSeo_Admin {
156
  }
157
 
158
  if($img_wrong){
159
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
160
  }else{
161
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
162
  $check++;
163
  }
164
 
165
  if($img_wrong_alt){
166
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wp-meta-seo').'</div>';
167
  }else{
168
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wp-meta-seo').'</div>';
169
  $check++;
170
  }
171
 
172
  }else{
173
- $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
174
  }
175
  }
176
 
@@ -182,15 +189,26 @@ class MetaSeo_Admin {
182
  function metaseo_field_settings(){
183
  register_setting('Wp Meta SEO','_metaseo_settings');
184
  add_settings_section('metaseo_dashboard','',array( $this, 'showSettings' ),'metaseo_settings');
185
- add_settings_field('metaseo_showfacebook', __('Facebook profile URL ', 'wp-meta-seo'), array( $this, 'showfacebook' ), 'metaseo_settings', 'metaseo_dashboard');
186
- add_settings_field('metaseo_showtwitter', __('Twitter Username ', 'wp-meta-seo'), array( $this, 'showtwitter' ), 'metaseo_settings', 'metaseo_dashboard');
187
- add_settings_field('metaseo_showtmetablock', __('Meta block edition ', 'wp-meta-seo'), array( $this, 'showtmetablock' ), 'metaseo_settings', 'metaseo_dashboard');
 
 
188
  }
189
 
190
  public function showSettings(){
191
 
192
  }
193
 
 
 
 
 
 
 
 
 
 
194
 
195
  public function showtmetablock(){
196
  echo '<input id="metaseo_installnew" name="_metaseo_settings[metaseo_installnew]" type="hidden" value="old"/>';
@@ -256,26 +274,26 @@ class MetaSeo_Admin {
256
  // wp_die();
257
  // }
258
 
259
- $response->msg = __('Modification was saved', 'wp-meta-seo') ;
260
  if($metakey == 'metatitle') {
261
  if(!update_post_meta($postID, '_metaseo_metatitle', $value)) {
262
  $response->updated = false;
263
- $response->msg = __('Meta title was not saved', 'wp-meta-seo') ;
264
  }
265
  else{
266
  $response->updated = true;
267
- $response->msg = __('Meta title was saved', 'wp-meta-seo') ;
268
  }
269
  }
270
 
271
  if($metakey =='metadesc') {
272
  if(!update_post_meta($postID, '_metaseo_metadesc', $value)) {
273
  $response->updated = false;
274
- $response->msg = __('Meta description was not saved', 'wp-meta-seo') ;
275
  }
276
  else{
277
  $response->updated = true;
278
- $response->msg = __('Meta description was saved', 'wp-meta-seo') ;
279
  }
280
  }
281
 
@@ -288,16 +306,20 @@ class MetaSeo_Admin {
288
  *
289
  */
290
  public function loadAdminScripts($hook) {
291
-
292
  wp_enqueue_script('jquery');
293
 
294
  wp_enqueue_script(
295
  'wpmetaseoAdmin', plugins_url('js/metaseo_admin.js', dirname(__FILE__)), array('jquery'), '0.1', true
296
  );
 
 
 
 
297
 
298
- wp_enqueue_script('Chart', plugins_url('js/Chart.js', dirname(__FILE__)), array('jquery'), '0.1', true);
299
- wp_enqueue_script('dashboard-chart', plugins_url('js/dashboard-chart.js', dirname(__FILE__)), array('jquery'), '0.1', true);
300
-
301
  // in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value
302
  wp_localize_script( 'wpmetaseoAdmin', 'myAjax',
303
  array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
@@ -320,10 +342,8 @@ class MetaSeo_Admin {
320
  function register_menu_page() {
321
 
322
  // Add main page
323
- $admin_page = add_menu_page(__('WP Meta SEO:', 'wp-meta-seo') . ' ' . __('Dashboard', 'wp-meta-seo'), __('WP Meta SEO', 'wp-meta-seo'), 'manage_options', 'metaseo_dashboard', array(
324
- $this,
325
- 'load_page',
326
- ), plugins_url('/img/icon.png', dirname(__FILE__)) );
327
 
328
  /**
329
  * Filter: 'metaseo_manage_options_capability' - Allow changing the capability users need to view the settings pages
@@ -337,7 +357,7 @@ class MetaSeo_Admin {
337
  array(
338
  'metaseo_dashboard',
339
  '',
340
- __('Content meta', 'wp-meta-seo'),
341
  $manage_options_cap,
342
  'metaseo_content_meta',
343
  array($this, 'load_page'),
@@ -346,7 +366,7 @@ class MetaSeo_Admin {
346
  array(
347
  'metaseo_dashboard',
348
  '',
349
- __('Image meta', 'wp-meta-seo'),
350
  $manage_options_cap,
351
  'metaseo_image_meta',
352
  array($this, 'load_page'),
@@ -355,7 +375,7 @@ class MetaSeo_Admin {
355
  array(
356
  'metaseo_dashboard',
357
  '',
358
- __('Settings', 'wp-meta-seo'),
359
  $manage_options_cap,
360
  'metaseo_settings',
361
  array($this, 'load_page'),
@@ -373,7 +393,7 @@ class MetaSeo_Admin {
373
  foreach ($submenu_pages as $submenu_page) {
374
 
375
  // Add submenu page
376
- $admin_page = add_submenu_page($submenu_page[0], $submenu_page[2] . ' - ' . __('WP Meta SEO:', 'wp-meta-seo'), $submenu_page[2], $submenu_page[3], $submenu_page[4], $submenu_page[5]);
377
 
378
  // Check if we need to hook
379
  if (isset($submenu_page[6]) && null != $submenu_page[6] && is_array($submenu_page[6]) && count($submenu_page[6]) > 0) {
@@ -386,7 +406,7 @@ class MetaSeo_Admin {
386
 
387
  global $submenu;
388
  if (isset($submenu['metaseo_dashboard']) && current_user_can($manage_options_cap)) {
389
- $submenu['metaseo_dashboard'][0][0] = __('Dashboard', 'wp-meta-seo');
390
  }
391
  }
392
 
10
 
11
  function __construct() {
12
  $this->settings = array(
13
+ "metaseo_title_home"=>"",
14
+ "metaseo_desc_home"=>"",
15
  "metaseo_showfacebook"=>"",
16
  "metaseo_showtwitter"=>"",
17
  "metaseo_showtmetablock"=>0
40
  add_action( 'wp_ajax_updateContentMeta', array($this, 'updateContentMeta_callback') );
41
  add_action( 'admin_init', array($this, 'stop_heartbeat') , 1 );
42
  add_action('admin_init', array($this,'metaseo_field_settings'));
43
+ add_action('init', array($this,'wpms_load_langguage'));
44
  add_action('wp_ajax_metaseo_reload_analysis',array($this,'metaseo_reload_analysis'));
45
 
46
  }
47
 
48
+ function wpms_load_langguage(){
49
+ load_plugin_textdomain( 'wpms', false, dirname( plugin_basename( WPMSEO_FILE ) ) . '/languages/' );
50
+ }
51
+
52
  function metaseo_reload_analysis() {
53
  if(empty($_POST['datas'])){
54
  wp_send_json(false);
63
  $test = false;
64
  if(is_array($words_meta_title) && is_array($words_post_title)){
65
  foreach ($words_meta_title as $mtitle){
66
+ if(in_array($mtitle, $words_post_title) && $mtitle != ''){
67
  $test = true;
68
  }
69
  }
72
  }
73
 
74
  if($test){
75
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
76
  $check ++;
77
  }else{
78
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content heading','wpms').'</div>';
79
  }
80
 
81
  }else{
82
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
83
  $check ++;
84
  }
85
 
90
  $test1 = false;
91
  if(is_array($words_title) && is_array($words_post_content)){
92
  foreach ($words_title as $mtitle){
93
+ if(in_array($mtitle, $words_post_content) && $mtitle != ''){
94
  $test1 = true;
95
  }
96
  }
99
  }
100
 
101
  if($test1){
102
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content','wpms').'</div>';
103
  $check ++;
104
  }else{
105
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content','wpms').'</div>';
106
  }
107
 
108
  // page url matches page title
109
  $mtitle = $_POST['datas']['title'];
110
  if($_POST['datas']['mpageurl'] == sanitize_title($mtitle)){
111
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page url matches with page title','wpms').'</div>';
112
  $check ++;
113
  }else{
114
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page url matches with page title','wpms').'</div>';
115
  }
116
 
117
  // meta title filled
118
  if($_POST['datas']['meta_title'] != '' && strlen($_POST['datas']['meta_title']) <= self::$title_length){
119
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta title filled','wpms').'</div>';
120
  $check++;
121
  }else{
122
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta title filled','wpms').'</div>';
123
  }
124
 
125
  // desc filled
126
  if($_POST['datas']['meta_desc'] != '' && strlen($_POST['datas']['meta_desc']) <= self::$desc_length){
127
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta description filled','wpms').'</div>';
128
  $check++;
129
  }else{
130
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta description filled','wpms').'</div>';
131
  }
132
 
133
  // image resize
134
  if($_POST['datas']['content'] == '') {
135
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
136
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
137
  $check += 2;
138
  }else{
139
  $dom = new DOMDocument;
163
  }
164
 
165
  if($img_wrong){
166
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
167
  }else{
168
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
169
  $check++;
170
  }
171
 
172
  if($img_wrong_alt){
173
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wpms').'</div>';
174
  }else{
175
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
176
  $check++;
177
  }
178
 
179
  }else{
180
+ $output .= '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
181
  }
182
  }
183
 
189
  function metaseo_field_settings(){
190
  register_setting('Wp Meta SEO','_metaseo_settings');
191
  add_settings_section('metaseo_dashboard','',array( $this, 'showSettings' ),'metaseo_settings');
192
+ add_settings_field('metaseo_title_home', __('Homepage meta title ', 'wpms'), array( $this, 'metaseo_title_home' ), 'metaseo_settings', 'metaseo_dashboard');
193
+ add_settings_field('metaseo_desc_home', __('Homepage meta description ', 'wpms'), array( $this, 'metaseo_desc_home' ), 'metaseo_settings', 'metaseo_dashboard');
194
+ add_settings_field('metaseo_showfacebook', __('Facebook profile URL ', 'wpms'), array( $this, 'showfacebook' ), 'metaseo_settings', 'metaseo_dashboard');
195
+ add_settings_field('metaseo_showtwitter', __('Twitter Username ', 'wpms'), array( $this, 'showtwitter' ), 'metaseo_settings', 'metaseo_dashboard');
196
+ add_settings_field('metaseo_showtmetablock', __('Meta block edition ', 'wpms'), array( $this, 'showtmetablock' ), 'metaseo_settings', 'metaseo_dashboard');
197
  }
198
 
199
  public function showSettings(){
200
 
201
  }
202
 
203
+ public function metaseo_title_home(){
204
+ $home_title = isset( $this->settings['metaseo_title_home'] ) ? $this->settings['metaseo_title_home'] : '';
205
+ echo '<input id="metaseo_title_home" name="_metaseo_settings[metaseo_title_home]" type="text" value="'.esc_attr( $home_title ).'" size="50"/>';
206
+ }
207
+
208
+ public function metaseo_desc_home(){
209
+ $home_desc = isset( $this->settings['metaseo_desc_home'] ) ? $this->settings['metaseo_desc_home'] : '';
210
+ echo '<input id="metaseo_desc_home" name="_metaseo_settings[metaseo_desc_home]" type="text" value="'.esc_attr( $home_desc ).'" size="50"/>';
211
+ }
212
 
213
  public function showtmetablock(){
214
  echo '<input id="metaseo_installnew" name="_metaseo_settings[metaseo_installnew]" type="hidden" value="old"/>';
274
  // wp_die();
275
  // }
276
 
277
+ $response->msg = __('Modification was saved', 'wpms') ;
278
  if($metakey == 'metatitle') {
279
  if(!update_post_meta($postID, '_metaseo_metatitle', $value)) {
280
  $response->updated = false;
281
+ $response->msg = __('Meta title was not saved', 'wpms') ;
282
  }
283
  else{
284
  $response->updated = true;
285
+ $response->msg = __('Meta title was saved', 'wpms') ;
286
  }
287
  }
288
 
289
  if($metakey =='metadesc') {
290
  if(!update_post_meta($postID, '_metaseo_metadesc', $value)) {
291
  $response->updated = false;
292
+ $response->msg = __('Meta description was not saved', 'wpms') ;
293
  }
294
  else{
295
  $response->updated = true;
296
+ $response->msg = __('Meta description was saved', 'wpms') ;
297
  }
298
  }
299
 
306
  *
307
  */
308
  public function loadAdminScripts($hook) {
309
+ global $current_screen;
310
  wp_enqueue_script('jquery');
311
 
312
  wp_enqueue_script(
313
  'wpmetaseoAdmin', plugins_url('js/metaseo_admin.js', dirname(__FILE__)), array('jquery'), '0.1', true
314
  );
315
+ if($current_screen->base == 'toplevel_page_metaseo_dashboard'){
316
+ wp_enqueue_script('Chart', plugins_url('js/Chart.js', dirname(__FILE__)), array('jquery'), '0.1', true);
317
+ wp_enqueue_script('dashboard-chart', plugins_url('js/dashboard-chart.js', dirname(__FILE__)), array('jquery'), '0.1', true);
318
+ }
319
 
320
+ if($current_screen->base == 'wp-meta-seo_page_metaseo_image_meta'){
321
+ wp_enqueue_script('mautosize', plugins_url('js/autosize.js', dirname(__FILE__)), array('jquery'), '0.1', true);
322
+ }
323
  // in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value
324
  wp_localize_script( 'wpmetaseoAdmin', 'myAjax',
325
  array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
342
  function register_menu_page() {
343
 
344
  // Add main page
345
+ $admin_page = add_menu_page(__('WP Meta SEO:', 'wpms') . ' ' . __('Dashboard', 'wpms'), __('WP Meta SEO', 'wpms'), 'manage_options', 'metaseo_dashboard', array(
346
+ $this,'load_page',) , 'dashicons-chart-area' );
 
 
347
 
348
  /**
349
  * Filter: 'metaseo_manage_options_capability' - Allow changing the capability users need to view the settings pages
357
  array(
358
  'metaseo_dashboard',
359
  '',
360
+ __('Content meta', 'wpms'),
361
  $manage_options_cap,
362
  'metaseo_content_meta',
363
  array($this, 'load_page'),
366
  array(
367
  'metaseo_dashboard',
368
  '',
369
+ __('Image meta', 'wpms'),
370
  $manage_options_cap,
371
  'metaseo_image_meta',
372
  array($this, 'load_page'),
375
  array(
376
  'metaseo_dashboard',
377
  '',
378
+ __('Settings', 'wpms'),
379
  $manage_options_cap,
380
  'metaseo_settings',
381
  array($this, 'load_page'),
393
  foreach ($submenu_pages as $submenu_page) {
394
 
395
  // Add submenu page
396
+ $admin_page = add_submenu_page($submenu_page[0], $submenu_page[2] . ' - ' . __('WP Meta SEO:', 'wpms'), $submenu_page[2], $submenu_page[3], $submenu_page[4], $submenu_page[5]);
397
 
398
  // Check if we need to hook
399
  if (isset($submenu_page[6]) && null != $submenu_page[6] && is_array($submenu_page[6]) && count($submenu_page[6]) > 0) {
406
 
407
  global $submenu;
408
  if (isset($submenu['metaseo_dashboard']) && current_user_can($manage_options_cap)) {
409
+ $submenu['metaseo_dashboard'][0][0] = __('Dashboard', 'wpms');
410
  }
411
  }
412
 
inc/class.metaseo-content-list-table.php CHANGED
@@ -129,10 +129,10 @@ class MetaSeo_Content_List_Table extends WP_List_Table {
129
 
130
  function get_columns() {
131
  return $columns = array(
132
- 'col_id' => __('', 'wp-meta-seo'),
133
- 'col_title' => __('Title', 'wp-meta-seo'),
134
- 'col_meta_title' => __('Meta Title', 'wp-meta-seo'),
135
- 'col_meta_desc' => __('Meta Description', 'wp-meta-seo')
136
  );
137
  }
138
 
@@ -294,7 +294,7 @@ class MetaSeo_Content_List_Table extends WP_List_Table {
294
 
295
  case 'col_title':
296
  $post_title = stripslashes($rec->post_title);
297
- if($post_title == '') $post_title = __('(no title)' , 'wp-meta-seo');
298
  echo sprintf('<td %2$s><div class="action-wrapper"><strong id="post-title-'.$rec->ID.'">%1$s</strong>', $post_title, $attributes);
299
 
300
  $post_type_object = get_post_type_object($rec->post_type);
@@ -317,13 +317,13 @@ class MetaSeo_Content_List_Table extends WP_List_Table {
317
 
318
  echo $this->row_actions($actions);
319
  echo '</div><div class="snippet-wrapper">';
320
- $preview = __(" This is a rendering of what this post might look like in Google's search results.", 'wp-meta-seo');
321
  $info = sprintf('<a class="info-content"><img src=' . WPMETASEO_PLUGIN_URL . 'img/info.png href="#">'
322
  . '<p class="tooltip-metacontent">'
323
  .$preview
324
  .'</p></a>');
325
 
326
- echo '<div><strong>' . __('Snippet Preview', 'wp-meta-seo') . '</strong> ' . $info. '</div>';
327
 
328
  echo '<div class="snippet">
329
  <a id="snippet_title'.$rec->ID . '" class="snippet_metatitle">'.(!empty($rec->metatitle) ? $rec->metatitle : $rec->post_title).'</a>';
@@ -579,7 +579,7 @@ class MetaSeo_Content_List_Table extends WP_List_Table {
579
  return null;
580
  }
581
  //These info may be got from database in later version
582
- $mseo = 'wp-meta-seo/wp-meta-seo.php';
583
  $yoast = 'wordpress-seo/wp-seo.php';
584
  $aio = 'all-in-one-seo-pack/all_in_one_seo_pack.php';
585
 
129
 
130
  function get_columns() {
131
  return $columns = array(
132
+ 'col_id' => __('', 'wpms'),
133
+ 'col_title' => __('Title', 'wpms'),
134
+ 'col_meta_title' => __('Meta Title', 'wpms'),
135
+ 'col_meta_desc' => __('Meta Description', 'wpms')
136
  );
137
  }
138
 
294
 
295
  case 'col_title':
296
  $post_title = stripslashes($rec->post_title);
297
+ if($post_title == '') $post_title = __('(no title)' , 'wpms');
298
  echo sprintf('<td %2$s><div class="action-wrapper"><strong id="post-title-'.$rec->ID.'">%1$s</strong>', $post_title, $attributes);
299
 
300
  $post_type_object = get_post_type_object($rec->post_type);
317
 
318
  echo $this->row_actions($actions);
319
  echo '</div><div class="snippet-wrapper">';
320
+ $preview = __(" This is a rendering of what this post might look like in Google's search results.", 'wpms');
321
  $info = sprintf('<a class="info-content"><img src=' . WPMETASEO_PLUGIN_URL . 'img/info.png href="#">'
322
  . '<p class="tooltip-metacontent">'
323
  .$preview
324
  .'</p></a>');
325
 
326
+ echo '<div><strong>' . __('Snippet Preview', 'wpms') . '</strong> ' . $info. '</div>';
327
 
328
  echo '<div class="snippet">
329
  <a id="snippet_title'.$rec->ID . '" class="snippet_metatitle">'.(!empty($rec->metatitle) ? $rec->metatitle : $rec->post_title).'</a>';
579
  return null;
580
  }
581
  //These info may be got from database in later version
582
+ $mseo = 'wpms/wpms.php';
583
  $yoast = 'wordpress-seo/wp-seo.php';
584
  $aio = 'all-in-one-seo-pack/all_in_one_seo_pack.php';
585
 
inc/class.metaseo-dashboard.php CHANGED
@@ -138,7 +138,7 @@ class MetaSeo_Dashboard {
138
  echo $rank;
139
  }
140
  else{
141
- echo __('We can\'t get rank of this site from Alexa.com!', 'wp-meta-seo');
142
  }
143
  }
144
 
138
  echo $rank;
139
  }
140
  else{
141
+ echo __('We can\'t get rank of this site from Alexa.com!', 'wpms');
142
  }
143
  }
144
 
inc/class.metaseo-image-list-table.php CHANGED
@@ -133,14 +133,14 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
133
 
134
  function get_columns() {
135
  return $columns = array(
136
- 'col_id' => __('ID', 'wp-meta-seo'),
137
- 'col_image' => __('Image', 'wp-meta-seo'),
138
- 'col_image_name' => __('Name', 'wp-meta-seo'),
139
- 'col_image_info' => __('Optimization Info', 'wp-meta-seo'),
140
- 'col_image_alternative' => __('Alternative text', 'wp-meta-seo'),
141
- 'col_image_title' => __('Title', 'wp-meta-seo'),
142
- 'col_image_legend' => __('Legend', 'wp-meta-seo'),
143
- 'col_image_desc' => __('Description', 'wp-meta-seo'),
144
  );
145
  }
146
 
@@ -459,7 +459,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
459
 
460
  case 'col_image_name':
461
  $info = '<div class="img-name-wrapper">';
462
- $info .= '<input type="text" name="name_image['.$rec->ID.']" class="metaseo-img-meta metaseo-img-name" data-meta-type="change_image_name" id="img-name-'.$rec->ID.'" data-post-id="'.$rec->ID.'" size="12" value="'.$img_name.'" data-extension="'.$type.'" /><span class="img_type">'.$type.'</span>';
463
  #$info .= '<p class="savedInfo" style="display:none;"></p>';
464
  $info .= '<p>size: ' . $img_size . $img_sizes. '</p>';
465
  $info .= '<p>' . $img_width . 'x' . $img_height . '</p>';
@@ -488,7 +488,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
488
  break;
489
 
490
  case 'col_image_alternative':
491
- $input = ("<input name='img_alternative[$rec->ID]' class='metaseo-img-meta' data-meta-type='alt_text' id='img-alt-$rec->ID' data-post-id='$rec->ID' size='13' value='". esc_attr($rec->alt)."' type='text'>");
492
  $input .= ('<span class="saved-info" style="position:relative">
493
  <span class="meta-update" style="position:absolute"></span>
494
  </span>');
@@ -496,7 +496,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
496
  break;
497
 
498
  case 'col_image_title':
499
- $input = ("<input name='img_title[$rec->ID]' class='metaseo-img-meta' data-meta-type='image_title' id='img-title-$rec->ID' data-post-id='$rec->ID' size='13' value='".esc_attr($rec->title)."' type='text'>");
500
  $input .= ('<span class="saved-info" style="position:relative">
501
  <span class="meta-update" style="position:absolute"></span>
502
  </span>');
@@ -504,7 +504,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
504
  break;
505
 
506
  case 'col_image_legend':
507
- $input = ("<input name='img_legend[$rec->ID]' class='metaseo-img-meta' data-meta-type='image_caption' id='img-legend-$rec->ID' data-post-id='$rec->ID' value='".esc_attr($rec->legend)."' size='13' type='text'>");
508
  $input .= ('<span class="saved-info" style="position:relative">
509
  <span class="meta-update" style="position:absolute"></span>
510
  </span>');
@@ -512,7 +512,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
512
  break;
513
 
514
  case 'col_image_desc':
515
- $input = ("<input name='img_desc[$rec->ID]' class='metaseo-img-meta' data-meta-type='image_description' id='img-desc-$rec->ID' data-post-id='$rec->ID' size='30' value='".esc_attr($rec->des)."' type='text'>");
516
  $input .= ('<span class="saved-info" style="position:relative">
517
  <span class="meta-update" style="position:absolute"></span>
518
  </span>');
@@ -580,9 +580,9 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
580
 
581
  private static function display_fix_metas_list($img_post_id, $posts, $meta_counter, $p, $im){
582
  if($meta_counter){
583
- $header = __('We found ' . $meta_counter . $im . $p . 'which needed to add or change meta information', 'wp-meta-seo');
584
  }else{
585
- $header = __('We found 0 image which needed to add or change meta information', 'wp-meta-seo');
586
  }
587
 
588
  //Get default meta information of the image
@@ -597,7 +597,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
597
  <tbody>
598
  <?php $alternate = '';?>
599
  <?php if(count($posts) < 1): ?>
600
- <tr><td colspan="10" style="height:95%"><?php echo __('This image has still not been inserted in any post!', 'wp-meta-seo') ?></td></tr>
601
  <?php else: ?>
602
  <tr class="metaseo-border-bottom">
603
  <td colspan="1">ID</td>
@@ -629,7 +629,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
629
  $value = str_replace($chr, htmlentities2($chr), $value);
630
  }
631
  ?>
632
- <input type="text" value="<?php echo ($value != '' ? $value : ''); ?>" id="metaseo-img-<?php echo $type. '-' .$post['ID'] ?>" class="metaseo-fix-meta metaseo-img-<?php echo $type ?>" data-meta-key="_metaseo_fix_metas" data-post-id="<?php echo $post['ID'] ?>" data-img-post-id="<?php echo $img_post_id ?>" data-meta-type="<?php echo $type ?>" data-meta-order="<?php echo $k ?>" data-file-name="<?php echo $file_name; ?>" placeholder="<?php echo ($value == '' ? __(ucfirst($type) . ' is empty', 'wp-meta-seo') : '') ?>" onfocus="metaseo_fix_meta(this);" onblur="updateInputBlur(this)" onkeydown="return checkeyCode(event,this)" />
633
  <span class="meta-update"></span>
634
  <?php if(trim($$type) != '' && trim($$type) != $value): ?>
635
  <a class="button meta-default" href="#" data-default-value="<?php echo esc_attr($$type) ?>" title="Add to input box" onclick="add_meta_default(this)"> <?php echo '<img src= "' . WPMETASEO_PLUGIN_URL . 'img/img-arrow.png" />' ?> Copy </a>
@@ -654,7 +654,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
654
 
655
  private static function display_resize_image_list($img_post_id,$posts, $img_counter, $p, $im){
656
 
657
- $header = __('We found ' . $img_counter . $im . $p . ' which needed to optimize', 'wp-meta-seo');
658
  ?>
659
  <h3 class="content-header"><?php echo $header ?></h3>
660
  <div class="content-box">
@@ -695,7 +695,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
695
  <?php endforeach ?>
696
  </td>
697
  <td colspan="2" class="metaseo-action">
698
- <a href="javascript:void(0);" class="metaseo-optimize button" data-img-post-id="<?php echo $img_post_id ?>" data-post-id="<?php echo $post['ID'] ?>" onclick="optimize_imgs(this)"><?php echo __('Replace?', 'wp-meta-seo') ?></a>
699
  <span class="optimizing spinner"></span>
700
  </td>
701
  <td colspan="4">
@@ -749,7 +749,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
749
  else{
750
  $ret = array(
751
  'success' => false,
752
- 'msg' => __('The post is not existed, please choose one another!', 'wp-meta-seo')
753
  );
754
  }
755
 
@@ -997,18 +997,18 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
997
 
998
  if(wp_update_post($data)){
999
  $response->updated = true;
1000
- $response->msg = __($label . ' was saved', 'wp-meta-seo');
1001
  }
1002
  }
1003
  else{
1004
  update_post_meta($post_id, $aliases[$meta_type], $meta_value);
1005
  $response->updated = true;
1006
- $response->msg = __($label . ' was saved', 'wp-meta-seo');
1007
  }
1008
 
1009
  }
1010
  else{
1011
- $response->msg = __('There is a problem when update image meta!', 'wp-meta-seo');
1012
  }
1013
 
1014
  echo json_encode($response);
@@ -1025,7 +1025,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
1025
  $linkold = $img_meta['file'];
1026
  $response = new stdClass();
1027
  $response->updated = FALSE;
1028
- $response->msg = __('There is a problem when update image name', 'wp-meta-seo');
1029
 
1030
  $upload_dirs = wp_upload_dir();
1031
  $upload_dir = $upload_dirs['basedir'];
@@ -1127,24 +1127,24 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
1127
  update_post_meta($postID, '_wp_attachment_metadata', $attached_metadata);
1128
 
1129
  $response->updated = true;
1130
- $response->msg = __('Image name was changed', 'wp-meta-seo');
1131
  } else {
1132
  $response->iname = $old_name;
1133
- $response->msg = __('There is a problem when update image name', 'wp-meta-seo');
1134
  }
1135
  }
1136
  } else {
1137
 
1138
- $response->msg = __('Name is existing', 'wp-meta-seo');
1139
  $response->iname = $old_name;
1140
  }
1141
  } else {
1142
  $response->iname = $old_name;
1143
- $response->msg = __('File is not existed', 'wp-meta-seo');
1144
  }
1145
  } else {
1146
  $response->iname = $old_name;
1147
- $response->msg = __('Should not be empty', 'wp-meta-seo');
1148
  }
1149
  echo json_encode($response);
1150
  wp_die();
@@ -1156,7 +1156,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
1156
  $response->updated = false;
1157
  foreach($_post as $k => $v){
1158
  if(!$v && !in_array($k, array('meta_value', 'meta_order'))){
1159
- $response->msg = __('There is a problem when update image meta!', 'wp-meta-seo') ;
1160
 
1161
  echo json_encode($response);
1162
  wp_die();
@@ -1179,7 +1179,7 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
1179
  //Then we must update this meta info in the appropriate post content
1180
  if(!$post = get_post($post_id))
1181
  {
1182
- $response->msg = __('The post has been deleted before, please check again!', 'wp-meta-seo');
1183
  }
1184
  else{
1185
  if($post->post_content !== ''){
@@ -1214,19 +1214,19 @@ class MetaSeo_Image_List_Table extends WP_List_Table {
1214
 
1215
  //Update content of this post.
1216
  if(!wp_update_post(array('ID' => $post->ID, 'post_content' => $post_content))){
1217
- $response->msg = __('The post haven\'t been updated, please check again!', 'wp-meta-seo');
1218
  }
1219
  else{
1220
  $response->updated = true;
1221
- $response->msg = __(ucfirst($meta_type) . ' was saved','wp-meta-seo') ;
1222
  }
1223
  }
1224
  else{
1225
- $response->msg = __('This image has been removed from the post, please check again!', 'wp-meta-seo');
1226
  }
1227
  }
1228
  else{
1229
- $response->msg = __('Content of the post is empty, please check again', 'wp-meta-seo!');
1230
  }
1231
  }
1232
 
133
 
134
  function get_columns() {
135
  return $columns = array(
136
+ 'col_id' => __('ID', 'wpms'),
137
+ 'col_image' => __('Image', 'wpms'),
138
+ 'col_image_name' => __('Name', 'wpms'),
139
+ 'col_image_info' => __('Optimization Info', 'wpms'),
140
+ 'col_image_alternative' => __('Alternative text', 'wpms'),
141
+ 'col_image_title' => __('Title', 'wpms'),
142
+ 'col_image_legend' => __('Legend', 'wpms'),
143
+ 'col_image_desc' => __('Description', 'wpms'),
144
  );
145
  }
146
 
459
 
460
  case 'col_image_name':
461
  $info = '<div class="img-name-wrapper">';
462
+ $info .= '<textarea name="name_image['.$rec->ID.']" class="metaseo-img-meta metaseo-img-name" data-meta-type="change_image_name" id="img-name-'.$rec->ID.'" data-post-id="'.$rec->ID.'" rows="2" data-extension="'.$type.'">'.$img_name.'</textarea><span class="img_type">'.$type.'</span>';
463
  #$info .= '<p class="savedInfo" style="display:none;"></p>';
464
  $info .= '<p>size: ' . $img_size . $img_sizes. '</p>';
465
  $info .= '<p>' . $img_width . 'x' . $img_height . '</p>';
488
  break;
489
 
490
  case 'col_image_alternative':
491
+ $input = ("<textarea name='img_alternative[$rec->ID]' class='metaseo-img-meta' data-meta-type='alt_text' id='img-alt-$rec->ID' data-post-id='$rec->ID' rows='2'>". esc_attr($rec->alt)."</textarea>");
492
  $input .= ('<span class="saved-info" style="position:relative">
493
  <span class="meta-update" style="position:absolute"></span>
494
  </span>');
496
  break;
497
 
498
  case 'col_image_title':
499
+ $input = ("<textarea name='img_title[$rec->ID]' class='metaseo-img-meta' data-meta-type='image_title' id='img-title-$rec->ID' data-post-id='$rec->ID' rows='2'>".esc_attr($rec->title)."</textarea>");
500
  $input .= ('<span class="saved-info" style="position:relative">
501
  <span class="meta-update" style="position:absolute"></span>
502
  </span>');
504
  break;
505
 
506
  case 'col_image_legend':
507
+ $input = ("<textarea name='img_legend[$rec->ID]' class='metaseo-img-meta' data-meta-type='image_caption' id='img-legend-$rec->ID' data-post-id='$rec->ID' rows='2'>".esc_attr($rec->legend)."</textarea>");
508
  $input .= ('<span class="saved-info" style="position:relative">
509
  <span class="meta-update" style="position:absolute"></span>
510
  </span>');
512
  break;
513
 
514
  case 'col_image_desc':
515
+ $input = ("<textarea name='img_desc[$rec->ID]' class='metaseo-img-meta' data-meta-type='image_description' id='img-desc-$rec->ID' data-post-id='$rec->ID' rows='2'>".esc_attr($rec->des)."</textarea>");
516
  $input .= ('<span class="saved-info" style="position:relative">
517
  <span class="meta-update" style="position:absolute"></span>
518
  </span>');
580
 
581
  private static function display_fix_metas_list($img_post_id, $posts, $meta_counter, $p, $im){
582
  if($meta_counter){
583
+ $header = sprintf(__('We found %s which needed to add or change meta information', 'wpms'),$meta_counter . $im . $p);
584
  }else{
585
+ $header = sprintf(__('We found %s which needed to add or change meta information', 'wpms'), 0);//__('We found 0 image which needed to add or change meta information', 'wpms');
586
  }
587
 
588
  //Get default meta information of the image
597
  <tbody>
598
  <?php $alternate = '';?>
599
  <?php if(count($posts) < 1): ?>
600
+ <tr><td colspan="10" style="height:95%"><?php echo __('This image has still not been inserted in any post!', 'wpms') ?></td></tr>
601
  <?php else: ?>
602
  <tr class="metaseo-border-bottom">
603
  <td colspan="1">ID</td>
629
  $value = str_replace($chr, htmlentities2($chr), $value);
630
  }
631
  ?>
632
+ <input type="text" value="<?php echo ($value != '' ? $value : ''); ?>" id="metaseo-img-<?php echo $type. '-' .$post['ID'] ?>" class="metaseo-fix-meta metaseo-img-<?php echo $type ?>" data-meta-key="_metaseo_fix_metas" data-post-id="<?php echo $post['ID'] ?>" data-img-post-id="<?php echo $img_post_id ?>" data-meta-type="<?php echo $type ?>" data-meta-order="<?php echo $k ?>" data-file-name="<?php echo $file_name; ?>" placeholder="<?php echo ($value == '' ? __(ucfirst($type) . ' is empty', 'wpms') : '') ?>" onfocus="metaseo_fix_meta(this);" onblur="updateInputBlur(this)" onkeydown="return checkeyCode(event,this)" />
633
  <span class="meta-update"></span>
634
  <?php if(trim($$type) != '' && trim($$type) != $value): ?>
635
  <a class="button meta-default" href="#" data-default-value="<?php echo esc_attr($$type) ?>" title="Add to input box" onclick="add_meta_default(this)"> <?php echo '<img src= "' . WPMETASEO_PLUGIN_URL . 'img/img-arrow.png" />' ?> Copy </a>
654
 
655
  private static function display_resize_image_list($img_post_id,$posts, $img_counter, $p, $im){
656
 
657
+ $header = sprintf(__('We found %s which needed to optimize', 'wpms'), $img_counter . $im . $p);
658
  ?>
659
  <h3 class="content-header"><?php echo $header ?></h3>
660
  <div class="content-box">
695
  <?php endforeach ?>
696
  </td>
697
  <td colspan="2" class="metaseo-action">
698
+ <a href="javascript:void(0);" class="metaseo-optimize button" data-img-post-id="<?php echo $img_post_id ?>" data-post-id="<?php echo $post['ID'] ?>" onclick="optimize_imgs(this)"><?php echo __('Replace?', 'wpms') ?></a>
699
  <span class="optimizing spinner"></span>
700
  </td>
701
  <td colspan="4">
749
  else{
750
  $ret = array(
751
  'success' => false,
752
+ 'msg' => __('The post is not existed, please choose one another!', 'wpms')
753
  );
754
  }
755
 
997
 
998
  if(wp_update_post($data)){
999
  $response->updated = true;
1000
+ $response->msg = __($label . ' was saved', 'wpms');
1001
  }
1002
  }
1003
  else{
1004
  update_post_meta($post_id, $aliases[$meta_type], $meta_value);
1005
  $response->updated = true;
1006
+ $response->msg = __($label . ' was saved', 'wpms');
1007
  }
1008
 
1009
  }
1010
  else{
1011
+ $response->msg = __('There is a problem when update image meta!', 'wpms');
1012
  }
1013
 
1014
  echo json_encode($response);
1025
  $linkold = $img_meta['file'];
1026
  $response = new stdClass();
1027
  $response->updated = FALSE;
1028
+ $response->msg = __('There is a problem when update image name', 'wpms');
1029
 
1030
  $upload_dirs = wp_upload_dir();
1031
  $upload_dir = $upload_dirs['basedir'];
1127
  update_post_meta($postID, '_wp_attachment_metadata', $attached_metadata);
1128
 
1129
  $response->updated = true;
1130
+ $response->msg = __('Image name was changed', 'wpms');
1131
  } else {
1132
  $response->iname = $old_name;
1133
+ $response->msg = __('There is a problem when update image name', 'wpms');
1134
  }
1135
  }
1136
  } else {
1137
 
1138
+ $response->msg = __('Name is existing', 'wpms');
1139
  $response->iname = $old_name;
1140
  }
1141
  } else {
1142
  $response->iname = $old_name;
1143
+ $response->msg = __('File is not existed', 'wpms');
1144
  }
1145
  } else {
1146
  $response->iname = $old_name;
1147
+ $response->msg = __('Should not be empty', 'wpms');
1148
  }
1149
  echo json_encode($response);
1150
  wp_die();
1156
  $response->updated = false;
1157
  foreach($_post as $k => $v){
1158
  if(!$v && !in_array($k, array('meta_value', 'meta_order'))){
1159
+ $response->msg = __('There is a problem when update image meta!', 'wpms') ;
1160
 
1161
  echo json_encode($response);
1162
  wp_die();
1179
  //Then we must update this meta info in the appropriate post content
1180
  if(!$post = get_post($post_id))
1181
  {
1182
+ $response->msg = __('The post has been deleted before, please check again!', 'wpms');
1183
  }
1184
  else{
1185
  if($post->post_content !== ''){
1214
 
1215
  //Update content of this post.
1216
  if(!wp_update_post(array('ID' => $post->ID, 'post_content' => $post_content))){
1217
+ $response->msg = __('The post haven\'t been updated, please check again!', 'wpms');
1218
  }
1219
  else{
1220
  $response->updated = true;
1221
+ $response->msg = __(ucfirst($meta_type) . ' was saved','wpms') ;
1222
  }
1223
  }
1224
  else{
1225
+ $response->msg = __('This image has been removed from the post, please check again!', 'wpms');
1226
  }
1227
  }
1228
  else{
1229
+ $response->msg = __('Content of the post is empty, please check again', 'wpms!');
1230
  }
1231
  }
1232
 
inc/class.metaseo-metabox.php CHANGED
@@ -54,34 +54,34 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
54
  }
55
 
56
  public static function translate_meta_boxes() {
57
- self::$meta_fields['general']['snippetpreview']['title'] = __('Results preview', 'wp-meta-seo');
58
- self::$meta_fields['general']['snippetpreview']['help'] = sprintf(__('This is a preview of what your content will looks like in search engine results: title, description and URL', 'wp-meta-seo'), '<a target="_blank" href="https://www.joomunited.com/wordpress-products/wp-meta-seo">', '</a>');
59
 
60
- self::$meta_fields['general']['title']['title'] = __('Search engine title', 'wp-meta-seo');
61
  self::$meta_fields['general']['title']['description'] = sprintf(__('<span id="metaseo_wpmseo_title-length">%s</span>'),self::$meta_length_reason);
62
- self::$meta_fields['general']['title']['help'] = __('This is the title of your content that may be displayed in search engine results (meta title). By default it’s the content title (page title, post title…). 69 characters max allowed.', 'wp-meta-seo');
63
 
64
- self::$meta_fields['general']['desc']['title'] = __('Search engine description', 'wp-meta-seo');
65
  self::$meta_fields['general']['desc']['description'] = sprintf(__('<span id="metaseo_wpmseo_desc-length">%s</span>'),self::$meta_length_reason);
66
- self::$meta_fields['general']['desc']['help'] = sprintf(__('The description of your content that may be displayed in search engine results aka meta description. By default search engine take an excerpt from your content (depending on the search query). 156 characters max allowed.', 'wp-meta-seo'), '<a target="_blank" href="https://www.joomunited.com/wordpress-products/wp-meta-seo">', '</a>');
67
 
68
- self::$meta_fields['social']['opengraph-title']['title'] = __('Facebook Title','wp-meta-seo');
69
- self::$meta_fields['social']['opengraph-title']['description'] = __('Custom title to display when sharing this content on facebook, content title override','wp-meta-seo');
70
 
71
- self::$meta_fields['social']['opengraph-desc']['title'] = __('Facebook Description','wp-meta-seo');
72
- self::$meta_fields['social']['opengraph-desc']['description'] = __('Custom description to display when sharing this content on facebook, content description override','wp-meta-seo');
73
 
74
- self::$meta_fields['social']['opengraph-image']['title'] = __('Facebook Image','wp-meta-seo');
75
- self::$meta_fields['social']['opengraph-image']['description'] = __('Custom image to display when sharing this content on facebook, content description override, recommended size is 1200px x 630px','wp-meta-seo');
76
 
77
- self::$meta_fields['social']['twitter-title']['title'] = __('Twitter Title','wp-meta-seo');
78
- self::$meta_fields['social']['twitter-title']['description'] = __('Custom title to display when sharing this content on twitter, content title override','wp-meta-seo');
79
 
80
- self::$meta_fields['social']['twitter-desc']['title'] = __('Twitter Description','wp-meta-seo');
81
- self::$meta_fields['social']['twitter-desc']['description'] = __('Custom description to display when sharing this content on twitter, content description override','wp-meta-seo');
82
 
83
- self::$meta_fields['social']['twitter-image']['title'] = __('Twitter Image','wp-meta-seo');
84
- self::$meta_fields['social']['twitter-image']['description'] = __('Custom image to display when sharing this content on facebook, content description override, recommended min size 440px X 220px','wp-meta-seo');
85
 
86
  do_action('wpmseo_tab_translate');
87
  }
@@ -120,7 +120,7 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
120
 
121
  public function metaseo_localize_media_script() {
122
  return array(
123
- 'choose_image' => __( 'Use Image', 'wp-meta-seo' ),
124
  );
125
  }
126
 
@@ -138,7 +138,7 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
138
  $date = $this->get_post_date($post);
139
 
140
  self::$meta_length = ( self::$meta_length - ( strlen($date) + 5 ) );
141
- self::$meta_length_reason = __(' (because of date display)', 'wp-meta-seo');
142
  }
143
 
144
  self::$meta_length_reason = apply_filters('wpmseo_desc_length_reason', self::$meta_length_reason, $post);
@@ -186,7 +186,7 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
186
 
187
  return array_merge($cached_replacement_vars, array(
188
  'field_prefix' => self::$form_prefix,
189
- 'choose_image' => __('Use Image', 'wp-meta-seo'),
190
  'wpmseo_meta_desc_length' => self::$meta_length,
191
  'wpmseo_meta_title_length' => self::$meta_title_length,
192
  'wpmseo_title_template' => $title_template,
@@ -194,7 +194,7 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
194
  'wpmseo_permalink_template' => $sample_permalink,
195
  'wpmseo_keyword_suggest_nonce' => wp_create_nonce('wpmseo-get-suggest'),
196
  'wpmseo_replace_vars_nonce' => wp_create_nonce('wpmseo-replace-vars'),
197
- 'no_parent_text' => __('(no parent)', 'wp-meta-seo'),
198
  ));
199
  }
200
 
@@ -238,10 +238,10 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
238
  <div class="wpmseo-metabox-tabs-div">
239
  <ul class="wpmseo-metabox-tabs" id="wpmseo-metabox-tabs">
240
  <li class="general">
241
- <a class="wpmseo_tablink" data-link="wpmseo_general"><?php _e('SEO Page optimization', 'wp-meta-seo'); ?></a>
242
  </li>
243
  <li class="social">
244
- <a class="wpmseo_tablink" data-link="wpmseo_social"><?php _e( 'Social for search engine', 'wordpress-seo' ) ?></a>
245
  </li>
246
  <?php do_action('wpmseo_tab_header'); ?>
247
  </ul>
@@ -253,14 +253,14 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
253
  }
254
  unset($key, $meta_field);
255
  }
256
- $this->do_tab('general', __('General', 'wp-meta-seo'), $content);
257
 
258
  $content = '';
259
  foreach ( $this->get_meta_field_defs( 'social' ) as $meta_key => $meta_field ) {
260
  $content .= $this->do_meta_box( $meta_field, $meta_key );
261
  }
262
 
263
- $this->do_tab( 'social', __( 'Social', 'wordpress-seo' ), $content );
264
  do_action('wpmseo_tab_content');
265
 
266
  echo '</div>';
@@ -275,7 +275,7 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
275
  $test = false;
276
  if(is_array($words_meta_title) && is_array($words_post_title)){
277
  foreach ($words_meta_title as $mtitle){
278
- if(in_array($mtitle, $words_post_title)){
279
  $test = true;
280
  }
281
  }
@@ -284,14 +284,14 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
284
  }
285
 
286
  if($test){
287
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wp-meta-seo').'</div>';
288
  $this->perc_score++;
289
  }else{
290
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content heading','wp-meta-seo').'</div>';
291
  }
292
 
293
  }else{
294
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wp-meta-seo').'</div>';
295
  $this->perc_score++;
296
  }
297
  return $output;
@@ -300,11 +300,10 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
300
  function metaseo_check_content($post){
301
  $words_meta_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_title));
302
  $words_post_content = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_content));
303
-
304
  $test1 = false;
305
  if(is_array($words_meta_title) && is_array($words_post_content)){
306
  foreach ($words_meta_title as $mtitle){
307
- if(in_array($mtitle, $words_post_content)){
308
  $test1 = true;
309
  }
310
  }
@@ -313,10 +312,10 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
313
  }
314
 
315
  if($test1){
316
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content','wp-meta-seo').'</div>';
317
  $this->perc_score++;
318
  }else{
319
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content','wp-meta-seo').'</div>';
320
  }
321
 
322
  return $output;
@@ -327,10 +326,10 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
327
  $info = pathinfo($pageurl);
328
 
329
  if($info['filename'] == sanitize_title($post->post_title)){
330
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page url matches with page title','wp-meta-seo').'</div>';
331
  $this->perc_score++;
332
  }else{
333
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page url matches with page title','wp-meta-seo').'</div>';
334
  }
335
 
336
  return $output;
@@ -338,27 +337,27 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
338
 
339
  function metaseo_check_metatitle($meta_title){
340
  if($meta_title != '' && strlen($meta_title) <= self::$meta_title_length){
341
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta title filled','wp-meta-seo').'</div>';
342
  $this->perc_score++;
343
  }else{
344
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta title filled','wp-meta-seo').'</div>';
345
  }
346
  return $output;
347
  }
348
 
349
  function metaseo_check_metadesc($meta_desc){
350
  if($meta_desc != '' && strlen($meta_desc) <= self::$meta_length){
351
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta description filled','wp-meta-seo').'</div>';
352
  $this->perc_score++;
353
  }else{
354
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta description filled','wp-meta-seo').'</div>';
355
  }
356
  return $output;
357
  }
358
 
359
  function metaseo_check_imageresize($content){
360
  if($content == '') {
361
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
362
  $this->perc_score++;
363
  return $output;
364
  }
@@ -381,21 +380,21 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
381
  }
382
 
383
  if($img_wrong){
384
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
385
  }else{
386
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
387
  $this->perc_score++;
388
  }
389
 
390
  }else{
391
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wp-meta-seo').'</div>';
392
  }
393
  return $output;
394
  }
395
 
396
  function metaseo_check_imagealt($content){
397
  if($content == '') {
398
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wp-meta-seo').'</div>';
399
  $this->perc_score++;
400
  return $output;
401
  }
@@ -413,14 +412,14 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
413
  }
414
 
415
  if($img_wrong){
416
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wp-meta-seo').'</div>';
417
  }else{
418
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wp-meta-seo').'</div>';
419
  $this->perc_score++;
420
  }
421
 
422
  }else{
423
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wp-meta-seo').'</div>';
424
  }
425
  return $output;
426
  }
@@ -467,7 +466,7 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
467
  global $post;
468
  ?>
469
  <div class="wpmseotab <?php echo esc_attr($id) ?>">
470
- <p class="reload_analysis"><span class="spinner" style="float: left;"></span><input type="button" name="reload_analysis" id="reload_analysis" class="button button-primary" value="<?php _e('Reload analysis','wp-meta-seo'); ?>"></p>
471
  <table class="form-table">
472
  <?php echo $content ?>
473
  </table>
54
  }
55
 
56
  public static function translate_meta_boxes() {
57
+ self::$meta_fields['general']['snippetpreview']['title'] = __('Results preview', 'wpms');
58
+ self::$meta_fields['general']['snippetpreview']['help'] = sprintf(__('This is a preview of what your content will looks like in search engine results: title, description and URL', 'wpms'), '<a target="_blank" href="https://www.joomunited.com/wordpress-products/wpms">', '</a>');
59
 
60
+ self::$meta_fields['general']['title']['title'] = __('Search engine title', 'wpms');
61
  self::$meta_fields['general']['title']['description'] = sprintf(__('<span id="metaseo_wpmseo_title-length">%s</span>'),self::$meta_length_reason);
62
+ self::$meta_fields['general']['title']['help'] = __('This is the title of your content that may be displayed in search engine results (meta title). By default it’s the content title (page title, post title…). 69 characters max allowed.', 'wpms');
63
 
64
+ self::$meta_fields['general']['desc']['title'] = __('Search engine description', 'wpms');
65
  self::$meta_fields['general']['desc']['description'] = sprintf(__('<span id="metaseo_wpmseo_desc-length">%s</span>'),self::$meta_length_reason);
66
+ self::$meta_fields['general']['desc']['help'] = __('The description of your content that may be displayed in search engine results aka meta description. By default search engine take an excerpt from your content (depending on the search query). 156 characters max allowed.', 'wpms');
67
 
68
+ self::$meta_fields['social']['opengraph-title']['title'] = __('Facebook Title','wpms');
69
+ self::$meta_fields['social']['opengraph-title']['description'] = __('Custom title to display when sharing this content on facebook, content title override','wpms');
70
 
71
+ self::$meta_fields['social']['opengraph-desc']['title'] = __('Facebook Description','wpms');
72
+ self::$meta_fields['social']['opengraph-desc']['description'] = __('Custom description to display when sharing this content on facebook, content description override','wpms');
73
 
74
+ self::$meta_fields['social']['opengraph-image']['title'] = __('Facebook Image','wpms');
75
+ self::$meta_fields['social']['opengraph-image']['description'] = __('Custom image to display when sharing this content on facebook, content description override, recommended size is 1200px x 630px','wpms');
76
 
77
+ self::$meta_fields['social']['twitter-title']['title'] = __('Twitter Title','wpms');
78
+ self::$meta_fields['social']['twitter-title']['description'] = __('Custom title to display when sharing this content on twitter, content title override','wpms');
79
 
80
+ self::$meta_fields['social']['twitter-desc']['title'] = __('Twitter Description','wpms');
81
+ self::$meta_fields['social']['twitter-desc']['description'] = __('Custom description to display when sharing this content on twitter, content description override','wpms');
82
 
83
+ self::$meta_fields['social']['twitter-image']['title'] = __('Twitter Image','wpms');
84
+ self::$meta_fields['social']['twitter-image']['description'] = __('Custom image to display when sharing this content on facebook, content description override, recommended min size 440px X 220px','wpms');
85
 
86
  do_action('wpmseo_tab_translate');
87
  }
120
 
121
  public function metaseo_localize_media_script() {
122
  return array(
123
+ 'choose_image' => __( 'Use Image', 'wpms' ),
124
  );
125
  }
126
 
138
  $date = $this->get_post_date($post);
139
 
140
  self::$meta_length = ( self::$meta_length - ( strlen($date) + 5 ) );
141
+ self::$meta_length_reason = __(' (because of date display)', 'wpms');
142
  }
143
 
144
  self::$meta_length_reason = apply_filters('wpmseo_desc_length_reason', self::$meta_length_reason, $post);
186
 
187
  return array_merge($cached_replacement_vars, array(
188
  'field_prefix' => self::$form_prefix,
189
+ 'choose_image' => __('Use Image', 'wpms'),
190
  'wpmseo_meta_desc_length' => self::$meta_length,
191
  'wpmseo_meta_title_length' => self::$meta_title_length,
192
  'wpmseo_title_template' => $title_template,
194
  'wpmseo_permalink_template' => $sample_permalink,
195
  'wpmseo_keyword_suggest_nonce' => wp_create_nonce('wpmseo-get-suggest'),
196
  'wpmseo_replace_vars_nonce' => wp_create_nonce('wpmseo-replace-vars'),
197
+ 'no_parent_text' => __('(no parent)', 'wpms'),
198
  ));
199
  }
200
 
238
  <div class="wpmseo-metabox-tabs-div">
239
  <ul class="wpmseo-metabox-tabs" id="wpmseo-metabox-tabs">
240
  <li class="general">
241
+ <a class="wpmseo_tablink" data-link="wpmseo_general"><?php _e('SEO Page optimization', 'wpms'); ?></a>
242
  </li>
243
  <li class="social">
244
+ <a class="wpmseo_tablink" data-link="wpmseo_social"><?php _e( 'Social for search engine', 'wp-meta-seo' ) ?></a>
245
  </li>
246
  <?php do_action('wpmseo_tab_header'); ?>
247
  </ul>
253
  }
254
  unset($key, $meta_field);
255
  }
256
+ $this->do_tab('general', __('General', 'wpms'), $content);
257
 
258
  $content = '';
259
  foreach ( $this->get_meta_field_defs( 'social' ) as $meta_key => $meta_field ) {
260
  $content .= $this->do_meta_box( $meta_field, $meta_key );
261
  }
262
 
263
+ $this->do_tab( 'social', __( 'Social', 'wp-meta-seo' ), $content );
264
  do_action('wpmseo_tab_content');
265
 
266
  echo '</div>';
275
  $test = false;
276
  if(is_array($words_meta_title) && is_array($words_post_title)){
277
  foreach ($words_meta_title as $mtitle){
278
+ if(in_array($mtitle, $words_post_title) && $mtitle!=''){
279
  $test = true;
280
  }
281
  }
284
  }
285
 
286
  if($test){
287
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
288
  $this->perc_score++;
289
  }else{
290
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content heading','wpms').'</div>';
291
  }
292
 
293
  }else{
294
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
295
  $this->perc_score++;
296
  }
297
  return $output;
300
  function metaseo_check_content($post){
301
  $words_meta_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_title));
302
  $words_post_content = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_content));
 
303
  $test1 = false;
304
  if(is_array($words_meta_title) && is_array($words_post_content)){
305
  foreach ($words_meta_title as $mtitle){
306
+ if(in_array($mtitle, $words_post_content) && $mtitle!=''){
307
  $test1 = true;
308
  }
309
  }
312
  }
313
 
314
  if($test1){
315
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content','wpms').'</div>';
316
  $this->perc_score++;
317
  }else{
318
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content','wpms').'</div>';
319
  }
320
 
321
  return $output;
326
  $info = pathinfo($pageurl);
327
 
328
  if($info['filename'] == sanitize_title($post->post_title)){
329
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page url matches with page title','wpms').'</div>';
330
  $this->perc_score++;
331
  }else{
332
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page url matches with page title','wpms').'</div>';
333
  }
334
 
335
  return $output;
337
 
338
  function metaseo_check_metatitle($meta_title){
339
  if($meta_title != '' && strlen($meta_title) <= self::$meta_title_length){
340
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta title filled','wpms').'</div>';
341
  $this->perc_score++;
342
  }else{
343
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta title filled','wpms').'</div>';
344
  }
345
  return $output;
346
  }
347
 
348
  function metaseo_check_metadesc($meta_desc){
349
  if($meta_desc != '' && strlen($meta_desc) <= self::$meta_length){
350
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta description filled','wpms').'</div>';
351
  $this->perc_score++;
352
  }else{
353
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta description filled','wpms').'</div>';
354
  }
355
  return $output;
356
  }
357
 
358
  function metaseo_check_imageresize($content){
359
  if($content == '') {
360
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
361
  $this->perc_score++;
362
  return $output;
363
  }
380
  }
381
 
382
  if($img_wrong){
383
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
384
  }else{
385
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
386
  $this->perc_score++;
387
  }
388
 
389
  }else{
390
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
391
  }
392
  return $output;
393
  }
394
 
395
  function metaseo_check_imagealt($content){
396
  if($content == '') {
397
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
398
  $this->perc_score++;
399
  return $output;
400
  }
412
  }
413
 
414
  if($img_wrong){
415
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wpms').'</div>';
416
  }else{
417
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
418
  $this->perc_score++;
419
  }
420
 
421
  }else{
422
+ $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wpms').'</div>';
423
  }
424
  return $output;
425
  }
466
  global $post;
467
  ?>
468
  <div class="wpmseotab <?php echo esc_attr($id) ?>">
469
+ <p class="reload_analysis"><span class="spinner" style="float: left;"></span><input type="button" name="reload_analysis" id="reload_analysis" class="button button-primary" value="<?php _e('Reload analysis','wpms'); ?>"></p>
470
  <table class="form-table">
471
  <?php echo $content ?>
472
  </table>
inc/pages/content-meta.php CHANGED
@@ -21,7 +21,7 @@ if (!empty($_REQUEST['_wp_http_referer'])) {
21
  <div class="wrap seo_extended_table_page">
22
  <div id="icon-edit-pages" class="icon32 icon32-posts-page"></div>
23
 
24
- <?php echo '<h2>' . __('Content Meta', 'wp-meta-seo') . '</h2>'; ?>
25
 
26
  <form id="wp-seo-meta-form" action="" method="post">
27
  <?php $metaseo_list_table->display(); ?>
21
  <div class="wrap seo_extended_table_page">
22
  <div id="icon-edit-pages" class="icon32 icon32-posts-page"></div>
23
 
24
+ <?php echo '<h2>' . __('Content Meta', 'wpms') . '</h2>'; ?>
25
 
26
  <form id="wp-seo-meta-form" action="" method="post">
27
  <?php $metaseo_list_table->display(); ?>
inc/pages/dashboard.php CHANGED
@@ -9,13 +9,13 @@ $url = 'http://www.alexa.com/siteinfo/' . $site_name;
9
  $dashboard = new MetaSeo_Dashboard();
10
 
11
  ?>
12
- <h1><?php echo __('DASH BOARD', 'wp-meta-seo') ?></h1>
13
  <div class="dashboard">
14
  <div class="left">
15
  <div class="dashboard-left" id='dashboard-left'>
16
  <header>
17
  <p>
18
- <div class="title-seo"><?php echo __('Image Meta :', 'wp-meta-seo'); ?> <span id="imgs_metas_statis"></span></div>
19
  <div class="noload" id="imgs_metas_statis_noload">
20
  <span class="loadtext" id="imgs_metas_statis_value"></span>
21
  <div class="load" id="imgs_metas_statis_load">
@@ -23,7 +23,7 @@ $dashboard = new MetaSeo_Dashboard();
23
  </div>
24
  </p>
25
  <p>
26
- <div class="title-seo"><?php echo __('Content Meta :', 'wp-meta-seo'); ?> <span id="metacontent"></span></div>
27
  <div class="noload" id="imgs_metas_statis_noload">
28
  <span class="loadtext" id="metacontent_value"></span>
29
  <div class="load" id="metacontent_load">
@@ -31,7 +31,7 @@ $dashboard = new MetaSeo_Dashboard();
31
  </div>
32
  </p>
33
  <p>
34
- <div class="title-seo"><?php echo __('Image optimization :', 'wp-meta-seo'); ?> <span id="imgs_statis"></span></div>
35
  <div class="noload" id="imgs_metas_statis_noload">
36
  <span class="loadtext" id="imgs_statis_value"></span>
37
  <div class="load" id="imgs_statis_load">
@@ -41,7 +41,7 @@ $dashboard = new MetaSeo_Dashboard();
41
  </header>
42
  <div id="canvas-holder">
43
  <div id="chart-container">
44
- <h2><?php echo __('Total', 'wp-meta-seo'); ?></h2>
45
  <div style="width: 300px; margin: 0px auto; position: relative;">
46
  <div id="avera">
47
  </div>
@@ -60,7 +60,7 @@ $dashboard = new MetaSeo_Dashboard();
60
 
61
  <div style="clear:left"></div>
62
  <div id="wpmetaseo-update-version">
63
- <h4><?php echo __('Latest WP Meta SEO News', 'wp-meta-seo') ?></h4>
64
  <ul>
65
  <li>&ndash;&nbsp<?php echo __('Version 1.0') ?></li>
66
  <li>&ndash;&nbsp<?php echo __('Version Beta') ?></li>
9
  $dashboard = new MetaSeo_Dashboard();
10
 
11
  ?>
12
+ <h1><?php echo __('DASH BOARD', 'wpms') ?></h1>
13
  <div class="dashboard">
14
  <div class="left">
15
  <div class="dashboard-left" id='dashboard-left'>
16
  <header>
17
  <p>
18
+ <div class="title-seo"><?php echo __('Image Meta :', 'wpms'); ?> <span id="imgs_metas_statis"></span></div>
19
  <div class="noload" id="imgs_metas_statis_noload">
20
  <span class="loadtext" id="imgs_metas_statis_value"></span>
21
  <div class="load" id="imgs_metas_statis_load">
23
  </div>
24
  </p>
25
  <p>
26
+ <div class="title-seo"><?php echo __('Content Meta :', 'wpms'); ?> <span id="metacontent"></span></div>
27
  <div class="noload" id="imgs_metas_statis_noload">
28
  <span class="loadtext" id="metacontent_value"></span>
29
  <div class="load" id="metacontent_load">
31
  </div>
32
  </p>
33
  <p>
34
+ <div class="title-seo"><?php echo __('Image optimization :', 'wpms'); ?> <span id="imgs_statis"></span></div>
35
  <div class="noload" id="imgs_metas_statis_noload">
36
  <span class="loadtext" id="imgs_statis_value"></span>
37
  <div class="load" id="imgs_statis_load">
41
  </header>
42
  <div id="canvas-holder">
43
  <div id="chart-container">
44
+ <h2><?php echo __('Total', 'wpms'); ?></h2>
45
  <div style="width: 300px; margin: 0px auto; position: relative;">
46
  <div id="avera">
47
  </div>
60
 
61
  <div style="clear:left"></div>
62
  <div id="wpmetaseo-update-version">
63
+ <h4><?php echo __('Latest WP Meta SEO News', 'wpms') ?></h4>
64
  <ul>
65
  <li>&ndash;&nbsp<?php echo __('Version 1.0') ?></li>
66
  <li>&ndash;&nbsp<?php echo __('Version Beta') ?></li>
inc/pages/image-meta.php CHANGED
@@ -20,7 +20,7 @@ if (!empty($_REQUEST['_wp_http_referer'])) {
20
  <div class="wrap seo_extended_table_page">
21
  <div id="icon-edit-pages" class="icon32 icon32-posts-page"></div>
22
 
23
- <?php echo '<h2>' . __('Image Meta', 'wp-meta-seo') . '</h2>'; ?>
24
 
25
  <form id="wp-seo-meta-form" action="" method="post">
26
 
@@ -34,5 +34,7 @@ if (!empty($_REQUEST['_wp_http_referer'])) {
34
  jQuery(document).ready(function(){
35
  //Scan all posts to find a group of images in their content
36
  metaSeoScanImages();
 
37
  });
 
38
  </script>
20
  <div class="wrap seo_extended_table_page">
21
  <div id="icon-edit-pages" class="icon32 icon32-posts-page"></div>
22
 
23
+ <?php echo '<h2>' . __('Image Meta', 'wpms') . '</h2>'; ?>
24
 
25
  <form id="wp-seo-meta-form" action="" method="post">
26
 
34
  jQuery(document).ready(function(){
35
  //Scan all posts to find a group of images in their content
36
  metaSeoScanImages();
37
+ autosize(document.querySelectorAll('.metaseo-img-meta'));
38
  });
39
+
40
  </script>
inc/pages/settings.php CHANGED
@@ -1,4 +1,4 @@
1
- <h2 id="wpio_settings"><?php _e('Wp Meta SEO Settings','wp-meta-seo') ?></h2>
2
  <form method="post" action="options.php">
3
  <?php
4
  settings_fields( 'Wp Meta SEO' );
1
+ <h2 id="wpio_settings"><?php _e('Wp Meta SEO Settings','wpms') ?></h2>
2
  <form method="post" action="options.php">
3
  <?php
4
  settings_fields( 'Wp Meta SEO' );
js/autosize.js ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ Autosize 3.0.13
3
+ license: MIT
4
+ http://www.jacklmoore.com/autosize
5
+ */
6
+ (function (global, factory) {
7
+ if (typeof define === 'function' && define.amd) {
8
+ define(['exports', 'module'], factory);
9
+ } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {
10
+ factory(exports, module);
11
+ } else {
12
+ var mod = {
13
+ exports: {}
14
+ };
15
+ factory(mod.exports, mod);
16
+ global.autosize = mod.exports;
17
+ }
18
+ })(this, function (exports, module) {
19
+ 'use strict';
20
+
21
+ var set = typeof Set === 'function' ? new Set() : (function () {
22
+ var list = [];
23
+
24
+ return {
25
+ has: function has(key) {
26
+ return Boolean(list.indexOf(key) > -1);
27
+ },
28
+ add: function add(key) {
29
+ list.push(key);
30
+ },
31
+ 'delete': function _delete(key) {
32
+ list.splice(list.indexOf(key), 1);
33
+ }};
34
+ })();
35
+
36
+ function assign(ta) {
37
+ var _ref = arguments[1] === undefined ? {} : arguments[1];
38
+
39
+ var _ref$setOverflowX = _ref.setOverflowX;
40
+ var setOverflowX = _ref$setOverflowX === undefined ? true : _ref$setOverflowX;
41
+ var _ref$setOverflowY = _ref.setOverflowY;
42
+ var setOverflowY = _ref$setOverflowY === undefined ? true : _ref$setOverflowY;
43
+
44
+ if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || set.has(ta))
45
+ return;
46
+
47
+ var heightOffset = null;
48
+ var overflowY = null;
49
+ var clientWidth = ta.clientWidth;
50
+
51
+ function init() {
52
+ var style = window.getComputedStyle(ta, null);
53
+
54
+ overflowY = style.overflowY;
55
+
56
+ if (style.resize === 'vertical') {
57
+ ta.style.resize = 'none';
58
+ } else if (style.resize === 'both') {
59
+ ta.style.resize = 'horizontal';
60
+ }
61
+
62
+ if (style.boxSizing === 'content-box') {
63
+ heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));
64
+ } else {
65
+ heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
66
+ }
67
+ // Fix when a textarea is not on document body and heightOffset is Not a Number
68
+ if (isNaN(heightOffset)) {
69
+ heightOffset = 0;
70
+ }
71
+
72
+ update();
73
+ }
74
+
75
+ function changeOverflow(value) {
76
+ {
77
+ // Chrome/Safari-specific fix:
78
+ // When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
79
+ // made available by removing the scrollbar. The following forces the necessary text reflow.
80
+ var width = ta.style.width;
81
+ ta.style.width = '0px';
82
+ // Force reflow:
83
+ /* jshint ignore:start */
84
+ ta.offsetWidth;
85
+ /* jshint ignore:end */
86
+ ta.style.width = width;
87
+ }
88
+
89
+ overflowY = value;
90
+
91
+ if (setOverflowY) {
92
+ ta.style.overflowY = value;
93
+ }
94
+
95
+ resize();
96
+ }
97
+
98
+ function resize() {
99
+ var htmlTop = window.pageYOffset;
100
+ var bodyTop = document.body.scrollTop;
101
+ var originalHeight = ta.style.height;
102
+
103
+ ta.style.height = 'auto';
104
+
105
+ var endHeight = ta.scrollHeight + heightOffset;
106
+
107
+ if (ta.scrollHeight === 0) {
108
+ // If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
109
+ ta.style.height = originalHeight;
110
+ return;
111
+ }
112
+
113
+ ta.style.height = endHeight + 'px';
114
+
115
+ // used to check if an update is actually necessary on window.resize
116
+ clientWidth = ta.clientWidth;
117
+
118
+ // prevents scroll-position jumping
119
+ document.documentElement.scrollTop = htmlTop;
120
+ document.body.scrollTop = bodyTop;
121
+ }
122
+
123
+ function update() {
124
+ var startHeight = ta.style.height;
125
+
126
+ resize();
127
+
128
+ var style = window.getComputedStyle(ta, null);
129
+
130
+ if (style.height !== ta.style.height) {
131
+ if (overflowY !== 'visible') {
132
+ changeOverflow('visible');
133
+ }
134
+ } else {
135
+ if (overflowY !== 'hidden') {
136
+ changeOverflow('hidden');
137
+ }
138
+ }
139
+
140
+ if (startHeight !== ta.style.height) {
141
+ var evt = document.createEvent('Event');
142
+ evt.initEvent('autosize:resized', true, false);
143
+ ta.dispatchEvent(evt);
144
+ }
145
+ }
146
+
147
+ var pageResize = function pageResize() {
148
+ if (ta.clientWidth !== clientWidth) {
149
+ update();
150
+ }
151
+ };
152
+
153
+ var destroy = (function (style) {
154
+ window.removeEventListener('resize', pageResize);
155
+ ta.removeEventListener('input', update);
156
+ ta.removeEventListener('keyup', update);
157
+ ta.removeEventListener('autosize:destroy', destroy);
158
+ set['delete'](ta);
159
+
160
+ Object.keys(style).forEach(function (key) {
161
+ ta.style[key] = style[key];
162
+ });
163
+ }).bind(ta, {
164
+ height: ta.style.height,
165
+ resize: ta.style.resize,
166
+ overflowY: ta.style.overflowY,
167
+ overflowX: ta.style.overflowX,
168
+ wordWrap: ta.style.wordWrap});
169
+
170
+ ta.addEventListener('autosize:destroy', destroy);
171
+
172
+ // IE9 does not fire onpropertychange or oninput for deletions,
173
+ // so binding to onkeyup to catch most of those events.
174
+ // There is no way that I know of to detect something like 'cut' in IE9.
175
+ if ('onpropertychange' in ta && 'oninput' in ta) {
176
+ ta.addEventListener('keyup', update);
177
+ }
178
+
179
+ window.addEventListener('resize', pageResize);
180
+ ta.addEventListener('input', update);
181
+ ta.addEventListener('autosize:update', update);
182
+ set.add(ta);
183
+
184
+ if (setOverflowX) {
185
+ ta.style.overflowX = 'hidden';
186
+ ta.style.wordWrap = 'break-word';
187
+ }
188
+
189
+ init();
190
+ }
191
+
192
+ function destroy(ta) {
193
+ if (!(ta && ta.nodeName && ta.nodeName === 'TEXTAREA'))
194
+ return;
195
+ var evt = document.createEvent('Event');
196
+ evt.initEvent('autosize:destroy', true, false);
197
+ ta.dispatchEvent(evt);
198
+ }
199
+
200
+ function update(ta) {
201
+ if (!(ta && ta.nodeName && ta.nodeName === 'TEXTAREA'))
202
+ return;
203
+ var evt = document.createEvent('Event');
204
+ evt.initEvent('autosize:update', true, false);
205
+ ta.dispatchEvent(evt);
206
+ }
207
+
208
+ var autosize = null;
209
+
210
+ // Do nothing in Node.js environment and IE8 (or lower)
211
+ if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
212
+ autosize = function (el) {
213
+ return el;
214
+ };
215
+ autosize.destroy = function (el) {
216
+ return el;
217
+ };
218
+ autosize.update = function (el) {
219
+ return el;
220
+ };
221
+ } else {
222
+ autosize = function (el, options) {
223
+ if (el) {
224
+ Array.prototype.forEach.call(el.length ? el : [el], function (x) {
225
+ return assign(x, options);
226
+ });
227
+ }
228
+ return el;
229
+ };
230
+ autosize.destroy = function (el) {
231
+ if (el) {
232
+ Array.prototype.forEach.call(el.length ? el : [el], destroy);
233
+ }
234
+ return el;
235
+ };
236
+ autosize.update = function (el) {
237
+ if (el) {
238
+ Array.prototype.forEach.call(el.length ? el : [el], update);
239
+ }
240
+ return el;
241
+ };
242
+ }
243
+
244
+ module.exports = autosize;
245
+ });
languages/wpms-en_GB.mo ADDED
Binary file
languages/wpms-en_GB.po ADDED
@@ -0,0 +1,386 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "Language: en_GB\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.5\n"
13
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
14
+
15
+ msgid "Twitter username (without @)"
16
+ msgstr "Twitter username (without @)"
17
+
18
+ msgid "Facebook profile URL"
19
+ msgstr "Facebook profile URL"
20
+
21
+ msgid ""
22
+ "2 plugins that are doing almost the same thing detected: disable AIO SEO or "
23
+ "Yoast SEO to avoid conflict."
24
+ msgstr ""
25
+ "2 plugins that are doing almost the same thing detected: disable AIO SEO or "
26
+ "Yoast SEO to avoid conflict."
27
+
28
+ msgid ""
29
+ "We have found that you’re using All In One SEO plugin, WP Meta SEO can "
30
+ "import the meta from this plugin, %s"
31
+ msgstr ""
32
+ "We have found that you’re using All In One SEO plugin, WP Meta SEO can "
33
+ "import the meta from this plugin, %s"
34
+
35
+ msgid ""
36
+ "We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the "
37
+ "meta from this plugin, %s"
38
+ msgstr ""
39
+ "We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the "
40
+ "meta from this plugin, %s"
41
+
42
+ msgid "Results preview"
43
+ msgstr "Results preview"
44
+
45
+ msgid ""
46
+ "This is a preview of what your content will looks like in search engine "
47
+ "results: title, description and URL"
48
+ msgstr ""
49
+ "This is a preview of what your content will looks like in search engine "
50
+ "results: title, description and URL"
51
+
52
+ msgid "Search engine title"
53
+ msgstr "Search engine title"
54
+
55
+ msgid ""
56
+ "This is the title of your content that may be displayed in search engine "
57
+ "results (meta title). By default it’s the content title (page title, post "
58
+ "title…). 69 characters max allowed."
59
+ msgstr ""
60
+ "This is the title of your content that may be displayed in search engine "
61
+ "results (meta title). By default it’s the content title (page title, post "
62
+ "title…). 69 characters max allowed."
63
+
64
+ msgid "Search engine description"
65
+ msgstr "Search engine description"
66
+
67
+ msgid ""
68
+ "The description of your content that may be displayed in search engine "
69
+ "results aka meta description. By default search engine take an excerpt from "
70
+ "your content (depending on the search query). 156 characters max allowed."
71
+ msgstr ""
72
+ "The description of your content that may be displayed in search engine "
73
+ "results aka meta description. By default search engine take an excerpt from "
74
+ "your content (depending on the search query). 156 characters max allowed."
75
+
76
+ msgid "Facebook Title"
77
+ msgstr "Facebook Title"
78
+
79
+ msgid ""
80
+ "Custom title to display when sharing this content on facebook, content title "
81
+ "override"
82
+ msgstr ""
83
+ "Custom title to display when sharing this content on facebook, content title "
84
+ "override"
85
+
86
+ msgid "Facebook Description"
87
+ msgstr "Facebook Description"
88
+
89
+ msgid ""
90
+ "Custom description to display when sharing this content on facebook, content "
91
+ "description override"
92
+ msgstr ""
93
+ "Custom description to display when sharing this content on facebook, content "
94
+ "description override"
95
+
96
+ msgid "Facebook Image"
97
+ msgstr "Facebook Image"
98
+
99
+ msgid ""
100
+ "Custom image to display when sharing this content on facebook, content "
101
+ "description override, recommended size is 1200px x 630px"
102
+ msgstr ""
103
+ "Custom image to display when sharing this content on facebook, content "
104
+ "description override, recommended size is 1200px x 630px"
105
+
106
+ msgid "Twitter Title"
107
+ msgstr "Twitter Title"
108
+
109
+ msgid ""
110
+ "Custom title to display when sharing this content on twitter, content title "
111
+ "override"
112
+ msgstr ""
113
+ "Custom title to display when sharing this content on twitter, content title "
114
+ "override"
115
+
116
+ msgid "Twitter Description"
117
+ msgstr "Twitter Description"
118
+
119
+ msgid ""
120
+ "Custom description to display when sharing this content on twitter, content "
121
+ "description override"
122
+ msgstr ""
123
+ "Custom description to display when sharing this content on twitter, content "
124
+ "description override"
125
+
126
+ msgid "Twitter Image"
127
+ msgstr "Twitter Image"
128
+
129
+ msgid ""
130
+ "Custom image to display when sharing this content on facebook, content "
131
+ "description override, recommended min size 440px X 220px"
132
+ msgstr ""
133
+ "Custom image to display when sharing this content on facebook, content "
134
+ "description override, recommended min size 440px X 220px"
135
+
136
+ msgid "Use Image"
137
+ msgstr "Use Image"
138
+
139
+ msgid " (because of date display)"
140
+ msgstr " (because of date display)"
141
+
142
+ msgid "(no parent)"
143
+ msgstr "(no parent)"
144
+
145
+ msgid "General"
146
+ msgstr "General"
147
+
148
+ msgid "Social"
149
+ msgstr "Social"
150
+
151
+ msgid "Page title word in content heading"
152
+ msgstr "Page title word in content heading"
153
+
154
+ msgid "Page title word in content"
155
+ msgstr "Page title word in content"
156
+
157
+ msgid "Page url matches with page title"
158
+ msgstr "Page url matches with page title"
159
+
160
+ msgid "Meta title filled"
161
+ msgstr "Meta title filled"
162
+
163
+ msgid "Meta description filled"
164
+ msgstr "Meta description filled"
165
+
166
+ msgid "Wrong image resize"
167
+ msgstr "Wrong image resize"
168
+
169
+ msgid "Image have meta title or alt"
170
+ msgstr "Image have meta title or alt"
171
+
172
+ msgid "SEO Page optimization"
173
+ msgstr "SEO Page optimization"
174
+
175
+ msgid "Social for search engine"
176
+ msgstr "Social for search engine"
177
+
178
+ msgid "Reload analysis"
179
+ msgstr "Reload analysis"
180
+
181
+ msgid "Filter by date"
182
+ msgstr "Filter by date"
183
+
184
+ msgid "All dates"
185
+ msgstr "All dates"
186
+
187
+ msgid "ID"
188
+ msgstr "ID"
189
+
190
+ msgid "Image"
191
+ msgstr "Image"
192
+
193
+ msgid "Name"
194
+ msgstr "Name"
195
+
196
+ msgid "Optimization Info"
197
+ msgstr "Optimization Info"
198
+
199
+ msgid "Alternative text"
200
+ msgstr "Alternative text"
201
+
202
+ msgid "Title"
203
+ msgstr "Title"
204
+
205
+ msgid "Legend"
206
+ msgstr "Legend"
207
+
208
+ msgid "Description"
209
+ msgstr "Description"
210
+
211
+ msgid "Select All"
212
+ msgstr "Select All"
213
+
214
+ msgid "Filter"
215
+ msgstr "Filter"
216
+
217
+ msgid ""
218
+ "We didn't find any image which needed to be updated regarding meta "
219
+ "information"
220
+ msgstr ""
221
+ "We didn't find any image which needed to be updated regarding meta "
222
+ "information"
223
+
224
+ msgid "This image has still not been inserted in any post!"
225
+ msgstr "This image has still not been inserted in any post!"
226
+
227
+ msgid "We found %s which needed to optimize"
228
+ msgstr "We found %s which needed to optimize"
229
+
230
+ msgid "Replace?"
231
+ msgstr "Replace?"
232
+
233
+ msgid "Replace all"
234
+ msgstr "Replace all"
235
+
236
+ msgid "The post doesn't exist, please select another one"
237
+ msgstr "The post doesn't exist, please select another one"
238
+
239
+ msgid "There is a problem when update image name"
240
+ msgstr "There is a problem when update image name"
241
+
242
+ msgid "Image name changed"
243
+ msgstr "Image name changed"
244
+
245
+ msgid "Name already exist"
246
+ msgstr "Name already exist"
247
+
248
+ msgid "File doesn't existed"
249
+ msgstr "File doesn't existed"
250
+
251
+ msgid "Should not be empty"
252
+ msgstr "Should not be empty"
253
+
254
+ msgid "There is a problem during image meta update"
255
+ msgstr "There is a problem during image meta update"
256
+
257
+ msgid "This content has been deleted, please check again!"
258
+ msgstr "This content has been deleted, please check again!"
259
+
260
+ msgid "The post haven't been updated, please check again!"
261
+ msgstr "The post haven't been updated, please check again!"
262
+
263
+ msgid "This image has been removed from the post, please check again!"
264
+ msgstr "This image has been removed from the post, please check again!"
265
+
266
+ msgid "Content of the post is empty, please check again"
267
+ msgstr "Content of the post is empty, please check again"
268
+
269
+ msgid "We can't get traffic rank from Alexa for this website"
270
+ msgstr "We can't get traffic rank from Alexa for this website"
271
+
272
+ msgid "Meta Title"
273
+ msgstr "Meta Title"
274
+
275
+ msgid "Meta Description"
276
+ msgstr "Meta Description"
277
+
278
+ msgid "(no title)"
279
+ msgstr "(no title)"
280
+
281
+ msgid "Edit this item"
282
+ msgstr "Edit this item"
283
+
284
+ msgid "Edit"
285
+ msgstr "Edit"
286
+
287
+ msgid "View"
288
+ msgstr "View"
289
+
290
+ msgid "Preview"
291
+ msgstr "Preview"
292
+
293
+ msgid ""
294
+ "This is a preview of what this content might looks like in Google's search "
295
+ "results."
296
+ msgstr ""
297
+ "Prévisualisation de la manière dont le contenu sera affiché dans les "
298
+ "résultats de recherche"
299
+
300
+ msgid "Snippet Preview"
301
+ msgstr "Snippet Preview"
302
+
303
+ msgid "Facebook profile URL "
304
+ msgstr "Facebook profile URL "
305
+
306
+ msgid "Twitter Username "
307
+ msgstr "Twitter Username "
308
+
309
+ msgid "Meta block edition "
310
+ msgstr "Meta block edition "
311
+
312
+ msgid "Modification was saved"
313
+ msgstr "Modification was saved"
314
+
315
+ msgid "Meta title was not saved"
316
+ msgstr "Meta title was not saved"
317
+
318
+ msgid "Meta description was not saved"
319
+ msgstr "Meta description was not saved"
320
+
321
+ msgid "Dashboard"
322
+ msgstr "Dashboard"
323
+
324
+ msgid "WP Meta SEO"
325
+ msgstr "WP Meta SEO"
326
+
327
+ msgid "Content meta"
328
+ msgstr "Content meta"
329
+
330
+ msgid "Image meta"
331
+ msgstr "Image meta"
332
+
333
+ msgid "Settings"
334
+ msgstr "Settings"
335
+
336
+ msgid "Show/hide meta block edition below content"
337
+ msgstr "Show/hide meta block edition below content"
338
+
339
+ msgid "This post is not existed or deleted, please select another one"
340
+ msgstr "This post is not existed or deleted, please select another one"
341
+
342
+ msgid "Well! This image is so good now."
343
+ msgstr "Well! This image is so good now."
344
+
345
+ msgid "Oops! An error occured when updating the post, please try again"
346
+ msgstr "Oops! An error occured when updating the post, please try again"
347
+
348
+ msgid "Resize image"
349
+ msgstr "Resize image"
350
+
351
+ msgid "Image sizes are good!"
352
+ msgstr "Image sizes are good!"
353
+
354
+ msgid "Fix meta"
355
+ msgstr "Fix meta"
356
+
357
+ msgid "Edit meta"
358
+ msgstr "Edit meta"
359
+
360
+ msgid "N/A"
361
+ msgstr "N/A"
362
+
363
+ msgid "Poor"
364
+ msgstr "Poor"
365
+
366
+ msgid "OK"
367
+ msgstr "OK"
368
+
369
+ msgid "Good"
370
+ msgstr "Good"
371
+
372
+ msgid "Bad"
373
+ msgstr "Bad"
374
+
375
+ msgid "Homepage meta title "
376
+ msgstr "Homepage meta title "
377
+
378
+ msgid "Homepage meta description "
379
+ msgstr "Homepage meta description "
380
+
381
+ #~ msgid ""
382
+ #~ " This is a rendering of what this content might looks like in Google's "
383
+ #~ "search results."
384
+ #~ msgstr ""
385
+ #~ " This is a rendering of what this content might looks like in Google's "
386
+ #~ "search results."
languages/wpms-fr_FR.mo ADDED
Binary file
languages/wpms-fr_FR.po ADDED
@@ -0,0 +1,318 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WPMS 1.2\n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: \n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "Language: fr_FR\n"
12
+ "X-Generator: Poedit 1.8.5\n"
13
+
14
+ msgid "Twitter username (without @)"
15
+ msgstr "ID Twitter (sans le @)"
16
+
17
+ msgid "Facebook profile URL"
18
+ msgstr "Adresse URL du profil Facebook"
19
+
20
+ msgid "Be careful you installed 2 extensions doing almost the same thing, please deactivate AIOSEO or Yoast in order to work more clearly!"
21
+ msgstr "Attention plusieurs plugins sont susceptibles d'effectuer les même tâches, essayez de désactiver AIO SEO ou Yoast SEO"
22
+
23
+ msgid "We have found that you’re using All In One Pack Plugin, WP Meta SEO can import the meta from this plugin, %s"
24
+ msgstr "Vous utilisez actuellement All In One SEO Plugin, WP Meta SEO put importer les données de ce plugin pour vous, %s"
25
+
26
+ msgid "We have found that you’re using Yoast SEO Plugin, WP Meta SEO can import the meta from this plugin, %s"
27
+ msgstr "Vous utilisez actuellement Yoast SEO Plugin, WP Meta SEO put importer les données de ce plugin pour vous, %s"
28
+
29
+ msgid "Results preview"
30
+ msgstr "Prévisualisation"
31
+
32
+ msgid "This is a preview of what your content will looks like in search engine results: title, description and URL"
33
+ msgstr "Prévisualisation des résultats de recherche, titre, description et URL"
34
+
35
+ msgid "Search engine title"
36
+ msgstr "Titre"
37
+
38
+ msgid "This is the title of your content that may be displayed in search engine results (meta title). By default it’s the content title (page title, post title…). 69 characters max allowed."
39
+ msgstr "Ceci est le titre de votre contenu qui pourra être reprit par les moteurs de recherche (meta title). Par défaut il s'agit du titre du contenu. 69 caractères autorisés."
40
+
41
+ msgid "Search engine description"
42
+ msgstr "Description"
43
+
44
+ msgid "The description of your content that may be displayed in search engine results aka meta description. By default search engine take an excerpt from your content (depending on the search query). 156 characters max allowed."
45
+ msgstr "Ceci est la description de votre contenu qui pourra être reprit par les moteurs de recherche (meta description). Par défaut il s'agit d'un extrait de votre contenu.156 caractères autorisés."
46
+
47
+ msgid "Facebook Title"
48
+ msgstr "Titre facebook"
49
+
50
+ msgid "Custom title to display when sharing this content on facebook, content title override"
51
+ msgstr "Titre customisé lors du partage de ce contenu sur Facebook"
52
+
53
+ msgid "Facebook Description"
54
+ msgstr "Description Facebook"
55
+
56
+ msgid "Custom description to display when sharing this content on facebook, content description override"
57
+ msgstr "Description customisé lors du partage de ce contenu sur Facebook"
58
+
59
+ msgid "Facebook Image"
60
+ msgstr "Image Facebook"
61
+
62
+ msgid "Custom image to display when sharing this content on facebook, content description override, recommended size is 1200px x 630px"
63
+ msgstr "Image customisé lors du partage de ce contenu sur Facebook, taille recommandée 1200px x 630px"
64
+
65
+ msgid "Twitter Title"
66
+ msgstr "Titre Twitter"
67
+
68
+ msgid "Custom title to display when sharing this content on twitter, content title override"
69
+ msgstr "Titre customisé lors du partage de ce contenu sur Twitter"
70
+
71
+ msgid "Twitter Description"
72
+ msgstr "Description Twitter"
73
+
74
+ msgid "Custom description to display when sharing this content on twitter, content description override"
75
+ msgstr "Description customisé lors du partage de ce contenu sur Twitter"
76
+
77
+ msgid "Twitter Image"
78
+ msgstr "Image Twitter"
79
+
80
+ msgid "Custom image to display when sharing this content on facebook, content description override, recommended min size 440px X 220px"
81
+ msgstr "Image customisé lors du partage de ce contenu sur Twitter, taille recommandée 440px x 220px"
82
+
83
+ msgid "Use Image"
84
+ msgstr "Utiliser image"
85
+
86
+ msgid " (because of date display)"
87
+ msgstr " (because of date display)"
88
+
89
+ msgid "(no parent)"
90
+ msgstr "(no parent)"
91
+
92
+ msgid "General"
93
+ msgstr "General"
94
+
95
+ msgid "Social"
96
+ msgstr "Social"
97
+
98
+ msgid "Page title word in content heading"
99
+ msgstr "Mot du titre dans un titre du contenu"
100
+
101
+ msgid "Page title word in content"
102
+ msgstr "Mot du titre dans le contenu"
103
+
104
+ msgid "Page url matches with page title"
105
+ msgstr "URL de page correspond au titre de page"
106
+
107
+ msgid "Meta title filled"
108
+ msgstr "Meta title remplie"
109
+
110
+ msgid "Meta description filled"
111
+ msgstr "Meta description remplie"
112
+
113
+ msgid "Wrong image resize"
114
+ msgstr "Check taille d'image"
115
+
116
+ msgid "Image have meta title or alt"
117
+ msgstr "Les images ont des meta title ou alt"
118
+
119
+ msgid "SEO Page optimization"
120
+ msgstr "Optimisation moteur de recherche"
121
+
122
+ msgid "Social for search engine"
123
+ msgstr "Affichage partage réseaux sociaux"
124
+
125
+ msgid "Reload analysis"
126
+ msgstr "Relancer l'analyse"
127
+
128
+ msgid "Filter by date"
129
+ msgstr "Filtrer par date"
130
+
131
+ msgid "All dates"
132
+ msgstr "Toutes les dates"
133
+
134
+ msgid "ID"
135
+ msgstr "ID"
136
+
137
+ msgid "Image"
138
+ msgstr "Image"
139
+
140
+ msgid "Name"
141
+ msgstr "Nom"
142
+
143
+ msgid "Optimization Info"
144
+ msgstr "Info optimisation"
145
+
146
+ msgid "Alternative text"
147
+ msgstr "texte alternatif"
148
+
149
+ msgid "Title"
150
+ msgstr "Titre"
151
+
152
+ msgid "Legend"
153
+ msgstr "Légende"
154
+
155
+ msgid "Description"
156
+ msgstr "Description"
157
+
158
+ msgid "Select All"
159
+ msgstr "Tout selectionner"
160
+
161
+ msgid "Filter"
162
+ msgstr "Filtrer"
163
+
164
+ msgid "We found 0 image which needed to add or change meta information"
165
+ msgstr "Nous n'avons pas trouvé d'images qui nécessite l'ajout ou l'édition des meta"
166
+
167
+ msgid "This image has still not been inserted in any post!"
168
+ msgstr "Cette image n'a été ajouté dans aucun de vos contenus"
169
+
170
+ msgid "We found %s which needed to optimize"
171
+ msgstr "Nous avons trouvé %s qui nécessite une optimisation"
172
+
173
+ msgid "Replace?"
174
+ msgstr "Remplacer ?"
175
+
176
+ msgid "Replace All"
177
+ msgstr "Tout remplacer"
178
+
179
+ msgid "The post is not existed, please choose one another!"
180
+ msgstr "Ce post n'existe pas, merci d'un sélectionner un autre"
181
+
182
+ msgid "There is a problem when update image name"
183
+ msgstr "Erreur lors du changement de nom d'image"
184
+
185
+ msgid "Image name was changed"
186
+ msgstr "Nom d'image changé"
187
+
188
+ msgid "Name is existing"
189
+ msgstr "Ce nom existe déjà"
190
+
191
+ msgid "File is not existed"
192
+ msgstr "Ce fichier n'existe plus"
193
+
194
+ msgid "Should not be empty"
195
+ msgstr "Ne peut être vide"
196
+
197
+ msgid "There is a problem when update image meta!"
198
+ msgstr "Erreur lors de la mise à jour des meta"
199
+
200
+ msgid "The post has been deleted before, please check again!"
201
+ msgstr "Ce contenu a été supprimé, merci de recharger la page"
202
+
203
+ msgid "The post haven't been updated, please check again!"
204
+ msgstr "Ce post n'a pas été mis à jour, merci de revérifier"
205
+
206
+ msgid "This image has been removed from the post, please check again!"
207
+ msgstr "Cette image a été supprimée du contenu"
208
+
209
+ msgid "Content of the post is empty, please check again"
210
+ msgstr "Le contenu est vide, merci de revérifier"
211
+
212
+ msgid "We can't get rank of this site from Alexa.com!"
213
+ msgstr "Impossible de déterminer le Traffic Rank Alexa pour ce site"
214
+
215
+ msgid "Meta Title"
216
+ msgstr "Meta titre"
217
+
218
+ msgid "Meta Description"
219
+ msgstr "Meta description"
220
+
221
+ msgid "(no title)"
222
+ msgstr "(no title)"
223
+
224
+ msgid "Edit this item"
225
+ msgstr "Editer cet item"
226
+
227
+ msgid "Edit"
228
+ msgstr "Editer"
229
+
230
+ msgid "View"
231
+ msgstr "Afficher"
232
+
233
+ msgid "Preview"
234
+ msgstr "Prévisualiser"
235
+
236
+ msgid " This is a rendering of what this post might look like in Google's search results."
237
+ msgstr "Prévisualisation des résultats de recherche Google"
238
+
239
+ msgid "Snippet Preview"
240
+ msgstr "Prévisualisation"
241
+
242
+ msgid "Facebook profile URL "
243
+ msgstr "Lien URL profil Facebook"
244
+
245
+ msgid "Twitter Username "
246
+ msgstr "Nom d'utilisateur Twitter"
247
+
248
+ msgid "Meta block edition "
249
+ msgstr "Meta édition"
250
+
251
+ msgid "Modification was saved"
252
+ msgstr "Modifications sauvegardées"
253
+
254
+ msgid "Meta title was not saved"
255
+ msgstr "Meta titre non sauvegardé"
256
+
257
+ msgid "Meta description was not saved"
258
+ msgstr "Meta description non sauvegardé"
259
+
260
+ msgid "Dashboard"
261
+ msgstr "Tableau de bors"
262
+
263
+ msgid "WP Meta SEO"
264
+ msgstr "WP Meta SEO"
265
+
266
+ msgid "Content meta"
267
+ msgstr "Contenu meta"
268
+
269
+ msgid "Image meta"
270
+ msgstr "Image meta"
271
+
272
+ msgid "Settings"
273
+ msgstr "Paramètres"
274
+
275
+ msgid "Show/hide meta block edition below content"
276
+ msgstr "Afficher/masquer le block meta sous les contenus"
277
+
278
+ msgid "This post is not existed or deleted, please choose one another!"
279
+ msgstr "Ce post n'existe plus, merci d'en sélectionner un autre"
280
+
281
+ msgid "Well! This image is so good now."
282
+ msgstr "Parfait! image optimisée"
283
+
284
+ msgid "Opps! An error occured when updating the post, please try again"
285
+ msgstr "Oups! une erreur est survenue lors de la mise à jour du contenu"
286
+
287
+ msgid "Resize image"
288
+ msgstr "Redimensionner image"
289
+
290
+ msgid "Image sizes are good!"
291
+ msgstr "Taille d'image OK!"
292
+
293
+ msgid "Fix meta"
294
+ msgstr "Améliorer meta"
295
+
296
+ msgid "Edit meta"
297
+ msgstr "Editer meta"
298
+
299
+ msgid "N/A"
300
+ msgstr "N/A"
301
+
302
+ msgid "Poor"
303
+ msgstr "Mauvaise qualité"
304
+
305
+ msgid "OK"
306
+ msgstr "OK"
307
+
308
+ msgid "Good"
309
+ msgstr "Bon"
310
+
311
+ msgid "Bad"
312
+ msgstr "Mauvais"
313
+
314
+ msgid "Homepage meta title "
315
+ msgstr "Meta info page d'accueil"
316
+
317
+ msgid "Homepage meta description "
318
+ msgstr "Description page d'accueil"
languages/wpms.pot ADDED
@@ -0,0 +1,319 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #, fuzzy
2
+ msgid ""
3
+ msgstr ""
4
+ "Project-Id-Version: WP Meta SEO\n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Language: en_GB\n"
13
+ "X-Generator: Poedit 1.8.5\n"
14
+
15
+ msgid "Twitter username (without @)"
16
+ msgstr ""
17
+
18
+ msgid "Facebook profile URL"
19
+ msgstr ""
20
+
21
+ msgid "2 plugins that are doing almost the same thing detected: disable AIO SEO or Yoast SEO to avoid conflict."
22
+ msgstr ""
23
+
24
+ msgid "We have found that you’re using All In One SEO plugin, WP Meta SEO can import the meta from this plugin, %s"
25
+ msgstr ""
26
+
27
+ msgid "We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the meta from this plugin, %s"
28
+ msgstr ""
29
+
30
+ msgid "Results preview"
31
+ msgstr ""
32
+
33
+ msgid "This is a preview of what your content will looks like in search engine results: title, description and URL"
34
+ msgstr ""
35
+
36
+ msgid "Search engine title"
37
+ msgstr ""
38
+
39
+ msgid "This is the title of your content that may be displayed in search engine results (meta title). By default it’s the content title (page title, post title…). 69 characters max allowed."
40
+ msgstr ""
41
+
42
+ msgid "Search engine description"
43
+ msgstr ""
44
+
45
+ msgid "The description of your content that may be displayed in search engine results aka meta description. By default search engine take an excerpt from your content (depending on the search query). 156 characters max allowed."
46
+ msgstr ""
47
+
48
+ msgid "Facebook Title"
49
+ msgstr ""
50
+
51
+ msgid "Custom title to display when sharing this content on facebook, content title override"
52
+ msgstr ""
53
+
54
+ msgid "Facebook Description"
55
+ msgstr ""
56
+
57
+ msgid "Custom description to display when sharing this content on facebook, content description override"
58
+ msgstr ""
59
+
60
+ msgid "Facebook Image"
61
+ msgstr ""
62
+
63
+ msgid "Custom image to display when sharing this content on facebook, content description override, recommended size is 1200px x 630px"
64
+ msgstr ""
65
+
66
+ msgid "Twitter Title"
67
+ msgstr ""
68
+
69
+ msgid "Custom title to display when sharing this content on twitter, content title override"
70
+ msgstr ""
71
+
72
+ msgid "Twitter Description"
73
+ msgstr ""
74
+
75
+ msgid "Custom description to display when sharing this content on twitter, content description override"
76
+ msgstr ""
77
+
78
+ msgid "Twitter Image"
79
+ msgstr ""
80
+
81
+ msgid "Custom image to display when sharing this content on facebook, content description override, recommended min size 440px X 220px"
82
+ msgstr ""
83
+
84
+ msgid "Use Image"
85
+ msgstr ""
86
+
87
+ msgid " (because of date display)"
88
+ msgstr ""
89
+
90
+ msgid "(no parent)"
91
+ msgstr ""
92
+
93
+ msgid "General"
94
+ msgstr ""
95
+
96
+ msgid "Social"
97
+ msgstr ""
98
+
99
+ msgid "Page title word in content heading"
100
+ msgstr ""
101
+
102
+ msgid "Page title word in content"
103
+ msgstr ""
104
+
105
+ msgid "Page url matches with page title"
106
+ msgstr ""
107
+
108
+ msgid "Meta title filled"
109
+ msgstr ""
110
+
111
+ msgid "Meta description filled"
112
+ msgstr ""
113
+
114
+ msgid "Wrong image resize"
115
+ msgstr ""
116
+
117
+ msgid "Image have meta title or alt"
118
+ msgstr ""
119
+
120
+ msgid "SEO Page optimization"
121
+ msgstr ""
122
+
123
+ msgid "Social for search engine"
124
+ msgstr ""
125
+
126
+ msgid "Reload analysis"
127
+ msgstr ""
128
+
129
+ msgid "Filter by date"
130
+ msgstr ""
131
+
132
+ msgid "All dates"
133
+ msgstr ""
134
+
135
+ msgid "ID"
136
+ msgstr ""
137
+
138
+ msgid "Image"
139
+ msgstr ""
140
+
141
+ msgid "Name"
142
+ msgstr ""
143
+
144
+ msgid "Optimization Info"
145
+ msgstr ""
146
+
147
+ msgid "Alternative text"
148
+ msgstr ""
149
+
150
+ msgid "Title"
151
+ msgstr ""
152
+
153
+ msgid "Legend"
154
+ msgstr ""
155
+
156
+ msgid "Description"
157
+ msgstr ""
158
+
159
+ msgid "Select All"
160
+ msgstr ""
161
+
162
+ msgid "Filter"
163
+ msgstr ""
164
+
165
+ msgid "We didn't find any image which needed to be updated regarding meta information"
166
+ msgstr ""
167
+
168
+ msgid "This image has still not been inserted in any post!"
169
+ msgstr ""
170
+
171
+ msgid "We found %s which needed to optimize"
172
+ msgstr ""
173
+
174
+ msgid "Replace?"
175
+ msgstr ""
176
+
177
+ msgid "Replace all"
178
+ msgstr ""
179
+
180
+ msgid "The post doesn't exist, please select another one"
181
+ msgstr ""
182
+
183
+ msgid "There is a problem when update image name"
184
+ msgstr ""
185
+
186
+ msgid "Image name changed"
187
+ msgstr ""
188
+
189
+ msgid "Name already exist"
190
+ msgstr ""
191
+
192
+ msgid "File doesn't existed"
193
+ msgstr ""
194
+
195
+ msgid "Should not be empty"
196
+ msgstr ""
197
+
198
+ msgid "There is a problem during image meta update"
199
+ msgstr ""
200
+
201
+ msgid "This content has been deleted, please check again!"
202
+ msgstr ""
203
+
204
+ msgid "The post haven't been updated, please check again!"
205
+ msgstr ""
206
+
207
+ msgid "This image has been removed from the post, please check again!"
208
+ msgstr ""
209
+
210
+ msgid "Content of the post is empty, please check again"
211
+ msgstr ""
212
+
213
+ msgid "We can't get traffic rank from Alexa for this website"
214
+ msgstr ""
215
+
216
+ msgid "Meta Title"
217
+ msgstr ""
218
+
219
+ msgid "Meta Description"
220
+ msgstr ""
221
+
222
+ msgid "(no title)"
223
+ msgstr ""
224
+
225
+ msgid "Edit this item"
226
+ msgstr ""
227
+
228
+ msgid "Edit"
229
+ msgstr ""
230
+
231
+ msgid "View"
232
+ msgstr ""
233
+
234
+ msgid "Preview"
235
+ msgstr ""
236
+
237
+ msgid "This is a preview of what this content might looks like in Google's search results."
238
+ msgstr ""
239
+
240
+ msgid "Snippet Preview"
241
+ msgstr ""
242
+
243
+ msgid "Facebook profile URL "
244
+ msgstr ""
245
+
246
+ msgid "Twitter Username "
247
+ msgstr ""
248
+
249
+ msgid "Meta block edition "
250
+ msgstr ""
251
+
252
+ msgid "Modification was saved"
253
+ msgstr ""
254
+
255
+ msgid "Meta title was not saved"
256
+ msgstr ""
257
+
258
+ msgid "Meta description was not saved"
259
+ msgstr ""
260
+
261
+ msgid "Dashboard"
262
+ msgstr ""
263
+
264
+ msgid "WP Meta SEO"
265
+ msgstr ""
266
+
267
+ msgid "Content meta"
268
+ msgstr ""
269
+
270
+ msgid "Image meta"
271
+ msgstr ""
272
+
273
+ msgid "Settings"
274
+ msgstr ""
275
+
276
+ msgid "Show/hide meta block edition below content"
277
+ msgstr ""
278
+
279
+ msgid "This post is not existed or deleted, please select another one"
280
+ msgstr ""
281
+
282
+ msgid "Well! This image is so good now."
283
+ msgstr ""
284
+
285
+ msgid "Oops! An error occured when updating the post, please try again"
286
+ msgstr ""
287
+
288
+ msgid "Resize image"
289
+ msgstr ""
290
+
291
+ msgid "Image sizes are good!"
292
+ msgstr ""
293
+
294
+ msgid "Fix meta"
295
+ msgstr ""
296
+
297
+ msgid "Edit meta"
298
+ msgstr ""
299
+
300
+ msgid "N/A"
301
+ msgstr ""
302
+
303
+ msgid "Poor"
304
+ msgstr ""
305
+
306
+ msgid "OK"
307
+ msgstr ""
308
+
309
+ msgid "Good"
310
+ msgstr ""
311
+
312
+ msgid "Bad"
313
+ msgstr ""
314
+
315
+ msgid "Homepage meta title "
316
+ msgstr ""
317
+
318
+ msgid "Homepage meta description "
319
+ msgstr ""
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: JoomUnited
3
  Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo
4
  Requires at least: 4.0
5
  Tested up to: 4.3.1
6
- Stable tag: 1.1.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -12,7 +12,7 @@ WP Meta SEO gives you the control over all your meta content and images. Bulk SE
12
 
13
  == Description ==
14
 
15
- = WP meta SEO got 5 major functionnalities: =
16
 
17
  * Bulk edit all website meta on a single view
18
  * Edit meta in content with SEO analysis
@@ -24,7 +24,7 @@ WP Meta SEO gives you the control over all your meta content and images. Bulk SE
24
  = Bulk meta edition and image resizing =
25
 
26
  It was annoying to edit meta on an existing website, open each post, page and almost nobody was doing it. Especially if you need to edit content + image meta.
27
- WP Meta SEO is going to list all posts, pages, custom post types and all images. Type your meta content and fix image size size and everything is AJAX saved.
28
  A bunch of people reduce the size of the pictures handling the border and resizing in html/css. You can now optimize the size of your images in articles, click fix and it's replaced.
29
 
30
 
@@ -32,11 +32,11 @@ A bunch of people reduce the size of the pictures handling the border and resizi
32
 
33
  * Content SEO smart analysis bellow content
34
  * Search engine snippet preview
35
- * AJAX anaysis refresh
36
  * 7 criteria of analysis
37
  * Check: Page title word in content heading
38
  * Check: Page title word in content
39
- * Check: Page url matches with page title
40
  * Check: Meta title filled
41
  * Check: Meta description filled
42
  * Check: Wrong image resizing
@@ -60,7 +60,7 @@ A bunch of people reduce the size of the pictures handling the border and resizi
60
  * Yoast SEO import & sync
61
  * Alexa world rank
62
  * Meta content filtering
63
- * Optimise images in all your post and pages
64
  * Live Google snippet preview
65
  * Edit images file name in single view
66
  * All in one SEO importer and sync Filter content by post type: post, page, custom
@@ -79,7 +79,7 @@ A bunch of people reduce the size of the pictures handling the border and resizi
79
 
80
  = Support =
81
 
82
- A PDF support documant is provided and a dedicated support can be provided additionnaly with a membership.
83
  **More details here:** http://www.joomunited.com/wordpress-products/wp-meta-seo
84
 
85
  == Installation ==
@@ -89,7 +89,7 @@ Once the plugin is installed, open the bulk edition through the admin menu or op
89
 
90
  == Screenshots ==
91
 
92
- 1. Main dashboad of the plugin with missing optimization and alexa rank
93
  1. Bulk content meta edition with AJAX saving
94
  1. On page dynamic SEO analysis for page, posts and custom post type
95
  1. Social shaing information, on page optimization
@@ -101,15 +101,25 @@ Once the plugin is installed, open the bulk edition through the admin menu or op
101
 
102
  == Revisions ==
103
 
104
- * 1.0.0 Initial (free) release
105
- * 1.0.1
106
- * 1.0.2
107
- * 1.0.3
108
- * 1.0.4
109
  * 1.1.0
 
 
 
 
 
 
110
 
111
  == Changelog ==
112
 
 
 
 
 
 
 
 
 
113
  = 1.1.0 =
114
 
115
  * On page SEO analysis
3
  Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo
4
  Requires at least: 4.0
5
  Tested up to: 4.3.1
6
+ Stable tag: 1.2.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
12
 
13
  == Description ==
14
 
15
+ = WP meta SEO got 5 major functionalities: =
16
 
17
  * Bulk edit all website meta on a single view
18
  * Edit meta in content with SEO analysis
24
  = Bulk meta edition and image resizing =
25
 
26
  It was annoying to edit meta on an existing website, open each post, page and almost nobody was doing it. Especially if you need to edit content + image meta.
27
+ WP Meta SEO is going to list all posts, pages, custom post types and all images. Type your meta content and fix image size and everything is AJAX saved.
28
  A bunch of people reduce the size of the pictures handling the border and resizing in html/css. You can now optimize the size of your images in articles, click fix and it's replaced.
29
 
30
 
32
 
33
  * Content SEO smart analysis bellow content
34
  * Search engine snippet preview
35
+ * AJAX analysis refresh
36
  * 7 criteria of analysis
37
  * Check: Page title word in content heading
38
  * Check: Page title word in content
39
+ * Check: Page URL matches with page title
40
  * Check: Meta title filled
41
  * Check: Meta description filled
42
  * Check: Wrong image resizing
60
  * Yoast SEO import & sync
61
  * Alexa world rank
62
  * Meta content filtering
63
+ * Optimize images in all your post and pages
64
  * Live Google snippet preview
65
  * Edit images file name in single view
66
  * All in one SEO importer and sync Filter content by post type: post, page, custom
79
 
80
  = Support =
81
 
82
+ A PDF support document is provided and a dedicated support can be provided additionally with a membership.
83
  **More details here:** http://www.joomunited.com/wordpress-products/wp-meta-seo
84
 
85
  == Installation ==
89
 
90
  == Screenshots ==
91
 
92
+ 1. Main dashboard of the plugin with missing optimization and Alexa rank
93
  1. Bulk content meta edition with AJAX saving
94
  1. On page dynamic SEO analysis for page, posts and custom post type
95
  1. Social shaing information, on page optimization
101
 
102
  == Revisions ==
103
 
104
+ * 1.2.0
 
 
 
 
105
  * 1.1.0
106
+ * 1.0.4
107
+ * 1.0.3
108
+ * 1.0.2
109
+ * 1.0.1
110
+ * 1.0.0 Initial release
111
+
112
 
113
  == Changelog ==
114
 
115
+ = 1.2.0 =
116
+
117
+ * Change language to po/mo files
118
+ * Include .pot file and French language
119
+ * Setting for home page meta
120
+ * Bigger edit meta boxes
121
+ * Update icon of notification in meta view
122
+
123
  = 1.1.0 =
124
 
125
  * On page SEO analysis
wp-meta-seo.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: WP Meta SEO
5
  * Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
  * Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
- * Version: 1.1.0
8
  * Author: JoomUnited
9
  * Author URI: http://www.joomunited.com
10
  * License: GPL2
@@ -45,7 +45,7 @@ if (!defined('URL'))
45
  define('URL', get_site_url());
46
 
47
  if (!defined('WPMSEO_VERSION'))
48
- define('WPMSEO_VERSION', '1.1.0');
49
 
50
  if (!defined('WPMSEO_FILE'))
51
  define('WPMSEO_FILE', __FILE__);
@@ -70,40 +70,69 @@ if (is_admin()) {
70
  add_filter( 'user_contactmethods','metaseo_contactuser', 10, 1 );
71
 
72
  function metaseo_contactuser( $contactusers ) {
73
- $contactusers['mtwitter'] = __( 'Twitter username (without @)', 'wp-meta-seo' );
74
- $contactusers['mfacebook'] = __( 'Facebook profile URL', 'wp-meta-seo' );
75
  return $contactusers;
76
  }
77
 
78
  } else {
 
79
  /******** Check again and modify title, meta title, meta description before output ********/
80
  //add_filter('wp_title', array('WpMetaSeo', 'new_title'), 99);
81
  add_action('init', 'buffer_start');
82
  add_action('wp_head', 'buffer_end');
83
 
84
- function buffer_start() { ob_start("callback"); }
85
 
86
- function buffer_end() { ob_end_flush(); }
87
 
88
  function callback($buffer) {
89
  // modify buffer here, and then return the updated code
90
  global $wp_query;
 
91
  $meta_title = get_post_meta($wp_query->post->ID, '_metaseo_metatitle', true);
92
  if($meta_title == '') $meta_title = $wp_query->post->post_title;
93
  $meta_title_esc = esc_attr($meta_title);
94
 
 
95
  $meta_description = get_post_meta($wp_query->post->ID, '_metaseo_metadesc', true);
96
  if($meta_description == '') $meta_description = $wp_query->post->post_title;
97
  $meta_description_esc = esc_attr($meta_description);
98
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  $twitter_title = get_post_meta($wp_query->post->ID, '_metaseo_metatwitter-title', true);
100
  $meta_twitter_title = esc_attr($twitter_title);
101
  if($meta_twitter_title == '') $meta_twitter_title = $meta_title_esc;
102
 
 
103
  $twitter_desc = get_post_meta($wp_query->post->ID, '_metaseo_metatwitter-desc', true);
104
  $meta_twitter_desc = esc_attr($twitter_desc);
105
  if($meta_twitter_desc == '') $meta_twitter_desc = $meta_description_esc;
106
 
 
107
  $sitename = get_bloginfo('name');
108
  $meta_twitter_site = get_user_meta($wp_query->post->post_author,'mtwitter',true);
109
  $facebook_admin = get_user_meta($wp_query->post->post_author,'mfacebook',true);
@@ -126,6 +155,7 @@ if (is_admin()) {
126
  if($meta_facebook_title == '') $meta_facebook_title = $meta_title_esc;
127
 
128
  $meta_facebook_desc = get_post_meta($wp_query->post->ID,'_metaseo_metaopengraph-desc',true);
 
129
  $meta_facebook_image = get_post_meta($wp_query->post->ID,'_metaseo_metaopengraph-image',true);
130
 
131
  $patterns = array(
@@ -246,18 +276,18 @@ function wpmetaseo_aio_yoast_message() {
246
 
247
 
248
  if($activated === 2 && !get_option('plugin_to_sync_with', false)){
249
- add_action('admin_notices', create_function('$notImportant', 'echo "<div class=\"error metaseo-import-wrn\"><p>". __("Be careful you installed 2 extensions doing almost the same thing, please deactivate AIOSEO or Yoast in order to work more clearly!", "wp-meta-seo") ."</p></div>";'), 1);
250
  }
251
  }
252
 
253
  add_action( 'admin_init', 'wpmetaseo_aio_yoast_message' );
254
 
255
  function wpmetaseo_import_aio_meta_notice(){
256
- echo '<div class="error metaseo-import-wrn"><p>'. sprintf( __('We have found that you’re using All In One Pack Plugin, WP Meta SEO can import the meta from this plugin, %s', 'wp-meta-seo'), '<a href="#" class="button mseo-import-action" style="position:relative" onclick="importMetaData(this, event)" id="_aio_"><span class="spinner-light"></span>Import now</a> or <a href="#" class="dissmiss-import">dismiss this</a>' ) .'</p></div>';
257
  }
258
 
259
  function wpmetaseo_import_yoast_meta_notice(){
260
- echo '<div class="error metaseo-import-wrn"><p>'. sprintf( __('We have found that you’re using Yoast SEO Plugin, WP Meta SEO can import the meta from this plugin, %s', 'wp-meta-seo'), '<a href="#" class="button mseo-import-action" style="position:relative" onclick="importMetaData(this, event)" id="_yoast_">Import now<span class="spinner-light"></span></a> or <a href="#" class="dissmiss-import">dismiss this</a>' ) .'</p></div>';
261
  }
262
 
263
  /**
4
  * Plugin Name: WP Meta SEO
5
  * Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
  * Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
+ * Version: 1.2.0
8
  * Author: JoomUnited
9
  * Author URI: http://www.joomunited.com
10
  * License: GPL2
45
  define('URL', get_site_url());
46
 
47
  if (!defined('WPMSEO_VERSION'))
48
+ define('WPMSEO_VERSION', '1.2.0');
49
 
50
  if (!defined('WPMSEO_FILE'))
51
  define('WPMSEO_FILE', __FILE__);
70
  add_filter( 'user_contactmethods','metaseo_contactuser', 10, 1 );
71
 
72
  function metaseo_contactuser( $contactusers ) {
73
+ $contactusers['mtwitter'] = __( 'Twitter username (without @)', 'wpms' );
74
+ $contactusers['mfacebook'] = __( 'Facebook profile URL', 'wpms' );
75
  return $contactusers;
76
  }
77
 
78
  } else {
79
+
80
  /******** Check again and modify title, meta title, meta description before output ********/
81
  //add_filter('wp_title', array('WpMetaSeo', 'new_title'), 99);
82
  add_action('init', 'buffer_start');
83
  add_action('wp_head', 'buffer_end');
84
 
85
+ function buffer_start() { ob_start("callback");}
86
 
87
+ function buffer_end() { ob_end_flush();}
88
 
89
  function callback($buffer) {
90
  // modify buffer here, and then return the updated code
91
  global $wp_query;
92
+ // get meta title
93
  $meta_title = get_post_meta($wp_query->post->ID, '_metaseo_metatitle', true);
94
  if($meta_title == '') $meta_title = $wp_query->post->post_title;
95
  $meta_title_esc = esc_attr($meta_title);
96
 
97
+ // get meta description
98
  $meta_description = get_post_meta($wp_query->post->ID, '_metaseo_metadesc', true);
99
  if($meta_description == '') $meta_description = $wp_query->post->post_title;
100
  $meta_description_esc = esc_attr($meta_description);
101
+
102
+ // get option reading
103
+ $mpage_for_posts = get_option('page_for_posts');
104
+ $mpage_on_front = get_option('page_on_front');
105
+ $mshow_on_front = get_option('show_on_front');
106
+
107
+ // check homepage is latest post
108
+ if((empty($mpage_for_posts) && empty($mpage_on_front) && $mshow_on_front == 'posts') || (empty($page_on_front) && !empty($mpage_for_posts) && $mshow_on_front== 'page') && is_home()){
109
+ $settings = get_option( '_metaseo_settings' );
110
+ $meta_title_esc = esc_attr($settings['metaseo_title_home']);
111
+ $meta_description_esc = esc_attr($settings['metaseo_desc_home']);
112
+ }
113
+
114
+ // check homepage is a page
115
+ if(get_post_meta($wp_query->post->ID, '_metaseo_metatitle', true) == '' && is_front_page() ){
116
+ $settings = get_option( '_metaseo_settings' );
117
+ $meta_title_esc = esc_attr($settings['metaseo_title_home']);
118
+ }
119
+
120
+ if(get_post_meta($wp_query->post->ID, '_metaseo_metadesc', true) == '' && is_front_page() ){
121
+ $settings = get_option( '_metaseo_settings' );
122
+ $meta_description_esc = esc_attr($settings['metaseo_desc_home']);
123
+ }
124
+
125
+ // get meta title for twitter
126
  $twitter_title = get_post_meta($wp_query->post->ID, '_metaseo_metatwitter-title', true);
127
  $meta_twitter_title = esc_attr($twitter_title);
128
  if($meta_twitter_title == '') $meta_twitter_title = $meta_title_esc;
129
 
130
+ // get meta description for twitter
131
  $twitter_desc = get_post_meta($wp_query->post->ID, '_metaseo_metatwitter-desc', true);
132
  $meta_twitter_desc = esc_attr($twitter_desc);
133
  if($meta_twitter_desc == '') $meta_twitter_desc = $meta_description_esc;
134
 
135
+
136
  $sitename = get_bloginfo('name');
137
  $meta_twitter_site = get_user_meta($wp_query->post->post_author,'mtwitter',true);
138
  $facebook_admin = get_user_meta($wp_query->post->post_author,'mfacebook',true);
155
  if($meta_facebook_title == '') $meta_facebook_title = $meta_title_esc;
156
 
157
  $meta_facebook_desc = get_post_meta($wp_query->post->ID,'_metaseo_metaopengraph-desc',true);
158
+ if($meta_facebook_desc == '') $meta_facebook_desc = $meta_description_esc;
159
  $meta_facebook_image = get_post_meta($wp_query->post->ID,'_metaseo_metaopengraph-image',true);
160
 
161
  $patterns = array(
276
 
277
 
278
  if($activated === 2 && !get_option('plugin_to_sync_with', false)){
279
+ add_action('admin_notices', create_function('$notImportant', 'echo "<div class=\"error metaseo-import-wrn\"><p>". __("Be careful you installed 2 extensions doing almost the same thing, please deactivate AIOSEO or Yoast in order to work more clearly!", "wpms") ."</p></div>";'), 1);
280
  }
281
  }
282
 
283
  add_action( 'admin_init', 'wpmetaseo_aio_yoast_message' );
284
 
285
  function wpmetaseo_import_aio_meta_notice(){
286
+ echo '<div class="error metaseo-import-wrn"><p>'. sprintf( __('We have found that you’re using All In One Pack Plugin, WP Meta SEO can import the meta from this plugin, %s', 'wpms'), '<a href="#" class="button mseo-import-action" style="position:relative" onclick="importMetaData(this, event)" id="_aio_"><span class="spinner-light"></span>Import now</a> or <a href="#" class="dissmiss-import">dismiss this</a>' ) .'</p></div>';
287
  }
288
 
289
  function wpmetaseo_import_yoast_meta_notice(){
290
+ echo '<div class="error metaseo-import-wrn"><p>'. sprintf( __('We have found that you’re using Yoast SEO Plugin, WP Meta SEO can import the meta from this plugin, %s', 'wpms'), '<a href="#" class="button mseo-import-action" style="position:relative" onclick="importMetaData(this, event)" id="_yoast_">Import now<span class="spinner-light"></span></a> or <a href="#" class="dissmiss-import">dismiss this</a>' ) .'</p></div>';
291
  }
292
 
293
  /**