Tu módulo puede aportar un tema o un diccionario para la interfaz. Los usuarios los eligen en Ajustes → Idioma y tema, junto a los idiomas español/inglés y los temas Oscuro, Claro, Azul marino, Pizarra y Grafito.
El formulario muestra la selección guardada. Cambiar solo el idioma o el tema conserva la otra opción, tanto en Android como en Studio.
Añadir un tema
- Declara las paletas en
manifest.skinsy solicitapresentation.appearance. - Consulta los temas instalados con
host.appearance.snapshot()y aplica uno conhost.appearance.apply(). Ambas llamadas necesitan tambiénappearance.locale.
Utiliza un ID devuelto por snapshot(): contiene autor, módulo y nombre del tema. No lo construyas a mano.
Añadir un idioma
Para ofrecer un idioma, solicita appearance.locale y llama a host.appearance.apply({language, skinId, strings}). En strings, cada clave es un texto original en español y cada valor, su traducción.
- Máximo: 2048 textos, claves de 512 caracteres y traducciones de 1024.
- La petición completa debe caber en 128 KiB.
- Un texto sin traducción conserva el original. Los nombres de juegos y los textos del usuario no se traducen automáticamente.
Ganchos de Apariencia
El proveedor nelkano.appearance publica tres ganchos, versión 1.0.0:
- settings: snapshot consulta la selección y set aplica language/skinId.
- theme-options: añade una opción con label y skinId de una paleta instalada.
- locale-options: añade label, language y strings.
Los datos deben caber en los límites generales de los ganchos. Para un diccionario grande, aplica el idioma desde tu módulo mediante appearance.
Apariencia cambia los colores y textos de los componentes compartidos. Para diseñar la interfaz de tu módulo utiliza los componentes del SDK; un tema no añade vistas Android ni instala un motor nativo V2.
Studio aplica temas e idiomas al visor. En la app, Apariencia es esencial y recupera la elección al iniciar. Un tema de otro módulo está disponible mientras su proveedor siga instalado y activo.