Symfony2: Formular-Fehlermeldungen übersetzen
In meinem vorherigen Post habe ich beschrieben wie man mit Symfony 2 auf bequeme Art und Weise eine Webseite in eine andere Sprache übersetzt. Dies ist sehr vorteilhaft, weil man nur Sprachdateien anlegen muss. In den Templates selbst müssen nur die trans Tags eingebaut werden.
Die zweite wichtige Sache sind die Fehlermeldung bei Formularen. Bei der Validation von Formularen werden in den allermeisten Fällen eigene Fehlermeldungen und Fehlerbeschreibungen benötigt. Diese Meldungen werden im jeweiligen Bundle im /Resources/config Ordner in der Datei validation.yml angelgt. Die eigens definierten Fehler werden aber nicht in eine andere Sprache übersetzt. Dies kann man ändern und wie im vorherigen Post auch für die Validation eine eigene Sprachdatei anlegen. Nehmen wir an, wir haben in der validation.yml folgende Prüfregel für unser Entity User definiert.
ProgrammierenOptimieren/POBundle/Resources/config/validation.yml:
1 2 3 4 |
ProgrammierenOptimieren\POBundle\Entity\User: properties: first_name: - NotBlank: {message: "Das Feld Vorname darf nicht leer sein."} |
Um die Fehlermeldung „Das Feld Vorname darf nicht leer sein.“ auch ins Englische zu übersetzen, wenn die Locale in der Session auf „en“ gesetzt ist, dann müssen wir im Ordner Resources/translations die Datei validators.en.yml anlegen und folgenden Inhalt eingeben:
ProgrammierenOptimieren/POBundle/Resources/translations/validators.yml:
1 |
Das Feld Vorname darf nicht leer sein.: The field "First name" should not be empty. |
Anschließend sollte man zur Sicherheit noch den Cache leeren und es sollte nun die entsprechende Übersetzung bei Locale „en“ angezeigt werden.
Die letzten Kommentare