Opciones e idiomas
Agregar una opción#
Las opciones dejan que cada persona cambie cómo se comporta la presencia. La aplicación dibuja el control en la tarjeta de la presencia, y tu código lee el valor.
-
Declarala en el manifiesto:
"options": [ { "type": "boolean", "key": "show_title", "default": true } ] -
Ponele una etiqueta en
locales/es.json, bajooption.y su clave:"option.show_title": "Mostrar el título del video" -
Leela en
read:function read(context) { const page = bestPage(context.pages); if (!page) return null; return { title: context.options.show_title ? page.title : t("private") }; }
Guardá y abrí la página Presencias: el interruptor está en la tarjeta de la presencia. Los otros
tipos, number, text y choice, están en Manifiesto.
Mostrar una opción solo cuando otra está activa#
Agregá when con la clave de una opción booleana:
"options": [
{ "type": "boolean", "key": "show_title", "default": true },
{ "type": "number", "key": "title_length", "default": 64, "min": 16, "max": 128, "when": "show_title" }
]
title_length se oculta mientras show_title está apagada. Tu script igual recibe su valor.
Mostrar una opción solo para algunos valores#
Dale a when las claves de otras opciones y el valor que tiene que tener cada una, o una lista
de valores:
"options": [
{ "type": "choice", "key": "image", "default": "logo", "choices": ["logo", "cover", "none"] },
{ "type": "text", "key": "caption", "default": "", "when": { "image": ["cover", "logo"] } }
]
caption se muestra mientras image es cover o logo. Con varias claves, tienen que cumplirse
todas. Cada valor tiene que ser uno que la otra opción puede tomar, y when mira de 1 a 4
opciones.
Explicar una opción#
Una línea debajo de la opción dice qué hace. Se escribe en los archivos de idioma, bajo help. y
su clave:
"help.caption": "El texto que se ve al pasar el mouse por la imagen."
Ofrecer una lista de opciones#
{ "type": "choice", "key": "line", "default": "channel", "choices": ["channel", "views"] }
Cada valor toma su etiqueta de option.<clave>.<valor>:
"option.line": "Segunda línea",
"option.line.channel": "Canal",
"option.line.views": "Reproducciones"
Escribir los textos por clave#
El script no escribe sus textos directamente. Los pide por clave con t, así que el mismo
código habla todos los idiomas que tenga la carpeta.
{
"description": "Muestra el video que estás viendo.",
"by": "De {name}"
}
t("by", { name: "Manu" }); // "De Manu"
description también es la descripción de la presencia en ese idioma, en la aplicación y en el catálogo.
Agregar un idioma#
- Copiá
locales/en.jsonalocales/es.json. - Traducí los valores. Dejá las claves y las partes
{name}como están.
La aplicación elige el archivo del idioma de la persona. Una clave que falta ahí se muestra en inglés, y una que falta en inglés se muestra como la clave misma.