/** * Adds a text message to the session message stream, translated into the currently selected language. * * @param string $type The type of message, indicating how it will be styled when outputted. Should be set to "success", "danger", "warning", or "info". * @param string $message The message id for the message to be added to the message stream. * @param array $placeholders An optional hash of placeholder names => placeholder values to substitute into the translated message. * @return MessageStream this MessageStream object. */ public function addMessageTranslated($type, $message_id, $placeholders = []) { if (!static::$_message_translator) { throw new \Exception("No translator has been set! Please call MessageStream::setTranslator first."); } $message = static::$_message_translator->translate($message_id, $placeholders); return $this->addMessage($type, $message); }
private function transformValidator($field_name, $validator_name, $validator) { $params = []; // Message if (isset($validator['message'])) { $validator = array_merge(["self" => $field_name], $validator); $params["message"] = $this->_translator->translate($validator['message'], $validator); } $transformedValidatorJson = []; switch ($validator_name) { // Required validator case "required": $transformedValidatorJson['notEmpty'] = $params; break; case "length": if (isset($validator['min'])) { $params['min'] = $validator['min']; } if (isset($validator['max'])) { $params['max'] = $validator['max']; } $transformedValidatorJson['stringLength'] = $params; break; case "integer": $transformedValidatorJson['integer'] = $params; break; case "numeric": $transformedValidatorJson['numeric'] = $params; break; case "range": if (isset($validator['min'])) { $params['min'] = $validator['min']; } if (isset($validator['max'])) { $params['max'] = $validator['max']; } if (isset($validator['min']) && isset($validator['max'])) { $transformedValidatorJson['between'] = $params; } else { if (isset($validator['min'])) { $transformedValidatorJson['greaterThan'] = $params; } else { if (isset($validator['max'])) { $transformedValidatorJson['lessThan'] = $params; } } } break; case "array": if (isset($validator['min'])) { $params['min'] = $validator['min']; } if (isset($validator['max'])) { $params['max'] = $validator['max']; } $transformedValidatorJson['choice'] = $params; break; case "email": $transformedValidatorJson['emailAddress'] = $params; break; case "matches": if (isset($validator['field'])) { $params['field'] = $validator['field']; } $transformedValidatorJson['identical'] = $params; break; case "not_matches": if (isset($validator['field'])) { $params['field'] = $validator['field']; } $transformedValidatorJson['different'] = $params; break; case "member_of": if (isset($validator['values'])) { $params['regexp'] = "^" . implode("|", $validator['values']) . "\$"; } $transformedValidatorJson['regexp'] = $params; break; case "not_member_of": if (isset($validator['values'])) { $params['regexp'] = "^(?!" . implode("|", $validator['values']) . "\$).*\$"; } $transformedValidatorJson['regexp'] = $params; break; default: break; } return $transformedValidatorJson; }
public function testFallsBackToLanguageIfTranslationForSpecifiedLanguageIsNotAvailable() { $messages = new ArrayMessageBundle(['en' => ['one' => 'one']]); $translator = new MessageTranslator(Locale::parse('en'), $messages); $this->assertEquals('one', $translator->translate('one', [], Locale::parse('es'))); }
/** * Adds a text message to the session message stream, translated into the currently selected language. * * @param string $type The type of message, indicating how it will be styled when outputted. Should be set to "success", "danger", "warning", or "info". * @param string $message The message id for the message to be added to the message stream. * @param array $placeholders An optional hash of placeholder names => placeholder values to substitute into the translated message. * @return MessageStream this MessageStream object. */ public function addMessageTranslated($type, $message_id, $placeholders = []) { $message = $this->_message_translator->translate($message_id, $placeholders); return $this->addMessage($type, $message); }