[DX / TOOLING] F-00.4 — Internacionalización (i18n) en Español
Épica: EPIC-00 — Setup e Infraestructura Base
🏷️ Categoría
Categoría: DX / ToolingImpacta en: Equipo Fullstack (Livewire/Blade + Laravel)
📦 Dependencias
Backlogs que deben estar completados antes de implementar esta feature.
| Backlog | Motivo |
|---|---|
| F-00.3 | Layout x-layout y vistas Blade base donde se aplican los strings i18n |
Prioridad: Should
Descripción: Como administrador del sistema Quiero que toda la interfaz del panel esté en español y que los textos estén externalizados en archivos de idioma Para que sea fácil mantener o traducir la interfaz sin tocar el código de las vistas
Criterios de Aceptación (Checklist):
- [ ] Escenario 1 (Archivos de idioma): Dado que se revisa la estructura del proyecto, cuando se navega a
resources/lang/es/, entonces existen archivos de traducción organizados:app.php(textos generales),dashboard.php,logs.php,historico.php,error_codes.php,validation.php(mensajes de validación en español). - [ ] Escenario 2 (Textos en vistas): Dado que cualquier texto visible de la UI se examina en las vistas Blade, cuando se revisa el código, entonces NO hay strings de UI hardcoded — todos usan
__('logs.title')o@lang('dashboard.cards.critical'). - [ ] Escenario 3 (Mensajes de validación en español): Dado que se completa un formulario con datos inválidos, cuando se muestran los errores, entonces los mensajes de validación aparecen en español (ej. "El campo URL es obligatorio").
- [ ] Escenario 4 (Estructura para valenciano): Dado que en el futuro se quiera añadir valenciano (
va), cuando se crearesources/lang/va/, entonces la estructura es idéntica aes/y solo hay que traducir los strings sin tocar las vistas. - [ ] Escenario 5 (Locale configurado): Dado que se revisa
config/app.php, cuando se inspecciona, entonces'locale' => 'es'y'fallback_locale' => 'es'están configurados. - [ ] Requisito Técnico: Ejecutar
php artisan lang:publishpara publicar los archivos de validación base de Laravel. Crear los archivos de dominio enresources/lang/es/. ConfigurarAPP_LOCALE=esen.env. Las fechas y números también deben usar el localees(Carbon::setLocale('es')).
MoSCoW: SHOULDSprint: Sprint 1
Notas:
- Prioridad alta para la primera entrega visible (Sprint 1) porque afecta a TODAS las vistas.
- Se recomienda crear los archivos de idioma vacíos con los keys desde el principio e irlos rellenando conforme se desarrolla cada feature.
- Carbon con locale
esformatea fechas automáticamente en español (diffForHumans()devuelve "hace 2 horas" etc.).