Вопрос

Вот что я застрял. Я работаю над 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

Затем в конечном итоге восстановите разрешение на записи на кеш/ и журнал/ папки, как описано здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top