diff --git a/lib/Cake/Model/Model.php b/lib/Cake/Model/Model.php index 7028729cc75..d3e6b442b9e 100644 --- a/lib/Cake/Model/Model.php +++ b/lib/Cake/Model/Model.php @@ -2584,6 +2584,10 @@ function invalidFields($options = array()) { } $validator = array_merge($default, $validator); + $validationDomain = $this->validationDomain; + if (empty($validationDomain)) { + $validationDomain = 'default'; + } if (isset($validator['message'])) { $message = $validator['message']; } else { @@ -2603,7 +2607,7 @@ function invalidFields($options = array()) { ); if ($required) { - $this->invalidate($fieldName, $message); + $this->invalidate($fieldName, __d($validationDomain, $message)); if ($validator['last']) { break; } @@ -2647,7 +2651,7 @@ function invalidFields($options = array()) { } elseif (is_numeric($index) && count($ruleSet) > 1) { $validator['message'] = $index + 1; } else { - $validator['message'] = $message; + $validator['message'] = __d($validationDomain, $message); } } $this->invalidate($fieldName, $validator['message']); diff --git a/lib/Cake/Test/Case/Console/Command/Task/ExtractTaskTest.php b/lib/Cake/Test/Case/Console/Command/Task/ExtractTaskTest.php index 2a76367776e..ac09ece8393 100644 --- a/lib/Cake/Test/Case/Console/Command/Task/ExtractTaskTest.php +++ b/lib/Cake/Test/Case/Console/Command/Task/ExtractTaskTest.php @@ -239,7 +239,7 @@ public function testExtractModelValidation() { App::build(array( 'Model' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Model' . DS), 'plugins' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS) - )); + ), App::RESET); $this->out = $this->getMock('ConsoleOutput', array(), array(), '', false); $this->in = $this->getMock('ConsoleInput', array(), array(), '', false); $this->Task = $this->getMock('ExtractTask', @@ -256,10 +256,10 @@ public function testExtractModelValidation() { $this->Task->execute(); $result = file_get_contents($this->path . DS . 'default.pot'); - $pattern = '#Model/Post.php:validation for field title#'; + $pattern = '#Model/PersisterOne.php:validation for field title#'; $this->assertPattern($pattern, $result); - $pattern = '#Model/Post.php:validation for field body#'; + $pattern = '#Model/PersisterOne.php:validation for field body#'; $this->assertPattern($pattern, $result); $pattern = '#msgid "Post title is required"#'; diff --git a/lib/Cake/Test/test_app/Model/PersisterOne.php b/lib/Cake/Test/test_app/Model/PersisterOne.php index 26e1b1dd6cf..763fc5a0f99 100644 --- a/lib/Cake/Test/test_app/Model/PersisterOne.php +++ b/lib/Cake/Test/test_app/Model/PersisterOne.php @@ -25,4 +25,26 @@ class PersisterOne extends AppModel { public $actsAs = array('PersisterOneBehavior', 'TestPlugin.TestPluginPersisterOne'); public $hasMany = array('Comment', 'TestPlugin.TestPluginComment'); + public $validate = array( + 'title' => array( + 'rule' => array('custom', '.*'), + 'allowEmpty' => true, + 'required' => false, + 'message' => 'Post title is required' + ), + 'body' => array( + 'first_rule' => array( + 'rule' => array('custom', '.*'), + 'allowEmpty' => true, + 'required' => false, + 'message' => 'Post body is required' + ), + 'second_rule' => array( + 'rule' => array('custom', '.*'), + 'allowEmpty' => true, + 'required' => false, + 'message' => 'Post body is super required' + ) + ), + ); } diff --git a/lib/Cake/Test/test_app/Model/Post.php b/lib/Cake/Test/test_app/Model/Post.php index 1c59673defc..5a1c15370ee 100644 --- a/lib/Cake/Test/test_app/Model/Post.php +++ b/lib/Cake/Test/test_app/Model/Post.php @@ -21,26 +21,4 @@ class Post extends AppModel { public $useTable = 'posts'; public $name = 'Post'; - public $validate = array( - 'title' => array( - 'rule' => array('custom', '.*'), - 'allowEmpty' => true, - 'required' => false, - 'message' => 'Post title is required' - ), - 'body' => array( - 'first_rule' => array( - 'rule' => array('custom', '.*'), - 'allowEmpty' => true, - 'required' => false, - 'message' => 'Post body is required' - ), - 'second_rule' => array( - 'rule' => array('custom', '.*'), - 'allowEmpty' => true, - 'required' => false, - 'message' => 'Post body is super required' - ) - ), - ); }