Post Duplicator - Version 2.20

Version Description

  • Added "do_action( 'mtphr_post_duplicator_created', $original_id, $duplicate_id, $settings )" action for custom actions on duplicated post
  • Added "mtphr_post_duplicator_action_row_link( $post )" function for custom post action rows
  • Separated post duplicated function outsite of ajax call for custom uses
  • Removed limitations of backend script to load only on specific pages
Download this release

Release Info

Developer metaphorcreations
Plugin Icon 128x128 Post Duplicator
Version 2.20
Comparing to
See all releases

Code changes from version 2.4 to 2.20

assets/js/pd-admin.js CHANGED
@@ -6,24 +6,33 @@ jQuery( document ).ready( function() {
6
  * Creates an ajax request that creates a new post,
7
  * duplicating all the data and custom meta.
8
  *
9
- * @since 1.0.0
10
  */
11
- jQuery( '.m4c-duplicate-post' ).click( function( e ) {
 
12
 
13
  e.preventDefault();
 
 
14
 
15
  // Create the data to pass
16
  var data = {
17
  action: 'm4c_duplicate_post',
18
- original_id: jQuery(this).attr('href'),
19
  security: jQuery(this).attr('rel')
20
  };
21
 
22
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
23
  jQuery.post( ajaxurl, data, function( response ) {
24
-
25
- // Reload the page
26
- location.reload();
 
 
 
 
 
 
27
  });
28
  });
29
  });
6
  * Creates an ajax request that creates a new post,
7
  * duplicating all the data and custom meta.
8
  *
9
+ * @since 2.12
10
  */
11
+
12
+ jQuery( '.m4c-duplicate-post' ).live( 'click', function( e ) {
13
 
14
  e.preventDefault();
15
+ var $spinner = jQuery(this).next('.spinner');
16
+ $spinner.css('visibility', 'visible');
17
 
18
  // Create the data to pass
19
  var data = {
20
  action: 'm4c_duplicate_post',
21
+ original_id: jQuery(this).data('postid'),
22
  security: jQuery(this).attr('rel')
23
  };
24
 
25
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
26
  jQuery.post( ajaxurl, data, function( response ) {
27
+
28
+ var location = window.location.href;
29
+ if( location.split('?').length > 1 ) {
30
+ location = location + '&post-duplicated='+response;
31
+ } else {
32
+ location = location + '?post-duplicated='+response;
33
+ }
34
+
35
+ window.location.href = location;
36
  });
37
  });
38
  });
includes/ajax.php CHANGED
@@ -1,47 +1,53 @@
1
  <?php
2
 
3
- add_action( 'wp_ajax_m4c_duplicate_post', 'm4c_duplicate_post' );
4
- /**
5
- * Thehe jQuery ajax call to create a new post.
6
- * Duplicates all the data including custom meta.
7
- *
8
- * @since 1.0.0
9
- */
10
- function m4c_duplicate_post() {
11
 
12
  // Get access to the database
13
  global $wpdb;
14
 
15
- // Check the nonce
16
- check_ajax_referer( 'm4c_ajax_file_nonce', 'security' );
17
-
18
- // Get variables
19
- $original_id = $_POST['original_id'];
20
-
21
  // Get the post as an array
22
  $duplicate = get_post( $original_id, 'ARRAY_A' );
23
-
24
- $settings = get_mtphr_post_duplicator_settings();
 
25
 
26
  // Modify some of the elements
27
- $duplicate['post_title'] = $duplicate['post_title'].' Copy';
 
 
28
 
29
  // Set the status
30
  if( $settings['status'] != 'same' ) {
31
  $duplicate['post_status'] = $settings['status'];
32
  }
33
 
 
 
 
 
 
34
  // Set the post date
35
  $timestamp = ( $settings['timestamp'] == 'duplicate' ) ? strtotime($duplicate['post_date']) : current_time('timestamp',0);
 
 
36
  if( $settings['time_offset'] ) {
37
  $offset = intval($settings['time_offset_seconds']+$settings['time_offset_minutes']*60+$settings['time_offset_hours']*3600+$settings['time_offset_days']*86400);
38
  if( $settings['time_offset_direction'] == 'newer' ) {
39
  $timestamp = intval($timestamp+$offset);
 
40
  } else {
41
  $timestamp = intval($timestamp-$offset);
 
42
  }
43
  }
44
  $duplicate['post_date'] = date('Y-m-d H:i:s', $timestamp);
 
 
 
45
 
46
  // Remove some of the keys
47
  unset( $duplicate['ID'] );
@@ -57,14 +63,47 @@ function m4c_duplicate_post() {
57
  $terms = wp_get_post_terms( $original_id, $taxonomy, array('fields' => 'names') );
58
  wp_set_object_terms( $duplicate_id, $terms, $taxonomy );
59
  }
60
-
61
- // Duplicate all the custom fields
62
  $custom_fields = get_post_custom( $original_id );
63
  foreach ( $custom_fields as $key => $value ) {
64
- add_post_meta( $duplicate_id, $key, maybe_unserialize($value[0]) );
 
 
 
 
 
 
 
 
65
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
- echo 'Duplicate Post Created!';
68
 
69
  die(); // this is required to return a proper result
70
- }
 
1
  <?php
2
 
3
+ /* --------------------------------------------------------- */
4
+ /* !Duplicate the post - 2.20 */
5
+ /* --------------------------------------------------------- */
6
+
7
+ function mtphr_duplicate_post( $original_id, $args=array(), $do_action=true ) {
 
 
 
8
 
9
  // Get access to the database
10
  global $wpdb;
11
 
 
 
 
 
 
 
12
  // Get the post as an array
13
  $duplicate = get_post( $original_id, 'ARRAY_A' );
14
+
15
+ $global_settings = get_mtphr_post_duplicator_settings();
16
+ $settings = wp_parse_args( $args, $global_settings );
17
 
18
  // Modify some of the elements
19
+ $appended = ( $settings['title'] != '' ) ? ' '.$settings['title'] : '';
20
+ $duplicate['post_title'] = $duplicate['post_title'].' '.$appended;
21
+ $duplicate['post_name'] = sanitize_title($duplicate['post_name'].'-'.$settings['slug']);
22
 
23
  // Set the status
24
  if( $settings['status'] != 'same' ) {
25
  $duplicate['post_status'] = $settings['status'];
26
  }
27
 
28
+ // Set the type
29
+ if( $settings['type'] != 'same' ) {
30
+ $duplicate['post_type'] = $settings['type'];
31
+ }
32
+
33
  // Set the post date
34
  $timestamp = ( $settings['timestamp'] == 'duplicate' ) ? strtotime($duplicate['post_date']) : current_time('timestamp',0);
35
+ $timestamp_gmt = ( $settings['timestamp'] == 'duplicate' ) ? strtotime($duplicate['post_date_gmt']) : current_time('timestamp',1);
36
+
37
  if( $settings['time_offset'] ) {
38
  $offset = intval($settings['time_offset_seconds']+$settings['time_offset_minutes']*60+$settings['time_offset_hours']*3600+$settings['time_offset_days']*86400);
39
  if( $settings['time_offset_direction'] == 'newer' ) {
40
  $timestamp = intval($timestamp+$offset);
41
+ $timestamp_gmt = intval($timestamp_gmt+$offset);
42
  } else {
43
  $timestamp = intval($timestamp-$offset);
44
+ $timestamp_gmt = intval($timestamp_gmt-$offset);
45
  }
46
  }
47
  $duplicate['post_date'] = date('Y-m-d H:i:s', $timestamp);
48
+ $duplicate['post_date_gmt'] = date('Y-m-d H:i:s', $timestamp_gmt);
49
+ $duplicate['post_modified'] = date('Y-m-d H:i:s', current_time('timestamp',0));
50
+ $duplicate['post_modified_gmt'] = date('Y-m-d H:i:s', current_time('timestamp',1));
51
 
52
  // Remove some of the keys
53
  unset( $duplicate['ID'] );
63
  $terms = wp_get_post_terms( $original_id, $taxonomy, array('fields' => 'names') );
64
  wp_set_object_terms( $duplicate_id, $terms, $taxonomy );
65
  }
66
+
67
+ // Duplicate all the custom fields
68
  $custom_fields = get_post_custom( $original_id );
69
  foreach ( $custom_fields as $key => $value ) {
70
+ if( is_array($value) && count($value) > 0 ) {
71
+ foreach( $value as $i=>$v ) {
72
+ $result = $wpdb->insert( $wpdb->prefix.'postmeta', array(
73
+ 'post_id' => $duplicate_id,
74
+ 'meta_key' => $key,
75
+ 'meta_value' => $v
76
+ ));
77
+ }
78
+ }
79
  }
80
+
81
+ // Add an action for others to do custom stuff
82
+ if( $do_action ) {
83
+ do_action( 'mtphr_post_duplicator_created', $original_id, $duplicate_id, $settings );
84
+ }
85
+
86
+ return $duplicate_id;
87
+ }
88
+
89
+
90
+ /* --------------------------------------------------------- */
91
+ /* !Ajax duplicate post - 2.2.0 */
92
+ /* --------------------------------------------------------- */
93
+
94
+ function m4c_duplicate_post() {
95
+
96
+ // Check the nonce
97
+ check_ajax_referer( 'm4c_ajax_file_nonce', 'security' );
98
+
99
+ // Get variables
100
+ $original_id = $_POST['original_id'];
101
+
102
+ // Duplicate the post
103
+ $duplicate_id = mtphr_duplicate_post( $original_id );
104
 
105
+ echo $duplicate_id;
106
 
107
  die(); // this is required to return a proper result
108
+ }
109
+ add_action( 'wp_ajax_m4c_duplicate_post', 'm4c_duplicate_post' );
includes/edit.php CHANGED
@@ -1,21 +1,43 @@
1
  <?php
