Witam,

Mam taki problem: zmianę języków wykonuję ajaxowo (rozwiązanie tymczasowe, będzie na subdomenach) - wywołuje $.post (jQuery) controler lang gdzie następuje zmiana języka (przyjmijmy że z pl_PL na en_GB) i po odświeżeniu strony niestety pokazuje mi, że strona nie istnieje - jest to spowodowane tym, że linki są tłumaczone i strona w języku polskim "/o-nas/po-pracy" nie istnieje w wersji angielskiej gdzie odpowiednikiem jest "/about-us/after-work". Rozwiązanie o którym myślę, to pobranie aktualnego adresu z Zend_Navigation dla wszystkich wersji językowej i przy zmianie języka wybrać właśnie ten link na który język zmieniono (sprawdzenie url'a z aktualnym adresem wykorzystuje do wstawienia rel="canonical" i sprawdza się bardzo dobrze). Przeniesienie użytkownika na stronę główną odpada.

Mam nadzieję, że ktoś miał już taki problem, i będzie w stanie podesłać mi rozwiązanie.

Pozdrawiam

Znalazłem rozwiązanie: dla osób które będą miały kiedykolwiek z tym problem. Jako jeden z parametrów przekazywany do helpera należy przekazać @locale. Co ciekawe wywołanie helpera z kontrolera ($this->_helper->url(...)) i przekazanie mu powyższego parametru nie działa (linki nie są tłumaczone) - należy użyć następującego kodu aby znaleźć link w innej wersji:

  1. $router = Zend_Controller_Front::getInstance()->getRouter();
  2. $router->assemble(array(...),'sciezka');


Liczę, że komuś się to kiedyś przyda.
Do zamknięcia.