2012-01-24 13 views

risposta

20

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.

+7

a partire da Symphony 2.1 i file sono ora in 'vendor/symfony/src/Symfony/Component/Validator/Resources/translations/validators. {Lang} .xlf' –

+3

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

3

In aggiunta alle istruzioni di gilden, è necessario assicurarsi che il blocco framework.translator in config/config.yml non è commentato (al momento è commentato per impostazione predefinita). Se non lo fai, ti ritroverai comunque con i messaggi inglesi originali.

+0

Grazie mille! –