/** * Generating all the error messages * @param Object \Ilch\Translator $translator The translator instance * @returns Array An array with translated error messages */ public function getErrors(\Ilch\Translator $translator) { if (empty($this->errors)) { return null; } $errorMessages = []; $validationErrors = []; foreach ($this->errors as $errors) { if (!$this->breakChain) { foreach ($errors as $error) { $validationErrors[] = $error; } } else { $validationErrors[] = $errors; } } foreach ($validationErrors as $error) { $params = []; foreach ($error->getParams() as $param) { if ($param['translate'] === true) { $params[] = $translator->trans($param['value']); } else { $params[] = $param['value']; } } $field = isset(self::$customFieldAliases[$error->getField()]) ? self::$customFieldAliases[$error->getField()] : $error->getField(); $args = [$error->getKey(), $translator->trans($field)]; $args = array_merge($args, $params); $errorMessages[] = call_user_func_array([$translator, 'trans'], $args); } return $errorMessages; }
/** * Tests if the Translator replaces the placeholder withing the translated text * with multiple replacements. */ public function testTransMultiplePlaceholder() { $translator = new Translator('en_EN'); $translator->load(__DIR__ . '/_files'); $this->assertEquals('Welcome, Hans, ur last login was yesterday', $translator->trans('welcomeUserExtended', 'Hans', 'yesterday'), 'The text wasnt returned with the placeholder.'); }