/**
  * @dataProvider getTransTests
  */
 public function testTrans($expected, $id, $parameters)
 {
     $translator = new IdentityTranslator();
     $this->assertEquals($expected, $translator->trans($id, $parameters));
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function trans($id, array $parameters = [], $domain = null, $locale = null)
 {
     $possibleActions = ['lbl', 'err', 'msg'];
     if (self::get() === FrontendLanguage::class) {
         $possibleActions[] = 'act';
     }
     if (!preg_match('/(' . implode('|', $possibleActions) . ')./', $id)) {
         return parent::trans($id, $parameters, $domain, $locale);
     }
     if (!strpos($id, '.')) {
         return parent::trans($id, $parameters, $domain, $locale);
     }
     list($action, $string) = explode('.', $id, 2);
     if (!in_array($action, $possibleActions)) {
         return parent::trans($id, $parameters, $domain, $locale);
     }
     $translatedString = self::$action($string);
     // we couldn't translate it, let the parent have a go
     if (preg_match('/\\{\\$' . $action . '.*' . $string . '\\}/', $translatedString)) {
         $parentTranslatedString = parent::trans($id, $parameters, $domain, $locale);
         // If the parent couldn't translate return our default
         if ($id === $parentTranslatedString) {
             return $translatedString;
         }
         return $parentTranslatedString;
     }
     return $translatedString;
 }