{ "examples.actor.blurb": "Quién hizo algo, en palabras: el nombre de una persona, o el agente y la persona por la que actuó. Sin insignia ni icono.", "examples.actor.states.an-agent-acting-for-a-person": "El nombre del agente y, después, la persona en cuyo nombre actuó. Cuando la propia aplicación hizo algo, no muestres nada.", "examples.api-tokens.blurb": "La página de tokens de API: la revelación única, el formulario de creación, la lista y los botones de revocar.", "examples.api-tokens.states.four-tokens-two-of-them-live": "Los formularios de revocar envían a /tokens/revoke, /tokens/revoke-agent y /tokens/revoke-all, bajo la ruta de la propia página. Apúntalos a donde tu aplicación los atienda.", "examples.api-tokens.states.just-created-the-secret-shown-once": "Muestra esto en la respuesta al propio formulario de creación, y no la redirijas: el secreto está en esa respuesta y en ningún otro sitio.", "examples.back-nav.blurb": "El enlace para subir un nivel, encima de una pantalla de detalle o de edición.", "examples.badge.blurb": "Una etiqueta con borde en mayúsculas, para marcas pequeñas y fijas. Distinta de status-pill, que es el estado de un registro.", "examples.box.blurb": "La tarjeta de sección con relleno, y el título que va fuera de ella.", "examples.bulk-bar.blurb": "La franja de cabecera del modo selección, que sustituye a la barra de lista: el recuento, un enlace para ampliar la selección y el menú de acciones.", "examples.bulk-bar.states.three-rows-selected": "El elemento destructivo va al final: la primera entrada es el valor por defecto que dispara Enter en el formulario que lo rodea.", "examples.button.blurb": "Los botones tienen cuatro variantes y tres tamaños, y un enlace puede parecer uno. Para el indicador que muestra un formulario mientras se envía, mira form-foot.", "examples.callout.blurb": "El único vocabulario de avisos: franja con color, icono de tono, título en negrita opcional y un párrafo de cuerpo.", "examples.callout.states.negative-announced-as-an-alert": "role=\"alert\" hace que un lector de pantalla lo anuncie en cuanto aparece. Resérvalo para los mensajes que no pueden esperar.", "examples.choice-field.blurb": "Tarjetas de opción: el grupo de radios o casillas que preferimos. El título se mantiene corto; la descripción explica.", "examples.confirm-form.blurb": "La fila de acciones de la página de confirmación. Las acciones destructivas tienen su propia ruta en vez de un diálogo, así que no hay nada que programar.", "examples.confirm-form.states.ordinary-default-cancel-wording": "El enlace de cancelar dice Cancelar, que es lo habitual. Cámbialo cuando las palabras del propio formulario sean más claras.", "examples.detail-list.blurb": "Lista de definiciones sobre un registro en una pantalla de detalle. La marca mono es para valores de aspecto técnico.", "examples.dropdown.blurb": "Un desplegable sin nada de JavaScript: un botón summary sobre un panel de enlaces normales. Ponlo en una fila junto a aquello sobre lo que actúa, nunca solo en una línea.", "examples.dropdown.states.menu-idiom": "El menú details/summary que hay detrás de los menús de desbordamiento de la cabecera y del filtro de una barra de lista, más un filtro aplicado como etiqueta que se puede quitar.", "examples.empty-state.blurb": "La tarjeta de estado vacío. Un estado vacío con vías para dar los primeros pasos.", "examples.error-page.blurb": "El cuerpo completo de una respuesta de error: el estado, una frase honesta, una vía de vuelta y referencias de 500 que un administrador puede usar.", "examples.error-page.states.500-server-error": "El 500 es el único estado con referencia: quien opera el sistema puede buscarla con grep en los registros.", "examples.error-page.states.anything-else-the-generic-pair": "Cualquier estado sin redacción propia recibe este par genérico: un título que dice que algo va mal y un texto que dice que lo intentes de nuevo.", "examples.field-check.blurb": "El único mecanismo de conmutación: una casilla de verificación real con aspecto de interruptor, sin perder teclado ni lector de pantalla.", "examples.field-date.blurb": "Un campo de fecha nativo, más el combo de lenguaje natural que datetime.js añade cuando el campo lleva data-rst-date. Escribe \"mañana\" en él.", "examples.field-date.states.enhanced-input-type-tomorrow-or-in-3-weeks": "Las palabras que analiza están en data-rst-date-words, aquí en el idioma de la página. i18n/.json las tiene en doce idiomas, así que el campo puede analizar el idioma en el que esté la página, sea cual sea.", "examples.field-date.states.plain-the-bare-native-input": "Sin ningún atributo de mejora, así que datetime.js no encuentra nada. El selector nativo se sigue abriendo.", "examples.field-daterange.blurb": "Un inicio y un fin como un solo fieldset etiquetado. Da a cada campo su propio name y su propio id.", "examples.field-daterange.states.date-and-time-seeded": "Confirma el inicio con el fin todavía vacío y datetime.js rellena el fin una hora más tarde. Nada en el marcado lo hace; lo hace el script.", "examples.field-datetime.blurb": "Una fecha y una hora en un solo campo, un solo valor.", "examples.field-datetime.states.enhanced-input-type-tomorrow-or-in-3-weeks": "Las palabras que analiza están en data-rst-date-words, aquí en el idioma de la página. i18n/.json las tiene en doce idiomas, así que el campo puede analizar el idioma en el que esté la página, sea cual sea.", "examples.field-datetime.states.plain-the-bare-native-input": "Sin ningún atributo de mejora, así que datetime.js no encuentra nada. El selector nativo se sigue abriendo.", "examples.field-money.blurb": "Un importe en una sola moneda. El código de la moneda aparece junto a la etiqueta y se envía con el formulario, así que una moneda que cambió mientras alguien escribía se detecta al guardar.", "examples.field-select.blurb": "La envoltura de campo alrededor de un select nativo. Añade data-rst-select y select.js lo convierte en un combo con filtro; lo que el formulario envía sigue siendo el select nativo. Merece la pena a partir de unas diez opciones.", "examples.field-select.states.hand-written-with-optgroups": "Las opciones agrupadas son optgroup que escribes tú. select.js conserva los grupos en vez de descartarlos; un select también puede rechazar la mejora del todo con data-rst-select=\"false\".", "examples.field-select.states.twelve-options-the-filterable-combobox": "Añade data-rst-select a partir de unas diez opciones. Por debajo, déjalo fuera: buscar entre un puñado de elementos es mobiliario, no ayuda.", "examples.field-text.blurb": "Un campo de texto con etiqueta. El asterisco del marcador de obligatorio es aria-hidden; la señal programática es el atributo required del campo.", "examples.field-text.states.the-headline-field": "Da al campo principal de un formulario, un título o un nombre, rst-input=\"primary\" para un campo más destacado.", "examples.field-textarea.blurb": "La envoltura de field-text alrededor de un textarea.", "examples.field-time.blurb": "La misma envoltura alrededor de un campo de hora nativo. La mejora lee un reloj en vez de un calendario.", "examples.field-url.blurb": "Un campo de dirección web que acepta example.com con o sin https://. Lo que lea el formulario tiene que añadir el esquema y comprobar la dirección.", "examples.field.blurb": "Etiqueta, campo, pista opcional, ayuda y error. El control de tipo texto general, con un ID explícito.", "examples.form-error.blurb": "La línea de resumen de errores de un formulario, role=\"alert\". Déjala fuera cuando no haya error.", "examples.form-foot.blurb": "La fila final de un formulario: un envío principal y un enlace opcional para cancelar. Cancelar es un enlace, porque salir de un formulario es navegar.", "examples.form-foot.states.idle-the-button-before-anything-happens": "Un botón que CAMBIA algo recibe un estado de carga; un botón que solo revela algo —una divulgación, un desplegable, una pestaña— no. busy.js aplica esa regla a todos los botones de envío de todos los formularios, sin nada que activar.", "examples.form-foot.states.working-what-busy-js-writes-on-the-way-out": "Solo el botón que se pulsó: los demás botones de envío del formulario conservan su nombre y su valor, y el formulario queda protegido frente a un segundo envío. data-busy=\"false\" desactiva la regla, en el formulario o en un botón; data-busy-label sustituye el texto. Sin scripts no ocurre nada de esto y el formulario se envía igual que siempre, así que detectar un segundo envío sigue siendo cosa de tu aplicación.", "examples.form-layout.blurb": "Los atributos que dan a un formulario su ritmo y su barra de guardar. Envuelven una serie de campos que compones tú.", "examples.format-abbr.blurb": "La etiqueta muestra el texto completo al pasar el ratón por encima. Eso no funciona en un móvil, y los lectores de pantalla suelen saltárselo. Escribe también las palabras completas la primera vez.", "examples.format-addresses.blurb": "La etiqueta
no es para direcciones postales. Es para decir quién escribió la página. Una dirección de entrega es texto normal. Una lista de personal es una lista.", "examples.format-dates.blurb": "Pon la fecha en una etiqueta