Index: core/install/english.lang
===================================================================
--- core/install/english.lang
+++ core/install/english.lang
@@ -294,7 +294,7 @@
VXNlciBCYW5uZWQ=
dXNlciBub3QgZm91bmQ=
WW91IG11c3Qgc2VsZWN0IG9ubHkgb25lIHVzZXI=
- SW5jb3JyZWN0IGRhdGUgZm9ybWF0LCBwbGVhc2UgdXNlICglcykgZXguICglcyk=
+ SW5jb3JyZWN0IGRhdGUgZm9ybWF0LCBwbGVhc2UgdXNlICh7Zm9ybWF0fSkgZXguICh7c2FtcGxlfSk=
SW5jb3JyZWN0IGRhdGEgZm9ybWF0LCBwbGVhc2UgdXNlIHt0eXBlfQ==
SW52YWxpZCBGb3JtYXQ=
RmllbGQgdmFsdWUgbGVuZ3RoIGlzIG91dCBvZiByYW5nZSwgcG9zc2libGUgdmFsdWUgbGVuZ3RoIGZyb20ge21pbl9sZW5ndGh9IHRvIHttYXhfbGVuZ3RofQ==
Index: core/install/upgrades.sql
===================================================================
--- core/install/upgrades.sql
+++ core/install/upgrades.sql
@@ -2935,3 +2935,7 @@
UPDATE SystemSettings SET VariableValue = 1 WHERE VariableName = 'CSVExportEncoding';
ALTER TABLE Semaphores ADD MainIDs INT NULL DEFAULT NULL AFTER MainPrefix;
+
+UPDATE LanguageLabels
+SET l1_Translation = 'Incorrect date format, please use ({format}) ex. ({sample})'
+WHERE PhraseKey = 'LA_ERR_BAD_DATE_FORMAT';
Index: core/kernel/utility/formatters/date_formatter.php
===================================================================
--- core/kernel/utility/formatters/date_formatter.php
+++ core/kernel/utility/formatters/date_formatter.php
@@ -388,7 +388,11 @@
$format = $options['input_format'];
if ($dt_separator) $format = trim($format, $dt_separator);
- $error_params = Array( $this->HumanFormat($format), adodb_date($format), 'value' => $value );
+ $error_params = array(
+ 'format' => $this->HumanFormat($format),
+ 'sample' => adodb_date($format),
+ 'value' => $value,
+ );
$hour = 0;
$minute = 0;
Index: core/kernel/utility/validator.php
===================================================================
--- core/kernel/utility/validator.php
+++ core/kernel/utility/validator.php
@@ -440,15 +440,16 @@
$params = array();
}
- $field_phrase = $this->Application->isAdmin ? 'la_fld_' . $field : 'lu_fld_' . $field;
- $params['field'] = $this->Application->Phrase($field_phrase);
-
- foreach ( $params as $param_name => $param_value ) {
- $msg = str_replace('{' . $param_name . '}', $param_value, $msg, $replacement_count);
+ if ( $params && preg_match('/%[^\s]/', $msg) ) {
+ $msg = vsprintf($msg, array_values($params));
}
+ else {
+ $field_phrase = $this->Application->isAdmin ? 'la_fld_' . $field : 'lu_fld_' . $field;
+ $params['field'] = $this->Application->Phrase($field_phrase);
- if ( strpos($msg, '%s') !== false ) {
- trigger_error('Unexpected "%s" in field "' . $field . '" validation error message (pseudo: "' . $error_pseudo . '") in "' . $this->dataSource->Prefix . '" unit', E_USER_WARNING);
+ foreach ( $params as $param_name => $param_value ) {
+ $msg = str_replace('{' . $param_name . '}', $param_value, $msg);
+ }
}
return $msg;