Exemplo n.º 1
0
 /**
  * Переводит сообщение.
  * @param string $message сообщение
  * @param array $placeholders список плейсхолдеров
  * @param array $dictionaries
  * @return string
  */
 public function translate($message, array $placeholders = [], array $dictionaries = [])
 {
     $dictionaries = $dictionaries ?: [self::DICTIONARY_DEFAULT];
     if ($this->translator) {
         return $this->translator->translate($dictionaries, $message, $placeholders);
     }
     $replace = [];
     foreach ($placeholders as $key => $val) {
         $replace['{' . $key . '}'] = $val;
     }
     return strtr($message, $replace);
 }
Exemplo n.º 2
0
 /**
  * Возвращает сообщение, переведенное для текущей или указанной локали.
  * Текст сообщения может содержать плейсхолдеры. Ex: File "{path}" not found
  * Если идентификатор локали не указан, будет использована текущая локаль.
  * @param string $message текст сообщения на языке разработки
  * @param array $placeholders значения плейсхолдеров для сообщения. Ex: array('{path}' => '/path/to/file')
  * @param string $localeId идентификатор локали в которую осуществляется перевод (ru, en_us)
  * @return string
  */
 public function translate($message, array $placeholders = [], $localeId = null)
 {
     if (!$message) {
         return $message;
     }
     $dictionaries = $this->getI18nDictionaryNames();
     if ($this->traitTranslator) {
         return $this->traitTranslator->translate($dictionaries, $message, $placeholders, $localeId);
     }
     $replace = [];
     foreach ($placeholders as $key => $val) {
         $replace['{' . $key . '}'] = $val;
     }
     return strtr($message, $replace);
 }