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
その後、最終的に説明されているようにキャッシュ/およびログ/フォルダの書き込み許可を復元します ここ