> Faqs > ¿Cómo traducir los nombres de los campos (input name) en las validaciones Laravel?

¿Cómo traducir los nombres de los campos (input name) en las validaciones Laravel?

Hemos tocado el tema de traducir los mensajes de las validaciones de Laravel. Sin embargo, las traducciones siguen sin estar completas.

Resulta que los nombres de los campos en el formulario están en inglés (están así por buenas prácticas a la hora de programar) y, a pesar de que los mensajes sí están traducidos, los nombres de los campos de formulario en los mensajes aparencen en inglés todavía.

Me explico, el campo es así:

<input type="text" name="currency">

Como vemos, el name del input text está definido como "currency". Entonces el mensaje de validación de Laravel me aparece así:

El campo currency es obligatorio.

Es solo un ejemplo. Por supuesto pasa con todos los nombres de los campos y, aunque se entiende, no queda del todo bien.

¿Cómo podemos traducir esos nombres de campos para que las validaciones de Laravel salgan totalmente en español?

Responder la pregunta
Editar Hacer otra preguntaPreguntar

Respuestas

Ok, es un tema importante sin duda eso de traducir los nombres de los campos de validación. Afortunadamente, Laravel ofrece un sistema bastante sencillo y rápido para conseguirlo.

No encontrarás una traducción genérica, puesto que las palabras dependen completamente de los campos que tengas tú en la base de datos. De modo que tienes que editar a mano el archvio de las localizaciones y crear un array con todas las palabras a traducir, que serían los "name" de los <input> y las palabras traducidas en tu idioma.

Para ello tienes que abrir el archivo de la localización de las validaciones, validation.php, que se encuentra en la carpeta lang de tu idioma. Por ejemplo:

resources/lang/es/validation.php

Obviamente esa es la ruta para la localización al español, pero sirve para traducir los campos a cualquier otro idioma, simplemente cambiando la carpeta "es" por la que sea.

En ese archivo encontrarás un array llamado "attributes". Inicialmente está vacío.

  • Como clave (key) del array tienes que colocar el nombre a traducir (el valor del atributo "name", definido en la etiqueta <input>, <select> o cualquier otro elemento de formulario)
  • Como valor tienes que colocar la palabra traducida.

Por ejemplo este sería un posible ejemplo de array de traducciones de atributos name:

'attributes' => [
    'role' => 'rol',
    'name' => 'nombre',
    'password' => 'clave',
],
Miguel Angel
460 24 32 2