Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Wielojęzykowy Zend Framework
Forum PHP.pl > Forum > PHP
nexis
Podstawowy bootstrap w środowisku Zend Framework wygląda następująco:

public/index.php
  1. <?php 
  2.  
  3. // Error reporting for development
  4. error_reporting(E_ALL | E_STRICT);
  5.  
  6. // Include path
  7. set_include_path(get_include_path() . PATH_SEPARATOR . '../library');
  8.  
  9. // Zend Framework Loader
  10. require_once('Zend/Loader.php');
  11.  
  12. Zend_Loader::loadClass('Zend_Controller_Front');
  13.  
  14. // Get the front controller
  15. $front = Zend_Controller_Front::getInstance();
  16. $front->setControllerDirectory('../application/controllers');
  17. $front->dispatch();
  18. ?>


Chciałbym do całego projektu dodać obsługą wielu języków, którą udaje mi się poprawnie wstawić np. do domyślnego kontrolera:

application/controllers/IndexController.php
  1. <?php 
  2.  
  3. class IndexController extends Zend_Controller_Action
  4. {
  5. public function indexAction()
  6. {
  7. $translate = new Zend_Translate('tmx', '../languages/multilanguage.tmx', 'pl');
  8. $translate->setLocale('en');
  9.  
  10. $this->view->translate = $translate;
  11. } 
  12. }
  13. ?>


Co mnie oczywiście nie zadowala, bo nie wyobrażam sobie dodawać do każdego kontrolera te same trzy linijki kodu.

W jaki sposób mogę moduł Zend_Translate zatem wstawić do głównego bootstrap, aby w widokach (views) był widoczny jako:

  1. <?php
  2. $this->translate->_("language");
  3. ?>


lub podobnie?
phpion
Nie możesz po prostu utworzyć własnej klasy kontrolera? Przykładowo:
  1. <?php
  2. class My_Controller_Action extends Zend_Controller_Action {
  3. public function init() {
  4. $translate = new Zend_Translate('tmx', '../languages/multilanguage.tmx', 'pl');
  5. $translate->setLocale('en');
  6.  
  7. $this->view->translate = $translate;
  8. }
  9. }
  10. ?>

Coś w tym stylu. Następnie wszystkie kontrollery dziedziczą po My_Controller_Action, a nie po Zend_Controller_Action.
chlebik
Albo pomysl o jakims pluginie/helperze, co bedzie to ogarnial. Z mojej strony polecam rozwiazanie oparte na plikach *.po.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.