Hola,
Estoy intentando hacer que mi web sea multiidioma, he intentado hacerlo con estos dos Bundles:
- JMSI18nRoutingBundle
- BeSimpleI18nRoutingBundle
El primero
JMSI18nRoutingBundle me cambia efectivamente de Idioma de Español a Ingles y tambien me cambia las URL y los textos, lamentablemente por lo que he visto no es posible cambiarle los nombres a las URL por ejemplo:
Código:
ESP www.hola.com/nostros
ENG www.hola.com/en/AboutUs
Por lo tanto intente con el segundo Bundle
BeSimpleI18nRoutingBundle, y bueno, luego de luchar un rato cree el archivo "i18n.yml" que tiene los nombres de las Rutas, pero no logro que me reconosca el cambio de Idioma, es decir, me cambio al Idioma Ingles y me deja igualmente en Español.
Los textos no los tengo en la Base de Datos, sino que en archivos
Código:
- messages.en.yml
- messages.es.yml
Podria ser por eso que no me toma el cambio de Idioma?
Bueno, el cambio de Idioma lo realizo asi
Plantilla:
Código:
<p><a href="{{ path('an_amazec_cambiaIdioma', { '_locale': 'es', 'translate': '_locale'}) }}">ESP</a></p>
<p><a href="{{ path('an_amazec_cambiaIdioma', { '_locale': 'en', 'translate': '_locale'}) }}">ENG</a></p>
Controller:
Código:
/**
* Cambiar Idioma
*
* @Route("/cambiaIdioma/{_locale}", name="an_amazec_cambiaIdioma", defaults={"_locale"="es"})
*/
public function cambiaIdiomaAction($_locale = "es")
{
if($_locale == "en")
$locale = "en";
else
$locale = "es";
$request = $this->getRequest();
$request->setLocale($locale);
return $this->redirect($this->generateURL("an_amazec_homepage"));
}
Mi duda finalmente es... alguien a logrado hacer que esto funcione que me pueda orientar, algo estoy haciendo mal obviamente, he leido y releido la documentacion pero bueno... ya debe ser el cansancio que no me deja ver el error.
Agradesco cualquier ayuda, que ya estoy pensando en mezclar los dos Bundles y listo xD
Saludos