{ "common": { "save": "Salvar", "cancel": "Cancelar", "delete": "Excluir", "edit": "Editar", "close": "Fechar", "create": "Criar", "add": "Adicionar", "back": "Voltar", "next": "Próximo", "loading": "Carregando…", "saving": "Salvando…", "required": "Este campo é obrigatório.", "error": "Erro", "allFieldsRequired": "Por favor, preencha todos os campos.", "today": "Hoje", "tomorrow": "Amanhã", "skipToContent": "Pular para o conteúdo", "reload": "Recarregar", "errorOccurred": "Algo deu errado.", "unexpectedError": "Ocorreu um erro inesperado.", "errorGeneric": "Ocorreu um erro.", "updateAvailable": "Atualização disponível - recarregue a página para obter a versão mais recente.", "titleRequired": "Título é obrigatório", "nameRequired": "Nome é obrigatório", "contentRequired": "Conteúdo é obrigatório", "all": "Todos", "unknownError": "Erro desconhecido", "confirm": "Confirmar", "undo": "Desfazer", "reset": "Restaurar original", "errorOffline": "Sem ligação à internet. Por favor, verifique a sua rede.", "errorForbidden": "Acesso negado. Por favor, inicie sessão novamente.", "errorNotFound": "O registo não foi encontrado.", "errorServer": "Erro no servidor. Por favor, tente mais tarde.", "errorTimeout": "A ligação demorou demasiado. Por favor, tente novamente." }, "nav": { "dashboard": "Painel", "tasks": "Tarefas", "calendar": "Calendário", "meals": "Refeições", "shopping": "Compras", "notes": "Notas", "contacts": "Contatos", "birthdays": "Aniversários", "budget": "Orçamento", "settings": "Configurações", "main": "Navegação principal", "navigation": "Navegação", "quickActions": "Ações rápidas", "recipes": "Receitas", "more": "Mais", "documents": "Documentos", "kitchen": "Cozinha", "search": "Pesquisar" }, "dashboard": { "title": "Painel", "greetingMorning": "Bom dia, {{name}}", "greetingDay": "Boa tarde, {{name}}", "greetingEvening": "Boa noite, {{name}}", "allDone": "Tudo concluído", "noEvents": "Nenhum evento", "noPinnedNotes": "Nenhuma nota fixada", "todayMeals": "Refeições de hoje", "allLink": "Todos", "weekLink": "Semana", "urgentTasksChip": "{{count}} tarefa a vencer", "urgentTasksChipPlural": "{{count}} tarefas a vencer", "eventsChip": "{{count}} evento hoje", "eventsChipPlural": "{{count}} eventos hoje", "todayMealChip": "Hoje: {{title}}", "loadError": "Falha ao carregar o painel.", "weatherRefresh": "Atualizar clima", "weatherRefreshTitle": "Atualizar", "weatherUpdated": "Clima atualizado", "weatherFeelsLike": "Sensação {{temp}}° · {{humidity}}% · Vento {{wind}} {{windUnit}}", "fabTaskLabel": "Adicionar tarefa", "fabCalendarLabel": "Adicionar evento", "fabShoppingLabel": "Adicionar compra", "fabNoteLabel": "Adicionar nota", "fabTask": "Tarefa", "fabCalendar": "Evento", "fabShopping": "Compras", "fabNote": "Nota", "overdue": "Atrasado", "dueSoon": "Vence hoje", "dueToday": "Vence hoje", "dueTomorrow": "Vence amanhã", "allDay": "Dia inteiro", "shoppingMore": "+{{count}} mais", "weather": "Clima", "familyMembers": "Membros da família", "participantsAdded": "participantes adicionados", "upcomingBirthdays": "Próximos aniversários", "noBirthdays": "Nenhum aniversário ainda", "daysLeft": "{{count}} dias", "budgetOverview": "Visão do orçamento", "monthlyIncome": "Receitas", "monthlyExpenses": "Despesas", "monthlyBalance": "Saldo", "savingsRate": "Taxa de poupança", "topExpense": "Maior despesa", "budgetEntries": "Lançamentos", "noBudgetData": "Sem dados de orçamento neste mês.", "customize": "Personalizar", "customizeTitle": "Personalizar widgets", "customizeReset": "Padrão", "customizeSaved": "Painel salvo", "customizeMoveUp": "Mover para cima", "customizeMoveDown": "Mover para baixo", "overdueTasksChip": "{{count}} tarefa vencida", "overdueTasksChipPlural": "{{count}} tarefas vencidas" }, "tasks": { "title": "Tarefas", "newTask": "Nova tarefa", "editTask": "Editar tarefa", "emptyTitle": "Nenhuma tarefa - tudo concluído?", "emptyDescription": "Crie novas tarefas com o botão +.", "titleLabel": "Título *", "titlePlaceholder": "O que precisa ser feito?", "descriptionLabel": "Nota", "descriptionPlaceholder": "Detalhes opcionais…", "priorityLabel": "Prioridade", "categoryLabel": "Categoria", "dueDateLabel": "Vencimento", "dueTimeLabel": "Horário", "assignedLabel": "Atribuído a", "assignedNobody": "- Ninguém -", "statusLabel": "Status", "priorityUrgent": "Urgente", "priorityHigh": "Alta", "priorityMedium": "Média", "priorityLow": "Baixa", "priorityNone": "Nenhuma", "statusOpen": "Aberto", "statusInProgress": "Em andamento", "statusDone": "Concluído", "statusArchived": "Arquivado", "categoryHousehold": "Casa", "categorySchool": "Escola", "categoryShopping": "Compras", "categoryRepair": "Reparo", "categoryHealth": "Saúde", "categoryFinance": "Finanças", "categoryLeisure": "Lazer", "categoryMisc": "Outros", "overdue": "Atrasado", "overdueDay": "{{count}}d atrasado", "dueToday": "Vence hoje", "dueTomorrow": "Vence amanhã", "groupOverdue": "Atrasado", "groupToday": "Hoje", "groupThisWeek": "Esta semana", "groupNextWeek": "Próxima semana", "groupLater": "Depois", "groupNoDate": "Sem data", "markDone": "Marcar {{title}} como concluído", "markOpen": "Marcar {{title}} como pendente", "editButton": "Editar tarefa", "archiveButton": "Arquivar tarefa", "swipeOpen": "Abrir", "swipeDone": "Concluído", "swipeEdit": "Editar", "subtaskAdd": "+ Adicionar subtarefa", "subtaskToggle": "Mostrar subtarefas", "subtaskMarkDone": "Marcar {{title}} como concluído", "deleteConfirm": "Excluir tarefa e todas as subtarefas?", "savedToast": "Tarefa salva.", "createdToast": "Tarefa criada.", "deletedToast": "Tarefa excluída.", "archivedToast": "Tarefa arquivada.", "loadError": "Falha ao carregar a tarefa.", "subtaskPrompt": "Subtarefa:", "kanbanOpen": "Aberto", "kanbanInProgress": "Em andamento", "kanbanDone": "Concluído", "kanbanArchived": "Arquivado", "kanbanMoveToInProgress": "Mover para em andamento", "kanbanMoveToDone": "Marcar como concluído", "kanbanMoveToOpen": "Reabrir", "recurring": "Recorrente", "listView": "Visualização em lista", "kanbanView": "Visualização Kanban", "filterBtn": "Filtrar", "filterClearAll": "Limpar todos os filtros", "filterGroupPerson": "Pessoa", "filterGroupPriority": "Prioridade", "filterGroupStatus": "Estado", "swipedDoneToast": "Marcado como concluído.", "swipedOpenToast": "Marcado como aberto.", "reminderNeedsDueDate": "Defina uma data de vencimento para habilitar lembretes da tarefa.", "emptyAction": "Criar tarefa" }, "shopping": { "title": "Compras", "noLists": "Nenhuma lista", "noListsDescription": "Crie uma lista com o botão +.", "emptyList": "A lista está vazia", "emptyListDescription": "Adicione itens pelo campo de entrada acima.", "newListPrompt": "Nome da nova lista:", "newListButton": "Criar nova lista", "renameListPrompt": "Novo nome da lista:", "deleteListConfirm": "Excluir a lista \"{{name}}\" e todos os itens?", "deletedListToast": "Lista excluída.", "itemDeletedToast": "\"{{name}}\" removido.", "itemsRemovedToast": "{{count}} itens removidos.", "clearChecked": "Excluir marcados ({{count}})", "itemNamePlaceholder": "Adicionar item…", "itemQtyPlaceholder": "Qtd", "itemNameLabel": "Nome do item", "itemQtyLabel": "Quantidade", "categoryLabel": "Categoria", "addItemLabel": "Adicionar item", "renameListLabel": "Renomear lista", "deleteListLabel": "Excluir lista", "swipeBack": "Voltar", "swipeCheck": "Marcar", "swipeDelete": "Excluir", "markDoneLabel": "Marcar {{name}}", "markUndoneLabel": "Desmarcar {{name}}", "deleteItemLabel": "Excluir {{name}}", "listsLoadError": "Falha ao carregar listas.", "itemsLoadError": "Falha ao carregar itens.", "catFruitVeg": "Frutas e Legumes", "catBakery": "Padaria", "catDairy": "Laticínios", "catMeatFish": "Carnes e Peixes", "catFrozen": "Congelados", "catDrinks": "Bebidas", "catHousehold": "Casa", "catDrugstore": "Farmácia", "catMisc": "Outros", "emptyAction": "Adicionar item" }, "meals": { "title": "Plano de refeições", "noMealPlanned": "Nenhuma refeição planejada", "addMeal": "Adicionar {{type}}", "editMeal": "Editar refeição", "addMealTitle": "Adicionar refeição", "deleteMeal": "Excluir refeição", "transferToShoppingList": "Ingredientes para lista de compras", "today": "Hoje", "prevWeek": "Semana anterior", "nextWeek": "Próxima semana", "loadError": "Falha ao carregar o plano de refeições.", "typeBreakfast": "Café da manhã", "typeLunch": "Almoço", "typeDinner": "Jantar", "typeSnack": "Lanche", "dayMo": "Seg", "dayDi": "Ter", "dayMi": "Qua", "dayDo": "Qui", "dayFr": "Sex", "daySa": "Sáb", "daySo": "Dom", "dateLabel": "Data", "mealTypeLabel": "Tipo de refeição", "titleLabel": "Título *", "titlePlaceholder": "Ex.: Feijoada", "notesLabel": "Notas", "notesPlaceholder": "Opcional…", "ingredientsLabel": "Ingredientes", "addIngredient": "Adicionar ingrediente", "ingredientNamePlaceholder": "Ingrediente", "ingredientQtyPlaceholder": "Qtd", "ingredientCategoryLabel": "Categoria", "ingredientCategoryDefault": "Outros", "removeIngredient": "Remover ingrediente", "transferLabel": "Transferir ingredientes para lista de compras", "transferNow": "Transferir agora", "noShoppingLists": "Nenhuma lista de compras disponível", "transferSuccess": "{{count}} ingrediente transferido", "transferSuccessPlural": "{{count}} ingredientes transferidos", "transferAlreadyDone": "Todos os ingredientes já foram transferidos", "ingredientCount": "{{count}} ingrediente", "ingredientCountPlural": "{{count}} ingredientes", "titleRequired": "Título é obrigatório", "loadingIndicator": "Carregando…", "recipeUrlLabel": "Link da receita (opcional)", "recipeUrlPlaceholder": "https://…", "openRecipe": "Abrir receita", "savedRecipeLabel": "Saved recipe", "savedRecipePlaceholder": "Select recipe", "saveAsRecipe": "Save as recipe", "recipeScaleLabel": "Scale ingredients", "deletedToast": "Meal deleted" }, "calendar": { "title": "Calendário", "newEvent": "Novo evento", "editEvent": "Editar evento", "addEvent": "Adicionar evento", "deleteEvent": "Excluir evento", "noEvents": "Nenhum evento no período selecionado.", "today": "Hoje", "back": "Voltar", "forward": "Avançar", "viewMonth": "Mês", "viewWeek": "Semana", "viewDay": "Dia", "viewAgenda": "Agenda", "allDay": "Dia inteiro", "allDayShort": "dia int.", "moreEvents": "+{{count}} mais", "weekNumberLabel": "Sem {{week}} · {{month}} {{year}}", "agendaFrom": "A partir de {{date}}", "titleLabel": "Título *", "titlePlaceholder": "Ex.: Dentista", "allDayToggle": "Dia inteiro", "startDateLabel": "Data de início", "startTimeLabel": "Horário de início", "endDateLabel": "Data de término", "endTimeLabel": "Horário de término", "fromLabel": "De", "toLabel": "Até", "locationLabel": "Local", "locationPlaceholder": "Opcional", "assignedLabel": "Atribuído a", "assignedNobody": "- Ninguém -", "colorLabel": "Cor {{color}}", "descriptionLabel": "Descrição", "descriptionPlaceholder": "Opcional…", "popupEdit": "Editar", "deleteConfirm": "Excluir \"{{title}}\"?", "createdToast": "Evento criado", "savedToast": "Evento salvo", "deletedToast": "Evento excluído", "loadError": "Falha ao carregar eventos.", "saveError": "Erro ao salvar", "deleteError": "Erro ao excluir", "titleRequired": "Título é obrigatório", "monthJanuary": "Janeiro", "monthFebruary": "Fevereiro", "monthMarch": "Março", "monthApril": "Abril", "monthMay": "Maio", "monthJune": "Junho", "monthJuly": "Julho", "monthAugust": "Agosto", "monthSeptember": "Setembro", "monthOctober": "Outubro", "monthNovember": "Novembro", "monthDecember": "Dezembro", "dayShortSunday": "Dom", "dayShortMonday": "Seg", "dayShortTuesday": "Ter", "dayShortWednesday": "Qua", "dayShortThursday": "Qui", "dayShortFriday": "Sex", "dayShortSaturday": "Sáb", "dayLongSunday": "Domingo", "dayLongMonday": "Segunda-feira", "dayLongTuesday": "Terça-feira", "dayLongWednesday": "Quarta-feira", "dayLongThursday": "Quinta-feira", "dayLongFriday": "Sexta-feira", "dayLongSaturday": "Sábado", "timeSuffix": "", "ics": { "reset": "Restaurar original", "resetToast": "Alterações restauradas." }, "iconLabel": "Ícone", "invalidDate": "Use uma data válida no formato selecionado.", "attachmentLabel": "Anexo", "attachmentHint": "Anexe uma imagem, PDF ou documento local. Imagens aparecem no pop-up do evento.", "attachmentFallback": "Anexo", "attachmentReadError": "Não foi possível ler o anexo.", "attachmentTooLarge": "O anexo pode ter no máximo 5 MB." }, "notes": { "title": "Quadro de notas", "newNote": "Nova nota", "editNote": "Editar nota", "addNoteLabel": "Nova nota", "searchPlaceholder": "Pesquisar notas…", "emptyTitle": "Nenhuma nota ainda", "emptyDescription": "Crie uma nova nota com o botão +.", "noResultsTitle": "Nenhum resultado", "noResultsDescription": "Nenhuma nota contém \"{{query}}\".", "titleLabel": "Título (opcional)", "titlePlaceholder": "Sem título", "contentLabel": "Conteúdo", "contentMarkdownHint": "(Formatação Markdown disponível)", "contentPlaceholder": "Escreva uma nota…", "colorLabel": "Cor", "pinnedLabel": "Fixar (aparece no painel)", "pinAction": "Fixar", "unpinAction": "Desafixar", "deleteLabel": "Excluir nota", "deleteConfirm": "Excluir nota?", "createdToast": "Nota criada", "savedToast": "Nota salva", "deletedToast": "Nota excluída", "loadError": "Falha ao carregar notas.", "formatBold": "Negrito (Ctrl+B)", "formatItalic": "Itálico (Ctrl+I)", "formatUnderline": "Sublinhado (Ctrl+U)", "formatStrikethrough": "Tachado", "formatHeading": "Título", "formatList": "Lista", "formatOrderedList": "Lista numerada", "formatChecklist": "Lista de verificação", "formatLink": "Link", "formatCode": "Código", "formatQuote": "Citação", "formatDivider": "Divisor", "emptyAction": "Criar nota" }, "contacts": { "title": "Contatos", "newContact": "Novo contato", "editContact": "Editar contato", "addButton": "Novo", "newContactLabel": "Novo contato", "searchPlaceholder": "Pesquisar por nome, telefone ou e-mail…", "importButton": "Importar", "importLabel": "Importar contato de vCard", "importTooltip": "Importar vCard", "emptyTitle": "Nenhum contato ainda", "emptyDescription": "Adicione novos contatos com o botão +.", "filterAll": "Todos", "nameLabel": "Nome *", "namePlaceholder": "Nome completo", "categoryLabel": "Categoria", "phoneLabel": "Telefone", "phonePlaceholder": "+55 …", "emailLabel": "E-mail", "emailPlaceholder": "nome@exemplo.com", "addressLabel": "Endereço", "addressPlaceholder": "Rua, Cidade", "notesLabel": "Notas", "notesPlaceholder": "Opcional…", "callLabel": "Ligar", "emailActionLabel": "E-mail", "mapsLabel": "Abrir no Maps", "exportLabel": "Exportar como vCard", "exportTooltip": "Exportar vCard", "deleteLabel": "Excluir contato", "deleteConfirm": "Excluir contato?", "deletePersonConfirm": "Excluir \"{{name}}\"?", "savedToast": "Contato salvo", "updatedToast": "Contato atualizado", "deletedToast": "Contato excluído", "importedToast": "{{name}} importado.", "importError": "Falha na importação: {{error}}", "vcardNoName": "vCard não contém nome.", "catDoctor": "Médico", "catSchool": "Escola/Creche", "catAuthority": "Órgão público", "catInsurance": "Seguro", "catCraftsman": "Artesão", "catEmergency": "Emergência", "catMisc": "Outros", "categoryDoctor": "Médico", "categorySchool": "Escola/Creche", "categoryAuthority": "Órgão público", "categoryInsurance": "Seguro", "categoryCraftsman": "Artesão", "categoryEmergency": "Emergência", "categoryOther": "Outros", "emptyAction": "Adicionar contato" }, "budget": { "title": "Orçamento", "newEntry": "Nova entrada", "editEntry": "Editar entrada", "addEntryLabel": "Adicionar entrada", "newEntryFabLabel": "Nova entrada", "currentMonth": "Atual", "prevMonth": "Mês anterior", "nextMonth": "Próximo mês", "income": "Receita", "expenses": "Despesas", "balance": "Saldo", "byCategory": "Por categoria", "transactions": "Transações", "emptyTitle": "Nenhuma entrada este mês", "emptyDescription": "Adicione entradas de orçamento com o botão +.", "csvExport": "CSV", "typeExpense": "Despesa", "typeIncome": "Receita", "titleLabel": "Título *", "titlePlaceholder": "Ex.: Supermercado", "amountLabel": "Valor *", "amountPlaceholder": "0,00", "categoryLabel": "Categoria", "dateLabel": "Data *", "recurringLabel": "Recorrente", "deleteLabel": "Excluir entrada", "deleteConfirm": "Excluir entrada?", "deletePersonConfirm": "Excluir \"{{title}}\"?", "addedToast": "Entrada adicionada", "savedToast": "Entrada salva", "deletedToast": "Entrada excluída", "loadError": "Falha ao carregar orçamento.", "trendNeutral": "- igual a {{month}}", "validAmountRequired": "Insira um valor válido", "dateRequired": "Data é obrigatória", "catFood": "Alimentação", "catRent": "Aluguel", "catInsurance": "Seguro", "catMobility": "Transporte", "catLeisure": "Lazer e Entretenimento", "catClothing": "Roupas", "catHealth": "Saúde", "catEducation": "Educação", "catMisc": "Outros", "catEarnedIncome": "Renda do Trabalho", "catInvestmentIncome": "Renda de Investimento", "catTransferGiftIncome": "Transferências e Presentes", "catGovernmentBenefits": "Benefícios Sociais", "catOtherIncome": "Outras Rendas", "loadingIndicator": "Carregando…", "subcategoryLabel": "Subcategoria", "catHousing": "Habitação / Casa", "catTransport": "Transporte", "catPersonalHealth": "Cuidados Pessoais / Saúde", "catShoppingClothing": "Compras e Vestuário", "catFinancialOther": "Serviços Financeiros e Outros", "subcatRentMortgage": "Aluguel / Prestação", "subcatCondominium": "Condomínio", "subcatUtilities": "Luz / Água / Gás", "subcatInternetTvPhone": "Internet / TV / Telefone", "subcatRenovationMaintenance": "Reforma / Manutenção", "subcatCleaning": "Limpeza", "subcatGroceries": "Supermercado", "subcatRestaurantsBars": "Restaurante / Bares", "subcatSnacksFastFood": "Lanches / Fast Food", "subcatBakery": "Padaria", "subcatFuel": "Combustível", "subcatParkingTolls": "Estacionamento / Pedágio", "subcatPublicTransport": "Transporte Público", "subcatAppsTaxi": "Aplicativos / Táxi", "subcatMaintenanceInsurance": "Manutenção / Seguro", "subcatPharmacy": "Farmácia", "subcatHealthInsurance": "Plano de Saúde", "subcatGymSports": "Academia / Esportes", "subcatBeautyCosmetics": "Beleza / Cosméticos", "subcatTravel": "Viagens", "subcatStreaming": "Streaming", "subcatEvents": "Eventos", "subcatHobbies": "Hobbies", "subcatClothesShoes": "Roupas / Calçados", "subcatElectronics": "Eletrônicos", "subcatGifts": "Presentes", "subcatCoursesCollege": "Cursos / Faculdade", "subcatSchoolSupplies": "Material Escolar", "subcatLanguages": "Idiomas", "subcatLoansInterest": "Empréstimos / Juros", "subcatBankFees": "Tarifas Bancárias", "subcatInsuranceOther": "Seguros", "subcatInvestments": "Investimentos", "subcatTaxes": "Impostos", "metaLoadError": "Categorias do orçamento não puderam ser carregadas.", "addCategory": "+ categoria", "addSubcategory": "+ subcategoria", "newCategoryPrompt": "Nome da nova categoria:", "newSubcategoryPrompt": "Nome da nova subcategoria:", "categoryAddedToast": "Categoria adicionada.", "subcategoryAddedToast": "Subcategoria adicionada.", "emptyAction": "Adicionar entrada" }, "settings": { "title": "Configurações", "tabGeneral": "Geral", "tabMeals": "Refeições", "tabBudget": "Orçamento", "tabShopping": "Compras", "tabCalendar": "Calendário", "tabFamily": "Gestão da família", "tabApiTokens": "API Tokens", "tabAccount": "Conta", "tabsAriaLabel": "Seções de configurações", "sectionDesign": "Design", "sectionAppName": "Nome da aplicação", "sectionShopping": "Compras", "shoppingCategoriesLabel": "Categorias de compras", "shoppingCategoriesHint": "Adicione, renomeie, exclua ou ordene categorias.", "shoppingCategoryPlaceholder": "Nova categoria…", "shoppingCategoryRenameHint": "Clique para renomear", "shoppingCategoryRenamePrompt": "Novo nome da categoria:", "shoppingCategoryMoveUp": "Mover categoria para cima", "shoppingCategoryMoveDown": "Mover categoria para baixo", "shoppingCategoryDelete": "Excluir categoria", "shoppingCategoryDeleteConfirm": "Excluir categoria \"{{name}}\"? Os itens existentes serão atribuídos à próxima categoria.", "shoppingCategoryAdded": "Categoria adicionada.", "shoppingCategoryRenamed": "Categoria renomeada.", "shoppingCategoryDeleted": "Categoria excluída.", "sectionAccount": "Minha conta", "sectionCalendarSync": "Sincronização de calendário", "sectionFamily": "Membros da família", "cardAppearance": "Aparência", "appNameTitle": "Nome do app", "appNameLabel": "Nome da aplicação", "appNameHint": "Este nome aparece na barra lateral, no título do navegador e no ecrã de login.", "appNamePlaceholder": "Oikos", "appNameSavedToast": "Nome da aplicação guardado.", "sectionDate": "Data", "dateFormatTitle": "Formato da data", "dateFormatLabel": "Formato preferido da data", "dateFormatHint": "Escolha como as datas aparecem em toda a aplicação.", "dateFormatSavedToast": "Formato da data salvo.", "themeSystem": "Sistema", "themeSysLabel": "Usar configuração do sistema", "themeLight": "Claro", "themeLightLabel": "Tema claro", "themeDark": "Escuro", "themeDarkLabel": "Tema escuro", "changePassword": "Alterar senha", "currentPasswordLabel": "Senha atual", "newPasswordLabel": "Nova senha", "confirmPasswordLabel": "Confirmar nova senha", "savePassword": "Salvar senha", "passwordMismatch": "As senhas não coincidem.", "passwordSavedToast": "Senha alterada com sucesso.", "googleCalendar": "Google Agenda", "appleCalendar": "Apple Calendar (iCloud)", "syncNow": "Sincronizar agora", "disconnect": "Desconectar", "connectGoogle": "Conectar ao Google", "connected": "Conectado", "connectedLastSync": "Conectado · Última: {{date}}", "notConnected": "Não conectado", "notConfigured": "Não configurado (variáveis .env ausentes)", "configured": "Configurado (via .env)", "configuredLastSync": "Configurado (via .env) · Última: {{date}}", "syncSuccess": "{{provider}} sincronizado.", "disconnectedToast": "{{provider}} desconectado.", "googleOnlyAdmin": "Apenas o administrador pode conectar o Google Agenda.", "appleOnlyAdmin": "Apenas o administrador pode conectar o Apple Calendar.", "caldavUrlLabel": "URL do servidor CalDAV", "caldavUrlPlaceholder": "https://caldav.icloud.com", "appleIdLabel": "Apple ID (e-mail)", "applePasswordLabel": "Senha específica do app", "applePasswordHint": "Crie a senha em appleid.apple.com → Segurança.", "appleConnectBtn": "Conectar e testar", "appleConnecting": "Conectando…", "appleConnectedToast": "Apple Calendar conectado.", "syncSuccessGoogle": "Sincronização com Google Agenda conectada com sucesso.", "syncSuccessApple": "Sincronização com Apple Calendar conectada com sucesso.", "syncErrorGoogle": "Falha ao conectar ao Google. Tente novamente.", "syncErrorApple": "Falha ao conectar ao Apple. Tente novamente.", "addMember": "+ Adicionar membro", "newMemberTitle": "Novo membro da família", "usernameLabel": "Nome de usuário", "displayNameLabel": "Nome de exibição", "memberPasswordLabel": "Senha", "colorLabel": "Cor", "profilePictureTitle": "Foto de perfil", "profilePictureLabel": "Enviar foto", "profilePictureHint": "PNG, JPEG ou WebP. Imagens grandes são redimensionadas antes do envio.", "profilePictureRemove": "Remover foto", "profilePictureTypeError": "Use uma imagem PNG, JPEG ou WebP.", "profilePictureFileTooLarge": "O arquivo de imagem é muito grande.", "profilePictureTooLarge": "A foto ainda está muito grande após o redimensionamento.", "profilePictureReadError": "Não foi possível ler a imagem selecionada.", "profileSavedToast": "Perfil atualizado.", "editMemberLabel": "Editar", "editMemberTitle": "Editar membro da família", "saveMember": "Salvar membro", "memberUpdatedToast": "{{name}} atualizado.", "familyRoleLabel": "Papel na família", "familyRoleDad": "Pai", "familyRoleMom": "Mãe", "familyRoleParent": "Responsável", "familyRoleChild": "Filho(a)", "familyRoleGrandparent": "Avô/Avó", "familyRoleRelative": "Parente", "familyRoleOther": "Membro da família", "systemAdminLabel": "Administrador do sistema", "systemAdminHint": "Administradores do sistema podem gerenciar configurações, integrações, tokens de API e contas da família.", "systemAdminBadge": "Admin do sistema", "roleLabel": "Função", "roleMember": "Membro", "roleAdmin": "Admin", "createMember": "Criar", "cancelAddMember": "Cancelar", "memberAddedToast": "{{name}} adicionado.", "deleteMemberConfirm": "Excluir {{name}}?", "memberDeletedToast": "{{name}} excluído.", "deleteMemberLabel": "Excluir", "logout": "Sair", "synchronizing": "Sincronizando…", "googleDisconnectConfirm": "Desconectar Google Agenda?", "appleDisconnectConfirm": "Desconectar Apple Calendar?", "localeSystem": "Sistema", "localeLabel": "Idioma", "languageTitle": "Idioma", "sectionMeals": "Plano de refeições", "mealTypesLabel": "Tipos de refeições visíveis", "mealTypesHint": "Apenas os tipos de refeições selecionados serão exibidos no plano.", "mealTypesSaved": "Configurações do plano de refeições salvas.", "mealTypesMinOne": "Pelo menos um tipo de refeição deve estar ativo.", "sectionBudget": "Orçamento", "currencyLabel": "Moeda", "currencyHint": "Define a moeda usada em toda a área de orçamento.", "currencySaved": "Moeda salva.", "apiTokensTitle": "API Tokens", "apiTokensCardTitle": "Access Tokens", "apiTokensHint": "Create API tokens for external integrations. The full token is shown only once after creation.", "apiTokenNameLabel": "Token name", "apiTokenExpiresLabel": "Expiration date", "apiTokenExpiresHint": "Leave empty to create a token without expiration.", "apiTokenCreatedLabel": "New API token", "apiTokenCreatedHint": "Store this token securely. It cannot be shown again.", "apiTokenCreate": "Create token", "apiTokenInvalidExpiration": "Please enter a valid expiration date.", "apiTokenCreatedToast": "API token created.", "apiTokenRevokedToast": "API token revoked.", "apiTokenRevokeConfirm": "Revoke API token \"{{name}}\"?", "apiTokenRevoke": "Revoke token", "apiTokenRevoked": "Revoked", "apiTokenExpired": "Expired", "apiTokenActive": "Active", "apiTokenPrefix": "Prefix", "apiTokenExpires": "Expires", "apiTokenNeverExpires": "No expiration", "apiTokenLastUsed": "Last used", "apiTokenNeverUsed": "Never used", "ics": { "title": "Assinaturas ICS", "add": "Adicionar assinatura", "addedToast": "Assinatura adicionada.", "deletedToast": "Assinatura excluída.", "syncedToast": "Assinatura sincronizada.", "confirm_delete": "Tens a certeza que queres apagar esta assinatura? Todos os eventos associados também serão apagados.", "empty": "Ainda sem assinaturas.", "form": { "name": "Nome", "url": "URL ICS", "color": "Cor", "shared": "Visível para todos" }, "actions": { "submit": "Adicionar", "save": "Guardar", "cancel": "Cancelar", "delete": "Apagar", "edit": "Editar", "sync": "Sincronizar agora" }, "status": { "lastSync": "Última sincronização:", "never": "Ainda não sincronizado", "syncing": "A sincronizar...", "syncError": "Erro de sincronização" }, "badges": { "private": "Privado", "shared": "Partilhado" }, "updatedToast": "Subscrição atualizada." }, "memberPhoneLabel": "Telefone (opcional)", "memberEmailLabel": "E-mail (opcional)", "memberBirthDateLabel": "Data de aniversário (opcional)", "memberContactBirthdayHint": "Este membro é sincronizado automaticamente com Contatos e Aniversários.", "memberBirthDateInvalid": "Use uma data de aniversário válida no formato selecionado.", "memberPhoneMeta": "Telefone: {{value}}", "memberBirthdayMeta": "Aniversário: {{date}}", "tabBackup": "Gestão de backups", "sectionBackup": "Gestão de backups", "backupDownloadTitle": "Baixar backup do banco de dados", "backupDownloadHint": "Cria um backup SQLite consistente com todos os dados da aplicação.", "backupDownloadButton": "Baixar backup", "backupRestoreTitle": "Restaurar backup do banco de dados", "backupRestoreHint": "A restauração substitui o banco atual. Baixe um backup novo antes de continuar.", "backupDropzoneTitle": "Arraste um arquivo de backup aqui ou clique para selecionar", "backupDropzoneHint": "Arquivos de backup SQLite: .db, .sqlite ou .sqlite3", "backupRestoreButton": "Restaurar backup", "backupRestoreConfirm": "Restaurar este backup substituirá o banco de dados atual para todos. Continuar?", "backupRestoring": "Restaurando...", "backupRestoredToast": "Banco de dados restaurado. Recarregando...", "backupCliTitle": "Restauração via CLI / Docker Compose", "backupCliHint": "Para restaurações operacionais, pare a aplicação, monte o backup em um container temporário e substitua o arquivo do banco de dados.", "backupCliBackupHint": "Você também pode criar um backup diretamente pelo Docker Compose:" }, "login": { "tagline": "Planejamento familiar. Seguro. Privado. Código aberto.", "usernameLabel": "Nome de usuário", "usernamePlaceholder": "nome de usuário", "passwordLabel": "Senha", "passwordPlaceholder": "••••••••", "loginButton": "Entrar", "loggingIn": "Entrando…", "tooManyAttempts": "Muitas tentativas. Por favor, aguarde.", "invalidCredentials": "Credenciais inválidas.", "version": "v{{version}}" }, "install": { "title": "Instalar Oikos", "subtitle": "Adicionar ao app", "iosTip1": "Toque em ", "iosTip2": " → \"Adicionar à Tela de Início\"", "installButton": "Instalar", "dismissLabel": "Fechar" }, "modal": { "closeLabel": "Fechar", "overlayLabel": "Fundo do diálogo modal", "unsavedChanges": "Descartar alterações?", "discardChanges": "Descartar" }, "rrule": { "freqNone": "Sem repetição", "freqDaily": "Diariamente", "freqWeekly": "Semanalmente", "freqMonthly": "Mensalmente", "dayMo": "Seg", "dayTu": "Ter", "dayWe": "Qua", "dayTh": "Qui", "dayFr": "Sex", "daySa": "Sáb", "daySu": "Dom", "labelRepeat": "Repetição", "labelEvery": "A cada", "labelOnDays": "Nestes dias", "labelUntil": "Termina em (opcional)", "unitDay": "dia", "unitDays": "dias", "unitWeek": "semana", "unitWeeks": "semanas", "unitMonth": "mês", "unitMonths": "meses" }, "recipes": { "title": "Receitas", "addRecipe": "Adicionar receita", "editRecipe": "Editar receita", "emptyTitle": "Nenhuma receita ainda", "emptyDescription": "Salve suas receitas favoritas e reutilize-as no planejamento de refeições.", "titleLabel": "Título *", "titlePlaceholder": "ex. Massa à Carbonara", "notesLabel": "Notas", "notesPlaceholder": "Opcional...", "urlLabel": "Link da receita", "urlPlaceholder": "https://...", "ingredientsLabel": "Ingredientes", "addToMeals": "Adicionar ao plano de refeições", "openLink": "Abrir link da receita", "deleteConfirm": "Excluir receita \"{{title}}\"?", "created": "Receita salva.", "updated": "Receita atualizada.", "deleted": "Receita excluída.", "titleRequired": "O título é obrigatório", "duplicate": "Duplicar", "duplicated": "Receita duplicada.", "copySuffix": "cópia", "emptyAction": "Criar receita" }, "search": { "title": "Pesquisa", "open": "Abrir pesquisa", "placeholder": "Pesquisar…", "noResults": "Nenhum resultado encontrado." }, "birthdays": { "title": "Aniversários", "addButton": "Adicionar aniversário", "searchPlaceholder": "Buscar aniversários…", "upcomingTitle": "Próximos aniversários", "upcomingHint": "As próximas comemorações, já sincronizadas com o calendário.", "peopleTitle": "Pessoas", "peopleHint": "Pesquise, revise e edite todos os aniversários salvos.", "emptyTitle": "Nenhum aniversário ainda", "emptyDescription": "Adicione um aniversário para mantê-lo visível no calendário e nos lembretes.", "newTitle": "Novo aniversário", "editTitle": "Editar aniversário", "nameLabel": "Nome", "birthDateLabel": "Data de nascimento", "photoLabel": "Foto de perfil", "photoOptional": "Opcional: você também pode salvar sem foto de perfil.", "removePhoto": "Remover foto", "notesLabel": "Notas", "notesPlaceholder": "Ideias de presente, bolo favorito, notas da família…", "calendarHint": "Cada aniversário é adicionado automaticamente ao calendário e ao sistema de lembretes.", "requiredFields": "Nome e data de nascimento são obrigatórios.", "createdToast": "Aniversário salvo.", "updatedToast": "Aniversário atualizado.", "deletedToast": "Aniversário excluído.", "deleteConfirm": "Excluir o aniversário de \"{{name}}\"?", "ageNoteToday": "Completa {{age}} anos hoje.", "ageNoteTomorrow": "Completa {{age}} anos amanhã.", "ageNoteDays": "Completa {{age}} anos em {{days}} dias." }, "reminders": { "sectionTitle": "Lembrete", "enableLabel": "Definir lembrete", "offsetLabel": "Lembrar", "offsetNone": "Nenhum", "offsetAtTime": "Na hora de início", "offset15min": "15 minutos antes", "offset1hour": "1 hora antes", "offset1day": "1 dia antes", "dateLabel": "Data", "timeLabel": "Hora", "toastTitle": "Lembrete", "dismiss": "Ignorar", "pendingBadgeTitle": "{{count}} lembrete pendente", "pendingBadgeTitlePlural": "{{count}} lembretes pendentes", "notificationPermission": "Notificações do browser", "notificationEnable": "Ativar notificações", "notificationEnabled": "Notificações ativas", "notificationDenied": "Notificações bloqueadas", "notificationHint": "Receba notificações mesmo quando a aplicação está aberta.", "offset2days": "2 dias antes", "offset1week": "1 semana antes", "offset2weeks": "2 semanas antes", "offsetCustom": "Personalizado...", "customAmountLabel": "Número", "customUnitLabel": "Unidade", "customMinutes": "Minutos", "customHours": "Horas", "customDays": "Dias", "customWeeks": "Semanas" }, "onboarding": { "step1Title": "Welcome to Oikos", "step1Body": "Your personal family planner. Tasks, calendar, shopping and more – all in one place.", "step2Title": "Navegação e módulos", "step2Body": "Na parte inferior acessa diretamente o Painel e o Calendário. Com o botão ··· abre módulos adicionais como Cozinha, Notas e Contactos.", "step3Title": "Comece rapidamente", "step3Body": "Com o botão + cria novas entradas em qualquer lugar. Deslize itens da lista para a esquerda ou direita para ações rápidas.", "next": "Next", "done": "Get started", "skip": "Skip" }, "offline": { "banner": "Offline – reconnecting…" }, "emptyHint": { "recipes": "Crie receitas e vincule-as ao seu planejador de refeições." }, "documents": { "title": "Documentos", "addButton": "Adicionar documento", "searchPlaceholder": "Buscar documentos...", "gridView": "Visualizacao em grade", "listView": "Visualizacao em lista", "viewToggle": "Visualizacao de documentos", "allCategories": "Todas as categorias", "emptyTitle": "Nenhum documento ainda", "emptyDescription": "Envie documentos da familia e controle quem pode ver cada arquivo.", "newTitle": "Novo documento", "editTitle": "Configuracoes do documento", "nameLabel": "Nome", "descriptionLabel": "Descricao", "categoryLabel": "Categoria", "fileLabel": "Arquivo", "fileHint": "PDF, imagens, texto e arquivos Office ate 5 MB.", "visibilityLabel": "Visibilidade", "statusLabel": "Estado", "allowedMembersLabel": "Membros permitidos", "uploadAction": "Enviar", "downloadAction": "Baixar", "editAction": "Configuracoes", "archiveAction": "Arquivar", "restoreAction": "Restaurar", "savedToast": "Documento salvo.", "uploadedToast": "Documento enviado.", "archivedToast": "Documento arquivado.", "restoredToast": "Documento restaurado.", "deletedToast": "Documento excluido.", "deleteConfirm": "Excluir documento \"{{name}}\"?", "fileRequired": "Selecione um arquivo para enviar.", "fileTooLarge": "O arquivo pode ter no maximo 5 MB.", "fileReadError": "Nao foi possivel ler o arquivo.", "statusActive": "Ativo", "statusArchived": "Arquivado", "visibility": { "family": "Familia inteira", "restricted": "Membros selecionados", "private": "Somente eu" }, "category": { "medical": "Medico", "school": "Escola", "identity": "Identidade", "insurance": "Seguro", "finance": "Financeiro", "home": "Casa", "vehicle": "Veiculo", "legal": "Juridico", "travel": "Viagem", "pets": "Pets", "warranty": "Garantia", "taxes": "Impostos", "work": "Trabalho", "other": "Outros" }, "dropzoneTitle": "Solte o arquivo aqui ou clique para escolher", "dropzoneHint": "Arraste um arquivo para esta area, ou use o seletor de arquivos.", "selectedFileLabel": "Selecionado: {{name}}" }, "shortcuts": { "goKitchen": "Cozinha" } }