From e2284de7f3d9dfb8348f75b3476234222601a5e3 Mon Sep 17 00:00:00 2001 From: Max Gramser Date: Sat, 19 Sep 2026 15:28:54 +0200 Subject: [PATCH] The editor in Spanish and Portuguese, and Portugal's plural rule for Portuguese Co-Authored-By: Claude Opus 5 --- docs/TRANSLATING.md | 4 +- screen_manager/translations/es.json | 847 ++++++++++++++++++++++++++- screen_manager/translations/pt.json | 851 +++++++++++++++++++++++++++- 3 files changed, 1696 insertions(+), 6 deletions(-) diff --git a/docs/TRANSLATING.md b/docs/TRANSLATING.md index f1d39cd..5df70f6 100644 --- a/docs/TRANSLATING.md +++ b/docs/TRANSLATING.md @@ -98,8 +98,8 @@ The editor and the app's messages work in any language, whatever the screens can | Rule | Languages | Forms | | --- | --- | --- | -| `one_other` | English, Dutch, German, Italian, Spanish, the Nordic languages | one \| other: `1 hour ago \| {n} hours ago` | -| `one_upto_1` | French, Portuguese | the first form for 0 and 1 | +| `one_other` | English, Dutch, German, Italian, Spanish, Portuguese (Portugal), the Nordic languages | one \| other: `1 hour ago \| {n} hours ago` | +| `one_upto_1` | French, Brazilian Portuguese | the first form for 0 and 1 | | `slavic_pl` | Polish | one \| few (2-4, 22-24, ...) \| many | | `east_slavic` | Russian, Ukrainian | one \| few \| many | | `none` | Chinese, Japanese, Korean | one form | diff --git a/screen_manager/translations/es.json b/screen_manager/translations/es.json index ec93699..c667a7f 100644 --- a/screen_manager/translations/es.json +++ b/screen_manager/translations/es.json @@ -389,5 +389,850 @@ } }, "addon": {}, - "editor": {} + "editor": { + "common": { + "undo": "Deshacer", + "online": "En línea", + "offline": "Sin conexión", + "unknown": "desconocido", + "unsaved": "Cambios no guardados", + "cancel": "Cancelar", + "open_integrations": "Abrir Dispositivos y servicios", + "save_send": "Guardar y enviar", + "saving": "Guardando…", + "read_current_data": "Leer datos actuales", + "results": "1 resultado. Sigue escribiendo para acotar. | {n} resultados. Sigue escribiendo para acotar.", + "close": "Cerrar", + "remove": "Eliminar", + "change": "Cambiar", + "loading": "Cargando…", + "back": "← Volver", + "copy": "Copiar" + }, + "nav": { + "new_screen": "Nueva pantalla", + "firmware": "Firmware y USB", + "alerts": "Alertas", + "settings": "Configuración", + "new_screen_detail": "Conectar e instalar" + }, + "api": { + "failed": "No ha funcionado. Recarga la página y vuelve a intentarlo." + }, + "copy": { + "api_key": { + "copied": "Clave API copiada.", + "selected": "La clave API está seleccionada. Cópiala con Ctrl+C o Command+C." + }, + "layout_json": { + "copied": "JSON del diseño copiado.", + "selected": "El JSON del diseño está seleccionado. Cópialo con Ctrl+C o Command+C." + }, + "action_name": { + "copied": "Nombre de la acción copiado.", + "selected": "El nombre de la acción está seleccionado. Cópialo con Ctrl+C o Command+C." + }, + "yaml": { + "copied": "YAML copiado.", + "selected": "El YAML está seleccionado. Cópialo con Ctrl+C o Command+C." + }, + "icon_name": { + "copied": "Nombre del icono copiado.", + "selected": "El nombre del icono está seleccionado. Cópialo con Ctrl+C o Command+C." + }, + "empty_color": { + "copied": "Color vacío copiado.", + "selected": "El color vacío está seleccionado. Cópialo con Ctrl+C o Command+C." + }, + "color_name": { + "copied": "Nombre del color copiado.", + "selected": "El nombre del color está seleccionado. Cópialo con Ctrl+C o Command+C." + } + }, + "sidebar": { + "connection": { + "unreachable": "Página de gestión inaccesible · reintentando…", + "connected": "Conectado a Home Assistant", + "reconnecting": "Reconectando con Home Assistant…" + }, + "search": "Buscar", + "screens": "Pantallas", + "more": "Más", + "refresh": "Recargar", + "update": { + "pill": "Actualizar", + "button": "Actualizar", + "queued": "En cola para actualizar", + "available": "Actualización a {version}", + "no_profile": "No se ha encontrado ningún perfil de ESPHome con este nombre de dispositivo.", + "whats_new": "Novedades", + "full_log": "Registro completo" + }, + "host": { + "hint": "La dirección IP, solo esta vez; el firmware nuevo la comunica por sí mismo.", + "placeholder": "Dirección IP, p. ej. 192.168.1.50", + "label": "Dirección IP", + "start": "Iniciar" + }, + "pending": { + "installed": "Instalada, pero aún no está en Home Assistant. Añade el dispositivo ESPHome descubierto en Configuración → Dispositivos y servicios, pega allí la clave API y activa «Permite que el dispositivo realice acciones de Home Assistant» en Configurar.", + "downloaded": "Firmware descargado; aún no está en Home Assistant. Instálalo en la pantalla con ESPHome Web y luego añade el dispositivo ESPHome descubierto en Configuración → Dispositivos y servicios, pega allí la clave API y permite las acciones de Home Assistant en Configurar.", + "not_flashed": "Aún no está en Home Assistant. ¿Ya has instalado el firmware? Añade el dispositivo ESPHome en Configuración → Dispositivos y servicios y luego permite las acciones de Home Assistant en Configurar. ¿Todavía no? Firmware y USB → {file}." + }, + "copy_api_key": "Copiar clave API" + }, + "palette": { + "groups": { + "screens": "Pantallas", + "actions": "Acciones", + "add": "Añadir a esta pantalla" + }, + "alerts_detail": "Guía rápida y una alerta de prueba", + "settings_detail": "Actualizaciones, Claude", + "nothing_to_save": "Nada que guardar", + "identify": "Identificar esta pantalla", + "identify_detail": "Hace parpadear la retroiluminación y muestra una tarjeta", + "identify_needs": "Necesita un firmware más reciente", + "export": "Exportar diseño", + "export_detail": "Descargar y copiar como JSON", + "placeholder": "Busca pantallas, entidades, acciones…", + "empty": "No hay coincidencias. Escribe parte del nombre de una pantalla, entidad o acción." + }, + "empty": { + "choose": { + "title": "Elige una pantalla", + "text": "Elige una de tus pantallas a la izquierda para cambiar sus mosaicos, su barra superior y su configuración." + }, + "start": { + "title": "Empieza con una pantalla", + "text": "Conecta un CYD o un Guition por USB al equipo de Home Assistant. El perfil, el firmware y la primera instalación se hacen de una vez.", + "button": "Instalar pantalla nueva" + } + }, + "screen_view": { + "confirm": { + "switch": "Tienes cambios sin guardar. ¿Abrir otra pantalla de todos modos?", + "copy": "¿Sustituir el diseño sin guardar por una copia del de la otra pantalla?", + "import": "¿Sustituir el diseño sin guardar por el importado?" + }, + "saved": { + "current": "Guardado. Tu pantalla se está actualizando.", + "other": "Guardado. {name} se está actualizando.", + "other_unnamed": "Guardado. La pantalla se está actualizando.", + "newer_edit": "Guardado. Tu último cambio aún no se ha enviado: vuelve a pulsar Guardar y enviar." + }, + "identified": "{name} parpadea y muestra una tarjeta durante unos segundos.", + "offline": "Sin conexión · los cambios se guardan", + "tabs": { + "layout": "Diseño", + "settings": "Configuración de pantalla" + }, + "sent": "Guardado · enviado a la pantalla", + "all_saved": "Todo guardado", + "more": "Más", + "menu": { + "identify": "Identificar", + "identify_hint": "hace parpadear la pantalla", + "identify_needs": "Necesita el firmware 0.2.31 o posterior", + "inspect_hint": "de Home Assistant", + "copy": "Copiar diseño de…", + "copy_screens": "{n} pantalla | {n} pantallas", + "copy_none": "no hay otra pantalla", + "copy_tiles": "{n} mosaico | {n} mosaicos", + "export": "Exportar diseño", + "import": "Importar diseño…", + "override": "YAML personalizado", + "override_hint": "avanzado", + "override_none": "No se ha encontrado ningún perfil de ESPHome para esta pantalla", + "update": "Actualizar firmware" + } + }, + "layout": { + "removed": "Se ha eliminado {name}", + "no_room": "No hay sitio para este mosaico en la página {page}.", + "no_free_page": "No hay ninguna página libre para un mosaico de página completa. Libera antes una página.", + "page_taken": "Esta pantalla ya tiene un mosaico que lleva a la página {page}.", + "copied": "Diseño de {name} copiado. Pulsa Guardar y enviar cuando te parezca bien.", + "copied_part": "Diseño de {name} copiado: {kept} de {total} mosaicos son compatibles con el firmware de esta pantalla. Pulsa Guardar y enviar cuando te parezca bien.", + "imported": "Diseño importado. Pulsa Guardar y enviar cuando te parezca bien.", + "imported_part": "Diseño importado: {kept} de {total} mosaicos son compatibles con el firmware de esta pantalla. Pulsa Guardar y enviar cuando te parezca bien.", + "not_json": "Eso no es JSON. Exporta antes un diseño o pega uno de otro ESP Screens.", + "no_tiles_in_file": "Este archivo no tiene mosaicos. Se esperaba un diseño exportado desde ESP Screens.", + "count": "{n} página · {tiles} / {limit} mosaicos | {n} páginas · {tiles} / {limit} mosaicos", + "no_tiles": "Añade tu primera luz, escena o dispositivo desde la biblioteca.", + "how_to": "Toca la barra superior o un mosaico para cambiarlo. Arrastra para mover; suelta en la página siguiente para crear una nueva.", + "positions_hint": "Los huecos vacíos y las posiciones fijas funcionan a partir del firmware 0.2.26. Hasta esa actualización, esta pantalla (firmware {firmware}) sube los mosaicos al primer hueco libre.", + "aria": "Diseño de la pantalla", + "add_page": "+ Añadir página", + "max_pages": "Máximo 1 página | Máximo {n} páginas" + }, + "page": { + "label": "Página {page}", + "remove": "Eliminar página", + "remove_title": "Las páginas siguientes suben un puesto", + "edit_bar": "Editar barra superior", + "cell": { + "title": "Hueco vacío. Haz clic para añadir aquí un mosaico o arrastra uno hasta aquí.", + "aria": "Hueco vacío {slot} en la página {page}: añade aquí el siguiente mosaico", + "next": "El siguiente mosaico va aquí", + "empty": "Vacío" + } + }, + "library": { + "title": "Biblioteca", + "entities": "{n} entidad | {n} entidades", + "search": "Busca por nombre, dispositivo o habitación…", + "search_label": "Añadir una entidad", + "filters": { + "all": "Todo", + "light": "Luces", + "climate": "Climatización", + "switch": "Interruptores", + "binary_sensor": "Estado", + "button": "Acciones", + "script": "Scripts", + "fan": "Ventiladores", + "cover": "Persianas", + "scene": "Escenas", + "vacuum": "Aspiradora", + "sensor": "Sensores", + "media_player": "Multimedia", + "weather": "Clima", + "number": "Valores", + "select": "Selectores", + "person": "Personas", + "timer": "Temporizadores", + "screen": "Pantalla" + }, + "room": "Habitación", + "all_rooms": "Todas las habitaciones", + "hide_placed": "Ocultar añadidas", + "hide_placed_title": "Ocultar lo que ya está en esta pantalla", + "all_placed": "Todo lo de aquí ya está en esta pantalla.", + "none_found": "No se han encontrado entidades. Prueba con otro nombre, habitación o filtro.", + "full": "En esta pantalla cabe 1 mosaico. | En esta pantalla caben {n} mosaicos.", + "full_update": "En esta pantalla cabe 1 mosaico; actualiza su firmware para tener 48. | En esta pantalla caben {n} mosaicos; actualiza su firmware para tener 48.", + "hint": "Arrastra a una página o toca + para añadir al primer hueco libre. ⌘K busca en todo." + }, + "domains": { + "light": "Luz", + "climate": "Climatización", + "vacuum": "Aspiradora", + "fan": "Ventilador", + "cover": "Persiana", + "media_player": "Multimedia", + "sensor": "Sensor", + "binary_sensor": "Estado", + "switch": "Interruptor", + "input_boolean": "Interruptor", + "scene": "Escena", + "script": "Script", + "weather": "Clima", + "number": "Valor", + "input_number": "Valor", + "select": "Selector", + "input_select": "Selector", + "button": "Acción", + "input_button": "Acción", + "screen": "Pantalla", + "sun": "Sol", + "timer": "Temporizador", + "person": "Persona", + "camera": "Cámara", + "image": "Imagen", + "entity": "Entidad" + }, + "displays": { + "standard": "estándar", + "watch": "valor grande", + "forecast": "previsión del tiempo", + "graph": "gráfico", + "digital": "reloj digital", + "analog": "reloj analógico", + "sunpath": "recorrido del sol" + }, + "sizes": { + "single": "normal", + "wide": "doble", + "full": "página completa" + }, + "tile": { + "name": "Nombre en la pantalla", + "icon": { + "auto_ha": "Automático (de Home Assistant)", + "auto_default": "Automático (predeterminado)", + "needs_firmware": "La pantalla muestra el icono elegido a partir del firmware 0.2.18." + }, + "goes_to": { + "label": "Lleva a la página", + "empty": "{page} (vacía)", + "needs_firmware": "Los mosaicos de navegación necesitan el firmware 0.2.62: pulsa antes Actualizar en la lista de pantallas.", + "no_page": "Esta pantalla no tiene página {page}, así que un toque abre su última página. Elige otra página.", + "hint": "Al tocar el mosaico se abre esa página." + }, + "display": { + "label": "Presentación", + "digital": "Reloj digital", + "analog": "Reloj analógico", + "standard": "Nombre y estado", + "watch": "Valor grande", + "forecast": "Previsión del tiempo", + "graph": "Gráfico", + "sunpath": "Recorrido del sol", + "no_graph": "Home Assistant no tiene valores numéricos para esta entidad, así que el gráfico queda vacío. Elige otra presentación.", + "no_forecast": "Este servicio meteorológico no tiene previsión diaria en Home Assistant. Elige otra presentación." + }, + "size": { + "label": "Tamaño", + "single": "Normal", + "wide": "Doble ancho", + "full": "Página completa", + "full_hint": "Página completa: un botón grande que se ilumina mientras está encendido; en la parte inferior va un control deslizante, unos controles o un gráfico.", + "needs_firmware": "Un mosaico de página completa necesita el firmware 0.2.62: pulsa antes Actualizar en la lista de pantallas." + }, + "page": { + "label": "Página", + "new": "Página nueva" + }, + "controls": { + "label": "Control directo en el mosaico", + "not_offered": "Home Assistant no ofrece este control para esta entidad, así que en la pantalla queda vacío. Elige otro.", + "full_hint": "En la parte inferior del mosaico de página completa; un toque en cualquier otro sitio funciona como se indica más abajo.", + "wide_hint": "A la derecha del mosaico de doble ancho, como las filas de Home Assistant. Tocar el nombre funciona como se indica más abajo.", + "needs_firmware": "La pantalla muestra el control directo a partir del firmware 0.2.19; hasta entonces, el mosaico se queda como estaba." + }, + "tap": { + "label": "Al tocar", + "auto": "Automático", + "detail": "Abrir control", + "none": "Solo ver", + "toggle": "Encender / apagar", + "action": "Realizar una acción", + "no_toggle": "Home Assistant no puede encender y apagar esto, así que un toque no hace nada. Elige otra opción.", + "toggle_needs_firmware": "La pantalla lo enciende y apaga a partir del firmware 0.2.58: pulsa Actualizar en la lista de pantallas. Hasta entonces, un toque abre su tarjeta.", + "hold": "Mantén pulsado el mosaico para abrir su tarjeta." + }, + "slider": { + "label": "Control deslizante pequeño en el mosaico", + "no": "No", + "yes": "Sí, control directo", + "nothing": "Home Assistant no tiene nada que un control deslizante pueda cambiar en esta entidad. Elige No." + }, + "history": { + "label": "Historial", + "hours": "{n} hora | {n} horas" + }, + "background": { + "label": "Fondo pastel", + "aria": "Fondo: {name}" + } + }, + "tile_card": { + "label": "{name}, hueco {slot} de la página {page}. Enter: configurar; teclas de flecha: mover", + "remove": "Eliminar mosaico", + "remove_named": "Eliminar {name}" + }, + "action": { + "label": "Acción", + "asking": "Preguntando a Home Assistant qué acciones tiene esta entidad…", + "not_answering": "Home Assistant no responde ahora mismo. Vuelve a intentarlo en un momento.", + "choose": "Elige una acción", + "search": "Busca, por ejemplo alternar, posición o reproducir", + "search_label": "Buscar una acción", + "none_found": "No se ha encontrado ninguna acción.", + "gone": "Home Assistant ya no ofrece esta acción para esta entidad, así que un toque no hace nada. Elige otra.", + "optional": "{name} (opcional)", + "not_set": "Sin definir", + "on": "Activado", + "off": "Desactivado", + "needs": "Home Assistant necesita {fields}.", + "needs_firmware": "La pantalla realiza acciones a partir del firmware 0.2.58: pulsa Actualizar en la lista de pantallas. Hasta entonces, un toque funciona como Automático." + }, + "icon": { + "label": "Icono", + "none": "Sin icono", + "search": "Busca, por ejemplo lámpara, música o puerta", + "search_label": "Buscar un icono", + "none_text_only": "Sin icono, solo texto", + "aria": "Icono: {name}", + "none_found": "No se ha encontrado ningún icono." + }, + "inspect": { + "title": "Datos actuales", + "subtitle": "Conexión, estado y propiedades compatibles", + "reading": "Leyendo…", + "fetching": "Obteniendo el estado actual de HA…", + "status": "Estado: {status}", + "options": "Control deslizante pequeño: {slider} · Presentación: {display} · Tamaño: {size} · Control: {control} · Fondo: {background}", + "yes": "sí", + "no": "no", + "control_none": "ninguno", + "background_default": "Predeterminado", + "read_again": "Volver a leer" + }, + "topbar": { + "removed": "Se ha eliminado {name} de la barra superior", + "full": "En la barra superior cabe 1 elemento. | En la barra superior caben {n} elementos.", + "already": "Esto ya está en la barra superior.", + "title": "Barra superior", + "aria": "Barra superior: {name}", + "builtin": "De la propia pantalla; también funciona sin Home Assistant", + "items": "{used} de {n} elemento | {used} de {n} elementos", + "name": "Izquierda: nombre", + "name_placeholder": "Por ejemplo: Salón", + "right": "Derecha: hora, sensores o un reloj", + "item_label": "{name}, hueco {slot}. Enter: configurar; flechas: mover", + "remove_named": "Eliminar {name} de la barra superior", + "max": "Máximo 1 elemento | Máximo {n} elementos", + "add_title": "Añade la hora, la fecha, el reloj analógico o una entidad", + "add_button": "+ Añadir hora, fecha o una entidad", + "hint": { + "overflow": "No todo cabe junto al nombre: la pantalla omite los elementos con borde discontinuo. Elimina uno o elige un nombre más corto.", + "reorder": "Arrastra para reordenar; toca un elemento para configurarlo.", + "needs_firmware": "Los sensores, la fecha y el reloj analógico aparecen a partir del firmware {version}; hasta esa actualización, esta pantalla muestra el nombre y, si la hora está en la barra, el reloj." + }, + "detail": { + "hidden": "Oculto: ahora no está activo", + "overflow": "No cabe junto al nombre", + "dial": "Esfera" + }, + "live": { + "hidden": "Oculto ahora mismo: no está activo", + "overflow": "Ahora mismo no cabe junto al nombre", + "looks": "Así se ve en la pantalla" + }, + "analog_sample": "Esfera pequeña con la hora", + "content": { + "label": "Qué mostrar", + "hint": "«Último cambio» sigue contando en la propia pantalla: «Justo ahora», «Hace 5 min», «Ayer»." + }, + "auto_icon": "Automático (como en Home Assistant)", + "show": { + "label": "Mostrar", + "hint": "«Solo cuando está activo» oculta el elemento mientras está apagado, cerrado, fuera o en 0. Útil para una puerta abierta, una lavadora en marcha o quién está en casa." + }, + "clock_24": "Reloj de 24 horas · cámbialo en {settings}", + "clock_12": "Reloj de 12 horas · cámbialo en {settings}", + "clock_settings": "Configuración → Idioma y región", + "date_hint": "Hoy: {date}. La fecha sigue el reloj de la propia pantalla.", + "up": "↑ Subir", + "down": "↓ Bajar", + "add": { + "title": "Añadir a la barra superior", + "slots": "{used} de {n} hueco usado | {used} de {n} huecos usados", + "builtin": "De la propia pantalla", + "added": "Ya añadido", + "suggestions": "Sugerencias de Home Assistant", + "entity": "Una entidad", + "search": "Busca por nombre, habitación o entidad, p. ej. temperatura o puerta", + "search_label": "Buscar una entidad para la barra superior", + "none_found": "No se han encontrado entidades." + } + }, + "screen_settings": { + "groups": { + "brightness": "Brillo", + "night": "Noche", + "screen": "Pantalla" + }, + "rows": { + "brightness": "Brillo", + "dark_mode": "Modo oscuro", + "standby_enabled": "Reposo automático", + "standby_seconds": "Reposo tras", + "standby_brightness": "Brillo en reposo", + "night_enabled": "Modo noche", + "night_start": "Empieza", + "night_end": "Termina", + "night_brightness": "Brillo nocturno", + "auto_home": "Volver a la página 1", + "auto_home_seconds": "Tras", + "home_on_standby": "También en reposo", + "swipe_pages": "Deslizar entre páginas", + "page_buttons": "Botones de página", + "rotation": "Rotación" + }, + "duration": { + "seconds": "{n} s", + "minutes": "{n} min", + "hours": "{n} h", + "hours_minutes": "{h} h {m}" + }, + "time": { + "am": "{time} a. m.", + "pm": "{time} p. m." + }, + "other_screen_busy": "Aún se está guardando la configuración de la otra pantalla. Vuelve a intentarlo en un momento.", + "reach": { + "intro": "Los botones de página y el deslizamiento están desactivados, así que solo los mosaicos «Ir a la página» cambian de página.", + "pages": "la página {list} | las páginas {list}", + "tiles": "Tienes {n} mosaico «Ir a la página», que lleva a {targets}. | Tienes {n} mosaicos «Ir a la página», que llevan a {targets}.", + "tiles_missing_one": "Tienes {n} mosaico «Ir a la página», que lleva a {targets}, pero ninguno a {missing}, así que no puedes llegar a ella. | Tienes {n} mosaicos «Ir a la página», que llevan a {targets}, pero ninguno a {missing}, así que no puedes llegar a ella.", + "tiles_missing_more": "Tienes {n} mosaico «Ir a la página», que lleva a {targets}, pero ninguno a {missing}, así que no puedes llegar a ellas. | Tienes {n} mosaicos «Ir a la página», que llevan a {targets}, pero ninguno a {missing}, así que no puedes llegar a ellas.", + "none": "No tienes mosaicos «Ir a la página».", + "none_missing_one": "No tienes mosaicos «Ir a la página» que lleven a {missing}, así que no puedes llegar a ella.", + "none_missing_more": "No tienes mosaicos «Ir a la página» que lleven a {missing}, así que no puedes llegar a ellas.", + "cut_off": "Los mosaicos que llevan a {pages} solo están en páginas a las que no puedes llegar.", + "no_way_back": "Desde {pages} ningún mosaico lleva de vuelta a la página 1." + }, + "status": { + "offline": "Esta pantalla está sin conexión. Podrás cambiar su configuración cuando vuelva.", + "screen": "Los cambios se aplican al instante en la pantalla, y aparecen aquí cuando se cambian allí.", + "app": "Los cambios se aplican al instante. Con el firmware 0.2.49, la pantalla los guarda ella misma." + }, + "unavailable": "Esta entidad está desactivada en Home Assistant o la pantalla se está reiniciando.", + "lower": "{name}: menos", + "higher": "{name}: más" + }, + "update": { + "starting": "Iniciando la actualización…", + "building": "Compilando el firmware…", + "writing": "Grabando el firmware por Wi-Fi…", + "phases": { + "install": "Compilando e instalando…", + "verify": "Esperando a que vuelva la pantalla…", + "settle": "Comprobando que se mantiene estable…" + }, + "new_language": "Idioma nuevo: {name}" + }, + "settings": { + "updates": { + "auto_on": "Ahora las pantallas se actualizarán automáticamente por la noche.", + "auto_off": "Las actualizaciones automáticas están desactivadas.", + "title": "Actualizaciones de firmware", + "busy": "Actualizando al firmware {version}…", + "no_screens": "Aún no hay ninguna pantalla emparejada. Las pantallas nuevas reciben el firmware {version}.", + "available": "El firmware {version} está disponible para {n} pantalla. | El firmware {version} está disponible para {n} pantallas.", + "current": "Todas las pantallas tienen el firmware {version}.", + "all": "Actualizar 1 pantalla | Actualizar las {n} pantallas", + "whats_new": "Novedades del firmware {version}", + "auto_label": "Actualizar automáticamente cada noche", + "auto_hint": "Entre las 03:00 y las 06:00, una pantalla cada vez. Se detiene si hay un error y lo notifica en Home Assistant." + }, + "claude": { + "installed": "Habilidad instalada. Claude Code la detecta al momento.", + "installed_restart": "Habilidad instalada. Reinicia Claude Code una vez para que encuentre la nueva carpeta de habilidades.", + "text": "Enseña a Claude a usar ESP Screens y luego pídele: «Muestra una alerta en todas mis pantallas cuando el buzón esté lleno». Claude conoce los eventos de alerta y cada campo, color e icono.", + "install": "Instalar para Claude Code", + "install_again": "Volver a instalar", + "update": "Actualizar la habilidad", + "not_installed": "No instalada", + "installed_chip": "● Instalada", + "newer": "Instalada · hay una versión más reciente", + "writes": "Para Claude Code en Home Assistant. Escribe un archivo en {path}; al volver a instalar se sustituye.", + "download": "Descargar para claude.ai", + "upload": "Sube el zip en Claude, en Personalizar → Habilidades." + }, + "title": "Todo lo que rodea a tus pantallas.", + "back": "← Mis pantallas", + "screens": { + "title": "Pantallas", + "text": "Añade una pantalla, o compila y reinstala el firmware de una que ya tengas.", + "firmware_detail": "Compilar e instalar por USB o Wi-Fi" + }, + "language": { + "title": "Idioma y región", + "screen_language": "Idioma de las pantallas", + "auto": "Idioma de Home Assistant ({name})", + "auto_plain": "Idioma de Home Assistant", + "ha_missing": "Las pantallas usan el inglés hasta que el idioma de Home Assistant esté disponible.", + "unchecked": "{name} · aún sin revisar, se agradece ayuda", + "help": "{name} aún no está revisado; se agradece ayuda: {guide}", + "guide": "cómo traducir", + "update_hint": "Tras un cambio, cada pantalla necesita una actualización de firmware, una compilación por pantalla: con su botón Actualizar o en las actualizaciones nocturnas.", + "time": "Formato de hora", + "time_auto": "Automático, según el idioma ({clock})", + "clock_24": "24 horas", + "clock_12": "12 horas", + "numbers": "Formato numérico", + "numbers_auto": "Automático, según el idioma ({example})", + "profile": "Tu perfil de Home Assistant: {formats}", + "use_profile": "Usar estos", + "editor_hint": "El propio editor usa el idioma de tu perfil de Home Assistant.", + "saved": "Guardado.", + "saved_language": "Guardado. Cada pantalla adoptará el nuevo idioma con su próxima actualización." + }, + "alerts": { + "text": "Una tarjeta a pantalla completa desde una automatización, en una pantalla o en todas. La guía rápida tiene los nombres de las acciones, los campos, los iconos y los colores, y un formulario para probar una alerta.", + "detail": "Notificaciones a pantalla completa, desde una automatización" + } + }, + "firmware": { + "title": "Compilar e instalar el firmware de las pantallas", + "intro": "La CLI de ESPHome integrada usa tu propio perfil (YAML con claves) y tus secretos. Elige el perfil de la pantalla y luego un puerto USB (pantalla conectada al equipo de Home Assistant), {ota} con el nombre de host, o {download} para instalar el firmware en la pantalla desde tu propio ordenador. {check} solo valida, {build} compila y {install} instala el firmware en la pantalla. Tus mosaicos se quedan como están en ESP Screens. La primera compilación tarda unos minutos.", + "ota": "Wi-Fi / OTA", + "download": "Descargar", + "check": "Comprobar", + "build": "Solo compilar", + "install": "Compilar e instalar", + "build_download": "Compilar y descargar", + "no_cli": "Falta la CLI de ESPHome. Actualiza la aplicación a la versión 0.2.0.", + "choose": "Elige el perfil que corresponda y luego un puerto USB, una dirección IP o Descargar.", + "profile": "Perfil de ESPHome", + "install_to": "Instalar en", + "no_board": "USB · aún no se ha encontrado ninguna placa en el equipo de Home Assistant", + "download_target": "Descargar · instalar desde tu propio ordenador", + "host": "Dirección IP o nombre de host", + "download_file": "Descargar {name}", + "download_how": "Instálalo en la pantalla con {esphome_web} en Chrome o Edge: Connect, elige el puerto USB de la pantalla, Install y selecciona este archivo. Contiene tu contraseña de Wi-Fi y las claves de la pantalla: no lo compartas." + }, + "installer": { + "title": { + "setup": "Conectar e instalar.", + "saved": "Perfil guardado.", + "running": "Un momento…", + "ready": "Listo para descargar.", + "done": "Hecho.", + "failed": "No ha funcionado." + }, + "intro": "ESP Screens crea el perfil propio de la pantalla con claves únicas y compila el firmware. Conecta la pantalla con un cable USB de datos al equipo donde se ejecuta Home Assistant, o descarga el firmware e instálalo en la pantalla desde tu propio ordenador.", + "board": "¿Qué pantalla tienes?", + "board_cyd": "CYD · 2,8 pulgadas", + "board_guition": "Guition · 4 pulgadas", + "name": "Nombre", + "name_placeholder": "Pantalla del salón", + "device_name": "Nombre del dispositivo", + "customize": "personalizar", + "name_hint": "Cada pantalla tiene su propio perfil con sus propias claves. ¿Cuatro pantallas? Haz esto cuatro veces con un nombre distinto.", + "device_name_hint": "Letras minúsculas, números y guiones. Un nombre distinto para cada pantalla.", + "wifi": { + "title": "Wi-Fi", + "ssid": "Nombre de la red Wi-Fi (2,4 GHz)", + "password": "Contraseña de la Wi-Fi", + "new": "Rellénalo una sola vez: ESP Screens lo guarda en el secrets.yaml de ESPHome y las siguientes pantallas lo usan automáticamente.", + "missing": "A tu secrets.yaml de ESPHome aún le faltan los datos de la Wi-Fi. ESP Screens solo rellena las líneas que faltan.", + "ready": "La Wi-Fi se toma de tu secrets.yaml de ESPHome.", + "invalid": "El secrets.yaml de la carpeta de ESPHome no es un YAML válido. Corrige antes el archivo; no se sobrescribirá." + }, + "install_via": "Instalar mediante", + "later": "Más tarde · solo guardar el perfil", + "target": { + "usb": "Conecta la pantalla con un cable USB de datos al equipo de Home Assistant; la lista se actualiza sola. O elige Descargar para usar tu propio ordenador.", + "download": "Descarga el firmware e instálalo en la pantalla desde tu propio ordenador, con Chrome o Edge. Después, las actualizaciones van por Wi-Fi.", + "later": "El perfil se guarda en la carpeta de ESPHome. Puedes instalarlo más tarde desde Firmware y USB o desde ESPHome Device Builder.", + "several": "Hay más de una placa conectada: elige el puerto de esta pantalla.", + "once": "Una vez por USB; después, todo es inalámbrico." + }, + "install": "Instalar", + "save_profile": "Guardar perfil", + "busy": "Ya hay una compilación o instalación en curso ({file}). Espera a que termine.", + "no_cli": "A esta instalación le falta la CLI de ESPHome; solo se puede guardar el perfil.", + "progress": { + "saved": "{file} está en la carpeta de ESPHome", + "writing": "Grabando el firmware en {name}…", + "building": "Compilando el firmware…", + "ready": "El firmware para {name} está listo", + "installed": "El firmware ya está en {name}", + "build_failed": "Error en la compilación", + "install_failed": "Error en la instalación" + }, + "detail": { + "saved": "Instálalo más tarde desde Firmware y USB: elige este perfil y luego el puerto USB del equipo de Home Assistant, o Descargar para instalar el firmware en la pantalla desde tu propio ordenador. Guarda la clave API para el emparejamiento:", + "uploading": "No desconectes todavía el cable USB.", + "building": "La primera compilación tarda unos minutos en una Raspberry Pi. Puedes salir de esta página: la instalación sigue en marcha y la volverás a encontrar en Nueva pantalla.", + "building_download": "La primera compilación tarda unos minutos en una Raspberry Pi. Puedes salir de esta página: la compilación sigue en marcha y la volverás a encontrar en Nueva pantalla.", + "downloaded": "Instálalo en la pantalla desde tu propio ordenador y luego empareja la pantalla con Home Assistant.", + "booted": "La pantalla arranca y se conecta a tu Wi-Fi. Empareja ahora la pantalla con Home Assistant:", + "booted_cyd": "La pantalla arranca y se conecta a tu Wi-Fi. El CYD pide primero una calibración táctil: toca las cruces. Empareja ahora la pantalla con Home Assistant:", + "see_log": "Consulta el registro de abajo." + }, + "download_steps": { + "plug": "{bold} con un cable USB de datos.", + "plug_bold": "Conecta la pantalla a tu ordenador", + "open": "{bold} en Chrome o Edge, haz clic en Connect y elige el puerto USB de la pantalla.", + "open_bold": "Abre {esphome_web}", + "install": "{bold} y selecciona {file}. La pantalla se reinicia y se conecta a tu Wi-Fi.", + "install_cyd": "{bold} y selecciona {file}. La pantalla se reinicia y se conecta a tu Wi-Fi. El CYD pide primero una calibración táctil: toca las cruces.", + "install_bold": "Haz clic en Install" + }, + "download_keep": "El archivo contiene tu contraseña de Wi-Fi y las claves de la pantalla: no lo compartas.", + "api_key": "Clave API", + "pairing": { + "ha": "{bold} Esto se hace fuera de ESP Screens. Home Assistant descubre {name} como dispositivo ESPHome; haz clic en Añadir. ¿No aparece? Añade ESPHome manualmente con la dirección IP de la pantalla.", + "ha_bold": "Ve a Home Assistant → Configuración → Dispositivos y servicios.", + "key": "{bold} de arriba cuando Home Assistant pida la clave de cifrado.", + "key_bold": "Pega la clave API", + "actions": "{bold} integración ESPHome → Configurar → «Permite que el dispositivo realice acciones de Home Assistant». Sin esto, la pantalla lo ve todo pero no controla nada.", + "actions_bold": "Permite las acciones de HA:", + "tiles": "{bold} De vuelta en ESP Screens, la pantalla aparece en la lista de la izquierda en unos treinta segundos; hasta entonces se muestra ahí como «aún no está en Home Assistant».", + "tiles_bold": "Elige tus mosaicos." + }, + "log": "Registro de ESPHome", + "retry": "Reintentar", + "another": "Instalar otra pantalla", + "start_over": "Empezar de nuevo", + "done": "Hecho" + }, + "alerts": { + "eyebrow": "Alertas · guía rápida", + "title": "Una notificación a pantalla completa, desde una automatización.", + "intro": "Cada pantalla tiene la acción {action}. Coloca una tarjeta por encima de todo, despierta la pantalla y mantiene la retroiluminación al brillo normal hasta que alguien toque el botón o se agote el tiempo de espera. Home Assistant no muestra explicaciones ni desplegables para las acciones de ESPHome; aquí tienes todo lo que puedes rellenar.", + "loading": "La guía rápida aún se está cargando; un momento.", + "example": { + "title": "Hay alguien en la puerta", + "subtitle": "Puerta 3, trasera", + "button": "Voy" + }, + "sections": "Secciones", + "nav": { + "try": "Pruébalo", + "screens": "Tus pantallas", + "howto": "En una automatización", + "all": "Todas las pantallas", + "fields": "Los campos", + "icons": "Iconos", + "colors": "Colores", + "behaviour": "Comportamiento", + "events": "Eventos", + "tips": "Consejos" + }, + "try": { + "text": "Envía ahora una alerta, con los mismos campos que envía una automatización. La pantalla muestra la tarjeta y, con el parpadeo activado, hace parpadear la retroiluminación.", + "screen": "Pantalla", + "all": "Todas las pantallas (listas: {ready})", + "not_ready": "{name} · no está lista", + "title": "Título", + "subtitle": "Subtítulo", + "icon": "Icono", + "color": "Color", + "button": "Texto del botón", + "timeout": "Tiempo de espera (segundos; 0 espera al botón)", + "flash": "Hacer parpadear la retroiluminación", + "flash_hint": "Cuatro veces cuando llega la alerta.", + "sending": "Enviando…", + "send": "Enviar alerta", + "sent_all": "Enviada a {n} pantalla. | Enviada a {n} pantallas.", + "sent_to": "Enviada a {name}.", + "sent_one": "Enviada a la pantalla.", + "skipped": "Se ha omitido 1 pantalla (sin conexión o firmware antiguo). | Se han omitido {n} pantallas (sin conexión o firmware antiguo).", + "left_empty": "Se dejaron vacíos: {fields}.", + "nothing": "Ninguna pantalla ha podido mostrarla: comprueba que haya una pantalla en línea con el firmware {version} o posterior." + }, + "white": "Blanco (predeterminado)", + "screens": { + "text": "Cada pantalla tiene su propia acción, con el nombre del dispositivo en ella. A partir del firmware {version}; actualiza una pantalla más antigua con su botón Actualizar en Pantallas.", + "none": "Aún no hay ninguna pantalla emparejada. Instala una desde Nueva pantalla; la acción aparece en cuanto Home Assistant ve la pantalla.", + "ready": "● firmware {version}", + "update": "Hay que actualizar · firmware {version}", + "unknown": "Nombre del dispositivo desconocido · actualiza la pantalla", + "show": "Mostrar alerta", + "dismiss": "Descartar alerta" + }, + "howto": { + "add": "Pulsa {add} y busca {esphome}. Elige la acción de tu pantalla: Home Assistant la llama «Performs the action show_alert of the node {device}».", + "add_bold": "Añadir acción", + "device": "nombre del dispositivo", + "fields": "{bold} Home Assistant pide los siete; deja vacío lo que no uses ({empty}, {zero}, desactivado).", + "fields_bold": "Rellena los campos.", + "yaml": "¿Prefieres YAML? Elige {edit} en la acción y pega el ejemplo de abajo.", + "example_for": "Ejemplo para", + "no_screen": "una pantalla (aún sin emparejar)" + }, + "edit_yaml": "Editar en YAML", + "copy_yaml": "Copiar YAML", + "all": { + "title": "Todas las pantallas a la vez", + "text": "Dispara el evento {show} con los mismos campos y ESP Screens pasa la alerta a todas las pantallas en línea, incluidas las que añadas más tarde. {dismiss} la quita en todas. En una automatización, añade la acción {event} o pega el ejemplo en {edit}. Omite los campos que no uses. Para esto, ESP Screens tiene que estar en marcha.", + "event": "Disparar evento manual" + }, + "fields": { + "text": "El texto es libre; el límite es en bytes, y una letra acentuada cuenta como dos. Lo que no cabe acaba en puntos suspensivos (título) o se descarta (subtítulo).", + "field": "Campo", + "type": "Tipo", + "what": "Qué hace", + "example": "Ejemplo", + "limit": "Límite", + "types": { + "string": "texto", + "int": "número", + "bool": "activado / desactivado", + "entity": "entidad" + }, + "bytes": "CYD {cyd} · Guition {guition} bytes", + "seconds": "de 0 a 86400 s", + "camera_limit": "Guition, firmware 0.2.57+" + }, + "icons": { + "text": "Escribe el nombre en {field}, por ejemplo {example}. También funcionan {mdi} y el código hexadecimal ({hex}). El firmware solo incluye estos iconos; cualquier otro nombre muestra el triángulo de advertencia. Toca un icono para copiar su nombre.", + "handy": "Útiles para notificaciones", + "search_label": "Buscar un icono", + "search": "Busca por nombre o descripción…", + "extra": "También disponibles: iconos de control y del tiempo", + "copy": "Copiar {name}", + "none": "No hay ningún icono para «{query}». Los nombres desconocidos muestran el triángulo de advertencia ({fallback})." + }, + "colors": { + "text": "Escribe el nombre en {field}. Son los tonos pastel de los mosaicos, con texto oscuro. Vacío o desconocido da la tarjeta blanca. Toca para copiar." + }, + "behaviour": { + "wakes": "{bold} Una alerta despierta al instante una pantalla atenuada u oscura y aparece por encima de cualquier página, de cualquier tarjeta de luz abierta y de la capa de reposo.", + "wakes_bold": "Despierta la pantalla.", + "on": "{bold} Mientras se muestra la tarjeta, la retroiluminación se mantiene al brillo normal. El reposo y el modo noche quedan en pausa. Tras pulsar el botón, el tiempo de reposo normal vuelve a empezar.", + "on_bold": "Encendida hasta pulsar el botón.", + "timeout": "{bold} {zero} espera al botón, tarde lo que tarde. Con {minute} la tarjeta desaparece al cabo de un minuto, pero el botón la cierra antes.", + "timeout_bold": "Tiempo de espera.", + "blinking": "{bold} {flash} hace parpadear la retroiluminación cuatro veces al llegar la alerta (alrededor de un segundo) y luego deja la pantalla encendida.", + "blinking_bold": "Parpadeo.", + "replacing": "{bold} Una alerta nueva sustituye a la actual; no se apilan. La alerta sustituida se notifica como {replaced}.", + "replacing_bold": "Sustitución.", + "closing": "{bold} {dismiss} quita la tarjeta, por ejemplo si la puerta ya está abierta. Sin alerta, esa acción no hace nada.", + "closing_bold": "Cierre remoto.", + "beside": "{bold} no hace nada; solo el botón la cierra. Así, un toque para despertar la pantalla nunca descarta la alerta por accidente.", + "beside_bold": "Tocar fuera de la tarjeta" + }, + "events": { + "text": "Cada vez que termina una alerta se dispara el evento {event} con {action}, {title}, {screen} (el nombre del dispositivo) y el {device_id} que añade Home Assistant. Se puede ver en Configuración → Herramientas → Eventos.", + "when": "Cuándo", + "wait": "Esperar a que alguien pulse el botón" + }, + "tips": { + "color": "Usa un {bold}: naranja para la puerta, rojo para humo o agua, verde para «hecho». El texto siempre se queda oscuro y legible.", + "color_bold": "color para cada tipo de notificación", + "short": "Mantén el título {bold}; una pantalla muestra unos veinte caracteres en una línea y termina un título más largo con puntos suspensivos. Pon los detalles en el subtítulo.", + "short_bold": "corto", + "button": "Un {bold} convierte la notificación en una pregunta: «Voy», «Visto», «Apagar». Después, el evento te dice quién respondió.", + "button_bold": "texto de botón propio", + "resolve": "Para una alerta que se resuelve sola (se abre la puerta, alguien saca la ropa de la lavadora), ciérrala en la misma automatización con {dismiss}.", + "every": "¿Todas las pantallas? Dispara {event} una vez (consulta «Todas las pantallas a la vez»). Las pantallas siguen funcionando por separado y cada una informa con su propio {screen}.", + "claude": "¿Prefieres {bold} que te haga la automatización? Instala la habilidad de ESP Screens en Configuración → Claude.", + "claude_bold": "pedirle a Claude" + } + }, + "override": { + "eyebrow": "Avanzado · personalización local", + "title": "YAML personalizado", + "title_named": "YAML personalizado · {name}", + "intro": "Este pequeño archivo es tuyo. Se carga después del paquete común de las pantallas y se mantiene cuando ESP Screens se actualiza. Cambia aquí detalles propios del hardware, como el modelo de pantalla.", + "safe_title": "¿Qué se puede cambiar sin riesgo?", + "safe_text": "Las secciones display, touchscreen y substitutions, los pines y otros detalles del dispositivo. El nombre, la Wi-Fi, la API, OTA y los enlaces a los paquetes los sigue gestionando ESP Screens.", + "active": "Activo", + "ready": "Listo para vincular", + "editor_label": "YAML personalizado local", + "use_example": "Usar ejemplo", + "clear": "Vaciar", + "characters": "1 carácter | {n} caracteres", + "lines": "1 línea | {n} líneas", + "save_check": "Guardar y comprobar", + "save": "Guardar YAML", + "no_profile": "No se ha encontrado ningún perfil de ESPHome para esta pantalla.", + "attached": "Los cambios de aquí se aplican en la próxima compilación.", + "not_attached": "Guarda una vez para vincular este archivo al perfil.", + "saving": "Comprobando y guardando…", + "saved": "Guardado. El YAML personalizado se conserva en las actualizaciones de firmware.", + "saved_toast": "YAML personalizado guardado.", + "checking": "Guardado. ESPHome está comprobando el perfil completo…", + "checking_profile": "ESPHome está comprobando el perfil…", + "checking_stage": "ESPHome está comprobando el perfil… {stage}", + "valid": "El perfil completo es válido. Ya puedes compilar e instalar sin riesgo.", + "rejected": "ESPHome ha rechazado el perfil completo. Consulta Firmware y USB para ver el registro completo.", + "confirm_example": "¿Sustituir el texto actual por el ejemplo?", + "example_loaded": "Ejemplo cargado. Guárdalo cuando estés listo.", + "confirm_clear": "¿Vaciar el YAML personalizado local?", + "cleared": "El YAML personalizado quedará vacío cuando guardes." + }, + "mockup": { + "home": "Casa", + "unknown": "Desconocido" + } + } } diff --git a/screen_manager/translations/pt.json b/screen_manager/translations/pt.json index 864422f..ec72e72 100644 --- a/screen_manager/translations/pt.json +++ b/screen_manager/translations/pt.json @@ -3,7 +3,7 @@ "name": "Português", "english": "Portuguese", "script": "latin", - "plural": "one_upto_1", + "plural": "one_other", "clock": "24", "checked": false }, @@ -109,7 +109,7 @@ "no_network": "Sem rede" }, "settings": { - "title": "Configuração", + "title": "Definições", "brightness": "Brilho", "night": "Noite", "screen": "Ecrã", @@ -389,5 +389,850 @@ } }, "addon": {}, - "editor": {} + "editor": { + "common": { + "undo": "Desfazer", + "online": "Online", + "offline": "Offline", + "unknown": "desconhecido", + "unsaved": "Alterações não guardadas", + "cancel": "Cancelar", + "open_integrations": "Abrir Dispositivos & serviços", + "save_send": "Guardar e enviar", + "saving": "A guardar…", + "read_current_data": "Ler dados atuais", + "results": "{n} resultado. Continue a escrever para filtrar. | {n} resultados. Continue a escrever para filtrar.", + "close": "Fechar", + "remove": "Remover", + "change": "Alterar", + "loading": "A carregar…", + "back": "← Voltar", + "copy": "Copiar" + }, + "nav": { + "new_screen": "Novo ecrã", + "firmware": "Firmware e USB", + "alerts": "Alertas", + "settings": "Definições", + "new_screen_detail": "Ligar e instalar" + }, + "api": { + "failed": "Não funcionou. Recarregue a página e tente novamente." + }, + "copy": { + "api_key": { + "copied": "Chave API copiada.", + "selected": "A chave API está selecionada. Copie-a com Ctrl+C ou Command+C." + }, + "layout_json": { + "copied": "JSON do layout copiado.", + "selected": "O JSON do layout está selecionado. Copie-o com Ctrl+C ou Command+C." + }, + "action_name": { + "copied": "Nome da ação copiado.", + "selected": "O nome da ação está selecionado. Copie-o com Ctrl+C ou Command+C." + }, + "yaml": { + "copied": "YAML copiado.", + "selected": "O YAML está selecionado. Copie-o com Ctrl+C ou Command+C." + }, + "icon_name": { + "copied": "Nome do ícone copiado.", + "selected": "O nome do ícone está selecionado. Copie-o com Ctrl+C ou Command+C." + }, + "empty_color": { + "copied": "Cor vazia copiada.", + "selected": "A cor vazia está selecionada. Copie-a com Ctrl+C ou Command+C." + }, + "color_name": { + "copied": "Nome da cor copiado.", + "selected": "O nome da cor está selecionado. Copie-o com Ctrl+C ou Command+C." + } + }, + "sidebar": { + "connection": { + "unreachable": "Página de gestão inacessível · a tentar novamente…", + "connected": "Ligado ao Home Assistant", + "reconnecting": "A ligar novamente ao Home Assistant…" + }, + "search": "Procurar", + "screens": "Ecrãs", + "more": "Mais", + "refresh": "Recarregar", + "update": { + "pill": "Atualizar", + "button": "Atualizar", + "queued": "Na fila para atualizar", + "available": "Atualização para {version}", + "no_profile": "Não foi encontrado nenhum perfil ESPHome com este nome de dispositivo.", + "whats_new": "Novidades", + "full_log": "Registo completo" + }, + "host": { + "hint": "O endereço IP, só desta vez; o firmware novo passa a comunicá-lo sozinho.", + "placeholder": "Endereço IP, p. ex. 192.168.1.50", + "label": "Endereço IP", + "start": "Iniciar" + }, + "pending": { + "installed": "Instalado, mas ainda não está no Home Assistant. Adicione o dispositivo ESPHome descoberto em Configuração → Dispositivos & serviços, cole lá a chave API e ative «Permitir que o dispositivo execute ações do Home Assistant» em Configurar.", + "downloaded": "Firmware descarregado; ainda não está no Home Assistant. Instale-o no ecrã com o ESPHome Web e depois adicione o dispositivo ESPHome descoberto em Configuração → Dispositivos & serviços, cole lá a chave API e permita as ações do Home Assistant em Configurar.", + "not_flashed": "Ainda não está no Home Assistant. Já instalou o firmware? Adicione o dispositivo ESPHome em Configuração → Dispositivos & serviços e depois permita as ações do Home Assistant em Configurar. Ainda não? Firmware e USB → {file}." + }, + "copy_api_key": "Copiar chave API" + }, + "palette": { + "groups": { + "screens": "Ecrãs", + "actions": "Ações", + "add": "Adicionar a este ecrã" + }, + "alerts_detail": "Guia rápido e um alerta de teste", + "settings_detail": "Atualizações, Claude", + "nothing_to_save": "Nada para guardar", + "identify": "Identificar este ecrã", + "identify_detail": "Faz piscar a retroiluminação e mostra um cartão", + "identify_needs": "Precisa de um firmware mais recente", + "export": "Exportar layout", + "export_detail": "Descarregar e copiar como JSON", + "placeholder": "Procurar ecrãs, entidades, ações…", + "empty": "Sem resultados. Escreva parte do nome de um ecrã, entidade ou ação." + }, + "empty": { + "choose": { + "title": "Escolha um ecrã", + "text": "Escolha um dos seus ecrãs à esquerda para alterar os mosaicos, a barra superior e as definições." + }, + "start": { + "title": "Comece com um ecrã", + "text": "Ligue um CYD ou um Guition por USB à máquina do Home Assistant. Perfil, firmware e primeira instalação ficam feitos de uma só vez.", + "button": "Instalar novo ecrã" + } + }, + "screen_view": { + "confirm": { + "switch": "Tem alterações não guardadas. Abrir outro ecrã mesmo assim?", + "copy": "Substituir o layout não guardado por uma cópia do layout do outro ecrã?", + "import": "Substituir o layout não guardado pelo importado?" + }, + "saved": { + "current": "Guardado. O seu ecrã está a ser atualizado.", + "other": "Guardado. {name} está a ser atualizado.", + "other_unnamed": "Guardado. O ecrã está a ser atualizado.", + "newer_edit": "Guardado. A sua alteração mais recente ainda não foi enviada: prima Guardar e enviar outra vez." + }, + "identified": "{name} pisca e mostra um cartão durante alguns segundos.", + "offline": "Offline · as alterações ficam guardadas", + "tabs": { + "layout": "Layout", + "settings": "Definições do ecrã" + }, + "sent": "Guardado · enviado para o ecrã", + "all_saved": "Tudo guardado", + "more": "Mais", + "menu": { + "identify": "Identificar", + "identify_hint": "faz piscar o ecrã", + "identify_needs": "Precisa do firmware 0.2.31 ou mais recente", + "inspect_hint": "do Home Assistant", + "copy": "Copiar layout de…", + "copy_screens": "{n} ecrã | {n} ecrãs", + "copy_none": "nenhum outro ecrã", + "copy_tiles": "{n} mosaico | {n} mosaicos", + "export": "Exportar layout", + "import": "Importar layout…", + "override": "YAML personalizado", + "override_hint": "avançado", + "override_none": "Não foi encontrado nenhum perfil ESPHome para este ecrã", + "update": "Atualizar firmware" + } + }, + "layout": { + "removed": "Removido: {name}", + "no_room": "Não há espaço para este mosaico na página {page}.", + "no_free_page": "Não há nenhuma página livre para um mosaico de página inteira. Liberte primeiro uma página.", + "page_taken": "Este ecrã já tem um mosaico que leva à página {page}.", + "copied": "Layout de {name} copiado. Prima Guardar e enviar quando estiver bem.", + "copied_part": "Layout de {name} copiado: {kept} de {total} mosaicos são compatíveis com o firmware deste ecrã. Prima Guardar e enviar quando estiver bem.", + "imported": "Layout importado. Prima Guardar e enviar quando estiver bem.", + "imported_part": "Layout importado: {kept} de {total} mosaicos são compatíveis com o firmware deste ecrã. Prima Guardar e enviar quando estiver bem.", + "not_json": "Isso não é JSON. Exporte primeiro um layout ou cole um de outro ESP Screens.", + "no_tiles_in_file": "Este ficheiro não tem mosaicos. Era esperado um layout exportado do ESP Screens.", + "count": "{n} página · {tiles} / {limit} mosaicos | {n} páginas · {tiles} / {limit} mosaicos", + "no_tiles": "Adicione a primeira luz, cena ou dispositivo a partir da biblioteca.", + "how_to": "Toque na barra superior ou num mosaico para o alterar. Arraste para mover; largue na página seguinte para criar uma nova.", + "positions_hint": "Os espaços vazios e as posições fixas funcionam a partir do firmware 0.2.26. Até essa atualização, este ecrã (firmware {firmware}) sobe os mosaicos para o primeiro espaço livre.", + "aria": "Layout do ecrã", + "add_page": "+ Adicionar página", + "max_pages": "No máximo {n} página | No máximo {n} páginas" + }, + "page": { + "label": "Página {page}", + "remove": "Remover página", + "remove_title": "As páginas seguintes sobem uma posição", + "edit_bar": "Editar barra superior", + "cell": { + "title": "Espaço vazio. Clique para adicionar aqui um mosaico ou arraste um para cá.", + "aria": "Espaço vazio {slot} na página {page}: adicione aqui o próximo mosaico", + "next": "O próximo mosaico fica aqui", + "empty": "Vazio" + } + }, + "library": { + "title": "Biblioteca", + "entities": "{n} entidade | {n} entidades", + "search": "Procurar por nome, dispositivo ou divisão…", + "search_label": "Adicionar uma entidade", + "filters": { + "all": "Tudo", + "light": "Luzes", + "climate": "Climatização", + "switch": "Interruptores", + "binary_sensor": "Estado", + "button": "Ações", + "script": "Scripts", + "fan": "Ventoinhas", + "cover": "Coberturas", + "scene": "Cenas", + "vacuum": "Aspirador", + "sensor": "Sensores", + "media_player": "Multimédia", + "weather": "Clima", + "number": "Valores", + "select": "Seletores", + "person": "Pessoas", + "timer": "Temporizadores", + "screen": "Ecrã" + }, + "room": "Divisão", + "all_rooms": "Todas as divisões", + "hide_placed": "Ocultar adicionadas", + "hide_placed_title": "Ocultar o que já está neste ecrã", + "all_placed": "Tudo o que está aqui já está neste ecrã.", + "none_found": "Nenhuma entidade encontrada. Experimente outro nome, divisão ou filtro.", + "full": "Neste ecrã cabe {n} mosaico. | Neste ecrã cabem {n} mosaicos.", + "full_update": "Neste ecrã cabe {n} mosaico; atualize o firmware para ter 48. | Neste ecrã cabem {n} mosaicos; atualize o firmware para ter 48.", + "hint": "Arraste para uma página ou toque em + para adicionar ao primeiro espaço livre. ⌘K procura em tudo." + }, + "domains": { + "light": "Luz", + "climate": "Climatização", + "vacuum": "Aspirador", + "fan": "Ventoinha", + "cover": "Cobertura", + "media_player": "Multimédia", + "sensor": "Sensor", + "binary_sensor": "Estado", + "switch": "Interruptor", + "input_boolean": "Interruptor", + "scene": "Cena", + "script": "Script", + "weather": "Clima", + "number": "Valor", + "input_number": "Valor", + "select": "Seletor", + "input_select": "Seletor", + "button": "Ação", + "input_button": "Ação", + "screen": "Ecrã", + "sun": "Sol", + "timer": "Temporizador", + "person": "Pessoa", + "camera": "Câmara", + "image": "Imagem", + "entity": "Entidade" + }, + "displays": { + "standard": "padrão", + "watch": "valor grande", + "forecast": "previsão do tempo", + "graph": "gráfico", + "digital": "relógio digital", + "analog": "relógio analógico", + "sunpath": "trajetória do sol" + }, + "sizes": { + "single": "normal", + "wide": "duplo", + "full": "página inteira" + }, + "tile": { + "name": "Nome no ecrã", + "icon": { + "auto_ha": "Automático (do Home Assistant)", + "auto_default": "Automático (predefinido)", + "needs_firmware": "O ecrã mostra o ícone escolhido a partir do firmware 0.2.18." + }, + "goes_to": { + "label": "Leva à página", + "empty": "{page} (vazia)", + "needs_firmware": "Os mosaicos de navegação precisam do firmware 0.2.62: prima primeiro Atualizar na lista de ecrãs.", + "no_page": "Este ecrã não tem página {page}, por isso um toque abre a última página. Escolha outra página.", + "hint": "Um toque no mosaico abre essa página." + }, + "display": { + "label": "Apresentação", + "digital": "Relógio digital", + "analog": "Relógio analógico", + "standard": "Nome e estado", + "watch": "Valor grande", + "forecast": "Previsão do tempo", + "graph": "Gráfico", + "sunpath": "Trajetória do sol", + "no_graph": "O Home Assistant não tem valores numéricos para esta entidade, por isso o gráfico fica vazio. Escolha outra apresentação.", + "no_forecast": "Este serviço meteorológico não tem previsão diária no Home Assistant. Escolha outra apresentação." + }, + "size": { + "label": "Tamanho", + "single": "Normal", + "wide": "Largura dupla", + "full": "Página inteira", + "full_hint": "Página inteira: um botão grande que se ilumina enquanto está ligado; em baixo fica um controlo deslizante, controlos ou um gráfico.", + "needs_firmware": "Um mosaico de página inteira precisa do firmware 0.2.62: prima primeiro Atualizar na lista de ecrãs." + }, + "page": { + "label": "Página", + "new": "Nova página" + }, + "controls": { + "label": "Controlo direto no mosaico", + "not_offered": "O Home Assistant não oferece este controlo para esta entidade, por isso fica vazio no ecrã. Escolha outro.", + "full_hint": "Na parte de baixo do mosaico de página inteira; um toque em qualquer outro sítio funciona como definido abaixo.", + "wide_hint": "À direita do mosaico de largura dupla, como as linhas no Home Assistant. Tocar no nome funciona como definido abaixo.", + "needs_firmware": "O ecrã mostra o controlo direto a partir do firmware 0.2.19; até lá, o mosaico fica como estava." + }, + "tap": { + "label": "Ao tocar", + "auto": "Automático", + "detail": "Abrir controlo", + "none": "Só ver", + "toggle": "Ligar / desligar", + "action": "Executar ação", + "no_toggle": "O Home Assistant não consegue ligar e desligar isto, por isso um toque não faz nada. Escolha outra opção.", + "toggle_needs_firmware": "O ecrã liga e desliga isto a partir do firmware 0.2.58: prima Atualizar na lista de ecrãs. Até lá, um toque abre o respetivo cartão.", + "hold": "Mantenha o mosaico premido para abrir o respetivo cartão." + }, + "slider": { + "label": "Controlo deslizante pequeno no mosaico", + "no": "Não", + "yes": "Sim, controlo direto", + "nothing": "O Home Assistant não tem nada que um controlo deslizante possa alterar nesta entidade. Escolha Não." + }, + "history": { + "label": "Histórico", + "hours": "{n} hora | {n} horas" + }, + "background": { + "label": "Fundo pastel", + "aria": "Fundo: {name}" + } + }, + "tile_card": { + "label": "{name}, espaço {slot} da página {page}. Enter: configurar; teclas de seta: mover", + "remove": "Remover mosaico", + "remove_named": "Remover {name}" + }, + "action": { + "label": "Ação", + "asking": "A perguntar ao Home Assistant que ações tem esta entidade…", + "not_answering": "O Home Assistant não está a responder neste momento. Tente novamente daqui a pouco.", + "choose": "Escolha uma ação", + "search": "Procure, por exemplo alternar, posição ou reproduzir", + "search_label": "Procurar uma ação", + "none_found": "Nenhuma ação encontrada.", + "gone": "O Home Assistant já não oferece esta ação para esta entidade, por isso um toque não faz nada. Escolha outra.", + "optional": "{name} (opcional)", + "not_set": "Não definido", + "on": "Ativado", + "off": "Desativado", + "needs": "O Home Assistant precisa de {fields}.", + "needs_firmware": "O ecrã executa ações a partir do firmware 0.2.58: prima Atualizar na lista de ecrãs. Até lá, um toque funciona como Automático." + }, + "icon": { + "label": "Ícone", + "none": "Sem ícone", + "search": "Procure, por exemplo candeeiro, música ou porta", + "search_label": "Procurar um ícone", + "none_text_only": "Sem ícone, só texto", + "aria": "Ícone: {name}", + "none_found": "Nenhum ícone encontrado." + }, + "inspect": { + "title": "Dados atuais", + "subtitle": "Ligação, estado e propriedades suportadas", + "reading": "A ler…", + "fetching": "A obter o estado atual do HA…", + "status": "Estado: {status}", + "options": "Controlo deslizante pequeno: {slider} · Apresentação: {display} · Tamanho: {size} · Controlo: {control} · Fundo: {background}", + "yes": "sim", + "no": "não", + "control_none": "nenhum", + "background_default": "Predefinido", + "read_again": "Ler novamente" + }, + "topbar": { + "removed": "Removido da barra superior: {name}", + "full": "Na barra superior cabe {n} elemento. | Na barra superior cabem {n} elementos.", + "already": "Isto já está na barra superior.", + "title": "Barra superior", + "aria": "Barra superior: {name}", + "builtin": "Do próprio ecrã; também funciona sem o Home Assistant", + "items": "{used} de {n} elemento | {used} de {n} elementos", + "name": "Esquerda: nome", + "name_placeholder": "Por exemplo: Sala de estar", + "right": "Direita: hora, sensores ou um relógio", + "item_label": "{name}, espaço {slot}. Enter: configurar; setas: mover", + "remove_named": "Remover {name} da barra superior", + "max": "No máximo {n} elemento | No máximo {n} elementos", + "add_title": "Adicione a hora, a data, o relógio analógico ou uma entidade", + "add_button": "+ Adicionar hora, data ou uma entidade", + "hint": { + "overflow": "Nem tudo cabe ao lado do nome: o ecrã omite os elementos tracejados. Remova um ou escolha um nome mais curto.", + "reorder": "Arraste para reordenar; toque num elemento para o configurar.", + "needs_firmware": "Os sensores, a data e o relógio analógico aparecem a partir do firmware {version}; até essa atualização, este ecrã mostra o nome e, se a hora estiver na barra, o relógio." + }, + "detail": { + "hidden": "Oculto: agora não está ativo", + "overflow": "Não cabe ao lado do nome", + "dial": "Mostrador" + }, + "live": { + "hidden": "Oculto neste momento: não está ativo", + "overflow": "De momento não cabe ao lado do nome", + "looks": "Assim fica no ecrã" + }, + "analog_sample": "Mostrador pequeno com a hora", + "content": { + "label": "O que mostrar", + "hint": "«Última alteração» continua a contar no próprio ecrã: «Agora mesmo», «Há 5 min», «Ontem»." + }, + "auto_icon": "Automático (como no Home Assistant)", + "show": { + "label": "Mostrar", + "hint": "«Apenas quando ativo» oculta o elemento enquanto estiver desligado, fechado, ausente ou a 0. Útil para uma porta aberta, uma máquina de lavar a funcionar ou quem está em casa." + }, + "clock_24": "Relógio de 24 horas · altere em {settings}", + "clock_12": "Relógio de 12 horas · altere em {settings}", + "clock_settings": "Definições → Idioma e região", + "date_hint": "Hoje: {date}. A data segue o relógio do próprio ecrã.", + "up": "↑ Subir", + "down": "↓ Descer", + "add": { + "title": "Adicionar à barra superior", + "slots": "{used} de {n} espaço usado | {used} de {n} espaços usados", + "builtin": "Do próprio ecrã", + "added": "Já adicionado", + "suggestions": "Sugestões do Home Assistant", + "entity": "Uma entidade", + "search": "Procure por nome, divisão ou entidade, p. ex. temperatura ou porta", + "search_label": "Procurar uma entidade para a barra superior", + "none_found": "Nenhuma entidade encontrada." + } + }, + "screen_settings": { + "groups": { + "brightness": "Brilho", + "night": "Noite", + "screen": "Ecrã" + }, + "rows": { + "brightness": "Brilho", + "dark_mode": "Modo escuro", + "standby_enabled": "Espera automática", + "standby_seconds": "Espera após", + "standby_brightness": "Brilho em espera", + "night_enabled": "Modo noturno", + "night_start": "Início", + "night_end": "Fim", + "night_brightness": "Brilho noturno", + "auto_home": "Voltar à página 1", + "auto_home_seconds": "Após", + "home_on_standby": "Também em espera", + "swipe_pages": "Deslizar entre páginas", + "page_buttons": "Botões de página", + "rotation": "Rotação" + }, + "duration": { + "seconds": "{n} s", + "minutes": "{n} min", + "hours": "{n} h", + "hours_minutes": "{h} h {m}" + }, + "time": { + "am": "{time} da manhã", + "pm": "{time} da tarde" + }, + "other_screen_busy": "Ainda se estão a guardar as definições do outro ecrã. Tente novamente daqui a pouco.", + "reach": { + "intro": "Os botões de página e o deslizar estão desativados, por isso só os mosaicos «Ir para a página» mudam de página.", + "pages": "a página {list} | as páginas {list}", + "tiles": "Tem {n} mosaico «Ir para a página», para {targets}. | Tem {n} mosaicos «Ir para a página», para {targets}.", + "tiles_missing_one": "Tem {n} mosaico «Ir para a página», para {targets}, mas nenhum para {missing}, por isso não consegue lá chegar. | Tem {n} mosaicos «Ir para a página», para {targets}, mas nenhum para {missing}, por isso não consegue lá chegar.", + "tiles_missing_more": "Tem {n} mosaico «Ir para a página», para {targets}, mas nenhum para {missing}, por isso não consegue lá chegar. | Tem {n} mosaicos «Ir para a página», para {targets}, mas nenhum para {missing}, por isso não consegue lá chegar.", + "none": "Não tem mosaicos «Ir para a página».", + "none_missing_one": "Não tem mosaicos «Ir para a página» para {missing}, por isso não consegue lá chegar.", + "none_missing_more": "Não tem mosaicos «Ir para a página» para {missing}, por isso não consegue lá chegar.", + "cut_off": "Os mosaicos para {pages} só estão em páginas a que não consegue chegar.", + "no_way_back": "Desde {pages}, nenhum mosaico leva de volta à página 1." + }, + "status": { + "offline": "Este ecrã está offline. Poderá alterar as definições quando voltar.", + "screen": "As alterações aplicam-se de imediato no ecrã e aparecem aqui quando são feitas lá.", + "app": "As alterações aplicam-se de imediato. Com o firmware 0.2.49, o próprio ecrã guarda-as." + }, + "unavailable": "Esta entidade está desativada no Home Assistant ou o ecrã está a reiniciar.", + "lower": "{name}: menos", + "higher": "{name}: mais" + }, + "update": { + "starting": "A iniciar a atualização…", + "building": "A compilar o firmware…", + "writing": "A gravar o firmware por Wi-Fi…", + "phases": { + "install": "A compilar e a instalar…", + "verify": "À espera que o ecrã volte…", + "settle": "A verificar se se mantém estável…" + }, + "new_language": "Novo idioma: {name}" + }, + "settings": { + "updates": { + "auto_on": "Os ecrãs vão passar a atualizar-se automaticamente à noite.", + "auto_off": "As atualizações automáticas estão desativadas.", + "title": "Atualizações de firmware", + "busy": "A atualizar para o firmware {version}…", + "no_screens": "Ainda não há nenhum ecrã emparelhado. Os novos ecrãs recebem o firmware {version}.", + "available": "O firmware {version} está disponível para {n} ecrã. | O firmware {version} está disponível para {n} ecrãs.", + "current": "Todos os ecrãs têm o firmware {version}.", + "all": "Atualizar {n} ecrã | Atualizar os {n} ecrãs", + "whats_new": "Novidades do firmware {version}", + "auto_label": "Atualizar automaticamente todas as noites", + "auto_hint": "Entre as 03:00 e as 06:00, um ecrã de cada vez. Para se houver um erro e comunica-o no Home Assistant." + }, + "claude": { + "installed": "Habilidade instalada. O Claude Code deteta-a de imediato.", + "installed_restart": "Habilidade instalada. Reinicie o Claude Code uma vez para que encontre a nova pasta de habilidades.", + "text": "Ensine o Claude a usar o ESP Screens e depois peça: «Mostra um alerta em todos os meus ecrãs quando a caixa do correio estiver cheia.» O Claude conhece os eventos de alerta e todos os campos, cores e ícones.", + "install": "Instalar para o Claude Code", + "install_again": "Instalar novamente", + "update": "Atualizar a habilidade", + "not_installed": "Não instalada", + "installed_chip": "● Instalada", + "newer": "Instalada · há uma versão mais recente", + "writes": "Para o Claude Code no Home Assistant. Escreve um ficheiro em {path}; instalar novamente substitui-o.", + "download": "Descarregar para o claude.ai", + "upload": "Carregue o zip no Claude, em Personalizar → Habilidades." + }, + "title": "Tudo o que rodeia os seus ecrãs.", + "back": "← Os meus ecrãs", + "screens": { + "title": "Ecrãs", + "text": "Adicione um ecrã, ou compile e reinstale o firmware de um que já tenha.", + "firmware_detail": "Compilar e instalar por USB ou Wi-Fi" + }, + "language": { + "title": "Idioma e região", + "screen_language": "Idioma dos ecrãs", + "auto": "Idioma do Home Assistant ({name})", + "auto_plain": "Idioma do Home Assistant", + "ha_missing": "Os ecrãs usam inglês até o idioma do Home Assistant estar disponível.", + "unchecked": "{name} · ainda não revisto, ajuda bem-vinda", + "help": "{name} ainda não foi revisto; toda a ajuda é bem-vinda: {guide}", + "guide": "como traduzir", + "update_hint": "Depois de uma alteração, cada ecrã precisa de uma atualização de firmware, uma compilação por ecrã: com o respetivo botão Atualizar ou nas atualizações noturnas.", + "time": "Formato de hora", + "time_auto": "Automático, segue o idioma ({clock})", + "clock_24": "24 horas", + "clock_12": "12 horas", + "numbers": "Formatação numérica", + "numbers_auto": "Automático, segue o idioma ({example})", + "profile": "O seu perfil do Home Assistant: {formats}", + "use_profile": "Usar estes", + "editor_hint": "O próprio editor segue o idioma do seu perfil do Home Assistant.", + "saved": "Guardado.", + "saved_language": "Guardado. Cada ecrã passa a usar o novo idioma na próxima atualização." + }, + "alerts": { + "text": "Um cartão sobre todo o ecrã a partir de uma automatização, num ecrã ou em todos. O guia rápido tem os nomes das ações, os campos, os ícones e as cores, e um formulário para experimentar um alerta.", + "detail": "Notificações em ecrã inteiro, a partir de uma automatização" + } + }, + "firmware": { + "title": "Compilar e instalar o firmware dos ecrãs", + "intro": "A CLI do ESPHome integrada usa o seu próprio perfil (YAML com chaves) e os seus segredos. Escolha o perfil do ecrã e depois uma porta USB (ecrã ligado à máquina do Home Assistant), {ota} com o nome do anfitrião, ou {download} para instalar o firmware no ecrã a partir do seu próprio computador. {check} só valida, {build} compila e {install} instala o firmware no ecrã. Os seus mosaicos ficam como estão no ESP Screens. A primeira compilação demora alguns minutos.", + "ota": "Wi-Fi / OTA", + "download": "Descarregar", + "check": "Verificar", + "build": "Só compilar", + "install": "Compilar e instalar", + "build_download": "Compilar e descarregar", + "no_cli": "Falta a CLI do ESPHome. Atualize a app para a versão 0.2.0.", + "choose": "Escolha o perfil pretendido e depois uma porta USB, um endereço IP ou Descarregar.", + "profile": "Perfil ESPHome", + "install_to": "Instalar em", + "no_board": "USB · ainda não foi encontrada nenhuma placa na máquina do Home Assistant", + "download_target": "Descarregar · instalar a partir do seu próprio computador", + "host": "Endereço IP ou nome do anfitrião", + "download_file": "Descarregar {name}", + "download_how": "Instale-o no ecrã com o {esphome_web} no Chrome ou no Edge: Connect, escolha a porta USB do ecrã, Install e selecione este ficheiro. Contém a sua palavra-passe de Wi-Fi e as chaves do ecrã: não o partilhe." + }, + "installer": { + "title": { + "setup": "Ligar e instalar.", + "saved": "Perfil guardado.", + "running": "Um momento…", + "ready": "Pronto para descarregar.", + "done": "Concluído.", + "failed": "Não funcionou." + }, + "intro": "O ESP Screens cria o perfil próprio do ecrã com chaves únicas e compila o firmware. Ligue o ecrã com um cabo USB de dados à máquina onde corre o Home Assistant, ou descarregue o firmware e instale-o no ecrã a partir do seu próprio computador.", + "board": "Que ecrã tem?", + "board_cyd": "CYD · 2,8 polegadas", + "board_guition": "Guition · 4 polegadas", + "name": "Nome", + "name_placeholder": "Ecrã da sala", + "device_name": "Nome do dispositivo", + "customize": "personalizar", + "name_hint": "Cada ecrã tem o seu próprio perfil com as suas próprias chaves. Quatro ecrãs? Faça isto quatro vezes com um nome diferente.", + "device_name_hint": "Letras minúsculas, algarismos e hífenes. Um nome diferente para cada ecrã.", + "wifi": { + "title": "Wi-Fi", + "ssid": "Nome da rede Wi-Fi (2,4 GHz)", + "password": "Palavra-passe da rede Wi-Fi", + "new": "Preencha só uma vez: o ESP Screens guarda isto no secrets.yaml do ESPHome e os ecrãs seguintes usam-no automaticamente.", + "missing": "Ainda faltam os dados de Wi-Fi no seu secrets.yaml do ESPHome. O ESP Screens só preenche as linhas em falta.", + "ready": "A rede Wi-Fi vem do seu secrets.yaml do ESPHome.", + "invalid": "O secrets.yaml na pasta do ESPHome não é YAML válido. Corrija primeiro o ficheiro; não vai ser substituído." + }, + "install_via": "Instalar através de", + "later": "Mais tarde · só guardar o perfil", + "target": { + "usb": "Ligue o ecrã com um cabo USB de dados à máquina do Home Assistant; a lista atualiza-se sozinha. Ou escolha Descarregar para usar o seu próprio computador.", + "download": "Descarregue o firmware e instale-o no ecrã a partir do seu próprio computador, no Chrome ou no Edge. Depois disso, as atualizações são feitas por Wi-Fi.", + "later": "O perfil fica na pasta do ESPHome. Pode instalar mais tarde através de Firmware e USB ou a partir do ESPHome Device Builder.", + "several": "Há mais do que uma placa ligada: escolha a porta deste ecrã.", + "once": "Uma vez por USB; depois disso, tudo é sem fios." + }, + "install": "Instalar", + "save_profile": "Guardar perfil", + "busy": "Já está a decorrer uma compilação ou instalação ({file}). Aguarde que termine.", + "no_cli": "Falta a CLI do ESPHome nesta instalação; só é possível guardar o perfil.", + "progress": { + "saved": "{file} está na pasta do ESPHome", + "writing": "A gravar o firmware em {name}…", + "building": "A compilar o firmware…", + "ready": "O firmware para {name} está pronto", + "installed": "O firmware já está em {name}", + "build_failed": "A compilação falhou", + "install_failed": "A instalação falhou" + }, + "detail": { + "saved": "Instale-o mais tarde a partir de Firmware e USB: escolha este perfil e depois a porta USB da máquina do Home Assistant, ou Descarregar para instalar o firmware no ecrã a partir do seu próprio computador. Guarde a chave API para o emparelhamento:", + "uploading": "Não desligue ainda o cabo USB.", + "building": "A primeira compilação demora alguns minutos num Raspberry Pi. Pode sair desta página: a instalação continua e volta a encontrá-la em Novo ecrã.", + "building_download": "A primeira compilação demora alguns minutos num Raspberry Pi. Pode sair desta página: a compilação continua e volta a encontrá-la em Novo ecrã.", + "downloaded": "Instale-o no ecrã a partir do seu próprio computador e depois emparelhe o ecrã com o Home Assistant.", + "booted": "O ecrã arranca e liga-se à sua rede Wi-Fi. Emparelhe-o agora com o Home Assistant:", + "booted_cyd": "O ecrã arranca e liga-se à sua rede Wi-Fi. O CYD pede primeiro uma calibração do toque: toque nas cruzes. Emparelhe-o agora com o Home Assistant:", + "see_log": "Consulte o registo abaixo." + }, + "download_steps": { + "plug": "{bold} com um cabo USB de dados.", + "plug_bold": "Ligue o ecrã ao seu computador", + "open": "{bold} no Chrome ou no Edge, clique em Connect e escolha a porta USB do ecrã.", + "open_bold": "Abra o {esphome_web}", + "install": "{bold} e selecione {file}. O ecrã reinicia e liga-se à sua rede Wi-Fi.", + "install_cyd": "{bold} e selecione {file}. O ecrã reinicia e liga-se à sua rede Wi-Fi. O CYD pede primeiro uma calibração do toque: toque nas cruzes.", + "install_bold": "Clique em Install" + }, + "download_keep": "O ficheiro contém a sua palavra-passe de Wi-Fi e as chaves do ecrã: não o partilhe.", + "api_key": "Chave API", + "pairing": { + "ha": "{bold} Isto acontece fora do ESP Screens. O Home Assistant descobre {name} como dispositivo ESPHome; clique em Adicionar. Não foi descoberto? Adicione o ESPHome manualmente com o endereço IP do ecrã.", + "ha_bold": "Vá ao Home Assistant → Configuração → Dispositivos & serviços.", + "key": "{bold} acima quando o Home Assistant pedir a chave de encriptação.", + "key_bold": "Cole a chave API", + "actions": "{bold} integração ESPHome → Configurar → «Permitir que o dispositivo execute ações do Home Assistant». Sem isto, o ecrã vê tudo mas não controla nada.", + "actions_bold": "Permita as ações do HA:", + "tiles": "{bold} De volta ao ESP Screens, o ecrã aparece na lista à esquerda em cerca de trinta segundos; até lá, aparece aí como «ainda não está no Home Assistant».", + "tiles_bold": "Escolha os seus mosaicos." + }, + "log": "Registo do ESPHome", + "retry": "Tentar novamente", + "another": "Instalar outro ecrã", + "start_over": "Recomeçar", + "done": "Concluído" + }, + "alerts": { + "eyebrow": "Alertas · guia rápido", + "title": "Uma notificação em ecrã inteiro, a partir de uma automatização.", + "intro": "Cada ecrã tem a ação {action}. Coloca um cartão por cima de tudo, acorda o ecrã e mantém a retroiluminação no brilho normal até alguém tocar no botão ou o tempo limite acabar. O próprio Home Assistant não mostra explicações nem listas pendentes para as ações do ESPHome; tudo o que pode preencher está aqui.", + "loading": "O guia rápido ainda está a carregar; um momento.", + "example": { + "title": "Está alguém à porta", + "subtitle": "Porta 3, traseira", + "button": "Já vou" + }, + "sections": "Secções", + "nav": { + "try": "Experimente", + "screens": "Os seus ecrãs", + "howto": "Numa automatização", + "all": "Todos os ecrãs", + "fields": "Os campos", + "icons": "Ícones", + "colors": "Cores", + "behaviour": "Comportamento", + "events": "Eventos", + "tips": "Dicas" + }, + "try": { + "text": "Envie agora um alerta, com os mesmos campos que uma automatização envia. O ecrã mostra o cartão e, com a intermitência ativada, faz piscar a retroiluminação.", + "screen": "Ecrã", + "all": "Todos os ecrãs (prontos: {ready})", + "not_ready": "{name} · não está pronto", + "title": "Título", + "subtitle": "Subtítulo", + "icon": "Ícone", + "color": "Cor", + "button": "Texto do botão", + "timeout": "Tempo limite (segundos; 0 espera pelo botão)", + "flash": "Fazer piscar a retroiluminação", + "flash_hint": "Quatro vezes quando o alerta chega.", + "sending": "A enviar…", + "send": "Enviar alerta", + "sent_all": "Enviado para {n} ecrã. | Enviado para {n} ecrãs.", + "sent_to": "Enviado para {name}.", + "sent_one": "Enviado para o ecrã.", + "skipped": "{n} ecrã ignorado (offline ou firmware antigo). | {n} ecrãs ignorados (offline ou firmware antigo).", + "left_empty": "Deixados vazios: {fields}.", + "nothing": "Nenhum ecrã o conseguiu mostrar: verifique se há um ecrã online com o firmware {version} ou mais recente." + }, + "white": "Branco (predefinido)", + "screens": { + "text": "Cada ecrã tem a sua própria ação, com o nome do dispositivo. A partir do firmware {version}; atualize um ecrã mais antigo com o respetivo botão Atualizar em Ecrãs.", + "none": "Ainda não há nenhum ecrã emparelhado. Instale um através de Novo ecrã; a ação aparece assim que o Home Assistant vir o ecrã.", + "ready": "● firmware {version}", + "update": "Atualização necessária · firmware {version}", + "unknown": "Nome do dispositivo desconhecido · atualize o ecrã", + "show": "Mostrar alerta", + "dismiss": "Descartar alerta" + }, + "howto": { + "add": "Clique em {add} e procure {esphome}. Escolha a ação do seu ecrã: o Home Assistant chama-lhe «Performs the action show_alert of the node {device}».", + "add_bold": "Adicionar ação", + "device": "nome do dispositivo", + "fields": "{bold} O Home Assistant pede os sete; deixe vazio o que não usar ({empty}, {zero}, desativado).", + "fields_bold": "Preencha os campos.", + "yaml": "Prefere YAML? Escolha {edit} na ação e cole o exemplo abaixo.", + "example_for": "Exemplo para", + "no_screen": "um ecrã (ainda não emparelhado)" + }, + "edit_yaml": "Editar em YAML", + "copy_yaml": "Copiar YAML", + "all": { + "title": "Todos os ecrãs de uma vez", + "text": "Dispare o evento {show} com os mesmos campos e o ESP Screens passa o alerta a todos os ecrãs online, incluindo os que adicionar mais tarde. {dismiss} remove-o em todo o lado. Numa automatização, adicione a ação {event} ou cole o exemplo em {edit}. Omita os campos que não usar. Para isto, o ESP Screens tem de estar em execução.", + "event": "Dispara evento manual" + }, + "fields": { + "text": "O texto é livre; o limite é em bytes e uma letra acentuada conta como dois. O que não couber termina em reticências (título) ou é descartado (subtítulo).", + "field": "Campo", + "type": "Tipo", + "what": "O que faz", + "example": "Exemplo", + "limit": "Limite", + "types": { + "string": "texto", + "int": "número", + "bool": "ativado / desativado", + "entity": "entidade" + }, + "bytes": "CYD {cyd} · Guition {guition} bytes", + "seconds": "de 0 a 86400 s", + "camera_limit": "Guition, firmware 0.2.57+" + }, + "icons": { + "text": "Preencha o nome em {field}, por exemplo {example}. {mdi} e o código hexadecimal ({hex}) também funcionam. O firmware só inclui estes ícones; qualquer outro nome mostra o triângulo de aviso. Toque num ícone para copiar o nome.", + "handy": "Úteis para notificações", + "search_label": "Procurar um ícone", + "search": "Procurar por nome ou descrição…", + "extra": "Também disponíveis: ícones de controlo e de meteorologia", + "copy": "Copiar {name}", + "none": "Nenhum ícone para «{query}». Os nomes desconhecidos mostram o triângulo de aviso ({fallback})." + }, + "colors": { + "text": "Preencha o nome em {field}. São os tons pastel dos mosaicos, com texto escuro. Vazio ou desconhecido dá o cartão branco. Toque para copiar." + }, + "behaviour": { + "wakes": "{bold} Um alerta acorda de imediato um ecrã com brilho reduzido ou apagado e aparece por cima de todas as páginas, de todos os cartões de luz abertos e da camada de espera.", + "wakes_bold": "Acorda o ecrã.", + "on": "{bold} Enquanto o cartão estiver visível, a retroiluminação mantém o brilho normal. A espera automática e o modo noturno ficam em pausa. Depois de premir o botão, o tempo de espera normal recomeça.", + "on_bold": "Aceso até premir o botão.", + "timeout": "{bold} {zero} espera pelo botão, demore o que demorar. Com {minute}, o cartão desaparece ao fim de um minuto, mas o botão fecha-o mais cedo.", + "timeout_bold": "Tempo limite.", + "blinking": "{bold} {flash} faz piscar a retroiluminação quatro vezes quando o alerta chega (cerca de um segundo) e depois deixa o ecrã ligado.", + "blinking_bold": "Intermitência.", + "replacing": "{bold} Um alerta novo substitui o atual; não se acumulam. O alerta substituído é reportado como {replaced}.", + "replacing_bold": "Substituição.", + "closing": "{bold} {dismiss} remove o cartão, por exemplo se a porta já estiver aberta. Sem alerta, essa ação não faz nada.", + "closing_bold": "Fecho remoto.", + "beside": "{bold} não faz nada; só o botão o fecha. Assim, um toque para acordar o ecrã nunca descarta o alerta por acidente.", + "beside_bold": "Tocar fora do cartão" + }, + "events": { + "text": "Sempre que um alerta termina, é disparado o evento {event} com {action}, {title}, {screen} (o nome do dispositivo) e o {device_id} que o Home Assistant acrescenta. Visível em Configuração → Ferramentas → Eventos.", + "when": "Quando", + "wait": "Esperar que alguém prima o botão" + }, + "tips": { + "color": "Use uma {bold}: laranja para a porta, vermelho para fumo ou água, verde para «concluído». O texto fica sempre escuro e legível.", + "color_bold": "cor por tipo de notificação", + "short": "Mantenha o título {bold}; um ecrã mostra cerca de vinte caracteres numa linha e termina um título mais longo com reticências. Coloque os detalhes no subtítulo.", + "short_bold": "curto", + "button": "Um {bold} transforma a notificação numa pergunta: «Já vou», «Visto», «Desligar». Depois, o evento diz-lhe quem respondeu.", + "button_bold": "texto de botão personalizado", + "resolve": "Para um alerta que se resolve sozinho (a porta abre-se, alguém tira a roupa da máquina), feche-o na mesma automatização com {dismiss}.", + "every": "Todos os ecrãs? Dispare {event} uma vez (ver «Todos os ecrãs de uma vez»). Os ecrãs continuam a funcionar de forma independente e cada um reporta com o seu próprio {screen}.", + "claude": "Prefere {bold} que faça a automatização? Instale a habilidade do ESP Screens em Definições → Claude.", + "claude_bold": "pedir ao Claude" + } + }, + "override": { + "eyebrow": "Avançado · personalização local", + "title": "YAML personalizado", + "title_named": "YAML personalizado · {name}", + "intro": "Este pequeno ficheiro é seu. É carregado depois do pacote partilhado dos ecrãs e mantém-se quando o ESP Screens é atualizado. Altere aqui detalhes específicos do hardware, como o modelo do ecrã.", + "safe_title": "O que é seguro alterar?", + "safe_text": "As secções display, touchscreen e substitutions, os pinos e outros detalhes do dispositivo. O nome, a rede Wi-Fi, a API, a OTA e as ligações aos pacotes continuam a ser geridos pelo ESP Screens.", + "active": "Ativo", + "ready": "Pronto para associar", + "editor_label": "YAML personalizado local", + "use_example": "Usar exemplo", + "clear": "Limpar", + "characters": "{n} carácter | {n} caracteres", + "lines": "{n} linha | {n} linhas", + "save_check": "Guardar e verificar", + "save": "Guardar YAML", + "no_profile": "Não foi encontrado nenhum perfil ESPHome para este ecrã.", + "attached": "As alterações feitas aqui aplicam-se na próxima compilação.", + "not_attached": "Guarde uma vez para associar este ficheiro ao perfil.", + "saving": "A verificar e a guardar…", + "saved": "Guardado. O YAML personalizado mantém-se nas atualizações de firmware.", + "saved_toast": "YAML personalizado guardado.", + "checking": "Guardado. O ESPHome está a verificar o perfil completo…", + "checking_profile": "O ESPHome está a verificar o perfil…", + "checking_stage": "O ESPHome está a verificar o perfil… {stage}", + "valid": "O perfil completo é válido. Pode compilar e instalar com segurança.", + "rejected": "O ESPHome rejeitou o perfil completo. Consulte Firmware e USB para ver o registo completo.", + "confirm_example": "Substituir o texto atual pelo exemplo?", + "example_loaded": "Exemplo carregado. Guarde-o quando estiver pronto.", + "confirm_clear": "Limpar o YAML personalizado local?", + "cleared": "O YAML personalizado ficará vazio quando guardar." + }, + "mockup": { + "home": "Casa", + "unknown": "Desconhecido" + } + } }