{ "config": { "step": { "user": { "title": "Bem-vindo ao TaskMate!", "description": "Configure o seu sistema de gestão de tarefas familiar. Pode personalizar a moeda de pontos que as crianças vão ganhar.", "data": { "points_name": "Nome da moeda de pontos (ex: Estrelas, Moedas, Pontos)", "points_icon": "Ícone dos pontos" } } }, "error": { "name_required": "O nome é obrigatório" }, "abort": { "already_configured": "O TaskMate já está configurado" } }, "selector": { "chore_action": { "options": { "save": "Guardar alterações", "re_enable": "Reativar tarefa", "disable": "Desativar tarefa", "delete": "Eliminar esta tarefa" } }, "reward_action": { "options": { "save": "Guardar alterações", "delete": "Eliminar recompensa" } }, "time_category": { "options": { "morning": "Manhã", "afternoon": "Tarde", "evening": "Fim da tarde", "night": "Noite", "anytime": "Qualquer hora" } }, "schedule_mode": { "options": { "specific_days": "Dias específicos da semana", "recurring": "Recorrente (a cada N dias/semanas/meses)", "one_shot": "Tarefa única (um dia)" } }, "due_days_option": { "options": { "monday": "Segunda-feira", "tuesday": "Terça-feira", "wednesday": "Quarta-feira", "thursday": "Quinta-feira", "friday": "Sexta-feira", "saturday": "Sábado", "sunday": "Domingo" } }, "recurrence": { "options": { "every_2_days": "A cada 2 dias", "weekly": "Semanal", "every_2_weeks": "A cada 2 semanas", "monthly": "Mensal", "every_3_months": "A cada 3 meses", "every_6_months": "A cada 6 meses" } }, "recurrence_day_option": { "options": { "monday": "Segunda-feira", "tuesday": "Terça-feira", "wednesday": "Quarta-feira", "thursday": "Quinta-feira", "friday": "Sexta-feira", "saturday": "Sábado", "sunday": "Domingo", "any_day": "Qualquer dia" } }, "first_occurrence_mode": { "options": { "available_immediately": "Disponível imediatamente", "wait_for_first_occurrence": "Aguardar primeira ocorrência agendada" } }, "streak_reset_mode": { "options": { "reset": "Reiniciar — sequência volta a 0 num dia falhado", "pause": "Pausar — sequência preservada até próxima conclusão" } }, "visibility_operator": { "options": { "none": "Sem filtro — Mostrar sempre a tarefa", "equals": "Igual — Mostrar quando o estado da entidade corresponde exatamente", "not_equals": "Não igual — Mostrar quando o estado da entidade não corresponde", "gte": "Maior ou igual (≥) — Mostrar quando valor numérico é ≥ alvo", "lte": "Menor ou igual (≤) — Mostrar quando valor numérico é ≤ alvo", "gt": "Maior que (>) — Mostrar quando valor numérico é > alvo", "lt": "Menor que (<) — Mostrar quando valor numérico é < alvo" } }, "assignment_mode": { "options": { "everyone": "Todos — todas as crianças atribuídas veem a tarefa", "alternating": "Alternado — alterna entre as crianças atribuídas, uma por dia", "random": "Aleatório — escolhe aleatoriamente uma criança atribuída por dia", "balanced": "Equilibrado — divide as tarefas equilibradas do dia igualmente entre as crianças atribuídas", "first_come": "Quem chega primeiro — a primeira criança a concluir ganha; desaparece para as restantes", "unassigned": "Não atribuído — nenhuma criança vê esta tarefa" } }, "task_group_policy": { "options": { "sticky": "Sticky — mesma criança para todas as tarefas do grupo", "spread": "Spread — crianças diferentes no grupo hoje" } }, "task_group_action": { "options": { "save": "Guardar alterações", "delete": "Eliminar grupo" } } }, "services": { "complete_chore": { "name": "Concluir tarefa", "description": "Marcar uma tarefa como concluída por uma criança", "fields": { "chore_id": { "name": "ID da tarefa", "description": "O ID da tarefa a concluir" }, "child_id": { "name": "ID da criança", "description": "O ID da criança que conclui a tarefa" } } }, "complete_bonus_subtask": { "name": "Concluir subtarefa bónus", "description": "Concluir uma subtarefa bónus depois de a tarefa principal estar concluída", "fields": { "chore_id": { "name": "ID da tarefa", "description": "O ID da tarefa principal" }, "bonus_subtask_id": { "name": "ID da subtarefa bónus", "description": "O ID da subtarefa bónus a concluir" }, "child_id": { "name": "ID da criança", "description": "O ID da criança que conclui a subtarefa bónus" } } }, "approve_chore": { "name": "Aprovar tarefa", "description": "Aprovar uma tarefa concluída e atribuir pontos", "fields": { "completion_id": { "name": "ID de conclusão", "description": "O ID da conclusão da tarefa a aprovar" } } }, "approve_all_chores": { "name": "Aprovar todas as tarefas", "description": "Aprovar todas as conclusões de tarefas pendentes (ou um conjunto específico) e atribuir pontos", "fields": { "completion_ids": { "name": "IDs de conclusão", "description": "IDs de conclusão específicos para aprovar; omita para aprovar todas as pendentes" } } }, "reject_chore": { "name": "Rejeitar tarefa", "description": "Rejeitar uma tarefa concluída", "fields": { "completion_id": { "name": "ID de conclusão", "description": "O ID da conclusão da tarefa a rejeitar" } } }, "undo_chore_approval": { "name": "Anular aprovação de tarefa", "description": "Anular a aprovação acidental de uma tarefa — remove os pontos atribuídos e devolve a conclusão a pendente para que possa ser aprovada novamente.", "fields": { "completion_id": { "name": "ID de conclusão", "description": "O ID da conclusão de tarefa aprovada a repor como pendente" } } }, "undo_transaction": { "name": "Anular transação", "description": "Anular uma transação de pontos pelo seu ID — penalizações, bónus, ajustes manuais (adicionar/remover) e presentes (ambas as partes). As transações automáticas (bónus de fim de semana/sequência/semana perfeita, movimentos do mealheiro, desvalorização, juros) não podem ser anuladas.", "fields": { "transaction_id": { "name": "ID da transação", "description": "O ID da transação de pontos a reverter" } } }, "claim_reward": { "name": "Reclamar recompensa", "description": "A criança reclama uma recompensa usando os seus pontos", "fields": { "reward_id": { "name": "ID da recompensa", "description": "O ID da recompensa a reclamar" }, "child_id": { "name": "ID da criança", "description": "O ID da criança que reclama a recompensa" } } }, "approve_reward": { "name": "Aprovar recompensa", "description": "Aprovar um pedido de recompensa", "fields": { "claim_id": { "name": "ID do pedido", "description": "O ID do pedido de recompensa a aprovar" } } }, "allocate_points_to_pool": { "name": "Alocar pontos ao mealheiro", "description": "Mover pontos do saldo disponível de uma criança para o mealheiro de uma recompensa (bloqueado).", "fields": { "child_id": { "name": "ID da criança", "description": "O ID da criança que faz a alocação" }, "reward_id": { "name": "ID da recompensa", "description": "O ID do mealheiro da recompensa onde depositar" }, "points": { "name": "Pontos", "description": "Número de pontos a alocar (limitado pela capacidade do mealheiro e pelo saldo disponível)" } } }, "add_points": { "name": "Adicionar pontos", "description": "Adicionar pontos de bónus a uma criança", "fields": { "child_id": { "name": "ID da criança", "description": "O ID da criança a quem adicionar pontos" }, "points": { "name": "Pontos", "description": "O número de pontos a adicionar" }, "reason": { "name": "Motivo", "description": "Motivo opcional para o bónus" } } }, "remove_points": { "name": "Remover pontos", "description": "Remover pontos de uma criança (penalização)", "fields": { "child_id": { "name": "ID da criança", "description": "O ID da criança a quem remover pontos" }, "points": { "name": "Pontos", "description": "O número de pontos a remover" }, "reason": { "name": "Motivo", "description": "Motivo opcional para a penalização" } } }, "reject_reward": { "name": "Rejeitar recompensa", "description": "Rejeitar um pedido de recompensa", "fields": { "claim_id": { "name": "ID do pedido", "description": "O ID do pedido de recompensa a rejeitar" } } }, "preview_sound": { "name": "Pré-visualizar som", "description": "Pré-visualizar um efeito sonoro de conclusão no navegador", "fields": { "sound": { "name": "Som", "description": "O som a pré-visualizar" } } }, "set_chore_order": { "name": "Definir ordem das tarefas", "description": "Definir a ordem de apresentação das tarefas para uma criança", "fields": { "child_id": { "name": "ID da criança", "description": "O ID da criança para definir a ordem das tarefas" }, "chore_order": { "name": "Ordem das tarefas", "description": "Lista ordenada de IDs de tarefas" } } }, "add_penalty": { "name": "Adicionar penalização", "description": "Criar uma nova definição de penalização", "fields": { "name": { "name": "Nome", "description": "O nome da penalização" }, "points": { "name": "Pontos", "description": "O número de pontos a deduzir quando aplicada" }, "description": { "name": "Descrição", "description": "Descrição opcional da penalização" }, "icon": { "name": "Ícone", "description": "Ícone MDI para a penalização" }, "assigned_to": { "name": "Atribuída a", "description": "Lista de IDs de crianças a quem esta penalização se aplica" } } }, "update_penalty": { "name": "Atualizar penalização", "description": "Atualizar uma definição de penalização existente", "fields": { "penalty_id": { "name": "ID da penalização", "description": "O ID da penalização a atualizar" }, "name": { "name": "Nome", "description": "Novo nome para a penalização" }, "points": { "name": "Pontos", "description": "Novo valor de pontos" }, "description": { "name": "Descrição", "description": "Nova descrição" }, "icon": { "name": "Ícone", "description": "Novo ícone" }, "assigned_to": { "name": "Atribuída a", "description": "Nova lista de IDs de crianças" } } }, "remove_penalty": { "name": "Remover penalização", "description": "Remover uma definição de penalização", "fields": { "penalty_id": { "name": "ID da penalização", "description": "O ID da penalização a remover" } } }, "apply_penalty": { "name": "Aplicar penalização", "description": "Aplicar uma penalização a uma criança, deduzindo pontos", "fields": { "penalty_id": { "name": "ID da penalização", "description": "O ID da penalização a aplicar" }, "child_id": { "name": "ID da criança", "description": "O ID da criança a quem aplicar a penalização" } } }, "add_bonus": { "name": "Adicionar bónus", "description": "Criar uma nova definição de bónus", "fields": { "name": { "name": "Nome", "description": "O nome do bónus" }, "points": { "name": "Pontos", "description": "O número de pontos a atribuir quando aplicado" }, "description": { "name": "Descrição", "description": "Descrição opcional do bónus" }, "icon": { "name": "Ícone", "description": "Ícone MDI para o bónus" }, "assigned_to": { "name": "Atribuído a", "description": "Lista de IDs de crianças a que este bónus se aplica" } } }, "update_bonus": { "name": "Atualizar bónus", "description": "Atualizar uma definição de bónus existente", "fields": { "bonus_id": { "name": "ID do bónus", "description": "O ID do bónus a atualizar" }, "name": { "name": "Nome", "description": "Novo nome para o bónus" }, "points": { "name": "Pontos", "description": "Novo valor de pontos" }, "description": { "name": "Descrição", "description": "Nova descrição" }, "icon": { "name": "Ícone", "description": "Novo ícone" }, "assigned_to": { "name": "Atribuído a", "description": "Nova lista de IDs de crianças" } } }, "remove_bonus": { "name": "Remover bónus", "description": "Remover uma definição de bónus", "fields": { "bonus_id": { "name": "ID do bónus", "description": "O ID do bónus a remover" } } }, "apply_bonus": { "name": "Aplicar bónus", "description": "Aplicar um bónus a uma criança, atribuindo pontos", "fields": { "bonus_id": { "name": "ID do bónus", "description": "O ID do bónus a aplicar" }, "child_id": { "name": "ID da criança", "description": "O ID da criança a quem aplicar o bónus" } } }, "add_chore": { "name": "Adicionar tarefa", "description": "Criar uma nova tarefa dinamicamente, normalmente a partir de uma automação ou script", "fields": { "name": { "name": "Nome", "description": "O nome da tarefa" }, "description": { "name": "Descrição", "description": "Descrição opcional da tarefa" }, "points": { "name": "Pontos", "description": "Pontos atribuídos quando esta tarefa é concluída" }, "assigned_to": { "name": "Atribuída a", "description": "Lista de IDs de crianças a quem atribuir esta tarefa. Deixe vazio para atribuir a todas as crianças" }, "time_category": { "name": "Categoria de tempo", "description": "Quando esta tarefa deve ser concluída: morning, afternoon, evening, night ou anytime" }, "one_shot": { "name": "Única", "description": "Se verdadeiro, é uma tarefa única que expira após a conclusão ou no final do dia" }, "requires_approval": { "name": "Requer aprovação", "description": "Se verdadeiro, um pai/mãe deve aprovar a conclusão antes de os pontos serem atribuídos" } } }, "skip_chore": { "name": "Skip Chore", "description": "Advance today's rotation past the current assignee. Ephemeral — tomorrow's rotation resumes as normal.", "fields": { "chore_id": { "name": "Chore ID", "description": "The ID of the chore to skip" } } }, "set_chore_manual_start": { "name": "Set Manual Start Child", "description": "Set which child starts a rotating chore. For alternating mode this reorders the pool; for random/balanced it only overrides today's assignee.", "fields": { "chore_id": { "name": "Chore ID", "description": "The ID of the chore to update" }, "child_id": { "name": "Child ID", "description": "The ID of the child who should start the rotation" } } }, "add_task_group": { "name": "Add Task Group", "description": "Create a task group (sticky = same child, spread = different children).", "fields": { "name": { "name": "Name", "description": "Display name for the group" }, "policy": { "name": "Policy", "description": "sticky (same child) or spread (different children)" }, "chore_ids": { "name": "Chore IDs", "description": "List of chore IDs in the group. For sticky, the first chore is the leader." } } }, "update_task_group": { "name": "Update Task Group", "description": "Update a task group's name, policy, or membership.", "fields": { "group_id": { "name": "Group ID", "description": "The ID of the group to update" }, "name": { "name": "Name", "description": "New display name" }, "policy": { "name": "Policy", "description": "New policy (sticky or spread)" }, "chore_ids": { "name": "Chore IDs", "description": "Replacement chore ID list. For sticky, the first chore is the leader." } } }, "remove_task_group": { "name": "Remove Task Group", "description": "Delete a task group. Member chores are not affected.", "fields": { "group_id": { "name": "Group ID", "description": "The ID of the group to delete" } } }, "start_timed_task": { "name": "Iniciar tarefa temporizada", "description": "Iniciar ou retomar o temporizador de uma tarefa temporizada", "fields": { "chore_id": { "name": "ID da tarefa", "description": "O ID da tarefa temporizada" }, "child_id": { "name": "ID da criança", "description": "O ID da criança que inicia o temporizador" } } }, "pause_timed_task": { "name": "Pausar tarefa temporizada", "description": "Pausar o temporizador de uma tarefa temporizada em curso", "fields": { "chore_id": { "name": "ID da tarefa", "description": "O ID da tarefa temporizada" }, "child_id": { "name": "ID da criança", "description": "O ID da criança que pausa o temporizador" } } }, "stop_timed_task": { "name": "Parar tarefa temporizada", "description": "Parar o temporizador de uma tarefa temporizada e submeter para aprovação", "fields": { "chore_id": { "name": "ID da tarefa", "description": "O ID da tarefa temporizada" }, "child_id": { "name": "ID da criança", "description": "O ID da criança que para o temporizador" } } }, "add_badge": { "name": "Adicionar conquista", "description": "Criar uma conquista personalizada.", "fields": { "name": { "name": "Nome", "description": "O nome de apresentação da conquista" }, "description": { "name": "Descrição", "description": "Descrição de como a conquista é ganha" }, "icon": { "name": "Ícone", "description": "Ícone da conquista (ex.: mdi:beach)" }, "tier": { "name": "Nível", "description": "Nível da conquista: bronze, prata, ouro ou platina" }, "point_bonus": { "name": "Bónus de pontos", "description": "Pontos creditados à criança quando a conquista é ganha" }, "criteria": { "name": "Critérios", "description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual." }, "assigned_to": { "name": "Atribuída a", "description": "Lista de IDs de crianças (vazio = todas)" }, "notify_on_earn": { "name": "Notificar ao ganhar", "description": "Enviar uma notificação quando a conquista é ganha" } } }, "update_badge": { "name": "Atualizar conquista", "description": "Atualizar uma conquista existente. Para as integradas, apenas point_bonus, tier, assigned_to, enabled e notify_on_earn são editáveis.", "fields": { "badge_id": { "name": "ID da conquista", "description": "O ID da conquista a atualizar" }, "name": { "name": "Nome", "description": "Novo nome de apresentação da conquista" }, "description": { "name": "Descrição", "description": "Nova descrição da conquista" }, "icon": { "name": "Ícone", "description": "Novo ícone da conquista" }, "tier": { "name": "Nível", "description": "Nível da conquista: bronze, prata, ouro ou platina" }, "point_bonus": { "name": "Bónus de pontos", "description": "Pontos creditados à criança quando a conquista é ganha" }, "criteria": { "name": "Critérios", "description": "Lista de dicionários metric / operator / value. Vazio = apenas atribuição manual." }, "assigned_to": { "name": "Atribuída a", "description": "Lista de IDs de crianças (vazio = todas)" }, "enabled": { "name": "Ativada", "description": "Se a conquista está ativa" }, "notify_on_earn": { "name": "Notificar ao ganhar", "description": "Enviar uma notificação quando a conquista é ganha" } } }, "remove_badge": { "name": "Remover conquista", "description": "Remover uma conquista personalizada. As integradas não podem ser removidas.", "fields": { "badge_id": { "name": "ID da conquista", "description": "O ID da conquista a remover" } } }, "award_badge_manually": { "name": "Atribuir conquista manualmente", "description": "Atribuir manualmente uma conquista a uma criança.", "fields": { "badge_id": { "name": "ID da conquista", "description": "O ID da conquista a atribuir" }, "child_id": { "name": "ID da criança", "description": "O ID da criança que recebe a conquista" } } }, "revoke_badge": { "name": "Revogar conquista", "description": "Revogar uma conquista atribuída. Se um bónus de pontos foi creditado, é revertido.", "fields": { "awarded_badge_id": { "name": "ID da conquista atribuída", "description": "O ID da conquista atribuída a revogar" } } }, "rebuild_badges": { "name": "Reconstruir conquistas", "description": "Reavaliar todas as conquistas de todas as crianças silenciosamente (sem notificações nem bónus de pontos)." }, "apply_mandatory_penalty": { "name": "Aplicar penalização obrigatória", "description": "Deduz os pontos de penalização configurados por uma tarefa obrigatória falhada e remove o item de revisão.", "fields": { "miss_id": { "name": "ID da falha", "description": "O ID do item de revisão da tarefa obrigatória falhada" } } }, "choose_avatar": { "name": "Escolher avatar", "description": "Uma criança muda para um avatar que desbloqueou.", "fields": { "child_id": { "name": "ID da criança", "description": "O ID da criança" }, "icon": { "name": "Ícone do avatar", "description": "O ícone mdi de um avatar do catálogo desbloqueado (ex.: mdi:rocket-launch)." } } }, "dismiss_mandatory_chore": { "name": "Dispensar tarefa obrigatória", "description": "Remove o item de revisão de uma tarefa obrigatória falhada sem penalização.", "fields": { "miss_id": { "name": "ID da falha", "description": "O ID do item de revisão da tarefa obrigatória falhada" } } }, "gift_points": { "name": "Oferecer pontos", "description": "Transfere pontos disponíveis de uma criança para outra (controlado pelos pais).", "fields": { "from_child_id": { "name": "ID da criança de origem", "description": "O ID da criança que envia os pontos" }, "to_child_id": { "name": "ID da criança de destino", "description": "O ID da criança que recebe os pontos" }, "points": { "name": "Pontos", "description": "O número de pontos a transferir" } } }, "postpone_mandatory_chore": { "name": "Adiar tarefa obrigatória", "description": "Dá a uma tarefa obrigatória falhada outro período (ou amanhã) sem penalização e remove o item de revisão.", "fields": { "miss_id": { "name": "ID da falha", "description": "O ID do item de revisão da tarefa obrigatória falhada" } } }, "request_swap": { "name": "Pedir troca de tarefa", "description": "Uma criança pede para assumir a atribuição de rotação de hoje de uma tarefa (sujeito a aprovação dos pais).", "fields": { "chore_id": { "name": "ID da tarefa", "description": "O ID da tarefa a assumir" }, "requester_id": { "name": "ID da criança solicitante", "description": "O ID da criança que pede a troca" } } }, "test_notification": { "name": "Notificação de teste", "description": "Envia uma notificação de exemplo do tipo indicado aos destinatários ativados (ignora o interruptor principal para que o encaminhamento possa ser verificado).", "fields": { "type_id": { "name": "Tipo de notificação", "description": "ID do tipo de notificação, p. ex. pending_chore_approval, badge_earned, streak_milestone" } } }, "record_allowance_payout": { "name": "Registar pagamento de mesada", "description": "Deduzir pontos e registar um pagamento de mesada real no histórico (taxa de conversão fixa; controlado pelos pais).", "fields": { "child_id": { "name": "ID da criança", "description": "O ID da criança que recebe o pagamento" }, "points": { "name": "Pontos", "description": "Pontos a converter em dinheiro e a deduzir" } } } }, "entity": { "sensor": { "child_stats": { "unit_of_measurement": "tarefas" }, "child_badges": { "unit_of_measurement": "medalhas" } }, "number": { "weekend_multiplier": { "name": "Multiplicador de fim de semana" }, "perfect_week_bonus": { "name": "Bónus de semana perfeita" } }, "select": { "streak_reset_mode": { "name": "Modo de reposição de sequência" }, "card_design": { "name": "Design do cartão" } } } }