diff --git a/messages/pt-BR.json b/messages/pt-BR.json index d05b0d6cc..6f1caae3e 100644 --- a/messages/pt-BR.json +++ b/messages/pt-BR.json @@ -844,7 +844,7 @@ "nextPage": "Próxima página", "dailyTotalCaption": "({count} amostras)", "openMetricInsights": "Abrir insights de {type}", - "sleepNapCaption": "+{count} soneca(s)", + "sleepNapCaption": "incl. {count} soneca(s)", "sleepAwakeningsCaption": "{count} despertar(es)", "expandDay": "Mostrar amostras deste dia", "collapseDay": "Ocultar amostras deste dia", @@ -3143,11 +3143,11 @@ "last30days": "{days} dias", "last90days": "{days} dias", "lastYear": "{months} meses", - "allTime": "Tudo" + "allTime": "{months} meses em detalhe, todos os exames" }, "detailDays": "O Coach não lê nada mais antigo que {days} dias, em nenhuma resposta.", "detailMonths": "O Coach não lê nada mais antigo que {months} meses, em nenhuma resposta.", - "detailAll": "Tudo que você registrou: {dailyMonths} meses em detalhe diário, leituras mais antigas como valores mensais até {years} anos atrás, resultados laboratoriais dos últimos {labMonths} meses.", + "detailAll": "Tudo o que você registrou: {dailyMonths} meses em detalhe diário, leituras mais antigas como valores mensais até {years} anos atrás, e todos os resultados de exames, os mais antigos resumidos por ano.", "note": "Seu perfil, medicamentos atuais, uma doença em curso e consultas futuras permanecem visíveis; resumos que precisam de mais histórico são encurtados ou omitidos. Respostas que o Coach deu antes em conversas mais antigas ainda podem citar valores antigos." }, "showConversations": "Mostrar conversas", @@ -4219,8 +4219,8 @@ "metricNextDayRecovery": "Recuperação no dia seguinte", "metricNextDayRestingHr": "Frequência cardíaca em repouso no dia seguinte", "metricNextDayHrv": "Variabilidade da frequência cardíaca no dia seguinte", - "detailSameDay": "Média de {withAvg} {unit} nos {withDays} dias em que você marcou isto vs {withoutAvg} {unit} sem isso.", - "detailNextDay": "Média de {withAvg} {unit} no dia após os {withDays} dias em que você marcou isto vs {withoutAvg} {unit} nos demais." + "detailSameDay": "Média de {withAvg} nos {withDays} dias em que você marcou isto vs {withoutAvg} sem isso.", + "detailNextDay": "Média de {withAvg} no dia seguinte aos {withDays} dias em que você marcou isto vs {withoutAvg} nos demais." }, "factorCrosstab": { "title": "Seus fatores classificados e seus sinais vitais", @@ -4232,8 +4232,8 @@ "metricHrv": "Variabilidade da frequência cardíaca", "metricWeight": "Peso", "metricBloodPressureSys": "Sistólica", - "detail": "Média de {lowAvg} {unit} nos {lowDays} dias em que você classificou {factor} como baixo vs {highAvg} {unit} nos dias em que o classificou como alto.", - "detailInverse": "Média de {lowAvg} {unit} nos seus {lowDays} dias piores de {factor} vs {highAvg} {unit} nos seus melhores." + "detail": "Média de {lowAvg} nos {lowDays} dias em que você classificou {factor} como baixo vs {highAvg} nos dias em que o classificou como alto.", + "detailInverse": "Média de {lowAvg} nos seus {lowDays} dias piores de {factor} vs {highAvg} nos seus melhores." }, "discovery": { "title": "O que se destaca", @@ -4651,7 +4651,7 @@ "description": "Quão bem seu corpo se recuperou: os sinais de recuperação, tensão e carga que seu wearable registra durante a noite.", "scoreCrossLink": "Ver a pontuação composta de recuperação", "emptyTitle": "Ainda não há dados de recuperação", - "empty": "Nada para grafar aqui ainda. Esta página mostra as leituras de recarga, tensão e carga que WHOOP e Polar registram, e o nível de resiliência da Oura. A prontidão da Oura aparece como sua pontuação de recuperação, vinculada acima.", + "empty": "Esta página se preenche com as leituras de recarga, tensão e carga do WHOOP ou da Polar e com o nível de resiliência da Oura.", "block": { "ansChargeExplainer": "Quão carregado seu sistema nervoso autônomo está para o dia seguinte, uma leitura de recarga extraída dos seus sinais noturnos de coração e respiração.", "dayStrainExplainer": "A carga cardiovascular de corpo inteiro do dia na escala de tensão do seu dispositivo. Leia-a contra a sua recuperação, não como uma meta por si só.", @@ -5396,7 +5396,7 @@ "unavailableTitle": "Indisponível neste registro compartilhado", "unavailableDescription": "Esta área de configurações está intencionalmente indisponível ao visualizar o registro de outra pessoa.", "integrationStatusDescription": "Status de conexão deste registro gerenciado.", - "integrationStatusDetail": "Um perfil gerenciado mostra os serviços conectados apenas como status. Conectar, reconectar, sincronizar e desconectar não estão disponíveis para responsáveis.", + "integrationStatusDetail": "Os serviços que você conecta aqui enviam os dados para o registro de {name}, não para o seu. Sem um app de provedor próprio, o perfil usa o seu.", "integrationStatusDocs": "Como funciona o compartilhamento" }, "sections": { @@ -5425,8 +5425,8 @@ } }, "layout": { - "title": "Layout", - "backToHub": "Voltar ao Layout", + "title": "Organização", + "backToHub": "Voltar para Organização", "dashboard": { "title": "Painel", "description": "Layout e ordem dos blocos." @@ -5435,7 +5435,7 @@ "title": "Insights", "description": "Seções de visão geral e ordem das pílulas de navegação." }, - "subtitle": "Escolha o que o painel, os insights e os módulos de acompanhamento exibem, e em qual ordem.", + "subtitle": "Escolha a ordem e a visualização do seu painel, dos insights e das listas de acompanhamento.", "medications": { "title": "Medicamentos", "description": "Visualização em lista e ordem manual." @@ -6201,7 +6201,7 @@ "resetConfirmBody": "A cadeia volta a Codex → OpenAI → Anthropic → Local → OpenAI administrativo. Suas credenciais salvas não são alteradas." }, "activeProviderHeading": "Provedor ativo", - "activeProviderLabel": "Provedor principal", + "activeProviderLabel": "Configurar um provedor", "providerSelect": { "codex": "Conta do ChatGPT (Codex)", "openai": "OpenAI (sua chave de API)", @@ -6408,7 +6408,7 @@ }, "coachNote": "No Coach, aplica-se a profundidade de pensamento definida nas configurações do Coach." }, - "providerCardDescription": "O provedor que o HealthLog consulta primeiro, além da chave e do modelo dele.", + "providerCardDescription": "Configure a chave e o modelo de cada provedor; a ordem abaixo decide qual deles o HealthLog consulta primeiro.", "runtimeTitle": "Verificar e atualizar", "usage": { "title": "Uso da IA", @@ -6954,7 +6954,7 @@ "cross_user": "A resposta pertence a uma solicitação de outra conta. Reinicie a conexão a partir da sua própria conta.", "nocode": "A Polar não retornou um código de autorização. Tente novamente e permita o acesso na caixa de diálogo da Polar.", "nocreds": "A Polar não está configurada neste servidor. Peça ao administrador para adicionar as credenciais OAuth da Polar.", - "token": "A troca de token com a Polar falhou.", + "token": "A troca de token com a Polar falhou. Inicie a conexão novamente.", "rate_limited": "Tentativas de conexão demais. Espere um momento e tente novamente.", "generic": "Erro desconhecido ao conectar. Inicie a conexão novamente." }, @@ -6983,7 +6983,7 @@ "cross_user": "A resposta pertence a uma solicitação de outra conta. Reinicie a conexão a partir da sua própria conta.", "nocode": "A Oura não retornou um código de autorização. Tente novamente e permita o acesso na caixa de diálogo da Oura.", "nocreds": "A Oura não está configurada neste servidor. Peça ao administrador para adicionar as credenciais OAuth da Oura.", - "token": "A troca de token com a Oura falhou.", + "token": "A troca de token com a Oura falhou. Inicie a conexão novamente.", "rate_limited": "Tentativas de conexão demais. Espere um momento e tente novamente.", "issuer": "A resposta de login não veio do próprio servidor de autorização da Oura, então a conexão foi interrompida por sua segurança. Inicie a conexão novamente. Se isso continuar acontecendo, avise o administrador.", "generic": "Erro desconhecido ao conectar. Inicie a conexão novamente." @@ -7169,11 +7169,11 @@ "connectionLastUsed": "Último uso", "connectionNeverUsed": "Nunca usado", "connectionRevoke": "Desconectar", - "connectionRevokeDescription": "Desconecta este assistente e revoga o token dele.", + "connectionRevokeDescription": "Isso encerra o acesso do assistente imediatamente e impede que ele seja renovado. Para reconectar, ele precisará ser autorizado de novo.", "connectionRevokeFailed": "Não foi possível desconectar o assistente.", - "connectionsDetail": "Assistentes que você autorizou aparecem aqui.", - "tokensDetail": "Tokens que você gerou aparecem aqui.", - "tokenNamePlaceholder": "Nome, ex.: Claude" + "connectionsDetail": "Revogar uma conexão encerra o acesso dela imediatamente, inclusive a capacidade de se renovar.", + "tokensDetail": "O token é exibido uma única vez.", + "tokenNamePlaceholder": "Nome, ex.: Claude Desktop" }, "strava": "Strava", "stravaDescription": "Conecte sua conta Strava para sincronizar treinos, distância, ritmo e mais.", @@ -7200,110 +7200,110 @@ "cross_user": "A resposta pertence a uma solicitação de outra conta. Reinicie a conexão a partir da sua própria conta.", "nocode": "O Strava não retornou um código de autorização. Tente novamente e permita o acesso na caixa de diálogo do Strava.", "nocreds": "O Strava não está configurado. Adicione suas credenciais OAuth do Strava acima e tente novamente.", - "token": "A troca de token com o Strava falhou.", + "token": "A troca de token com o Strava falhou. Inicie a conexão novamente.", "rate_limited": "Tentativas de conexão demais. Espere um momento e tente novamente.", "generic": "Erro desconhecido ao conectar. Inicie a conexão novamente." }, "appleHealth": { "title": "Apple Health", - "description": "Sincronize dados do Apple Health no HealthLog.", + "description": "A sincronização ao vivo vem do app HealthLog para iOS, não de uma conexão web ou OAuth.", "status": { - "unavailable": "Indisponível neste dispositivo." + "unavailable": "Status do Apple Health indisponível" }, - "setupTitle": "Configurar Apple Health", - "permissionStep": "Permita que o HealthLog leia os dados de saúde no iPhone.", - "backgroundStep": "Ative a sincronização em segundo plano para manter os dados atualizados.", - "importNote": "Você também pode importar uma exportação do Apple Health em Configurações › Exportar e importar.", - "importAction": "Importar exportação", + "setupTitle": "Ativar a sincronização ao vivo", + "permissionStep": "No app HealthLog para iOS, abra Configurações → Apple Health e permita as categorias de saúde que você quer compartilhar.", + "backgroundStep": "Mantenha a Atualização em 2º Plano ativada. O app sincroniza os dados novos automaticamente em primeiro plano e quando o iOS concede tempo em segundo plano.", + "importNote": "Precisa de um histórico mais antigo ou não pode usar o app para iOS? O envio do XML/ZIP do Apple Health é uma alternativa avulsa e não ativa a sincronização ao vivo.", + "importAction": "Abrir a importação avulsa", "progress": { "title": "Progresso da sincronização", - "receivedLabel": "Recebido", - "oldestLabel": "Mais antigo", - "flowing": "Dados chegando", - "waiting": "Aguardando dados" + "receivedLabel": "Registros recebidos", + "oldestLabel": "Leitura mais antiga alcançada", + "flowing": "Dados chegaram na última hora. O app do iPhone ainda está enviando.", + "waiting": "Aguardando o app do iPhone enviar mais dados. O envio continua quando o app está aberto ou quando o iOS concede tempo em segundo plano. Um período sem dados durante a primeira grande carga de histórico é normal, não um erro." }, "delivery": { - "title": "Entrega de dados", - "lastTriggerLabel": "Último gatilho", + "title": "Entrega", + "lastTriggerLabel": "A última sincronização chegou", "lastBackgroundLabel": "Última sincronização em segundo plano", - "backgroundNever": "Nunca", - "noSyncYet": "Nenhuma sincronização ainda", + "backgroundNever": "Nunca: todas as sincronizações até agora chegaram com o app aberto", + "noSyncYet": "Nenhuma sincronização chegou ainda, então não há nada para mostrar aqui.", "trigger": { - "foreground": "Em primeiro plano", - "background": "Em segundo plano", - "push": "Push", - "unknown": "Desconhecido", - "manual": "Manual" + "foreground": "com o app aberto", + "background": "em segundo plano", + "push": "ao ser acordado por um push", + "unknown": "origem não informada pelo app", + "manual": "por Sincronizar tudo" } }, "freshness": { - "title": "Dados recebidos", - "lastReceived": "Último recebido", - "lastNewValue": "Último novo valor", - "lastBackground": "Última sincronização em segundo plano", - "never": "Nunca", - "lastBackfill": "Último preenchimento retroativo" + "title": "Por tipo de dado", + "lastReceived": "Último recebimento {relative}", + "lastNewValue": "Último valor novo {relative}", + "lastBackground": "Último em segundo plano {relative}", + "never": "Ainda não recebido", + "lastBackfill": "Histórico em dia {relative}" } }, "garminInfo": { "title": "Garmin", - "body": "Conecte sua conta Garmin para sincronizar treinos, sono e mais.", - "docsLink": "Documentação do Garmin" + "body": "O Garmin não tem conexão direta aqui. Conecte pelo Apple Health (iOS) ou pelo Google Health Connect (Android). As pontuações próprias da Garmin (Body Battery, Training Load, HRV Status, VO₂ máx.) não são compartilhadas pela Garmin com nenhuma das duas plataformas.", + "docsLink": "Ler o guia" }, "glucoseReference": { - "title": "Referência de glicose", - "description": "Defina uma referência de glicose para insights.", - "enable": "Ativar referência de glicose", - "explainer": "A referência ajuda a contextualizar suas leituras de glicose.", - "disclaimer": "Apenas associação, nunca conselho médico.", - "error": "Não foi possível salvar a referência de glicose." + "title": "Faixa de referência da glicose", + "description": "Com qual faixa as suas leituras de glicose são comparadas.", + "enable": "Usar a faixa de meta para diabetes", + "explainer": "Desligado, as leituras são comparadas com a faixa de referência geral para pessoas sem diabetes. Ligado, são comparadas com a faixa de meta glicêmica mais estreita dos Standards of Care da ADA, e o Coach passa a basear nessa faixa os comentários sobre glicose. Suas próprias metas personalizadas abaixo continuam tendo prioridade.", + "disclaimer": "Isto seleciona uma faixa de referência. Não é um diagnóstico, nunca é deduzido de uma leitura, e o app não toma nenhuma ação clínica com base nisso. Quais metas se aplicam a você é uma pergunta para o seu profissional de saúde.", + "error": "Não foi possível salvar a configuração." }, "dangerZoneDetail": "Isso exclui permanentemente tudo no seu registro.", "deleteAccountCardDetail": "Isso exclui sua conta, chaves de acesso, log de auditoria e sessões.", "passkeyStepUpRequired": "Confirme com seu segundo fator ou uma chave de acesso para adicionar uma nova chave de acesso.", "setup": { "title": "Configuração", - "description": "Conclua a configuração inicial do HealthLog.", + "description": "As perguntas que decidem o que o HealthLog mostra primeiro, e o checklist de primeiros passos no painel.", "setUpAgain": "Configurar novamente", - "showChecklist": "Mostrar checklist", - "checklistShown": "Checklist exibido", - "checklistNothingHidden": "Nada oculto no checklist" + "showChecklist": "Mostrar o checklist novamente", + "checklistShown": "O checklist voltou ao painel.", + "checklistNothingHidden": "O checklist não estava oculto; ele aparece no painel." }, "documentSources": { - "title": "Fontes de documentos", - "description": "Conecte fontes de documentos ao HealthLog.", - "explainer": "Fontes de documentos alimentam o cofre do HealthLog.", - "systemLabel": "Sistema", + "title": "Arquivos de documentos", + "description": "Pesquise no Paperless-ngx ou no Papra a partir do HealthLog e importe os documentos que você escolher.", + "explainer": "Um botão de importação aparece onde quer que você vincule documentos: em uma consulta, uma vacina e uma condição, e em Documentos. O HealthLog guarda a própria cópia criptografada de cada documento que você importa, e consulta o seu arquivo só quando você pesquisa ou importa.", + "systemLabel": "Arquivo", "statusConnected": "Conectado", "statusNotConnected": "Não conectado", - "connectedSince": "Conectado desde {when}", - "originRemoved": "Origem removida", - "baseUrl": "URL base", - "allowedOrigins": "Origens permitidas", + "connectedSince": "Conectado, última verificação em {date}", + "originRemoved": "Este endereço não está mais na lista de arquivos permitidos do servidor. Fale com o administrador ou salve outro endereço.", + "baseUrl": "Endereço", + "allowedOrigins": "Permitidos neste servidor: {origins}", "organizationId": "ID da organização", - "organizationHelp": "Opcional, para instâncias multiusuário.", - "token": "Token", - "tokenSaved": "Token salvo", - "tokenHelpPaperless": "Cole um token de API do Paperless-ngx.", - "tokenHelpPapra": "Cole um token de API do Papra.", - "save": "Salvar", - "saving": "Salvando…", - "saved": "Salvo", + "organizationHelp": "A parte depois de /organizations/ na barra de endereço do Papra. IDs de organização do Papra têm o formato org_ seguido de 24 letras e dígitos.", + "token": "Token de API", + "tokenSaved": "Salvo para este endereço. Deixe em branco para mantê-lo.", + "tokenHelpPaperless": "No Paperless-ngx: My Profile, API token.", + "tokenHelpPapra": "No Papra: uma chave de API com documents:read e tags:read.", + "save": "Salvar e testar", + "saving": "Testando…", + "saved": "Conectado. O arquivo respondeu.", "test": "Testar", - "testOk": "OK: {provider}", + "testOk": "O arquivo respondeu em {latency} ms.", "disconnect": "Desconectar", - "disconnectTitle": "Desconectar {provider}?", - "disconnectDescription": "A conexão com {provider} será desconectada. Os dados já importados permanecem.", - "unavailableExplainer": "Esta fonte de documentos não está disponível agora.", - "moduleOffExplainer": "O módulo Documentos está desativado para esta conta.", - "tokenNewAddress": "Novo endereço para o token" + "disconnectTitle": "Desconectar {name}?", + "disconnectDescription": "O HealthLog esquece o endereço e o token. Os documentos que você já importou continuam no HealthLog.", + "unavailableExplainer": "Este servidor não permite mais arquivos de documentos, então a conexão abaixo não pode ser usada. Você ainda pode removê-la.", + "moduleOffExplainer": "Os documentos estão desativados, então a conexão abaixo não é usada. Você ainda pode removê-la.", + "tokenNewAddress": "Um endereço novo precisa do token de API de novo." }, "emailChangePassword": "Digite sua senha atual para alterar o endereço de e-mail.", "reproof": { - "description": "Digite sua senha atual para confirmar que é você.", - "descriptionChange": "Digite sua senha atual para alterar o endereço de e-mail.", - "signInAgain": "Entre novamente para confirmar.", - "failed": "Essa senha não está correta." + "description": "Isto compartilha ou exporta os seus dados de saúde. Confirme que é você para continuar.", + "descriptionChange": "Isto altera algo que só você deveria poder alterar. Confirme que é você para continuar.", + "signInAgain": "Entre novamente e tente mais uma vez. Sua conta não tem senha nem chave de acesso para confirmar aqui.", + "failed": "Não deu certo. Confira o que você digitou e tente de novo." }, "passwordTitle": "Senha", "tokenNameLabel": "Nome do token", @@ -7313,111 +7313,111 @@ }, "integrationCard": { "state": { - "ok": "OK", + "ok": "Funcionando", "limited": "Limitado", - "degraded": "Degradado", + "degraded": "Atrasado", "actionRequired": "Ação necessária" }, "reason": { - "dataArriving": "Dados chegando", - "dataArrivingHistory": "Dados chegando, histórico em andamento", - "firstSyncPending": "Primeira sincronização pendente", - "planLimited": "Plano limitado", - "permissionLimited": "Permissões limitadas", - "providerErrors": "Erros do provedor", - "providerErrorsNoSince": "Erros do provedor, sem data", - "syncStalled": "Sincronização parada", - "syncStalledNoSince": "Sincronização parada, sem data", - "noNewData": "Nenhum dado novo", - "noNewDataNoSince": "Nenhum dado novo, sem data", - "noNewDataApple": "Nenhum dado novo do Apple Health", - "noNewDataAppleNoSince": "Nenhum dado novo do Apple Health, sem data", - "unexpectedSilence": "Silêncio inesperado", - "unexpectedSilenceNoSince": "Silêncio inesperado, sem data", - "reauthRequired": "Reautenticação necessária", - "pausedAfterErrors": "Pausado após erros", - "pausedAfterErrorsNoSince": "Pausado após erros, sem data" + "dataArriving": "Os dados estão chegando.", + "dataArrivingHistory": "Os dados estão chegando. O histórico mais antigo está sendo carregado em segundo plano.", + "firstSyncPending": "Conectado. A primeira sincronização acontece em breve.", + "planLimited": "Os dados estão chegando. Seu plano {provider} não inclui {list}.", + "permissionLimited": "Os dados estão chegando. Falta permissão para {list}.", + "providerErrors": "{provider} não responde de forma confiável desde {since}. O HealthLog continua tentando; não há nada a fazer do seu lado.", + "providerErrorsNoSince": "{provider} não está respondendo de forma confiável agora. O HealthLog continua tentando; não há nada a fazer do seu lado.", + "syncStalled": "O HealthLog não sincroniza desde {since}. O problema está no servidor, não no seu dispositivo.", + "syncStalledNoSince": "O HealthLog não está sincronizando agora. O problema está no servidor, não no seu dispositivo.", + "noNewData": "Nenhum dado novo desde {since}.", + "noNewDataNoSince": "Nenhum dado novo há algum tempo.", + "noNewDataApple": "Nenhum dado novo desde {since}. Abra o HealthLog no seu iPhone uma vez.", + "noNewDataAppleNoSince": "Nenhum dado novo há algum tempo. Abra o HealthLog no seu iPhone uma vez.", + "unexpectedSilence": "Nada chegou desde {since}, embora {provider} costume enviar dados todos os dias.", + "unexpectedSilenceNoSince": "Nada está chegando, embora {provider} costume enviar dados todos os dias.", + "reauthRequired": "A conexão com {provider} expirou. Reconecte para continuar recebendo dados.", + "pausedAfterErrors": "{provider} está pausado após falhar desde {since}.", + "pausedAfterErrorsNoSince": "{provider} está pausado após falhas repetidas." }, "when": { - "today": "hoje", - "yesterday": "ontem", - "date": "em {date}" + "today": "hoje, {time}", + "yesterday": "ontem, {time}", + "date": "{date}, {time}" }, "items": { - "activity": "Atividade", - "sleep": "Sono" + "activity": "atividade", + "sleep": "sono" }, - "moreValuesOne": "+ {count} valor", - "moreValuesFew": "+ {count} valores", - "moreValuesOther": "+ {count} valores", - "notConnected": "Não conectado", + "moreValuesOne": "mais {count}", + "moreValuesFew": "mais {count}", + "moreValuesOther": "mais {count}", + "notConnected": "Não conectado.", "lastData": "Últimos dados: {when}", - "lastDataNone": "Nenhum dado ainda", + "lastDataNone": "Últimos dados: nenhum ainda", "reconnect": "Reconectar", "resume": "Retomar", - "menuLabel": "Abrir menu da integração", + "menuLabel": "Mais ações para {provider}", "menu": { - "credentials": "Credenciais", - "address": "Endereço" + "credentials": "Alterar credenciais", + "address": "Alterar endereço e token" }, "syncing": "Sincronizando…", "details": { - "title": "Detalhes", - "none": "Nenhum detalhe ainda", + "title": "Detalhes para um relatório de erro", + "none": "nenhum", "state": "Estado", - "since": "Desde", + "since": "desde", "lastSync": "Última sincronização", "lastData": "Últimos dados", - "failingParts": "Partes com falha", + "failingParts": "partes com falha", "recentCalls": "Chamadas recentes", "unavailable": "Indisponível", - "unavailableList": "Lista indisponível", - "causePlan": "Causa: plano", - "causePermission": "Causa: permissões", - "failureStreak": "Sequência de falhas", - "copyFailed": "Não foi possível copiar" + "unavailableList": "Indisponível: {list}", + "causePlan": "plano", + "causePermission": "permissão", + "failureStreak": "Falhas seguidas: {count} de {threshold}", + "copyFailed": "Não foi possível copiar. Selecione o texto e copie manualmente." }, "historyEnds": {} }, "dawarich": "Dawarich", - "dawarichTag": "Localização", - "dawarichDescription": "Conecte seu próprio site Dawarich para sincronizar o histórico de localização.", - "dawarichUrl": "URL do Dawarich", + "dawarichTag": "Movimento", + "dawarichDescription": "Conecte a sua instância do Dawarich para trazer a distância diária, o tempo fora de casa e os dias de viagem.", + "dawarichUrl": "Endereço do Dawarich", "dawarichApiKey": "Chave de API", - "dawarichApiKeyHelp": "Cole uma chave de API das ferramentas administrativas do seu Dawarich.", + "dawarichApiKeyHelp": "Você a encontra no Dawarich em Account. O HealthLog a usa só para ler valores diários, nunca coordenadas ou nomes de lugares.", "dawarichConnect": "Conectar", "dawarichUpdate": "Salvar alterações", - "dawarichConnected": "Dawarich conectado.", - "dawarichSync": "Sincronizar agora", - "dawarichSyncQueued": "Sincronização na fila.", - "dawarichSyncAlreadyQueued": "Uma sincronização já está na fila.", + "dawarichConnected": "Dawarich conectado. Os últimos 30 dias estão sendo carregados agora.", + "dawarichSync": "Buscar agora", + "dawarichSyncQueued": "Os últimos sete dias serão buscados em breve.", + "dawarichSyncAlreadyQueued": "Uma busca já está a caminho.", "dawarichDisconnect": "Desconectar", "dawarichDisconnectTitle": "Desconectar o Dawarich?", - "dawarichDisconnectDescription": "As sincronizações futuras param. Os dados já importados permanecem.", - "dawarichDisconnectDelete": "Também excluir dados", - "dawarichDisconnectDeleteTitle": "Excluir dados do Dawarich?", - "dawarichDisconnectDeleteDescription": "Os dados de localização importados do Dawarich serão excluídos permanentemente.", - "dawarichHomePlaceSet": "Local de casa definido.", - "dawarichHomePlaceMissing": "Nenhum local de casa definido ainda.", - "dawarichHomeCountryIs": "País de casa: {country}.", - "dawarichHomeCountryMissing": "Nenhum país de casa definido ainda.", - "dawarichDaysStored": "{count} dias de localização armazenados.", - "dawarichHomePlace": "Local de casa", - "dawarichHomePlaceChoose": "Escolher local de casa", - "dawarichHomePlaceChange": "Alterar local de casa", - "dawarichHomeCountry": "País de casa", - "dawarichHomeCountryHelp": "Ajuda a contextualizar viagens e clima.", + "dawarichDisconnectDescription": "As próximas buscas param. Os dias já armazenados permanecem.", + "dawarichDisconnectDelete": "Desconectar e excluir os dias", + "dawarichDisconnectDeleteTitle": "Desconectar e excluir todos os dias?", + "dawarichDisconnectDeleteDescription": "A conexão e todos os dias de movimento armazenados são removidos. Isso não pode ser desfeito.", + "dawarichHomePlaceSet": "A casa está definida.", + "dawarichHomePlaceMissing": "Defina a sua casa para que o tempo fora de casa possa ser medido.", + "dawarichHomeCountryIs": "País de residência: {country}.", + "dawarichHomeCountryMissing": "Ainda não há país de residência, então não há dias de viagem.", + "dawarichDaysStored": "Dias armazenados: {count}", + "dawarichHomePlace": "Casa", + "dawarichHomePlaceChoose": "Escolha um lugar do Dawarich", + "dawarichHomePlaceChange": "Escolher casa", + "dawarichHomeCountry": "País de residência", + "dawarichHomeCountryHelp": "Código de país com duas letras, como BR. Se ficar em branco, conta o país onde você passou mais dias no último ano.", "dawarichHomeSave": "Salvar", - "dawarichHomeSaved": "Local de casa salvo", + "dawarichHomeSaved": "Salvo.", "dawarichErrors": { - "invalid": "Configuração inválida.", - "privateOrigin": "Origem privada exige aprovação da administração.", - "credentials": "Credenciais rejeitadas.", - "unreachable": "Não foi possível alcançar o Dawarich.", + "invalid": "Esse endereço não funciona. Use o endereço da instância sem credenciais.", + "privateOrigin": "Esta instância está em uma rede privada. Peça ao operador do servidor para aprová-la.", + "credentials": "O Dawarich não aceitou a chave de API.", + "unreachable": "Não foi possível alcançar o Dawarich. Confira o endereço e se a instância está em execução.", "rateLimited": "Solicitações demais. Espere um momento e tente novamente.", - "homePlaceUnknown": "Local de casa desconhecido.", - "notConnected": "Não conectado.", - "generic": "Erro desconhecido ao conectar." + "homePlaceUnknown": "A instância do Dawarich não conhece mais este lugar.", + "notConnected": "O Dawarich não está conectado.", + "generic": "Não deu certo. Tente de novo." }, "fitbitRetirement": {}, "moduleState": {} @@ -8962,7 +8962,7 @@ "askMedicationName": "Especifique um medicamento, por exemplo tomado Ramipril.", "medicationNotFoundExact": "Medicamento não encontrado. Envie o nome exatamente como está no HealthLog.", "helpHeader": "Comandos disponíveis:", - "helpBody": "/help: mostrar esta ajuda\n/add: registrar uma dose\n/start: iniciar o bot\n\nComandos de texto:\ntomado <nome>: confirmar uma dose\n\nBotões nos lembretes:\n• Tomado: confirmar dose\n• 🕐 1h / 🕐 3h: adiar lembrete\n• ⏭ Pular: pular dose\n• ✓ Confirmar: confirmar uma dose perdida", + "helpBody": "/help: mostrar esta ajuda\n/add: registrar uma tomada\n/start: iniciar o bot\n\nComandos de texto:\ntaken <nome>: confirmar uma tomada\n\nBotões nos lembretes:\n• Tomado: confirmar a tomada\n• 🕐 1h / 🕐 3h: adiar o lembrete\n• ⏭ Pular: pular a tomada\n• ✓ Confirmar: confirmar uma tomada perdida", "measureValuePrompt": "Responda com o valor para registrá-lo (opcional).", "buttonMeasureValue": "Valor…", "measureValueSaved": "Leitura salva.", @@ -9127,9 +9127,9 @@ "insights": { "headline": { "title": "Seu ciclo e seu corpo", - "restingHeartRate": "Seu pulso em repouso fica cerca de {delta} {unit} {dir} na fase lútea do que na folicular.", - "heartRateVariability": "Sua variabilidade da frequência cardíaca fica cerca de {delta} {unit} {dir} na fase lútea do que na folicular.", - "generic": "Seu {metric} fica cerca de {delta} {unit} {dir} na fase lútea do que na folicular.", + "restingHeartRate": "Seu pulso em repouso fica cerca de {delta} {dir} na fase lútea do que na folicular.", + "heartRateVariability": "Sua variabilidade da frequência cardíaca fica cerca de {delta} {dir} na fase lútea do que na folicular.", + "generic": "Seu {metric} fica cerca de {delta} {dir} na fase lútea do que na folicular.", "dirHigher": "mais alto", "dirLower": "mais baixo", "empty": "Ainda não há ciclos e leituras suficientes para revelar um padrão de fase. Continue registrando; isso se preenche conforme seu histórico cresce." @@ -9137,7 +9137,7 @@ "crosstab": { "description": "Como cada medição se compara entre suas fases lútea e folicular, nos seus próprios dados.", "pairLabel": "{metric}: lútea vs folicular", - "detail": "Lútea {lutealAvg} {unit} ({lutealDays} dias) vs folicular {follicularAvg} {unit} ({follicularDays} dias).", + "detail": "Lútea {lutealAvg} ({lutealDays} dias) vs folicular {follicularAvg} ({follicularDays} dias).", "metricRestingHeartRate": "Pulso em repouso", "metricHrv": "Variabilidade da frequência cardíaca", "metricSleepDuration": "Duração do sono",