Symfony2 Detección y traducción de locales
-
25-10-2019 - |
Pregunta
Esto es en lo que estoy atrapado. Estoy trabajando en Symfony2 y tratando de hacer que las traducciones funcionen. Pero de alguna manera, no puedo hacer que funcione como debería. Esto es lo que tengo. En el config.yml
translator: { fallback: de }
session:
default_locale: en
En messages.en.yml
Tengo esta estructura:
Please log in: Bitte melden Sie sich an
También tengo archivos similares para messages.en_US.yml
, messages.ru.yml
, etc.
En el código que uso $this->get('session')->setLocale('ru_RU');
Para cambiar el local.
Pero la traducción funciona solo cuando el localidad se establece en "EN_US" o "DE_DE". En cualquier otro caso, devuelve la clave, no el valor. Intento la traducción con este código
return new Response($this->get('translator')->trans('Please log in').' '.$this->get('session')->getLocale());
y devuelve el lugar que he establecido.
Entonces, ¿qué puede causar este problema?
Solución 2
Encontré la respuesta yo mismo. Solo necesitaba limpiar el caché para Symfony. Consola usada para hacerlo. Directorio cambiado a myProject/app
y usó estos comandos para limpiar el caché y los registros:
sudo rm -R cache/
sudo rm -R logs/
Otros consejos
Debes borrar el caché usando el Symfony COMAND
app/console cache:clear --no-debug
Luego eventualmente restaurar el permiso de escritura en caché/ y registro/ carpetas como se describe aquí