Symfony2 обнаружение локали и перевод
-
25-10-2019 - |
Вопрос
Вот что я застрял. Я работаю над Symfony2 и пытаюсь заставить переводы работать. Но почему -то я не могу заставить это работать так, как должно. Вот что у меня есть. В config.yml
translator: { fallback: de }
session:
default_locale: en
В messages.en.yml
У меня есть эта структура:
Please log in: Bitte melden Sie sich an
У меня также есть похожие файлы для messages.en_US.yml
, messages.ru.yml
, так далее.
В коде я использую $this->get('session')->setLocale('ru_RU');
Чтобы изменить локаль.
Но перевод работает только тогда, когда локаль установлен на «en_us» или «de_de». В любом другом случае он возвращает ключ, а не значение. Я пробую перевод с этим кодом
return new Response($this->get('translator')->trans('Please log in').' '.$this->get('session')->getLocale());
И он возвращает локаль, который я установил.
Так что может вызвать эту проблему?
Решение 2
Я сам нашел ответ. Просто нужно было очистить кеш для Symfony. Использовал консоль для этого. Изменил каталог на myProject/app
и использовал эти команды для очистки кэша и журналов:
sudo rm -R cache/
sudo rm -R logs/
Другие советы
Вы должны очистить кэш, используя Symfony Comand
app/console cache:clear --no-debug
Затем в конечном итоге восстановите разрешение на записи на кеш/ и журнал/ папки, как описано здесь