Contact Form 7 - Version 3.0.1

Version Description

  • Removed unused icl.php file from modules folder.
  • Replaced deprecated get_bloginfo('text_direction') with is_rtl().
  • Made Acceptable file types field in the File upload tag generator being able to accept comma (,) and pipe (|) as separating character in addition to space.
  • Added sanitization for $_POST['_wpcf7_unit_tag'] value for avoiding possible abuse.
  • Updated jquery.form.js to 2.87.
  • Translations for Tagalog, Belarusian, and Maltese have been created.
  • Translations for Italian, German, Japanese, Russian, Latvian, and Afrikaans have been updated.
Download this release

Release Info

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

Code changes from version 3.0 to 3.0.1

admin/admin.php CHANGED
@@ -131,7 +131,7 @@ function wpcf7_admin_enqueue_styles() {
131
  wp_enqueue_style( 'contact-form-7-admin', wpcf7_plugin_url( 'admin/styles.css' ),
132
  array(), WPCF7_VERSION, 'all' );
133
 
134
- if ( 'rtl' == get_bloginfo( 'text_direction' ) ) {
135
  wp_enqueue_style( 'contact-form-7-admin-rtl',
136
  wpcf7_plugin_url( 'admin/styles-rtl.css' ), array(), WPCF7_VERSION, 'all' );
137
  }
131
  wp_enqueue_style( 'contact-form-7-admin', wpcf7_plugin_url( 'admin/styles.css' ),
132
  array(), WPCF7_VERSION, 'all' );
133
 
134
+ if ( is_rtl() ) {
135
  wp_enqueue_style( 'contact-form-7-admin-rtl',
136
  wpcf7_plugin_url( 'admin/styles-rtl.css' ), array(), WPCF7_VERSION, 'all' );
137
  }
admin/taggenerator.js CHANGED
@@ -162,7 +162,7 @@
162
 
163
  pane.find(':input.filetype').each(function(i) {
164
  var val = $(this).val();
165
- val = val.replace(/[^0-9a-zA-Z.\s]/g, '');
166
  $(this).val(val);
167
  });
168
 
@@ -212,7 +212,7 @@
212
  return;
213
 
214
  if ($(this).hasClass('filetype'))
215
- val = val.split(' ').join('|');
216
 
217
  if ($(this).hasClass('color'))
218
  val = '#' + val;
162
 
163
  pane.find(':input.filetype').each(function(i) {
164
  var val = $(this).val();
165
+ val = val.replace(/[^0-9a-zA-Z.,|\s]/g, '');
166
  $(this).val(val);
167
  });
168
 
212
  return;
213
 
214
  if ($(this).hasClass('filetype'))
215
+ val = val.split(/[,|\s]+/).join('|');
216
 
217
  if ($(this).hasClass('color'))
218
  val = '#' + val;
includes/controller.php CHANGED
@@ -21,7 +21,7 @@ function wpcf7_ajax_onload() {
21
 
22
  $echo = json_encode( $items );
23
 
24
- if ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
25
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
26
  echo $echo;
27
  }
@@ -41,7 +41,7 @@ function wpcf7_ajax_json_echo() {
41
 
42
  if ( isset( $_POST['_wpcf7'] ) ) {
43
  $id = (int) $_POST['_wpcf7'];
44
- $unit_tag = $_POST['_wpcf7_unit_tag'];
45
 
46
  if ( $wpcf7_contact_form = wpcf7_contact_form( $id ) ) {
47
 
@@ -84,7 +84,7 @@ function wpcf7_ajax_json_echo() {
84
 
85
  $echo = json_encode( $items );
86
 
87
- if ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
88
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
89
  echo $echo;
90
  } else {
@@ -95,6 +95,13 @@ function wpcf7_ajax_json_echo() {
95
  exit();
96
  }
97
 
 
 
 
 
 
 
 
98
  add_action( 'init', 'wpcf7_submit_nonajax', 11 );
99
 
100
  function wpcf7_submit_nonajax() {
@@ -312,7 +319,7 @@ function wpcf7_enqueue_styles() {
312
  wp_enqueue_style( 'contact-form-7', wpcf7_plugin_url( 'styles.css' ),
313
  array(), WPCF7_VERSION, 'all' );
314
 
315
- if ( 'rtl' == get_bloginfo( 'text_direction' ) ) {
316
  wp_enqueue_style( 'contact-form-7-rtl', wpcf7_plugin_url( 'styles-rtl.css' ),
317
  array(), WPCF7_VERSION, 'all' );
318
  }
21
 
22
  $echo = json_encode( $items );
23
 
24
+ if ( wpcf7_is_xhr() ) {
25
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
26
  echo $echo;
27
  }
41
 
42
  if ( isset( $_POST['_wpcf7'] ) ) {
43
  $id = (int) $_POST['_wpcf7'];
44
+ $unit_tag = wpcf7_sanitize_unit_tag( $_POST['_wpcf7_unit_tag'] );
45
 
46
  if ( $wpcf7_contact_form = wpcf7_contact_form( $id ) ) {
47
 
84
 
85
  $echo = json_encode( $items );
86
 
87
+ if ( wpcf7_is_xhr() ) {
88
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
89
  echo $echo;
90
  } else {
95
  exit();
96
  }
97
 
98
+ function wpcf7_is_xhr() {
99
+ if ( ! isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) )
100
+ return false;
101
+
102
+ return $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
103
+ }
104
+
105
  add_action( 'init', 'wpcf7_submit_nonajax', 11 );
106
 
107
  function wpcf7_submit_nonajax() {
319
  wp_enqueue_style( 'contact-form-7', wpcf7_plugin_url( 'styles.css' ),
320
  array(), WPCF7_VERSION, 'all' );
321
 
322
+ if ( is_rtl() ) {
323
  wp_enqueue_style( 'contact-form-7-rtl', wpcf7_plugin_url( 'styles-rtl.css' ),
324
  array(), WPCF7_VERSION, 'all' );
325
  }
includes/formatting.php CHANGED
@@ -85,4 +85,9 @@ function wpcf7_is_name( $string ) {
85
  return preg_match( '/^[A-Za-z][-A-Za-z0-9_:.]*$/', $string );
86
  }
87
 
 
 
 
 
 
88
  ?>
85
  return preg_match( '/^[A-Za-z][-A-Za-z0-9_:.]*$/', $string );
86
  }
87
 
88
+ function wpcf7_sanitize_unit_tag( $tag ) {
89
+ $tag = preg_replace( '/[^A-Za-z0-9_-]/', '', $tag );
90
+ return $tag;
91
+ }
92
+
93
  ?>
includes/functions.php CHANGED
@@ -18,17 +18,17 @@ function wpcf7_messages() {
18
  ),
19
 
20
  'accept_terms' => array(
21
- 'description' => __( "There is a field of term that sender is needed to accept", 'wpcf7' ),
22
  'default' => __( 'Please accept the terms to proceed.', 'wpcf7' )
23
  ),
24
 
25
  'invalid_email' => array(
26
- 'description' => __( "Email address that sender entered is invalid", 'wpcf7' ),
27
  'default' => __( 'Email address seems invalid.', 'wpcf7' )
28
  ),
29
 
30
  'invalid_required' => array(
31
- 'description' => __( "There is a field that sender is needed to fill in", 'wpcf7' ),
32
  'default' => __( 'Please fill the required field.', 'wpcf7' )
33
  )
34
  );
@@ -167,6 +167,7 @@ function wpcf7_l10n() {
167
  'ar' => __( 'Arabic', 'wpcf7' ),
168
  'hy_AM' => __( 'Armenian', 'wpcf7' ),
169
  'bn_BD' => __( 'Bangla', 'wpcf7' ),
 
170
  'bs' => __( 'Bosnian', 'wpcf7' ),
171
  'pt_BR' => __( 'Brazilian Portuguese', 'wpcf7' ),
172
  'bg_BG' => __( 'Bulgarian', 'wpcf7' ),
@@ -197,6 +198,7 @@ function wpcf7_l10n() {
197
  'mk_MK' => __( 'Macedonian', 'wpcf7' ),
198
  'ms_MY' => __( 'Malay', 'wpcf7' ),
199
  'ml_IN' => __( 'Malayalam', 'wpcf7' ),
 
200
  'nb_NO' => __( 'Norwegian', 'wpcf7' ),
201
  'fa_IR' => __( 'Persian', 'wpcf7' ),
202
  'pl_PL' => __( 'Polish', 'wpcf7' ),
@@ -211,6 +213,7 @@ function wpcf7_l10n() {
211
  'sv_SE' => __( 'Swedish', 'wpcf7' ),
212
  'ta' => __( 'Tamil', 'wpcf7' ),
213
  'th' => __( 'Thai', 'wpcf7' ),
 
214
  'tr_TR' => __( 'Turkish', 'wpcf7' ),
215
  'uk' => __( 'Ukrainian', 'wpcf7' ),
216
  'vi' => __( 'Vietnamese', 'wpcf7' )
18
  ),
19
 
20
  'accept_terms' => array(
21
+ 'description' => __( "There are terms that the sender must accept", 'wpcf7' ),
22
  'default' => __( 'Please accept the terms to proceed.', 'wpcf7' )
23
  ),
24
 
25
  'invalid_email' => array(
26
+ 'description' => __( "Email address that the sender entered is invalid", 'wpcf7' ),
27
  'default' => __( 'Email address seems invalid.', 'wpcf7' )
28
  ),
29
 
30
  'invalid_required' => array(
31
+ 'description' => __( "There is a field that the sender must fill in", 'wpcf7' ),
32
  'default' => __( 'Please fill the required field.', 'wpcf7' )
33
  )
34
  );
167
  'ar' => __( 'Arabic', 'wpcf7' ),
168
  'hy_AM' => __( 'Armenian', 'wpcf7' ),
169
  'bn_BD' => __( 'Bangla', 'wpcf7' ),
170
+ 'be_BY' => __( 'Belarusian', 'wpcf7' ),
171
  'bs' => __( 'Bosnian', 'wpcf7' ),
172
  'pt_BR' => __( 'Brazilian Portuguese', 'wpcf7' ),
173
  'bg_BG' => __( 'Bulgarian', 'wpcf7' ),
198
  'mk_MK' => __( 'Macedonian', 'wpcf7' ),
199
  'ms_MY' => __( 'Malay', 'wpcf7' ),
200
  'ml_IN' => __( 'Malayalam', 'wpcf7' ),
201
+ 'mt_MT' => __( 'Maltese', 'wpcf7' ),
202
  'nb_NO' => __( 'Norwegian', 'wpcf7' ),
203
  'fa_IR' => __( 'Persian', 'wpcf7' ),
204
  'pl_PL' => __( 'Polish', 'wpcf7' ),
213
  'sv_SE' => __( 'Swedish', 'wpcf7' ),
214
  'ta' => __( 'Tamil', 'wpcf7' ),
215
  'th' => __( 'Thai', 'wpcf7' ),
216
+ 'tl' => __( 'Tagalog', 'wpcf7' ),
217
  'tr_TR' => __( 'Turkish', 'wpcf7' ),
218
  'uk' => __( 'Ukrainian', 'wpcf7' ),
219
  'vi' => __( 'Vietnamese', 'wpcf7' )
jquery.form.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  * jQuery Form Plugin
3
- * version: 2.84 (12-AUG-2011)
4
  * @requires jQuery v1.3.2 or later
5
  *
6
  * Examples and documentation at: http://malsup.com/jquery/form/
@@ -87,21 +87,15 @@ $.fn.ajaxSubmit = function(options) {
87
  return this;
88
  }
89
 
90
- var n,v,a = this.formToArray(options.semantic);
 
 
 
 
 
91
  if (options.data) {
92
  options.extraData = options.data;
93
- for (n in options.data) {
94
- if( $.isArray(options.data[n]) ) {
95
- for (var k in options.data[n]) {
96
- a.push( { name: n, value: options.data[n][k] } );
97
- }
98
- }
99
- else {
100
- v = options.data[n];
101
- v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
102
- a.push( { name: n, value: v } );
103
- }
104
- }
105
  }
106
 
107
  // give pre-submit callback an opportunity to abort the submit
@@ -117,7 +111,9 @@ $.fn.ajaxSubmit = function(options) {
117
  return this;
118
  }
119
 
120
- var q = $.param(a);
 
 
121
 
122
  if (options.type.toUpperCase() == 'GET') {
123
  options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
@@ -132,7 +128,7 @@ $.fn.ajaxSubmit = function(options) {
132
  callbacks.push(function() { $form.resetForm(); });
133
  }
134
  if (options.clearForm) {
135
- callbacks.push(function() { $form.clearForm(); });
136
  }
137
 
138
  // perform a load on the target only if dataType is not provided
@@ -173,7 +169,7 @@ $.fn.ajaxSubmit = function(options) {
173
  }
174
  else {
175
  // IE7 massage (see issue 57)
176
- if ($.browser.msie && method == 'get') {
177
  var ieMeth = $form[0].getAttribute('method');
178
  if (typeof ieMeth === 'string')
179
  options.type = ieMeth;
@@ -192,11 +188,18 @@ $.fn.ajaxSubmit = function(options) {
192
  var useProp = !!$.fn.prop;
193
 
194
  if (a) {
195
- // ensure that every serialized input is still enabled
196
- for (i=0; i < a.length; i++) {
197
- el = $(form[a[i].name]);
198
- el[ useProp ? 'prop' : 'attr' ]('disabled', false);
199
- }
 
 
 
 
 
 
 
200
  }
201
 
202
  if ($(':input[name=submit],:input[id=submit]', form).length) {
@@ -433,8 +436,8 @@ $.fn.ajaxSubmit = function(options) {
433
  xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
434
  }
435
 
436
- var dt = s.dataType || '';
437
- var scr = /(json|script|text)/.test(dt.toLowerCase());
438
  if (scr || s.textarea) {
439
  // see if user embedded response in textarea
440
  var ta = doc.getElementsByTagName('textarea')[0];
@@ -449,19 +452,19 @@ $.fn.ajaxSubmit = function(options) {
449
  var pre = doc.getElementsByTagName('pre')[0];
450
  var b = doc.getElementsByTagName('body')[0];
451
  if (pre) {
452
- xhr.responseText = pre.textContent ? pre.textContent : pre.innerHTML;
453
  }
454
  else if (b) {
455
- xhr.responseText = b.innerHTML;
456
  }
457
  }
458
  }
459
- else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
460
  xhr.responseXML = toXml(xhr.responseText);
461
  }
462
 
463
  try {
464
- data = httpData(xhr, s.dataType, s);
465
  }
466
  catch (e) {
467
  status = 'parsererror';
@@ -823,20 +826,20 @@ $.fieldValue = function(el, successful) {
823
  * - inputs of type submit, button, reset, and hidden will *not* be effected
824
  * - button elements will *not* be effected
825
  */
826
- $.fn.clearForm = function() {
827
  return this.each(function() {
828
- $('input,select,textarea', this).clearFields();
829
  });
830
  };
831
 
832
  /**
833
  * Clears the selected form elements.
834
  */
835
- $.fn.clearFields = $.fn.clearInputs = function() {
836
  var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
837
  return this.each(function() {
838
  var t = this.type, tag = this.tagName.toLowerCase();
839
- if (re.test(t) || tag == 'textarea') {
840
  this.value = '';
841
  }
842
  else if (t == 'checkbox' || t == 'radio') {
@@ -897,8 +900,13 @@ $.fn.selected = function(select) {
897
  });
898
  };
899
 
 
 
 
900
  // helper fn for console logging
901
  function log() {
 
 
902
  var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
903
  if (window.console && window.console.log) {
904
  window.console.log(msg);
1
  /*!
2
  * jQuery Form Plugin
3
+ * version: 2.87 (20-OCT-2011)
4
  * @requires jQuery v1.3.2 or later
5
  *
6
  * Examples and documentation at: http://malsup.com/jquery/form/
87
  return this;
88
  }
89
 
90
+ var traditional = options.traditional;
91
+ if ( traditional === undefined ) {
92
+ traditional = $.ajaxSettings.traditional;
93
+ }
94
+
95
+ var qx,n,v,a = this.formToArray(options.semantic);
96
  if (options.data) {
97
  options.extraData = options.data;
98
+ qx = $.param(options.data, traditional);
 
 
 
 
 
 
 
 
 
 
 
99
  }
100
 
101
  // give pre-submit callback an opportunity to abort the submit
111
  return this;
112
  }
113
 
114
+ var q = $.param(a, traditional);
115
+ if (qx)
116
+ q = ( q ? (q + '&' + qx) : qx );
117
 
118
  if (options.type.toUpperCase() == 'GET') {
119
  options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
128
  callbacks.push(function() { $form.resetForm(); });
129
  }
130
  if (options.clearForm) {
131
+ callbacks.push(function() { $form.clearForm(options.includeHidden); });
132
  }
133
 
134
  // perform a load on the target only if dataType is not provided
169
  }
170
  else {
171
  // IE7 massage (see issue 57)
172
+ if ($.browser.msie && method == 'get' && typeof options.type === "undefined") {
173
  var ieMeth = $form[0].getAttribute('method');
174
  if (typeof ieMeth === 'string')
175
  options.type = ieMeth;
188
  var useProp = !!$.fn.prop;
189
 
190
  if (a) {
191
+ if ( useProp ) {
192
+ // ensure that every serialized input is still enabled
193
+ for (i=0; i < a.length; i++) {
194
+ el = $(form[a[i].name]);
195
+ el.prop('disabled', false);
196
+ }
197
+ } else {
198
+ for (i=0; i < a.length; i++) {
199
+ el = $(form[a[i].name]);
200
+ el.removeAttr('disabled');
201
+ }
202
+ };
203
  }
204
 
205
  if ($(':input[name=submit],:input[id=submit]', form).length) {
436
  xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
437
  }
438
 
439
+ var dt = (s.dataType || '').toLowerCase();
440
+ var scr = /(json|script|text)/.test(dt);
441
  if (scr || s.textarea) {
442
  // see if user embedded response in textarea
443
  var ta = doc.getElementsByTagName('textarea')[0];
452
  var pre = doc.getElementsByTagName('pre')[0];
453
  var b = doc.getElementsByTagName('body')[0];
454
  if (pre) {
455
+ xhr.responseText = pre.textContent ? pre.textContent : pre.innerText;
456
  }
457
  else if (b) {
458
+ xhr.responseText = b.textContent ? b.textContent : b.innerText;
459
  }
460
  }
461
  }
462
+ else if (dt == 'xml' && !xhr.responseXML && xhr.responseText != null) {
463
  xhr.responseXML = toXml(xhr.responseText);
464
  }
465
 
466
  try {
467
+ data = httpData(xhr, dt, s);
468
  }
469
  catch (e) {
470
  status = 'parsererror';
826
  * - inputs of type submit, button, reset, and hidden will *not* be effected
827
  * - button elements will *not* be effected
828
  */
829
+ $.fn.clearForm = function(includeHidden) {
830
  return this.each(function() {
831
+ $('input,select,textarea', this).clearFields(includeHidden);
832
  });
833
  };
834
 
835
  /**
836
  * Clears the selected form elements.
837
  */
838
+ $.fn.clearFields = $.fn.clearInputs = function(includeHidden) {
839
  var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
840
  return this.each(function() {
841
  var t = this.type, tag = this.tagName.toLowerCase();
842
+ if (re.test(t) || tag == 'textarea' || (includeHidden && /hidden/.test(t)) ) {
843
  this.value = '';
844
  }
845
  else if (t == 'checkbox' || t == 'radio') {
900
  });
901
  };
902
 
903
+ // expose debug var
904
+ $.fn.ajaxSubmit.debug = false;
905
+
906
  // helper fn for console logging
907
  function log() {
908
+ if (!$.fn.ajaxSubmit.debug)
909
+ return;
910
  var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
911
  if (window.console && window.console.log) {
912
  window.console.log(msg);
languages/wpcf7-af.mo CHANGED
Binary file
languages/wpcf7-be_BY.mo ADDED
Binary file
languages/wpcf7-de_DE.mo CHANGED
Binary file
languages/wpcf7-it_IT.mo CHANGED
Binary file
languages/wpcf7-ja.mo CHANGED
Binary file
languages/wpcf7-lv.mo CHANGED
Binary file
languages/wpcf7-mt_MT.mo ADDED
Binary file
languages/wpcf7-ru_RU.mo CHANGED
Binary file
languages/wpcf7-tl.mo ADDED
Binary file
languages/wpcf7.pot CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2011-09-17 22:01+0900\n"
6
- "PO-Revision-Date: 2011-09-17 22:01+0900\n"
7
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -245,7 +245,7 @@ msgid "Validation errors occurred. Please confirm the fields and submit it again
245
  msgstr ""
246
 
247
  #: contact-form-7/includes/functions.php:21
248
- msgid "There is a field of term that sender is needed to accept"
249
  msgstr ""
250
 
251
  #: contact-form-7/includes/functions.php:22
@@ -253,7 +253,7 @@ msgid "Please accept the terms to proceed."
253
  msgstr ""
254
 
255
  #: contact-form-7/includes/functions.php:26
256
- msgid "Email address that sender entered is invalid"
257
  msgstr ""
258
 
259
  #: contact-form-7/includes/functions.php:27
@@ -261,7 +261,7 @@ msgid "Email address seems invalid."
261
  msgstr ""
262
 
263
  #: contact-form-7/includes/functions.php:31
264
- msgid "There is a field that sender is needed to fill in"
265
  msgstr ""
266
 
267
  #: contact-form-7/includes/functions.php:32
@@ -334,190 +334,202 @@ msgid "Bangla"
334
  msgstr ""
335
 
336
  #: contact-form-7/includes/functions.php:170
337
- msgid "Bosnian"
338
  msgstr ""
339
 
340
  #: contact-form-7/includes/functions.php:171
341
- msgid "Brazilian Portuguese"
342
  msgstr ""
343
 
344
  #: contact-form-7/includes/functions.php:172
345
- msgid "Bulgarian"
346
  msgstr ""
347
 
348
  #: contact-form-7/includes/functions.php:173
349
- msgid "Catalan"
350
  msgstr ""
351
 
352
  #: contact-form-7/includes/functions.php:174
353
- msgid "Chinese (Simplified)"
354
  msgstr ""
355
 
356
  #: contact-form-7/includes/functions.php:175
357
- msgid "Chinese (Traditional)"
358
  msgstr ""
359
 
360
  #: contact-form-7/includes/functions.php:176
361
- msgid "Croatian"
362
  msgstr ""
363
 
364
  #: contact-form-7/includes/functions.php:177
365
- msgid "Czech"
366
  msgstr ""
367
 
368
  #: contact-form-7/includes/functions.php:178
369
- msgid "Danish"
370
  msgstr ""
371
 
372
  #: contact-form-7/includes/functions.php:179
373
- msgid "Dutch"
374
  msgstr ""
375
 
376
  #: contact-form-7/includes/functions.php:180
377
- msgid "English"
378
  msgstr ""
379
 
380
  #: contact-form-7/includes/functions.php:181
381
- msgid "Estonian"
382
  msgstr ""
383
 
384
  #: contact-form-7/includes/functions.php:182
385
- msgid "Finnish"
386
  msgstr ""
387
 
388
  #: contact-form-7/includes/functions.php:183
389
- msgid "French"
390
  msgstr ""
391
 
392
  #: contact-form-7/includes/functions.php:184
393
- msgid "Galician"
394
  msgstr ""
395
 
396
  #: contact-form-7/includes/functions.php:185
397
- msgid "Georgian"
398
  msgstr ""
399
 
400
  #: contact-form-7/includes/functions.php:186
401
- msgid "German"
402
  msgstr ""
403
 
404
  #: contact-form-7/includes/functions.php:187
405
- msgid "Greek"
406
  msgstr ""
407
 
408
  #: contact-form-7/includes/functions.php:188
409
- msgid "Hebrew"
410
  msgstr ""
411
 
412
  #: contact-form-7/includes/functions.php:189
413
- msgid "Hindi"
414
  msgstr ""
415
 
416
  #: contact-form-7/includes/functions.php:190
417
- msgid "Hungarian"
418
  msgstr ""
419
 
420
  #: contact-form-7/includes/functions.php:191
421
- msgid "Indonesian"
422
  msgstr ""
423
 
424
  #: contact-form-7/includes/functions.php:192
425
- msgid "Italian"
426
  msgstr ""
427
 
428
  #: contact-form-7/includes/functions.php:193
429
- msgid "Japanese"
430
  msgstr ""
431
 
432
  #: contact-form-7/includes/functions.php:194
433
- msgid "Korean"
434
  msgstr ""
435
 
436
  #: contact-form-7/includes/functions.php:195
437
- msgid "Latvian"
438
  msgstr ""
439
 
440
  #: contact-form-7/includes/functions.php:196
441
- msgid "Lithuanian"
442
  msgstr ""
443
 
444
  #: contact-form-7/includes/functions.php:197
445
- msgid "Macedonian"
446
  msgstr ""
447
 
448
  #: contact-form-7/includes/functions.php:198
449
- msgid "Malay"
450
  msgstr ""
451
 
452
  #: contact-form-7/includes/functions.php:199
453
- msgid "Malayalam"
454
  msgstr ""
455
 
456
  #: contact-form-7/includes/functions.php:200
457
- msgid "Norwegian"
458
  msgstr ""
459
 
460
  #: contact-form-7/includes/functions.php:201
461
- msgid "Persian"
462
  msgstr ""
463
 
464
  #: contact-form-7/includes/functions.php:202
465
- msgid "Polish"
466
  msgstr ""
467
 
468
  #: contact-form-7/includes/functions.php:203
469
- msgid "Portuguese"
470
  msgstr ""
471
 
472
  #: contact-form-7/includes/functions.php:204
473
- msgid "Russian"
474
  msgstr ""
475
 
476
  #: contact-form-7/includes/functions.php:205
477
- msgid "Romanian"
478
  msgstr ""
479
 
480
  #: contact-form-7/includes/functions.php:206
481
- msgid "Serbian"
482
  msgstr ""
483
 
484
  #: contact-form-7/includes/functions.php:207
485
- msgid "Sinhala"
486
  msgstr ""
487
 
488
  #: contact-form-7/includes/functions.php:208
489
- msgid "Slovak"
490
  msgstr ""
491
 
492
  #: contact-form-7/includes/functions.php:209
493
- msgid "Slovene"
494
  msgstr ""
495
 
496
  #: contact-form-7/includes/functions.php:210
497
- msgid "Spanish"
498
  msgstr ""
499
 
500
  #: contact-form-7/includes/functions.php:211
501
- msgid "Swedish"
502
  msgstr ""
503
 
504
  #: contact-form-7/includes/functions.php:212
505
- msgid "Tamil"
506
  msgstr ""
507
 
508
  #: contact-form-7/includes/functions.php:213
509
- msgid "Thai"
510
  msgstr ""
511
 
512
  #: contact-form-7/includes/functions.php:214
513
- msgid "Turkish"
514
  msgstr ""
515
 
516
  #: contact-form-7/includes/functions.php:215
517
- msgid "Ukrainian"
518
  msgstr ""
519
 
520
  #: contact-form-7/includes/functions.php:216
 
 
 
 
 
 
 
 
 
 
 
 
521
  msgid "Vietnamese"
522
  msgstr ""
523
 
@@ -736,10 +748,6 @@ msgstr ""
736
  msgid "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."
737
  msgstr ""
738
 
739
- #: contact-form-7/modules/icl.php:74
740
- msgid "This contact form contains [icl] tags, but they are obsolete and no longer functioning on this version of Contact Form 7. <a href=\"http://contactform7.com/2009/12/25/contact-form-in-your-language/#Creating_contact_form_in_different_languages\" target=\"_blank\">There is a simpler way for creating contact forms of other languages</a> and you are recommended to use it."
741
- msgstr ""
742
-
743
  #: contact-form-7/modules/quiz.php:160
744
  msgid "Sender doesn't enter the correct answer to the quiz"
745
  msgstr ""
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2011-11-02 23:11+0900\n"
6
+ "PO-Revision-Date: 2011-11-02 23:12+0900\n"
7
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
245
  msgstr ""
246
 
247
  #: contact-form-7/includes/functions.php:21
248
+ msgid "There are terms that the sender must accept"
249
  msgstr ""
250
 
251
  #: contact-form-7/includes/functions.php:22
253
  msgstr ""
254
 
255
  #: contact-form-7/includes/functions.php:26
256
+ msgid "Email address that the sender entered is invalid"
257
  msgstr ""
258
 
259
  #: contact-form-7/includes/functions.php:27
261
  msgstr ""
262
 
263
  #: contact-form-7/includes/functions.php:31
264
+ msgid "There is a field that the sender must fill in"
265
  msgstr ""
266
 
267
  #: contact-form-7/includes/functions.php:32
334
  msgstr ""
335
 
336
  #: contact-form-7/includes/functions.php:170
337
+ msgid "Belarusian"
338
  msgstr ""
339
 
340
  #: contact-form-7/includes/functions.php:171
341
+ msgid "Bosnian"
342
  msgstr ""
343
 
344
  #: contact-form-7/includes/functions.php:172
345
+ msgid "Brazilian Portuguese"
346
  msgstr ""
347
 
348
  #: contact-form-7/includes/functions.php:173
349
+ msgid "Bulgarian"
350
  msgstr ""
351
 
352
  #: contact-form-7/includes/functions.php:174
353
+ msgid "Catalan"
354
  msgstr ""
355
 
356
  #: contact-form-7/includes/functions.php:175
357
+ msgid "Chinese (Simplified)"
358
  msgstr ""
359
 
360
  #: contact-form-7/includes/functions.php:176
361
+ msgid "Chinese (Traditional)"
362
  msgstr ""
363
 
364
  #: contact-form-7/includes/functions.php:177
365
+ msgid "Croatian"
366
  msgstr ""
367
 
368
  #: contact-form-7/includes/functions.php:178
369
+ msgid "Czech"
370
  msgstr ""
371
 
372
  #: contact-form-7/includes/functions.php:179
373
+ msgid "Danish"
374
  msgstr ""
375
 
376
  #: contact-form-7/includes/functions.php:180
377
+ msgid "Dutch"
378
  msgstr ""
379
 
380
  #: contact-form-7/includes/functions.php:181
381
+ msgid "English"
382
  msgstr ""
383
 
384
  #: contact-form-7/includes/functions.php:182
385
+ msgid "Estonian"
386
  msgstr ""
387
 
388
  #: contact-form-7/includes/functions.php:183
389
+ msgid "Finnish"
390
  msgstr ""
391
 
392
  #: contact-form-7/includes/functions.php:184
393
+ msgid "French"
394
  msgstr ""
395
 
396
  #: contact-form-7/includes/functions.php:185
397
+ msgid "Galician"
398
  msgstr ""
399
 
400
  #: contact-form-7/includes/functions.php:186
401
+ msgid "Georgian"
402
  msgstr ""
403
 
404
  #: contact-form-7/includes/functions.php:187
405
+ msgid "German"
406
  msgstr ""
407
 
408
  #: contact-form-7/includes/functions.php:188
409
+ msgid "Greek"
410
  msgstr ""
411
 
412
  #: contact-form-7/includes/functions.php:189
413
+ msgid "Hebrew"
414
  msgstr ""
415
 
416
  #: contact-form-7/includes/functions.php:190
417
+ msgid "Hindi"
418
  msgstr ""
419
 
420
  #: contact-form-7/includes/functions.php:191
421
+ msgid "Hungarian"
422
  msgstr ""
423
 
424
  #: contact-form-7/includes/functions.php:192
425
+ msgid "Indonesian"
426
  msgstr ""
427
 
428
  #: contact-form-7/includes/functions.php:193
429
+ msgid "Italian"
430
  msgstr ""
431
 
432
  #: contact-form-7/includes/functions.php:194
433
+ msgid "Japanese"
434
  msgstr ""
435
 
436
  #: contact-form-7/includes/functions.php:195
437
+ msgid "Korean"
438
  msgstr ""
439
 
440
  #: contact-form-7/includes/functions.php:196
441
+ msgid "Latvian"
442
  msgstr ""
443
 
444
  #: contact-form-7/includes/functions.php:197
445
+ msgid "Lithuanian"
446
  msgstr ""
447
 
448
  #: contact-form-7/includes/functions.php:198
449
+ msgid "Macedonian"
450
  msgstr ""
451
 
452
  #: contact-form-7/includes/functions.php:199
453
+ msgid "Malay"
454
  msgstr ""
455
 
456
  #: contact-form-7/includes/functions.php:200
457
+ msgid "Malayalam"
458
  msgstr ""
459
 
460
  #: contact-form-7/includes/functions.php:201
461
+ msgid "Maltese"
462
  msgstr ""
463
 
464
  #: contact-form-7/includes/functions.php:202
465
+ msgid "Norwegian"
466
  msgstr ""
467
 
468
  #: contact-form-7/includes/functions.php:203
469
+ msgid "Persian"
470
  msgstr ""
471
 
472
  #: contact-form-7/includes/functions.php:204
473
+ msgid "Polish"
474
  msgstr ""
475
 
476
  #: contact-form-7/includes/functions.php:205
477
+ msgid "Portuguese"
478
  msgstr ""
479
 
480
  #: contact-form-7/includes/functions.php:206
481
+ msgid "Russian"
482
  msgstr ""
483
 
484
  #: contact-form-7/includes/functions.php:207
485
+ msgid "Romanian"
486
  msgstr ""
487
 
488
  #: contact-form-7/includes/functions.php:208
489
+ msgid "Serbian"
490
  msgstr ""
491
 
492
  #: contact-form-7/includes/functions.php:209
493
+ msgid "Sinhala"
494
  msgstr ""
495
 
496
  #: contact-form-7/includes/functions.php:210
497
+ msgid "Slovak"
498
  msgstr ""
499
 
500
  #: contact-form-7/includes/functions.php:211
501
+ msgid "Slovene"
502
  msgstr ""
503
 
504
  #: contact-form-7/includes/functions.php:212
505
+ msgid "Spanish"
506
  msgstr ""
507
 
508
  #: contact-form-7/includes/functions.php:213
509
+ msgid "Swedish"
510
  msgstr ""
511
 
512
  #: contact-form-7/includes/functions.php:214
513
+ msgid "Tamil"
514
  msgstr ""
515
 
516
  #: contact-form-7/includes/functions.php:215
517
+ msgid "Thai"
518
  msgstr ""
519
 
520
  #: contact-form-7/includes/functions.php:216
521
+ msgid "Tagalog"
522
+ msgstr ""
523
+
524
+ #: contact-form-7/includes/functions.php:217
525
+ msgid "Turkish"
526
+ msgstr ""
527
+
528
+ #: contact-form-7/includes/functions.php:218
529
+ msgid "Ukrainian"
530
+ msgstr ""
531
+
532
+ #: contact-form-7/includes/functions.php:219
533
  msgid "Vietnamese"
534
  msgstr ""
535
 
748
  msgid "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."
749
  msgstr ""
750
 
 
 
 
 
751
  #: contact-form-7/modules/quiz.php:160
752
  msgid "Sender doesn't enter the correct answer to the quiz"
753
  msgstr ""
modules/icl.php DELETED
@@ -1,79 +0,0 @@
1
- <?php
2
- /**
3
- ** Note: This ICL module is obsolete and no longer functioning on this version.
4
- ** There is a simpler way for creating contact forms of other languages.
5
- **/
6
-
7
- /* Shortcode handler */
8
-
9
- wpcf7_add_shortcode( 'icl', 'icl_wpcf7_shortcode_handler', true );
10
-
11
- function icl_wpcf7_shortcode_handler( $tag ) {
12
-
13
- if ( ! is_array( $tag ) )
14
- return '';
15
-
16
- $name = $tag['name'];
17
- $values = (array) $tag['values'];
18
- $content = $tag['content'];
19
-
20
- // Just return the content.
21
-
22
- $content = trim( $content );
23
- if ( ! empty( $content ) )
24
- return $content;
25
-
26
- $value = trim( $values[0] );
27
- if ( ! empty( $value ) )
28
- return $value;
29
-
30
- return '';
31
- }
32
-
33
-
34
- /* Message dispaly filter */
35
-
36
- add_filter( 'wpcf7_display_message', 'icl_wpcf7_display_message_filter' );
37
-
38
- function icl_wpcf7_display_message_filter( $message ) {
39
- $shortcode_manager = new WPCF7_ShortcodeManager();
40
- $shortcode_manager->add_shortcode( 'icl', 'icl_wpcf7_shortcode_handler', true );
41
-
42
- return $shortcode_manager->do_shortcode( $message );
43
- }
44
-
45
-
46
- /* Warning message */
47
-
48
- add_action( 'wpcf7_admin_before_subsubsub', 'icl_wpcf7_display_warning_message' );
49
-
50
- function icl_wpcf7_display_warning_message( &$contact_form ) {
51
- if ( ! $contact_form )
52
- return;
53
-
54
- $has_icl_tags = (bool) $contact_form->form_scan_shortcode(
55
- array( 'type' => array( 'icl' ) ) );
56
-
57
- if ( ! $has_icl_tags ) {
58
- $messages = (array) $contact_form->messages;
59
-
60
- $shortcode_manager = new WPCF7_ShortcodeManager();
61
- $shortcode_manager->add_shortcode( 'icl', create_function( '$tag', 'return null;' ), true );
62
-
63
- foreach ( $messages as $message ) {
64
- if ( $shortcode_manager->scan_shortcode( $message ) ) {
65
- $has_icl_tags = true;
66
- break;
67
- }
68
- }
69
- }
70
-
71
- if ( ! $has_icl_tags )
72
- return;
73
-
74
- $message = __( "This contact form contains [icl] tags, but they are obsolete and no longer functioning on this version of Contact Form 7. <a href=\"http://contactform7.com/2009/12/25/contact-form-in-your-language/#Creating_contact_form_in_different_languages\" target=\"_blank\">There is a simpler way for creating contact forms of other languages</a> and you are recommended to use it.", 'wpcf7' );
75
-
76
- echo '<div class="error"><p><strong>' . $message . '</strong></p></div>';
77
- }
78
-
79
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
modules/select.php CHANGED
@@ -132,7 +132,7 @@ function wpcf7_select_validation_filter( $result, $tag ) {
132
  }
133
 
134
  if ( 'select*' == $type ) {
135
- if ( empty( $_POST[$name] ) && '0' !== $_POST[$name] ) {
136
  $result['valid'] = false;
137
  $result['reason'][$name] = wpcf7_get_message( 'invalid_required' );
138
  }
132
  }
133
 
134
  if ( 'select*' == $type ) {
135
+ if ( ! isset( $_POST[$name] ) || empty( $_POST[$name] ) && '0' !== $_POST[$name] ) {
136
  $result['valid'] = false;
137
  $result['reason'][$name] = wpcf7_get_message( 'invalid_required' );
138
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://contactform7.com/donate/
4
  Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
  Requires at least: 3.2
6
  Tested up to: 3.2.1
7
- Stable tag: 2.4.6
8
 
9
  Just another contact form plugin. Simple but flexible.
10
 
@@ -29,6 +29,7 @@ It is hard to continue development and support for this plugin without contribut
29
  * Arabic (ar) - [Tarek Chaaban](http://www.chaaban.info/), Muhammed Lardi, [Yaser Mohammed](http://www.englize.com/)
30
  * Armenian (hy_AM) - [Emmanuelle Traduction](http://www.translatonline.com/)
31
  * Bangla (bn_BD) - [SM Mehdi Akram](http://www.shamokaldarpon.com/)
 
32
  * Bosnian (bs) - [Vedran](http://www.seorabbit.com/)
33
  * Brazilian Portuguese (pt_BR) - [Leonardo Pinheiro](http://www.eletrikabarbarella.com.br/), [Henrique Vianna](http://henriquevianna.com/), [Caciano Gabriel Batista](http://www.gn10.com.br/), [Gervásio Antônio](http://twitter.com/gervasioantonio)
34
  * Bulgarian (bg_BG) - [Iliyan Darganov](http://www.darganov.com/)
@@ -58,11 +59,12 @@ It is hard to continue development and support for this plugin without contribut
58
  * Macedonian (mk_MK) - [Darko](http://www.findermind.com/)
59
  * Malay (ms_MY) - [Zairul Azmil](http://www.zairul.com/)
60
  * Malayalam (ml_IN) - [RAHUL.S.A](http://www.infution.co.cc/)
 
61
  * Norwegian (nb_NO) - Kjetil M. Bergem, [aanvik.net](http://www.aanvik.net), [Peter Holme](http://holme.se/nettsteder/)
62
  * Persian (Farsi; fa_IR) - [Mohammad Musavi](http://www.musavis.com/)
63
  * Polish (pl_PL) - [Zbigniew Czernik](http://zibik.jogger.pl/), [Daniel Fruzynski](http://www.poradnik-webmastera.com), [RafalDesign](http://www.rafaldesign.pl/)
64
  * Portuguese (pt_PT) - [Hugo Baeta](http://hugobaeta.com)
65
- * Russian (ru_RU) - Dmitry Volotovich, [Denis Voituk](http://artprima.cz/)
66
  * Romanian (ro_RO) - [Stas Sushkov](http://stas.nerd.ro/), [Anunturi Jibo](http://www.jibo.ro/)
67
  * Serbian (sr_RS) - [Vedran](http://www.seorabbit.com/), [Aleksandar Urošević](http://blog.urosevic.net/)
68
  * Sinhala (si_LK) - [Nitin Aggarwal](http://offshoreally.com/)
@@ -70,6 +72,7 @@ It is hard to continue development and support for this plugin without contribut
70
  * Slovene (sl_SI) - [Mihael Simonič](http://smihael.bplaced.net)
71
  * Spanish (es_ES) - [Jordi Sancho](http://www.qasolutions.net/blog), [Vladimir Prieto](http://vladimir.prie.to/), [Federico Mikaelian](http://www.fedemika.com.ar/), [Matias Baldanza](http://matiasbaldanza.com/), [Carlos Agnese](http://albumdecarlitos.com.ar/)
72
  * Swedish (sv_SE) - [Fredrik Jonsson](http://www.fredda-o-ac.se/), [the Swedish community](http://wp-support.se/)
 
73
  * Tamil (ta) - [Nitin Aggarwal](http://offshoreally.com/)
74
  * Thai (th) - [kazama](http://blog.wordthai.com/)
75
  * Turkish (tr_TR) - [Roman Neumuller](http://katpatuka.wordpress.com), [Hasan Yılmaz](http://hedefturkce.com/), [Emin Buğra Saral](http://www.rahmetli.info/)
@@ -104,6 +107,16 @@ Do you have questions or issues with Contact Form 7? Use these support channels
104
 
105
  == Changelog ==
106
 
 
 
 
 
 
 
 
 
 
 
107
  = 3.0 =
108
 
109
  * Contact Form 7 3.0 utilizes Custom Post Types feature to save contact forms. It does not create its own table (contact_form_7) anymore.
4
  Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
  Requires at least: 3.2
6
  Tested up to: 3.2.1
7
+ Stable tag: 3.0
8
 
9
  Just another contact form plugin. Simple but flexible.
10
 
29
  * Arabic (ar) - [Tarek Chaaban](http://www.chaaban.info/), Muhammed Lardi, [Yaser Mohammed](http://www.englize.com/)
30
  * Armenian (hy_AM) - [Emmanuelle Traduction](http://www.translatonline.com/)
31
  * Bangla (bn_BD) - [SM Mehdi Akram](http://www.shamokaldarpon.com/)
32
+ * Belarusian (be_BY) - [Igor Dubilei](http://www.iflexion.com/)
33
  * Bosnian (bs) - [Vedran](http://www.seorabbit.com/)
34
  * Brazilian Portuguese (pt_BR) - [Leonardo Pinheiro](http://www.eletrikabarbarella.com.br/), [Henrique Vianna](http://henriquevianna.com/), [Caciano Gabriel Batista](http://www.gn10.com.br/), [Gervásio Antônio](http://twitter.com/gervasioantonio)
35
  * Bulgarian (bg_BG) - [Iliyan Darganov](http://www.darganov.com/)
59
  * Macedonian (mk_MK) - [Darko](http://www.findermind.com/)
60
  * Malay (ms_MY) - [Zairul Azmil](http://www.zairul.com/)
61
  * Malayalam (ml_IN) - [RAHUL.S.A](http://www.infution.co.cc/)
62
+ * Maltese (mt_MT) - [Ajoft Technologies](http://www.ajoft.com/)
63
  * Norwegian (nb_NO) - Kjetil M. Bergem, [aanvik.net](http://www.aanvik.net), [Peter Holme](http://holme.se/nettsteder/)
64
  * Persian (Farsi; fa_IR) - [Mohammad Musavi](http://www.musavis.com/)
65
  * Polish (pl_PL) - [Zbigniew Czernik](http://zibik.jogger.pl/), [Daniel Fruzynski](http://www.poradnik-webmastera.com), [RafalDesign](http://www.rafaldesign.pl/)
66
  * Portuguese (pt_PT) - [Hugo Baeta](http://hugobaeta.com)
67
+ * Russian (ru_RU) - Dmitry Volotovich, [Denis Voituk](http://artprima.cz/), [kg69design](http://kg69design.com/)
68
  * Romanian (ro_RO) - [Stas Sushkov](http://stas.nerd.ro/), [Anunturi Jibo](http://www.jibo.ro/)
69
  * Serbian (sr_RS) - [Vedran](http://www.seorabbit.com/), [Aleksandar Urošević](http://blog.urosevic.net/)
70
  * Sinhala (si_LK) - [Nitin Aggarwal](http://offshoreally.com/)
72
  * Slovene (sl_SI) - [Mihael Simonič](http://smihael.bplaced.net)
73
  * Spanish (es_ES) - [Jordi Sancho](http://www.qasolutions.net/blog), [Vladimir Prieto](http://vladimir.prie.to/), [Federico Mikaelian](http://www.fedemika.com.ar/), [Matias Baldanza](http://matiasbaldanza.com/), [Carlos Agnese](http://albumdecarlitos.com.ar/)
74
  * Swedish (sv_SE) - [Fredrik Jonsson](http://www.fredda-o-ac.se/), [the Swedish community](http://wp-support.se/)
75
+ * Tagalog (tl) - [Rupert Agnew Lanuza](http://wheretobuy.com.ph/)
76
  * Tamil (ta) - [Nitin Aggarwal](http://offshoreally.com/)
77
  * Thai (th) - [kazama](http://blog.wordthai.com/)
78
  * Turkish (tr_TR) - [Roman Neumuller](http://katpatuka.wordpress.com), [Hasan Yılmaz](http://hedefturkce.com/), [Emin Buğra Saral](http://www.rahmetli.info/)
107
 
108
  == Changelog ==
109
 
110
+ = 3.0.1 =
111
+
112
+ * Removed unused icl.php file from modules folder.
113
+ * Replaced deprecated get_bloginfo('text_direction') with is_rtl().
114
+ * Made “Acceptable file types” field in the File upload tag generator being able to accept comma (,) and pipe (|) as separating character in addition to space.
115
+ * Added sanitization for $_POST['_wpcf7_unit_tag'] value for avoiding possible abuse.
116
+ * Updated jquery.form.js to 2.87.
117
+ * Translations for Tagalog, Belarusian, and Maltese have been created.
118
+ * Translations for Italian, German, Japanese, Russian, Latvian, and Afrikaans have been updated.
119
+
120
  = 3.0 =
121
 
122
  * Contact Form 7 3.0 utilizes Custom Post Types feature to save contact forms. It does not create its own table (contact_form_7) anymore.
wp-contact-form-7.php CHANGED
@@ -7,7 +7,7 @@ Author: Takayuki Miyoshi
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: wpcf7
9
  Domain Path: /languages/
10
- Version: 3.0
11
  */
12
 
13
  /* Copyright 2007-2011 Takayuki Miyoshi (email: takayukister at gmail.com)
@@ -27,7 +27,7 @@ Version: 3.0
27
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
  */
29
 
30
- define( 'WPCF7_VERSION', '3.0' );
31
 
32
  if ( ! defined( 'WPCF7_PLUGIN_BASENAME' ) )
33
  define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: wpcf7
9
  Domain Path: /languages/
10
+ Version: 3.0.1
11
  */
12
 
13
  /* Copyright 2007-2011 Takayuki Miyoshi (email: takayukister at gmail.com)
27
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
  */
29
 
30
+ define( 'WPCF7_VERSION', '3.0.1' );
31
 
32
  if ( ! defined( 'WPCF7_PLUGIN_BASENAME' ) )
33
  define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );