Files
2026-07-17 10:12:15 -04:00

449 lines
16 KiB
JSON

{
"config": {
"step": {
"user": {
"title": "Configuração WashData",
"description": "Configure a sua máquina de lavar ou outro electrodoméstico.\n\nÉ necessário um sensor de potência.\n\n**De seguida, ser-lhe-á perguntado se deseja criar o seu primeiro perfil.**",
"data": {
"name": "Nome do dispositivo",
"device_type": "Tipo de dispositivo",
"power_sensor": "Sensor de potência",
"min_power": "Limiar mínimo de potência (W)"
},
"data_description": {
"name": "Um nome descritivo para este dispositivo (por exemplo, 'Máquina de lavar', 'Máquina de lavar loiça').",
"device_type": "Que tipo de electrodoméstico é este? Ajuda a personalizar a detecção e a rotulagem.",
"power_sensor": "A entidade do sensor que reporta o consumo de energia em tempo real (em watts) da sua tomada inteligente.",
"min_power": "Leituras de potência acima deste limiar (em watts) indicam que o electrodoméstico está a funcionar. Comece com 2W para a maioria dos dispositivos."
}
},
"first_profile": {
"title": "Criar primeiro perfil",
"description": "Um **Ciclo** é uma operação completa do seu electrodoméstico (por exemplo, uma carga de roupa). Um **Perfil** agrupa esses ciclos por tipo (por exemplo, 'Algodão', 'Lavagem Rápida'). Criar um perfil agora ajuda a integração a estimar a duração de imediato.\n\nPode seleccionar manualmente este perfil nos controlos do dispositivo se não for detectado automaticamente.\n\n**Deixe 'Nome do perfil' em branco para ignorar este passo.**",
"data": {
"profile_name": "Nome do perfil (opcional)",
"manual_duration": "Duração estimada (minutos)"
}
},
"reconfigure": {
"title": "Reconfigurar WashData",
"description": "Actualizar o nome do dispositivo, tipo de electrodoméstico ou sensor de potência.",
"data": {
"name": "Nome do dispositivo",
"device_type": "Tipo de dispositivo",
"power_sensor": "Sensor de potência",
"min_power": "Limiar mínimo de potência (W)"
}
}
},
"error": {
"cannot_connect": "Falha ao ligar",
"invalid_auth": "Autenticação inválida",
"unknown": "Erro inesperado",
"invalid_power": "O limiar de potência tem de ser maior do que 0"
},
"abort": {
"already_configured": "O dispositivo já está configurado",
"reconfigure_successful": "A reconfiguração foi bem-sucedida"
}
},
"options": {
"step": {
"init": {
"title": "Definições WashData",
"description": "Todas as definições -- detecção, correspondência, temporização, notificações, perfis e ciclos -- estão disponíveis no painel WashData. Utilize este formulário apenas para alterar o sensor de potência, tipo de dispositivo ou limiar de standby.",
"data": {
"name": "Nome do dispositivo",
"device_type": "Tipo de dispositivo",
"power_sensor": "Sensor de potência",
"min_power": "Limiar mínimo de potência (W)"
}
}
},
"error": {
"timer_default_message": "{device}: temporizador de {minutes} min",
"timer_pause_action_title": "Retomar ciclo",
"timer_pause_body_suffix": "O ciclo está em pausa. Abra o painel WashData para retomar.",
"notify_live_waiting_message": "{device}: ainda nenhum perfil reconhecido.",
"vs_typical_longer": "{pct}% mais longo do que o habitual",
"vs_typical_shorter": "{pct}% mais curto do que o habitual",
"invalid_power": "O limiar de potência tem de ser maior do que 0"
}
},
"selector": {
"device_type": {
"options": {
"washing_machine": "Máquina de lavar",
"dryer": "Secador",
"washer_dryer": "Combinação Lavadora e Secadora",
"dishwasher": "Máquina de lavar louça",
"air_fryer": "Fritadeira de ar",
"bread_maker": "Máquina de fazer pão",
"pump": "Bomba / Bomba de depósito",
"generic": "Outro (avançado)",
"other": "Dispositivo de limite"
}
}
},
"services": {
"label_cycle": {
"name": "Rotular ciclo",
"description": "Atribua um perfil existente a um ciclo anterior ou remova o rótulo.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData a rotular."
},
"cycle_id": {
"name": "ID do ciclo",
"description": "O ID do ciclo a rotular."
},
"profile_name": {
"name": "Nome do perfil",
"description": "O nome de um perfil existente (crie perfis no menu Gerir perfis). Deixe em branco para remover o rótulo."
}
}
},
"create_profile": {
"name": "Criar perfil",
"description": "Crie um novo perfil (autónomo ou baseado num ciclo de referência).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData."
},
"profile_name": {
"name": "Nome do perfil",
"description": "Nome do novo perfil (ex.: 'Intensivo', 'Delicados')."
},
"reference_cycle_id": {
"name": "ID do ciclo de referência",
"description": "ID de ciclo opcional para basear este perfil."
}
}
},
"delete_profile": {
"name": "Eliminar perfil",
"description": "Elimine um perfil e opcionalmente remova o rótulo dos ciclos que o utilizam.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData."
},
"profile_name": {
"name": "Nome do perfil",
"description": "O perfil a eliminar."
},
"unlabel_cycles": {
"name": "Remover rótulo dos ciclos",
"description": "Remova o rótulo do perfil dos ciclos que utilizam este perfil."
}
}
},
"auto_label_cycles": {
"name": "Rotular automaticamente ciclos antigos",
"description": "Rotule retroactivamente ciclos sem rótulo usando correspondência de perfil.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData."
},
"confidence_threshold": {
"name": "Limiar de confiança",
"description": "Confiança mínima de correspondência (0,50-0,95) para aplicar rótulos."
}
}
},
"export_config": {
"name": "Exportar configuração",
"description": "Exporte os perfis, ciclos e definições deste dispositivo para um ficheiro JSON (por dispositivo).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData a exportar."
},
"path": {
"name": "Caminho",
"description": "Caminho de ficheiro absoluto opcional para escrever (predefinição: /config/ha_washdata_export_{entry}.json)."
}
}
},
"import_config": {
"name": "Importar configuração",
"description": "Importe perfis, ciclos e definições para este dispositivo a partir de um ficheiro JSON de exportação (as definições podem ser substituídas).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData para onde importar."
},
"path": {
"name": "Caminho",
"description": "Caminho absoluto para o ficheiro JSON de exportação a importar."
}
}
},
"submit_cycle_feedback": {
"name": "Enviar feedback do ciclo",
"description": "Confirme ou corrija um programa detectado automaticamente após um ciclo concluído. Forneça `entry_id` (avançado) ou `device_id` (recomendado).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData (recomendado em vez de entry_id)."
},
"entry_id": {
"name": "ID de entrada",
"description": "O ID de entrada de configuração do dispositivo (alternativa ao device_id)."
},
"cycle_id": {
"name": "ID do ciclo",
"description": "O ID do ciclo mostrado na notificação/registos de feedback."
},
"user_confirmed": {
"name": "Confirmar programa detectado",
"description": "Defina como verdadeiro se o programa detectado estiver correcto."
},
"corrected_profile": {
"name": "Perfil corrigido",
"description": "Se não confirmar, forneça o nome correcto do perfil/programa."
},
"corrected_duration": {
"name": "Duração corrigida (segundos)",
"description": "Duração corrigida opcional em segundos."
},
"notes": {
"name": "Notas",
"description": "Notas opcionais sobre este ciclo."
}
}
},
"record_start": {
"name": "Gravar início do ciclo",
"description": "Comece a gravar manualmente um ciclo limpo (ignora toda a lógica de correspondência).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData a gravar."
}
}
},
"record_stop": {
"name": "Gravar paragem do ciclo",
"description": "Parar a gravação manual.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData para parar a gravação."
}
}
},
"trim_cycle": {
"name": "Cortar ciclo",
"description": "Corte os dados de potência de um ciclo anterior para uma janela temporal específica.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData."
},
"cycle_id": {
"name": "ID do ciclo",
"description": "O ID do ciclo a cortar."
},
"trim_start_s": {
"name": "Início do corte (segundos)",
"description": "Manter dados a partir deste deslocamento em segundos. Predefinição: 0."
},
"trim_end_s": {
"name": "Fim do corte (segundos)",
"description": "Manter dados até este deslocamento em segundos. Predefinição = duração total."
}
}
},
"pause_cycle": {
"name": "Pausar ciclo",
"description": "Pause o ciclo ativo para um dispositivo WashData.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData a ser pausado."
}
}
},
"resume_cycle": {
"name": "Retomar ciclo",
"description": "Retome um ciclo pausado para um dispositivo WashData.",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData a ser retomado."
}
}
},
"trigger_ml_training": {
"name": "Iniciar treino de ML",
"description": "Retreinar manualmente os modelos de ML no dispositivo a partir dos ciclos rotulados do próprio dispositivo (experimental).",
"fields": {
"device_id": {
"name": "Dispositivo",
"description": "O dispositivo WashData para retreinar modelos."
}
}
}
},
"entity": {
"binary_sensor": {
"running": {
"name": "A funcionar"
},
"match_ambiguity": {
"name": "Ambiguidade de correspondência"
}
},
"sensor": {
"washer_state": {
"name": "Estado",
"state": {
"off": "Desligado",
"idle": "Inactivo",
"starting": "A iniciar",
"running": "A funcionar",
"paused": "Em pausa",
"user_paused": "Em pausa pelo utilizador",
"ending": "A terminar",
"finished": "Concluído",
"anti_wrinkle": "Anti-vincos",
"interrupted": "Interrompido",
"force_stopped": "Parado forçosamente",
"rinse": "Enxaguar",
"unknown": "Desconhecido",
"clean": "Limpar",
"delay_wait": "Esperando para começar"
}
},
"washer_program": {
"name": "Programa"
},
"time_remaining": {
"name": "Tempo restante"
},
"total_duration": {
"name": "Duração total"
},
"cycle_progress": {
"name": "Progresso"
},
"current_power": {
"name": "Potência actual"
},
"elapsed_time": {
"name": "Tempo decorrido"
},
"debug_info": {
"name": "Informação de depuração"
},
"match_confidence": {
"name": "Confiança na correspondência"
},
"top_candidates": {
"name": "Principais candidatos",
"state": {
"none": "Nenhum"
}
},
"ambiguity": {
"name": "Pontuação de ambiguidade"
},
"current_phase": {
"name": "Fase actual"
},
"profile_cycle_count": {
"name": "Perfil {profile_name} - contagem",
"unit_of_measurement": "ciclos"
},
"suggestions": {
"name": "Definições sugeridas disponíveis"
},
"pump_runs_today": {
"name": "Funcionamento da bomba (últimas 24 horas)"
},
"cycle_count": {
"name": "Contagem de ciclos"
},
"energy_total": {
"name": "Energia total"
}
},
"select": {
"program_select": {
"name": "Programa do ciclo",
"state": {
"auto_detect": "Detecção automática"
}
}
},
"button": {
"force_end_cycle": {
"name": "Forçar fim do ciclo"
},
"pause_cycle": {
"name": "Pausar ciclo"
},
"resume_cycle": {
"name": "Retomar ciclo"
},
"record_start": {
"name": "Iniciar gravação do ciclo"
},
"record_stop": {
"name": "Parar gravação do ciclo"
}
}
},
"exceptions": {
"device_id_required": {
"message": "É necessário um device_id válido."
},
"cycle_id_required": {
"message": "É necessário um cycle_id válido."
},
"profile_name_required": {
"message": "É necessário um profile_name válido."
},
"device_not_found": {
"message": "Dispositivo não encontrado."
},
"no_config_entry": {
"message": "Nenhuma entrada de configuração encontrada para o dispositivo."
},
"integration_not_loaded": {
"message": "Integração não carregada para este dispositivo."
},
"cycle_not_found_or_no_power": {
"message": "Ciclo não encontrado ou não possui dados de potência."
},
"trim_failed_empty_window": {
"message": "Corte falhou - ciclo não encontrado, sem dados de potência ou a janela resultante está vazia."
},
"trim_invalid_range": {
"message": "trim_end_s deve ser maior que trim_start_s."
},
"no_active_cycle": {
"message": "Nenhum ciclo ativo para pausar ou retomar."
},
"path_not_allowed": {
"message": "Caminho não permitido: {path}. Adicione o respetivo diretório a 'allowlist_external_dirs' no configuration.yaml."
},
"create_profile_failed": {
"message": "Não foi possível criar o perfil: {error}"
},
"export_path_exists": {
"message": "O destino de exportação já existe: {path}. Escolha um caminho diferente ou remova primeiro o ficheiro existente."
},
"export_write_failed": {
"message": "Não foi possível escrever a exportação em {path}: {error}"
},
"assign_profile_failed": {
"message": "Não foi possível atribuir o perfil: {error}"
}
}
}