Contrato de idioma de Driver App
El estado de idioma de Driver App combina un registro de idioma guardado localmente, el idioma del cliente de API, un diccionario de traducción, textos alternativos del origen y la carga de proveedores. Cambiar uno de esos valores no actualiza los demás de manera atómica.
El idioma visible, las traducciones cargadas, la preferencia guardada y la dirección del diseño pueden actualizarse por separado. La disponibilidad de las traducciones depende de la configuración del proyecto.
Disponibilidad
El proveedor de idioma envuelve los proveedores de configuración, sesión, navegación y tareas; por eso, su estado de carga puede retrasar el inicio posterior y la configuración en segundo plano. Profile puede mostrar un selector de idioma; las opciones disponibles y los diccionarios dependen del proyecto configurado y de la fuente de idioma actual.
Requisitos previos
- Identificadores de idioma estables y una política explícita para el idioma predeterminado.
- Una versión del diccionario para las claves de producto de Driver App.
- Persistencia local que informe éxito o fallo y mantenga aisladas las cuentas y proyectos.
- Texto alternativo para cada control, advertencia y error crítico.
- Comprueba dirección del texto, inversión del diseño, iconos, números, fechas, mapas e interfaz nativa/del proveedor.
Límites de responsabilidad
| Límite | Responsabilidad | Límite |
|---|---|---|
| Almacenamiento local de idioma | Restaurar y guardar los metadatos seleccionados de ID/código/RTL. | Guardar no demuestra que el diccionario esté listo ni actualizado en el servidor. |
| Idioma del cliente de API | Aplicar el código seleccionado a las solicitudes posteriores al origen. | Cambiar el cliente no demuestra que el servicio lo admita. |
| Proveedor de idioma | Cargar el idioma predeterminado/guardado, obtener diccionarios, exponer la carga/error y traducir claves. | Las transiciones de estado y la persistencia/obtención no son atómicas. |
| Función de traducción | Resolver la clave con prefijo de Driver, la clave original, el texto alternativo y, por último, el texto de la clave. | El texto alternativo puede ocultar entradas de diccionario ausentes u obsoletas. |
| Selector de idioma | Mostrar opciones y solicitar otro idioma. | La interfaz de selección no demuestra persistencia ni actualización completa. |
| Interfaz de App/tareas | Mostrar textos traducidos o alternativos y volver a renderizar según el estado del proveedor. | Algunas pantallas pueden conservar su estado local/anterior durante las transiciones. |
| Metadatos RTL | Conservar la marca RTL devuelta/guardada. | Driver App no aplica dirección de diseño nativa a partir de esta marca. |
Entradas y resultados
| Entrada/estado | Transición | Resultado | Límite parcial o de fallo |
|---|---|---|---|
| Hay un idioma guardado | Restaurar el registro y actualizar el código del cliente de API. | El proveedor puede iniciar la actualización del diccionario. | Las versiones del registro guardado y del diccionario pueden diferir. |
| No hay idioma guardado | Solicitar el idioma configurado/predeterminado. | Se pueden establecer los metadatos del idioma seleccionado. | El idioma predeterminado puede establecerse y aun así requerir una actualización posterior del diccionario antes de quitar la carga. |
| El diccionario se carga correctamente | Guardar el mapa de traducciones recibido y quitar el indicador de carga. | Se muestran las claves traducidas. | Las claves ausentes siguen usando el fallback/la clave. |
| Error/excepción del diccionario | Guardar un diccionario vacío o el error, y quitar el indicador de carga. | El texto alternativo puede seguir utilizándose. | La interfaz puede parecer válida aunque haya fallado la cobertura de traducciones. |
| Seleccionar otro idioma | Guardar los metadatos, actualizar el cliente de API y activar la carga. | Los efectos posteriores solicitan traducciones. | La escritura de almacenamiento, el código del cliente y el diccionario pueden completarse por separado. |
| Seleccionar el idioma actual | No cambia la selección. | Se conserva el estado existente. | No demuestra que el diccionario actual esté vigente. |
| Idioma RTL | Se conservan los metadatos RTL. | Los consumidores pueden consultarlos. | Este proveedor por sí solo no establece la inversión/dirección del diseño nativo. |
Seguridad y privacidad
- No registres tokens de cuenta, identificadores de proyecto ni respuestas privadas de proveedores al diagnosticar la carga de idioma.
- Nunca traduzcas identificadores operativos, valores de pedido, direcciones, teléfonos, coordenadas ni contenido introducido por usuarios como etiquetas de interfaz.
- Mantén los textos alternativos libres de detalles privados de implementación.
- Vincula los resultados tardíos de idioma/diccionario al proyecto actual y a la generación del idioma seleccionado.
Límites y estados de fallo
| Estado | Significado | Respuesta de mantenimiento |
|---|---|---|
| Carga de idioma | Los metadatos o el diccionario siguen pendientes. | Mantén explícita la disponibilidad de los componentes posteriores. |
| Diccionario vacío con texto visible | Se está usando la ruta de texto alternativo/clave. | No declares completa la traducción. |
| Selección guardada, pero texto antiguo | Divergieron la persistencia y el estado del diccionario/cliente. | Reconcilia la generación; no sobrescribas a ciegas. |
| Desmontaje antes de recibir respuesta | El transporte puede devolver datos después de que cambie el consumidor. | Ignora la generación obsoleta y evita actualizar el estado. |
| Marca RTL presente | Los metadatos indican que el idioma es RTL. | Verifica la dirección del diseño nativo por separado. |
| Pantalla con varios idiomas | Algunas claves usaron texto alternativo o conservaron el renderizado anterior. | Audita por separado las fuentes de claves, diccionarios y alternativas. |
Diagnóstico
| Síntoma | Inspeccionar | Diagnóstico seguro |
|---|---|---|
| No persiste el cambio de idioma | Resultado del almacenamiento local frente al estado del proveedor | Usa almacenamiento sintético; no expongas datos de proyecto/cuenta. |
| Algunas etiquetas conservan el idioma anterior | Generación seleccionada, código del cliente de API, resultado del diccionario y claves de fallback | Registra solo la categoría de clave, no valores operativos. |
| La aplicación sigue cargando | Efecto de idioma predeterminado/diccionario y disponibilidad posterior | Prueba con respuestas interceptadas; no uses el proveedor en vivo. |
| El texto RTL aparece sin invertir el diseño | Consumidores de metadatos RTL y configuración de dirección nativa | Trátalo como compatibilidad parcial hasta completar la revisión de plataforma. |
| Un fallback legible oculta una traducción faltante | Cobertura del diccionario y resolución de fallback | Informa la clave y el idioma faltantes, no la carga privada de respuesta. |
Vuelve a revisar cuando cambien el formato del almacenamiento de idiomas, la versión del diccionario, los prefijos de claves, la selección predeterminada, las transiciones de carga/error, el comportamiento del selector, los consumidores RTL o la generación de proyecto/cuenta.
Guías relacionadas: Cambiar idioma · Inicio y carga · Arquitectura de Driver App · Inicio autenticado · Referencia de configuración