Contact Form 7 - Version 4.3

Version Description

  • reCAPTCHA module has been introduced.
  • Translations for Croatian, Danish, Persian, and Swedish have been updated.
  • WordPress 4.2 or higher is required.
Download this release

Release Info

Developer takayukister
Plugin Icon 128x128 Contact Form 7
Version 4.3
Comparing to
See all releases

Code changes from version 4.2.2 to 4.3

admin/admin.php CHANGED
@@ -4,6 +4,12 @@ require_once WPCF7_PLUGIN_DIR . '/admin/includes/admin-functions.php';
4
  require_once WPCF7_PLUGIN_DIR . '/admin/includes/help-tabs.php';
5
  require_once WPCF7_PLUGIN_DIR . '/admin/includes/tag-generator.php';
6
 
 
 
 
 
 
 
7
  add_action( 'admin_menu', 'wpcf7_admin_menu', 9 );
8
 
9
  function wpcf7_admin_menu() {
@@ -175,7 +181,6 @@ function wpcf7_load_contact_form_admin() {
175
  array( 'WPCF7_Contact_Form_List_Table', 'define_columns' ) );
176
 
177
  add_screen_option( 'per_page', array(
178
- 'label' => __( 'Contact Forms', 'contact-form-7' ),
179
  'default' => 20,
180
  'option' => 'cfseven_contact_forms_per_page' ) );
181
  }
@@ -341,22 +346,21 @@ function wpcf7_admin_integration_page() {
341
  add_action( 'wpcf7_admin_notices', 'wpcf7_admin_updated_message' );
342
 
343
  function wpcf7_admin_updated_message() {
344
- if ( empty( $_REQUEST['message'] ) )
345
  return;
 
346
 
347
- if ( 'created' == $_REQUEST['message'] )
348
- $updated_message = esc_html( __( 'Contact form created.', 'contact-form-7' ) );
349
- elseif ( 'saved' == $_REQUEST['message'] )
350
- $updated_message = esc_html( __( 'Contact form saved.', 'contact-form-7' ) );
351
- elseif ( 'deleted' == $_REQUEST['message'] )
352
- $updated_message = esc_html( __( 'Contact form deleted.', 'contact-form-7' ) );
353
-
354
- if ( empty( $updated_message ) )
355
- return;
356
 
357
- ?>
358
- <div id="message" class="updated"><p><?php echo $updated_message; ?></p></div>
359
- <?php
360
  }
361
 
362
  add_filter( 'plugin_action_links', 'wpcf7_plugin_action_links', 10, 2 );
@@ -373,28 +377,23 @@ function wpcf7_plugin_action_links( $links, $file ) {
373
  return $links;
374
  }
375
 
376
- add_action( 'admin_notices', 'wpcf7_old_wp_version_error', 9 );
377
 
378
  function wpcf7_old_wp_version_error() {
379
- global $plugin_page;
380
-
381
- if ( 'wpcf7' != substr( $plugin_page, 0, 5 ) ) {
382
- return;
383
- }
384
-
385
  $wp_version = get_bloginfo( 'version' );
386
 
387
- if ( ! version_compare( $wp_version, WPCF7_REQUIRED_WP_VERSION, '<' ) )
388
  return;
 
389
 
390
  ?>
391
- <div class="error">
392
  <p><?php echo sprintf( __( '<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> Please <a href="%3$s">update WordPress</a> first.', 'contact-form-7' ), WPCF7_VERSION, WPCF7_REQUIRED_WP_VERSION, admin_url( 'update-core.php' ) ); ?></p>
393
  </div>
394
  <?php
395
  }
396
 
397
- add_action( 'wpcf7_admin_notices', 'wpcf7_welcome_panel', 2 );
398
 
399
  function wpcf7_welcome_panel() {
400
  global $plugin_page;
@@ -489,6 +488,7 @@ function wpcf7_not_allowed_to_edit() {
489
  $message = __( "You are not allowed to edit this contact form.",
490
  'contact-form-7' );
491
 
492
- echo sprintf( '<div class="notice notice-warning"><p>%s</p></div>',
 
493
  esc_html( $message ) );
494
  }
4
  require_once WPCF7_PLUGIN_DIR . '/admin/includes/help-tabs.php';
5
  require_once WPCF7_PLUGIN_DIR . '/admin/includes/tag-generator.php';
6
 
7
+ add_action( 'admin_init', 'wpcf7_admin_init' );
8
+
9
+ function wpcf7_admin_init() {
10
+ do_action( 'wpcf7_admin_init' );
11
+ }
12
+
13
  add_action( 'admin_menu', 'wpcf7_admin_menu', 9 );
14
 
15
  function wpcf7_admin_menu() {
181
  array( 'WPCF7_Contact_Form_List_Table', 'define_columns' ) );
182
 
183
  add_screen_option( 'per_page', array(
 
184
  'default' => 20,
185
  'option' => 'cfseven_contact_forms_per_page' ) );
186
  }
346
  add_action( 'wpcf7_admin_notices', 'wpcf7_admin_updated_message' );
347
 
348
  function wpcf7_admin_updated_message() {
349
+ if ( empty( $_REQUEST['message'] ) ) {
350
  return;
351
+ }
352
 
353
+ if ( 'created' == $_REQUEST['message'] ) {
354
+ $updated_message = __( 'Contact form created.', 'contact-form-7' );
355
+ } elseif ( 'saved' == $_REQUEST['message'] ) {
356
+ $updated_message = __( 'Contact form saved.', 'contact-form-7' );
357
+ } elseif ( 'deleted' == $_REQUEST['message'] ) {
358
+ $updated_message = __( 'Contact form deleted.', 'contact-form-7' );
359
+ }
 
 
360
 
361
+ if ( ! empty( $updated_message ) ) {
362
+ echo sprintf( '<div id="message" class="updated notice notice-success is-dismissible"><p>%s</p></div>', esc_html( $updated_message ) );
363
+ }
364
  }
365
 
366
  add_filter( 'plugin_action_links', 'wpcf7_plugin_action_links', 10, 2 );
377
  return $links;
378
  }
379
 
380
+ add_action( 'wpcf7_admin_notices', 'wpcf7_old_wp_version_error', 2 );
381
 
382
  function wpcf7_old_wp_version_error() {
 
 
 
 
 
 
383
  $wp_version = get_bloginfo( 'version' );
384
 
385
+ if ( ! version_compare( $wp_version, WPCF7_REQUIRED_WP_VERSION, '<' ) ) {
386
  return;
387
+ }
388
 
389
  ?>
390
+ <div class="notice notice-error is-dismissible">
391
  <p><?php echo sprintf( __( '<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> Please <a href="%3$s">update WordPress</a> first.', 'contact-form-7' ), WPCF7_VERSION, WPCF7_REQUIRED_WP_VERSION, admin_url( 'update-core.php' ) ); ?></p>
392
  </div>
393
  <?php
394
  }
395
 
396
+ add_action( 'wpcf7_admin_notices', 'wpcf7_welcome_panel', 4 );
397
 
398
  function wpcf7_welcome_panel() {
399
  global $plugin_page;
488
  $message = __( "You are not allowed to edit this contact form.",
489
  'contact-form-7' );
490
 
491
+ echo sprintf(
492
+ '<div class="notice notice-warning is-dismissible"><p>%s</p></div>',
493
  esc_html( $message ) );
494
  }
admin/edit-contact-form.php CHANGED
@@ -143,9 +143,11 @@ if ( $post ) :
143
  </div><!-- #delete-action -->
144
  <?php endif; ?>
145
 
146
- <div class="save-contact-form textright">
 
147
  <?php wpcf7_admin_save_button( $post_id ); ?>
148
  </div>
 
149
  </div><!-- #major-publishing-actions -->
150
  </div><!-- #submitpost -->
151
  </div>
143
  </div><!-- #delete-action -->
144
  <?php endif; ?>
145
 
146
+ <div id="publishing-action">
147
+ <span class="spinner"></span>
148
  <?php wpcf7_admin_save_button( $post_id ); ?>
149
  </div>
150
+ <div class="clear"></div>
151
  </div><!-- #major-publishing-actions -->
152
  </div><!-- #submitpost -->
153
  </div>
admin/js/scripts.js CHANGED
@@ -78,6 +78,10 @@
78
  if ('copy' != this.action.value) {
79
  $(window).off('beforeunload');
80
  }
 
 
 
 
81
  });
82
  });
83
 
78
  if ('copy' != this.action.value) {
79
  $(window).off('beforeunload');
80
  }
81
+
82
+ if ('save' == this.action.value) {
83
+ $('#publishing-action .spinner').addClass('is-active');
84
+ }
85
  });
86
  });
87
 
admin/js/tag-generator.js CHANGED
@@ -88,26 +88,7 @@
88
 
89
  var options = [];
90
 
91
- var size = scope.find(':input[name="size"]').val() || '';
92
- var maxlength = scope.find(':input[name="maxlength"]').val() || '';
93
- var cols = scope.find(':input[name="cols"]').val() || '';
94
- var rows = scope.find(':input[name="rows"]').val() || '';
95
-
96
- if ((cols || rows) && maxlength) {
97
- options.push(cols + 'x' + rows + '/' + maxlength);
98
- } else if (cols || rows) {
99
- options.push(cols + 'x' + rows);
100
- } else if (size || maxlength) {
101
- options.push(size + '/' + maxlength);
102
- }
103
-
104
  scope.find('input.option').not(':checkbox,:radio').each(function(i) {
105
- var excluded = ['size', 'maxlength', 'cols', 'rows'];
106
-
107
- if (-1 < $.inArray($(this).attr('name'), excluded)) {
108
- return;
109
- }
110
-
111
  var val = $(this).val();
112
 
113
  if (! val) {
@@ -135,6 +116,12 @@
135
  }
136
  });
137
 
 
 
 
 
 
 
138
  options = (options.length > 0) ? options.join(' ') : '';
139
 
140
  var value = '';
88
 
89
  var options = [];
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  scope.find('input.option').not(':checkbox,:radio').each(function(i) {
 
 
 
 
 
 
92
  var val = $(this).val();
93
 
94
  if (! val) {
116
  }
117
  });
118
 
119
+ scope.find('input:radio.option').each(function(i) {
120
+ if ($(this).is(':checked') && ! $(this).hasClass('default')) {
121
+ options.push($(this).attr('name') + ':' + $(this).val());
122
+ }
123
+ });
124
+
125
  options = (options.length > 0) ? options.join(' ') : '';
126
 
127
  var value = '';
images/service-icons/recaptcha-72x72.png ADDED
Binary file
includes/contact-form.php CHANGED
@@ -357,15 +357,19 @@ class WPCF7_ContactForm {
357
  '_wpcf7_locale' => $this->locale,
358
  '_wpcf7_unit_tag' => $this->unit_tag );
359
 
360
- if ( WPCF7_VERIFY_NONCE )
361
  $hidden_fields['_wpnonce'] = wpcf7_create_nonce( $this->id );
 
 
 
 
362
 
363
  $content = '';
364
 
365
  foreach ( $hidden_fields as $name => $value ) {
366
- $content .= '<input type="hidden"'
367
- . ' name="' . esc_attr( $name ) . '"'
368
- . ' value="' . esc_attr( $value ) . '" />' . "\n";
369
  }
370
 
371
  return '<div style="display: none;">' . "\n" . $content . '</div>' . "\n";
@@ -508,11 +512,13 @@ class WPCF7_ContactForm {
508
  $this->scanned_form_tags = $scanned;
509
  }
510
 
511
- if ( empty( $scanned ) )
512
- return null;
 
513
 
514
- if ( ! is_array( $cond ) || empty( $cond ) )
515
  return $scanned;
 
516
 
517
  for ( $i = 0, $size = count( $scanned ); $i < $size; $i++ ) {
518
 
@@ -815,15 +821,17 @@ function wpcf7_get_contact_form_by_old_id( $old_id ) {
815
  $q = "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_old_cf7_unit_id'"
816
  . $wpdb->prepare( " AND meta_value = %d", $old_id );
817
 
818
- if ( $new_id = $wpdb->get_var( $q ) )
819
  return wpcf7_contact_form( $new_id );
 
820
  }
821
 
822
  function wpcf7_get_contact_form_by_title( $title ) {
823
  $page = get_page_by_title( $title, OBJECT, WPCF7_ContactForm::post_type );
824
 
825
- if ( $page )
826
  return wpcf7_contact_form( $page->ID );
 
827
 
828
  return null;
829
  }
@@ -835,8 +843,9 @@ function wpcf7_get_current_contact_form() {
835
  }
836
 
837
  function wpcf7_is_posted() {
838
- if ( ! $contact_form = wpcf7_get_current_contact_form() )
839
  return false;
 
840
 
841
  return $contact_form->is_posted();
842
  }
@@ -856,22 +865,25 @@ function wpcf7_get_hangover( $name, $default = null ) {
856
  }
857
 
858
  function wpcf7_get_validation_error( $name ) {
859
- if ( ! $contact_form = wpcf7_get_current_contact_form() )
860
  return '';
 
861
 
862
  return $contact_form->validation_error( $name );
863
  }
864
 
865
  function wpcf7_get_message( $status ) {
866
- if ( ! $contact_form = wpcf7_get_current_contact_form() )
867
  return '';
 
868
 
869
  return $contact_form->message( $status );
870
  }
871
 
872
  function wpcf7_scan_shortcode( $cond = null ) {
873
- if ( ! $contact_form = wpcf7_get_current_contact_form() )
874
- return null;
 
875
 
876
  return $contact_form->form_scan_shortcode( $cond );
877
  }
@@ -887,8 +899,9 @@ function wpcf7_form_controls_class( $type, $default = '' ) {
887
 
888
  $classes[] = 'wpcf7-' . $typebase;
889
 
890
- if ( $required )
891
  $classes[] = 'wpcf7-validates-as-required';
 
892
 
893
  $classes = array_unique( $classes );
894
 
357
  '_wpcf7_locale' => $this->locale,
358
  '_wpcf7_unit_tag' => $this->unit_tag );
359
 
360
+ if ( WPCF7_VERIFY_NONCE ) {
361
  $hidden_fields['_wpnonce'] = wpcf7_create_nonce( $this->id );
362
+ }
363
+
364
+ $hidden_fields += (array) apply_filters(
365
+ 'wpcf7_form_hidden_fields', array() );
366
 
367
  $content = '';
368
 
369
  foreach ( $hidden_fields as $name => $value ) {
370
+ $content .= sprintf(
371
+ '<input type="hidden" name="%1$s" value="%2$s" />',
372
+ esc_attr( $name ), esc_attr( $value ) ) . "\n";
373
  }
374
 
375
  return '<div style="display: none;">' . "\n" . $content . '</div>' . "\n";
512
  $this->scanned_form_tags = $scanned;
513
  }
514
 
515
+ if ( empty( $scanned ) ) {
516
+ return array();
517
+ }
518
 
519
+ if ( ! is_array( $cond ) || empty( $cond ) ) {
520
  return $scanned;
521
+ }
522
 
523
  for ( $i = 0, $size = count( $scanned ); $i < $size; $i++ ) {
524
 
821
  $q = "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_old_cf7_unit_id'"
822
  . $wpdb->prepare( " AND meta_value = %d", $old_id );
823
 
824
+ if ( $new_id = $wpdb->get_var( $q ) ) {
825
  return wpcf7_contact_form( $new_id );
826
+ }
827
  }
828
 
829
  function wpcf7_get_contact_form_by_title( $title ) {
830
  $page = get_page_by_title( $title, OBJECT, WPCF7_ContactForm::post_type );
831
 
832
+ if ( $page ) {
833
  return wpcf7_contact_form( $page->ID );
834
+ }
835
 
836
  return null;
837
  }
843
  }
844
 
845
  function wpcf7_is_posted() {
846
+ if ( ! $contact_form = wpcf7_get_current_contact_form() ) {
847
  return false;
848
+ }
849
 
850
  return $contact_form->is_posted();
851
  }
865
  }
866
 
867
  function wpcf7_get_validation_error( $name ) {
868
+ if ( ! $contact_form = wpcf7_get_current_contact_form() ) {
869
  return '';
870
+ }
871
 
872
  return $contact_form->validation_error( $name );
873
  }
874
 
875
  function wpcf7_get_message( $status ) {
876
+ if ( ! $contact_form = wpcf7_get_current_contact_form() ) {
877
  return '';
878
+ }
879
 
880
  return $contact_form->message( $status );
881
  }
882
 
883
  function wpcf7_scan_shortcode( $cond = null ) {
884
+ if ( ! $contact_form = wpcf7_get_current_contact_form() ) {
885
+ return array();
886
+ }
887
 
888
  return $contact_form->form_scan_shortcode( $cond );
889
  }
899
 
900
  $classes[] = 'wpcf7-' . $typebase;
901
 
902
+ if ( $required ) {
903
  $classes[] = 'wpcf7-validates-as-required';
904
+ }
905
 
906
  $classes = array_unique( $classes );
907
 
includes/controller.php CHANGED
@@ -31,7 +31,7 @@ function wpcf7_ajax_onload() {
31
  $items = apply_filters( 'wpcf7_ajax_onload', $items );
32
  }
33
 
34
- $echo = json_encode( $items );
35
 
36
  if ( wpcf7_is_xhr() ) {
37
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
@@ -94,7 +94,7 @@ function wpcf7_ajax_json_echo() {
94
  }
95
  }
96
 
97
- $echo = json_encode( $items );
98
 
99
  if ( wpcf7_is_xhr() ) {
100
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
31
  $items = apply_filters( 'wpcf7_ajax_onload', $items );
32
  }
33
 
34
+ $echo = wp_json_encode( $items );
35
 
36
  if ( wpcf7_is_xhr() ) {
37
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
94
  }
95
  }
96
 
97
+ $echo = wp_json_encode( $items );
98
 
