Symfony2 Lokalschema Erkennung und Übersetzung
-
25-10-2019 - |
Frage
Hier ist, was ich festgefahren bin. Ich arbeite an Symfony2 und versuche, die Übersetzungen zum Laufen zu bringen. Aber irgendwie kann ich es nicht so lassen, wie es sollte. Hier ist, was ich habe. In der config.yml
translator: { fallback: de }
session:
default_locale: en
Im messages.en.yml
Ich habe diese Struktur:
Please log in: Bitte melden Sie sich an
Ich habe auch ähnliche Dateien für messages.en_US.yml
, messages.ru.yml
, etc.
In dem Code, den ich verwende $this->get('session')->setLocale('ru_RU');
das Gebietsschema ändern.
Die Übersetzung funktioniert jedoch nur, wenn das Gebietsschema auf "en_us" oder "de_de" eingestellt ist. In jedem anderen Fall gibt es den Schlüssel zurück, nicht den Wert. Ich versuche die Übersetzung mit diesem Code
return new Response($this->get('translator')->trans('Please log in').' '.$this->get('session')->getLocale());
Und es gibt das Gebietsschema zurück, das ich gesetzt habe.
Was kann dieses Problem verursachen?
Lösung 2
Ich fand die Antwort selbst. Ich benötigte nur, um den Cache für Symfony aufzuräumen. Gebrauchte Konsole, um dies zu tun. Verzeichnis geändert in myProject/app
und verwendeten diese Befehle, um den Cache und die Protokolle zu reinigen:
sudo rm -R cache/
sudo rm -R logs/
Andere Tipps
Sie sollten den Cache mit dem Symfony Comand löschen
app/console cache:clear --no-debug
Stellen Sie dann schließlich die Schreibberechtigung für Cache/ und Protokoll/ Ordner wie beschrieben wieder her. hier