2
 
3
- add_filter( 'post_row_actions', 'mtphr_post_duplicator_action_row', 10, 2 );
4
- add_filter( 'page_row_actions', 'mtphr_post_duplicator_action_row', 10, 2 );
5
  /**
6
  * Add a duplicate post link.
7
  *
8
- * @since 1.0.0
9
  */
10
- function mtphr_post_duplicator_action_row( $actions, $post ){
 
 
11
 
12
  // Get the post type object
13
  $post_type = get_post_type_object( $post->post_type );
14
 
 
 
 
 
 
 
 
 
 
 
 
15
  // Create a nonce & add an action
16
- $nonce = wp_create_nonce( 'm4c_ajax_file_nonce' );
17
- $actions['duplicate_post'] = '<a class="m4c-duplicate-post" rel="'.$nonce.'" href="'.$post->ID.'">Duplicate '.$post_type->labels->singular_name.'</a>';
 
 
 
18
 
 
 
 
 
 
19
  return $actions;
20
  }
 
 
 
21
 
1
  <?php
2
 
 
 
3
  /**
4
  * Add a duplicate post link.
5
  *
6
+ * @since 2.20
7
  */
8
+ function mtphr_post_duplicator_action_row_link( $post ) {
9
+
10
+ $settings = get_mtphr_post_duplicator_settings();
11
 
12
  // Get the post type object
13
  $post_type = get_post_type_object( $post->post_type );
14
 
15
+ // Set the button label
16
+ $label = sprintf( __( 'Duplicate %s', 'post-duplicator' ), $post_type->labels->singular_name );
17
+
18
+ // Modify the label if duplicating to new post type
19
+ if( $settings['type'] != 'same' ) {
20
+ $new_post_type = get_post_type_object( $settings['type'] );
21
+ if( $post_type->name != $new_post_type->name ) {
22
+ $label = sprintf( __( 'Duplicate %1$s to %2$s', 'post-duplicator' ), $post_type->labels->singular_name, $new_post_type->labels->singular_name );
23
+ }
24
+ }
25
+
26
  // Create a nonce & add an action
27
+ $nonce = wp_create_nonce( 'm4c_ajax_file_nonce' );
28
+
29
+ // Return the link
30
+ return '<a class="m4c-duplicate-post" rel="'.$nonce.'" href="#" data-postid="'.$post->ID.'">'.$label.'</a>';
31
+ }
32
 
33
+ // Add the duplicate link to post actions
34
+ function mtphr_post_duplicator_action_row( $actions, $post ){
35
+ if( function_exists('mtphr_post_duplicator_action_row_link') ) {
36
+ $actions['duplicate_post'] = mtphr_post_duplicator_action_row_link( $post );
37
+ }
38
  return $actions;
39
  }
40
+ add_filter( 'post_row_actions', 'mtphr_post_duplicator_action_row', 10, 2 );
41
+ add_filter( 'page_row_actions', 'mtphr_post_duplicator_action_row', 10, 2 );
42
+ add_filter( 'cuar/core/admin/content-list-table/row-actions', 'mtphr_post_duplicator_action_row', 10, 2 );
43
 
includes/functions.php CHANGED
@@ -4,7 +4,7 @@
4
  * Return a value from the options table if it exists,
5
  * or return a default value
6
  *
7
- * @since 2.0
8
  */