99
  if ( wpcf7_is_xhr() ) {
100
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
includes/formatting.php CHANGED
@@ -13,8 +13,9 @@ function wpcf7_autop( $pee, $br = 1 ) {
13
  $pee = preg_replace( '!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee );
14
  $pee = preg_replace( '!(</' . $allblocks . '>)!', "$1\n\n", $pee );
15
 
16
- /* wpcf7: take care of [response] tag */
17
- $pee = preg_replace( '!(\[response[^]]*\])!', "\n$1\n\n", $pee );
 
18
 
19
  $pee = str_replace( array( "\r\n", "\r" ), "\n", $pee ); // cross-platform newlines
20
 
@@ -41,9 +42,11 @@ function wpcf7_autop( $pee, $br = 1 ) {
41
  $pee = preg_replace( '!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee );
42
  $pee = preg_replace( '!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee );
43
 
44
- /* wpcf7: take care of [response] tag */
45
- $pee = preg_replace( '!<p>\s*(\[response[^]]*\])!', "$1", $pee );
46
- $pee = preg_replace( '!(\[response[^]]*\])\s*</p>!', "$1", $pee );
 
 
47
 
48
  if ( $br ) {
49
  /* wpcf7: add textarea */
13
  $pee = preg_replace( '!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee );
14
  $pee = preg_replace( '!(</' . $allblocks . '>)!', "$1\n\n", $pee );
15
 
16
+ /* wpcf7: take care of [response] and [recaptcha] tag */
17
+ $pee = preg_replace( '!(\[(?:response|recaptcha)[^]]*\])!',
18
+ "\n$1\n\n", $pee );
19
 
20
  $pee = str_replace( array( "\r\n", "\r" ), "\n", $pee ); // cross-platform newlines
21
 
42
  $pee = preg_replace( '!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee );
43
  $pee = preg_replace( '!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee );
44
 
45
+ /* wpcf7: take care of [response] and [recaptcha] tag */
46
+ $pee = preg_replace( '!<p>\s*(\[(?:response|recaptcha)[^]]*\])!',
47
+ "$1", $pee );
48
+ $pee = preg_replace( '!(\[(?:response|recaptcha)[^]]*\])\s*</p>!',
49
+ "$1", $pee );
50
 
51
  if ( $br ) {
52
  /* wpcf7: add textarea */
includes/functions.php CHANGED
@@ -29,101 +29,6 @@ function wpcf7_upload_dir( $type = false ) {
29
  return $uploads;
30
  }
31
 
32
- function wpcf7_l10n() {
33
- static $l10n = array();
34
-
35
- if ( ! empty( $l10n ) ) {
36
- return $l10n;
37
- }
38
-
39
- $l10n = array(
40
- 'af' => __( 'Afrikaans', 'contact-form-7' ),
41
- 'sq' => __( 'Albanian', 'contact-form-7' ),
42
- 'ar' => __( 'Arabic', 'contact-form-7' ),
43
- 'hy_AM' => __( 'Armenian', 'contact-form-7' ),
44
- 'az' => __( 'Azerbaijani', 'contact-form-7' ),
45
- 'bn_BD' => __( 'Bangla', 'contact-form-7' ),
46
- 'eu' => __( 'Basque', 'contact-form-7' ),
47
- 'be_BY' => __( 'Belarusian', 'contact-form-7' ),
48
- 'bs_BA' => __( 'Bosnian', 'contact-form-7' ),
49
- 'bg_BG' => __( 'Bulgarian', 'contact-form-7' ),
50
- 'ca' => __( 'Catalan', 'contact-form-7' ),
51
- 'ckb' => __( 'Central Kurdish', 'contact-form-7' ),
52
- 'zh_CN' => __( 'Chinese (China)', 'contact-form-7' ),
53
- 'zh_TW' => __( 'Chinese (Taiwan)', 'contact-form-7' ),
54
- 'hr' => __( 'Croatian', 'contact-form-7' ),
55
- 'cs_CZ' => __( 'Czech', 'contact-form-7' ),
56
- 'da_DK' => __( 'Danish', 'contact-form-7' ),
57
- 'nl_NL' => __( 'Dutch', 'contact-form-7' ),
58
- 'en_US' => __( 'English (United States)', 'contact-form-7' ),
59
- 'eo_EO' => __( 'Esperanto', 'contact-form-7' ),
60
- 'et' => __( 'Estonian', 'contact-form-7' ),
61
- 'fi' => __( 'Finnish', 'contact-form-7' ),
62
- 'fr_FR' => __( 'French (France)', 'contact-form-7' ),
63
- 'gl_ES' => __( 'Galician', 'contact-form-7' ),
64
- 'gu_IN' => __( 'Gujarati', 'contact-form-7' ),
65
- 'ka_GE' => __( 'Georgian', 'contact-form-7' ),
66
- 'de_DE' => __( 'German', 'contact-form-7' ),
67
- 'el' => __( 'Greek', 'contact-form-7' ),
68
- 'ht' => __( 'Haitian', 'contact-form-7' ),
69
- 'he_IL' => __( 'Hebrew', 'contact-form-7' ),
70
- 'hi_IN' => __( 'Hindi', 'contact-form-7' ),
71
- 'hu_HU' => __( 'Hungarian', 'contact-form-7' ),
72
- 'bn_IN' => __( 'Indian Bengali', 'contact-form-7' ),
73
- 'id_ID' => __( 'Indonesian', 'contact-form-7' ),
74
- 'ga_IE' => __( 'Irish', 'contact-form-7' ),
75
- 'it_IT' => __( 'Italian', 'contact-form-7' ),
76
- 'ja' => __( 'Japanese', 'contact-form-7' ),
77
- 'ko_KR' => __( 'Korean', 'contact-form-7' ),
78
- 'lv' => __( 'Latvian', 'contact-form-7' ),
79
- 'lt_LT' => __( 'Lithuanian', 'contact-form-7' ),
80
- 'mk_MK' => __( 'Macedonian', 'contact-form-7' ),
81
- 'ms_MY' => __( 'Malay', 'contact-form-7' ),
82
- 'ml_IN' => __( 'Malayalam', 'contact-form-7' ),
83
- 'mt_MT' => __( 'Maltese', 'contact-form-7' ),
84
- 'nb_NO' => __( 'Norwegian (Bokmål)', 'contact-form-7' ),
85
- 'fa_IR' => __( 'Persian', 'contact-form-7' ),
86
- 'pl_PL' => __( 'Polish', 'contact-form-7' ),
87
- 'pt_BR' => __( 'Portuguese (Brazil)', 'contact-form-7' ),
88
- 'pt_PT' => __( 'Portuguese (Portugal)', 'contact-form-7' ),
89
- 'pa_IN' => __( 'Punjabi', 'contact-form-7' ),
90
- 'ru_RU' => __( 'Russian', 'contact-form-7' ),
91
- 'ro_RO' => __( 'Romanian', 'contact-form-7' ),
92
- 'sr_RS' => __( 'Serbian', 'contact-form-7' ),
93
- 'si_LK' => __( 'Sinhala', 'contact-form-7' ),
94
- 'sk_SK' => __( 'Slovak', 'contact-form-7' ),
95
- 'sl_SI' => __( 'Slovene', 'contact-form-7' ),
96
- 'es_ES' => __( 'Spanish (Spain)', 'contact-form-7' ),
97
- 'sv_SE' => __( 'Swedish', 'contact-form-7' ),
98
- 'ta' => __( 'Tamil', 'contact-form-7' ),
99
- 'th' => __( 'Thai', 'contact-form-7' ),
100
- 'tl' => __( 'Tagalog', 'contact-form-7' ),
101
- 'tr_TR' => __( 'Turkish', 'contact-form-7' ),
102
- 'uk' => __( 'Ukrainian', 'contact-form-7' ),
103
- 'vi' => __( 'Vietnamese', 'contact-form-7' )
104
- );
105
-
106
- return $l10n;
107
- }
108
-
109
- function wpcf7_is_valid_locale( $locale ) {
110
- $l10n = wpcf7_l10n();
111
- return isset( $l10n[$locale] );
112
- }
113
-
114
- function wpcf7_is_rtl( $locale = '' ) {
115
- if ( empty( $locale ) ) {
116
- return function_exists( 'is_rtl' ) ? is_rtl() : false;
117
- }
118
-
119
- $rtl_locales = array(
120
- 'ar' => 'Arabic',
121
- 'he_IL' => 'Hebrew',
122
- 'fa_IR' => 'Persian' );
123
-
124
- return isset( $rtl_locales[$locale] );
125
- }
126
-
127
  function wpcf7_ajax_loader() {
128
  $url = wpcf7_plugin_url( 'images/ajax-loader.gif' );
129
 
@@ -197,6 +102,11 @@ function wpcf7_support_html5_fallback() {
197
  return (bool) apply_filters( 'wpcf7_support_html5_fallback', false );
198
  }
199
 
 
 
 
 
 
200
  function wpcf7_load_js() {
201
  return apply_filters( 'wpcf7_load_js', WPCF7_LOAD_JS );
202
  }
@@ -254,63 +164,6 @@ function wpcf7_link( $url, $anchor_text, $args = '' ) {
254
  return $link;
255
  }
256
 
257
- function wpcf7_load_textdomain( $locale = null ) {
258
- global $l10n;
259
-
260
- $domain = 'contact-form-7';
261
-
262
- if ( get_locale() == $locale ) {
263
- $locale = null;
264
- }
265
-
266
- if ( empty( $locale ) ) {
267
- if ( is_textdomain_loaded( $domain ) ) {
268
- return true;
269
- } else {
270
- return load_plugin_textdomain( $domain, false, $domain . '/languages' );
271
- }
272
- } else {
273
- $mo_orig = $l10n[$domain];
274
- unload_textdomain( $domain );
275
-
276
- $mofile = $domain . '-' . $locale . '.mo';
277
- $path = WP_PLUGIN_DIR . '/' . $domain . '/languages';
278
-
279
- if ( $loaded = load_textdomain( $domain, $path . '/'. $mofile ) ) {
280
- return $loaded;
281
- } else {
282
- $mofile = WP_LANG_DIR . '/plugins/' . $mofile;
283
- return load_textdomain( $domain, $mofile );
284
- }
285
-
286
- $l10n[$domain] = $mo_orig;
287
- }
288
-
289
- return false;
290
- }
291
-
292
- function wpcf7_load_modules() {
293
- $dir = WPCF7_PLUGIN_MODULES_DIR;
294
-
295
- if ( empty( $dir ) || ! is_dir( $dir ) ) {
296
- return false;
297
- }
298
-
299
- $mods = array(
300
- 'acceptance', 'flamingo',
301
- 'akismet', 'jetpack', 'submit', 'captcha', 'number',
302
- 'text', 'checkbox', 'quiz', 'textarea', 'date',
303
- 'response', 'file', 'select', 'listo', 'count' );
304
-
305
- foreach ( $mods as $mod ) {
306
- $file = trailingslashit( $dir ) . $mod . '.php';
307
-
308
- if ( file_exists( $file ) ) {
309
- include_once $file;
310
- }
311
- }
312
- }
313
-
314
  function wpcf7_get_request_uri() {
315
  static $request_uri = '';
316
 
29
  return $uploads;
30
  }
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  function wpcf7_ajax_loader() {
33
  $url = wpcf7_plugin_url( 'images/ajax-loader.gif' );
34
 
102
  return (bool) apply_filters( 'wpcf7_support_html5_fallback', false );
103
  }
104
 
105
+ function wpcf7_use_really_simple_captcha() {
106
+ return apply_filters( 'wpcf7_use_really_simple_captcha',
107
+ WPCF7_USE_REALLY_SIMPLE_CAPTCHA );
108
+ }
109
+
110
  function wpcf7_load_js() {
111
  return apply_filters( 'wpcf7_load_js', WPCF7_LOAD_JS );
112
  }
164
  return $link;
165
  }
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  function wpcf7_get_request_uri() {
168
  static $request_uri = '';
169
 
includes/integration.php CHANGED
@@ -107,19 +107,19 @@ class WPCF7_Integration {
107
 
108
  abstract class WPCF7_Service {
109
 
110
- public function get_title() {
111
- }
112
-
113
- public function is_active() {
114
- }
115
 
116
  public function get_categories() {
 
117
  }
118
 
119
  public function icon() {
 
120
  }
121
 
122
  public function link() {
 
123
  }
124
 
125
  public function load( $action = '' ) {
107
 
108
  abstract class WPCF7_Service {
109
 
110
+ abstract public function get_title();
111
+ abstract public function is_active();
 
 
 
112
 
113
  public function get_categories() {
114
+ return array();
115
  }
116
 
117
  public function icon() {
118
+ return '';
119
  }
120
 
121
  public function link() {
122
+ return '';
123
  }
124
 
125
  public function load( $action = '' ) {
includes/js/scripts.js CHANGED
@@ -1,14 +1,12 @@
1
  (function($) {
2
 
3
- if (typeof _wpcf7 == 'undefined' || _wpcf7 === null)
4
  _wpcf7 = {};
 
5
 
6
- _wpcf7 = $.extend({ cached: 0 }, _wpcf7);
7
-
8
- $(function() {
9
- _wpcf7.supportHtml5 = $.wpcf7SupportHtml5();
10
- $('div.wpcf7 > form').wpcf7InitForm();
11
- });
12
 
13
  $.fn.wpcf7InitForm = function() {
14
  this.ajaxForm({
@@ -33,8 +31,9 @@
33
  }
34
  });
35
 
36
- if (_wpcf7.cached)
37
  this.wpcf7OnloadRefill();
 
38
 
39
  this.wpcf7ToggleSubmit();
40
 
@@ -78,8 +77,9 @@
78
  };
79
 
80
  $.wpcf7AjaxSuccess = function(data, status, xhr, $form) {
81
- if (! $.isPlainObject(data) || $.isEmptyObject(data))
82
  return;
 
83
 
84
  var $responseOutput = $form.find('div.wpcf7-response-output');
85
 
@@ -88,11 +88,13 @@
88
  $form.find('.wpcf7-form-control').removeClass('wpcf7-not-valid');
89
  $form.removeClass('invalid spam sent failed');
90
 
91
- if (data.captcha)
92
  $form.wpcf7RefillCaptcha(data.captcha);
 
93
 
94
- if (data.quiz)
95
  $form.wpcf7RefillQuiz(data.quiz);
 
96
 
97
  if (data.invalids) {
98
  $.each(data.invalids, function(i, n) {
@@ -104,37 +106,45 @@
104
  $responseOutput.addClass('wpcf7-validation-errors');
105
  $form.addClass('invalid');
106
 
107
- $(data.into).trigger('invalid.wpcf7');
 
108
 
109
  } else if (1 == data.spam) {
110
  $responseOutput.addClass('wpcf7-spam-blocked');
111
  $form.addClass('spam');
112
 
113
- $(data.into).trigger('spam.wpcf7');
 
114
 
115
  } else if (1 == data.mailSent) {
116
  $responseOutput.addClass('wpcf7-mail-sent-ok');
117
  $form.addClass('sent');
118
 
119
- if (data.onSentOk)
120
  $.each(data.onSentOk, function(i, n) { eval(n) });
 
121
 
122
- $(data.into).trigger('mailsent.wpcf7');
 
123
 
124
  } else {
125
  $responseOutput.addClass('wpcf7-mail-sent-ng');
126
  $form.addClass('failed');
127
 
128
- $(data.into).trigger('mailfailed.wpcf7');
 
129
  }
130
 
131
- if (data.onSubmit)
132
  $.each(data.onSubmit, function(i, n) { eval(n) });
 
133
 
134
- $(data.into).trigger('submit.wpcf7');
 
135
 
136
- if (1 == data.mailSent)
137
  $form.resetForm();
 
138
 
139
  $form.find('[placeholder].placeheld').each(function(i, n) {
140
  $(n).val($(n).attr('placeholder'));
@@ -154,8 +164,9 @@
154
  };
155
 
156
  $.fn.wpcf7Placeholder = function() {
157
- if (_wpcf7.supportHtml5.placeholder)
158
  return this;
 
159
 
160
  return this.each(function() {
161
  $(this).val($(this).attr('placeholder'));
@@ -188,11 +199,14 @@
188
  $.fn.wpcf7ToggleSubmit = function() {
189
  return this.each(function() {
190
  var form = $(this);
191
- if (this.tagName.toLowerCase() != 'form')
 
192
  form = $(this).find('form').first();
 
193
 
194
- if (form.hasClass('wpcf7-acceptance-as-validation'))
195
  return;
 
196
 
197
  var submit = form.find('input:submit');
198
  if (! submit.length) return;
@@ -204,8 +218,9 @@
204
  acceptances.each(function(i, n) {
205
  n = $(n);
206
  if (n.hasClass('wpcf7-invert') && n.is(':checked')
207
- || ! n.hasClass('wpcf7-invert') && ! n.is(':checked'))
208
  submit.attr('disabled', 'disabled');
 
209
  });
210
  });
211
  };
@@ -316,8 +331,10 @@
316
  $.fn.wpcf7OnloadRefill = function() {
317
  return this.each(function() {
318
  var url = $(this).attr('action');
319
- if (0 < url.indexOf('#'))
 
320
  url = url.substr(0, url.indexOf('#'));
 
321
 
322
  var id = $(this).find('input[name="_wpcf7"]').val();
323
  var unitTag = $(this).find('input[name="_wpcf7_unit_tag"]').val();
@@ -325,11 +342,13 @@
325
  $.getJSON(url,
326
  { _wpcf7_is_ajax_call: 1, _wpcf7: id, _wpcf7_request_ver: $.now() },
327
  function(data) {
328
- if (data && data.captcha)
329
  $('#' + unitTag).wpcf7RefillCaptcha(data.captcha);
 
330
 
331
- if (data && data.quiz)
332
  $('#' + unitTag).wpcf7RefillQuiz(data.quiz);
 
333
  }
334
  );
335
  });
@@ -411,4 +430,9 @@
411
  return features;
412
  };
413
 
 
 
 
 
 
414
  })(jQuery);
1
  (function($) {
2
 
3
+ if (typeof _wpcf7 == 'undefined' || _wpcf7 === null) {
4
  _wpcf7 = {};
5
+ }
6
 
7
+ _wpcf7 = $.extend({
8
+ cached: 0
9
+ }, _wpcf7);
 
 
 
10
 
11
  $.fn.wpcf7InitForm = function() {
12
  this.ajaxForm({
31
  }
32
  });
33
 
34
+ if (_wpcf7.cached) {
35
  this.wpcf7OnloadRefill();
36
+ }
37
 
38
  this.wpcf7ToggleSubmit();
39
 
77
  };
78
 
79
  $.wpcf7AjaxSuccess = function(data, status, xhr, $form) {
80
+ if (! $.isPlainObject(data) || $.isEmptyObject(data)) {
81
  return;
82
+ }
83
 
84
  var $responseOutput = $form.find('div.wpcf7-response-output');
85
 
88
  $form.find('.wpcf7-form-control').removeClass('wpcf7-not-valid');
89
  $form.removeClass('invalid spam sent failed');
90
 
91
+ if (data.captcha) {
92
  $form.wpcf7RefillCaptcha(data.captcha);
93
+ }
94
 
95
+ if (data.quiz) {
96
  $form.wpcf7RefillQuiz(data.quiz);
97
+ }
98
 
99
  if (data.invalids) {
100
  $.each(data.invalids, function(i, n) {
106
  $responseOutput.addClass('wpcf7-validation-errors');
107
  $form.addClass('invalid');
108
 
109
+ $(data.into).trigger('wpcf7:invalid');
110
+ $(data.into).trigger('invalid.wpcf7'); // deprecated
111
 
112
  } else if (1 == data.spam) {
113
  $responseOutput.addClass('wpcf7-spam-blocked');
114
  $form.addClass('spam');
115
 
116
+ $(data.into).trigger('wpcf7:spam');
117
+ $(data.into).trigger('spam.wpcf7'); // deprecated
118
 
119
  } else if (1 == data.mailSent) {
120
  $responseOutput.addClass('wpcf7-mail-sent-ok');
121
  $form.addClass('sent');
122
 
123
+ if (data.onSentOk) {
124
  $.each(data.onSentOk, function(i, n) { eval(n) });
125
+ }
126
 
127
+ $(data.into).trigger('wpcf7:mailsent');
128
+ $(data.into).trigger('mailsent.wpcf7'); // deprecated
129
 
130
  } else {
131
  $responseOutput.addClass('wpcf7-mail-sent-ng');
132
  $form.addClass('failed');
133
 
134
+ $(data.into).trigger('wpcf7:mailfailed');
135
+ $(data.into).trigger('mailfailed.wpcf7'); // deprecated
136
  }
137
 
138
+ if (data.onSubmit) {
139
  $.each(data.onSubmit, function(i, n) { eval(n) });
140
+ }
141
 
142
+ $(data.into).trigger('wpcf7:submit');
143
+ $(data.into).trigger('submit.wpcf7'); // deprecated
144
 
145
+ if (1 == data.mailSent) {
146
  $form.resetForm();
147
+ }
148
 
149
  $form.find('[placeholder].placeheld').each(function(i, n) {
150
  $(n).val($(n).attr('placeholder'));
164
  };
165
 
166
  $.fn.wpcf7Placeholder = function() {
167
+ if (_wpcf7.supportHtml5.placeholder) {
168
  return this;
169
+ }
170
 
171
  return this.each(function() {
172
  $(this).val($(this).attr('placeholder'));
199
  $.fn.wpcf7ToggleSubmit = function() {
200
  return this.each(function() {
201
  var form = $(this);
202
+
203
+ if (this.tagName.toLowerCase() != 'form') {
204
  form = $(this).find('form').first();
205
+ }
206
 
207
+ if (form.hasClass('wpcf7-acceptance-as-validation')) {
208
  return;
209
+ }
210
 
211
  var submit = form.find('input:submit');
212
  if (! submit.length) return;
218
  acceptances.each(function(i, n) {
219
  n = $(n);
220
  if (n.hasClass('wpcf7-invert') && n.is(':checked')
221
+ || ! n.hasClass('wpcf7-invert') && ! n.is(':checked')) {
222
  submit.attr('disabled', 'disabled');
223
+ }
224
  });
225
  });
226
  };
331
  $.fn.wpcf7OnloadRefill = function() {
332
  return this.each(function() {
333
  var url = $(this).attr('action');
334
+
335
+ if (0 < url.indexOf('#')) {
336
  url = url.substr(0, url.indexOf('#'));
337
+ }
338
 
339
  var id = $(this).find('input[name="_wpcf7"]').val();
340
  var unitTag = $(this).find('input[name="_wpcf7_unit_tag"]').val();
342
  $.getJSON(url,
343
  { _wpcf7_is_ajax_call: 1, _wpcf7: id, _wpcf7_request_ver: $.now() },
344
  function(data) {
345
+ if (data && data.captcha) {
346
  $('#' + unitTag).wpcf7RefillCaptcha(data.captcha);
347
+ }
348
 
349
+ if (data && data.quiz) {
350
  $('#' + unitTag).wpcf7RefillQuiz(data.quiz);
351
+ }
352
  }
353
  );
354
  });
430
  return features;
431
  };
432
 
433
+ $(function() {
434
+ _wpcf7.supportHtml5 = $.wpcf7SupportHtml5();
435
+ $('div.wpcf7 > form').wpcf7InitForm();
436
+ });
437
+
438
  })(jQuery);
includes/l10n.php ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function wpcf7_l10n() {
4
+ static $l10n = array();
5
+
6
+ if ( ! empty( $l10n ) ) {
7
+ return $l10n;
8
+ }
9
+
10
+ $l10n = array(
11
+ 'af' => __( 'Afrikaans', 'contact-form-7' ),
12
+ 'sq' => __( 'Albanian', 'contact-form-7' ),
13
+ 'ar' => __( 'Arabic', 'contact-form-7' ),
14
+ 'hy_AM' => __( 'Armenian', 'contact-form-7' ),
15
+ 'az' => __( 'Azerbaijani', 'contact-form-7' ),
16
+ 'bn_BD' => __( 'Bangla', 'contact-form-7' ),
17
+ 'eu' => __( 'Basque', 'contact-form-7' ),
18
+ 'be_BY' => __( 'Belarusian', 'contact-form-7' ),
19
+ 'bs_BA' => __( 'Bosnian', 'contact-form-7' ),
20
+ 'bg_BG' => __( 'Bulgarian', 'contact-form-7' ),
21
+ 'ca' => __( 'Catalan', 'contact-form-7' ),
22
+ 'ckb' => __( 'Central Kurdish', 'contact-form-7' ),
23
+ 'zh_CN' => __( 'Chinese (China)', 'contact-form-7' ),
24
+ 'zh_TW' => __( 'Chinese (Taiwan)', 'contact-form-7' ),
25
+ 'hr' => __( 'Croatian', 'contact-form-7' ),
26
+ 'cs_CZ' => __( 'Czech', 'contact-form-7' ),
27
+ 'da_DK' => __( 'Danish', 'contact-form-7' ),
28
+ 'nl_NL' => __( 'Dutch', 'contact-form-7' ),
29
+ 'en_US' => __( 'English (United States)', 'contact-form-7' ),
30
+ 'eo_EO' => __( 'Esperanto', 'contact-form-7' ),
31
+ 'et' => __( 'Estonian', 'contact-form-7' ),
32
+ 'fi' => __( 'Finnish', 'contact-form-7' ),
33
+ 'fr_FR' => __( 'French (France)', 'contact-form-7' ),
34
+ 'gl_ES' => __( 'Galician', 'contact-form-7' ),
35
+ 'gu_IN' => __( 'Gujarati', 'contact-form-7' ),
36
+ 'ka_GE' => __( 'Georgian', 'contact-form-7' ),
37
+ 'de_DE' => __( 'German', 'contact-form-7' ),
38
+ 'el' => __( 'Greek', 'contact-form-7' ),
39
+ 'ht' => __( 'Haitian', 'contact-form-7' ),
40
+ 'he_IL' => __( 'Hebrew', 'contact-form-7' ),
41
+ 'hi_IN' => __( 'Hindi', 'contact-form-7' ),
42
+ 'hu_HU' => __( 'Hungarian', 'contact-form-7' ),
43
+ 'bn_IN' => __( 'Indian Bengali', 'contact-form-7' ),
44
+ 'id_ID' => __( 'Indonesian', 'contact-form-7' ),
45
+ 'ga_IE' => __( 'Irish', 'contact-form-7' ),
46
+ 'it_IT' => __( 'Italian', 'contact-form-7' ),
47
+ 'ja' => __( 'Japanese', 'contact-form-7' ),
48
+ 'ko_KR' => __( 'Korean', 'contact-form-7' ),
49
+ 'lv' => __( 'Latvian', 'contact-form-7' ),
50
+ 'lt_LT' => __( 'Lithuanian', 'contact-form-7' ),
51
+ 'mk_MK' => __( 'Macedonian', 'contact-form-7' ),
52
+ 'ms_MY' => __( 'Malay', 'contact-form-7' ),
53
+ 'ml_IN' => __( 'Malayalam', 'contact-form-7' ),
54
+ 'mt_MT' => __( 'Maltese', 'contact-form-7' ),
55
+ 'nb_NO' => __( 'Norwegian (Bokmål)', 'contact-form-7' ),
56
+ 'fa_IR' => __( 'Persian', 'contact-form-7' ),
57
+ 'pl_PL' => __( 'Polish', 'contact-form-7' ),
58
+ 'pt_BR' => __( 'Portuguese (Brazil)', 'contact-form-7' ),
59
+ 'pt_PT' => __( 'Portuguese (Portugal)', 'contact-form-7' ),
60
+ 'pa_IN' => __( 'Punjabi', 'contact-form-7' ),
61
+ 'ru_RU' => __( 'Russian', 'contact-form-7' ),
62
+ 'ro_RO' => __( 'Romanian', 'contact-form-7' ),
63
+ 'sr_RS' => __( 'Serbian', 'contact-form-7' ),
64
+ 'si_LK' => __( 'Sinhala', 'contact-form-7' ),
65
+ 'sk_SK' => __( 'Slovak', 'contact-form-7' ),
66
+ 'sl_SI' => __( 'Slovene', 'contact-form-7' ),
67
+ 'es_ES' => __( 'Spanish (Spain)', 'contact-form-7' ),
68
+ 'sv_SE' => __( 'Swedish', 'contact-form-7' ),
69
+ 'ta' => __( 'Tamil', 'contact-form-7' ),
70
+ 'th' => __( 'Thai', 'contact-form-7' ),
71
+ 'tl' => __( 'Tagalog', 'contact-form-7' ),
72
+ 'tr_TR' => __( 'Turkish', 'contact-form-7' ),
73
+ 'uk' => __( 'Ukrainian', 'contact-form-7' ),
74
+ 'vi' => __( 'Vietnamese', 'contact-form-7' )
75
+ );
76
+
77
+ return $l10n;
78
+ }
79
+
80
+ function wpcf7_is_valid_locale( $locale ) {
81
+ $l10n = wpcf7_l10n();
82
+ return isset( $l10n[$locale] );
83
+ }
84
+
85
+ function wpcf7_is_rtl( $locale = '' ) {
86
+ if ( empty( $locale ) ) {
87
+ return function_exists( 'is_rtl' ) ? is_rtl() : false;
88
+ }
89
+
90
+ $rtl_locales = array(
91
+ 'ar' => 'Arabic',
92
+ 'he_IL' => 'Hebrew',
93
+ 'fa_IR' => 'Persian' );
94
+
95
+ return isset( $rtl_locales[$locale] );
96
+ }
97
+
98
+ function wpcf7_load_textdomain( $locale = null ) {
99
+ global $l10n;
100
+
101
+ $domain = 'contact-form-7';
102
+
103
+ if ( get_locale() == $locale ) {
104
+ $locale = null;
105
+ }
106
+
107
+ if ( empty( $locale ) ) {
108
+ if ( is_textdomain_loaded( $domain ) ) {
109
+ return true;
110
+ } else {
111
+ return load_plugin_textdomain( $domain, false, $domain . '/languages' );
112
+ }
113
+ } else {
114
+ $mo_orig = $l10n[$domain];
115
+ unload_textdomain( $domain );
116
+
117
+ $mofile = $domain . '-' . $locale . '.mo';
118
+ $path = WP_PLUGIN_DIR . '/' . $domain . '/languages';
119
+
120
+ if ( $loaded = load_textdomain( $domain, $path . '/'. $mofile ) ) {
121
+ return $loaded;
122
+ } else {
123
+ $mofile = WP_LANG_DIR . '/plugins/' . $mofile;
124
+ return load_textdomain( $domain, $mofile );
125
+ }
126
+
127
+ $l10n[$domain] = $mo_orig;
128
+ }
129
+
130
+ return false;
131
+ }
includes/shortcodes.php CHANGED
@@ -349,6 +349,12 @@ class WPCF7_Shortcode {
349
  }
350
 
351
  public function get_cols_option( $default = '' ) {
 
 
 
 
 
 
352
  $matches_a = $this->get_all_match_options(
353
  '%^([0-9]*)x([0-9]*)(?:/[0-9]+)?$%' );
354
 
@@ -361,6 +367,12 @@ class WPCF7_Shortcode {
361
  }
362
 
363
  public function get_rows_option( $default = '' ) {
 
 
 
 
 
 
364
  $matches_a = $this->get_all_match_options(
365
  '%^([0-9]*)x([0-9]*)(?:/[0-9]+)?$%' );
366
 
349
  }
350
 
351
  public function get_cols_option( $default = '' ) {
352
+ $option = $this->get_option( 'cols', 'int', true );
353
+
354
+ if ( $option ) {
355
+ return $option;
356
+ }
357
+
358
  $matches_a = $this->get_all_match_options(
359
  '%^([0-9]*)x([0-9]*)(?:/[0-9]+)?$%' );
360
 
367
  }
368
 
369
  public function get_rows_option( $default = '' ) {
370
+ $option = $this->get_option( 'rows', 'int', true );
371
+
372
+ if ( $option ) {
373
+ return $option;
374
+ }
375
+
376
  $matches_a = $this->get_all_match_options(
377
  '%^([0-9]*)x([0-9]*)(?:/[0-9]+)?$%' );
378
 
languages/contact-form-7-da_DK.mo CHANGED
Binary file
languages/contact-form-7-fa_IR.mo CHANGED
Binary file
languages/contact-form-7-hr.mo CHANGED
Binary file
languages/contact-form-7-ja.mo CHANGED
Binary file
languages/contact-form-7-sv_SE.mo CHANGED
Binary file
languages/contact-form-7.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Contact Form 7\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2015-07-22 06:38+0900\n"
7
  "PO-Revision-Date: 2015-05-18 21:49+0900\n"
8
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
9
  "Language-Team: \n"
@@ -21,207 +21,207 @@ msgstr ""
21
  msgid "Just another contact form plugin. Simple but flexible."
22
  msgstr ""
23
 
24
- #: contact-form-7/admin/admin.php:10 contact-form-7/modules/flamingo.php:134
25
  msgid "Contact Form 7"
26
  msgstr ""
27
 
28
- #: contact-form-7/admin/admin.php:11
29
  msgid "Contact"
30
  msgstr ""
31
 
32
- #: contact-form-7/admin/admin.php:16
33
  #: contact-form-7/admin/edit-contact-form.php:38
34
  msgid "Edit Contact Form"
35
  msgstr ""
36
 
37
- #: contact-form-7/admin/admin.php:17 contact-form-7/admin/admin.php:178
38
- #: contact-form-7/admin/admin.php:234
39
  #: contact-form-7/includes/contact-form.php:29
40
  msgid "Contact Forms"
41
  msgstr ""
42
 
43
- #: contact-form-7/admin/admin.php:24 contact-form-7/admin/admin.php:278
44
  #: contact-form-7/admin/edit-contact-form.php:36
45
  msgid "Add New Contact Form"
46
  msgstr ""
47
 
48
- #: contact-form-7/admin/admin.php:25 contact-form-7/admin/admin.php:237
49
- #: contact-form-7/admin/admin.php:283 contact-form-7/admin/admin.php:295
50
  #: contact-form-7/admin/edit-contact-form.php:41
51
  msgid "Add New"
52
  msgstr ""
53
 
54
- #: contact-form-7/admin/admin.php:35 contact-form-7/admin/admin.php:320
55
  msgid "Integration with Other Services"
56
  msgstr ""
57
 
58
- #: contact-form-7/admin/admin.php:36
59
  msgid "Integration"
60
  msgstr ""
61
 
62
- #: contact-form-7/admin/admin.php:66 contact-form-7/admin/admin.php:88
63
  msgid "You are not allowed to edit this item."
64
  msgstr ""
65
 
66
- #: contact-form-7/admin/admin.php:127
67
  msgid "You are not allowed to delete this item."
68
  msgstr ""
69
 
70
- #: contact-form-7/admin/admin.php:130
71
  msgid "Error in deleting."
72
  msgstr ""
73
 
74
- #: contact-form-7/admin/admin.php:208
75
  msgid "The changes you made will be lost if you navigate away from this page."
76
  msgstr ""
77
 
78
- #: contact-form-7/admin/admin.php:242
79
  #, php-format
80
  msgid "Search results for &#8220;%s&#8221;"
81
  msgstr ""
82
 
83
- #: contact-form-7/admin/admin.php:251
84
  msgid "Search Contact Forms"
85
  msgstr ""
86
 
87
- #: contact-form-7/admin/admin.php:282
88
  #, php-format
89
  msgid "Use the default language (%s)"
90
  msgstr ""
91
 
92
- #: contact-form-7/admin/admin.php:286
93
  msgid "Or"
94
  msgstr ""
95
 
96
- #: contact-form-7/admin/admin.php:290
97
  msgid "(select language)"
98
  msgstr ""
99
 
100
- #: contact-form-7/admin/admin.php:348
101
  msgid "Contact form created."
102
  msgstr ""
103
 
104
- #: contact-form-7/admin/admin.php:350
105
  msgid "Contact form saved."
106
  msgstr ""
107
 
108
- #: contact-form-7/admin/admin.php:352
109
  msgid "Contact form deleted."
110
  msgstr ""
111
 
112
- #: contact-form-7/admin/admin.php:369
113
  msgid "Settings"
114
  msgstr ""
115
 
116
- #: contact-form-7/admin/admin.php:392
117
  #, php-format
118
  msgid ""
119
  "<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> "
120
  "Please <a href=\"%3$s\">update WordPress</a> first."
121
  msgstr ""
122
 
123
- #: contact-form-7/admin/admin.php:418
124
  msgid "Dismiss"
125
  msgstr ""
126
 
127
- #: contact-form-7/admin/admin.php:423
128
  msgid "Contact Form 7 Needs Your Support"
129
  msgstr ""
130
 
131
- #: contact-form-7/admin/admin.php:424
132
  msgid ""
133
  "It is hard to continue development and support for this plugin without "
134
  "contributions from users like you. If you enjoy using Contact Form 7 and "
135
  "find it useful, please consider making a donation."
136
  msgstr ""
137
 
138
- #: contact-form-7/admin/admin.php:425
139
  msgid "http://contactform7.com/donate/"
140
  msgstr ""
141
 
142
- #: contact-form-7/admin/admin.php:425
143
  msgid "Donate"
144
  msgstr ""
145
 
146
- #: contact-form-7/admin/admin.php:429
147
  msgid "Get Started"
148
  msgstr ""
149
 
150
- #: contact-form-7/admin/admin.php:431
151
  msgid "http://contactform7.com/getting-started-with-contact-form-7/"
152
  msgstr ""
153
 
154
- #: contact-form-7/admin/admin.php:431
155
  msgid "Getting Started with Contact Form 7"
156
  msgstr ""
157
 
158
- #: contact-form-7/admin/admin.php:432
159
  msgid "http://contactform7.com/admin-screen/"
160
  msgstr ""
161
 
162
- #: contact-form-7/admin/admin.php:432
163
  msgid "Admin Screen"
164
  msgstr ""
165
 
166
- #: contact-form-7/admin/admin.php:433
167
  msgid "http://contactform7.com/tag-syntax/"
168
  msgstr ""
169
 
170
- #: contact-form-7/admin/admin.php:433
171
  msgid "How Tags Work"
172
  msgstr ""
173
 
174
- #: contact-form-7/admin/admin.php:434
175
  msgid "http://contactform7.com/setting-up-mail/"
176
  msgstr ""
177
 
178
- #: contact-form-7/admin/admin.php:434
179
  msgid "Setting Up Mail"
180
  msgstr ""
181
 
182
- #: contact-form-7/admin/admin.php:439
183
  msgid "Did You Know?"
184
  msgstr ""
185
 
186
- #: contact-form-7/admin/admin.php:441
187
  msgid "http://contactform7.com/spam-filtering-with-akismet/"
188
  msgstr ""
189
 
190
- #: contact-form-7/admin/admin.php:441
191
  msgid "Spam Filtering with Akismet"
192
  msgstr ""
193
 
194
- #: contact-form-7/admin/admin.php:442
195
  msgid "http://contactform7.com/save-submitted-messages-with-flamingo/"
196
  msgstr ""
197
 
198
- #: contact-form-7/admin/admin.php:442
199
  msgid "Save Messages with Flamingo"
200
  msgstr ""
201
 
202
- #: contact-form-7/admin/admin.php:443
203
  msgid "http://contactform7.com/selectable-recipient-with-pipes/"
204
  msgstr ""
205
 
206
- #: contact-form-7/admin/admin.php:443
207
  msgid "Selectable Recipient with Pipes"
208
  msgstr ""
209
 
210
- #: contact-form-7/admin/admin.php:444
211
  msgid ""
212
  "http://contactform7.com/tracking-form-submissions-with-google-analytics/"
213
  msgstr ""
214
 
215
- #: contact-form-7/admin/admin.php:444
216
  msgid "Tracking with Google Analytics"
217
  msgstr ""
218
 
219
- #: contact-form-7/admin/admin.php:489
220
  msgid "You are not allowed to edit this contact form."
221
  msgstr ""
222
 
223
  #: contact-form-7/admin/edit-contact-form.php:26
224
  #: contact-form-7/admin/edit-contact-form.php:124
 
225
  msgid "Save"
226
  msgstr ""
227
 
@@ -259,66 +259,66 @@ msgid ""
259
  " 'Cancel' to stop, 'OK' to delete."
260
  msgstr ""
261
 
262
- #: contact-form-7/admin/edit-contact-form.php:156
263
  msgid "Information"
264
  msgstr ""
265
 
266
- #: contact-form-7/admin/edit-contact-form.php:159
267
  #: contact-form-7/admin/includes/help-tabs.php:103
268
  msgid "http://contactform7.com/docs/"
269
  msgstr ""
270
 
271
- #: contact-form-7/admin/edit-contact-form.php:159
272
  #: contact-form-7/admin/includes/help-tabs.php:103
273
  msgid "Docs"
274
  msgstr ""
275
 
276
- #: contact-form-7/admin/edit-contact-form.php:160
277
  #: contact-form-7/admin/includes/help-tabs.php:104
278
  msgid "http://contactform7.com/faq/"
279
  msgstr ""
280
 
281
- #: contact-form-7/admin/edit-contact-form.php:160
282
  #: contact-form-7/admin/includes/help-tabs.php:104
283
  msgid "FAQ"
284
  msgstr ""
285
 
286
- #: contact-form-7/admin/edit-contact-form.php:161
287
  #: contact-form-7/admin/includes/help-tabs.php:105
288
  msgid "http://contactform7.com/support/"
289
  msgstr ""
290
 
291
- #: contact-form-7/admin/edit-contact-form.php:161
292
  #: contact-form-7/admin/includes/help-tabs.php:105
293
  msgid "Support"
294
  msgstr ""
295
 
296
- #: contact-form-7/admin/edit-contact-form.php:170
297
  #, php-format
298
  msgid "%s keys switch panels"
299
  msgstr ""
300
 
301
- #: contact-form-7/admin/edit-contact-form.php:180
302
  #: contact-form-7/admin/includes/editor.php:45
303
  msgid "Form"
304
  msgstr ""
305
 
306
- #: contact-form-7/admin/edit-contact-form.php:183
307
  #: contact-form-7/admin/includes/editor.php:72
308
  msgid "Mail"
309
  msgstr ""
310
 
311
- #: contact-form-7/admin/edit-contact-form.php:186
312
  #: contact-form-7/admin/includes/editor.php:167
313
  msgid "Messages"
314
  msgstr ""
315
 
316
- #: contact-form-7/admin/edit-contact-form.php:197
317
  #, php-format
318
  msgid "Additional Settings (%d)"
319
  msgstr ""
320
 
321
- #: contact-form-7/admin/edit-contact-form.php:199
322
  #: contact-form-7/admin/includes/editor.php:190
323
  #: contact-form-7/admin/includes/editor.php:195
324
  msgid "Additional Settings"
@@ -718,462 +718,409 @@ msgstr ""
718
  msgid "Sending ..."
719
  msgstr ""
720
 
721
- #: contact-form-7/includes/functions.php:40
722
  msgid "Afrikaans"
723
  msgstr ""
724
 
725
- #: contact-form-7/includes/functions.php:41
726
  msgid "Albanian"
727
  msgstr ""
728
 
729
- #: contact-form-7/includes/functions.php:42
730
  msgid "Arabic"
731
  msgstr ""
732
 
733
- #: contact-form-7/includes/functions.php:43
734
  msgid "Armenian"
735
  msgstr ""
736
 
737
- #: contact-form-7/includes/functions.php:44
738
  msgid "Azerbaijani"
739
  msgstr ""
740
 
741
- #: contact-form-7/includes/functions.php:45
742
  msgid "Bangla"
743
  msgstr ""
744
 
745
- #: contact-form-7/includes/functions.php:46
746
  msgid "Basque"
747
  msgstr ""
748
 
749
- #: contact-form-7/includes/functions.php:47
750
  msgid "Belarusian"
751
  msgstr ""
752
 
753
- #: contact-form-7/includes/functions.php:48
754
  msgid "Bosnian"
755
  msgstr ""
756
 
757
- #: contact-form-7/includes/functions.php:49
758
  msgid "Bulgarian"
759
  msgstr ""
760
 
761
- #: contact-form-7/includes/functions.php:50
762
  msgid "Catalan"
763
  msgstr ""
764
 
765
- #: contact-form-7/includes/functions.php:51
766
  msgid "Central Kurdish"
767
  msgstr ""
768
 
769
- #: contact-form-7/includes/functions.php:52
770
  msgid "Chinese (China)"
771
  msgstr ""
772
 
773
- #: contact-form-7/includes/functions.php:53
774
  msgid "Chinese (Taiwan)"
775
  msgstr ""
776
 
777
- #: contact-form-7/includes/functions.php:54
778
  msgid "Croatian"
779
  msgstr ""
780
 
781
- #: contact-form-7/includes/functions.php:55
782
  msgid "Czech"
783
  msgstr ""
784
 
785
- #: contact-form-7/includes/functions.php:56
786
  msgid "Danish"
787
  msgstr ""
788
 
789
- #: contact-form-7/includes/functions.php:57
790
  msgid "Dutch"
791
  msgstr ""
792
 
793
- #: contact-form-7/includes/functions.php:58
794
  msgid "English (United States)"
795
  msgstr ""
796
 
797
- #: contact-form-7/includes/functions.php:59
798
  msgid "Esperanto"
799
  msgstr ""
800
 
801
- #: contact-form-7/includes/functions.php:60
802
  msgid "Estonian"
803
  msgstr ""
804
 
805
- #: contact-form-7/includes/functions.php:61
806
  msgid "Finnish"
807
  msgstr ""
808
 
809
- #: contact-form-7/includes/functions.php:62
810
  msgid "French (France)"
811
  msgstr ""
812
 
813
- #: contact-form-7/includes/functions.php:63
814
  msgid "Galician"
815
  msgstr ""
816
 
817
- #: contact-form-7/includes/functions.php:64
818
  msgid "Gujarati"
819
  msgstr ""
820
 
821
- #: contact-form-7/includes/functions.php:65
822
  msgid "Georgian"
823
  msgstr ""
824
 
825
- #: contact-form-7/includes/functions.php:66
826
  msgid "German"
827
  msgstr ""
828
 
829
- #: contact-form-7/includes/functions.php:67
830
  msgid "Greek"
831
  msgstr ""
832
 
833
- #: contact-form-7/includes/functions.php:68
834
  msgid "Haitian"
835
  msgstr ""
836
 
837
- #: contact-form-7/includes/functions.php:69
838
  msgid "Hebrew"
839
  msgstr ""
840
 
841
- #: contact-form-7/includes/functions.php:70
842
  msgid "Hindi"
843
  msgstr ""
844
 
845
- #: contact-form-7/includes/functions.php:71
846
  msgid "Hungarian"
847
  msgstr ""
848
 
849
- #: contact-form-7/includes/functions.php:72
850
  msgid "Indian Bengali"
851
  msgstr ""
852
 
853
- #: contact-form-7/includes/functions.php:73
854
  msgid "Indonesian"
855
  msgstr ""
856
 
857
- #: contact-form-7/includes/functions.php:74
858
  msgid "Irish"
859
  msgstr ""
860
 
861
- #: contact-form-7/includes/functions.php:75
862
  msgid "Italian"
863
  msgstr ""
864
 
865
- #: contact-form-7/includes/functions.php:76
866
  msgid "Japanese"
867
  msgstr ""
868
 
869
- #: contact-form-7/includes/functions.php:77
870
  msgid "Korean"
871
  msgstr ""
872
 
873
- #: contact-form-7/includes/functions.php:78
874
  msgid "Latvian"
875
  msgstr ""
876
 
877
- #: contact-form-7/includes/functions.php:79
878
  msgid "Lithuanian"
879
  msgstr ""
880
 
881
- #: contact-form-7/includes/functions.php:80
882
  msgid "Macedonian"
883
  msgstr ""
884
 
885
- #: contact-form-7/includes/functions.php:81
886
  msgid "Malay"
887
  msgstr ""
888
 
889
- #: contact-form-7/includes/functions.php:82
890
  msgid "Malayalam"
891
  msgstr ""
892
 
893
- #: contact-form-7/includes/functions.php:83
894
  msgid "Maltese"
895
  msgstr ""
896
 
897
- #: contact-form-7/includes/functions.php:84
898
  msgid "Norwegian (Bokmål)"
899
  msgstr ""
900
 
901
- #: contact-form-7/includes/functions.php:85
902
  msgid "Persian"
903
  msgstr ""
904
 
905
- #: contact-form-7/includes/functions.php:86
906
  msgid "Polish"
907
  msgstr ""
908
 
909
- #: contact-form-7/includes/functions.php:87
910
  msgid "Portuguese (Brazil)"
911
  msgstr ""
912
 
913
- #: contact-form-7/includes/functions.php:88
914
  msgid "Portuguese (Portugal)"
915
  msgstr ""
916
 
917
- #: contact-form-7/includes/functions.php:89
918
  msgid "Punjabi"
919
  msgstr ""
920
 
921
- #: contact-form-7/includes/functions.php:90
922
  msgid "Russian"
923
  msgstr ""
924
 
925
- #: contact-form-7/includes/functions.php:91
926
  msgid "Romanian"
927
  msgstr ""
928
 
929
- #: contact-form-7/includes/functions.php:92
930
  msgid "Serbian"
931
  msgstr ""
932
 
933
- #: contact-form-7/includes/functions.php:93
934
  msgid "Sinhala"
935
  msgstr ""
936
 
937
- #: contact-form-7/includes/functions.php:94
938
  msgid "Slovak"
939
  msgstr ""
940
 
941
- #: contact-form-7/includes/functions.php:95
942
  msgid "Slovene"
943
  msgstr ""
944
 
945
- #: contact-form-7/includes/functions.php:96
946
  msgid "Spanish (Spain)"
947
  msgstr ""
948
 
949
- #: contact-form-7/includes/functions.php:97
950
  msgid "Swedish"
951
  msgstr ""
952
 
953
- #: contact-form-7/includes/functions.php:98
954
  msgid "Tamil"
955
  msgstr ""
956
 
957
- #: contact-form-7/includes/functions.php:99
958
  msgid "Thai"
959
  msgstr ""
960
 
961
- #: contact-form-7/includes/functions.php:100
962
  msgid "Tagalog"
963
  msgstr ""
964
 
965
- #: contact-form-7/includes/functions.php:101
966
  msgid "Turkish"
967
  msgstr ""
968
 
969
- #: contact-form-7/includes/functions.php:102
970
  msgid "Ukrainian"
971
  msgstr ""
972
 
973
- #: contact-form-7/includes/functions.php:103
974
  msgid "Vietnamese"
975
  msgstr ""
976
 
977
- #: contact-form-7/modules/acceptance.php:132
978
  msgid "acceptance"
979
  msgstr ""
980
 
981
- #: contact-form-7/modules/acceptance.php:140
982
  #, php-format
983
  msgid ""
984
  "Generate a form-tag for an acceptance checkbox. For more details, see %s."
985
  msgstr ""
986
 
987
- #: contact-form-7/modules/acceptance.php:142
988
  msgid "http://contactform7.com/acceptance-checkbox/"
989
  msgstr ""
990
 
991
- #: contact-form-7/modules/acceptance.php:142
992
  msgid "Acceptance Checkbox"
993
  msgstr ""
994
 
995
- #: contact-form-7/modules/acceptance.php:152
996
- #: contact-form-7/modules/captcha.php:230
997
- #: contact-form-7/modules/checkbox.php:310 contact-form-7/modules/date.php:171
998
- #: contact-form-7/modules/file.php:253 contact-form-7/modules/number.php:179
999
- #: contact-form-7/modules/quiz.php:183 contact-form-7/modules/select.php:190
1000
- #: contact-form-7/modules/text.php:241 contact-form-7/modules/textarea.php:157
 
1001
  msgid "Name"
1002
  msgstr ""
1003
 
1004
- #: contact-form-7/modules/acceptance.php:157
1005
- #: contact-form-7/modules/acceptance.php:160
1006
- #: contact-form-7/modules/checkbox.php:315
1007
- #: contact-form-7/modules/checkbox.php:318
1008
- #: contact-form-7/modules/select.php:195 contact-form-7/modules/select.php:198
1009
  msgid "Options"
1010
  msgstr ""
1011
 
1012
- #: contact-form-7/modules/acceptance.php:161
1013
  msgid "Make this checkbox checked by default"
1014
  msgstr ""
1015
 
1016
- #: contact-form-7/modules/acceptance.php:162
1017
  msgid "Make this work inversely"
1018
  msgstr ""
1019
 
1020
- #: contact-form-7/modules/acceptance.php:168
1021
- #: contact-form-7/modules/captcha.php:240
1022
- #: contact-form-7/modules/captcha.php:255
1023
- #: contact-form-7/modules/checkbox.php:331 contact-form-7/modules/date.php:200
1024
- #: contact-form-7/modules/file.php:268 contact-form-7/modules/number.php:208
1025
- #: contact-form-7/modules/quiz.php:199 contact-form-7/modules/select.php:208
1026
- #: contact-form-7/modules/submit.php:73 contact-form-7/modules/text.php:281
1027
- #: contact-form-7/modules/textarea.php:168
 
1028
  msgid "Id attribute"
1029
  msgstr ""
1030
 
1031
- #: contact-form-7/modules/acceptance.php:173
1032
- #: contact-form-7/modules/captcha.php:245
1033
- #: contact-form-7/modules/captcha.php:260
1034
- #: contact-form-7/modules/checkbox.php:336 contact-form-7/modules/date.php:205
1035
- #: contact-form-7/modules/file.php:273 contact-form-7/modules/number.php:213
1036
- #: contact-form-7/modules/quiz.php:204 contact-form-7/modules/select.php:213
1037
- #: contact-form-7/modules/submit.php:78 contact-form-7/modules/text.php:286
1038
- #: contact-form-7/modules/textarea.php:173
 
1039
  msgid "Class attribute"
1040
  msgstr ""
1041
 
1042
- #: contact-form-7/modules/acceptance.php:186
1043
- #: contact-form-7/modules/captcha.php:272
1044
- #: contact-form-7/modules/checkbox.php:349 contact-form-7/modules/date.php:217
1045
- #: contact-form-7/modules/file.php:286 contact-form-7/modules/number.php:225
1046
- #: contact-form-7/modules/quiz.php:217 contact-form-7/modules/select.php:226
1047
- #: contact-form-7/modules/submit.php:91 contact-form-7/modules/text.php:299
1048
- #: contact-form-7/modules/textarea.php:186
 
1049
  msgid "Insert Tag"
1050
  msgstr ""
1051
 
1052
- #: contact-form-7/modules/captcha.php:19
1053
- msgid ""
1054
- "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/"
1055
- "really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
1056
- msgstr ""
1057
-
1058
- #: contact-form-7/modules/captcha.php:185
1059
- msgid "The code that sender entered does not match the CAPTCHA"
1060
- msgstr ""
1061
-
1062
- #: contact-form-7/modules/captcha.php:186
1063
- msgid "Your entered code is incorrect."
1064
- msgstr ""
1065
-
1066
- #: contact-form-7/modules/captcha.php:199
1067
- #: contact-form-7/modules/captcha.php:220
1068
- msgid "CAPTCHA"
1069
- msgstr ""
1070
-
1071
- #: contact-form-7/modules/captcha.php:210
1072
- #, php-format
1073
- msgid "To use CAPTCHA, you first need to install and activate %s plugin."
1074
- msgstr ""
1075
-
1076
- #: contact-form-7/modules/captcha.php:218
1077
- #, php-format
1078
- msgid ""
1079
- "Generate form-tags for a CAPTCHA image and corresponding response input "
1080
- "field. For more details, see %s."
1081
- msgstr ""
1082
-
1083
- #: contact-form-7/modules/captcha.php:220
1084
- msgid "http://contactform7.com/captcha/"
1085
- msgstr ""
1086
-
1087
- #: contact-form-7/modules/captcha.php:237
1088
- msgid "Image settings"
1089
- msgstr ""
1090
-
1091
- #: contact-form-7/modules/captcha.php:252
1092
- msgid "Input field settings"
1093
- msgstr ""
1094
-
1095
- #: contact-form-7/modules/captcha.php:301
1096
- #, php-format
1097
- msgid ""
1098
- "This contact form contains CAPTCHA fields, but the temporary folder for the "
1099
- "files (%s) does not exist or is not writable. You can create the folder or "
1100
- "change its permission manually."
1101
- msgstr ""
1102
-
1103
- #: contact-form-7/modules/captcha.php:307
1104
- msgid ""
1105
- "This contact form contains CAPTCHA fields, but the necessary libraries (GD "
1106
- "and FreeType) are not available on your server."
1107
- msgstr ""
1108
-
1109
- #: contact-form-7/modules/checkbox.php:268
1110
  msgid "checkboxes"
1111
  msgstr ""
1112
 
1113
- #: contact-form-7/modules/checkbox.php:270
1114
  msgid "radio buttons"
1115
  msgstr ""
1116
 
1117
- #: contact-form-7/modules/checkbox.php:283
1118
  #, php-format
1119
  msgid ""
1120
  "Generate a form-tag for a group of checkboxes. For more details, see %s."
1121
  msgstr ""
1122
 
1123
- #: contact-form-7/modules/checkbox.php:285
1124
  #, php-format
1125
  msgid ""
1126
  "Generate a form-tag for a group of radio buttons. For more details, see %s."
1127
  msgstr ""
1128
 
1129
- #: contact-form-7/modules/checkbox.php:288
1130
- #: contact-form-7/modules/select.php:170
1131
  msgid "http://contactform7.com/checkboxes-radio-buttons-and-menus/"
1132
  msgstr ""
1133
 
1134
- #: contact-form-7/modules/checkbox.php:288
1135
- #: contact-form-7/modules/select.php:170
1136
  msgid "Checkboxes, Radio Buttons and Menus"
1137
  msgstr ""
1138
 
1139
- #: contact-form-7/modules/checkbox.php:299
1140
- #: contact-form-7/modules/checkbox.php:302 contact-form-7/modules/date.php:161
1141
- #: contact-form-7/modules/date.php:164 contact-form-7/modules/file.php:243
1142
- #: contact-form-7/modules/file.php:246 contact-form-7/modules/number.php:164
1143
- #: contact-form-7/modules/number.php:167 contact-form-7/modules/select.php:180
1144
- #: contact-form-7/modules/select.php:183 contact-form-7/modules/text.php:231
1145
- #: contact-form-7/modules/text.php:234 contact-form-7/modules/textarea.php:147
1146
- #: contact-form-7/modules/textarea.php:150
1147
  msgid "Field type"
1148
  msgstr ""
1149
 
1150
- #: contact-form-7/modules/checkbox.php:303 contact-form-7/modules/date.php:165
1151
- #: contact-form-7/modules/file.php:247 contact-form-7/modules/number.php:173
1152
- #: contact-form-7/modules/select.php:184 contact-form-7/modules/text.php:235
1153
- #: contact-form-7/modules/textarea.php:151
1154
  msgid "Required field"
1155
  msgstr ""
1156
 
1157
- #: contact-form-7/modules/checkbox.php:320
1158
- #: contact-form-7/modules/select.php:200
1159
  msgid "One option per line."
1160
  msgstr ""
1161
 
1162
- #: contact-form-7/modules/checkbox.php:321
1163
  msgid "Put a label first, a checkbox last"
1164
  msgstr ""
1165
 
1166
- #: contact-form-7/modules/checkbox.php:322
1167
  msgid "Wrap each item with label element"
1168
  msgstr ""
1169
 
1170
- #: contact-form-7/modules/checkbox.php:324
1171
  msgid "Make checkboxes exclusive"
1172
  msgstr ""
1173
 
1174
- #: contact-form-7/modules/checkbox.php:354 contact-form-7/modules/date.php:222
1175
- #: contact-form-7/modules/number.php:230 contact-form-7/modules/select.php:231
1176
- #: contact-form-7/modules/text.php:304 contact-form-7/modules/textarea.php:191
1177
  #, php-format
1178
  msgid ""
1179
  "To use the value input through this field in a mail field, you need to "
@@ -1204,75 +1151,75 @@ msgstr ""
1204
  msgid "This date is too late."
1205
  msgstr ""
1206
 
1207
- #: contact-form-7/modules/date.php:141
1208
  msgid "date"
1209
  msgstr ""
1210
 
1211
- #: contact-form-7/modules/date.php:149
1212
  #, php-format
1213
  msgid "Generate a form-tag for a date input field. For more details, see %s."
1214
  msgstr ""
1215
 
1216
- #: contact-form-7/modules/date.php:151
1217
  msgid "http://contactform7.com/date-field/"
1218
  msgstr ""
1219
 
1220
- #: contact-form-7/modules/date.php:151
1221
  msgid "Date Field"
1222
  msgstr ""
1223
 
1224
- #: contact-form-7/modules/date.php:176 contact-form-7/modules/number.php:184
1225
- #: contact-form-7/modules/text.php:246 contact-form-7/modules/textarea.php:162
1226
  msgid "Default value"
1227
  msgstr ""
1228
 
1229
- #: contact-form-7/modules/date.php:178 contact-form-7/modules/number.php:186
1230
- #: contact-form-7/modules/text.php:248 contact-form-7/modules/textarea.php:164
1231
  msgid "Use this text as the placeholder of the field"
1232
  msgstr ""
1233
 
1234
- #: contact-form-7/modules/date.php:182 contact-form-7/modules/date.php:185
1235
- #: contact-form-7/modules/number.php:190 contact-form-7/modules/number.php:193
1236
  msgid "Range"
1237
  msgstr ""
1238
 
1239
- #: contact-form-7/modules/date.php:187 contact-form-7/modules/number.php:195
1240
  msgid "Min"
1241
  msgstr ""
1242
 
1243
- #: contact-form-7/modules/date.php:192 contact-form-7/modules/number.php:200
1244
  msgid "Max"
1245
  msgstr ""
1246
 
1247
- #: contact-form-7/modules/file.php:193
1248
  msgid "Uploading a file fails for any reason"
1249
  msgstr ""
1250
 
1251
- #: contact-form-7/modules/file.php:194
1252
  msgid "Failed to upload file."
1253
  msgstr ""
1254
 
1255
- #: contact-form-7/modules/file.php:198
1256
  msgid "Uploaded file is not allowed file type"
1257
  msgstr ""
1258
 
1259
- #: contact-form-7/modules/file.php:199
1260
  msgid "This file type is not allowed."
1261
  msgstr ""
1262
 
1263
- #: contact-form-7/modules/file.php:203
1264
  msgid "Uploaded file is too large"
1265
  msgstr ""
1266
 
1267
- #: contact-form-7/modules/file.php:204
1268
  msgid "This file is too large."
1269
  msgstr ""
1270
 
1271
- #: contact-form-7/modules/file.php:208
1272
  msgid "Uploading a file fails for PHP error"
1273
  msgstr ""
1274
 
1275
- #: contact-form-7/modules/file.php:209
1276
  msgid "Failed to upload file. Error occurred."
1277
  msgstr ""
1278
 
@@ -1310,7 +1257,7 @@ msgid ""
1310
  "tab."
1311
  msgstr ""
1312
 
1313
- #: contact-form-7/modules/file.php:316
1314
  #, php-format
1315
  msgid ""
1316
  "This contact form contains file uploading fields, but the temporary folder "
@@ -1357,30 +1304,30 @@ msgstr ""
1357
  msgid "This number is too large."
1358
  msgstr ""
1359
 
1360
- #: contact-form-7/modules/number.php:144
1361
  msgid "number"
1362
  msgstr ""
1363
 
1364
- #: contact-form-7/modules/number.php:152
1365
  #, php-format
1366
  msgid ""
1367
  "Generate a form-tag for a field for numeric value input. For more details, "
1368
  "see %s."
1369
  msgstr ""
1370
 
1371
- #: contact-form-7/modules/number.php:154
1372
  msgid "http://contactform7.com/number-fields/"
1373
  msgstr ""
1374
 
1375
- #: contact-form-7/modules/number.php:154
1376
  msgid "Number Fields"
1377
  msgstr ""
1378
 
1379
- #: contact-form-7/modules/number.php:169
1380
  msgid "Spinbox"
1381
  msgstr ""
1382
 
1383
- #: contact-form-7/modules/number.php:170
1384
  msgid "Slider"
1385
  msgstr ""
1386
 
@@ -1392,69 +1339,230 @@ msgstr ""
1392
  msgid "Your answer is not correct."
1393
  msgstr ""
1394
 
1395
- #: contact-form-7/modules/quiz.php:163
1396
  msgid "quiz"
1397
  msgstr ""
1398
 
1399
- #: contact-form-7/modules/quiz.php:171
1400
  #, php-format
1401
  msgid ""
1402
  "Generate a form-tag for a question-answer pair. For more details, see %s."
1403
  msgstr ""
1404
 
1405
- #: contact-form-7/modules/quiz.php:173
1406
  msgid "http://contactform7.com/quiz/"
1407
  msgstr ""
1408
 
1409
- #: contact-form-7/modules/quiz.php:173
1410
  msgid "Quiz"
1411
  msgstr ""
1412
 
1413
- #: contact-form-7/modules/quiz.php:188 contact-form-7/modules/quiz.php:191
1414
  msgid "Questions and answers"
1415
  msgstr ""
1416
 
1417
- #: contact-form-7/modules/quiz.php:193
1418
  msgid ""
1419
  "One pipe-separated question-answer pair (e.g. The capital of Brazil?|Rio) "
1420
  "per line."
1421
  msgstr ""
1422
 
1423
- #: contact-form-7/modules/select.php:161
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1424
  msgid "drop-down menu"
1425
  msgstr ""
1426
 
1427
- #: contact-form-7/modules/select.php:168
1428
  #, php-format
1429
  msgid "Generate a form-tag for a drop-down menu. For more details, see %s."
1430
  msgstr ""
1431
 
1432
- #: contact-form-7/modules/select.php:201
1433
  msgid "Allow multiple selections"
1434
  msgstr ""
1435
 
1436
- #: contact-form-7/modules/select.php:202
1437
  msgid "Insert a blank item as the first option"
1438
  msgstr ""
1439
 
1440
- #: contact-form-7/modules/submit.php:49
1441
  msgid "submit"
1442
  msgstr ""
1443
 
1444
- #: contact-form-7/modules/submit.php:56
1445
  #, php-format
1446
  msgid "Generate a form-tag for a submit button. For more details, see %s."
1447
  msgstr ""
1448
 
1449
- #: contact-form-7/modules/submit.php:58
1450
  msgid "http://contactform7.com/submit-button/"
1451
  msgstr ""
1452
 
1453
- #: contact-form-7/modules/submit.php:58
1454
  msgid "Submit Button"
1455
  msgstr ""
1456
 
1457
- #: contact-form-7/modules/submit.php:68
1458
  msgid "Label"
1459
  msgstr ""
1460
 
@@ -1482,86 +1590,86 @@ msgstr ""
1482
  msgid "Telephone number seems invalid."
1483
  msgstr ""
1484
 
1485
- #: contact-form-7/modules/text.php:193
1486
  msgid "text"
1487
  msgstr ""
1488
 
1489
- #: contact-form-7/modules/text.php:195
1490
  msgid "email"
1491
  msgstr ""
1492
 
1493
- #: contact-form-7/modules/text.php:197
1494
  msgid "URL"
1495
  msgstr ""
1496
 
1497
- #: contact-form-7/modules/text.php:199
1498
  msgid "tel"
1499
  msgstr ""
1500
 
1501
- #: contact-form-7/modules/text.php:212
1502
  #, php-format
1503
  msgid ""
1504
  "Generate a form-tag for a single-line plain text input field. For more "
1505
  "details, see %s."
1506
  msgstr ""
1507
 
1508
- #: contact-form-7/modules/text.php:214
1509
  #, php-format
1510
  msgid ""
1511
  "Generate a form-tag for a single-line email address input field. For more "
1512
  "details, see %s."
1513
  msgstr ""
1514
 
1515
- #: contact-form-7/modules/text.php:216
1516
  #, php-format
1517
  msgid ""
1518
  "Generate a form-tag for a single-line URL input field. For more details, see "
1519
  "%s."
1520
  msgstr ""
1521
 
1522
- #: contact-form-7/modules/text.php:218
1523
  #, php-format
1524
  msgid ""
1525
  "Generate a form-tag for a single-line telephone number input field. For more "
1526
  "details, see %s."
1527
  msgstr ""
1528
 
1529
- #: contact-form-7/modules/text.php:221 contact-form-7/modules/textarea.php:137
1530
  msgid "http://contactform7.com/text-fields/"
1531
  msgstr ""
1532
 
1533
- #: contact-form-7/modules/text.php:221 contact-form-7/modules/textarea.php:137
1534
  msgid "Text Fields"
1535
  msgstr ""
1536
 
1537
- #: contact-form-7/modules/text.php:253 contact-form-7/modules/text.php:256
1538
  msgid "Akismet"
1539
  msgstr ""
1540
 
1541
- #: contact-form-7/modules/text.php:261
1542
  msgid "This field requires author's name"
1543
  msgstr ""
1544
 
1545
- #: contact-form-7/modules/text.php:266
1546
  msgid "This field requires author's email address"
1547
  msgstr ""
1548
 
1549
- #: contact-form-7/modules/text.php:271
1550
  msgid "This field requires author's URL"
1551
  msgstr ""
1552
 
1553
- #: contact-form-7/modules/textarea.php:127
1554
  msgid "text area"
1555
  msgstr ""
1556
 
1557
- #: contact-form-7/modules/textarea.php:135
1558
  #, php-format
1559
  msgid ""
1560
  "Generate a form-tag for a multi-line text input field. For more details, see "
1561
  "%s."
1562
  msgstr ""
1563
 
1564
- #: contact-form-7/settings.php:78
1565
  #, php-format
1566
  msgid "Contact form %d"
1567
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: Contact Form 7\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2015-09-16 22:18+0900\n"
7
  "PO-Revision-Date: 2015-05-18 21:49+0900\n"
8
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
9
  "Language-Team: \n"
21
  msgid "Just another contact form plugin. Simple but flexible."
22
  msgstr ""
23
 
24
+ #: contact-form-7/admin/admin.php:16 contact-form-7/modules/flamingo.php:134
25
  msgid "Contact Form 7"
26
  msgstr ""
27
 
28
+ #: contact-form-7/admin/admin.php:17
29
  msgid "Contact"
30
  msgstr ""
31
 
32
+ #: contact-form-7/admin/admin.php:22
33
  #: contact-form-7/admin/edit-contact-form.php:38
34
  msgid "Edit Contact Form"
35
  msgstr ""
36
 
37
+ #: contact-form-7/admin/admin.php:23 contact-form-7/admin/admin.php:239
 
38
  #: contact-form-7/includes/contact-form.php:29
39
  msgid "Contact Forms"
40
  msgstr ""
41
 
42
+ #: contact-form-7/admin/admin.php:30 contact-form-7/admin/admin.php:283
43
  #: contact-form-7/admin/edit-contact-form.php:36
44
  msgid "Add New Contact Form"
45
  msgstr ""
46
 
47
+ #: contact-form-7/admin/admin.php:31 contact-form-7/admin/admin.php:242
48
+ #: contact-form-7/admin/admin.php:288 contact-form-7/admin/admin.php:300
49
  #: contact-form-7/admin/edit-contact-form.php:41
50
  msgid "Add New"
51
  msgstr ""
52
 
53
+ #: contact-form-7/admin/admin.php:41 contact-form-7/admin/admin.php:325
54
  msgid "Integration with Other Services"
55
  msgstr ""
56
 
57
+ #: contact-form-7/admin/admin.php:42
58
  msgid "Integration"
59
  msgstr ""
60
 
61
+ #: contact-form-7/admin/admin.php:72 contact-form-7/admin/admin.php:94
62
  msgid "You are not allowed to edit this item."
63
  msgstr ""
64
 
65
+ #: contact-form-7/admin/admin.php:133
66
  msgid "You are not allowed to delete this item."
67
  msgstr ""
68
 
69
+ #: contact-form-7/admin/admin.php:136
70
  msgid "Error in deleting."
71
  msgstr ""
72
 
73
+ #: contact-form-7/admin/admin.php:213
74
  msgid "The changes you made will be lost if you navigate away from this page."
75
  msgstr ""
76
 
77
+ #: contact-form-7/admin/admin.php:247
78
  #, php-format
79
  msgid "Search results for &#8220;%s&#8221;"
80
  msgstr ""
81
 
82
+ #: contact-form-7/admin/admin.php:256
83
  msgid "Search Contact Forms"
84
  msgstr ""
85
 
86
+ #: contact-form-7/admin/admin.php:287
87
  #, php-format
88
  msgid "Use the default language (%s)"
89
  msgstr ""
90
 
91
+ #: contact-form-7/admin/admin.php:291
92
  msgid "Or"
93
  msgstr ""
94
 
95
+ #: contact-form-7/admin/admin.php:295
96
  msgid "(select language)"
97
  msgstr ""
98
 
99
+ #: contact-form-7/admin/admin.php:354
100
  msgid "Contact form created."
101
  msgstr ""
102
 
103
+ #: contact-form-7/admin/admin.php:356
104
  msgid "Contact form saved."
105
  msgstr ""
106
 
107
+ #: contact-form-7/admin/admin.php:358
108
  msgid "Contact form deleted."
109
  msgstr ""
110
 
111
+ #: contact-form-7/admin/admin.php:373
112
  msgid "Settings"
113
  msgstr ""
114
 
115
+ #: contact-form-7/admin/admin.php:391
116
  #, php-format
117
  msgid ""
118
  "<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> "
119
  "Please <a href=\"%3$s\">update WordPress</a> first."
120
  msgstr ""
121
 
122
+ #: contact-form-7/admin/admin.php:417
123
  msgid "Dismiss"
124
  msgstr ""
125
 
126
+ #: contact-form-7/admin/admin.php:422
127
  msgid "Contact Form 7 Needs Your Support"
128
  msgstr ""
129
 
130
+ #: contact-form-7/admin/admin.php:423
131
  msgid ""
132
  "It is hard to continue development and support for this plugin without "
133
  "contributions from users like you. If you enjoy using Contact Form 7 and "
134
  "find it useful, please consider making a donation."
135
  msgstr ""
136
 
137
+ #: contact-form-7/admin/admin.php:424
138
  msgid "http://contactform7.com/donate/"
139
  msgstr ""
140
 
141
+ #: contact-form-7/admin/admin.php:424
142
  msgid "Donate"
143
  msgstr ""
144
 
145
+ #: contact-form-7/admin/admin.php:428
146
  msgid "Get Started"
147
  msgstr ""
148
 
149
+ #: contact-form-7/admin/admin.php:430
150
  msgid "http://contactform7.com/getting-started-with-contact-form-7/"
151
  msgstr ""
152
 
153
+ #: contact-form-7/admin/admin.php:430
154
  msgid "Getting Started with Contact Form 7"
155
  msgstr ""
156
 
157
+ #: contact-form-7/admin/admin.php:431
158
  msgid "http://contactform7.com/admin-screen/"
159
  msgstr ""
160
 
161
+ #: contact-form-7/admin/admin.php:431
162
  msgid "Admin Screen"
163
  msgstr ""
164
 
165
+ #: contact-form-7/admin/admin.php:432
166
  msgid "http://contactform7.com/tag-syntax/"
167
  msgstr ""
168
 
169
+ #: contact-form-7/admin/admin.php:432
170
  msgid "How Tags Work"
171
  msgstr ""
172
 
173
+ #: contact-form-7/admin/admin.php:433
174
  msgid "http://contactform7.com/setting-up-mail/"
175
  msgstr ""
176
 
177
+ #: contact-form-7/admin/admin.php:433
178
  msgid "Setting Up Mail"
179
  msgstr ""
180
 
181
+ #: contact-form-7/admin/admin.php:438
182
  msgid "Did You Know?"
183
  msgstr ""
184
 
185
+ #: contact-form-7/admin/admin.php:440
186
  msgid "http://contactform7.com/spam-filtering-with-akismet/"
187
  msgstr ""
188
 
189
+ #: contact-form-7/admin/admin.php:440
190
  msgid "Spam Filtering with Akismet"
191
  msgstr ""
192
 
193
+ #: contact-form-7/admin/admin.php:441
194
  msgid "http://contactform7.com/save-submitted-messages-with-flamingo/"
195
  msgstr ""
196
 
197
+ #: contact-form-7/admin/admin.php:441
198
  msgid "Save Messages with Flamingo"
199
  msgstr ""
200
 
201
+ #: contact-form-7/admin/admin.php:442
202
  msgid "http://contactform7.com/selectable-recipient-with-pipes/"
203
  msgstr ""
204
 
205
+ #: contact-form-7/admin/admin.php:442
206
  msgid "Selectable Recipient with Pipes"
207
  msgstr ""
208
 
209
+ #: contact-form-7/admin/admin.php:443
210
  msgid ""
211
  "http://contactform7.com/tracking-form-submissions-with-google-analytics/"
212
  msgstr ""
213
 
214
+ #: contact-form-7/admin/admin.php:443
215
  msgid "Tracking with Google Analytics"
216
  msgstr ""
217
 
218
+ #: contact-form-7/admin/admin.php:488
219
  msgid "You are not allowed to edit this contact form."
220
  msgstr ""
221
 
222
  #: contact-form-7/admin/edit-contact-form.php:26
223
  #: contact-form-7/admin/edit-contact-form.php:124
224
+ #: contact-form-7/modules/recaptcha.php:212
225
  msgid "Save"
226
  msgstr ""
227
 
259
  " 'Cancel' to stop, 'OK' to delete."
260
  msgstr ""
261
 
262
+ #: contact-form-7/admin/edit-contact-form.php:158
263
  msgid "Information"
264
  msgstr ""
265
 
266
+ #: contact-form-7/admin/edit-contact-form.php:161
267
  #: contact-form-7/admin/includes/help-tabs.php:103
268
  msgid "http://contactform7.com/docs/"
269
  msgstr ""
270
 
271
+ #: contact-form-7/admin/edit-contact-form.php:161
272
  #: contact-form-7/admin/includes/help-tabs.php:103
273
  msgid "Docs"
274
  msgstr ""
275
 
276
+ #: contact-form-7/admin/edit-contact-form.php:162
277
  #: contact-form-7/admin/includes/help-tabs.php:104
278
  msgid "http://contactform7.com/faq/"
279
  msgstr ""
280
 
281
+ #: contact-form-7/admin/edit-contact-form.php:162
282
  #: contact-form-7/admin/includes/help-tabs.php:104
283
  msgid "FAQ"
284
  msgstr ""
285
 
286
+ #: contact-form-7/admin/edit-contact-form.php:163
287
  #: contact-form-7/admin/includes/help-tabs.php:105
288
  msgid "http://contactform7.com/support/"
289
  msgstr ""
290
 
291
+ #: contact-form-7/admin/edit-contact-form.php:163
292
  #: contact-form-7/admin/includes/help-tabs.php:105
293
  msgid "Support"
294
  msgstr ""
295
 
296
+ #: contact-form-7/admin/edit-contact-form.php:172
297
  #, php-format
298
  msgid "%s keys switch panels"
299
  msgstr ""
300
 
301
+ #: contact-form-7/admin/edit-contact-form.php:182
302
  #: contact-form-7/admin/includes/editor.php:45
303
  msgid "Form"
304
  msgstr ""
305
 
306
+ #: contact-form-7/admin/edit-contact-form.php:185
307
  #: contact-form-7/admin/includes/editor.php:72
308
  msgid "Mail"
309
  msgstr ""
310
 
311
+ #: contact-form-7/admin/edit-contact-form.php:188
312
  #: contact-form-7/admin/includes/editor.php:167
313
  msgid "Messages"
314
  msgstr ""
315
 
316
+ #: contact-form-7/admin/edit-contact-form.php:199
317
  #, php-format
318
  msgid "Additional Settings (%d)"
319
  msgstr ""
320
 
321
+ #: contact-form-7/admin/edit-contact-form.php:201
322
  #: contact-form-7/admin/includes/editor.php:190
323
  #: contact-form-7/admin/includes/editor.php:195
324
  msgid "Additional Settings"
718
  msgid "Sending ..."
719
  msgstr ""
720
 
721
+ #: contact-form-7/includes/l10n.php:11
722
  msgid "Afrikaans"
723
  msgstr ""
724
 
725
+ #: contact-form-7/includes/l10n.php:12
726
  msgid "Albanian"
727
  msgstr ""
728
 
729
+ #: contact-form-7/includes/l10n.php:13
730
  msgid "Arabic"
731
  msgstr ""
732
 
733
+ #: contact-form-7/includes/l10n.php:14
734
  msgid "Armenian"
735
  msgstr ""
736
 
737
+ #: contact-form-7/includes/l10n.php:15
738
  msgid "Azerbaijani"
739
  msgstr ""
740
 
741
+ #: contact-form-7/includes/l10n.php:16
742
  msgid "Bangla"
743
  msgstr ""
744
 
745
+ #: contact-form-7/includes/l10n.php:17
746
  msgid "Basque"
747
  msgstr ""
748
 
749
+ #: contact-form-7/includes/l10n.php:18
750
  msgid "Belarusian"
751
  msgstr ""
752
 
753
+ #: contact-form-7/includes/l10n.php:19
754
  msgid "Bosnian"
755
  msgstr ""
756
 
757
+ #: contact-form-7/includes/l10n.php:20
758
  msgid "Bulgarian"
759
  msgstr ""
760
 
761
+ #: contact-form-7/includes/l10n.php:21
762
  msgid "Catalan"
763
  msgstr ""
764
 
765
+ #: contact-form-7/includes/l10n.php:22
766
  msgid "Central Kurdish"
767
  msgstr ""
768
 
769
+ #: contact-form-7/includes/l10n.php:23
770
  msgid "Chinese (China)"
771
  msgstr ""
772
 
773
+ #: contact-form-7/includes/l10n.php:24
774
  msgid "Chinese (Taiwan)"
775
  msgstr ""
776
 
777
+ #: contact-form-7/includes/l10n.php:25
778
  msgid "Croatian"
779
  msgstr ""
780
 
781
+ #: contact-form-7/includes/l10n.php:26
782
  msgid "Czech"
783
  msgstr ""
784
 
785
+ #: contact-form-7/includes/l10n.php:27
786
  msgid "Danish"
787
  msgstr ""
788
 
789
+ #: contact-form-7/includes/l10n.php:28
790
  msgid "Dutch"
791
  msgstr ""
792
 
793
+ #: contact-form-7/includes/l10n.php:29
794
  msgid "English (United States)"
795
  msgstr ""
796
 
797
+ #: contact-form-7/includes/l10n.php:30
798
  msgid "Esperanto"
799
  msgstr ""
800
 
801
+ #: contact-form-7/includes/l10n.php:31
802
  msgid "Estonian"
803
  msgstr ""
804
 
805
+ #: contact-form-7/includes/l10n.php:32
806
  msgid "Finnish"
807
  msgstr ""
808
 
809
+ #: contact-form-7/includes/l10n.php:33
810
  msgid "French (France)"
811
  msgstr ""
812
 
813
+ #: contact-form-7/includes/l10n.php:34
814
  msgid "Galician"
815
  msgstr ""
816
 
817
+ #: contact-form-7/includes/l10n.php:35
818
  msgid "Gujarati"
819
  msgstr ""
820
 
821
+ #: contact-form-7/includes/l10n.php:36
822
  msgid "Georgian"
823
  msgstr ""
824
 
825
+ #: contact-form-7/includes/l10n.php:37
826
  msgid "German"
827
  msgstr ""
828
 
829
+ #: contact-form-7/includes/l10n.php:38
830
  msgid "Greek"
831
  msgstr ""
832
 
833
+ #: contact-form-7/includes/l10n.php:39
834
  msgid "Haitian"
835
  msgstr ""
836
 
837
+ #: contact-form-7/includes/l10n.php:40
838
  msgid "Hebrew"
839
  msgstr ""
840
 
841
+ #: contact-form-7/includes/l10n.php:41
842
  msgid "Hindi"
843
  msgstr ""
844
 
845
+ #: contact-form-7/includes/l10n.php:42
846
  msgid "Hungarian"
847
  msgstr ""
848
 
849
+ #: contact-form-7/includes/l10n.php:43
850
  msgid "Indian Bengali"
851
  msgstr ""
852
 
853
+ #: contact-form-7/includes/l10n.php:44
854
  msgid "Indonesian"
855
  msgstr ""
856
 
857
+ #: contact-form-7/includes/l10n.php:45
858
  msgid "Irish"
859
  msgstr ""
860
 
861
+ #: contact-form-7/includes/l10n.php:46
862
  msgid "Italian"
863
  msgstr ""
864
 
865
+ #: contact-form-7/includes/l10n.php:47
866
  msgid "Japanese"
867
  msgstr ""
868
 
869
+ #: contact-form-7/includes/l10n.php:48
870
  msgid "Korean"
871
  msgstr ""
872
 
873
+ #: contact-form-7/includes/l10n.php:49
874
  msgid "Latvian"
875
  msgstr ""
876
 
877
+ #: contact-form-7/includes/l10n.php:50
878
  msgid "Lithuanian"
879
  msgstr ""
880
 
881
+ #: contact-form-7/includes/l10n.php:51
882
  msgid "Macedonian"
883
  msgstr ""
884
 
885
+ #: contact-form-7/includes/l10n.php:52
886
  msgid "Malay"
887
  msgstr ""
888
 
889
+ #: contact-form-7/includes/l10n.php:53
890
  msgid "Malayalam"
891
  msgstr ""
892
 
893
+ #: contact-form-7/includes/l10n.php:54
894
  msgid "Maltese"
895
  msgstr ""
896
 
897
+ #: contact-form-7/includes/l10n.php:55
898
  msgid "Norwegian (Bokmål)"
899
  msgstr ""
900
 
901
+ #: contact-form-7/includes/l10n.php:56
902
  msgid "Persian"
903
  msgstr ""
904
 
905
+ #: contact-form-7/includes/l10n.php:57
906
  msgid "Polish"
907
  msgstr ""
908
 
909
+ #: contact-form-7/includes/l10n.php:58
910
  msgid "Portuguese (Brazil)"
911
  msgstr ""
912
 
913
+ #: contact-form-7/includes/l10n.php:59
914
  msgid "Portuguese (Portugal)"
915
  msgstr ""
916
 
917
+ #: contact-form-7/includes/l10n.php:60
918
  msgid "Punjabi"
919
  msgstr ""
920
 
921
+ #: contact-form-7/includes/l10n.php:61
922
  msgid "Russian"
923
  msgstr ""
924
 
925
+ #: contact-form-7/includes/l10n.php:62
926
  msgid "Romanian"
927
  msgstr ""
928
 
929
+ #: contact-form-7/includes/l10n.php:63
930
  msgid "Serbian"
931
  msgstr ""
932
 
933
+ #: contact-form-7/includes/l10n.php:64
934
  msgid "Sinhala"
935
  msgstr ""
936
 
937
+ #: contact-form-7/includes/l10n.php:65
938
  msgid "Slovak"
939
  msgstr ""
940
 
941
+ #: contact-form-7/includes/l10n.php:66
942
  msgid "Slovene"
943
  msgstr ""
944
 
945
+ #: contact-form-7/includes/l10n.php:67
946
  msgid "Spanish (Spain)"
947
  msgstr ""
948
 
949
+ #: contact-form-7/includes/l10n.php:68
950
  msgid "Swedish"
951
  msgstr ""
952
 
953
+ #: contact-form-7/includes/l10n.php:69
954
  msgid "Tamil"
955
  msgstr ""
956
 
957
+ #: contact-form-7/includes/l10n.php:70
958
  msgid "Thai"
959
  msgstr ""
960
 
961
+ #: contact-form-7/includes/l10n.php:71
962
  msgid "Tagalog"
963
  msgstr ""
964
 
965
+ #: contact-form-7/includes/l10n.php:72
966
  msgid "Turkish"
967
  msgstr ""
968
 
969
+ #: contact-form-7/includes/l10n.php:73
970
  msgid "Ukrainian"
971
  msgstr ""
972
 
973
+ #: contact-form-7/includes/l10n.php:74
974
  msgid "Vietnamese"
975
  msgstr ""
976
 
977
+ #: contact-form-7/modules/acceptance.php:130
978
  msgid "acceptance"
979
  msgstr ""
980
 
981
+ #: contact-form-7/modules/acceptance.php:138
982
  #, php-format
983
  msgid ""
984
  "Generate a form-tag for an acceptance checkbox. For more details, see %s."
985
  msgstr ""
986
 
987
+ #: contact-form-7/modules/acceptance.php:140
988
  msgid "http://contactform7.com/acceptance-checkbox/"
989
  msgstr ""
990
 
991
+ #: contact-form-7/modules/acceptance.php:140
992
  msgid "Acceptance Checkbox"
993
  msgstr ""
994
 
995
+ #: contact-form-7/modules/acceptance.php:150
996
+ #: contact-form-7/modules/checkbox.php:309 contact-form-7/modules/date.php:169
997
+ #: contact-form-7/modules/file.php:253 contact-form-7/modules/number.php:177
998
+ #: contact-form-7/modules/quiz.php:181
999
+ #: contact-form-7/modules/really-simple-captcha.php:237
1000
+ #: contact-form-7/modules/select.php:188 contact-form-7/modules/text.php:239
1001
+ #: contact-form-7/modules/textarea.php:155
1002
  msgid "Name"
1003
  msgstr ""
1004
 
1005
+ #: contact-form-7/modules/acceptance.php:155
1006
+ #: contact-form-7/modules/acceptance.php:158
1007
+ #: contact-form-7/modules/checkbox.php:314
1008
+ #: contact-form-7/modules/checkbox.php:317
1009
+ #: contact-form-7/modules/select.php:193 contact-form-7/modules/select.php:196
1010
  msgid "Options"
1011
  msgstr ""
1012
 
1013
+ #: contact-form-7/modules/acceptance.php:159
1014
  msgid "Make this checkbox checked by default"
1015
  msgstr ""
1016
 
1017
+ #: contact-form-7/modules/acceptance.php:160
1018
  msgid "Make this work inversely"
1019
  msgstr ""
1020
 
1021
+ #: contact-form-7/modules/acceptance.php:166
1022
+ #: contact-form-7/modules/checkbox.php:330 contact-form-7/modules/date.php:198
1023
+ #: contact-form-7/modules/file.php:268 contact-form-7/modules/number.php:206
1024
+ #: contact-form-7/modules/quiz.php:197
1025
+ #: contact-form-7/modules/really-simple-captcha.php:247
1026
+ #: contact-form-7/modules/really-simple-captcha.php:262
1027
+ #: contact-form-7/modules/recaptcha.php:451
1028
+ #: contact-form-7/modules/select.php:206 contact-form-7/modules/submit.php:71
1029
+ #: contact-form-7/modules/text.php:279 contact-form-7/modules/textarea.php:166
1030
  msgid "Id attribute"
1031
  msgstr ""
1032
 
1033
+ #: contact-form-7/modules/acceptance.php:171
1034
+ #: contact-form-7/modules/checkbox.php:335 contact-form-7/modules/date.php:203
1035
+ #: contact-form-7/modules/file.php:273 contact-form-7/modules/number.php:211
1036
+ #: contact-form-7/modules/quiz.php:202
1037
+ #: contact-form-7/modules/really-simple-captcha.php:252
1038
+ #: contact-form-7/modules/really-simple-captcha.php:267
1039
+ #: contact-form-7/modules/recaptcha.php:456
1040
+ #: contact-form-7/modules/select.php:211 contact-form-7/modules/submit.php:76
1041
+ #: contact-form-7/modules/text.php:284 contact-form-7/modules/textarea.php:171
1042
  msgid "Class attribute"
1043
  msgstr ""
1044
 
1045
+ #: contact-form-7/modules/acceptance.php:184
1046
+ #: contact-form-7/modules/checkbox.php:348 contact-form-7/modules/date.php:215
1047
+ #: contact-form-7/modules/file.php:286 contact-form-7/modules/number.php:223
1048
+ #: contact-form-7/modules/quiz.php:215
1049
+ #: contact-form-7/modules/really-simple-captcha.php:279
1050
+ #: contact-form-7/modules/recaptcha.php:469
1051
+ #: contact-form-7/modules/select.php:224 contact-form-7/modules/submit.php:89
1052
+ #: contact-form-7/modules/text.php:297 contact-form-7/modules/textarea.php:184
1053
  msgid "Insert Tag"
1054
  msgstr ""
1055
 
1056
+ #: contact-form-7/modules/checkbox.php:267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1057
  msgid "checkboxes"
1058
  msgstr ""
1059
 
1060
+ #: contact-form-7/modules/checkbox.php:269
1061
  msgid "radio buttons"
1062
  msgstr ""
1063
 
1064
+ #: contact-form-7/modules/checkbox.php:282
1065
  #, php-format
1066
  msgid ""
1067
  "Generate a form-tag for a group of checkboxes. For more details, see %s."
1068
  msgstr ""
1069
 
1070
+ #: contact-form-7/modules/checkbox.php:284
1071
  #, php-format
1072
  msgid ""
1073
  "Generate a form-tag for a group of radio buttons. For more details, see %s."
1074
  msgstr ""
1075
 
1076
+ #: contact-form-7/modules/checkbox.php:287
1077
+ #: contact-form-7/modules/select.php:168
1078
  msgid "http://contactform7.com/checkboxes-radio-buttons-and-menus/"
1079
  msgstr ""
1080
 
1081
+ #: contact-form-7/modules/checkbox.php:287
1082
+ #: contact-form-7/modules/select.php:168
1083
  msgid "Checkboxes, Radio Buttons and Menus"
1084
  msgstr ""
1085
 
1086
+ #: contact-form-7/modules/checkbox.php:298
1087
+ #: contact-form-7/modules/checkbox.php:301 contact-form-7/modules/date.php:159
1088
+ #: contact-form-7/modules/date.php:162 contact-form-7/modules/file.php:243
1089
+ #: contact-form-7/modules/file.php:246 contact-form-7/modules/number.php:162
1090
+ #: contact-form-7/modules/number.php:165 contact-form-7/modules/select.php:178
1091
+ #: contact-form-7/modules/select.php:181 contact-form-7/modules/text.php:229
1092
+ #: contact-form-7/modules/text.php:232 contact-form-7/modules/textarea.php:145
1093
+ #: contact-form-7/modules/textarea.php:148
1094
  msgid "Field type"
1095
  msgstr ""
1096
 
1097
+ #: contact-form-7/modules/checkbox.php:302 contact-form-7/modules/date.php:163
1098
+ #: contact-form-7/modules/file.php:247 contact-form-7/modules/number.php:171
1099
+ #: contact-form-7/modules/select.php:182 contact-form-7/modules/text.php:233
1100
+ #: contact-form-7/modules/textarea.php:149
1101
  msgid "Required field"
1102
  msgstr ""
1103
 
1104
+ #: contact-form-7/modules/checkbox.php:319
1105
+ #: contact-form-7/modules/select.php:198
1106
  msgid "One option per line."
1107
  msgstr ""
1108
 
1109
+ #: contact-form-7/modules/checkbox.php:320
1110
  msgid "Put a label first, a checkbox last"
1111
  msgstr ""
1112
 
1113
+ #: contact-form-7/modules/checkbox.php:321
1114
  msgid "Wrap each item with label element"
1115
  msgstr ""
1116
 
1117
+ #: contact-form-7/modules/checkbox.php:323
1118
  msgid "Make checkboxes exclusive"
1119
  msgstr ""
1120
 
1121
+ #: contact-form-7/modules/checkbox.php:353 contact-form-7/modules/date.php:220
1122
+ #: contact-form-7/modules/number.php:228 contact-form-7/modules/select.php:229
1123
+ #: contact-form-7/modules/text.php:302 contact-form-7/modules/textarea.php:189
1124
  #, php-format
1125
  msgid ""
1126
  "To use the value input through this field in a mail field, you need to "
1151
  msgid "This date is too late."
1152
  msgstr ""
1153
 
1154
+ #: contact-form-7/modules/date.php:139
1155
  msgid "date"
1156
  msgstr ""
1157
 
1158
+ #: contact-form-7/modules/date.php:147
1159
  #, php-format
1160
  msgid "Generate a form-tag for a date input field. For more details, see %s."
1161
  msgstr ""
1162
 
1163
+ #: contact-form-7/modules/date.php:149
1164
  msgid "http://contactform7.com/date-field/"
1165
  msgstr ""
1166
 
1167
+ #: contact-form-7/modules/date.php:149
1168
  msgid "Date Field"
1169
  msgstr ""
1170
 
1171
+ #: contact-form-7/modules/date.php:174 contact-form-7/modules/number.php:182
1172
+ #: contact-form-7/modules/text.php:244 contact-form-7/modules/textarea.php:160
1173
  msgid "Default value"
1174
  msgstr ""
1175
 
1176
+ #: contact-form-7/modules/date.php:176 contact-form-7/modules/number.php:184
1177
+ #: contact-form-7/modules/text.php:246 contact-form-7/modules/textarea.php:162
1178
  msgid "Use this text as the placeholder of the field"
1179
  msgstr ""
1180
 
1181
+ #: contact-form-7/modules/date.php:180 contact-form-7/modules/date.php:183
1182
+ #: contact-form-7/modules/number.php:188 contact-form-7/modules/number.php:191
1183
  msgid "Range"
1184
  msgstr ""
1185
 
1186
+ #: contact-form-7/modules/date.php:185 contact-form-7/modules/number.php:193
1187
  msgid "Min"
1188
  msgstr ""
1189
 
1190
+ #: contact-form-7/modules/date.php:190 contact-form-7/modules/number.php:198
1191
  msgid "Max"
1192
  msgstr ""
1193
 
1194
+ #: contact-form-7/modules/file.php:195
1195
  msgid "Uploading a file fails for any reason"
1196
  msgstr ""
1197
 
1198
+ #: contact-form-7/modules/file.php:196
1199
  msgid "Failed to upload file."
1200
  msgstr ""
1201
 
1202
+ #: contact-form-7/modules/file.php:200
1203
  msgid "Uploaded file is not allowed file type"
1204
  msgstr ""
1205
 
1206
+ #: contact-form-7/modules/file.php:201
1207
  msgid "This file type is not allowed."
1208
  msgstr ""
1209
 
1210
+ #: contact-form-7/modules/file.php:205
1211
  msgid "Uploaded file is too large"
1212
  msgstr ""
1213
 
1214
+ #: contact-form-7/modules/file.php:206
1215
  msgid "This file is too large."
1216
  msgstr ""
1217
 
1218
+ #: contact-form-7/modules/file.php:210
1219
  msgid "Uploading a file fails for PHP error"
1220
  msgstr ""
1221
 
1222
+ #: contact-form-7/modules/file.php:211
1223
  msgid "Failed to upload file. Error occurred."
1224
  msgstr ""
1225
 
1257
  "tab."
1258
  msgstr ""
1259
 
1260
+ #: contact-form-7/modules/file.php:317
1261
  #, php-format
1262
  msgid ""
1263
  "This contact form contains file uploading fields, but the temporary folder "
1304
  msgid "This number is too large."
1305
  msgstr ""
1306
 
1307
+ #: contact-form-7/modules/number.php:142
1308
  msgid "number"
1309
  msgstr ""
1310
 
1311
+ #: contact-form-7/modules/number.php:150
1312
  #, php-format
1313
  msgid ""
1314
  "Generate a form-tag for a field for numeric value input. For more details, "
1315
  "see %s."
1316
  msgstr ""
1317
 
1318
+ #: contact-form-7/modules/number.php:152
1319
  msgid "http://contactform7.com/number-fields/"
1320
  msgstr ""
1321
 
1322
+ #: contact-form-7/modules/number.php:152
1323
  msgid "Number Fields"
1324
  msgstr ""
1325
 
1326
+ #: contact-form-7/modules/number.php:167
1327
  msgid "Spinbox"
1328
  msgstr ""
1329
 
1330
+ #: contact-form-7/modules/number.php:168
1331
  msgid "Slider"
1332
  msgstr ""
1333
 
1339
  msgid "Your answer is not correct."
1340
  msgstr ""
1341
 
1342
+ #: contact-form-7/modules/quiz.php:161
1343
  msgid "quiz"
1344
  msgstr ""
1345
 
1346
+ #: contact-form-7/modules/quiz.php:169
1347
  #, php-format
1348
  msgid ""
1349
  "Generate a form-tag for a question-answer pair. For more details, see %s."
1350
  msgstr ""
1351
 
1352
+ #: contact-form-7/modules/quiz.php:171
1353
  msgid "http://contactform7.com/quiz/"
1354
  msgstr ""
1355
 
1356
+ #: contact-form-7/modules/quiz.php:171
1357
  msgid "Quiz"
1358
  msgstr ""
1359
 
1360
+ #: contact-form-7/modules/quiz.php:186 contact-form-7/modules/quiz.php:189
1361
  msgid "Questions and answers"
1362
  msgstr ""
1363
 
1364
+ #: contact-form-7/modules/quiz.php:191
1365
  msgid ""
1366
  "One pipe-separated question-answer pair (e.g. The capital of Brazil?|Rio) "
1367
  "per line."
1368
  msgstr ""
1369
 
1370
+ #: contact-form-7/modules/really-simple-captcha.php:19
1371
+ msgid ""
1372
+ "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/"
1373
+ "really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
1374
+ msgstr ""
1375
+
1376
+ #: contact-form-7/modules/really-simple-captcha.php:189
1377
+ msgid "The code that sender entered does not match the CAPTCHA"
1378
+ msgstr ""
1379
+
1380
+ #: contact-form-7/modules/really-simple-captcha.php:190
1381
+ msgid "Your entered code is incorrect."
1382
+ msgstr ""
1383
+
1384
+ #: contact-form-7/modules/really-simple-captcha.php:206
1385
+ msgid "CAPTCHA (Really Simple CAPTCHA)"
1386
+ msgstr ""
1387
+
1388
+ #: contact-form-7/modules/really-simple-captcha.php:217
1389
+ #, php-format
1390
+ msgid "To use CAPTCHA, you first need to install and activate %s plugin."
1391
+ msgstr ""
1392
+
1393
+ #: contact-form-7/modules/really-simple-captcha.php:225
1394
+ #, php-format
1395
+ msgid ""
1396
+ "Generate form-tags for a CAPTCHA image and corresponding response input "
1397
+ "field. For more details, see %s."
1398
+ msgstr ""
1399
+
1400
+ #: contact-form-7/modules/really-simple-captcha.php:227
1401
+ msgid "http://contactform7.com/captcha/"
1402
+ msgstr ""
1403
+
1404
+ #: contact-form-7/modules/really-simple-captcha.php:227
1405
+ #: contact-form-7/modules/recaptcha.php:224
1406
+ msgid "CAPTCHA"
1407
+ msgstr ""
1408
+
1409
+ #: contact-form-7/modules/really-simple-captcha.php:244
1410
+ msgid "Image settings"
1411
+ msgstr ""
1412
+
1413
+ #: contact-form-7/modules/really-simple-captcha.php:259
1414
+ msgid "Input field settings"
1415
+ msgstr ""
1416
+
1417
+ #: contact-form-7/modules/really-simple-captcha.php:310
1418
+ #, php-format
1419
+ msgid ""
1420
+ "This contact form contains CAPTCHA fields, but the temporary folder for the "
1421
+ "files (%s) does not exist or is not writable. You can create the folder or "
1422
+ "change its permission manually."
1423
+ msgstr ""
1424
+
1425
+ #: contact-form-7/modules/really-simple-captcha.php:316
1426
+ msgid ""
1427
+ "This contact form contains CAPTCHA fields, but the necessary libraries (GD "
1428
+ "and FreeType) are not available on your server."
1429
+ msgstr ""
1430
+
1431
+ #: contact-form-7/modules/recaptcha.php:23
1432
+ #: contact-form-7/modules/recaptcha.php:190
1433
+ #: contact-form-7/modules/recaptcha.php:394
1434
+ #: contact-form-7/modules/recaptcha.php:407
1435
+ #: contact-form-7/modules/recaptcha.php:417
1436
+ msgid "reCAPTCHA"
1437
+ msgstr ""
1438
+
1439
+ #: contact-form-7/modules/recaptcha.php:40
1440
+ msgid "reCAPTCHA Logo"
1441
+ msgstr ""
1442
+
1443
+ #: contact-form-7/modules/recaptcha.php:144
1444
+ msgid "ERROR"
1445
+ msgstr ""
1446
+
1447
+ #: contact-form-7/modules/recaptcha.php:145
1448
+ msgid "Invalid key values."
1449
+ msgstr ""
1450
+
1451
+ #: contact-form-7/modules/recaptcha.php:150
1452
+ msgid "Settings saved."
1453
+ msgstr ""
1454
+
1455
+ #: contact-form-7/modules/recaptcha.php:156
1456
+ msgid ""
1457
+ "reCAPTCHA is a free service to protect your website from spam and abuse."
1458
+ msgstr ""
1459
+
1460
+ #: contact-form-7/modules/recaptcha.php:171
1461
+ #: contact-form-7/modules/recaptcha.php:202
1462
+ msgid "Site Key"
1463
+ msgstr ""
1464
+
1465
+ #: contact-form-7/modules/recaptcha.php:175
1466
+ #: contact-form-7/modules/recaptcha.php:206
1467
+ msgid "Secret Key"
1468
+ msgstr ""
1469
+
1470
+ #: contact-form-7/modules/recaptcha.php:181
1471
+ msgid "Reset Keys"
1472
+ msgstr ""
1473
+
1474
+ #: contact-form-7/modules/recaptcha.php:186
1475
+ msgid "To use reCAPTCHA, you need to install an API key pair."
1476
+ msgstr ""
1477
+
1478
+ #: contact-form-7/modules/recaptcha.php:188
1479
+ msgid "Configure Keys"
1480
+ msgstr ""
1481
+
1482
+ #: contact-form-7/modules/recaptcha.php:190
1483
+ #, php-format
1484
+ msgid "For more details, see %s."
1485
+ msgstr ""
1486
+
1487
+ #: contact-form-7/modules/recaptcha.php:190
1488
+ #: contact-form-7/modules/recaptcha.php:407
1489
+ #: contact-form-7/modules/recaptcha.php:417
1490
+ msgid "http://contactform7.com/recaptcha/"
1491
+ msgstr ""
1492
+
1493
+ #: contact-form-7/modules/recaptcha.php:407
1494
+ #, php-format
1495
+ msgid ""
1496
+ "To use reCAPTCHA, first you need to install an API key pair. For more "
1497
+ "details, see %s."
1498
+ msgstr ""
1499
+
1500
+ #: contact-form-7/modules/recaptcha.php:415
1501
+ #, php-format
1502
+ msgid "Generate a form-tag for a reCAPTCHA widget. For more details, see %s."
1503
+ msgstr ""
1504
+
1505
+ #: contact-form-7/modules/recaptcha.php:427
1506
+ #: contact-form-7/modules/recaptcha.php:430
1507
+ msgid "Theme"
1508
+ msgstr ""
1509
+
1510
+ #: contact-form-7/modules/recaptcha.php:431
1511
+ msgid "Light"
1512
+ msgstr ""
1513
+
1514
+ #: contact-form-7/modules/recaptcha.php:433
1515
+ msgid "Dark"
1516
+ msgstr ""
1517
+
1518
+ #: contact-form-7/modules/recaptcha.php:439
1519
+ #: contact-form-7/modules/recaptcha.php:442
1520
+ msgid "Size"
1521
+ msgstr ""
1522
+
1523
+ #: contact-form-7/modules/recaptcha.php:443
1524
+ msgid "Normal"
1525
+ msgstr ""
1526
+
1527
+ #: contact-form-7/modules/recaptcha.php:445
1528
+ msgid "Compact"
1529
+ msgstr ""
1530
+
1531
+ #: contact-form-7/modules/select.php:159
1532
  msgid "drop-down menu"
1533
  msgstr ""
1534
 
1535
+ #: contact-form-7/modules/select.php:166
1536
  #, php-format
1537
  msgid "Generate a form-tag for a drop-down menu. For more details, see %s."
1538
  msgstr ""
1539
 
1540
+ #: contact-form-7/modules/select.php:199
1541
  msgid "Allow multiple selections"
1542
  msgstr ""
1543
 
1544
+ #: contact-form-7/modules/select.php:200
1545
  msgid "Insert a blank item as the first option"
1546
  msgstr ""
1547
 
1548
+ #: contact-form-7/modules/submit.php:47
1549
  msgid "submit"
1550
  msgstr ""
1551
 
1552
+ #: contact-form-7/modules/submit.php:54
1553
  #, php-format
1554
  msgid "Generate a form-tag for a submit button. For more details, see %s."
1555
  msgstr ""
1556
 
1557
+ #: contact-form-7/modules/submit.php:56
1558
  msgid "http://contactform7.com/submit-button/"
1559
  msgstr ""
1560
 
1561
+ #: contact-form-7/modules/submit.php:56
1562
  msgid "Submit Button"
1563
  msgstr ""
1564
 
1565
+ #: contact-form-7/modules/submit.php:66
1566
  msgid "Label"
1567
  msgstr ""
1568
 
1590
  msgid "Telephone number seems invalid."
1591
  msgstr ""
1592
 
1593
+ #: contact-form-7/modules/text.php:191
1594
  msgid "text"
1595
  msgstr ""
1596
 
1597
+ #: contact-form-7/modules/text.php:193
1598
  msgid "email"
1599
  msgstr ""
1600
 
1601
+ #: contact-form-7/modules/text.php:195
1602
  msgid "URL"
1603
  msgstr ""
1604
 
1605
+ #: contact-form-7/modules/text.php:197
1606
  msgid "tel"
1607
  msgstr ""
1608
 
1609
+ #: contact-form-7/modules/text.php:210
1610
  #, php-format
1611
  msgid ""
1612
  "Generate a form-tag for a single-line plain text input field. For more "
1613
  "details, see %s."
1614
  msgstr ""
1615
 
1616
+ #: contact-form-7/modules/text.php:212
1617
  #, php-format
1618
  msgid ""
1619
  "Generate a form-tag for a single-line email address input field. For more "
1620
  "details, see %s."
1621
  msgstr ""
1622
 
1623
+ #: contact-form-7/modules/text.php:214
1624
  #, php-format
1625
  msgid ""
1626
  "Generate a form-tag for a single-line URL input field. For more details, see "
1627
  "%s."
1628
  msgstr ""
1629
 
1630
+ #: contact-form-7/modules/text.php:216
1631
  #, php-format
1632
  msgid ""
1633
  "Generate a form-tag for a single-line telephone number input field. For more "
1634
  "details, see %s."
1635
  msgstr ""
1636
 
1637
+ #: contact-form-7/modules/text.php:219 contact-form-7/modules/textarea.php:135
1638
  msgid "http://contactform7.com/text-fields/"
1639
  msgstr ""
1640
 
1641
+ #: contact-form-7/modules/text.php:219 contact-form-7/modules/textarea.php:135
1642
  msgid "Text Fields"
1643
  msgstr ""
1644
 
1645
+ #: contact-form-7/modules/text.php:251 contact-form-7/modules/text.php:254
1646
  msgid "Akismet"
1647
  msgstr ""
1648
 
1649
+ #: contact-form-7/modules/text.php:259
1650
  msgid "This field requires author's name"
1651
  msgstr ""
1652
 
1653
+ #: contact-form-7/modules/text.php:264
1654
  msgid "This field requires author's email address"
1655
  msgstr ""
1656
 
1657
+ #: contact-form-7/modules/text.php:269
1658
  msgid "This field requires author's URL"
1659
  msgstr ""
1660
 
1661
+ #: contact-form-7/modules/textarea.php:125
1662
  msgid "text area"
1663
  msgstr ""
1664
 
1665
+ #: contact-form-7/modules/textarea.php:133
1666
  #, php-format
1667
  msgid ""
1668
  "Generate a form-tag for a multi-line text input field. For more details, see "
1669
  "%s."
1670
  msgstr ""
1671
 
1672
+ #: contact-form-7/settings.php:132
1673
  #, php-format
1674
  msgid "Contact form %d"
1675
  msgstr ""
license.txt CHANGED
@@ -1,339 +1,24 @@
1
- GNU GENERAL PUBLIC LICENSE
2
- Version 2, June 1991
3
 
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
- Everyone is permitted to copy and distribute verbatim copies
7
- of this license document, but changing it is not allowed.
8
 
9
- Preamble
 
 
 
10
 
11
- The licenses for most software are designed to take away your
12
- freedom to share and change it. By contrast, the GNU General Public
13
- License is intended to guarantee your freedom to share and change free
14
- software--to make sure the software is free for all its users. This
15
- General Public License applies to most of the Free Software
16
- Foundation's software and to any other program whose authors commit to
17
- using it. (Some other Free Software Foundation software is covered by
18
- the GNU Lesser General Public License instead.) You can apply it to
19
- your programs, too.
20
 
21
- When we speak of free software, we are referring to freedom, not
22
- price. Our General Public Licenses are designed to make sure that you
23
- have the freedom to distribute copies of free software (and charge for
24
- this service if you wish), that you receive source code or can get it
25
- if you want it, that you can change the software or use pieces of it
26
- in new free programs; and that you know you can do these things.
27
 
28
- To protect your rights, we need to make restrictions that forbid
29
- anyone to deny you these rights or to ask you to surrender the rights.
30
- These restrictions translate to certain responsibilities for you if you
31
- distribute copies of the software, or if you modify it.
32
 
33
- For example, if you distribute copies of such a program, whether
34
- gratis or for a fee, you must give the recipients all the rights that
35
- you have. You must make sure that they, too, receive or can get the
36
- source code. And you must show them these terms so they know their
37
- rights.
38
-
39
- We protect your rights with two steps: (1) copyright the software, and
40
- (2) offer you this license which gives you legal permission to copy,
41
- distribute and/or modify the software.
42
-
43
- Also, for each author's protection and ours, we want to make certain
44
- that everyone understands that there is no warranty for this free
45
- software. If the software is modified by someone else and passed on, we
46
- want its recipients to know that what they have is not the original, so
47
- that any problems introduced by others will not reflect on the original
48
- authors' reputations.
49
-
50
- Finally, any free program is threatened constantly by software
51
- patents. We wish to avoid the danger that redistributors of a free
52
- program will individually obtain patent licenses, in effect making the
53
- program proprietary. To prevent this, we have made it clear that any
54
- patent must be licensed for everyone's free use or not licensed at all.
55
-
56
- The precise terms and conditions for copying, distribution and
57
- modification follow.
58
-
59
- GNU GENERAL PUBLIC LICENSE
60
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
-
62
- 0. This License applies to any program or other work which contains
63
- a notice placed by the copyright holder saying it may be distributed
64
- under the terms of this General Public License. The "Program", below,
65
- refers to any such program or work, and a "work based on the Program"
66
- means either the Program or any derivative work under copyright law:
67
- that is to say, a work containing the Program or a portion of it,
68
- either verbatim or with modifications and/or translated into another
69
- language. (Hereinafter, translation is included without limitation in
70
- the term "modification".) Each licensee is addressed as "you".
71
-
72
- Activities other than copying, distribution and modification are not
73
- covered by this License; they are outside its scope. The act of
74
- running the Program is not restricted, and the output from the Program
75
- is covered only if its contents constitute a work based on the
76
- Program (independent of having been made by running the Program).
77
- Whether that is true depends on what the Program does.
78
-
79
- 1. You may copy and distribute verbatim copies of the Program's
80
- source code as you receive it, in any medium, provided that you
81
- conspicuously and appropriately publish on each copy an appropriate
82
- copyright notice and disclaimer of warranty; keep intact all the
83
- notices that refer to this License and to the absence of any warranty;
84
- and give any other recipients of the Program a copy of this License
85
- along with the Program.
86
-
87
- You may charge a fee for the physical act of transferring a copy, and
88
- you may at your option offer warranty protection in exchange for a fee.
89
-
90
- 2. You may modify your copy or copies of the Program or any portion
91
- of it, thus forming a work based on the Program, and copy and
92
- distribute such modifications or work under the terms of Section 1
93
- above, provided that you also meet all of these conditions:
94
-
95
- a) You must cause the modified files to carry prominent notices
96
- stating that you changed the files and the date of any change.
97
-
98
- b) You must cause any work that you distribute or publish, that in
99
- whole or in part contains or is derived from the Program or any
100
- part thereof, to be licensed as a whole at no charge to all third
101
- parties under the terms of this License.
102
-
103
- c) If the modified program normally reads commands interactively
104
- when run, you must cause it, when started running for such
105
- interactive use in the most ordinary way, to print or display an
106
- announcement including an appropriate copyright notice and a
107
- notice that there is no warranty (or else, saying that you provide
108
- a warranty) and that users may redistribute the program under
109
- these conditions, and telling the user how to view a copy of this
110
- License. (Exception: if the Program itself is interactive but
111
- does not normally print such an announcement, your work based on
112
- the Program is not required to print an announcement.)
113
-
114
- These requirements apply to the modified work as a whole. If
115
- identifiable sections of that work are not derived from the Program,
116
- and can be reasonably considered independent and separate works in
117
- themselves, then this License, and its terms, do not apply to those
118
- sections when you distribute them as separate works. But when you
119
- distribute the same sections as part of a whole which is a work based
120
- on the Program, the distribution of the whole must be on the terms of
121
- this License, whose permissions for other licensees extend to the
122
- entire whole, and thus to each and every part regardless of who wrote it.
123
-
124
- Thus, it is not the intent of this section to claim rights or contest
125
- your rights to work written entirely by you; rather, the intent is to
126
- exercise the right to control the distribution of derivative or
127
- collective works based on the Program.
128
-
129
- In addition, mere aggregation of another work not based on the Program
130
- with the Program (or with a work based on the Program) on a volume of
131
- a storage or distribution medium does not bring the other work under
132
- the scope of this License.
133
-
134
- 3. You may copy and distribute the Program (or a work based on it,
135
- under Section 2) in object code or executable form under the terms of
136
- Sections 1 and 2 above provided that you also do one of the following:
137
-
138
- a) Accompany it with the complete corresponding machine-readable
139
- source code, which must be distributed under the terms of Sections
140
- 1 and 2 above on a medium customarily used for software interchange; or,
141
-
142
- b) Accompany it with a written offer, valid for at least three
143
- years, to give any third party, for a charge no more than your
144
- cost of physically performing source distribution, a complete
145
- machine-readable copy of the corresponding source code, to be
146
- distributed under the terms of Sections 1 and 2 above on a medium
147
- customarily used for software interchange; or,
148
-
149
- c) Accompany it with the information you received as to the offer
150
- to distribute corresponding source code. (This alternative is
151
- allowed only for noncommercial distribution and only if you
152
- received the program in object code or executable form with such
153
- an offer, in accord with Subsection b above.)
154
-
155
- The source code for a work means the preferred form of the work for
156
- making modifications to it. For an executable work, complete source
157
- code means all the source code for all modules it contains, plus any
158
- associated interface definition files, plus the scripts used to
159
- control compilation and installation of the executable. However, as a
160
- special exception, the source code distributed need not include
161
- anything that is normally distributed (in either source or binary
162
- form) with the major components (compiler, kernel, and so on) of the
163
- operating system on which the executable runs, unless that component
164
- itself accompanies the executable.
165
-
166
- If distribution of executable or object code is made by offering
167
- access to copy from a designated place, then offering equivalent
168
- access to copy the source code from the same place counts as
169
- distribution of the source code, even though third parties are not
170
- compelled to copy the source along with the object code.
171
-
172
- 4. You may not copy, modify, sublicense, or distribute the Program
173
- except as expressly provided under this License. Any attempt
174
- otherwise to copy, modify, sublicense or distribute the Program is
175
- void, and will automatically terminate your rights under this License.
176
- However, parties who have received copies, or rights, from you under
177
- this License will not have their licenses terminated so long as such
178
- parties remain in full compliance.
179
-
180
- 5. You are not required to accept this License, since you have not
181
- signed it. However, nothing else grants you permission to modify or
182
- distribute the Program or its derivative works. These actions are
183
- prohibited by law if you do not accept this License. Therefore, by
184
- modifying or distributing the Program (or any work based on the
185
- Program), you indicate your acceptance of this License to do so, and
186
- all its terms and conditions for copying, distributing or modifying
187
- the Program or works based on it.
188
-
189
- 6. Each time you redistribute the Program (or any work based on the
190
- Program), the recipient automatically receives a license from the
191
- original licensor to copy, distribute or modify the Program subject to
192
- these terms and conditions. You may not impose any further
193
- restrictions on the recipients' exercise of the rights granted herein.
194
- You are not responsible for enforcing compliance by third parties to
195
- this License.
196
-
197
- 7. If, as a consequence of a court judgment or allegation of patent
198
- infringement or for any other reason (not limited to patent issues),
199
- conditions are imposed on you (whether by court order, agreement or
200
- otherwise) that contradict the conditions of this License, they do not
201
- excuse you from the conditions of this License. If you cannot
202
- distribute so as to satisfy simultaneously your obligations under this
203
- License and any other pertinent obligations, then as a consequence you
204
- may not distribute the Program at all. For example, if a patent
205
- license would not permit royalty-free redistribution of the Program by
206
- all those who receive copies directly or indirectly through you, then
207
- the only way you could satisfy both it and this License would be to
208
- refrain entirely from distribution of the Program.
209
-
210
- If any portion of this section is held invalid or unenforceable under
211
- any particular circumstance, the balance of the section is intended to
212
- apply and the section as a whole is intended to apply in other
213
- circumstances.
214
-
215
- It is not the purpose of this section to induce you to infringe any
216
- patents or other property right claims or to contest validity of any
217
- such claims; this section has the sole purpose of protecting the
218
- integrity of the free software distribution system, which is
219
- implemented by public license practices. Many people have made
220
- generous contributions to the wide range of software distributed
221
- through that system in reliance on consistent application of that
222
- system; it is up to the author/donor to decide if he or she is willing
223
- to distribute software through any other system and a licensee cannot
224
- impose that choice.
225
-
226
- This section is intended to make thoroughly clear what is believed to
227
- be a consequence of the rest of this License.
228
-
229
- 8. If the distribution and/or use of the Program is restricted in
230
- certain countries either by patents or by copyrighted interfaces, the
231
- original copyright holder who places the Program under this License
232
- may add an explicit geographical distribution limitation excluding
233
- those countries, so that distribution is permitted only in or among
234
- countries not thus excluded. In such case, this License incorporates
235
- the limitation as if written in the body of this License.
236
-
237
- 9. The Free Software Foundation may publish revised and/or new versions
238
- of the General Public License from time to time. Such new versions will
239
- be similar in spirit to the present version, but may differ in detail to
240
- address new problems or concerns.
241
-
242
- Each version is given a distinguishing version number. If the Program
243
- specifies a version number of this License which applies to it and "any
244
- later version", you have the option of following the terms and conditions
245
- either of that version or of any later version published by the Free
246
- Software Foundation. If the Program does not specify a version number of
247
- this License, you may choose any version ever published by the Free Software
248
- Foundation.
249
-
250
- 10. If you wish to incorporate parts of the Program into other free
251
- programs whose distribution conditions are different, write to the author
252
- to ask for permission. For software which is copyrighted by the Free
253
- Software Foundation, write to the Free Software Foundation; we sometimes
254
- make exceptions for this. Our decision will be guided by the two goals
255
- of preserving the free status of all derivatives of our free software and
256
- of promoting the sharing and reuse of software generally.
257
-
258
- NO WARRANTY
259
-
260
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
- REPAIR OR CORRECTION.
269
-
270
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
- POSSIBILITY OF SUCH DAMAGES.
279
-
280
- END OF TERMS AND CONDITIONS
281
-
282
- How to Apply These Terms to Your New Programs
283
-
284
- If you develop a new program, and you want it to be of the greatest
285
- possible use to the public, the best way to achieve this is to make it
286
- free software which everyone can redistribute and change under these terms.
287
-
288
- To do so, attach the following notices to the program. It is safest
289
- to attach them to the start of each source file to most effectively
290
- convey the exclusion of warranty; and each file should have at least
291
- the "copyright" line and a pointer to where the full notice is found.
292
-
293
- <one line to give the program's name and a brief idea of what it does.>
294
- Copyright (C) <year> <name of author>
295
-
296
- This program is free software; you can redistribute it and/or modify
297
- it under the terms of the GNU General Public License as published by
298
- the Free Software Foundation; either version 2 of the License, or
299
- (at your option) any later version.
300
-
301
- This program is distributed in the hope that it will be useful,
302
- but WITHOUT ANY WARRANTY; without even the implied warranty of
303
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
- GNU General Public License for more details.
305
-
306
- You should have received a copy of the GNU General Public License along
307
- with this program; if not, write to the Free Software Foundation, Inc.,
308
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
-
310
- Also add information on how to contact you by electronic and paper mail.
311
-
312
- If the program is interactive, make it output a short notice like this
313
- when it starts in an interactive mode:
314
-
315
- Gnomovision version 69, Copyright (C) year name of author
316
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
- This is free software, and you are welcome to redistribute it
318
- under certain conditions; type `show c' for details.
319
-
320
- The hypothetical commands `show w' and `show c' should show the appropriate
321
- parts of the General Public License. Of course, the commands you use may
322
- be called something other than `show w' and `show c'; they could even be
323
- mouse-clicks or menu items--whatever suits your program.
324
-
325
- You should also get your employer (if you work as a programmer) or your
326
- school, if any, to sign a "copyright disclaimer" for the program, if
327
- necessary. Here is a sample; alter the names:
328
-
329
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
-
332
- <signature of Ty Coon>, 1 April 1989
333
- Ty Coon, President of Vice
334
-
335
- This General Public License does not permit incorporating your program into
336
- proprietary programs. If your program is a subroutine library, you may
337
- consider it more useful to permit linking proprietary applications with the
338
- library. If this is what you want to do, use the GNU Lesser General
339
- Public License instead of this License.
1
+ Contact Form 7 WordPress Plugin, 2007-2015 Takayuki Miyoshi
2
+ Contact Form 7 is distributed under the terms of the GNU GPL
3
 
4
+ This program is free software; you can redistribute it and/or modify
5
+ it under the terms of the GNU General Public License as published by
6
+ the Free Software Foundation; either version 2 of the License, or
7
+ (at your option) any later version.
8
 
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
 
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
 
 
 
 
 
17
 
 
 
 
 
 
 
18
 
19
+ Contact Form 7 WordPress Plugin bundles the following third-party resources:
 
 
 
20
 
21
+ Google reCAPTCHA icon
22
+ https://www.google.com/recaptcha/
23
+ licensed under the Creative Commons Attribution 3.0 License
24
+ http://creativecommons.org/licenses/by/3.0/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
modules/acceptance.php CHANGED
@@ -123,9 +123,7 @@ function wpcf7_acceptance_as_validation() {
123
 
124
  /* Tag generator */
125
 
126
- if ( is_admin() ) {
127
- add_action( 'admin_init', 'wpcf7_add_tag_generator_acceptance', 35 );
128
- }
129
 
130
  function wpcf7_add_tag_generator_acceptance() {
131
  $tag_generator = WPCF7_TagGenerator::get_instance();
123
 
124
  /* Tag generator */
125
 
126
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_acceptance', 35 );
 
 
127
 
128
  function wpcf7_add_tag_generator_acceptance() {
129
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/checkbox.php CHANGED
@@ -259,9 +259,8 @@ function wpcf7_checkbox_posted_data( $posted_data ) {
259
 
260
  /* Tag generator */
261
 
262
- if ( is_admin() ) {
263
- add_action( 'admin_init', 'wpcf7_add_tag_generator_checkbox_and_radio', 30 );
264
- }
265
 
266
  function wpcf7_add_tag_generator_checkbox_and_radio() {
267
  $tag_generator = WPCF7_TagGenerator::get_instance();
259
 
260
  /* Tag generator */
261
 
262
+ add_action( 'wpcf7_admin_init',
263
+ 'wpcf7_add_tag_generator_checkbox_and_radio', 30 );
 
264
 
265
  function wpcf7_add_tag_generator_checkbox_and_radio() {
266
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/date.php CHANGED
@@ -132,9 +132,7 @@ function wpcf7_date_messages( $messages ) {
132
 
133
  /* Tag generator */
134
 
135
- if ( is_admin() ) {
136
- add_action( 'admin_init', 'wpcf7_add_tag_generator_date', 19 );
137
- }
138
 
139
  function wpcf7_add_tag_generator_date() {
140
  $tag_generator = WPCF7_TagGenerator::get_instance();
132
 
133
  /* Tag generator */
134
 
135
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_date', 19 );
 
 
136
 
137
  function wpcf7_add_tag_generator_date() {
138
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/file.php CHANGED
@@ -15,15 +15,17 @@ function wpcf7_add_shortcode_file() {
15
  function wpcf7_file_shortcode_handler( $tag ) {
16
  $tag = new WPCF7_Shortcode( $tag );
17
 
18
- if ( empty( $tag->name ) )
19
  return '';
 
20
 
21
  $validation_error = wpcf7_get_validation_error( $tag->name );
22
 
23
  $class = wpcf7_form_controls_class( $tag->type );
24
 
25
- if ( $validation_error )
26
  $class .= ' wpcf7-not-valid';
 
27
 
28
  $atts = array();
29
 
@@ -32,14 +34,14 @@ function wpcf7_file_shortcode_handler( $tag ) {
32
  $atts['id'] = $tag->get_id_option();
33
  $atts['tabindex'] = $tag->get_option( 'tabindex', 'int', true );
34
 
35
- if ( $tag->is_required() )
36
  $atts['aria-required'] = 'true';
 
37
 
38
  $atts['aria-invalid'] = $validation_error ? 'true' : 'false';
39
 
40
  $atts['type'] = 'file';
41
  $atts['name'] = $tag->name;
42
- $atts['value'] = '1';
43
 
44
  $atts = wpcf7_format_atts( $atts );
45
 
@@ -214,9 +216,7 @@ function wpcf7_file_messages( $messages ) {
214
 
215
  /* Tag generator */
216
 
217
- if ( is_admin() ) {
218
- add_action( 'admin_init', 'wpcf7_add_tag_generator_file', 50 );
219
- }
220
 
221
  function wpcf7_add_tag_generator_file() {
222
  $tag_generator = WPCF7_TagGenerator::get_instance();
@@ -306,8 +306,9 @@ function wpcf7_file_display_warning_message() {
306
  $has_tags = (bool) $contact_form->form_scan_shortcode(
307
  array( 'type' => array( 'file', 'file*' ) ) );
308
 
309
- if ( ! $has_tags )
310
  return;
 
311
 
312
  $uploads_dir = wpcf7_upload_tmp_dir();
313
  wpcf7_init_uploads();
@@ -315,7 +316,7 @@ function wpcf7_file_display_warning_message() {
315
  if ( ! is_dir( $uploads_dir ) || ! wp_is_writable( $uploads_dir ) ) {
316
  $message = sprintf( __( 'This contact form contains file uploading fields, but the temporary folder for the files (%s) does not exist or is not writable. You can create the folder or change its permission manually.', 'contact-form-7' ), $uploads_dir );
317
 
318
- echo '<div class="error"><p>' . esc_html( $message ) . '</p></div>';
319
  }
320
  }
321
 
15
  function wpcf7_file_shortcode_handler( $tag ) {
16
  $tag = new WPCF7_Shortcode( $tag );
17
 
18
+ if ( empty( $tag->name ) ) {
19
  return '';
20
+ }
21
 
22
  $validation_error = wpcf7_get_validation_error( $tag->name );
23
 
24
  $class = wpcf7_form_controls_class( $tag->type );
25
 
26
+ if ( $validation_error ) {
27
  $class .= ' wpcf7-not-valid';
28
+ }
29
 
30
  $atts = array();
31
 
34
  $atts['id'] = $tag->get_id_option();
35
  $atts['tabindex'] = $tag->get_option( 'tabindex', 'int', true );
36
 
37
+ if ( $tag->is_required() ) {
38
  $atts['aria-required'] = 'true';
39
+ }
40
 
41
  $atts['aria-invalid'] = $validation_error ? 'true' : 'false';
42
 
43
  $atts['type'] = 'file';
44
  $atts['name'] = $tag->name;
 
45
 
46
  $atts = wpcf7_format_atts( $atts );
47
 
216
 
217
  /* Tag generator */
218
 
219
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_file', 50 );
 
 
220
 
221
  function wpcf7_add_tag_generator_file() {
222
  $tag_generator = WPCF7_TagGenerator::get_instance();
306
  $has_tags = (bool) $contact_form->form_scan_shortcode(
307
  array( 'type' => array( 'file', 'file*' ) ) );
308
 
309
+ if ( ! $has_tags ) {
310
  return;
311
+ }
312
 
313
  $uploads_dir = wpcf7_upload_tmp_dir();
314
  wpcf7_init_uploads();
316
  if ( ! is_dir( $uploads_dir ) || ! wp_is_writable( $uploads_dir ) ) {
317
  $message = sprintf( __( 'This contact form contains file uploading fields, but the temporary folder for the files (%s) does not exist or is not writable. You can create the folder or change its permission manually.', 'contact-form-7' ), $uploads_dir );
318
 
319
+ echo '<div class="notice notice-error is-dismissible"><p>' . esc_html( $message ) . '</p></div>';
320
  }
321
  }
322
 
modules/jetpack.php CHANGED
@@ -20,7 +20,7 @@ function wpcf7_jetpack_admin_notices() {
20
  $desc_link = wpcf7_link( __( 'http://contactform7.com/jetpack-overrides-contact-forms/', 'contact-form-7' ), __( 'Jetpack Overrides Contact Forms', 'contact-form-7' ) );
21
 
22
  ?>
23
- <div class="notice notice-warning">
24
  <p><?php echo sprintf( esc_html( __( 'Jetpack may cause problems for other plugins in certain cases. For more details, see %s.', 'contact-form-7' ) ), $desc_link ); ?></p>
25
  </div>
26
  <?php
20
  $desc_link = wpcf7_link( __( 'http://contactform7.com/jetpack-overrides-contact-forms/', 'contact-form-7' ), __( 'Jetpack Overrides Contact Forms', 'contact-form-7' ) );
21
 
22
  ?>
23
+ <div class="notice notice-warning is-dismissible">
24
  <p><?php echo sprintf( esc_html( __( 'Jetpack may cause problems for other plugins in certain cases. For more details, see %s.', 'contact-form-7' ) ), $desc_link ); ?></p>
25
  </div>
26
  <?php
modules/number.php CHANGED
@@ -135,9 +135,7 @@ function wpcf7_number_messages( $messages ) {
135
 
136
  /* Tag generator */
137
 
138
- if ( is_admin() ) {
139
- add_action( 'admin_init', 'wpcf7_add_tag_generator_number', 18 );
140
- }
141
 
142
  function wpcf7_add_tag_generator_number() {
143
  $tag_generator = WPCF7_TagGenerator::get_instance();
135
 
136
  /* Tag generator */
137
 
138
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_number', 18 );
 
 
139
 
140
  function wpcf7_add_tag_generator_number() {
141
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/quiz.php CHANGED
@@ -154,9 +154,7 @@ function wpcf7_quiz_messages( $messages ) {
154
 
155
  /* Tag generator */
156
 
157
- if ( is_admin() ) {
158
- add_action( 'admin_init', 'wpcf7_add_tag_generator_quiz', 40 );
159
- }
160
 
161
  function wpcf7_add_tag_generator_quiz() {
162
  $tag_generator = WPCF7_TagGenerator::get_instance();
154
 
155
  /* Tag generator */
156
 
157
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_quiz', 40 );
 
 
158
 
159
  function wpcf7_add_tag_generator_quiz() {
160
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/{captcha.php → really-simple-captcha.php} RENAMED
@@ -181,6 +181,10 @@ function wpcf7_captcha_ajax_refill( $items ) {
181
  add_filter( 'wpcf7_messages', 'wpcf7_captcha_messages' );
182
 
183
  function wpcf7_captcha_messages( $messages ) {
 
 
 
 
184
  return array_merge( $messages, array( 'captcha_not_match' => array(
185
  'description' => __( "The code that sender entered does not match the CAPTCHA", 'contact-form-7' ),
186
  'default' => __( 'Your entered code is incorrect.', 'contact-form-7' )
@@ -190,13 +194,16 @@ function wpcf7_captcha_messages( $messages ) {
190
 
191
  /* Tag generator */
192
 
193
- if ( is_admin() ) {
194
- add_action( 'admin_init', 'wpcf7_add_tag_generator_captcha', 45 );
195
- }
196
 
197
  function wpcf7_add_tag_generator_captcha() {
 
 
 
 
198
  $tag_generator = WPCF7_TagGenerator::get_instance();
199
- $tag_generator->add( 'captcha', __( 'CAPTCHA', 'contact-form-7' ),
 
200
  'wpcf7_tag_generator_captcha' );
201
  }
202
 
@@ -288,11 +295,13 @@ function wpcf7_captcha_display_warning_message() {
288
  $has_tags = (bool) $contact_form->form_scan_shortcode(
289
  array( 'type' => array( 'captchac' ) ) );
290
 
291
- if ( ! $has_tags )
292
  return;
 
293
 
294
- if ( ! class_exists( 'ReallySimpleCaptcha' ) )
295
  return;
 
296
 
297
  $uploads_dir = wpcf7_captcha_tmp_dir();
298
  wpcf7_init_captcha();
@@ -300,13 +309,13 @@ function wpcf7_captcha_display_warning_message() {
300
  if ( ! is_dir( $uploads_dir ) || ! wp_is_writable( $uploads_dir ) ) {
301
  $message = sprintf( __( 'This contact form contains CAPTCHA fields, but the temporary folder for the files (%s) does not exist or is not writable. You can create the folder or change its permission manually.', 'contact-form-7' ), $uploads_dir );
302
 
303
- echo '<div class="error"><p>' . esc_html( $message ) . '</p></div>';
304
  }
305
 
306
  if ( ! function_exists( 'imagecreatetruecolor' ) || ! function_exists( 'imagettftext' ) ) {
307
  $message = __( 'This contact form contains CAPTCHA fields, but the necessary libraries (GD and FreeType) are not available on your server.', 'contact-form-7' );
308
 
309
- echo '<div class="error"><p>' . esc_html( $message ) . '</p></div>';
310
  }
311
  }
312
 
181
  add_filter( 'wpcf7_messages', 'wpcf7_captcha_messages' );
182
 
183
  function wpcf7_captcha_messages( $messages ) {
184
+ if ( ! wpcf7_use_really_simple_captcha() ) {
185
+ return $messages;
186
+ }
187
+
188
  return array_merge( $messages, array( 'captcha_not_match' => array(
189
  'description' => __( "The code that sender entered does not match the CAPTCHA", 'contact-form-7' ),
190
  'default' => __( 'Your entered code is incorrect.', 'contact-form-7' )
194
 
195
  /* Tag generator */
196
 
197
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_captcha', 46 );
 
 
198
 
199
  function wpcf7_add_tag_generator_captcha() {
200
+ if ( ! wpcf7_use_really_simple_captcha() ) {
201
+ return;
202
+ }
203
+
204
  $tag_generator = WPCF7_TagGenerator::get_instance();
205
+ $tag_generator->add( 'captcha',
206
+ __( 'CAPTCHA (Really Simple CAPTCHA)', 'contact-form-7' ),
207
  'wpcf7_tag_generator_captcha' );
208
  }
209
 
295
  $has_tags = (bool) $contact_form->form_scan_shortcode(
296
  array( 'type' => array( 'captchac' ) ) );
297
 
298
+ if ( ! $has_tags ) {
299
  return;
300
+ }
301
 
302
+ if ( ! class_exists( 'ReallySimpleCaptcha' ) ) {
303
  return;
304
+ }
305
 
306
  $uploads_dir = wpcf7_captcha_tmp_dir();
307
  wpcf7_init_captcha();
309
  if ( ! is_dir( $uploads_dir ) || ! wp_is_writable( $uploads_dir ) ) {
310
  $message = sprintf( __( 'This contact form contains CAPTCHA fields, but the temporary folder for the files (%s) does not exist or is not writable. You can create the folder or change its permission manually.', 'contact-form-7' ), $uploads_dir );
311
 
312
+ echo '<div class="notice notice-error is-dismissible"><p>' . esc_html( $message ) . '</p></div>';
313
  }
314
 
315
  if ( ! function_exists( 'imagecreatetruecolor' ) || ! function_exists( 'imagettftext' ) ) {
316
  $message = __( 'This contact form contains CAPTCHA fields, but the necessary libraries (GD and FreeType) are not available on your server.', 'contact-form-7' );
317
 
318
+ echo '<div class="notice notice-error is-dismissible"><p>' . esc_html( $message ) . '</p></div>';
319
  }
320
  }
321
 
modules/recaptcha.php ADDED
@@ -0,0 +1,473 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class WPCF7_RECAPTCHA extends WPCF7_Service {
4
+
5
+ const VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify';
6
+
7
+ private static $instance;
8
+ private $sitekeys;
9
+
10
+ public static function get_instance() {
11
+ if ( empty( self::$instance ) ) {
12
+ self::$instance = new self;
13
+ }
14
+
15
+ return self::$instance;
16
+ }
17
+
18
+ private function __construct() {
19
+ $this->sitekeys = WPCF7::get_option( 'recaptcha' );
20
+ }
21
+
22
+ public function get_title() {
23
+ return __( 'reCAPTCHA', 'contact-form-7' );
24
+ }
25
+
26
+ public function is_active() {
27
+ $sitekey = $this->get_sitekey();
28
+ $secret = $this->get_secret( $sitekey );
29
+ return $sitekey && $secret;
30
+ }
31
+
32
+ public function get_categories() {
33
+ return array( 'captcha' );
34
+ }
35
+
36
+ public function icon() {
37
+ $icon = sprintf(
38
+ '<img src="%1$s" alt="%2$s" width="%3$d" height="%4$d" class="icon" />',
39
+ wpcf7_plugin_url( 'images/service-icons/recaptcha-72x72.png' ),
40
+ esc_attr( __( 'reCAPTCHA Logo', 'contact-form-7' ) ),
41
+ 36, 36 );
42
+ echo $icon;
43
+ }
44
+
45
+ public function link() {
46
+ echo sprintf( '<a href="%1$s">%2$s</a>',
47
+ 'https://www.google.com/recaptcha/intro/index.html',
48
+ 'google.com/recaptcha' );
49
+ }
50
+
51
+ public function get_sitekey() {
52
+ if ( empty( $this->sitekeys ) || ! is_array( $this->sitekeys ) ) {
53
+ return false;
54
+ }
55
+
56
+ $sitekeys = array_keys( $this->sitekeys );
57
+
58
+ return $sitekeys[0];
59
+ }
60
+
61
+ public function get_secret( $sitekey ) {
62
+ $sitekeys = (array) $this->sitekeys;
63
+
64
+ if ( isset( $sitekeys[$sitekey] ) ) {
65
+ return $sitekeys[$sitekey];
66
+ } else {
67
+ return false;
68
+ }
69
+ }
70
+
71
+ public function verify( $response_token ) {
72
+ $is_human = false;
73
+
74
+ if ( empty( $response_token ) ) {
75
+ return $is_human;
76
+ }
77
+
78
+ $url = self::VERIFY_URL;
79
+ $sitekey = $this->get_sitekey();
80
+ $secret = $this->get_secret( $sitekey );
81
+
82
+ $response = wp_safe_remote_post( $url, array(
83
+ 'body' => array(
84
+ 'secret' => $secret,
85
+ 'response' => $response_token,
86
+ 'remoteip' => $_SERVER['REMOTE_ADDR'] ) ) );
87
+
88
+ if ( 200 != wp_remote_retrieve_response_code( $response ) ) {
89
+ return $is_human;
90
+ }
91
+
92
+ $response = wp_remote_retrieve_body( $response );
93
+ $response = json_decode( $response, true );
94
+
95
+ $is_human = isset( $response['success'] ) && true == $response['success'];
96
+ return $is_human;
97
+ }
98
+
99
+ private function menu_page_url( $args = '' ) {
100
+ $args = wp_parse_args( $args, array() );
101
+
102
+ $url = menu_page_url( 'wpcf7-integration', false );
103
+ $url = add_query_arg( array( 'service' => 'recaptcha' ), $url );
104
+
105
+ if ( ! empty( $args) ) {
106
+ $url = add_query_arg( $args, $url );
107
+ }
108
+
109
+ return $url;
110
+ }
111
+
112
+ public function load( $action = '' ) {
113
+ if ( 'setup' == $action ) {
114
+ if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) {
115
+ check_admin_referer( 'wpcf7-recaptcha-setup' );
116
+
117
+ $sitekey = isset( $_POST['sitekey'] ) ? trim( $_POST['sitekey'] ) : '';
118
+ $secret = isset( $_POST['secret'] ) ? trim( $_POST['secret'] ) : '';
119
+
120
+ if ( $sitekey && $secret ) {
121
+ WPCF7::update_option( 'recaptcha', array( $sitekey => $secret ) );
122
+ $redirect_to = $this->menu_page_url( array(
123
+ 'message' => 'success' ) );
124
+ } elseif ( '' === $sitekey && '' === $secret ) {
125
+ WPCF7::update_option( 'recaptcha', null );
126
+ $redirect_to = $this->menu_page_url( array(
127
+ 'message' => 'success' ) );
128
+ } else {
129
+ $redirect_to = $this->menu_page_url( array(
130
+ 'action' => 'setup',
131
+ 'message' => 'invalid' ) );
132
+ }
133
+
134
+ wp_safe_redirect( $redirect_to );
135
+ exit();
136
+ }
137
+ }
138
+ }
139
+
140
+ public function admin_notice( $message = '' ) {
141
+ if ( 'invalid' == $message ) {
142
+ echo sprintf(
143
+ '<div class="error notice notice-error is-dismissible"><p><strong>%1$s</strong>: %2$s</p></div>',
144
+ esc_html( __( "ERROR", 'contact-form-7' ) ),
145
+ esc_html( __( "Invalid key values.", 'contact-form-7' ) ) );
146
+ }
147
+
148
+ if ( 'success' == $message ) {
149
+ echo sprintf( '<div class="updated notice notice-success is-dismissible"><p>%s</p></div>',
150
+ esc_html( __( 'Settings saved.', 'contact-form-7' ) ) );
151
+ }
152
+ }
153
+
154
+ public function display( $action = '' ) {
155
+ ?>
156
+ <p><?php echo esc_html( __( "reCAPTCHA is a free service to protect your website from spam and abuse.", 'contact-form-7' ) ); ?></p>
157
+
158
+ <?php
159
+ if ( 'setup' == $action ) {
160
+ $this->display_setup();
161
+ return;
162
+ }
163
+
164
+ if ( $this->is_active() ) {
165
+ $sitekey = $this->get_sitekey();
166
+ $secret = $this->get_secret( $sitekey );
167
+ ?>
168
+ <table class="form-table">
169
+ <tbody>
170
+ <tr>
171
+ <th scope="row"><?php echo esc_html( __( 'Site Key', 'contact-form-7' ) ); ?></th>
172
+ <td class="code"><?php echo esc_html( $sitekey ); ?></td>
173
+ </tr>
174
+ <tr>
175
+ <th scope="row"><?php echo esc_html( __( 'Secret Key', 'contact-form-7' ) ); ?></th>
176
+ <td class="code"><?php echo esc_html( wpcf7_mask_password( $secret ) ); ?></td>
177
+ </tr>
178
+ </tbody>
179
+ </table>
180
+
181
+ <p><a href="<?php echo esc_url( $this->menu_page_url( 'action=setup' ) ); ?>" class="button"><?php echo esc_html( __( "Reset Keys", 'contact-form-7' ) ); ?></a></p>
182
+
183
+ <?php
184
+ } else {
185
+ ?>
186
+ <p><?php echo esc_html( __( "To use reCAPTCHA, you need to install an API key pair.", 'contact-form-7' ) ); ?></p>
187
+
188
+ <p><a href="<?php echo esc_url( $this->menu_page_url( 'action=setup' ) ); ?>" class="button"><?php echo esc_html( __( "Configure Keys", 'contact-form-7' ) ); ?></a></p>
189
+
190
+ <p><?php echo sprintf( esc_html( __( "For more details, see %s.", 'contact-form-7' ) ), wpcf7_link( __( 'http://contactform7.com/recaptcha/', 'contact-form-7' ), __( 'reCAPTCHA', 'contact-form-7' ) ) ); ?></p>
191
+ <?php
192
+ }
193
+ }
194
+
195
+ public function display_setup() {
196
+ ?>
197
+ <form method="post" action="<?php echo esc_url( $this->menu_page_url( 'action=setup' ) ); ?>">
198
+ <?php wp_nonce_field( 'wpcf7-recaptcha-setup' ); ?>
199
+ <table class="form-table">
200
+ <tbody>
201
+ <tr>
202
+ <th scope="row"><label for="sitekey"><?php echo esc_html( __( 'Site Key', 'contact-form-7' ) ); ?></label></th>
203
+ <td><input type="text" aria-required="true" value="" id="sitekey" name="sitekey" class="regular-text code" /></td>
204
+ </tr>
205
+ <tr>
206
+ <th scope="row"><label for="secret"><?php echo esc_html( __( 'Secret Key', 'contact-form-7' ) ); ?></label></th>
207
+ <td><input type="text" aria-required="true" value="" id="secret" name="secret" class="regular-text code" /></td>
208
+ </tr>
209
+ </tbody>
210
+ </table>
211
+
212
+ <p class="submit"><input type="submit" class="button button-primary" value="<?php echo esc_attr( __( 'Save', 'contact-form-7' ) ); ?>" name="submit" /></p>
213
+ </form>
214
+ <?php
215
+ }
216
+ }
217
+
218
+ add_action( 'wpcf7_init', 'wpcf7_recaptcha_register_service' );
219
+
220
+ function wpcf7_recaptcha_register_service() {
221
+ $integration = WPCF7_Integration::get_instance();
222
+
223
+ $categories = array(
224
+ 'captcha' => __( 'CAPTCHA', 'contact-form-7' ) );
225
+
226
+ foreach ( $categories as $name => $category ) {
227
+ $integration->add_category( $name, $category );
228
+ }
229
+
230
+ $services = array(
231
+ 'recaptcha' => WPCF7_RECAPTCHA::get_instance() );
232
+
233
+ foreach ( $services as $name => $service ) {
234
+ $integration->add_service( $name, $service );
235
+ }
236
+ }
237
+
238
+ add_action( 'wpcf7_enqueue_scripts', 'wpcf7_recaptcha_enqueue_scripts' );
239
+
240
+ function wpcf7_recaptcha_enqueue_scripts() {
241
+ $url = 'https://www.google.com/recaptcha/api.js';
242
+ $url = add_query_arg( array(
243
+ 'onload' => 'recaptchaCallback',
244
+ 'render' => 'explicit' ), $url );
245
+
246
+ wp_register_script( 'google-recaptcha', $url, array(), '2.0', true );
247
+ }
248
+
249
+ add_action( 'wp_footer', 'wpcf7_recaptcha_callback_script' );
250
+
251
+ function wpcf7_recaptcha_callback_script() {
252
+ if ( ! wp_script_is( 'google-recaptcha', 'enqueued' ) ) {
253
+ return;
254
+ }
255
+
256
+ ?>
257
+ <script type="text/javascript">
258
+ var recaptchaCallback = function() {
259
+ var forms = document.getElementsByTagName('form');
260
+ var pattern = /(^|\s)g-recaptcha(\s|$)/;
261
+
262
+ for (var i = 0; i < forms.length; i++) {
263
+ var divs = forms[i].getElementsByTagName('div');
264
+
265
+ for (var j = 0; j < divs.length; j++) {
266
+ var sitekey = divs[j].getAttribute('data-sitekey');
267
+
268
+ if (divs[j].className && divs[j].className.match(pattern) && sitekey) {
269
+ grecaptcha.render(divs[j], {
270
+ 'sitekey': sitekey,
271
+ 'theme': divs[j].getAttribute('data-theme'),
272
+ 'type': divs[j].getAttribute('data-type'),
273
+ 'size': divs[j].getAttribute('data-size'),
274
+ 'tabindex': divs[j].getAttribute('data-tabindex'),
275
+ 'callback': divs[j].getAttribute('data-callback'),
276
+ 'expired-callback': divs[j].getAttribute('data-expired-callback')
277
+ });
278
+
279
+ break;
280
+ }
281
+ }
282
+ }
283
+ }
284
+ </script>
285
+ <?php
286
+ }
287
+
288
+ add_action( 'wpcf7_init', 'wpcf7_recaptcha_add_shortcode_recaptcha' );
289
+
290
+ function wpcf7_recaptcha_add_shortcode_recaptcha() {
291
+ $recaptcha = WPCF7_RECAPTCHA::get_instance();
292
+
293
+ if ( $recaptcha->is_active() ) {
294
+ wpcf7_add_shortcode( 'recaptcha', 'wpcf7_recaptcha_shortcode_handler' );
295
+ }
296
+ }
297
+
298
+ function wpcf7_recaptcha_shortcode_handler( $tag ) {
299
+ wp_enqueue_script( 'google-recaptcha' );
300
+
301
+ $tag = new WPCF7_Shortcode( $tag );
302
+
303
+ $atts = array();
304
+
305
+ $recaptcha = WPCF7_RECAPTCHA::get_instance();
306
+ $atts['data-sitekey'] = $recaptcha->get_sitekey();
307
+ $atts['data-theme'] = $tag->get_option( 'theme', '(dark|light)', true );
308
+ $atts['data-type'] = $tag->get_option( 'type', '(audio|image)', true );
309
+ $atts['data-size'] = $tag->get_option( 'size', '(compact|normal)', true );
310
+ $atts['data-tabindex'] = $tag->get_option( 'tabindex', 'int', true );
311
+ $atts['data-callback'] = $tag->get_option( 'callback', '', true );
312
+ $atts['data-expired-callback'] =
313
+ $tag->get_option( 'expired-callback', '', true );
314
+
315
+ $atts['class'] = $tag->get_class_option(
316
+ wpcf7_form_controls_class( $tag->type, 'g-recaptcha' ) );
317
+ $atts['id'] = $tag->get_id_option();
318
+
319
+ $html = sprintf( '<div %1$s></div>', wpcf7_format_atts( $atts ) );
320
+ $html .= wpcf7_recaptcha_noscript(
321
+ array( 'sitekey' => $atts['data-sitekey'] ) );
322
+
323
+ return $html;
324
+ }
325
+
326
+ function wpcf7_recaptcha_noscript( $args = '' ) {
327
+ $args = wp_parse_args( $args, array(
328
+ 'sitekey' => '' ) );
329
+
330
+ if ( empty( $args['sitekey'] ) ) {
331
+ return;
332
+ }
333
+
334
+ $url = add_query_arg( 'k', $args['sitekey'],
335
+ 'https://www.google.com/recaptcha/api/fallback' );
336
+
337
+ ob_start();
338
+ ?>
339
+
340
+ <noscript>
341
+ <div style="width: 302px; height: 422px;">
342
+ <div style="width: 302px; height: 422px; position: relative;">
343
+ <div style="width: 302px; height: 422px; position: absolute;">
344
+ <iframe src="<?php echo esc_url( $url ); ?>" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;">
345
+ </iframe>
346
+ </div>
347
+ <div style="width: 300px; height: 60px; border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
348
+ <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none;">
349
+ </textarea>
350
+ </div>
351
+ </div>
352
+ </div>
353
+ </noscript>
354
+ <?php
355
+ return ob_get_clean();
356
+ }
357
+
358
+ add_filter( 'wpcf7_spam', 'wpcf7_recaptcha_check_with_google', 9 );
359
+
360
+ function wpcf7_recaptcha_check_with_google( $spam ) {
361
+ if ( $spam ) {
362
+ return $spam;
363
+ }
364
+
365
+ $contact_form = wpcf7_get_current_contact_form();
366
+
367
+ if ( ! $contact_form ) {
368
+ return $spam;
369
+ }
370
+
371
+ $tags = $contact_form->form_scan_shortcode( array( 'type' => 'recaptcha' ) );
372
+
373
+ if ( empty( $tags ) ) {
374
+ return $spam;
375
+ }
376
+
377
+ $recaptcha = WPCF7_RECAPTCHA::get_instance();
378
+
379
+ if ( ! $recaptcha->is_active() ) {
380
+ return $spam;
381
+ }
382
+
383
+ $response_token = isset( $_POST['g-recaptcha-response'] )
384
+ ? $_POST['g-recaptcha-response'] : '';
385
+ $spam = ! $recaptcha->verify( $response_token );
386
+
387
+ return $spam;
388
+ }
389
+
390
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_recaptcha', 45 );
391
+
392
+ function wpcf7_add_tag_generator_recaptcha() {
393
+ $tag_generator = WPCF7_TagGenerator::get_instance();
394
+ $tag_generator->add( 'recaptcha', __( 'reCAPTCHA', 'contact-form-7' ),
395
+ 'wpcf7_tag_generator_recaptcha', array( 'nameless' => 1 ) );
396
+ }
397
+
398
+ function wpcf7_tag_generator_recaptcha( $contact_form, $args = '' ) {
399
+ $args = wp_parse_args( $args, array() );
400
+
401
+ $recaptcha = WPCF7_RECAPTCHA::get_instance();
402
+
403
+ if ( ! $recaptcha->is_active() ) {
404
+ ?>
405
+ <div class="control-box">
406
+ <fieldset>
407
+ <legend><?php echo sprintf( esc_html( __( "To use reCAPTCHA, first you need to install an API key pair. For more details, see %s.", 'contact-form-7' ) ), wpcf7_link( __( 'http://contactform7.com/recaptcha/', 'contact-form-7' ), __( 'reCAPTCHA', 'contact-form-7' ) ) ); ?></legend>
408
+ </fieldset>
409
+ </div>
410
+ <?php
411
+
412
+ return;
413
+ }
414
+
415
+ $description = __( "Generate a form-tag for a reCAPTCHA widget. For more details, see %s.", 'contact-form-7' );
416
+
417
+ $desc_link = wpcf7_link( __( 'http://contactform7.com/recaptcha/', 'contact-form-7' ), __( 'reCAPTCHA', 'contact-form-7' ) );
418
+
419
+ ?>
420
+ <div class="control-box">
421
+ <fieldset>
422
+ <legend><?php echo sprintf( esc_html( $description ), $desc_link ); ?></legend>
423
+
424
+ <table class="form-table">
425
+ <tbody>
426
+ <tr>
427
+ <th scope="row"><?php echo esc_html( __( 'Theme', 'contact-form-7' ) ); ?></th>
428
+ <td>
429
+ <fieldset>
430
+ <legend class="screen-reader-text"><?php echo esc_html( __( 'Theme', 'contact-form-7' ) ); ?></legend>
431
+ <label for="<?php echo esc_attr( $args['content'] . '-theme-light' ); ?>"><input type="radio" name="theme" class="option default" id="<?php echo esc_attr( $args['content'] . '-theme-light' ); ?>" value="light" checked="checked" /> <?php echo esc_html( __( 'Light', 'contact-form-7' ) ); ?></label>
432
+ <br />
433
+ <label for="<?php echo esc_attr( $args['content'] . '-theme-dark' ); ?>"><input type="radio" name="theme" class="option" id="<?php echo esc_attr( $args['content'] . '-theme-dark' ); ?>" value="dark" /> <?php echo esc_html( __( 'Dark', 'contact-form-7' ) ); ?></label>
434
+ </fieldset>
435
+ </td>
436
+ </tr>
437
+
438
+ <tr>
439
+ <th scope="row"><?php echo esc_html( __( 'Size', 'contact-form-7' ) ); ?></th>
440
+ <td>
441
+ <fieldset>
442
+ <legend class="screen-reader-text"><?php echo esc_html( __( 'Size', 'contact-form-7' ) ); ?></legend>
443
+ <label for="<?php echo esc_attr( $args['content'] . '-size-normal' ); ?>"><input type="radio" name="size" class="option default" id="<?php echo esc_attr( $args['content'] . '-size-normal' ); ?>" value="normal" checked="checked" /> <?php echo esc_html( __( 'Normal', 'contact-form-7' ) ); ?></label>
444
+ <br />
445
+ <label for="<?php echo esc_attr( $args['content'] . '-size-compact' ); ?>"><input type="radio" name="size" class="option" id="<?php echo esc_attr( $args['content'] . '-size-compact' ); ?>" value="compact" /> <?php echo esc_html( __( 'Compact', 'contact-form-7' ) ); ?></label>
446
+ </fieldset>
447
+ </td>
448
+ </tr>
449
+
450
+ <tr>
451
+ <th scope="row"><label for="<?php echo esc_attr( $args['content'] . '-id' ); ?>"><?php echo esc_html( __( 'Id attribute', 'contact-form-7' ) ); ?></label></th>
452
+ <td><input type="text" name="id" class="idvalue oneline option" id="<?php echo esc_attr( $args['content'] . '-id' ); ?>" /></td>
453
+ </tr>
454
+
455
+ <tr>
456
+ <th scope="row"><label for="<?php echo esc_attr( $args['content'] . '-class' ); ?>"><?php echo esc_html( __( 'Class attribute', 'contact-form-7' ) ); ?></label></th>
457
+ <td><input type="text" name="class" class="classvalue oneline option" id="<?php echo esc_attr( $args['content'] . '-class' ); ?>" /></td>
458
+ </tr>
459
+
460
+ </tbody>
461
+ </table>
462
+ </fieldset>
463
+ </div>
464
+
465
+ <div class="insert-box">
466
+ <input type="text" name="recaptcha" class="tag code" readonly="readonly" onfocus="this.select()" />
467
+
468
+ <div class="submitbox">
469
+ <input type="button" class="button button-primary insert-tag" value="<?php echo esc_attr( __( 'Insert Tag', 'contact-form-7' ) ); ?>" />
470
+ </div>
471
+ </div>
472
+ <?php
473
+ }
modules/select.php CHANGED
@@ -152,9 +152,7 @@ function wpcf7_select_validation_filter( $result, $tag ) {
152
 
153
  /* Tag generator */
154
 
155
- if ( is_admin() ) {
156
- add_action( 'admin_init', 'wpcf7_add_tag_generator_menu', 25 );
157
- }
158
 
159
  function wpcf7_add_tag_generator_menu() {
160
  $tag_generator = WPCF7_TagGenerator::get_instance();
152
 
153
  /* Tag generator */
154
 
155
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_menu', 25 );
 
 
156
 
157
  function wpcf7_add_tag_generator_menu() {
158
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/submit.php CHANGED
@@ -40,9 +40,7 @@ function wpcf7_submit_shortcode_handler( $tag ) {
40
 
41
  /* Tag generator */
42
 
43
- if ( is_admin() ) {
44
- add_action( 'admin_init', 'wpcf7_add_tag_generator_submit', 55 );
45
- }
46
 
47
  function wpcf7_add_tag_generator_submit() {
48
  $tag_generator = WPCF7_TagGenerator::get_instance();
40
 
41
  /* Tag generator */
42
 
43
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_submit', 55 );
 
 
44
 
45
  function wpcf7_add_tag_generator_submit() {
46
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/text.php CHANGED
@@ -184,9 +184,7 @@ function wpcf7_text_messages( $messages ) {
184
 
185
  /* Tag generator */
186
 
187
- if ( is_admin() ) {
188
- add_action( 'admin_init', 'wpcf7_add_tag_generator_text', 15 );
189
- }
190
 
191
  function wpcf7_add_tag_generator_text() {
192
  $tag_generator = WPCF7_TagGenerator::get_instance();
184
 
185
  /* Tag generator */
186
 
187
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_text', 15 );
 
 
188
 
189
  function wpcf7_add_tag_generator_text() {
190
  $tag_generator = WPCF7_TagGenerator::get_instance();
modules/textarea.php CHANGED
@@ -118,9 +118,7 @@ function wpcf7_textarea_validation_filter( $result, $tag ) {
118
 
119
  /* Tag generator */
120
 
121
- if ( is_admin() ) {
122
- add_action( 'admin_init', 'wpcf7_add_tag_generator_textarea', 20 );
123
- }
124
 
125
  function wpcf7_add_tag_generator_textarea() {
126
  $tag_generator = WPCF7_TagGenerator::get_instance();
118
 
119
  /* Tag generator */
120
 
121
+ add_action( 'wpcf7_admin_init', 'wpcf7_add_tag_generator_textarea', 20 );
 
 
122
 
123
  function wpcf7_add_tag_generator_textarea() {
124
  $tag_generator = WPCF7_TagGenerator::get_instance();
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: takayukister
3
  Donate link: http://contactform7.com/donate/
4
  Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
- Requires at least: 4.1
6
- Tested up to: 4.3
7
- Stable tag: 4.2.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -27,7 +27,6 @@ It is hard to continue development and support for this free plugin without cont
27
  The following are other recommended plugins by the author of Contact Form 7.
28
 
29
  * [Flamingo](http://wordpress.org/extend/plugins/flamingo/) - With Flamingo, you can save submitted messages via contact forms in the database.
30
- * [Really Simple CAPTCHA](http://wordpress.org/extend/plugins/really-simple-captcha/) - Really Simple CAPTCHA is a simple CAPTCHA module which works well with Contact Form 7.
31
  * [Bogo](http://wordpress.org/extend/plugins/bogo/) - Bogo is a straight-forward multilingual plugin that doesn't cause headaches.
32
 
33
  = Translators =
@@ -46,9 +45,9 @@ The following are other recommended plugins by the author of Contact Form 7.
46
  * Central Kurdish (ckb) - Mahr Hassan
47
  * Chinese (China; zh_CN) - Soz, Keefe Dunn, Stella Hu
48
  * Chinese (Taiwan; zh_TW) - James Wu
49
- * Croatian (hr) - tolingo Translation Services, Marko Puskaric
50
  * Czech (cs_CZ) - Korry, Radovan Fiser, Tomas Vesely, Pavel Bilek, Vladislav Šenk
51
- * Danish (da_DK) - Jens Griebel, Georg S. Adamsen
52
  * Dutch (nl_NL) - Chris Devriese, Martin Hein, Rene, TenSheep, Tim de Hoog, Henk Buma
53
  * Esperanto (eo_EO) - Arkadiusz Zychewicz
54
  * Estonian (et) - Peeter Rahuvarm, Egon Elbre, Tanel Jüris
@@ -76,7 +75,7 @@ The following are other recommended plugins by the author of Contact Form 7.
76
  * Malayalam (ml_IN) - RAHUL.S.A
77
  * Maltese (mt_MT) - Ajoft Technologies
78
  * Norwegian (nb_NO) - Kjetil M. Bergem, aanvik.net, Peter Holme
79
- * Persian (Farsi; fa_IR) - Mohammad Musavi, Mohsen Firoozmandan, Ghaem Omidi
80
  * Polish (pl_PL) - Zbigniew Czernik, Daniel Fruzynski, RafalDesign, Bartosz Arendt
81
  * Portuguese (Brazil; pt_BR) - Leonardo Pinheiro, Henrique Vianna, Caciano Gabriel Batista, Gervásio Antônio, Gilvanilson Santos
82
  * Portuguese (Portugal; pt_PT) - Hugo Baeta, Pedro Nave, Pedro Mendonça
@@ -125,6 +124,12 @@ Do you have questions or issues with Contact Form 7? Use these support channels
125
 
126
  For more information, see [Releases](http://contactform7.com/category/releases/).
127
 
 
 
 
 
 
 
128
  = 4.2.2 =
129
 
130
  * Fixed: Possible empty name attribute of form element (invalid HTML5).
2
  Contributors: takayukister
3
  Donate link: http://contactform7.com/donate/
4
  Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
+ Requires at least: 4.2
6
+ Tested up to: 4.3.1
7
+ Stable tag: 4.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
27
  The following are other recommended plugins by the author of Contact Form 7.
28
 
29
  * [Flamingo](http://wordpress.org/extend/plugins/flamingo/) - With Flamingo, you can save submitted messages via contact forms in the database.
 
30
  * [Bogo](http://wordpress.org/extend/plugins/bogo/) - Bogo is a straight-forward multilingual plugin that doesn't cause headaches.
31
 
32
  = Translators =
45
  * Central Kurdish (ckb) - Mahr Hassan
46
  * Chinese (China; zh_CN) - Soz, Keefe Dunn, Stella Hu
47
  * Chinese (Taiwan; zh_TW) - James Wu
48
+ * Croatian (hr) - tolingo Translation Services, Marko Puskaric, Sanjin Barac
49
  * Czech (cs_CZ) - Korry, Radovan Fiser, Tomas Vesely, Pavel Bilek, Vladislav Šenk
50
+ * Danish (da_DK) - Jens Griebel, Georg S. Adamsen, Thomas Blomberg Hansen
51
  * Dutch (nl_NL) - Chris Devriese, Martin Hein, Rene, TenSheep, Tim de Hoog, Henk Buma
52
  * Esperanto (eo_EO) - Arkadiusz Zychewicz
53
  * Estonian (et) - Peeter Rahuvarm, Egon Elbre, Tanel Jüris
75
  * Malayalam (ml_IN) - RAHUL.S.A
76
  * Maltese (mt_MT) - Ajoft Technologies
77
  * Norwegian (nb_NO) - Kjetil M. Bergem, aanvik.net, Peter Holme
78
+ * Persian (Farsi; fa_IR) - Mohammad Musavi, Mohsen Firoozmandan, Ghaem Omidi, Ehsan Np
79
  * Polish (pl_PL) - Zbigniew Czernik, Daniel Fruzynski, RafalDesign, Bartosz Arendt
80
  * Portuguese (Brazil; pt_BR) - Leonardo Pinheiro, Henrique Vianna, Caciano Gabriel Batista, Gervásio Antônio, Gilvanilson Santos
81
  * Portuguese (Portugal; pt_PT) - Hugo Baeta, Pedro Nave, Pedro Mendonça
124
 
125
  For more information, see [Releases](http://contactform7.com/category/releases/).
126
 
127
+ = 4.3 =
128
+
129
+ * reCAPTCHA module has been introduced.
130
+ * Translations for Croatian, Danish, Persian, and Swedish have been updated.
131
+ * WordPress 4.2 or higher is required.
132
+
133
  = 4.2.2 =
134
 
135
  * Fixed: Possible empty name attribute of form element (invalid HTML5).
settings.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  require_once WPCF7_PLUGIN_DIR . '/includes/functions.php';
 
4
  require_once WPCF7_PLUGIN_DIR . '/includes/formatting.php';
5
  require_once WPCF7_PLUGIN_DIR . '/includes/pipe.php';
6
  require_once WPCF7_PLUGIN_DIR . '/includes/shortcodes.php';
@@ -18,11 +19,70 @@ if ( is_admin() ) {
18
  require_once WPCF7_PLUGIN_DIR . '/includes/controller.php';
19
  }
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  add_action( 'plugins_loaded', 'wpcf7' );
22
 
23
  function wpcf7() {
24
  wpcf7_load_textdomain();
25
- wpcf7_load_modules();
26
 
27
  /* Shortcodes */
28
  add_shortcode( 'contact-form-7', 'wpcf7_contact_form_tag_func' );
@@ -41,22 +101,16 @@ function wpcf7_init() {
41
  add_action( 'admin_init', 'wpcf7_upgrade' );
42
 
43
  function wpcf7_upgrade() {
44
- $opt = get_option( 'wpcf7' );
45
-
46
- if ( ! is_array( $opt ) )
47
- $opt = array();
48
-
49
- $old_ver = isset( $opt['version'] ) ? (string) $opt['version'] : '0';
50
  $new_ver = WPCF7_VERSION;
51
 
52
- if ( $old_ver == $new_ver )
53
  return;
 
54
 
55
  do_action( 'wpcf7_upgrade', $new_ver, $old_ver );
56
 
57
- $opt['version'] = $new_ver;
58
-
59
- update_option( 'wpcf7', $opt );
60
  }
61
 
62
  /* Install and default settings */
1
  <?php
2
 
3
  require_once WPCF7_PLUGIN_DIR . '/includes/functions.php';
4
+ require_once WPCF7_PLUGIN_DIR . '/includes/l10n.php';
5
  require_once WPCF7_PLUGIN_DIR . '/includes/formatting.php';
6
  require_once WPCF7_PLUGIN_DIR . '/includes/pipe.php';
7
  require_once WPCF7_PLUGIN_DIR . '/includes/shortcodes.php';
19
  require_once WPCF7_PLUGIN_DIR . '/includes/controller.php';
20
  }
21
 
22
+ class WPCF7 {
23
+
24
+ public static function load_modules() {
25
+ self::load_module( 'acceptance' );
26
+ self::load_module( 'akismet' );
27
+ self::load_module( 'checkbox' );
28
+ self::load_module( 'count' );
29
+ self::load_module( 'date' );
30
+ self::load_module( 'file' );
31
+ self::load_module( 'flamingo' );
32
+ self::load_module( 'jetpack' );
33
+ self::load_module( 'listo' );
34
+ self::load_module( 'number' );
35
+ self::load_module( 'quiz' );
36
+ self::load_module( 'really-simple-captcha' );
37
+ self::load_module( 'recaptcha' );
38
+ self::load_module( 'response' );
39
+ self::load_module( 'select' );
40
+ self::load_module( 'submit' );
41
+ self::load_module( 'text' );
42
+ self::load_module( 'textarea' );
43
+ }
44
+
45
+ protected static function load_module( $mod ) {
46
+ $dir = WPCF7_PLUGIN_MODULES_DIR;
47
+
48
+ if ( empty( $dir ) || ! is_dir( $dir ) ) {
49
+ return false;
50
+ }
51
+
52
+ $file = path_join( $dir, $mod . '.php' );
53
+
54
+ if ( file_exists( $file ) ) {
55
+ include_once $file;
56
+ }
57
+ }
58
+
59
+ public static function get_option( $name, $default = false ) {
60
+ $option = get_option( 'wpcf7' );
61
+
62
+ if ( false === $option ) {
63
+ return $default;
64
+ }
65
+
66
+ if ( isset( $option[$name] ) ) {
67
+ return $option[$name];
68
+ } else {
69
+ return $default;
70
+ }
71
+ }
72
+
73
+ public static function update_option( $name, $value ) {
74
+ $option = get_option( 'wpcf7' );
75
+ $option = ( false === $option ) ? array() : (array) $option;
76
+ $option = array_merge( $option, array( $name => $value ) );
77
+ update_option( 'wpcf7', $option );
78
+ }
79
+ }
80
+
81
  add_action( 'plugins_loaded', 'wpcf7' );
82
 
83
  function wpcf7() {
84
  wpcf7_load_textdomain();
85
+ WPCF7::load_modules();
86
 
87
  /* Shortcodes */
88
  add_shortcode( 'contact-form-7', 'wpcf7_contact_form_tag_func' );
101
  add_action( 'admin_init', 'wpcf7_upgrade' );
102
 
103
  function wpcf7_upgrade() {
104
+ $old_ver = WPCF7::get_option( 'version', '0' );
 
 
 
 
 
105
  $new_ver = WPCF7_VERSION;
106
 
107
+ if ( $old_ver == $new_ver ) {
108
  return;
109
+ }
110
 
111
  do_action( 'wpcf7_upgrade', $new_ver, $old_ver );
112
 
113
+ WPCF7::update_option( 'version', $new_ver );
 
 
114
  }
115
 
116
  /* Install and default settings */
wp-contact-form-7.php CHANGED
@@ -7,29 +7,12 @@ Author: Takayuki Miyoshi
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
- Version: 4.2.2
11
  */
12
 
13
- /* Copyright 2007-2015 Takayuki Miyoshi (email: takayukister at gmail.com)
14
 
15
- This program is free software; you can redistribute it and/or modify
16
- it under the terms of the GNU General Public License as published by
17
- the Free Software Foundation; either version 2 of the License, or
18
- (at your option) any later version.
19
-
20
- This program is distributed in the hope that it will be useful,
21
- but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
- GNU General Public License for more details.
24
-
25
- You should have received a copy of the GNU General Public License
26
- along with this program; if not, write to the Free Software
27
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
- */
29
-
30
- define( 'WPCF7_VERSION', '4.2.2' );
31
-
32
- define( 'WPCF7_REQUIRED_WP_VERSION', '4.1' );
33
 
34
  define( 'WPCF7_PLUGIN', __FILE__ );
35
 
@@ -69,6 +52,10 @@ if ( ! defined( 'WPCF7_VERIFY_NONCE' ) ) {
69
  define( 'WPCF7_VERIFY_NONCE', true );
70
  }
71
 
 
 
 
 
72
  // Deprecated, not used in the plugin core. Use wpcf7_plugin_url() instead.
73
  define( 'WPCF7_PLUGIN_URL', untrailingslashit( plugins_url( '', WPCF7_PLUGIN ) ) );
74
 
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
+ Version: 4.3
11
  */
12
 
13
+ define( 'WPCF7_VERSION', '4.3' );
14
 
15
+ define( 'WPCF7_REQUIRED_WP_VERSION', '4.2' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  define( 'WPCF7_PLUGIN', __FILE__ );
18
 
52
  define( 'WPCF7_VERIFY_NONCE', true );
53
  }
54
 
55
+ if ( ! defined( 'WPCF7_USE_REALLY_SIMPLE_CAPTCHA' ) ) {
56
+ define( 'WPCF7_USE_REALLY_SIMPLE_CAPTCHA', false );
57
+ }
58
+
59
  // Deprecated, not used in the plugin core. Use wpcf7_plugin_url() instead.
60
  define( 'WPCF7_PLUGIN_URL', untrailingslashit( plugins_url( '', WPCF7_PLUGIN ) ) );
61