# Mensajes bilingües para cargas del portal de prestadores

## Objetivo

Explicar de forma clara, segura y localizada qué ocurre cuando una carga de archivos es rechazada en el portal de prestadores. Todo texto visible debe respetar el idioma activo (`es` o `en`) y no depender de mensajes técnicos literales enviados por la API.

## Alcance

- Logo y portada del prestador.
- Imágenes de sucursales.
- Evidencias de identidad, comercio o documentos.
- Ayudas de formato y tamaño, validaciones preventivas del navegador, errores proyectados por el bridge y errores devueltos por la API.
- Catálogos español e inglés, pruebas de ambos idiomas y bundle compilado.

No cambia la política de imágenes de sucursales ni evidencias. Sólo logo y portada se alinean con el nuevo límite autoritativo de 4 MB de la API.

## Diseño aprobado

### Contratos de carga

Los contratos conservarán límites y formatos en una única fuente de verdad del portal:

| Recurso | Formatos | Máximo |
|---|---|---:|
| Logo | JPG, PNG, WebP | 4 MB |
| Portada | JPG, PNG, WebP | 4 MB |
| Imagen de sucursal | JPG, PNG, WebP | 8 MB |
| Evidencia | PDF, JPG, PNG | 10 MB por archivo |

La validación local se ejecutará antes de enviar el archivo. Sus errores usarán claves semánticas y `providerTranslate()`, sin textos españoles incrustados como única representación.

### Normalización de errores

La interfaz reconocerá y localizará estas situaciones:

- no se seleccionó exactamente un archivo;
- formato o extensión no permitidos;
- archivo vacío o superior al máximo correspondiente;
- petición demasiado grande (`413`);
- validación rechazada por la API (`422`);
- dimensiones que superan el límite seguro del optimizador;
- imagen inválida o no procesable;
- indisponibilidad o fallo general del servicio.

Los errores asociados a campos se mostrarán junto al control. Cuando no puedan mapearse, el portal mostrará un mensaje general localizado. Los textos técnicos o desconocidos de la API no se presentarán directamente al usuario.

### Idioma y contenido visible

El idioma seguirá `providerConfig.locale`, igual que el resto del portal. Las ayudas Blade de logo y portada se actualizarán a 4 MB en español e inglés. Las ayudas y errores de sucursales y evidencias conservarán sus límites vigentes, también en ambos idiomas.

## Seguridad y compatibilidad

- El bridge seguirá validando archivos antes de enviarlos a `api.mycode.cl`.
- La portada pasará de 8 MB a 4 MB también en la validación del bridge, evitando contradicciones entre navegador, web y API.
- No se expondrán cuerpos técnicos completos, rutas, excepciones ni respuestas inesperadas del servidor.
- El selector de idioma existente será la única fuente del idioma; no se agregará estado paralelo.

## Verificación

- Pruebas JavaScript para los cuatro contratos y mensajes ES/EN.
- Pruebas del bridge para el límite de 4 MB en logo y portada.
- Pruebas de proyección para `413`, `422`, dimensiones excesivas, formato inválido y fallo general.
- Pruebas de Blade para ayudas de carga en ambos idiomas.
- `npm run production`, suite JavaScript, `php artisan architecture:audit --strict` y suite PHP completa.

