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 ( 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;