Обнаружение и перевод локали Symfony2 - PullRequest
3 голосов
/ 10 января 2012

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

5 голосов
/ 01 июня 2012

вы должны очистить кеш, используя команду symfony

app/console cache:clear --no-debug

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

2 голосов
/ 10 января 2012

Я нашел ответ сам.Просто нужно очистить кеш для Symfony.Использовал консоль для этого.Изменил каталог на myProject/app и использовал следующие команды для очистки кэша и журналов:

sudo rm -R cache/
sudo rm -R logs/
...