Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Domyślnie po włączeniu komponentu zend-i18n, tłumaczenie jest dostępne w plikach widoku i formularzach. Zakładamy, że czytelnik skonfigurował prawidłowo komponent, wspierając się dokumentacją lub książką Zend Framework 3. Poradnik programisty, dlatego pominiemy konfigurację.

W pliku module.config.php dodajemy kod przedstawiony na Listingu 1. Następnie tworzymy w klasie IndexController własny kontroler i atrybut $translator (Listing 2). Przykłady zastosowania tłumaczenia zaprezentowaliśmy w metodzie indexAction(), gdzie tłumaczenie przekazujemy do wtyczki flashMessenger, odpowiedzialnej za wyświetlanie komunikatów na stronie internetowej. 

 

Listing 1. Fragment pliku module.config.php

...
'controllers' => [
   'factories' => [
      Controller\IndexController::class => function($sm) {
         $translator = $sm->get(\Zend\I18n\Translator\Translator::class);
         return new Controller\IndexController($translator);
      }
   ],
],
...
'service_manager' => [
   'factories' => [
      \Zend\I18n\Translator\Translator::class => \Zend\I18n\Translator\TranslatorServiceFactory::class,
   ],
],
... 

 

Listing 2. Fragment pliku IndexController.php

...
use Zend\I18n\Translator\Translator;
...
class IndexController extends AbstractActionController {...
   /**
    * @var \Zend\I18n\Translator\Translator
    */
   private $translator;

   public function __construct(Translator $translator) {
      $this->translator = $translator;
   }

   public function indexAction() {
      // Do tłumaczenia przekazujemy zmienną
      $this->flashMessenger()->addSuccessMessage(sprintf($this->translator->translate('flashMessenger_success'), $value));
      // Do tłumaczenia nie przekazujemy żadnych informacji
      $this->flashMessenger()->addErrorMessage($this->translator->translate('flashMessenger_error'));
   }
   ...
}

  

Wybrane książki:

Wybrane strony:

Książki Helion