2025-12-03 13:42:14 +01:00
{
2025-12-03 18:37:07 +01:00
"example" : "exemplo" ,
refactor(legacy): migrate theming to Material 3 + SfColors extension
Replace the ThemePort/ThemeCode abstraction (GetIt-registered adapter)
with a Riverpod-driven Material 3 ColorScheme, an SfColors ThemeExtension
for brand tokens, and a user-facing appearance selector for light/dark/
system modes. Persisted via SharedPreferences, reacts to system
brightness changes. Payments mode keeps the existing ThemePort API.
Highlights
- New legacy_theme package: LegacyAppTheme (light/dark), LegacyColorSchemes,
SfColors ThemeExtension, LegacyThemePreferences, LegacyThemeNotifier,
LegacyThemeSelector. Timeframe-based variants scaffolded but disabled.
- New /legacy/dashboard/control_panel/settings/appearance route + screen.
- MaterialApp.router picks the legacy theme only when isLegacyMode.
- ~90 ThemeCode.* usages migrated to colorScheme.* / context.sfColors.*.
- 25 widgets dropped the 'ThemePort theme' constructor param.
- ~145 hardcoded colors migrated (exact hex 1:1, grey.shade tiers,
destructive red -> colorScheme.error, background whites -> surface).
Content-over-color whites, transparents, and brand semantic reds/
oranges/greens intentionally preserved.
- sf_localizations updated with appearance / appearanceDescription keys
in all six locales.
2026-04-19 04:47:22 +02:00
"appearance" : "Aparência" ,
"appearanceDescription" : "Escolha a aparência que melhor se adapta à sua preferência. Sistema segue automaticamente o tema do seu dispositivo." ,
2025-12-03 18:37:07 +01:00
"start" : "Começar" ,
"next" : "Próximo" ,
"skip" : "Pular" ,
2026-01-17 22:20:34 +01:00
"onboardingTitle1" : "Localização do dispositivo em tempo real" ,
"onboardingSubtitle1" : "Não perca nada.\nAcesse a localização do seu dispositivo em tempo real, onde quer que você esteja." ,
"onboardingTitle2" : "Zona segura" ,
"onboardingSubtitle2" : "O controlo nas suas mãos.\nEscolha um perímetro e avisaremos quando o dispositivo sair da sua zona segura." ,
"onboardingTitle3" : "Chat" ,
"onboardingSubtitle3" : "Sempre conectados.\nPelo chat, você pode se comunicar com o proprietário do dispositivo quando quiser." ,
2025-12-04 16:07:02 +01:00
"linkPhoneTitle" : "Ficamos muito felizes em ter você aqui!" ,
"linkPhoneSubtitle" : "Para entrar com segurança, vamos enviar um código para o seu telefone" ,
"mobilePhone" : "Telefone celular" ,
2025-12-09 10:08:36 +01:00
"phoneNumber" : "Número de telefone" ,
"selectYourCountry" : "Selecione seu país" ,
"errorMessagePhoneIsEmpty" : "O número de telefone não pode estar vazio" ,
"connect" : "Conectar" ,
"verificationCodeSentTo" : "Enviamos o código para " ,
"enterCodeHere" : "Insira o código aqui" ,
"enter" : "Entrar" ,
"didNotReceiveIt" : "Você não recebeu?" ,
2025-12-18 10:56:06 +01:00
"tryAgain" : "Tentar novamente" ,
2025-12-10 14:56:36 +01:00
"welcome" : "Bem-vindo!" ,
"username" : "Nome de usuário" ,
"password" : "Senha" ,
"forgotPassword" : "Esqueceu a senha?" ,
"signIn" : "Iniciar sessão" ,
"orContinueWith" : "ou continuar com" ,
"google" : "Google" ,
"apple" : "Apple" ,
"dontHaveAccount" : "Não tem conta?" ,
2025-12-19 12:13:41 +01:00
"createOneNow" : "Criar uma agora" ,
2025-12-18 10:56:06 +01:00
"recoverPasswordTitle" : "Recuperar senha" ,
"recoverPasswordSubtitle" : "Insira seu e-mail para enviar um link de recuperação" ,
"send" : "Enviar" ,
"back" : "Voltar" ,
"email" : "Correio eletrônico" ,
"errorMessageContactIsEmpty" : "Introduzir um correio eletrônico ou um número de telefone" ,
"emailSent" : "Correo enviado corretamente" ,
"smsSent" : "SMS enviado corretamente" ,
"checkEmail1" : "Revise seu e-mail e clique no link para criar uma nova senha." ,
"checkSms1" : "Revise seu celular e siga as instruções para criar uma nova senha" ,
"checkEmail2" : "Se você não receber a correspondência em alguns minutos, revise sua pasta de spam ou pressione \"Reenviar correspondência\"." ,
2025-12-18 11:13:58 +01:00
"checkSms2" : "Se você não receber o SMS em alguns minutos, certifique-se de ter cobertura ou pressione \"Reenviar SMS\"." ,
2025-12-18 10:56:06 +01:00
"resendEmail" : "Reenviar correio" ,
"resendSms" : "Reenviar SMS" ,
"continueKey" : "Continuar" ,
"newPassword" : "Nova contrasenha" ,
"repeatPassword" : "Repetir contraseña" ,
"passwordLength" : "Pelo menos 8 caracteres" ,
"passwordCapital" : "Una mayúscula" ,
"passwordNumber" : "Um número" ,
"passwordSpecial" : "Um caráter especial" ,
2026-04-21 20:35:18 +02:00
"passwordMatch" : "As palavras-passe coincidem" ,
2026-04-21 20:49:13 +02:00
"passwordChangedSuccess" : "Palavra-passe atualizada com sucesso" ,
2026-04-21 21:00:42 +02:00
"personalDataUpdatedSuccess" : "Dados pessoais atualizados" ,
2026-04-21 21:34:32 +02:00
"deviceUpdatedSuccess" : "Dispositivo atualizado" ,
"deviceDeletedSuccess" : "Dispositivo removido" ,
"errorNotAuthorized" : "Não tens permissão para realizar esta ação." ,
2026-04-21 22:12:51 +02:00
"accountDeletedSuccess" : "Conta eliminada com sucesso" ,
"accountDeletionHasDevices" : "Tens dispositivos associados. Desvincula-os primeiro para cancelar a conta." ,
"deleteAccountConfirmBody" : "Tens a certeza que queres cancelar a tua conta? Esta ação é irreversível." ,
"deleteAccountVerifyPrompt" : "Introduz a tua palavra-passe para confirmar o cancelamento." ,
2025-12-18 10:56:06 +01:00
"accept" : "Aceitar" ,
"errorMessageUnequalPasswords" : "Las contraseñas não é coincidência." ,
"errorMessagePasswordTooShort" : "A senha deve ter pelo menos 8 caracteres" ,
"errorMessagePasswordNoCapitals" : "A senha deve ter pelo menos uma maioscula" ,
"errorMessagePasswordNoNumbers" : "A senha deve ter pelo menos um número" ,
2026-01-05 10:35:18 +01:00
"errorMessagePasswordNoSpecialChars" : "A senha deve ter menos caráter especial" ,
2025-12-19 13:47:31 +01:00
"errorEmailRequired" : "O e-mail é obrigatório." ,
"errorEmailInvalid" : "Introduz um e-mail válido." ,
"errorPasswordRequired" : "A palavra-passe é obrigatória." ,
"errorPasswordMinLength" : "A palavra-passe deve ter pelo menos 6 caracteres." ,
"twoFactorTitle" : "Autenticação de dois fatores" ,
"twoFactorSubtitle" : "Introduz o código de 6 dígitos para continuar." ,
"twoFactorCodeLabel" : "Código de verificação" ,
"twoFactorCodeHint" : "Código de 6 dígitos" ,
"twoFactorVerify" : "Verificar" ,
2026-03-06 00:44:12 +01:00
"twoFactorResend" : "Reenviar código" ,
"twoFactorCodeResent" : "Código reenviado com sucesso" ,
2025-12-19 13:47:31 +01:00
"close" : "Fechar" ,
"errorTwoFactorCodeRequired" : "O código de verificação é obrigatório." ,
"errorTwoFactorCodeInvalidLength" : "O código deve ter 6 dígitos." ,
2025-12-26 14:47:08 +01:00
"errorTwoFactorCodeInvalid" : "Código inválido. Tenta novamente." ,
2026-03-06 00:44:12 +01:00
"errorTwoFactorNoMethods" : "Nenhum método 2FA disponível." ,
"errorTwoFactorResendFailed" : "Erro ao reenviar o código." ,
"loginSuccess" : "Login realizado com sucesso" ,
2026-04-17 11:11:23 +02:00
"authErrorInvalidCredentials" : "Email ou palavra-passe incorretos." ,
"authErrorAccountLocked" : "A tua conta está temporariamente bloqueada. Tenta mais tarde." ,
"authErrorAccountNotVerified" : "A tua conta ainda não está verificada. Verifica o teu email." ,
"authErrorPasswordExpired" : "A tua palavra-passe expirou. Usa 'Esqueci a palavra-passe' para a redefinir." ,
"authErrorInvalidToken" : "A tua sessão expirou. Volta a iniciar sessão." ,
"authErrorTooManyAttempts" : "Demasiadas tentativas. Aguarda alguns minutos e tenta novamente." ,
"authErrorNetwork" : "Sem ligação. Verifica a tua rede e tenta novamente." ,
2026-04-17 11:11:52 +02:00
"signupErrorInvalidField" : "Um dos campos não é válido. Verifica e tenta novamente." ,
2026-04-17 11:12:14 +02:00
"recoverPasswordErrorInvalidEmail" : "O formato do email não é válido." ,
"recoverPasswordErrorWeakPassword" : "A palavra-passe não cumpre os requisitos de segurança." ,
"recoverPasswordErrorInvalidField" : "Um dos campos não é válido. Verifica e tenta novamente." ,
"recoverPasswordErrorTokenExpired" : "O link de recuperação expirou. Solicita um novo." ,
"recoverPasswordErrorTokenNotFound" : "O link de recuperação não é válido. Solicita um novo." ,
2026-04-17 11:12:37 +02:00
"deviceSetupErrorInvalidIdentificator" : "O identificador do dispositivo não é válido." ,
"deviceSetupErrorDeviceNotFound" : "Não encontramos o dispositivo. Verifica o código e tenta novamente." ,
"deviceSetupErrorDeviceNotAvailable" : "Este dispositivo não está disponível para ativação." ,
"deviceSetupErrorInvalidField" : "Um dos dados do dispositivo não é válido. Verifica e tenta novamente." ,
"deviceSetupErrorInvalidActivationKey" : "A chave de ativação não é válida. Volta a digitalizar o dispositivo." ,
2025-12-26 14:47:08 +01:00
"stepUserContactSupertitle" : "Utilizador e contacto" ,
"stepUserContactTitle" : "Cria a tua conta" ,
"stepUserContactSubtitle" : "Com o teu email e o teu número poderemos manter-te sempre informado" ,
"termsText" : "Aceito os termos e condições" ,
"firstNameLabel" : "Nome próprio" ,
"firstNameHint" : "Nome próprio" ,
"lastNameLabel" : "Apelido" ,
"lastNameHint" : "Apelido" ,
"documentTypeHint" : "Documento" ,
"documentTypeDni" : "DNI" ,
"documentTypeNie" : "NIE" ,
"documentTypePassport" : "Passaporte" ,
"documentNumberHint" : "DNI/NIE/Passaporte" ,
"phoneLabel" : "Telemóvel" ,
"phoneHint" : "Telemóvel" ,
"emailLabel" : "Email" ,
"emailHint" : "Email" ,
"stepPersonalDataSupertitle" : "Dados pessoais" ,
"stepPersonalDataTitle" : "Identifica-te" ,
"stepPersonalDataSubtitle" : "Vamos garantir que a conta está em nome do adulto responsável" ,
"relationshipLabel" : "Qual é o teu grau de parentesco?" ,
"relationshipHint" : "Seleciona uma opção" ,
"relationshipFather" : "Pai" ,
"relationshipMother" : "Mãe" ,
"relationshipTutor" : "Tutor legal" ,
"addressCountryLabel" : "País (morada)" ,
"addressCountryHint" : "País" ,
"birthDateLabel" : "Data de nascimento" ,
"birthDateHint" : "DD/MM/AAAA" ,
"placeOfBirthLabel" : "Local de nascimento" ,
"placeOfBirthHint" : "Cidade de nascimento" ,
"birthCountryLabel" : "País de nascimento" ,
"birthCountryHint" : "País de nascimento" ,
"streetLabel" : "Rua / Morada" ,
"streetHint" : "Rua Gran Vía 30, 6.º andar" ,
"cityLabel" : "Cidade" ,
"cityHint" : "Cidade" ,
"provinceLabel" : "Província" ,
"provinceHint" : "Província" ,
"stateLabel" : "Região / Estado" ,
"stateHint" : "Região / Estado" ,
"postCodeLabel" : "Código postal" ,
"postCodeHint" : "28013" ,
"stepAddressSupertitle" : "Morada" ,
"stepAddressTitle" : "A tua morada" ,
"passwordRulesSubtitle" : "Palavra-passe mínima de 8 caracteres, com uma maiúscula, um número e um carácter especial" ,
"accountCreatedTitle" : "Conta criada" ,
"accountCreatedForLabel" : "Criaste a conta para:" ,
"accountCreatedEmailVerificationSentLabel" : "Enviámos um e-mail de verificação para:" ,
"accountCreatedChildSetupHint" : "Cria a conta do teu filho e introduz a sua \nprimeira mesada para a usar com o relógio" ,
"accountCreatedContinue" : "Continuar" ,
"secretCodeTitle" : "Instruções de configuração" ,
"secretCodeStep1Title" : "Descarrega uma aplicação de autenticação" ,
"secretCodeStep1Body" : "Certifica-te de que tens o Google Authenticator no teu dispositivo." ,
"secretCodeStep2Title" : "Lê o código QR ou copia a chave" ,
"secretCodeStep2Body" : "Lê o código QR abaixo com a aplicação de autenticação para verificar o dispositivo.\n\nOu copia a chave e introduz-a manualmente na aplicação de autenticação." ,
"secretCodeKeyCopied" : "Chave copiada" ,
"secretCodeStep3Title" : "Copia o código gerado" ,
"secretCodeStep3Body" : "Depois de leres o código QR ou introduzires a chave na aplicação de autenticação, copia o código de 6 dígitos gerado e introduz-lo no ecrã seguinte." ,
2026-01-20 07:37:29 +01:00
"secretCodeConfigure" : "Configurar" ,
2026-04-06 20:33:57 +02:00
"deviceSetupIntroTitle" : "Adicione o seu filho" ,
"deviceSetupIntroSubtitle" : "Acompanhe os gastos enquanto ele aprende hábitos financeiros responsáveis" ,
"deviceSetupIntroStep1" : "Vincule o relógio" ,
"deviceSetupIntroStep2" : "Crie o perfil dele" ,
"deviceSetupIntroStep3" : "Carregue o cofrinho dele" ,
"deviceSetupIntroReadyTitle" : "E pronto, tudo preparado para ele ter o dinheiro dele!" ,
"deviceSetupIntroRememberPrefix" : "Lembre-se de que precisa de um" ,
"deviceSetupIntroPlanName" : "Plano SaveFamily" ,
"deviceSetupIntroWebPrefix" : "Se ainda não tem, pode conseguir através do " ,
"deviceSetupIntroWebLink" : "nosso site" ,
"deviceSetupLinkInfoTitle" : "Vincula a pulseira e o relógio" ,
"legacyDeviceSetupLinkInfoTitle" : "Vincule o relógio e crie o perfil" ,
"deviceSetupLinkInfoItem1Prefix" : "Digitaliza a " ,
"deviceSetupLinkInfoItem1BoldWord" : "pulseira" ,
"deviceSetupLinkInfoItem1Subtitle" : "A criança poderá realizar pagamentos" ,
"deviceSetupLinkInfoItem2Prefix" : "Digitaliza o " ,
"deviceSetupLinkInfoItem2BoldWord" : "relógio" ,
"deviceSetupLinkInfoItem2Subtitle" : "Poderás visualizar os gastos efetuados" ,
"legacyDeviceSetupLinkInfoItem1Title" : "Digitalize o relógio" ,
"legacyDeviceSetupLinkInfoItem1Subtitle" : "Vincule o seu código de ativação" ,
"legacyDeviceSetupLinkInfoItem2Title" : "Crie o perfil" ,
"legacyDeviceSetupLinkInfoItem2Subtitle" : "Preencha o formulário do seu filho" ,
"deviceSetupWatchCodeOrInsert" : "Ou introduz o código" ,
"deviceSetupWatchCodeContinueWithCode" : "Continuar com código" ,
"deviceSetupLinkTroubleshootTitle" : "Se não conseguires vincular a pulseira ou o relógio" ,
"legacyDeviceSetupScanWatchTitle" : "Vincule o relógio" ,
"legacyDeviceSetupLinkTroubleshootTitle" : "Se não conseguires vincular o relógio" ,
"deviceSetupContactUs" : "Contacta-nos" ,
"deviceSetupAccountDataInfo" : "Precisamos destes dados para criar a conta e gerir as mesadas e os gastos" ,
"legacyDeviceSetupAccountDataInfo" : "Precisamos destes dados para criar a conta" ,
"deviceSetupStartWithOneKidInfo" : "Começa com uma criança; depois podes adicionar mais" ,
"deviceSetupFirstAllowanceTitle" : "Agora já podes dar-lhe a primeira mesada para que comece a aproveitá-la no relógio" ,
"deviceSetupAddAnotherKid" : "Adicionar outra criança" ,
"deviceSetupStart" : "Começar!" ,
"deviceSetupGiveFirstAllowance" : "Dá-lhe a primeira mesada" ,
"deviceSetupPaymentCancelled" : "O pagamento foi cancelado. Tente novamente." ,
"deviceSetupSkipAndConfigureLater" : "Pular e configurar mais tarde" ,
"deviceSetupAddCreditCard" : "Adicionar cartão de crédito" ,
"deviceSetupAddCreditCardTitle" : "Adiciona o teu cartão de crédito!" ,
"deviceSetupAddCreditCardSubtitle" : "Regista o teu cartão para poderes fazer depósitos na conta do teu filho" ,
"deviceSetupAddCreditCardInfo" : "Poderás fazer depósitos e gerir as mesadas a partir da app" ,
"deviceSetupCardRegistered" : "Cartão registado com sucesso!" ,
"deviceSetupPaymentSuccess" : "Pagamento realizado com sucesso!" ,
"deviceSetupScanQr" : "Digitalizar QR" ,
"deviceSetupScanQrHint" : "Centraliza o QR dentro da moldura" ,
2026-02-12 09:02:43 +01:00
"errorScanStrapRequired" : "Digitaliza a pulseira ou introduz o código para continuar" ,
"errorScanWatchRequired" : "Digitaliza o relógio ou introduz o código para continuar" ,
"errorAllFieldsRequired" : "Preenche todos os campos" ,
"errorPinRequired" : "O PIN deve ter 6 dígitos" ,
"errorSigningOperation" : "Erro ao assinar a operação" ,
"errorFirstNameRequired" : "O nome é obrigatório" ,
"errorLastNameRequired" : "O apelido é obrigatório" ,
2026-02-19 17:19:14 +01:00
"errorNameInvalidChars" : "O nome só pode conter letras, espaços e hífens" ,
"errorEmailPlusNotAllowed" : "O email não pode conter o caractere +" ,
2026-02-12 09:02:43 +01:00
"errorDocumentTypeRequired" : "O tipo de documento é obrigatório" ,
"errorDocumentNumberRequired" : "O número de documento é obrigatório" ,
"errorAcceptTerms" : "Deves aceitar os termos e condições" ,
"errorBirthDateRequired" : "Seleciona uma data de nascimento válida (DD/MM/AAAA)" ,
"errorRelationshipRequired" : "O grau de parentesco é obrigatório" ,
"errorPlaceOfBirthRequired" : "Falta o local de nascimento" ,
"errorBirthCountryRequired" : "Falta o país de nascimento" ,
"errorAddressRequired" : "Completa a morada" ,
"errorActivationCodeEmpty" : "O código de ativação está vazio" ,
"errorWalletNotProvisioned" : "A carteira ainda não está provisionada" ,
"errorPinLength" : "O PIN deve ter {length} dígitos" ,
2026-02-17 20:54:14 +01:00
"errorWalletConnectFirst" : "Conecta a carteira primeiro" ,
2026-02-19 14:56:05 +01:00
"errorPinMismatch" : "Os PINs não coincidem, tente novamente" ,
"scaPinCreate" : "Cria o teu PIN de 6 dígitos" ,
"scaPinConfirm" : "Confirma o teu PIN" ,
"scaPinEnter" : "Introduz o teu PIN" ,
"scaProvisioningFailed" : "Falha na ativação" ,
"scaProvisioningWarning" : "Ao tentar novamente, o acesso será desativado em qualquer outro dispositivo. Apenas um acesso por utilizador é permitido." ,
"scaProvisioningRetry" : "Tentar ativação novamente" ,
2026-02-24 16:29:24 +01:00
"scaProvisioning" : "A ativar..." ,
"scaConnecting" : "A conectar..." ,
"scaSigning" : "A assinar..." ,
"scaConnect" : "Conectar" ,
"scaClearPin" : "Apagar PIN" ,
"scaErrorLoadingActivationCode" : "Erro ao obter o código de ativação" ,
"scaErrorProvisioning" : "Erro ao ativar a carteira" ,
"scaErrorConnecting" : "Erro ao conectar a carteira" ,
"scaErrorSigning" : "Erro ao assinar a sessão" ,
"scaErrorPaymentProfile" : "Erro ao configurar o perfil de pagamento" ,
"deviceSetupCreatingProfile" : "A criar perfil..." ,
"deviceSetupConfirm" : "Confirmar" ,
2026-02-17 20:54:14 +01:00
"errorLoadingData" : "Erro ao carregar dados" ,
2026-03-09 02:28:31 +01:00
"errorEmailAlreadyRegistered" : "Este email já está registado" ,
2026-02-17 20:54:14 +01:00
"retry" : "Tentar novamente" ,
"walletTitle" : "Carteira" ,
"walletTotal" : "{amount}€ total" ,
"walletAvailable" : "Disponível" ,
2026-02-25 18:37:17 +01:00
"walletSavings" : "Poupança" ,
2026-02-17 20:54:14 +01:00
"depositTitle" : "Adicionar dinheiro à carteira" ,
"depositAmountLabel" : "Quantia" ,
"depositAmountHint" : "0€" ,
"depositButton" : "Depositar" ,
"depositMaxInfo" : "Máximo que podes adicionar: {amount}€" ,
2026-02-25 18:37:17 +01:00
"depositErrorMaxExceeded" : "O valor excede o máximo permitido ({amount}€)" ,
2026-02-17 20:54:14 +01:00
"expensesTitle" : "Despesas" ,
"filterToday" : "Hoje" ,
"filterThisWeek" : "Esta semana" ,
"filterThisMonth" : "Este mês" ,
"activityRecentTransactions" : "Movimentos recentes" ,
"activityViewTransactionsFrom" : "Ver movimentos de" ,
"activityNoWallets" : "Nenhuma carteira disponível" ,
"activityNoTransactions" : "Sem movimentos" ,
"dateFilterToday" : "Hoje" ,
"dateFilterLastWeek" : "Última semana" ,
"dateFilterLastMonth" : "Último mês" ,
"transactionPayin" : "Entrada de fundos" ,
"transactionPayinRefund" : "Reembolso de entrada" ,
"transactionPayout" : "Saída de fundos" ,
"transactionPayoutRefund" : "Reembolso de saída" ,
"transactionTransfer" : "Transferência" ,
"transactionCardPayment" : "Pagamento com cartão" ,
2026-02-25 18:37:17 +01:00
"transactionPayinAcquiring" : "Pagamento recebido" ,
"transactionPayinRefundAcquiring" : "Reembolso de pagamento" ,
"transactionSctrInst" : "Transferência instantânea" ,
"transactionPayinSctInstantRecall" : "Revogação de transferência" ,
"transactionPayoutSctInstantEmit" : "Transferência instantânea de saída" ,
"transactionPayinSctInstantEmitRecall" : "Revogação de transferência" ,
"transactionCreditTransferReturned" : "Transferência devolvida" ,
"transactionCheckPayin" : "Depósito por cheque" ,
"transactionSdde" : "Débito direto" ,
"transactionSddr" : "Devolução de débito direto" ,
"transactionSddrReversal" : "Reversão de débito direto" ,
"transactionSctrRecall" : "Revogação de transferência" ,
"transactionCheckRefund" : "Reembolso de cheque" ,
"transactionSctr" : "Transferência bancária" ,
"transactionCreditInternationalTransfer" : "Transferência internacional" ,
2026-03-12 22:42:38 +01:00
"transactionBankDirectDebit" : "Débito direto" ,
"transactionBankTransfer" : "Transferência bancária" ,
"transactionCardTopup" : "Carregamento com cartão" ,
"transactionCheck" : "Cheque" ,
"transactionCreditNote" : "Nota de crédito" ,
"transactionFees" : "Taxas" ,
"transactionInstantBankTransfer" : "Transferência instantânea" ,
"transactionWalletTransfer" : "Transferência entre contas" ,
2026-02-17 20:54:14 +01:00
"transactionUnknown" : "Movimento" ,
2026-02-25 18:37:17 +01:00
"loadMore" : "Carregar mais" ,
2026-03-12 22:42:38 +01:00
"transactionsShown" : "movimentos" ,
2026-02-17 20:54:14 +01:00
"profileAccountSettings" : "Definições da conta" ,
"profileWithdrawMoney" : "Levantar dinheiro da carteira" ,
"profileNoRecentTransactions" : "Sem movimentos recentes" ,
"profileRecentTransactions" : "Últimos movimentos" ,
"profileMyAccount" : "A minha conta" ,
"allowanceAutoAllowance" : "Mesada automática" ,
"allowanceActivateAutoAllowance" : "Ativar mesada automática" ,
"allowanceBalanceAfter" : "Saldo total disponível depois: {amount} €" ,
"allowanceFrequency" : "Frequência" ,
"allowanceFrequencyDescription" : "Quando o dinheiro é enviado" ,
"allowanceWeekly" : "Semanal" ,
"allowanceBiweekly" : "A cada duas semanas" ,
"allowanceMonthly" : "Mensal" ,
"allowanceDayOfWeek" : "Dia da semana" ,
"allowanceTimeOfDay" : "Hora do dia" ,
"allowanceMessageLabel" : "Escrever mensagem a {name} sobre o motivo do depósito" ,
"allowanceMessageHint" : "Escreve a tua mensagem" ,
"allowanceMaxChars" : "Máximo {count} caracteres" ,
"allowanceConditions" : "Condições" ,
"allowanceConditionsDescription" : "Esta informação aparecerá no relógio da criança" ,
"allowanceConditionWeeklyLimits" : "Apenas se cumprir os limites semanais" ,
"allowanceConditionNoIncidents" : "Apenas se não houver incidências" ,
"allowanceConditionPauseHolidays" : "Pausar durante as férias" ,
"homeGreeting" : "Olá, " ,
"homeAddAnotherKid" : "+ Adicionar outra criança" ,
"homeInPiggyBank" : "no cofrinho" ,
"homeSaved" : "Poupado {amount}€" ,
"homeEdit" : "Editar" ,
"homeAddMoney" : "+ Adicionar dinheiro" ,
"homeCamera" : "Câmara" ,
"homePhotoGallery" : "Galeria de fotos" ,
"cancel" : "Cancelar" ,
"payoutTitle" : "Levantar e reembolsar dinheiro da carteira" ,
2026-03-18 19:45:29 +01:00
"payoutSubtitle" : "Para transferir o saldo para a tua conta precisamos do teu IBAN e de alguns dados básicos. Assim garantimos que a transferência seja segura e rápida." ,
2026-02-17 20:54:14 +01:00
"payoutAmountLabel" : "Quantia a levantar" ,
"payoutIbanLabel" : "IBAN" ,
"payoutHolderNameLabel" : "Nome completo" ,
"payoutHolderNameHint" : "Titular da conta" ,
"payoutButton" : "Levantar" ,
"payoutSuccess" : "Levantamento solicitado com sucesso" ,
2026-03-18 19:45:29 +01:00
"payoutErrorAmountExceeds" : "A quantia excede o saldo disponível" ,
2026-02-17 20:54:14 +01:00
"payoutErrorAmountRequired" : "Introduz uma quantia" ,
2026-03-18 19:45:29 +01:00
"payoutErrorIbanRequired" : "O IBAN é obrigatório" ,
"payoutErrorHolderRequired" : "O nome do titular é obrigatório" ,
"payoutAvailableBalance" : "Saldo disponível: {amount}€" ,
2026-02-17 20:54:14 +01:00
"payoutPinTitle" : "Introduz o teu PIN para confirmar" ,
"payoutNoBeneficiaries" : "Não tens beneficiários configurados. Adiciona um para fazer um levantamento." ,
"payoutAddBeneficiary" : "Adicionar beneficiário" ,
"payoutAddBeneficiarySubtitle" : "Introduz o IBAN e o nome completo do titular da conta para registar um beneficiário." ,
"payoutBeneficiaryAdded" : "Beneficiário adicionado com sucesso" ,
"childWalletAvailableBalance" : "Saldo disponível" ,
"childWalletUnlockCard" : "Desbloquear cartão" ,
"childWalletLockCard" : "Bloquear cartão" ,
"childWalletRecentTransactions" : "Últimos movimentos" ,
"childWalletViewAll" : "Ver todos" ,
"childWalletBalancePrefix" : "Saldo disponível: " ,
"walletActionAdd" : "Adicionar" ,
"walletActionAllowance" : "Mesada" ,
"walletActionLimits" : "Limites" ,
"walletActionGoals" : "Metas" ,
"walletActionExtract" : "Retirar" ,
"watchInfo" : "Esta informação aparecerá no relógio da criança" ,
"defaultMessagePrefix" : "Esta é a mensagem definida por defeito:" ,
"sendMessageAndBlock" : "Enviar mensagem e bloquear" ,
"depositAddMoney" : "Adicionar dinheiro" ,
"depositReason" : "Motivo" ,
"depositReasonWeekly" : "Mesada semanal" ,
"depositReasonGoalMet" : "Objetivo semanal cumprido" ,
"depositReasonExtraordinary" : "Despesas extraordinárias" ,
"depositReasonOther" : "Outro" ,
"depositMessageLabel" : "Escrever mensagem a {name} sobre o motivo do depósito" ,
"depositWhenSend" : "Quando se envia o dinheiro" ,
"depositNow" : "Agora" ,
"depositSchedule" : "Programar" ,
"extractTitle" : "Retirar dinheiro da conta" ,
"extractAmountLabel" : "Seleciona a quantia de dinheiro" ,
"extractDefaultMessage" : "\"Retirámos o dinheiro do relógio, já não podes pagar com ele\"" ,
"extractMessageLabel" : "Escrever mensagem a {name} sobre o motivo da retirada do dinheiro" ,
"lockCardTitle" : "Bloqueio de cartão" ,
"lockCardDefaultMessage" : "\"De momento bloqueámos o dinheiro do relógio\"" ,
"lockCardMessageLabel" : "Escrever mensagem a {name} sobre o motivo do bloqueio" ,
"lockCardPinTitle" : "Introduza o PIN para bloquear o cartão" ,
"lockCardSuccess" : "Cartão bloqueado com sucesso" ,
"lockCardError" : "Erro ao bloquear o cartão" ,
"cardStatusTitle" : "Estado do cartão" ,
"cardStatusLock" : "Bloquear" ,
"cardStatusUnlock" : "Desbloquear" ,
"cardStatusLost" : "Perdido" ,
"cardStatusStolen" : "Roubado" ,
"cardStatusConfirm" : "Confirmar" ,
"cardStatusSuccess" : "Estado do cartão atualizado" ,
"cardStatusError" : "Erro ao atualizar o estado do cartão" ,
2026-02-26 14:59:51 +01:00
"deleteDevice" : "Eliminar dispositivo" ,
"deleteDeviceConfirmTitle" : "Eliminar dispositivo?" ,
"deleteDeviceConfirmMessage" : "Esta ação não pode ser desfeita. Tens a certeza de que queres eliminar este dispositivo?" ,
"deleteDeviceSuccess" : "Dispositivo eliminado com sucesso" ,
2026-03-12 22:42:38 +01:00
"deleteDeviceNotAllowedTitle" : "Não é possível eliminar" ,
"deleteDeviceChecking" : "A verificar..." ,
"deleteDeviceWalletNonZeroBalance" : "Não é possível eliminar o perfil porque a carteira tem saldo disponível" ,
2026-02-17 20:54:14 +01:00
"limitsSave" : "Guardar limites" ,
"limitsSpendingTitle" : "Define limite de gastos" ,
"limitsSpendingSubtitle" : "Liberdade para eles, tranquilidade para ti" ,
"limitsAllowedHours" : "Horários permitidos" ,
"limitsAllowedHoursSubtitle" : "Controla quando podem comprar" ,
"limitsBlockedStores" : "Lojas bloqueadas" ,
2026-02-26 14:59:51 +01:00
"limitsSaveSuccess" : "Limites guardados com sucesso" ,
"limitsSaveError" : "Erro ao guardar os limites" ,
"limitsDayLimit" : "Diário" ,
"limitsWeekLimit" : "Semanal" ,
"limitsMonthLimit" : "Mensal" ,
"limitsYearLimit" : "Anual" ,
2026-02-17 20:54:14 +01:00
"goalsTitle" : "Metas" ,
"goalsOnlyFullPlan" : "Apenas com Plano Completo" ,
"goalsTeachSavings" : "Ensina-lhe a poupar e reforça a importância de não desperdiçar o dinheiro" ,
"goalsSavings" : "Poupanças" ,
"goalsCreateSavingsGoal" : "Criar objetivo de poupança" ,
"goalsViewSavingsStatus" : "Ver estado das poupanças" ,
"goalsSubscribeFullPlan" : "Subscrever o Plano Completo" ,
"goalsSavingsNameHint" : "Dá-lhe um título para o reconhecer" ,
"goalsSavingsReasonLabel" : "Motivo da poupança" ,
"goalsSavingsAmountLabel" : "Seleciona a quantia a poupar" ,
"goalsAutoSavingsFromAllowance" : "Poupança automática a partir da mesada" ,
"goalsSelectAmount" : "Seleciona a quantia de dinheiro" ,
"goalsAutoSendOnGoal" : "Enviar automaticamente o dinheiro para o relógio da criança quando atingir o objetivo" ,
"goalsDefaultMessagePrefix" : "Esta é a mensagem definida por defeito que chegará ao relógio:" ,
"goalsSavingsDefaultMessage" : "\"Genial, conseguiste poupar o que querias!\"" ,
"goalsWriteOtherMessage" : "Escrever outra mensagem diferente:" ,
"goalsSaveChanges" : "Guardar alterações" ,
"goalsSavingsFor" : "Poupança para" ,
"goalsSaved" : "Poupado" ,
"goalsAddExtraMoney" : "+ Adicionar dinheiro extra a esta poupança" ,
"goalsDelete" : "Eliminar" ,
"goalsCreateAnotherSavings" : "Criar outra poupança" ,
"goalsTasks" : "Tarefas" ,
"goalsTasksDescription" : "Reforça o sentido de responsabilidade com pequenas tarefas a cumprir" ,
"goalsCreateTaskList" : "Criar lista de tarefas" ,
"goalsTaskList" : "Lista de tarefas" ,
"goalsAddTask" : "+ Adicionar tarefa" ,
"goalsRewardForCompletion" : "Recompensa por cumprimento" ,
"goalsTasksCompletedMessagePrefix" : "Esta é a mensagem que será enviada ao cumprir todas as tarefas:" ,
"goalsTasksCompletedMessage" : "Parabéns, cumpriste todas as tarefas desta semana!" ,
"goalsDeleteTaskList" : "Eliminar lista de tarefas" ,
"goalsCreateNewTaskList" : "Criar uma lista de tarefas nova" ,
"payinSelectCard" : "Seleciona um cartão" ,
"payinNoCards" : "Não tens cartões registados. Adiciona um para fazer um depósito." ,
"payinAddCard" : "Adicionar cartão" ,
"payinDeposit" : "Depositar" ,
"payinSuccess" : "Depósito efetuado com sucesso" ,
"payinError" : "Erro ao efetuar o depósito" ,
"payinProcessing" : "A processar..." ,
"walletMoveSuccess" : "Transferência realizada com sucesso" ,
"walletMoveError" : "Erro ao realizar a transferência" ,
"walletMoveAmountRequired" : "Introduza um valor válido" ,
"walletMoveProcessing" : "A processar..." ,
"accountDetails" : "Detalhes da conta" ,
"accountStatement" : "Extrato de conta" ,
"accountDocumentError" : "Erro ao obter o documento" ,
"selectMonth" : "Selecionar mês" ,
"selectYear" : "Selecionar ano" ,
"statementCurrentMonthError" : "O extrato do mês atual não está disponível" ,
"download" : "Baixar" ,
"profileSettingsTitle" : "Configurações da conta" ,
"profileSettingsLoadError" : "Erro ao carregar o perfil" ,
"profileSettingsPersonalData" : "Dados pessoais" ,
"profileSettingsName" : "Nome" ,
"profileSettingsBirthDate" : "Data de nascimento" ,
"profileSettingsNationality" : "Nacionalidade" ,
"profileSettingsPlaceOfBirth" : "Local de nascimento" ,
"profileSettingsAddress" : "Endereço" ,
"profileSettingsCountry" : "País" ,
"profileSettingsUser" : "Utilizador" ,
"profileSettingsEmail" : "E-mail" ,
"profileSettingsPhone" : "Telefone" ,
"profileSettingsPaymentMethod" : "Método de pagamento" ,
"profileSettingsEdit" : "Editar" ,
"profileSettingsPaymentMethodHint" : "Pode alterar o método de pagamento a qualquer momento" ,
"profileSettingsAnnualPlan" : "Plano anual" ,
"profileSettingsChangePlan" : "Alterar plano" ,
"profileSettingsNoPermanence" : "Sem fidelização" ,
"profileSettingsUnlimitedCalls" : "Chamadas e dados ilimitados" ,
"profileSettingsFreeMonths" : "2 meses grátis" ,
"profileSettingsContactUs" : "Contacte-nos" ,
"profileSettingsFaq" : "Perguntas frequentes" ,
"profileSettingsLogout" : "Terminar sessão" ,
"profileSettingsLogoutConfirm" : "Tem a certeza de que deseja terminar sessão?" ,
"profileSettingsLogoutError" : "Erro ao terminar sessão" ,
2026-03-01 22:50:33 +01:00
"profileSettingsSave" : "Guardar alterações" ,
2026-03-12 22:42:38 +01:00
"profileSettingsSaveSuccess" : "Alterações guardadas com sucesso" ,
"profileSettingsLastName" : "Apelido" ,
"profileSettingsStreet" : "Rua" ,
"profileSettingsCity" : "Cidade" ,
"profileSettingsProvince" : "Província" ,
"profileSettingsState" : "Estado" ,
"profileSettingsPostCode" : "Código postal" ,
2026-03-01 22:50:33 +01:00
"dashboardTabHome" : "Início" ,
"dashboardTabActivity" : "Atividade" ,
"dashboardTabNotifications" : "Notificações" ,
2026-03-09 02:28:31 +01:00
"dashboardTabProfile" : "Perfil" ,
"genderLabel" : "Género" ,
"genderHint" : "Selecione o género" ,
"genderFemale" : "Feminino" ,
"genderMale" : "Masculino" ,
"genderOther" : "Outro" ,
"relationshipOther" : "Outro" ,
2026-04-06 20:33:57 +02:00
"deviceSetupWeightLabel" : "Peso (kg)" ,
"deviceSetupWeightHint" : "30" ,
"deviceSetupHeightLabel" : "Altura (cm)" ,
"deviceSetupHeightHint" : "120" ,
2026-03-12 22:42:38 +01:00
"activationKeyLabel" : "Chave de ativação" ,
2026-03-16 08:37:52 +01:00
"monday" : "Segunda-feira" ,
"tuesday" : "Terça-feira" ,
"wednesday" : "Quarta-feira" ,
"thursday" : "Quinta-feira" ,
"friday" : "Sexta-feira" ,
"saturday" : "Sábado" ,
"sunday" : "Domingo" ,
"scheduledActivityEmpty" : "Nenhuma atividade programada" ,
"scheduledActivityEmptyHint" : "Toca + para criar a primeira atividade no calendário" ,
"scheduledActivityStartTime" : "Início" ,
"scheduledActivityEndTime" : "Fim" ,
"scheduledActivityStartBeforeEnd" : "A hora de início deve ser anterior à hora de fim" ,
"scheduledActivityOverlap" : "Sobrepõe-se com \"{name}\" ({time})" ,
"scheduledActivityNewTitle" : "Nova atividade" ,
"scheduledActivityEditTitle" : "Editar atividade" ,
"scheduledActivityDeleteTitle" : "Eliminar atividade" ,
"scheduledActivityDeleteMessage" : "Tem a certeza que deseja eliminar \"{name}\"?" ,
"mainContactPhoneNumber" : "Número de telefone do contacto principal" ,
"loadingPhoto" : "A carregar foto..." ,
"editContact" : "Editar contacto" ,
"sending" : "A enviar..." ,
"sentSuccessfully" : "Enviado com sucesso" ,
"deviceNotConnected" : "O dispositivo não está ligado à Internet" ,
"ok" : "OK" ,
"locateDeviceConfirmMessage" : "Vai ativar a localização remota do seu dispositivo. Ele começará a tocar." ,
"continueWithGoogle" : "Continuar com Google" ,
"redirectingToGoogle" : "A redirecionar para Google" ,
"errorMessagePhoneIsInvalid" : "Formato de número de telefone inválido" ,
"contactsEmpty" : "Sem contactos" ,
"contactsEmptyHint" : "Toca + para adicionar um contacto" ,
"activityMeter" : "Medidor de atividade" ,
"totalSteps" : "Total de passos" ,
"bestDay" : "Melhor dia" ,
2026-04-06 20:33:57 +02:00
"unitSteps" : "passos" ,
2026-03-16 08:37:52 +01:00
"rewards" : "Enviar recompensas" ,
"rewardsMessage" : "*Usando esta função podes recompensar o teu filho por metas alcançadas ou boas ações." ,
"sendRewards" : "Enviar recompensas!" ,
"rewardsSent" : "Recompensas enviadas!" ,
"appsUse" : "Uso das aplicações" ,
"topApps" : "Apps mais usadas" ,
"noAppUsageData" : "Sem dados de uso de aplicações" ,
2026-03-18 19:45:29 +01:00
"selectDay" : "Seleção de dias" ,
2026-03-16 08:37:52 +01:00
"alarmMessage" : "Mensagem" ,
"alarmMessageHint" : "Texto que o alarme exibirá" ,
"deleteAlarm" : "Eliminar alarme" ,
"deleteAlarmConfirm" : "Tem certeza de que deseja eliminar este alarme?" ,
"editAlarm" : "Editar alarme" ,
"noAlarms" : "Nenhum alarme configurado" ,
"alarmCreated" : "Alarme criado com sucesso" ,
2026-04-16 18:42:29 +02:00
"alarmError" : "Erro ao gerir alarmes" ,
"alarmMaxReached" : "Máximo {max} alarmes permitidos" ,
"alarmSave" : "Guardar alterações" ,
"alarmSaved" : "Alarmes guardados" ,
2026-03-16 08:37:52 +01:00
"alarmUpdated" : "Alarme atualizado com sucesso" ,
"alarmDeleted" : "Alarme eliminado com sucesso" ,
"noActivityData" : "Sem medições de atividade para exibir" ,
"phone" : "Telefone" ,
"add" : "Adicionar" ,
"contactName" : "Nome do contato" ,
"addAllowedNumber" : "Adicionar número permitido" ,
"noBlockedNumbers" : "Nenhum número configurado" ,
"noBlockedNumbersDescription" : "Adicione números para restringir quem pode comunicar com o dispositivo" ,
"whitelistDescription" : "Apenas estes números podem comunicar com o dispositivo" ,
"allowedNumbersCount" : "{count} números permitidos" ,
"removeAllowedNumber" : "Remover número permitido" ,
"removeAllowedNumberConfirm" : "Remover \"{name}\" da lista de números permitidos? Este número não poderá mais comunicar com o dispositivo" ,
"numberAdded" : "Número adicionado com sucesso" ,
"numberRemoved" : "Número removido com sucesso" ,
2026-04-21 17:59:50 +02:00
"numberUpdated" : "Número atualizado com sucesso" ,
"editAllowedNumber" : "Editar número permitido" ,
2026-03-16 08:37:52 +01:00
"addSosContact" : "Adicionar contacto SOS" ,
"noSosContacts" : "Nenhum contacto SOS configurado" ,
"noSosContactsDescription" : "Adicione contactos de emergência que o dispositivo pode ligar em caso de emergência" ,
"sosDescription" : "Estes contactos estarão disponíveis para chamadas de emergência a partir do dispositivo" ,
"sosContactsCount" : "{count} contactos SOS" ,
"removeSosContact" : "Remover contacto SOS" ,
"removeSosContactConfirm" : "Remover \"{name}\" da lista de contactos SOS? Este contacto deixará de estar disponível para chamadas de emergência" ,
"sosNumberAdded" : "Contacto SOS adicionado com sucesso" ,
"sosNumberRemoved" : "Contacto SOS removido com sucesso" ,
2026-04-21 17:59:50 +02:00
"sosMinimumOneContact" : "Deve haver pelo menos 1 contacto de emergência" ,
2026-03-16 08:37:52 +01:00
"addWifiNetwork" : "Adicionar rede WiFi" ,
"noWifiNetworks" : "Nenhuma rede WiFi configurada" ,
"noWifiNetworksDescription" : "Adicione redes WiFi às quais o dispositivo pode conectar-se automaticamente" ,
"wifiDescription" : "O dispositivo conectar-se-á automaticamente a estas redes WiFi quando estiver ao alcance" ,
"wifiNetworksCount" : "{count} redes WiFi" ,
"removeWifiNetwork" : "Remover rede WiFi" ,
"removeWifiNetworkConfirm" : "Remover \"{name}\" da lista de redes WiFi? O dispositivo deixará de se conectar automaticamente a esta rede" ,
"wifiNetworkAdded" : "Rede WiFi adicionada com sucesso" ,
"wifiNetworkRemoved" : "Rede WiFi removida com sucesso" ,
"wifiSsid" : "Nome da rede (SSID)" ,
"wifiBssid" : "Endereço MAC (BSSID)" ,
"wifiSsidHint" : "ex. MinhaRedeWiFi" ,
2026-03-16 12:54:23 +01:00
"wifiBssidHint" : "ex. 0c:80:63:e4:cb:e1" ,
2026-04-17 03:06:23 +02:00
"wifiCurrentNetwork" : "Rede atual" ,
"wifiAvailableNetworks" : "Redes disponíveis" ,
"wifiSavedNetworks" : "{count} redes guardadas" ,
"wifiScan" : "Procurar" ,
"wifiNoCurrentNetwork" : "Nenhuma rede conectada" ,
"wifiLoadError" : "Erro ao carregar redes WiFi" ,
"wifiScanFailed" : "Falha ao procurar redes" ,
"wifiConnectFailed" : "Falha ao conectar" ,
"wifiSaveFailed" : "Falha ao guardar rede" ,
"wifiDeleteFailed" : "Falha ao eliminar rede" ,
"wifiNetworkSaved" : "Rede guardada com sucesso" ,
"wifiNetworkDeleted" : "Rede eliminada com sucesso" ,
"wifiConnected" : "Conectado com sucesso" ,
2026-04-17 09:44:16 +02:00
"wifiNetworkSet" : "Rede WiFi configurada" ,
"wifiSetFailed" : "Falha ao configurar a rede WiFi" ,
2026-04-17 03:06:23 +02:00
"wifiPassword" : "Palavra-passe" ,
"wifiPasswordHint" : "Introduza a palavra-passe da rede" ,
"wifiConnectToNetwork" : "Conectar à rede" ,
2026-03-12 22:42:38 +01:00
"editChildProfile" : "Editar perfil" ,
"editChildProfileTitle" : "Editar perfil da criança" ,
2026-03-18 19:45:29 +01:00
"editChildProfileSaveSuccess" : "Perfil da criança atualizado com sucesso" ,
"locationMapStyleStandard" : "Padrão" ,
"locationMapStyleVoyager" : "Voyager" ,
"locationMapStyleLight" : "Claro" ,
"locationMapStyleDark" : "Escuro" ,
"locationMapStyleSatellite" : "Satélite" ,
2026-04-15 22:13:12 +02:00
"locationMapRefreshRequested" : "Solicitando localização ao relógio…" ,
"locationMapFollowEnabled" : "Seguimento automático ativado" ,
"locationMapFollowDisabled" : "Seguimento automático desativado" ,
2026-03-18 19:45:29 +01:00
"locationLayerGeofences" : "Zonas de segurança" ,
"locationLayerFrequentPlaces" : "Lugares frequentes" ,
"locationLayerHistory" : "Histórico" ,
"locationNewFrequentPlace" : "Novo lugar frequente" ,
"locationNewGeofence" : "Nova zona de segurança" ,
"locationEditGeofence" : "Editar zona de segurança" ,
"locationEditFrequentPlace" : "Editar lugar frequente" ,
"locationHintFrequentPlace" : "Ex: Casa, Escritório..." ,
"locationHintGeofence" : "Ex: Casa, Escola..." ,
"locationHintDescription" : "Descrição (opcional)" ,
"locationCreate" : "Criar" ,
"locationSave" : "Guardar" ,
"locationConfirm" : "Confirmar" ,
"locationEdit" : "Editar" ,
"locationPlacementHint" : "Mova o mapa para escolher a localização" ,
"locationRadius" : "Raio" ,
"locationCoordinates" : "Coordenadas" ,
"locationStatus" : "Estado" ,
"locationStatusActive" : "Ativa" ,
"locationStatusInactive" : "Inativa" ,
2026-03-22 02:30:21 +01:00
"locationListGeofences" : "Zonas de segurança" ,
"locationListFrequentPlaces" : "Locais frequentes" ,
"locationListPositionHistory" : "Histórico de posições" ,
"locationListNoItems" : "Nenhum item para mostrar" ,
"locationListAll" : "Todos" ,
2026-03-18 19:45:29 +01:00
"locationHistoryPosition" : "Posição do histórico" ,
"locationDate" : "Data" ,
"locationType" : "Tipo" ,
"locationAddress" : "Morada" ,
"locationPlace" : "Lugar" ,
"locationRadiusMeters" : "{radius} m" ,
"deleteUserDialog" : "Tem certeza de que deseja eliminar este utilizador?" ,
"soundAndVibration" : "Som e vibração" ,
"soundOnly" : "Apenas som" ,
"vibrationOnly" : "Apenas vibração" ,
"silent" : "Silencioso" ,
"syncClockMessage" : "Sincronize o relógio do dispositivo com a hora atual" ,
2026-03-22 04:01:09 +01:00
"locationWifiNetworksOptional" : "Redes WiFi (opcional)" ,
"volumeControl" : "Controle de volume" ,
"volumeMedia" : "Volume de mídia" ,
"volumeRingtone" : "Volume do toque" ,
"volumeAlarm" : "Volume do alarme" ,
"volumeHint" : "Você pode arrastar o controle deslizante para ajustar o volume do dispositivo. O aplicativo salva apenas o nível de volume ajustado com sucesso mais recentemente. O volume real dependerá do dispositivo." ,
2026-03-22 04:57:38 +01:00
"volumeSend" : "Enviar" ,
"photoTaken" : "Foto tirada com sucesso" ,
2026-03-22 05:15:22 +01:00
"noPhotosAvailable" : "Nenhuma foto disponível" ,
2026-03-22 05:50:20 +01:00
"measure" : "Medir" ,
"callHistory" : "Histórico de chamadas" ,
"callHistoryEmpty" : "Nenhuma chamada registrada" ,
2026-03-25 05:45:05 +01:00
"timezoneSearch" : "Buscar cidade..." ,
"timezoneNoResults" : "Nenhuma cidade encontrada" ,
2026-03-22 05:50:20 +01:00
"callIncoming" : "Recebidas" ,
"callOutgoing" : "Efetuadas" ,
2026-03-25 02:15:25 +01:00
"callMissed" : "Perdidas" ,
"healthFrequency" : "Frequência" ,
"healthMeasuring" : "Medindo..." ,
"geofenceCreated" : "Geocerca criada" ,
"geofenceUpdated" : "Geocerca atualizada" ,
"geofenceDeleted" : "Geocerca eliminada" ,
"frequentPlaceCreated" : "Local frequente criado" ,
"frequentPlaceUpdated" : "Local frequente atualizado" ,
"frequentPlaceDeleted" : "Local frequente eliminado" ,
"errorGeneric" : "Algo correu mal. Tente novamente." ,
2026-04-17 09:44:29 +02:00
"pullDownToRetry" : "Deslize para baixo para tentar novamente" ,
2026-03-25 02:15:25 +01:00
"errorGeofenceCreate" : "Não foi possível criar a zona de segurança" ,
"errorGeofenceUpdate" : "Não foi possível atualizar a zona de segurança" ,
"errorGeofenceDelete" : "Não foi possível eliminar a zona de segurança" ,
"errorFrequentPlaceCreate" : "Não foi possível criar o local frequente" ,
"errorFrequentPlaceUpdate" : "Não foi possível atualizar o local frequente" ,
"errorFrequentPlaceDelete" : "Não foi possível eliminar o local frequente" ,
"errorPositionHistory" : "Não foi possível carregar o histórico de posições" ,
"errorLocationFrequency" : "Não foi possível atualizar a frequência de localização" ,
"errorRefreshPosition" : "Não foi possível atualizar a posição" ,
"errorHealthData" : "Não foi possível carregar os dados de saúde" ,
"errorHealthMeasure" : "Não foi possível enviar o comando de medição" ,
"errorHeartRateFrequency" : "Não foi possível atualizar a frequência cardíaca" ,
"errorSoundMode" : "Não foi possível atualizar o modo de som" ,
"errorVolumeControl" : "Não foi possível atualizar o volume" ,
"errorLanguage" : "Não foi possível atualizar o idioma" ,
"locationFrequencyUpdated" : "Frequência atualizada para {minutes} min" ,
"activityMeterPedometer" : "Pedómetro" ,
"activityMeterPedometerEnabled" : "Pedómetro ativado" ,
"activityMeterPedometerDisabled" : "Pedómetro desativado" ,
"errorActivityData" : "Não foi possível carregar os dados de atividade" ,
2026-03-25 02:30:09 +01:00
"errorPedometer" : "Não foi possível atualizar o pedómetro" ,
"errorContactsMin" : "O dispositivo deve ter pelo menos um contacto" ,
2026-04-16 13:54:13 +02:00
"errorContactsMax" : "Número máximo de contactos atingido para este dispositivo" ,
2026-04-16 21:26:07 +02:00
"errorPositions" : "Não foi possível carregar as posições" ,
2026-04-16 23:48:07 +02:00
"errorDeviceDisconnected" : "O relógio está desconectado e não pode receber comandos" ,
2026-04-17 09:43:52 +02:00
"checkingDeviceConnection" : "A verificar se o dispositivo está conectado..." ,
2026-04-16 13:54:13 +02:00
"errorSosContactsMax" : "Número máximo de contactos SOS atingido para este dispositivo" ,
2026-03-25 03:52:24 +01:00
"customBackground" : "Imagem de fundo personalizada" ,
"backgroundImageDescription" : "Defina uma foto como protetor de ecrã personalizado para o dispositivo" ,
"backgroundImageTapToSelect" : "Toque para selecionar uma foto" ,
"backgroundImageTapToChange" : "Toque na imagem para alterar o protetor de ecrã" ,
"backgroundImageUploaded" : "Imagem de fundo atualizada" ,
"errorBackgroundImageLoad" : "Não foi possível carregar a imagem de fundo" ,
"errorBackgroundImageUpload" : "Não foi possível carregar a imagem de fundo" ,
"errorBackgroundImageSet" : "Não foi possível definir a imagem de fundo" ,
2026-03-25 05:03:40 +01:00
"backgroundImageSet" : "Imagem de fundo definida com sucesso" ,
"alerts" : "Alertas" ,
"alertsDescription" : "Define os parâmetros que controlam a monitorização e os alertas do dispositivo." ,
"alertsUpdated" : "Alertas atualizados" ,
"errorAlertUpdate" : "Não foi possível atualizar os alertas" ,
"alertSos" : "Emergência" ,
"alertFalldown" : "Queda" ,
"alertLowBattery" : "Bateria fraca" ,
"alertGeofenceIn" : "Entrada na zona" ,
"alertGeofenceOut" : "Saída da zona" ,
"alertDisconnect" : "Desconectado" ,
"alertBraceletRemoved" : "Pulseira removida" ,
"alertStandstill" : "Inatividade prolongada" ,
"alertAbnormalHeartRate" : "Frequência cardíaca anormal" ,
"alertReconnect" : "Reconectado" ,
"alertMovement" : "Movimento" ,
"disableFunctionsKeyboard" : "Teclado de marcação" ,
"disableFunctionsGps" : "Posicionamento GPS" ,
"disableFunctionsNightMode" : "Modo noturno" ,
"disableFunctionsUpdated" : "Funções atualizadas" ,
"errorDisableFunctions" : "Não foi possível atualizar as funções" ,
"batteryNightSaving" : "Economia noturna de bateria" ,
"batteryNightModeTitle" : "Modo de economia de energia noturno" ,
"batteryNightModeDescription" : "O relógio poupará bateria e desconectar-se-á de todas as redes entre as 22:00 e as 06:00." ,
"batteryNightModeUpdated" : "Modo noturno atualizado" ,
2026-03-25 05:45:05 +01:00
"errorBatteryNightMode" : "Não foi possível atualizar o modo noturno" ,
"timezoneUpdated" : "Fuso horário atualizado" ,
"errorTimezone" : "Não foi possível atualizar o fuso horário" ,
feat: sync device settings after updates and improve remote connection features
- Add DeviceSettingsSync extension on Ref to centralize device provider
updates after settings changes (sound, volume, language, timezone,
battery, disable functions, alerts, pedometer, heart rate freq,
location freq, background image)
- Add photo capture countdown with Lottie animation in remote camera
- Replace Image.network with Image.memory for photo display
- Fix commands datasource to handle text/html responses (post<dynamic>)
- Add typed error/success events to RemoteConnectionViewModel
- Add background image active indicator and backgroundImageId to device settings
- Change photos endpoint from /devices/identificator/:id/photos/files to /photos/files
- Remove dead deviceId param from getBackgroundImage chain
- Relax PictureEntity required fields to @Default for API compatibility
- Fix LocationViewModel rebuild crash (ref.watch → ref.read)
- Use .select() in RemoteCameraScreen for optimized rebuilds
- Increase health measure countdown to 60s
2026-03-25 13:51:48 +01:00
"timezoneOther" : "Outros fusos horários" ,
2026-04-22 01:10:10 +02:00
"timezoneUsePhone" : "Usar o fuso horário do telemóvel" ,
feat: sync device settings after updates and improve remote connection features
- Add DeviceSettingsSync extension on Ref to centralize device provider
updates after settings changes (sound, volume, language, timezone,
battery, disable functions, alerts, pedometer, heart rate freq,
location freq, background image)
- Add photo capture countdown with Lottie animation in remote camera
- Replace Image.network with Image.memory for photo display
- Fix commands datasource to handle text/html responses (post<dynamic>)
- Add typed error/success events to RemoteConnectionViewModel
- Add background image active indicator and backgroundImageId to device settings
- Change photos endpoint from /devices/identificator/:id/photos/files to /photos/files
- Remove dead deviceId param from getBackgroundImage chain
- Relax PictureEntity required fields to @Default for API compatibility
- Fix LocationViewModel rebuild crash (ref.watch → ref.read)
- Use .select() in RemoteCameraScreen for optimized rebuilds
- Increase health measure countdown to 60s
2026-03-25 13:51:48 +01:00
"takingPhoto" : "Tirando foto..." ,
"errorTakePicture" : "Erro ao tirar foto" ,
"errorFetchPhotos" : "Erro ao obter fotos" ,
2026-04-06 19:44:26 +02:00
"errorCall" : "Erro ao realizar chamada" ,
2026-03-24 20:20:54 +01:00
"cardPinSet" : "Definir PIN" ,
"cardPinChange" : "Alterar PIN" ,
"cardPinUnblock" : "Desbloquear PIN" ,
"cardPinSetTitle" : "Definir PIN do cartão" ,
"cardPinChangeTitle" : "Alterar PIN do cartão" ,
"cardPinCurrentStep" : "Introduza o PIN atual" ,
"cardPinNewStep" : "Introduza o novo PIN" ,
"cardPinConfirmStep" : "Confirme o novo PIN" ,
"cardPinScaStep" : "Introduza o seu PIN de segurança" ,
"cardPinNext" : "Seguinte" ,
"cardPinMismatch" : "Os PINs não coincidem, tente novamente" ,
"cardPinSuccess" : "PIN do cartão atualizado com sucesso" ,
"cardPinError" : "Erro ao atualizar o PIN do cartão" ,
"cardPinUnblockConfirm" : "Tem a certeza de que deseja desbloquear o PIN do cartão?" ,
"cardPinUnblockSuccess" : "PIN do cartão desbloqueado com sucesso" ,
"cardPinUnblockError" : "Erro ao desbloquear o PIN do cartão" ,
"renewCardTitle" : "Renovar cartão" ,
"renewCardConfirm" : "Tem a certeza de que deseja renovar o cartão? Será emitido um novo cartão." ,
"renewCardTokenHint" : "Introduza o código do novo cartão" ,
"renewCardPinTitle" : "Introduza o seu PIN de segurança para renovar o cartão" ,
"renewCardSuccess" : "Cartão renovado com sucesso" ,
2026-04-06 20:33:57 +02:00
"renewCardError" : "Erro ao renovar o cartão" ,
"accountSettings" : "Perfil da conta" ,
"activationCodeMessage" : "Um código de ativação foi enviado para o seu e-mail" ,
"addAlarm" : "Adicionar novo alarme" ,
"addNewSaveFamilyDevice" : "Adicionar um novo SaveFamily" ,
"alarm" : "Alarmes" ,
2026-04-17 04:00:25 +02:00
"alertsTitle" : "Alertas" ,
"alertsEmpty" : "Sem alertas" ,
"alertsFilterAll" : "Todos" ,
"alertsLoadError" : "Erro ao carregar alertas" ,
"alertTypeSos" : "SOS" ,
"alertTypeFalldown" : "Queda detetada" ,
"alertTypeLowBattery" : "Bateria fraca" ,
"alertTypeDisconnect" : "Desconectado" ,
"alertTypeReconnected" : "Reconectado" ,
"alertTypeBraceletRemoved" : "Pulseira removida" ,
"alertTypeStandstill" : "Inatividade" ,
"alertTypeAbnormalHeartRate" : "Frequência cardíaca anormal" ,
"alertTypeGeofenceIn" : "Entrou na zona" ,
"alertTypeGeofenceOut" : "Saiu da zona" ,
"alertTypeMovement" : "Movimento" ,
"alertGeofenceDetail" : "Zona" ,
2026-04-06 20:33:57 +02:00
"alarmSettings" : "Configurações de alarme" ,
"alarmsMessage" : "*Configure até 3 alarmes" ,
"appStore" : "App Store" ,
"appUsers" : "Usuários do app" ,
"appsSurveillance" : "Supervisão de aplicativos" ,
"average" : "Média" ,
"batteryNightSavingMode" : "Economia de bateria noturna" ,
"blockPhone" : "Bloqueio de números" ,
"bloodPressure" : "Pressão arterial" ,
"unitBpm" : "bpm" ,
"activityScheduleTitle" : "Programação de atividades" ,
"call" : "Ligue para mim" ,
"callWatch" : "Ligar para o relógio" ,
"changePassword" : "Alterar senha" ,
"channelAmazon" : "Amazon" ,
"channelOnline" : "Loja online SF" ,
"channelStore" : "Loja física" ,
"chat" : "Chat" ,
"confirm" : "Confirmar" ,
"contactTitle" : "Contate-nos" ,
"contactsAgendaTitle" : "Contatos" ,
"copy" : "copiar" ,
"custom" : "Personalizado" ,
"customerService" : "Suporte" ,
"daily" : "Diário" ,
"delete" : "Excluir" ,
"deleteAccount" : "Excluir conta" ,
"deleteAccountBody1" : "Cancelar uma conta é uma operação irreversível. Confirme que todos os serviços relacionados à conta foram tratados corretamente.\n\nApós cancelar sua conta, você não poderá mais usar esta conta ou recuperar qualquer conteúdo ou informação que tenha adicionado ou vinculado (mesmo que use a mesma conta para se registrar novamente), incluindo, mas não se limitando a:\n1. Você não poderá fazer login e usar esta conta.\n2. As informações pessoais e o histórico da sua conta não serão recuperados.\n3. Todos os registros de serviços de terceiros usados através da vinculação de conta não podem ser recuperados. Você não poderá mais fazer login e usar os serviços mencionados acima. Amor, moedas de ouro, pontos de terceiros, pedidos, ingressos e outros cupons que você recebeu serão considerados abandonados e não serão utilizados.\n\nObserve que cancelar sua conta não significa que o comportamento da conta e as responsabilidades relacionadas antes do cancelamento desta conta estejam isentos ou reduzidos." ,
"deleteAccountBody2" : "Clicar em \"Solicitar o cancelamento da minha conta\" significa que você leu e concorda com a descrição acima." ,
"deleteContactMessage" : "Tem certeza de que deseja remover este número da lista?" ,
"deleteDeviceData" : "Excluir todas as informações relacionadas ao dispositivo de {name}" ,
"deleteDeviceDialog" : "Tem certeza de que deseja remover este dispositivo da lista?" ,
"deviceIdLabel" : "ID: {deviceId}" ,
"deviceSettings" : "Configurações" ,
"disableFunctions" : "Desativar funções" ,
"doNotDisturb" : "Não perturbe" ,
2026-04-16 13:54:13 +02:00
"doNotDisturbDescription" : "Quando ativado, o relógio silenciará todas as notificações, chamadas e alertas. Apenas chamadas de contactos SOS serão permitidas." ,
"doNotDisturbStatusOn" : "Ativado" ,
"doNotDisturbStatusOff" : "Desativado" ,
"doNotDisturbEnabled" : "Não perturbe ativado" ,
"doNotDisturbDisabled" : "Não perturbe desativado" ,
"doNotDisturbError" : "Erro ao alterar o modo não perturbe" ,
"doNotDisturbEmpty" : "Sem períodos configurados" ,
"doNotDisturbAddPeriod" : "Adicionar período" ,
"doNotDisturbEditPeriod" : "Editar período" ,
"doNotDisturbMaxPeriods" : "Máximo {max} períodos permitidos" ,
"doNotDisturbSave" : "Guardar alterações" ,
"doNotDisturbSaved" : "Períodos guardados" ,
"doNotDisturbConfirm" : "Confirmar" ,
"doNotDisturbStart" : "Início" ,
"doNotDisturbEnd" : "Fim" ,
"doNotDisturbDays" : "Dias da semana" ,
"weekdayMonShort" : "S" ,
"weekdayTueShort" : "T" ,
"weekdayWedShort" : "Q" ,
"weekdayThuShort" : "Q" ,
"weekdayFriShort" : "S" ,
"weekdaySatShort" : "S" ,
"weekdaySunShort" : "D" ,
2026-04-06 20:33:57 +02:00
"editDeviceTitle" : "Editar dispositivo" ,
"enterEmail" : "Insira seu e-mail" ,
"enterMessage" : "Sua mensagem" ,
"enterName" : "Insira seu nome" ,
"enterSubject" : "Assunto da mensagem" ,
"female" : "Mulher" ,
"deviceFunctionsTitle" : "Funções" ,
"healthTitle" : "Saúde" ,
"healthEmpty" : "Sem dados de saúde" ,
"healthEmptyHint" : "Os dados serão sincronizados automaticamente a partir do dispositivo" ,
"heartRate" : "Frequência cardíaca" ,
"historyTitle" : "Histórico" ,
"home" : "Início" ,
"insertPhone" : "Insira seu número de telefone" ,
"languageTitle" : "Idioma" ,
"lastReading" : "Última leitura" ,
"notificationsLegacyTitle" : "Notificações" ,
"linkedDevices" : "Dispositivos vinculados" ,
"locateDevicePlaySoundButton" : "Reproduzir som no dispositivo" ,
"locateDeviceTitle" : "Localizar meu SaveFamily" ,
"locateDeviceDescription" : "Localize seu dispositivo com um som." ,
"locateDeviceInstructions" : "1. Pressione o botão Reproduzir Som para ativar o som no dispositivo.\n2. Pressione OK\n3. O dispositivo reproduzirá um som\n4. O dispositivo começará a tocar após receber as instruções" ,
"mapTitle" : "Mapa" ,
"logOut" : "Sair" ,
2026-04-17 11:11:23 +02:00
"logOutConfirm" : "Tem certeza de que deseja sair?" ,
2026-04-06 20:33:57 +02:00
"loginEmail" : "(E-mail)" ,
"makeFriends" : "Fazer amigos" ,
"male" : "Homem" ,
"maximum" : "Máximo" ,
"minimum" : "Mínimo" ,
"unitMmHg" : "mmHg" ,
"name" : "Nome" ,
"newContact" : "Novo contato" ,
"noData" : "Sem dados" ,
"number" : "Número {num}:" ,
"once" : "Uma vez" ,
"other" : "Outro" ,
"oxygenLevel" : "Oxigênio no sangue" ,
"passwordLabel" : "Senha (de 6 a 12 caracteres)" ,
"personalData" : "Dados pessoais" ,
"personalDataMessage" : "*Estes são os dados pessoais do usuário do aplicativo" ,
"privacyPolicy" : "Política de privacidade do usuário" ,
"genderRatherNotSay" : "Prefiro não dizer" ,
"regCode" : "Código de registro do dispositivo" ,
"regCodeLabel" : "Código de registro: {regCode}" ,
"remoteCamera" : "Foto remota" ,
"remoteConnection" : "Conexão remota" ,
"remoteFactoryReset" : "Restaurar configurações padrão" ,
"remoteFactoryResetConfirm" : "Tem certeza de que deseja redefinir este dispositivo para as configurações de fábrica?" ,
"remoteFactoryResetMessage" : "Restaure seu dispositivo para as configurações de fábrica" ,
"remoteListening" : "Escuta remota" ,
"remoteManagement" : "Agendamento remoto" ,
"remoteOnOff" : "Ligar e desligar programado" ,
"remoteRestart" : "Reinicialização remota" ,
"remoteRestartConfirm" : "Tem certeza de que deseja reiniciar o dispositivo remotamente?" ,
"remoteRestartMessage" : "Reinicie o dispositivo remotamente" ,
"remoteTurnOff" : "Desligamento remoto" ,
"remoteTurnOffConfirm" : "Tem certeza de que deseja desligar o dispositivo remotamente?" ,
"remoteTurnOffMessage" : "Desligue o dispositivo remotamente" ,
"requestCancelBody" : "1. O cancelamento da conta não é uma recuperação operacional, certifique-se de que a conta não esteja mais em uso antes de operar.\n\n2. Uma vez enviado com sucesso o cancelamento da conta do aplicativo, a plataforma excluirá todas as informações relacionadas à sua conta dentro de 1 hora." ,
"requestCancelButton" : "Solicitar o cancelamento da minha conta" ,
"requestCancelTitle" : "Solicitação de cancelamento de conta" ,
"save" : "Salvar" ,
"selectChannel" : "Canal de compra" ,
"selectCountry" : "Selecione seu país" ,
"sendEmail" : "Enviar" ,
"setDateTime" : "Definir hora e dias:" ,
"deviceSettingsTitle" : "Configurações" ,
"sevenDays" : "7d" ,
"saveFamilyPay" : "SaveFamily Pay" ,
"sosContacts" : "Contatos SOS" ,
"sound" : "Sons" ,
"unitSpO2" : "SpO2" ,
"submit" : "Enviar" ,
"supportHelp" : "Podemos ajudá-lo?" ,
"supportWebsite" : "Visite nosso site" ,
"syncClock" : "Sincronização de tempo" ,
"takePicture" : "Tirar foto" ,
"thirtyDays" : "30d" ,
"timeAgo" : "há {time}" ,
"timezone" : "Mudança de hora e fuso" ,
"today" : "Hoje" ,
"userAccount" : "Conta: {email}" ,
"userRole" : "Função: {role}" ,
"verifyAccount" : "Verificação da conta," ,
"videoCall" : "Videochamada" ,
"watchesOnMap" : "Relógios inteligentes no mapa:" ,
"wifiSettings" : "Configurações WiFi" ,
2026-04-09 14:52:37 +02:00
"yesterday" : "Ontem" ,
"appUpdateAvailableTitle" : "Atualização disponível" ,
"appUpdateAvailableMessage" : "Há uma nova versão do SaveFamily disponível." ,
"appUpdateRequiredTitle" : "Atualização necessária" ,
"appUpdateRequiredMessage" : "Precisas atualizar o SaveFamily para continuar a usar a app." ,
"appUpdateLater" : "Mais tarde" ,
2026-04-15 17:04:28 +02:00
"appUpdateNow" : "Atualizar agora" ,
"contactsPermissionBlocked" : "Ativa a permissão de contactos nas definições para importar." ,
2026-04-15 17:05:50 +02:00
"openSettings" : "Abrir definições" ,
2026-04-15 17:06:41 +02:00
"errorMessageCodeIsEmpty" : "O código não pode estar vazio" ,
"callWatchSubtitle" : "Digita o número de telefone do dispositivo que queres chamar." ,
2026-04-15 21:51:08 +02:00
"spyCallSubtitle" : "O dispositivo ligará para este número. Digita o teu telefone para receber a chamada do relógio." ,
"activityMeterSectionToday" : "Hoje" ,
"activityMeterSectionActivity" : "Atividade" ,
"activityMeterSectionHistory" : "Histórico" ,
"activityMeterDailyGoal" : "Meta diária: {goal} ({percent}%)" ,
"activityMeterAverageDaily" : "Média diária" ,
"activityMeterTotalSteps" : "Total" ,
"activityMeterActiveDays" : "Dias ativos" ,
"activityMeterActiveHoursToday" : "Horas ativas hoje: {hours} de 24" ,
"activityMeterBestDay" : "Melhor dia: {date} ({steps} passos)" ,
"activityMeterRangeLabelToday" : "Hoje, {date}" ,
"activityMeterNoStepsToday" : "Ainda não há passos registados hoje" ,
"activityMeterNoStepsPeriod" : "Sem atividade registada neste período" ,
"unitStepsPerDay" : "passos/dia" ,
2026-04-21 19:32:49 +02:00
"unitDays" : "dias" ,
"errorOfflineTitle" : "Sem ligação" ,
"errorOfflineMessage" : "Verifica a tua ligação à internet e tenta novamente." ,
"errorOfflineRetry" : "Tentar novamente" ,
"errorTechnicalTitle" : "Algo correu mal" ,
"errorTechnicalMessage" : "Estamos a trabalhar para resolver. Tenta novamente mais tarde." ,
"errorInvalidCredentials" : "Utilizador ou palavra-passe incorretos." ,
"errorNotFound" : "Não encontrámos o que procuravas." ,
"errorRateLimit" : "Demasiados pedidos. Espera alguns minutos e tenta novamente." ,
"errorSessionExpired" : "A tua sessão expirou. Inicia sessão novamente." ,
"errorValidation" : "Os dados introduzidos não são válidos." ,
"errorScaRequired" : "É necessária autenticação adicional para continuar." ,
"errorDeviceNotOwned" : "Não tens permissão para aceder a este dispositivo." ,
"errorGeneric" : "Ocorreu um erro inesperado."
2026-03-18 19:45:29 +01:00
}