2012-01-24 8 views

Respuesta

20

mensajes de error de validación Cutomizing es bastante simple, pero puede parecer complicado al principio.

Configuración regional predeterminada

En primer lugar, debe cambiar la configuración regional predeterminada de su aplicación. En las versiones 2.0.x, el valor correcto para cambiar es framework.session.default_locale. Para referencia futura, a partir de 2.1.0 será framework.default_locale. Consulte the docs para la sintaxis correcta.

Una configuración regional debe constar de su idioma y región y se define como language_REGION (list of languages, list of countries). La configuración regional utilizada en Alemania para alemán sería de_DE, por ejemplo.

Los mensajes de validación

Los mensajes de validación se codifican con fuerza en sus respectivos constraint classes.

traducir los mensajes de validación

Symfony utiliza la ramita para renderizar todos los mensajes de validación. El proceso en sí es complicado y queda fuera del alcance de esta pregunta, pero la parte importante es que cada mensaje de restricción se envía a través de un filtro de traducción, que según la configuración regional del usuario (default_locale por defecto) traduce los mensajes al idioma adecuado.

Para cambiar cualquiera de las traducciones, simplemente copie el archivo de traducción de validación de vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/translations/validators.{lang}.xlf a app/Resources/translations/validators.{lang}.xlf donde {lang} es la parte de idioma de su configuración regional predeterminada.

Habiendo hecho lo anterior, simplemente cambie los mensajes predeterminados a lo que sea que vea más apropiado. Si el idioma para el que necesita soporte no existe, copie cualquier archivo de traducción en el mismo directorio y modifique ese archivo en su lugar.

Para leer más acerca de cómo funciona la traducción en Symfony2, visite la documentación oficial en translation.

+7

desde Symphony 2.1 los archivos están ahora en 'vendor/symfony/src/Symfony/Component/Validator/Resources/translations/validators. {Lang} .xlf' –

+3

Solo para actualizar esta respuesta al comportamiento en las versiones más nuevas de Symfony : en ** Symfony 2.5 **, no tuve que copiar los archivos para habilitar la traducción de los mensajes de retroalimentación de formulario y validación. Sólo tuve que ... a) establecer la configuración regional deseada en parameters.yml ('locale: xy') b) activar el servicio del traductor en la configuración.yml (comentada por defecto y para actualizarse con el idioma de referencia deseado - en mi caso "en") 'framework: translator: {fallback:" en "}' c) asegúrese de que la configuración predeterminada en config.yml es establecer en la configuración regional definida de parameters.yml: 'framework: default_locale:"% locale% "' – Skug

3

Además de las instrucciones de gilden, debe asegurarse de que el bloque framework.translator en config/config.yml no esté comentado (actualmente se comenta por defecto). Si no lo haces, igual terminarás con los mensajes originales en inglés.

+0

¡Muchas gracias! –

Cuestiones relacionadas