Я взял этот урок (jobeet о i18n) и изменил функцию executeChangeLanguage
следующим образом:
public function executeChangeLanguage(sfWebRequest $request)
{
$form = new sfFormLanguage(
$this->getUser(),
array('languages' => array('en', 'fr'))
);
$form->process($request);
// added
$url = $request->getReferer();
$newUrl = $url;
if ($request->getParameter('language') == 'fr') {
$newUrl = str_replace('.com/en', '.com/fr', $url);
}
if ($request->getParameter('language') == 'en') {
$newUrl = str_replace('.com/fr', '.com/en', $url);
}
return $this->redirect($newUrl);
// old return
// return $this->redirect('localized_homepage');
}
Это грязный хак, но у меня это сработало.