/**
  * @param string $value (eg. anglais (Royaume-Uni) (en_GB))
  *
  * @return DisplayLocale
  */
 public static function parse($value)
 {
     if (!preg_match('/^(.*) \\((\\w+)\\)$/', $value, $matches)) {
         throw new \InvalidArgumentException(sprintf('Unable to parse display locale "%s"', $value));
     }
     $name = $matches[1];
     $locale = Locale::parse($matches[2]);
     return new self($locale, $name);
 }
Exemple #2
0
 /** @inheritDoc */
 public function translate($key, array $args = [], Locale $locale = null)
 {
     $locales = [$locale, $this->defaultLocale, Locale::parse('en')];
     foreach ($locales as $locale) {
         if (!$locale) {
             continue;
         }
         $message = $this->messages->get($key, $locale);
         if ($message) {
             return $message->format($args);
         }
     }
     return $key;
 }
Exemple #3
0
 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')));
 }
Exemple #4
0
 /**
  * Returns the default locale.
  *
  * @return Locale
  */
 public static function getDefault()
 {
     return Locale::parse(\Locale::getDefault());
 }