Estoy a punto de escribir un tutorial sobre la validación de formularios en Laravel, pero en los mismos hago la validación con mensajes en español.
Por defecto, Laravel muestra los mensajes de error o de validación en inglés, pero en este post voy a mostrar cómo podemos traducir esos mensajes, además de indicarle a Laravel que muestre los mensajes en español.
Configurar idioma español en Laravel
Vamos al archivo config/app.php y buscamos la línea que diga locale
. Ahí simplemente la cambiamos por un “es
“:
Traducir mensajes
Estoy casi seguro de que alguien más ya hizo la traducción, pero igual la pongo aquí.
Si encuentras una traducción mejor, simplemente coloca a la misma en lugar de mi archivo.
Vamos a crear un archivo llamado “validation.php” en resources/lang/es/ (si la carpeta no existe, hay que crearla).
Fíjate en que la carpeta se llama igual que el locale
que especificamos anteriormente. El contenido debe ser el siguiente:
<?php
return [
'accepted' => 'El campo :attribute debe ser aceptado.',
'active_url' => 'El campo :attribute no es una URL válida.',
'after' => 'El campo :attribute debe ser una fecha posterior a :date.',
'after_or_equal' => 'El campo :attribute debe ser una fecha posterior o igual a :date.',
'alpha' => 'El campo :attribute solamente puede contener letras.',
'alpha_dash' => 'El campo :attribute solamente puede contener letras, números, guiones y guiones bajos.',
'alpha_num' => 'El campo :attribute solamente puede contener letras y números.',
'array' => 'El campo :attribute debe ser un arreglo.',
'before' => 'El campo :attribute debe ser una fecha anterior a :date.',
'before_or_equal' => 'El campo :attribute debe ser una fecha anterior o igual a :date.',
'between' => [
'numeric' => 'El campo :attribute debe estar entre :min y :max.',
'file' => 'El campo :attribute debe estar entre :min y :max kilobytes.',
'string' => 'El campo :attribute debe tener entre :min y :max caracteres.',
'array' => 'El campo :attribute debe tener entre :min y :max elementos.',
],
'boolean' => 'El campo :attribute debe ser falso o verdadero.',
'confirmed' => 'El campo de confirmación :attribute no coincide.',
'date' => 'El campo :attribute no es una fecha válida.',
'date_equals' => 'El campo :attribute debe ser una fecha igual a :date.',
'date_format' => 'El campo :attribute no coincide con el formato :format.',
'different' => 'El campo :attribute y :other deben ser diferentes.',
'digits' => 'El campo :attribute debe tener :digits dígitos.',
'digits_between' => 'El campo :attribute debe estar entre :min y :max dígitos.',
'dimensions' => 'El campo :attribute tiene dimensiones de imagen inválidas.',
'distinct' => 'El campo :attribute tiene un valor duplicado.',
'email' => 'El campo :attribute debe ser un correo electrónico válido.',
'exists' => 'El campo seleccionado :attribute es inválido.',
'file' => 'El campo :attribute debe ser un archivo.',
'filled' => 'El campo :attribute debe tener un valor.',
'gt' => [
'numeric' => 'El campo :attribute debe ser mayor que :value.',
'file' => 'El campo :attribute debe ser mayor que :value kilobytes.',
'string' => 'El campo :attribute debe ser mayor que :value caracteres.',
'array' => 'El campo :attribute must have more than :value items.',
],
'gte' => [
'numeric' => 'El campo :attribute debe ser mayor que or equal :value.',
'file' => 'El campo :attribute debe ser mayor que or equal :value kilobytes.',
'string' => 'El campo :attribute debe ser mayor que or equal :value caracteres.',
'array' => 'El campo :attribute must have :value items or more.',
],
'image' => 'El campo :attribute debe ser una imagen.',
'in' => 'El campo seleccionado :attribute es inválido.',
'in_array' => 'El campo :attribute field does not exist in :other.',
'integer' => 'El campo :attribute must be an integer.',
'ip' => 'El campo :attribute must be a valid IP address.',
'ipv4' => 'El campo :attribute must be a valid IPv4 address.',
'ipv6' => 'El campo :attribute must be a valid IPv6 address.',
'json' => 'El campo :attribute must be a valid JSON string.',
'lt' => [
'numeric' => 'El campo :attribute must be less than :value.',
'file' => 'El campo :attribute must be less than :value kilobytes.',
'string' => 'El campo :attribute must be less than :value caracteres.',
'array' => 'El campo :attribute must have less than :value items.',
],
'lte' => [
'numeric' => 'El campo :attribute must be less than or equal :value.',
'file' => 'El campo :attribute must be less than or equal :value kilobytes.',
'string' => 'El campo :attribute must be less than or equal :value caracteres.',
'array' => 'El campo :attribute must not have more than :value items.',
],
'max' => [
'numeric' => 'El campo :attribute no debería ser más grande que :max.',
'file' => 'El campo :attribute no debería pesar más de :max kilobytes.',
'string' => 'El campo :attribute no debería tener más de :max caracteres.',
'array' => 'El campo :attribute no debería tener más de :max elementos.',
],
'mimes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
'mimetypes' => 'El campo :attribute debe ser un archivo de tipo: :values.',
'min' => [
'numeric' => 'El campo :attribute must be at least :min.',
'file' => 'El campo :attribute must be at least :min kilobytes.',
'string' => 'El campo :attribute must be at least :min caracteres.',
'array' => 'El campo :attribute must have at least :min items.',
],
'not_in' => 'El campo seleccionado :attribute es inválido.',
'not_regex' => 'El formato de :attribute es inválido.',
'numeric' => 'El campo :attribute debe ser numérico',
'present' => 'El campo :attribute field debe estar presente.',
'regex' => 'El campo :attribute format es inválido.',
'required' => 'El campo :attribute es obligatorio.',
'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.',
'required_unless' => 'El campo :attribute es obligatorio al menos que :other esté en :values.',
'required_with' => 'El campo :attribute es obligatorio cuando :values está presente.',
'required_with_all' => 'El campo :attribute es obligatorio cuando :values están presentes.',
'required_without' => 'El campo :attribute es obligatorio cuando :values no está presente',
'required_without_all' => 'El campo :attribute es obligatorio cuando ninguno de los valores: :values está presente.',
'same' => 'El campo :attribute y :other deben coincidir.',
'size' => [
'numeric' => 'El campo :attribute must be :size.',
'file' => 'El campo :attribute must be :size kilobytes.',
'string' => 'El campo :attribute must be :size caracteres.',
'array' => 'El campo :attribute debe contener :size elementos.',
],
'starts_with' => 'El campo :attribute con uno de los siguientes valores: :values',
'string' => 'El campo :attribute debe ser una cadena.',
'timezone' => 'El campo :attribute debe ser una zona horaria válida.',
'unique' => 'El campo :attribute ya existe.',
'uploaded' => 'Error al subir :attribute.',
'url' => 'El formato de :attribute es inválido.',
'uuid' => 'El campo :attribute debe ser un UUID válido.',
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
'attributes' => [],
];
Lo que hacemos es regresar un arreglo. Dentro de las cadenas, ponemos :attribute
y :value
, entre otros para indicar los valores reales.
Por cierto, si te fijas, dice TODO: terminar validaciones, así que no he terminado de traducir, pero falta poco.
Laravel comenzará a mostrar estos mensajes en lugar de los que están en inglés, de manera automática y para todos nuestros formularios que ya tengamos.
Conclusión
De esta manera podemos mostrar mensajes de error y de validación en español, y no solo para español, sino para otros idiomas.
Así, se puede indicar la validación en un lugar, y usar un idioma distinto para cada app.
Estoy aquí para ayudarte 
Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto
No te pierdas ninguno de mis posts 
Suscríbete a
mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
Me gusta esto:
Me gusta Cargando...
Gracias a tu publicación pude hacer lo que necesitaba
Pingback: Validación de formularios en Laravel - Parzibyte's blog