/** * Returns the error message. * * @access protected * @param string $field Field name * @param string $package Package name * @param string $validator Validator name * @param array $parameters Validator parameters * @return string */ protected function getErrorMessage($field, $package, $validator, $parameters) { $package = empty($package) ? '' : $package . '::'; // We have a i18n instance so we can return a propper error message if ($this->i18n->has($package . 'validate.overrides.messages.' . $field . '.' . $validator)) { // Return custom field specific error message from the language file return $this->i18n->get($package . 'validate.overrides.messages.' . $field . '.' . $validator, array_merge([$field], $parameters)); } else { // Try to translate field name $translateFieldName = function ($field) use($package) { if ($this->i18n->has($package . 'validate.overrides.fieldnames.' . $field)) { $field = $this->i18n->get($package . 'validate.overrides.fieldnames.' . $field); } else { $field = str_replace('_', ' ', $field); } return $field; }; if (in_array($validator, ['match', 'different'])) { $field = [$translateFieldName($field), $translateFieldName(array_shift($parameters))]; } else { $field = $translateFieldName($field); } // Return default validation error message from the language file return $this->i18n->get($package . 'validate.' . $validator, array_merge((array) $field, $parameters)); } }
/** * */ public function testHas() { $loader = $this->getLoader(); $loader->shouldReceive('loadStrings')->once()->with('en_US', 'foo')->andReturn($this->strings['foo']); $loader->shouldReceive('loadStrings')->once()->with('en_US', 'bar')->andReturn($this->strings['bar']); $loader->shouldReceive('loadStrings')->once()->with('en_US', 'baz::baz')->andReturn($this->strings['baz::baz']); $i18n = new I18n($loader, 'en_US'); $this->assertTrue($i18n->has('foo.foo')); $this->assertTrue($i18n->has('bar.bar')); $this->assertTrue($i18n->has('baz::baz.baz')); $this->assertFalse($i18n->has('foo.nope')); $this->assertFalse($i18n->has('bar.nope')); $this->assertFalse($i18n->has('baz::baz.nope')); }