I messaggi di errore di convalida della personalizzazione sono abbastanza semplici, ma possono sembrare complicati all'inizio.
Default locale
Prima di tutto è necessario modificare l'impostazione internazionale predefinita della vostra applicazione. Nelle versioni 2.0.x il valore corretto da modificare è framework.session.default_locale
. Per riferimento futuro, a partire da 2.1.0 sarà framework.default_locale
. Consultare the docs per la sintassi corretta.
Un locale deve essere composto dalla lingua e dalla regione ed è definito come language_REGION
(list of languages, list of countries). Ad esempio, le impostazioni internazionali utilizzate in Germania per il tedesco sono de_DE
.
messaggi di convalida
messaggi di convalida sono codificati nella loro rispettiva constraint classes.
messaggi di convalida Tradurre
Symfony usa Twig per rendere tutti i messaggi di validazione. Il processo stesso è complicato e non rientra nell'ambito di questa domanda, ma la parte importante è che ogni messaggio di vincolo viene inviato attraverso un filtro di traduzione, che a seconda delle impostazioni locali dell'utente (default_locale
per impostazione predefinita) traduce i messaggi nella lingua corretta.
Per modificare una qualsiasi delle traduzioni, è sufficiente copiare il file di traduzione di convalida vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/translations/validators.{lang}.xlf
-app/Resources/translations/validators.{lang}.xlf
dove {lang}
è la parte lingua del locale di default.
Dopo aver fatto il primo, è sufficiente modificare i messaggi predefiniti in ciò che si vede sempre più in forma. Se la lingua per cui hai bisogno di supporto non esiste, copia qualsiasi file di traduzione nella stessa directory e modifica il file.
Per ulteriori informazioni su come funziona la traduzione in Symfony2, visitare la documentazione ufficiale su translation.
a partire da Symphony 2.1 i file sono ora in 'vendor/symfony/src/Symfony/Component/Validator/Resources/translations/validators. {Lang} .xlf' –
Solo per aggiornare questa risposta al comportamento nelle nuove versioni di symfony : in ** symfony 2.5 **, non ho dovuto copiare i file per abilitare la traduzione per i messaggi di feedback sulla forma e sulla convalida. Ho appena dovuto ... a) impostare la locale standard desiderata in parameters.yml ('locale: xy') b) abilitare il servizio traduttore in configurazione.yml (commentato per impostazione predefinita e da aggiornare con il linguaggio di fallback desiderato - nel mio caso "en") 'framework: traduttore: {fallback:" en "}' c) assicurarsi che le impostazioni internazionali predefinite in config.yml siano impostato su impostazioni locali definite da parameters.yml: 'framework: default_locale:"% locale% "' – Skug