9
  function get_mtphr_post_duplicator_settings() {
10
 
@@ -13,7 +13,10 @@ function get_mtphr_post_duplicator_settings() {
13
 
14
  $defaults = array(
15
  'status' => 'same',
16
- 'timestamp' => 'duplicate',
 
 
 
17
  'time_offset' => false,
18
  'time_offset_days' => 0,
19
  'time_offset_hours' => 0,
@@ -27,4 +30,18 @@ function get_mtphr_post_duplicator_settings() {
27
 
28
  // Return the settings
29
  return wp_parse_args( $settings, $defaults );
30
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  * Return a value from the options table if it exists,
5
  * or return a default value
6
  *
7
+ * @since 2.15
8
  */
9
  function get_mtphr_post_duplicator_settings() {
10
 
13
 
14
  $defaults = array(
15
  'status' => 'same',
16
+ 'type' => 'same',
17
+ 'timestamp' => 'current',
18
+ 'title' => __('Copy', 'post-duplicator'),
19
+ 'slug' => 'copy',
20
  'time_offset' => false,
21
  'time_offset_days' => 0,
22
  'time_offset_hours' => 0,
30
 
31
  // Return the settings
32
  return wp_parse_args( $settings, $defaults );
33
+ }
34
+
35
+
36
+ function mtphr_post_duplicator_submitbox( $post ) {
37
+ if( $post->post_status == 'publish' ) {
38
+ $post_type = get_post_type_object( $post->post_type );
39
+ $nonce = wp_create_nonce( 'm4c_ajax_file_nonce' );
40
+ ?>
41
+ <div class="misc-pub-section misc-pub-duplicator" id="duplicator">
42
+ <a class="m4c-duplicate-post button button-small" rel="<?php echo $nonce; ?>" href="#" data-postid="<?php echo $post->ID; ?>"><?php printf( __( 'Duplicate %s', 'post-duplicator' ), $post_type->labels->singular_name ); ?></a><span class="spinner" style="float:none;margin-top:2px;margin-left:4px;"></span>
43
+ </div>
44
+ <?php
45
+ }
46
+ }
47
+ add_action( 'post_submitbox_misc_actions', 'mtphr_post_duplicator_submitbox' );
includes/helpers.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* --------------------------------------------------------- */
4
+ /* !Return an array of post types - 2.12 */
5
+ /* --------------------------------------------------------- */
6
+
7
+ if( !function_exists('mtphr_post_duplicator_post_types') ) {
8
+ function mtphr_post_duplicator_post_types() {
9
+
10
+ $post_types = array('same' => __('Same as original', 'post-duplicator'));
11
+ $pts = get_post_types(array(), 'objects');
12
+
13
+ // Remove framework post types
14
+ unset( $pts['attachment'] );
15
+ unset( $pts['revision'] );
16
+ unset( $pts['nav_menu_item'] );
17
+ unset( $pts['wooframework'] );
18
+
19
+ if( is_array($pts) && count($pts) > 0 ) {
20
+ foreach( $pts as $i=>$pt ) {
21
+ $post_types[$i] = $pt->labels->singular_name;
22
+ }
23
+ }
24
+
25
+ return $post_types;
26
+ }
27
+ }
includes/notices.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* --------------------------------------------------------- */
4
+ /* !Create an admin notice that a post has been duplicated - 2.11 */
5
+ /* --------------------------------------------------------- */
6
+
7
+ function mtphr_post_duplicator_notice() {
8
+
9
+ $duplicated_id = isset($_GET['post-duplicated']) ? htmlspecialchars($_GET['post-duplicated'], ENT_QUOTES, 'UTF-8') : '';
10
+ if( $duplicated_id != '' ) {
11
+
12
+ $settings = get_mtphr_post_duplicator_settings();
13
+
14
+ // Get the post type object
15
+ $duplicated_post = get_post($duplicated_id);
16
+ $post_type = get_post_type_object( $duplicated_post->post_type );
17
+
18
+ // Set the button label
19
+ $pt = $post_type->labels->singular_name;
20
+ $link = '<a href="'.get_edit_post_link($duplicated_id).'">'.__('here', 'post-duplicator').'</a>';
21
+ $label = sprintf( __( 'Successfully Duplicated! You can edit your new %1$s %2$s.', 'post-duplicator' ), $pt, $link );
22
+
23
+ ?>
24
+ <div class="updated">
25
+ <p><?php echo $label; ?></p>
26
+ </div>
27
+ <?php
28
+ }
29
+ }
30
+ add_action('admin_notices', 'mtphr_post_duplicator_notice');
includes/scripts.php CHANGED
@@ -11,7 +11,7 @@ function mtphr_post_duplicator_metaboxer_scripts( $hook ) {
11
  if( $hook == 'tools_page_mtphr_post_duplicator_settings_menu' ) {
12
 
13
  // Load the style sheet
14
- wp_register_style( 'mtphr-post-duplicator-metaboxer', MTPHR_POST_DUPLICATOR_URL.'/metaboxer/metaboxer.css', false, MTPHR_POST_DUPLICATOR_VERSION );
15
  wp_enqueue_style( 'mtphr-post-duplicator-metaboxer' );
16
  }
17
  }
@@ -23,10 +23,8 @@ add_action( 'admin_enqueue_scripts', 'm4c_duplicate_post_scripts' );
23
  /**
24
  * Add the necessary jquery.
25
  *
26
- * @since 1.0.0
27
  */
28
  function m4c_duplicate_post_scripts( $hook_suffix ) {
29
- if( $hook_suffix == 'edit.php' ) {
30
- wp_enqueue_script( 'mtphr-post-duplicator', MTPHR_POST_DUPLICATOR_URL.'/assets/js/pd-admin.js', array('jquery'), MTPHR_POST_DUPLICATOR_VERSION );
31
- }
32
  }
11
  if( $hook == 'tools_page_mtphr_post_duplicator_settings_menu' ) {
12
 
13
  // Load the style sheet
14
+ wp_register_style( 'mtphr-post-duplicator-metaboxer', plugins_url().'/post-duplicator/metaboxer/metaboxer.css', false, MTPHR_POST_DUPLICATOR_VERSION );
15
  wp_enqueue_style( 'mtphr-post-duplicator-metaboxer' );
16
  }
17
  }
23
  /**
24
  * Add the necessary jquery.
25
  *
26
+ * @since 2.20
27
  */
28
  function m4c_duplicate_post_scripts( $hook_suffix ) {
29
+ wp_enqueue_script( 'mtphr-post-duplicator', plugins_url().'/post-duplicator/assets/js/pd-admin.js', array('jquery'), MTPHR_POST_DUPLICATOR_VERSION );
 
 
30
  }
includes/settings.php CHANGED
@@ -9,8 +9,8 @@ add_action( 'admin_menu', 'mtphr_post_duplicator_settings_page' );
9
  function mtphr_post_duplicator_settings_page() {
10
 
11
  add_management_page(
12
- 'Post Duplicator', // The value used to populate the browser's title bar when the menu page is active
13
- 'Post Duplicator', // The label of this submenu item displayed in the menu
14
  'administrator', // What roles are able to access this submenu item
15
  'mtphr_post_duplicator_settings_menu', // The ID used to represent this submenu item
16
  'mtphr_post_duplicator_settings_display' // The callback function used to render the options for this submenu item
@@ -24,7 +24,7 @@ add_action( 'admin_init', 'mtphr_post_duplicator_initialize_settings' );
24
  /**
25
  * Initializes the options page.
26
  *
27
- * @since 2.2
28
  */
29
  function mtphr_post_duplicator_initialize_settings() {
30
 
@@ -37,6 +37,13 @@ function mtphr_post_duplicator_initialize_settings() {
37
  'publish' => __('Published', 'post-duplicator'),
38
  'pending' => __('Pending', 'post-duplicator')
39
  ),
 
 
 
 
 
 
 
40
  'default' => 'same'
41
  );
42
 
@@ -48,7 +55,23 @@ function mtphr_post_duplicator_initialize_settings() {
48
  'current' => __('Current Time', 'post-duplicator')
49
  ),
50
  'display' => 'inline',
51
- 'default' => 'duplicate'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  );
53
 
54
  $settings['time_offset'] = array(
@@ -157,7 +180,7 @@ function mtphr_post_duplicator_settings_display() {
157
  * @since 2.0
158
  */
159
  function mtphr_post_duplicator_settings_callback() {
160
- echo '<h4>Customize the settings for duplicated posts.</h4>';
161
  }
162
 
163
 
@@ -198,4 +221,4 @@ function mtphr_post_duplicator_field_display( $args ) {
198
  }
199
  }
200
 
201
-
9
  function mtphr_post_duplicator_settings_page() {
10
 
11
  add_management_page(
12
+ __('Post Duplicator', 'post-duplicator'), // The value used to populate the browser's title bar when the menu page is active
13
+ __('Post Duplicator', 'post-duplicator'), // The label of this submenu item displayed in the menu
14
  'administrator', // What roles are able to access this submenu item
15
  'mtphr_post_duplicator_settings_menu', // The ID used to represent this submenu item
16
  'mtphr_post_duplicator_settings_display' // The callback function used to render the options for this submenu item
24
  /**
25
  * Initializes the options page.
26
  *
27
+ * @since 2.16
28
  */
29
  function mtphr_post_duplicator_initialize_settings() {
30
 
37
  'publish' => __('Published', 'post-duplicator'),
38
  'pending' => __('Pending', 'post-duplicator')
39
  ),
40
+ 'default' => 'draft'
41
+ );
42
+
43
+ $settings['type'] = array(
44
+ 'title' => __( 'Post Type', 'post-duplicator' ),
45
+ 'type' => 'select',
46
+ 'options' => mtphr_post_duplicator_post_types(),
47
  'default' => 'same'
48
  );
49
 
55
  'current' => __('Current Time', 'post-duplicator')
56
  ),
57
  'display' => 'inline',
58
+ 'default' => 'current'
59
+ );
60
+
61
+ $settings['title'] = array(
62
+ 'title' => __( 'Duplicate Title', 'post-duplicator' ),
63
+ 'description' => __('String that should be appended to the duplicate post\'s title', 'post-duplicator'),
64
+ 'type' => 'text',
65
+ 'display' => 'inline',
66
+ 'default' => __('Copy', 'post-duplicator')
67
+ );
68
+
69
+ $settings['slug'] = array(
70
+ 'title' => __( 'Duplicate Slug', 'post-duplicator' ),
71
+ 'description' => __('String that should be appended to the duplicate post\'s slug', 'post-duplicator'),
72
+ 'type' => 'text',
73
+ 'display' => 'inline',
74
+ 'default' => 'copy'
75
  );
76
 
77
  $settings['time_offset'] = array(
180
  * @since 2.0
181
  */
182
  function mtphr_post_duplicator_settings_callback() {
183
+ echo '<h4>' . __( 'Customize the settings for duplicated posts.', 'post-duplicator' ) . '</h4>';
184
  }
185
 
186
 
221
  }
222
  }
223
 
224
+
languages/post-duplicator-de_DE.mo ADDED
Binary file
languages/post-duplicator-de_DE.po ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Post Duplicator v2.16\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2015-09-17 10:33+0100\n"
6
+ "PO-Revision-Date: 2016-03-11 12:49-0600\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
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Generator: Poedit 1.8.7\n"
14
+ "X-Poedit-SourceCharset: utf-8\n"
15
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
16
+ "X-Poedit-Basepath: ..\n"
17
+ "X-Textdomain-Support: yes\n"
18
+ "Language: de_DE\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ # @ post-duplicator
22
+ #: includes/edit.php:16
23
+ #, php-format
24
+ msgid "Duplicate %s"
25
+ msgstr "Kopiere %s"
26
+
27
+ # @ post-duplicator
28
+ #: includes/settings.php:32
29
+ msgid "Post Status"
30
+ msgstr "Status"
31
+
32
+ # @ post-duplicator
33
+ #: includes/helpers.php:10 includes/settings.php:35
34
+ msgid "Same as original"
35
+ msgstr "Wie Original"
36
+
37
+ # @ post-duplicator
38
+ #: includes/settings.php:36
39
+ msgid "Draft"
40
+ msgstr "Entwurf"
41
+
42
+ # @ post-duplicator
43
+ #: includes/settings.php:37
44
+ msgid "Published"
45
+ msgstr "Veröffentlicht"
46
+
47
+ # @ post-duplicator
48
+ #: includes/settings.php:38
49
+ msgid "Pending"
50
+ msgstr "Ausstehend"
51
+
52
+ # @ post-duplicator
53
+ #: includes/settings.php:51
54
+ msgid "Post Date"
55
+ msgstr "Datum"
56
+
57
+ # @ post-duplicator
58
+ #: includes/settings.php:54
59
+ msgid "Duplicate Timestamp"
60
+ msgstr "Kopiere Zeitstempel"
61
+
62
+ # @ post-duplicator
63
+ #: includes/settings.php:55
64
+ msgid "Current Time"
65
+ msgstr "Aktuelle Zeit"
66
+
67
+ # @ post-duplicator
68
+ #: includes/settings.php:78
69
+ msgid "Offset Date"
70
+ msgstr "Datums-Abweichung"
71
+
72
+ # @ post-duplicator
73
+ #: includes/settings.php:84
74
+ msgid " days"
75
+ msgstr "Tage"
76
+
77
+ # @ post-duplicator
78
+ #: includes/settings.php:91
79
+ msgid " hours"
80
+ msgstr "Stunden"
81
+
82
+ # @ post-duplicator
83
+ #: includes/settings.php:98
84
+ msgid " minutes"
85
+ msgstr "Minuten"
86
+
87
+ # @ post-duplicator
88
+ #: includes/settings.php:105
89
+ msgid " seconds"
90
+ msgstr "Sekunden"
91
+
92
+ # @ post-duplicator
93
+ #: includes/settings.php:112
94
+ msgid "newer"
95
+ msgstr "früher"
96
+
97
+ # @ post-duplicator
98
+ #: includes/settings.php:113
99
+ msgid "older"
100
+ msgstr "später"
101
+
102
+ # @ post-duplicator
103
+ #: includes/settings.php:159
104
+ msgid "Post Duplicator Settings"
105
+ msgstr "Post Duplicator Einstellungen"
106
+
107
+ # @ post-duplicator
108
+ #: includes/settings.php:183
109
+ msgid "Customize the settings for duplicated posts."
110
+ msgstr "Konfiguriere die Einstellungen für kopierte \"Posts\"."
111
+
112
+ # @ post-duplicator
113
+ #: includes/edit.php:22
114
+ #, php-format
115
+ msgid "Duplicate %1$s to %2$s"
116
+ msgstr "Doppelte %1$s auf %2$s"
117
+
118
+ # @ post-duplicator
119
+ #: includes/functions.php:18 includes/settings.php:66
120
+ msgid "Copy"
121
+ msgstr "Kopieren"
122
+
123
+ # @ post-duplicator
124
+ #: includes/notices.php:20
125
+ msgid "here"
126
+ msgstr "hier"
127
+
128
+ # @ post-duplicator
129
+ #: includes/notices.php:21
130
+ #, php-format
131
+ msgid "Successfully Duplicated! You can edit your new %1$s %2$s."
132
+ msgstr "Erfolgreich dupliziert! Sie können Ihre neue %1$s %2$s bearbeiten."
133
+
134
+ # @ post-duplicator
135
+ #: includes/settings.php:12 includes/settings.php:13
136
+ msgid "Post Duplicator"
137
+ msgstr "Post-Duplizierer"
138
+
139
+ # @ post-duplicator
140
+ #: includes/settings.php:44
141
+ msgid "Post Type"
142
+ msgstr "Beitragstyp"
143
+
144
+ # @ post-duplicator
145
+ #: includes/settings.php:62
146
+ msgid "Duplicate Title"
147
+ msgstr "Doppelte Titel"
148
+
149
+ # @ post-duplicator
150
+ #: includes/settings.php:63
151
+ msgid "String that should be appended to the duplicate post's title"
152
+ msgstr "Zeichenfolge, die an den doppelten Post-Titel angefügt werden soll"
153
+
154
+ # @ post-duplicator
155
+ #: includes/settings.php:70
156
+ msgid "Duplicate Slug"
157
+ msgstr "Doppelte Schnecke"
158
+
159
+ # @ post-duplicator
160
+ #: includes/settings.php:71
161
+ msgid "String that should be appended to the duplicate post's slug"
162
+ msgstr "Zeichenfolge, die an den doppelten Post Flug angefügt werden soll"
languages/post-duplicator-en_US.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: Post Duplicator v2.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2014-08-25 19:02:54+0000\n"
7
  "Last-Translator: admin <joe@metaphorcreations.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -25,6 +25,7 @@ msgstr ""
25
  msgid "Post Status"
26
  msgstr ""
27
 
 
28
  #: includes/settings.php:35
29
  #@ post-duplicator
30
  msgid "Same as original"
@@ -45,58 +46,101 @@ msgstr ""
45
  msgid "Pending"
46
  msgstr ""
47
 
48
- #: includes/settings.php:44
49
  #@ post-duplicator
50
  msgid "Post Date"
51
  msgstr ""
52
 
53
- #: includes/settings.php:47
54
  #@ post-duplicator
55
  msgid "Duplicate Timestamp"
56
  msgstr ""
57
 
58
- #: includes/settings.php:48
59
  #@ post-duplicator
60
  msgid "Current Time"
61
  msgstr ""
62
 
63
- #: includes/settings.php:55
64
  #@ post-duplicator
65
  msgid "Offset Date"
66
  msgstr ""
67
 
68
- #: includes/settings.php:61
69
  #@ post-duplicator
70
  msgid " days"
71
  msgstr ""
72
 
73
- #: includes/settings.php:68
74
  #@ post-duplicator
75
  msgid " hours"
76
  msgstr ""
77
 
78
- #: includes/settings.php:75
79
  #@ post-duplicator
80
  msgid " minutes"
81
  msgstr ""
82
 
83
- #: includes/settings.php:82
84
  #@ post-duplicator
85
  msgid " seconds"
86
  msgstr ""
87
 
88
- #: includes/settings.php:89
89
  #@ post-duplicator
90
  msgid "newer"
91
  msgstr ""
92
 
93
- #: includes/settings.php:90
94
  #@ post-duplicator
95
  msgid "older"
96
  msgstr ""
97
 
98
- #: includes/settings.php:136
99
  #@ post-duplicator
100
  msgid "Post Duplicator Settings"
101
  msgstr ""
102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Post Duplicator v2.14\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2015-12-16 19:05:26+0000\n"
7
  "Last-Translator: admin <joe@metaphorcreations.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
25
  msgid "Post Status"
26
  msgstr ""
27
 
28
+ #: includes/helpers.php:10
29
  #: includes/settings.php:35
30
  #@ post-duplicator
31
  msgid "Same as original"
46
  msgid "Pending"
47
  msgstr ""
48
 
49
+ #: includes/settings.php:51
50
  #@ post-duplicator
51
  msgid "Post Date"
52
  msgstr ""
53
 
54
+ #: includes/settings.php:54
55
  #@ post-duplicator
56
  msgid "Duplicate Timestamp"
57
  msgstr ""
58
 
59
+ #: includes/settings.php:55
60
  #@ post-duplicator
61
  msgid "Current Time"
62
  msgstr ""
63
 
64
+ #: includes/settings.php:70
65
  #@ post-duplicator
66
  msgid "Offset Date"
67
  msgstr ""
68
 
69
+ #: includes/settings.php:76
70
  #@ post-duplicator
71
  msgid " days"
72
  msgstr ""
73
 
74
+ #: includes/settings.php:83
75
  #@ post-duplicator
76
  msgid " hours"
77
  msgstr ""
78
 
79
+ #: includes/settings.php:90
80
  #@ post-duplicator
81
  msgid " minutes"
82
  msgstr ""
83
 
84
+ #: includes/settings.php:97
85
  #@ post-duplicator
86
  msgid " seconds"
87
  msgstr ""
88
 
89
+ #: includes/settings.php:104
90
  #@ post-duplicator
91
  msgid "newer"
92
  msgstr ""
93
 
94
+ #: includes/settings.php:105
95
  #@ post-duplicator
96
  msgid "older"
97
  msgstr ""
98
 
99
+ #: includes/settings.php:151
100
  #@ post-duplicator
101
  msgid "Post Duplicator Settings"
102
  msgstr ""
103
 
104
+ #: includes/edit.php:16
105
+ #, php-format
106
+ #@ post-duplicator
107
+ msgid "Duplicate %s"
108
+ msgstr ""
109
+
110
+ #: includes/edit.php:22
111
+ #, php-format
112
+ #@ post-duplicator
113
+ msgid "Duplicate %1$s to %2$s"
114
+ msgstr ""
115
+
116
+ #: includes/notices.php:20
117
+ #@ post-duplicator
118
+ msgid "here"
119
+ msgstr ""
120
+
121
+ #: includes/notices.php:21
122
+ #, php-format
123
+ #@ post-duplicator
124
+ msgid "Successfully Duplicated! You can edit your new %1$s %2$s."
125
+ msgstr ""
126
+
127
+ #: includes/settings.php:44
128
+ #@ post-duplicator
129
+ msgid "Post Type"
130
+ msgstr ""
131
+
132
+ #: includes/settings.php:175
133
+ #@ post-duplicator
134
+ msgid "Customize the settings for duplicated posts."
135
+ msgstr ""
136
+
137
+ #: includes/settings.php:62
138
+ #@ post-duplicator
139
+ msgid "Duplicate Slug"
140
+ msgstr ""
141
+
142
+ #: includes/settings.php:63
143
+ #@ post-duplicator
144
+ msgid "String that should be appended to the duplicate post's slug"
145
+ msgstr ""
146
+
languages/post-duplicator-fr.mo ADDED
Binary file
languages/post-duplicator-fr.po ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Post Duplicator v2.16\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2016-03-11 12:47-0600\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
+ "Plural-Forms: nplurals=2; plural=n>1;\n"
13
+ "X-Generator: Poedit 1.8.7\n"
14
+ "X-Poedit-SourceCharset: utf-8\n"
15
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
16
+ "X-Textdomain-Support: yes\n"
17
+ "Language: fr\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+
20
+ # @ post-duplicator
21
+ #: includes/settings.php:71
22
+ msgid "String that should be appended to the duplicate post's slug"
23
+ msgstr "Chaîne qui doit être ajoutée au plug du double post"
24
+
25
+ # @ post-duplicator
26
+ #: includes/settings.php:70
27
+ msgid "Duplicate Slug"
28
+ msgstr "Plug en double"
29
+
30
+ # @ post-duplicator
31
+ #: includes/edit.php:22
32
+ #, php-format
33
+ msgid "Duplicate %1$s to %2$s"
34
+ msgstr "Dupliquer %1$s %2$s"
35
+
36
+ # @ post-duplicator
37
+ #: includes/notices.php:20
38
+ msgid "here"
39
+ msgstr "ici"
40
+
41
+ # @ post-duplicator
42
+ #: includes/notices.php:21
43
+ #, php-format
44
+ msgid "Successfully Duplicated! You can edit your new %1$s %2$s."
45
+ msgstr "Reproduit avec succès ! Vous pouvez modifier votre nouveau %1$s %2$s."
46
+
47
+ # @ post-duplicator
48
+ #: includes/settings.php:44
49
+ msgid "Post Type"
50
+ msgstr "Type de contenu"
51
+
52
+ # @ post-duplicator
53
+ #: includes/edit.php:16
54
+ #, php-format
55
+ msgid "Duplicate %s"
56
+ msgstr "Dupliquer %s"
57
+
58
+ # @ post-duplicator
59
+ #: includes/settings.php:32
60
+ msgid "Post Status"
61
+ msgstr "Statut"
62
+
63
+ # @ post-duplicator
64
+ #: includes/helpers.php:10 includes/settings.php:35
65
+ msgid "Same as original"
66
+ msgstr "Identique à l’original"
67
+
68
+ # @ post-duplicator
69
+ #: includes/settings.php:36
70
+ msgid "Draft"
71
+ msgstr "Brouillon"
72
+
73
+ # @ post-duplicator
74
+ #: includes/settings.php:37
75
+ msgid "Published"
76
+ msgstr "Publié"
77
+
78
+ # @ post-duplicator
79
+ #: includes/settings.php:38
80
+ msgid "Pending"
81
+ msgstr "En attente"
82
+
83
+ # @ post-duplicator
84
+ #: includes/settings.php:51
85
+ msgid "Post Date"
86
+ msgstr "Date de l’article"
87
+
88
+ # @ post-duplicator
89
+ #: includes/settings.php:54
90
+ msgid "Duplicate Timestamp"
91
+ msgstr "Plug en double"
92
+
93
+ # @ post-duplicator
94
+ #: includes/settings.php:55
95
+ msgid "Current Time"
96
+ msgstr "Heure actuelle"
97
+
98
+ # @ post-duplicator
99
+ #: includes/settings.php:78
100
+ msgid "Offset Date"
101
+ msgstr "Décalage de date"
102
+
103
+ # @ post-duplicator
104
+ #: includes/settings.php:84
105
+ msgid " days"
106
+ msgstr "jours"
107
+
108
+ # @ post-duplicator
109
+ #: includes/settings.php:91
110
+ msgid " hours"
111
+ msgstr "heures"
112
+
113
+ # @ post-duplicator
114
+ #: includes/settings.php:98
115
+ msgid " minutes"
116
+ msgstr "minutes"
117
+
118
+ # @ post-duplicator
119
+ #: includes/settings.php:105
120
+ msgid " seconds"
121
+ msgstr "secondes"
122
+
123
+ # @ post-duplicator
124
+ #: includes/settings.php:112
125
+ msgid "newer"
126
+ msgstr "plus récent"
127
+
128
+ # @ post-duplicator
129
+ #: includes/settings.php:113
130
+ msgid "older"
131
+ msgstr "précédents"
132
+
133
+ # @ post-duplicator
134
+ #: includes/settings.php:159
135
+ msgid "Post Duplicator Settings"
136
+ msgstr "Paramètres"
137
+
138
+ # @ post-duplicator
139
+ #: includes/settings.php:183
140
+ msgid "Customize the settings for duplicated posts."
141
+ msgstr "Personnaliser les paramètres des messages dupliqués."
142
+
143
+ # @ post-duplicator
144
+ #: includes/functions.php:18 includes/settings.php:66
145
+ msgid "Copy"
146
+ msgstr "Exemplaire"
147
+
148
+ # @ post-duplicator
149
+ #: includes/settings.php:62
150
+ msgid "Duplicate Title"
151
+ msgstr "Titre en double"
152
+
153
+ # @ post-duplicator
154
+ #: includes/settings.php:63
155
+ msgid "String that should be appended to the duplicate post's title"
156
+ msgstr "Chaîne qui doit être ajoutée au titre de la double post"
157
+
158
+ # @ post-duplicator
159
+ #: includes/settings.php:12 includes/settings.php:13
160
+ msgid "Post Duplicator"
161
+ msgstr "Duplicateur de post"
languages/post-duplicator-fr_FR.mo ADDED
Binary file
languages/post-duplicator-fr_FR.po ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Post Duplicator v2.16\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2016-03-11 12:47-0600\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
+ "Plural-Forms: nplurals=2; plural=n>1;\n"
13
+ "X-Generator: Poedit 1.8.7\n"
14
+ "X-Poedit-SourceCharset: utf-8\n"
15
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
16
+ "X-Textdomain-Support: yes\n"
17
+ "Language: fr_FR\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+
20
+ # @ post-duplicator
21
+ #: includes/settings.php:71
22
+ msgid "String that should be appended to the duplicate post's slug"
23
+ msgstr "Chaîne qui doit être ajoutée au plug du double post"
24
+
25
+ # @ post-duplicator
26
+ #: includes/settings.php:70
27
+ msgid "Duplicate Slug"
28
+ msgstr "Plug en double"
29
+
30
+ # @ post-duplicator
31
+ #: includes/edit.php:22
32
+ #, php-format
33
+ msgid "Duplicate %1$s to %2$s"
34
+ msgstr "Dupliquer %1$s %2$s"
35
+
36
+ # @ post-duplicator
37
+ #: includes/notices.php:20
38
+ msgid "here"
39
+ msgstr "ici"
40
+
41
+ # @ post-duplicator
42
+ #: includes/notices.php:21
43
+ #, php-format
44
+ msgid "Successfully Duplicated! You can edit your new %1$s %2$s."
45
+ msgstr "Reproduit avec succès ! Vous pouvez modifier votre nouveau %1$s %2$s."
46
+
47
+ # @ post-duplicator
48
+ #: includes/settings.php:44
49
+ msgid "Post Type"
50
+ msgstr "Type de contenu"
51
+
52
+ # @ post-duplicator
53
+ #: includes/edit.php:16
54
+ #, php-format
55
+ msgid "Duplicate %s"
56
+ msgstr "Dupliquer %s"
57
+
58
+ # @ post-duplicator
59
+ #: includes/settings.php:32
60
+ msgid "Post Status"
61
+ msgstr "Statut"
62
+
63
+ # @ post-duplicator
64
+ #: includes/helpers.php:10 includes/settings.php:35
65
+ msgid "Same as original"
66
+ msgstr "Identique à l’original"
67
+
68
+ # @ post-duplicator
69
+ #: includes/settings.php:36
70
+ msgid "Draft"
71
+ msgstr "Brouillon"
72
+
73
+ # @ post-duplicator
74
+ #: includes/settings.php:37
75
+ msgid "Published"
76
+ msgstr "Publié"
77
+
78
+ # @ post-duplicator
79
+ #: includes/settings.php:38
80
+ msgid "Pending"
81
+ msgstr "En attente"
82
+
83
+ # @ post-duplicator
84
+ #: includes/settings.php:51
85
+ msgid "Post Date"
86
+ msgstr "Date de l’article"
87
+
88
+ # @ post-duplicator
89
+ #: includes/settings.php:54
90
+ msgid "Duplicate Timestamp"
91
+ msgstr "Plug en double"
92
+
93
+ # @ post-duplicator
94
+ #: includes/settings.php:55
95
+ msgid "Current Time"
96
+ msgstr "Heure actuelle"
97
+
98
+ # @ post-duplicator
99
+ #: includes/settings.php:78
100
+ msgid "Offset Date"
101
+ msgstr "Décalage de date"
102
+
103
+ # @ post-duplicator
104
+ #: includes/settings.php:84
105
+ msgid " days"
106
+ msgstr "jours"
107
+
108
+ # @ post-duplicator
109
+ #: includes/settings.php:91
110
+ msgid " hours"
111
+ msgstr "heures"
112
+
113
+ # @ post-duplicator
114
+ #: includes/settings.php:98
115
+ msgid " minutes"
116
+ msgstr "minutes"
117
+
118
+ # @ post-duplicator
119
+ #: includes/settings.php:105
120
+ msgid " seconds"
121
+ msgstr "secondes"
122
+
123
+ # @ post-duplicator
124
+ #: includes/settings.php:112
125
+ msgid "newer"
126
+ msgstr "plus récent"
127
+
128
+ # @ post-duplicator
129
+ #: includes/settings.php:113
130
+ msgid "older"
131
+ msgstr "précédents"
132
+
133
+ # @ post-duplicator
134
+ #: includes/settings.php:159
135
+ msgid "Post Duplicator Settings"
136
+ msgstr "Paramètres"
137
+
138
+ # @ post-duplicator
139
+ #: includes/settings.php:183
140
+ msgid "Customize the settings for duplicated posts."
141
+ msgstr "Personnaliser les paramètres des messages dupliqués."
142
+
143
+ # @ post-duplicator
144
+ #: includes/functions.php:18 includes/settings.php:66
145
+ msgid "Copy"
146
+ msgstr "Exemplaire"
147
+
148
+ # @ post-duplicator
149
+ #: includes/settings.php:62
150
+ msgid "Duplicate Title"
151
+ msgstr "Titre en double"
152
+
153
+ # @ post-duplicator
154
+ #: includes/settings.php:63
155
+ msgid "String that should be appended to the duplicate post's title"
156
+ msgstr "Chaîne qui doit être ajoutée au titre de la double post"
157
+
158
+ # @ post-duplicator
159
+ #: includes/settings.php:12 includes/settings.php:13
160
+ msgid "Post Duplicator"
161
+ msgstr "Duplicateur de post"
languages/post-duplicator-ja.mo ADDED
Binary file
languages/post-duplicator-ja.po ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Post Duplicator\n"
4
+ "POT-Creation-Date: 2015-08-28 11:20+0900\n"
5
+ "PO-Revision-Date: 2015-08-28 12:14+0900\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: Kamibu <info@kamibu.jp>\n"
8
+ "Language: ja\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.4\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "X-Poedit-WPHeader: m4c-postduplicator.php\n"
15
+ "Plural-Forms: nplurals=1; plural=0;\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;"
19
+ "_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
22
+
23
+ #: includes/edit.php:17
24
+ #, php-format
25
+ msgid "Duplicate %s"
26
+ msgstr "複製"
27
+
28
+ #: includes/settings.php:32
29
+ msgid "Post Status"
30
+ msgstr "複製した投稿ステータス"
31
+
32
+ #: includes/settings.php:35
33
+ msgid "Same as original"
34
+ msgstr "変更しない"
35
+
36
+ #: includes/settings.php:36
37
+ msgid "Draft"
38
+ msgstr "下書き"
39
+
40
+ #: includes/settings.php:37
41
+ msgid "Published"
42
+ msgstr "公開済み"
43
+
44
+ #: includes/settings.php:38
45
+ msgid "Pending"
46
+ msgstr "保留中"
47
+
48
+ #: includes/settings.php:44
49
+ msgid "Post Date"
50
+ msgstr "複製した投稿日時"
51
+
52
+ #: includes/settings.php:47
53
+ msgid "Duplicate Timestamp"
54
+ msgstr "オリジナルを利用"
55
+
56
+ #: includes/settings.php:48
57
+ msgid "Current Time"
58
+ msgstr "複製時刻"
59
+
60
+ #: includes/settings.php:55
61
+ msgid "Offset Date"
62
+ msgstr "投稿日時オフセット"
63
+
64
+ #: includes/settings.php:61
65
+ msgid " days"
66
+ msgstr "日"
67
+
68
+ #: includes/settings.php:68
69
+ msgid " hours"
70
+ msgstr "時間"
71
+
72
+ #: includes/settings.php:75
73
+ msgid " minutes"
74
+ msgstr "分"
75
+
76
+ #: includes/settings.php:82
77
+ msgid " seconds"
78
+ msgstr "秒"
79
+
80
+ #: includes/settings.php:89
81
+ msgid "newer"
82
+ msgstr "進める"
83
+
84
+ #: includes/settings.php:90
85
+ msgid "older"
86
+ msgstr "戻す"
87
+
88
+ #: includes/settings.php:136
89
+ msgid "Post Duplicator Settings"
90
+ msgstr "Post Duplicator 設定"
91
+
92
+ #. Plugin Name of the plugin/theme
93
+ msgid "Post Duplicator"
94
+ msgstr ""
95
+
96
+ #. Description of the plugin/theme
97
+ msgid ""
98
+ "Creates functionality to duplicate any and all post types, including "
99
+ "taxonomies & custom fields"
100
+ msgstr ""
101
+
102
+ #. Author of the plugin/theme
103
+ msgid "Metaphor Creations"
104
+ msgstr ""
105
+
106
+ #. Author URI of the plugin/theme
107
+ msgid "http://www.metaphorcreations.com"
108
+ msgstr ""
languages/post-duplicator.pot ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #, fuzzy
2
+ msgid ""
3
+ msgstr ""
4
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
+ "Project-Id-Version: Post Duplicator\n"
6
+ "POT-Creation-Date: 2015-08-29 01:52+0900\n"
7
+ "PO-Revision-Date: 2015-08-29 01:52+0900\n"
8
+ "Last-Translator: \n"
9
+ "Language-Team: \n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 1.8.4\n"
14
+ "X-Poedit-Basepath: ..\n"
15
+ "X-Poedit-WPHeader: m4c-postduplicator.php\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
19
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
22
+
23
+ #: includes/edit.php:17
24
+ #, php-format
25
+ msgid "Duplicate %s"
26
+ msgstr ""
27
+
28
+ #: includes/settings.php:32
29
+ msgid "Post Status"
30
+ msgstr ""
31
+
32
+ #: includes/settings.php:35
33
+ msgid "Same as original"
34
+ msgstr ""
35
+
36
+ #: includes/settings.php:36
37
+ msgid "Draft"
38
+ msgstr ""
39
+
40
+ #: includes/settings.php:37
41
+ msgid "Published"
42
+ msgstr ""
43
+
44
+ #: includes/settings.php:38
45
+ msgid "Pending"
46
+ msgstr ""
47
+
48
+ #: includes/settings.php:44
49
+ msgid "Post Date"
50
+ msgstr ""
51
+
52
+ #: includes/settings.php:47
53
+ msgid "Duplicate Timestamp"
54
+ msgstr ""
55
+
56
+ #: includes/settings.php:48
57
+ msgid "Current Time"
58
+ msgstr ""
59
+
60
+ #: includes/settings.php:55
61
+ msgid "Offset Date"
62
+ msgstr ""
63
+
64
+ #: includes/settings.php:61
65
+ msgid " days"
66
+ msgstr ""
67
+
68
+ #: includes/settings.php:68
69
+ msgid " hours"
70
+ msgstr ""
71
+
72
+ #: includes/settings.php:75
73
+ msgid " minutes"
74
+ msgstr ""
75
+
76
+ #: includes/settings.php:82
77
+ msgid " seconds"
78
+ msgstr ""
79
+
80
+ #: includes/settings.php:89
81
+ msgid "newer"
82
+ msgstr ""
83
+
84
+ #: includes/settings.php:90
85
+ msgid "older"
86
+ msgstr ""
87
+
88
+ #: includes/settings.php:136
89
+ msgid "Post Duplicator Settings"
90
+ msgstr ""
91
+
92
+ #. Plugin Name of the plugin/theme
93
+ msgid "Post Duplicator"
94
+ msgstr ""
95
+
96
+ #. Description of the plugin/theme
97
+ msgid ""
98
+ "Creates functionality to duplicate any and all post types, including "
99
+ "taxonomies & custom fields"
100
+ msgstr ""
101
+
102
+ #. Author of the plugin/theme
103
+ msgid "Metaphor Creations"
104
+ msgstr ""
105
+
106
+ #. Author URI of the plugin/theme
107
+ msgid "http://www.metaphorcreations.com"
108
+ msgstr ""
m4c-postduplicator.js DELETED
@@ -1,29 +0,0 @@
1
- jQuery( document ).ready( function() {
2
-
3
- /**
4
- * Duplicate post listener.
5
- *
6
- * Creates an ajax request that creates a new post,
7
- * duplicating all the data and custom meta.
8
- *
9
- * @since 1.0.0
10
- */
11
- jQuery( '.m4c-duplicate-post' ).click( function( e ) {
12
-
13
- e.preventDefault();
14
-
15
- // Create the data to pass
16
- var data = {
17
- action: 'm4c_duplicate_post',
18
- original_id: jQuery(this).attr('href'),
19
- security: jQuery(this).attr('rel')
20
- };
21
-
22
- // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
23
- jQuery.post( ajaxurl, data, function( response ) {
24
-
25
- // Reload the page
26
- location.reload();
27
- });
28
- });
29
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
m4c-postduplicator.php CHANGED
@@ -2,9 +2,10 @@
2
  /*
3
  Plugin Name: Post Duplicator
4
  Description: Creates functionality to duplicate any and all post types, including taxonomies & custom fields
5
- Version: 2.4
6
  Author: Metaphor Creations
7
  Author URI: http://www.metaphorcreations.com
 
8
  License: GPL2
9
  */
10
 
@@ -29,10 +30,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29
 
30
 
31
  /**Define Widget Constants */
32
- define ( 'MTPHR_POST_DUPLICATOR_VERSION', '2.4' );
33
  define ( 'MTPHR_POST_DUPLICATOR_DIR', plugin_dir_path(__FILE__) );
34
- define ( 'MTPHR_POST_DUPLICATOR_URL', plugins_url().'/post-duplicator' );
35
-
36
 
37
 
38
 
@@ -57,12 +56,14 @@ function mtphr_post_duplicator_localization() {
57
  if ( is_admin() ) {
58
 
59
  // Load Metaboxer
 
60
  require_once( MTPHR_POST_DUPLICATOR_DIR.'metaboxer/metaboxer.php' );
61
  require_once( MTPHR_POST_DUPLICATOR_DIR.'metaboxer/metaboxer-class.php' );
62
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/scripts.php' );
63
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/ajax.php' );
64
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/edit.php' );
65
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/functions.php' );
 
66
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/settings.php' );
67
  }
68
 
2
  /*
3
  Plugin Name: Post Duplicator
4
  Description: Creates functionality to duplicate any and all post types, including taxonomies & custom fields
5
+ Version: 2.20
6
  Author: Metaphor Creations
7
  Author URI: http://www.metaphorcreations.com
8
+ Text Domain: post-duplicator
9
  License: GPL2
10
  */
11
 
30
 
31
 
32
  /**Define Widget Constants */
33
+ define ( 'MTPHR_POST_DUPLICATOR_VERSION', '2.20' );
34
  define ( 'MTPHR_POST_DUPLICATOR_DIR', plugin_dir_path(__FILE__) );
 
 
35
 
36
 
37
 
56
  if ( is_admin() ) {
57
 
58
  // Load Metaboxer
59
+ require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/helpers.php' );
60
  require_once( MTPHR_POST_DUPLICATOR_DIR.'metaboxer/metaboxer.php' );
61
  require_once( MTPHR_POST_DUPLICATOR_DIR.'metaboxer/metaboxer-class.php' );
62
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/scripts.php' );
63
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/ajax.php' );
64
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/edit.php' );
65
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/functions.php' );
66
+ require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/notices.php' );
67
  require_once( MTPHR_POST_DUPLICATOR_DIR.'includes/settings.php' );
68
  }
69
 
readme.txt CHANGED
@@ -1,8 +1,8 @@
1
  === Post Duplicator ===
2
  Contributors: metaphorcreations
3
  Tags: posts, post, duplicate, duplication
4
- Requires at least: 3.0
5
- Tested up to: 3.9.2
6
  Stable tag: /trunk/
7
  License: GPL2
8
 
@@ -21,7 +21,7 @@ I created this plugin mainly for myself when I'm develping WordPress sites. I al
21
  == Installation ==
22
 
23
  1. Upload `m4c-postduplicator` directory to the `/wp-content/plugins/` directory
24
- 2. Activate the plugin through the 'Plugins' menu in WordPress
25
 
26
  == Frequently Asked Questions ==
27
 
@@ -41,6 +41,63 @@ Check out the 'Installation' tab.
41
 
42
  == Changelog ==
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  = 2.4 =
45
  * Cleaned up some code.
46
  * Updated localization code and files.
@@ -67,4 +124,4 @@ Must upgrade in order for the plugin to work. The file paths where initially wro
67
 
68
  == Upgrade Notice ==
69
 
70
- Code cleanup and localization updates.
1
  === Post Duplicator ===
2
  Contributors: metaphorcreations
3
  Tags: posts, post, duplicate, duplication
4
+ Requires at least: 4.0
5
+ Tested up to: 4.7.2
6
  Stable tag: /trunk/
7
  License: GPL2
8
 
21
  == Installation ==
22
 
23
  1. Upload `m4c-postduplicator` directory to the `/wp-content/plugins/` directory
24
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
25
 
26
  == Frequently Asked Questions ==
27
 
41
 
42
  == Changelog ==
43
 
44
+ = 2.20 =
45
+ * Added "do_action( 'mtphr_post_duplicator_created', $original_id, $duplicate_id, $settings )" action for custom actions on duplicated post
46
+ * Added "mtphr_post_duplicator_action_row_link( $post )" function for custom post action rows
47
+ * Separated post duplicated function outsite of ajax call for custom uses
48
+ * Removed limitations of backend script to load only on specific pages
49
+
50
+ = 2.19 =
51
+ * Added Duplicate button to published post edit pages
52
+
53
+ = 2.18 =
54
+ * Modified javascript for allow duplication of duplicated page before page reload
55
+
56
+ = 2.17 =
57
+ * XSS vulnerability fix
58
+ * Language file updates
59
+
60
+ = 2.16 =
61
+ * Modified how post meta is saved to database
62
+ * Modified duplicate slug implementation
63
+ * Added file duplication support for the WP Customer Area plugin
64
+
65
+ = 2.15 =
66
+ * Added default value for duplicate post slug
67
+ * New setting to append a custom string to the duplicate post title
68
+
69
+ = 2.14 =
70
+ * New setting to append a custom string to the duplicate post slug
71
+
72
+ = 2.13 =
73
+ * Fixed bug due to "wp_old_slug_redirect" function in core
74
+
75
+ = 2.12 =
76
+ * Fixed page reload bug after duplication
77
+
78
+ = 2.11 =
79
+ * Added ability to duplicate posts to other post types
80
+
81
+ = 2.10 =
82
+ * Added page duplication support for the WP Customer Area plugin
83
+
84
+ = 2.9 =
85
+ * Now supports multiple values of a single custom field during duplication
86
+
87
+ = 2.8 =
88
+ * Added German language files
89
+ * Added Japanese language files
90
+ * Updated settings file for localization
91
+
92
+ = 2.7 =
93
+ * Modified duplicated posts data: post_date_gmt, post_modified, post_modified_gmt
94
+
95
+ = 2.6 =
96
+ * Changed the default published status to Draft
97
+
98
+ = 2.5 =
99
+ * Changed the default post date of duplicated posts to be the current time.
100
+
101
  = 2.4 =
102
  * Cleaned up some code.
103
  * Updated localization code and files.
124
 
125
  == Upgrade Notice ==
126
 
127
+ New "mtphr_post_duplicator_created" action, function updates and additions, other updates