示例#1
0
 /**
  * Translate a message.
  *
  * @param  string $message
  * @param  string $textDomain
  * @param  string $locale
  * @return string
  */
 public function translate($message, $textDomain = 'default', $locale = null)
 {
     $locale = $locale ?: $this->getLocale();
     if ($locale == "dg") {
         $translation = $this->getTranslatedMessage($message, $locale, $textDomain);
     } else {
         $translation = parent::getTranslatedMessage($message, $locale, $textDomain);
     }
     if ($translation !== null && $translation !== '') {
         return $translation;
     }
     if (null !== ($fallbackLocale = $this->getFallbackLocale()) && $locale !== $fallbackLocale) {
         return $this->translate($message, $textDomain, $fallbackLocale);
     }
     return $message;
 }
示例#2
0
 /**
  * Get a translated message.
  *
  * @triggers    getTranslatedMessage.missing-translation
  * @param       string  $message
  * @param       string  $locale
  * @param       string  $textDomain
  * @return      string|null
  */
 protected function getTranslatedMessage($message, $locale, $textDomain = 'default')
 {
     if ($message === '') {
         return '';
     }
     if (!isset($this->myMessages[$textDomain][$locale])) {
         $this->loadMyMessages($textDomain, $locale);
     }
     if (isset($this->myMessages[$textDomain][$locale][$message])) {
         return $this->myMessages[$textDomain][$locale][$message];
     }
     return parent::getTranslatedMessage($message, $locale, $textDomain);
 }