mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-23 15:36:33 +00:00
4c13b4e40f
New map_always_show_routes account setting, defaulting to off, i18n'd across all 22 supported locales. Lives in Display > Travel & map, directly under Booking route labels — its closest sibling — using that section's immediate-save On/Off pattern rather than a separate toggle+Save flow, since it's a booking-display preference, not a map render-config option. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
501 lines
31 KiB
TypeScript
501 lines
31 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const settings: TranslationStrings = {
|
|
'settings.title': 'Configurações',
|
|
'settings.subtitle': 'Ajuste suas preferências pessoais',
|
|
'settings.tabs.display': 'Exibição',
|
|
'settings.tabs.map': 'Mapa',
|
|
'settings.tabs.notifications': 'Notificações',
|
|
'settings.tabs.integrations': 'Integrações',
|
|
'settings.plugins.oauth.connected': 'Conectado',
|
|
'settings.plugins.oauth.notConnected': 'Não conectado',
|
|
'settings.plugins.oauth.connect': 'Conectar',
|
|
'settings.plugins.oauth.disconnect': 'Desconectar',
|
|
'settings.tabs.plugins': 'Plugins',
|
|
'settings.plugins.title': 'Configurações de plugins',
|
|
'settings.plugins.subtitle':
|
|
'Suas configurações pessoais para os plugins que você usa (chaves de API, preferências).',
|
|
'settings.plugins.empty': 'Nenhum plugin ativo.',
|
|
'settings.plugins.saved': 'Configurações salvas',
|
|
'settings.tabs.account': 'Conta',
|
|
'settings.tabs.offline': 'Offline',
|
|
'settings.tabs.about': 'Sobre',
|
|
'settings.map': 'Mapa',
|
|
'settings.mapTemplate': 'Modelo de mapa',
|
|
'settings.mapTemplatePlaceholder.select': 'Selecione o modelo...',
|
|
'settings.mapDefaultHint': 'Deixe vazio para OpenStreetMap (padrão)',
|
|
'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
|
'settings.mapHint': 'URL do modelo de blocos do mapa',
|
|
'settings.mapProvider': 'Provedor de mapa',
|
|
'settings.mapProviderHint': 'Afeta os mapas do Planejador de Viagem e Diário. Atlas sempre usa Leaflet.',
|
|
'settings.mapLeafletSubtitle': 'Clássico 2D, quaisquer blocos raster',
|
|
'settings.mapMapboxSubtitle': 'Blocos vetoriais, prédios 3D & terreno',
|
|
'settings.mapMapLibreSubtitle': 'Blocos vetoriais OpenFreeMap, sem token',
|
|
'settings.mapExperimental': 'Experimental',
|
|
'settings.mapMapboxToken': 'Token de acesso Mapbox',
|
|
'settings.mapMapboxTokenHint': 'Token público (pk.*) de',
|
|
'settings.mapMapboxTokenLink': 'mapbox.com → Tokens de acesso',
|
|
'settings.mapStyle': 'Estilo do mapa',
|
|
'settings.mapStylePlaceholder': 'Selecionar um estilo Mapbox',
|
|
'settings.mapStyleHint': 'Preset ou sua própria URL mapbox://styles/USER/ID',
|
|
'settings.mapOpenFreeMapStylePlaceholder': 'Selecionar um estilo OpenFreeMap',
|
|
'settings.mapOpenFreeMapStyleHint':
|
|
'Preset ou URL de estilo OpenFreeMap. Os estilos OpenFreeMap funcionam sem token.',
|
|
'settings.map3dBuildings': 'Prédios 3D & terreno',
|
|
'settings.map3dHint': 'Inclinação + extrusões 3D reais de prédios — funciona em todo estilo, incluindo satélite.',
|
|
'settings.mapHighQuality': 'Modo alta qualidade',
|
|
'settings.mapHighQualityHint':
|
|
'Antialiasing + projeção global para bordas mais nítidas e uma visão realista do mundo.',
|
|
'settings.mapHighQualityWarning': 'Pode afetar o desempenho em dispositivos menos potentes.',
|
|
'settings.mapTipLabel': 'Dica:',
|
|
'settings.mapTip':
|
|
'Clique direito e arraste para girar/inclinar o mapa. Clique do meio para adicionar um local (o clique direito é reservado para rotação).',
|
|
'settings.saveMap': 'Salvar mapa',
|
|
'settings.apiKeys': 'Chaves de API',
|
|
'settings.mapsKey': 'Chave da API Google Maps',
|
|
'settings.mapsKeyHint': 'Para busca de lugares. Requer Places API (New). Obtenha em console.cloud.google.com',
|
|
'settings.weatherKey': 'Chave OpenWeatherMap',
|
|
'settings.weatherKeyHint': 'Para dados meteorológicos. Grátis em openweathermap.org/api',
|
|
'settings.keyPlaceholder': 'Digite a chave...',
|
|
'settings.configured': 'Configurada',
|
|
'settings.saveKeys': 'Salvar chaves',
|
|
'settings.display': 'Exibição',
|
|
'settings.colorMode': 'Tema de cores',
|
|
'settings.light': 'Claro',
|
|
'settings.dark': 'Escuro',
|
|
'settings.auto': 'Automático',
|
|
'settings.language': 'Idioma',
|
|
'settings.temperature': 'Unidade de temperatura',
|
|
'settings.distance': 'Unidade de distância',
|
|
'settings.timeFormat': 'Formato de hora',
|
|
'settings.blurBookingCodes': 'Ocultar códigos de reserva',
|
|
'settings.aiAlwaysRetry': 'Always retry booking imports with AI',
|
|
'settings.aiAlwaysRetryHint': 'When a file cannot be read by the standard parser, automatically retry it with AI.',
|
|
'settings.optimizeFromAccommodation': 'Otimizar rota a partir da hospedagem',
|
|
'settings.optimizeFromAccommodationHint':
|
|
'Ao otimizar um dia, comece a rota no hotel onde você acorda e termine no hotel em que você faz check-in à noite.',
|
|
'settings.notifications': 'Notificações',
|
|
'settings.notifyTripInvite': 'Convites de viagem',
|
|
'settings.notifyBookingChange': 'Alterações de reserva',
|
|
'settings.notifyTripReminder': 'Lembretes de viagem',
|
|
'settings.notifyTodoDue': 'Tarefa com vencimento',
|
|
'settings.notifyVacayInvite': 'Convites de fusão Vacay',
|
|
'settings.notifyPhotosShared': 'Fotos compartilhadas (Immich)',
|
|
'settings.notifyCollabMessage': 'Mensagens de chat (Colab)',
|
|
'settings.notifyPackingTagged': 'Lista de mala: atribuições',
|
|
'settings.notifyWebhook': 'Notificações webhook',
|
|
'settings.notificationsDisabled':
|
|
'As notificações não estão configuradas. Peça a um administrador para ativar notificações por e-mail ou webhook.',
|
|
'settings.notificationsActive': 'Canal ativo',
|
|
'settings.notificationsManagedByAdmin': 'Os eventos de notificação são configurados pelo administrador.',
|
|
'settings.on': 'Ligado',
|
|
'settings.off': 'Desligado',
|
|
'settings.account': 'Conta',
|
|
'settings.about': 'Sobre',
|
|
'settings.about.reportBug': 'Reportar um bug',
|
|
'settings.about.reportBugHint': 'Encontrou um problema? Nos avise',
|
|
'settings.about.featureRequest': 'Solicitar recurso',
|
|
'settings.about.featureRequestHint': 'Sugira um novo recurso',
|
|
'settings.about.wikiHint': 'Documentação e guias',
|
|
'settings.about.supporters.badge': 'Apoiadores Mensais',
|
|
'settings.about.supporters.title': 'Companheiros de viagem do TREK',
|
|
'settings.about.supporters.subtitle':
|
|
'Enquanto você planeja sua próxima rota, essas pessoas planejam junto o futuro do TREK. A contribuição mensal delas vai direto para o desenvolvimento e horas reais investidas — para o TREK continuar Open Source.',
|
|
'settings.about.supporters.since': 'apoiador desde {date}',
|
|
'settings.about.supporters.tierEmpty': 'Seja o primeiro',
|
|
'settings.about.supporter.tier.noReturnTicket': 'No Return Ticket',
|
|
'settings.about.supporter.tier.lostLuggageVip': 'Lost Luggage VIP',
|
|
'settings.about.supporter.tier.businessClassDreamer': 'Business Class Dreamer',
|
|
'settings.about.supporter.tier.budgetTraveller': 'Budget Traveller',
|
|
'settings.about.supporter.tier.hostelBunkmate': 'Hostel Bunkmate',
|
|
'settings.about.description':
|
|
'TREK é um planejador de viagens auto-hospedado que ajuda você a organizar suas viagens da primeira ideia à última lembrança. Planejamento diário, orçamento, listas de bagagem, fotos e muito mais — tudo em um só lugar, no seu próprio servidor.',
|
|
'settings.about.madeWith': 'Feito com',
|
|
'settings.about.madeBy': 'por Maurice e uma crescente comunidade open-source.',
|
|
'settings.username': 'Nome de usuário',
|
|
'settings.email': 'E-mail',
|
|
'settings.role': 'Função',
|
|
'settings.roleAdmin': 'Administrador',
|
|
'settings.oidcLinked': 'Vinculado a',
|
|
'settings.changePassword': 'Alterar senha',
|
|
'settings.currentPassword': 'Senha atual',
|
|
'settings.currentPasswordRequired': 'A senha atual é obrigatória',
|
|
'settings.newPassword': 'Nova senha',
|
|
'settings.confirmPassword': 'Confirmar nova senha',
|
|
'settings.updatePassword': 'Atualizar senha',
|
|
'settings.passwordRequired': 'Informe a senha atual e a nova',
|
|
'settings.passwordTooShort': 'A senha deve ter pelo menos 8 caracteres',
|
|
'settings.passwordMismatch': 'As senhas não coincidem',
|
|
'settings.passwordWeak': 'A senha deve ter maiúscula, minúscula, número e um caractere especial',
|
|
'settings.passwordChanged': 'Senha alterada com sucesso',
|
|
'settings.deleteAccount': 'Excluir conta',
|
|
'settings.deleteAccountTitle': 'Excluir sua conta?',
|
|
'settings.deleteAccountWarning':
|
|
'Sua conta e todas as viagens, lugares e arquivos serão excluídos permanentemente. Esta ação não pode ser desfeita.',
|
|
'settings.deleteAccountConfirm': 'Excluir permanentemente',
|
|
'settings.deleteBlockedTitle': 'Exclusão não permitida',
|
|
'settings.deleteBlockedMessage':
|
|
'Você é o único administrador. Promova outro usuário a administrador antes de excluir sua conta.',
|
|
'settings.roleUser': 'Usuário',
|
|
'settings.saveProfile': 'Salvar perfil',
|
|
'settings.toast.mapSaved': 'Configurações do mapa salvas',
|
|
'settings.toast.keysSaved': 'Chaves de API salvas',
|
|
'settings.toast.displaySaved': 'Configurações de exibição salvas',
|
|
'settings.toast.profileSaved': 'Perfil salvo',
|
|
'settings.uploadAvatar': 'Enviar foto do perfil',
|
|
'settings.removeAvatar': 'Remover foto do perfil',
|
|
'settings.avatarUploaded': 'Foto do perfil atualizada',
|
|
'settings.avatarRemoved': 'Foto do perfil removida',
|
|
'settings.avatarError': 'Falha no envio',
|
|
'settings.mfa.title': 'Autenticação em duas etapas (2FA)',
|
|
'settings.mfa.description':
|
|
'Adiciona uma segunda etapa ao entrar com e-mail e senha. Use um app autenticador (Google Authenticator, Authy, etc.).',
|
|
'settings.mfa.requiredByPolicy':
|
|
'O administrador exige autenticação em dois fatores. Configure um app autenticador abaixo antes de continuar.',
|
|
'settings.mfa.backupTitle': 'Códigos de backup',
|
|
'settings.mfa.backupDescription': 'Use estes códigos únicos se perder acesso ao app autenticador.',
|
|
'settings.mfa.backupWarning': 'Salve estes códigos agora. Cada código pode ser usado apenas uma vez.',
|
|
'settings.mfa.backupCopy': 'Copiar códigos',
|
|
'settings.mfa.backupDownload': 'Baixar TXT',
|
|
'settings.mfa.backupPrint': 'Imprimir / PDF',
|
|
'settings.mfa.backupCopied': 'Códigos de backup copiados',
|
|
'settings.mfa.enabled': 'O 2FA está ativado na sua conta.',
|
|
'settings.mfa.disabled': 'O 2FA não está ativado.',
|
|
'settings.mfa.setup': 'Configurar autenticador',
|
|
'settings.mfa.scanQr': 'Leia este QR code no app ou digite o segredo manualmente.',
|
|
'settings.mfa.secretLabel': 'Chave secreta (entrada manual)',
|
|
'settings.mfa.codePlaceholder': 'Código de 6 dígitos',
|
|
'settings.mfa.enable': 'Ativar 2FA',
|
|
'settings.mfa.cancelSetup': 'Cancelar',
|
|
'settings.mfa.disableTitle': 'Desativar 2FA',
|
|
'settings.mfa.disableHint': 'Digite sua senha e um código atual do autenticador.',
|
|
'settings.mfa.disable': 'Desativar 2FA',
|
|
'settings.mfa.toastEnabled': 'Autenticação em duas etapas ativada',
|
|
'settings.mfa.toastDisabled': 'Autenticação em duas etapas desativada',
|
|
'settings.mfa.demoBlocked': 'Indisponível no modo demonstração',
|
|
'settings.mcp.title': 'Configuração MCP',
|
|
'settings.mcp.endpoint': 'Endpoint MCP',
|
|
'settings.mcp.clientConfig': 'Configuração do cliente',
|
|
'settings.mcp.clientConfigHint':
|
|
'Substitua <your_token> por um token de API da lista abaixo. O caminho para o npx pode precisar ser ajustado para o seu sistema (ex.: C:\\PROGRA~1\\nodejs\\npx.cmd no Windows).',
|
|
'settings.mcp.clientConfigHintOAuth':
|
|
'Substitua <your_client_id> e <your_client_secret> pelas credenciais exibidas no cliente OAuth 2.1 criado acima. O mcp-remote abrirá seu navegador para concluir a autorização na primeira conexão. O caminho para o npx pode precisar ser ajustado para seu sistema (ex.: C:\\PROGRA~1\\nodejs\\npx.cmd no Windows).',
|
|
'settings.mcp.copy': 'Copiar',
|
|
'settings.mcp.copied': 'Copiado!',
|
|
'settings.mcp.apiTokens': 'Tokens de API',
|
|
'settings.mcp.createToken': 'Criar novo token',
|
|
'settings.mcp.noTokens': 'Nenhum token ainda. Crie um para conectar clientes MCP.',
|
|
'settings.mcp.tokenCreatedAt': 'Criado em',
|
|
'settings.mcp.tokenUsedAt': 'Usado em',
|
|
'settings.mcp.deleteTokenTitle': 'Excluir token',
|
|
'settings.mcp.deleteTokenMessage':
|
|
'Este token deixará de funcionar imediatamente. Qualquer cliente MCP que o utilize perderá o acesso.',
|
|
'settings.mcp.modal.createTitle': 'Criar token de API',
|
|
'settings.mcp.modal.tokenName': 'Nome do token',
|
|
'settings.mcp.modal.tokenNamePlaceholder': 'ex.: Claude Desktop, Notebook do trabalho',
|
|
'settings.mcp.modal.creating': 'Criando…',
|
|
'settings.mcp.modal.create': 'Criar token',
|
|
'settings.mcp.modal.createdTitle': 'Token criado',
|
|
'settings.mcp.modal.createdWarning':
|
|
'Este token será exibido apenas uma vez. Copie e guarde agora — não poderá ser recuperado.',
|
|
'settings.mcp.modal.done': 'Concluído',
|
|
'settings.mcp.toast.created': 'Token criado',
|
|
'settings.mcp.toast.createError': 'Falha ao criar token',
|
|
'settings.mcp.toast.deleted': 'Token excluído',
|
|
'settings.mcp.toast.deleteError': 'Falha ao excluir token',
|
|
'settings.mcp.apiTokensDeprecated':
|
|
'Os tokens de API estão obsoletos e serão removidos em uma versão futura. Por favor, use Clientes OAuth 2.1.',
|
|
'settings.oauth.clients': 'Clientes OAuth 2.1',
|
|
'settings.oauth.clientsHint':
|
|
'Registre clientes OAuth 2.1 para permitir que aplicações MCP de terceiros (Claude Web, Cursor, etc.) se conectem sem tokens estáticos.',
|
|
'settings.oauth.createClient': 'Novo cliente',
|
|
'settings.oauth.noClients': 'Nenhum cliente OAuth registrado.',
|
|
'settings.oauth.clientId': 'ID do cliente',
|
|
'settings.oauth.clientSecret': 'Segredo do cliente',
|
|
'settings.oauth.deleteClient': 'Excluir cliente',
|
|
'settings.oauth.deleteClientMessage':
|
|
'Este cliente e todas as sessões ativas serão removidos permanentemente. Qualquer aplicação que o utilize perderá o acesso imediatamente.',
|
|
'settings.oauth.rotateSecret': 'Renovar segredo',
|
|
'settings.oauth.rotateSecretMessage':
|
|
'Um novo segredo de cliente será gerado e todas as sessões existentes serão invalidadas imediatamente. Atualize sua aplicação antes de fechar esta janela.',
|
|
'settings.oauth.rotateSecretConfirm': 'Renovar',
|
|
'settings.oauth.rotateSecretConfirming': 'Renovando…',
|
|
'settings.oauth.rotateSecretDoneTitle': 'Novo segredo gerado',
|
|
'settings.oauth.rotateSecretDoneWarning':
|
|
'Este segredo é exibido apenas uma vez. Copie-o agora e atualize sua aplicação — todas as sessões anteriores foram invalidadas.',
|
|
'settings.oauth.activeSessions': 'Sessões OAuth ativas',
|
|
'settings.oauth.sessionScopes': 'Escopos',
|
|
'settings.oauth.sessionExpires': 'Expira',
|
|
'settings.oauth.revoke': 'Revogar',
|
|
'settings.oauth.revokeSession': 'Revogar sessão',
|
|
'settings.oauth.revokeSessionMessage': 'Isso revogará imediatamente o acesso desta sessão OAuth.',
|
|
'settings.oauth.modal.createTitle': 'Registrar cliente OAuth',
|
|
'settings.oauth.modal.presets': 'Configurações rápidas',
|
|
'settings.oauth.modal.clientName': 'Nome da aplicação',
|
|
'settings.oauth.modal.clientNamePlaceholder': 'ex.: Claude Web, Meu app MCP',
|
|
'settings.oauth.modal.redirectUris': 'URIs de redirecionamento',
|
|
'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth',
|
|
'settings.oauth.modal.redirectUrisHint':
|
|
'Uma URI por linha. HTTPS obrigatório (localhost isento). Correspondência exata.',
|
|
'settings.oauth.modal.scopes': 'Escopos permitidos',
|
|
'settings.oauth.modal.scopesHint':
|
|
'list_trips e get_trip_summary estão sempre disponíveis — sem escopo necessário. Permitem à IA descobrir IDs de viagem.',
|
|
'settings.oauth.modal.selectAll': 'Selecionar tudo',
|
|
'settings.oauth.modal.deselectAll': 'Desmarcar tudo',
|
|
'settings.oauth.modal.creating': 'Registrando…',
|
|
'settings.oauth.modal.create': 'Registrar cliente',
|
|
'settings.oauth.modal.createdTitle': 'Cliente registrado',
|
|
'settings.oauth.modal.createdWarning':
|
|
'O segredo do cliente é exibido apenas uma vez. Copie-o agora — não pode ser recuperado.',
|
|
'settings.oauth.toast.createError': 'Falha ao registrar cliente OAuth',
|
|
'settings.oauth.toast.deleted': 'Cliente OAuth excluído',
|
|
'settings.oauth.toast.deleteError': 'Falha ao excluir cliente OAuth',
|
|
'settings.oauth.toast.revoked': 'Sessão revogada',
|
|
'settings.oauth.toast.revokeError': 'Falha ao revogar sessão',
|
|
'settings.oauth.toast.rotateError': 'Falha ao renovar segredo do cliente',
|
|
'settings.oauth.modal.machineClient': 'Cliente de máquina (sem login no navegador)',
|
|
'settings.oauth.modal.machineClientHint':
|
|
'Usa o grant client_credentials — sem URIs de redirecionamento. O token é emitido diretamente via client_id + client_secret e age como você dentro dos escopos selecionados.',
|
|
'settings.oauth.modal.machineClientUsage':
|
|
'Obter token: POST /oauth/token com grant_type=client_credentials, client_id e client_secret. Sem navegador, sem refresh token.',
|
|
'settings.oauth.badge.machine': 'máquina',
|
|
'settings.mustChangePassword': 'Você deve alterar sua senha antes de continuar. Defina uma nova senha abaixo.',
|
|
'settings.bookingLabels': 'Rótulos das rotas de reservas',
|
|
'settings.bookingLabelsHint': 'Mostra nomes de estações / aeroportos no mapa. Desativado, apenas o ícone aparece.',
|
|
'settings.notifyVersionAvailable': 'Nova versão disponível',
|
|
'settings.notificationPreferences.noChannels':
|
|
'Nenhum canal de notificação configurado. Peça a um administrador para configurar notificações por e-mail ou webhook.',
|
|
'settings.webhookUrl.label': 'URL do webhook',
|
|
'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...',
|
|
'settings.webhookUrl.hint':
|
|
'Insira a URL do seu webhook do Discord, Slack ou personalizado para receber notificações.',
|
|
'settings.webhookUrl.saved': 'URL do webhook salva',
|
|
'settings.webhookUrl.test': 'Testar',
|
|
'settings.webhookUrl.testSuccess': 'Webhook de teste enviado com sucesso',
|
|
'settings.webhookUrl.testFailed': 'Falha no webhook de teste',
|
|
'settings.ntfyUrl.topicLabel': 'Tópico Ntfy',
|
|
'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts',
|
|
'settings.ntfyUrl.serverLabel': 'URL do servidor Ntfy (opcional)',
|
|
'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh',
|
|
'settings.ntfyUrl.hint':
|
|
'Insira seu tópico Ntfy para receber notificações push. Deixe o servidor em branco para usar o padrão configurado pelo seu administrador.',
|
|
'settings.ntfyUrl.tokenLabel': 'Token de acesso (opcional)',
|
|
'settings.ntfyUrl.tokenHint': 'Necessário para tópicos protegidos por senha.',
|
|
'settings.ntfyUrl.saved': 'Configurações do Ntfy salvas',
|
|
'settings.ntfyUrl.test': 'Testar',
|
|
'settings.ntfyUrl.testSuccess': 'Notificação de teste do Ntfy enviada com sucesso',
|
|
'settings.ntfyUrl.testFailed': 'Falha na notificação de teste do Ntfy',
|
|
'settings.ntfyUrl.tokenCleared': 'Token de acesso removido',
|
|
'settings.notificationPreferences.inapp': 'In-App',
|
|
'settings.notificationPreferences.notConfigured': 'Ainda não configurado — configure nas definições do plugin',
|
|
'settings.plugins.actions': 'Ações',
|
|
'settings.plugins.actions.confirm': 'Executar esta ação?',
|
|
'settings.notificationPreferences.sendTest': 'Enviar teste',
|
|
'settings.notificationPreferences.configure': 'Configurar',
|
|
'settings.notificationPreferences.testSuccess': 'Notificação de teste enviada.',
|
|
'settings.notificationPreferences.testFailed': 'Falha no teste.',
|
|
'settings.notificationPreferences.pluginConfigured':
|
|
'Configurado. Gerencie suas credenciais na página de configurações do plugin.',
|
|
'settings.notificationPreferences.webhook': 'Webhook',
|
|
'settings.notificationPreferences.email': 'Email',
|
|
'settings.notificationPreferences.ntfy': 'Ntfy',
|
|
'settings.currency': 'Currency',
|
|
'settings.currencyHint': 'All amounts in Costs are converted to and shown in this currency.',
|
|
'settings.currencyTrip': 'Moeda da viagem',
|
|
'settings.passkey.title': 'Passkeys',
|
|
'settings.passkey.description':
|
|
'Entre mais rápido e com proteção contra phishing usando uma passkey — sua impressão digital, rosto, PIN ou uma chave de segurança física. Sua senha continua disponível como reserva.',
|
|
'settings.passkey.notConfigured':
|
|
'As passkeys estão ativadas, mas ainda não foram totalmente configuradas neste servidor. Peça ao administrador para definir o domínio WebAuthn.',
|
|
'settings.passkey.add': 'Adicionar uma passkey',
|
|
'settings.passkey.addTitle': 'Adicionar uma passkey',
|
|
'settings.passkey.passwordPrompt': 'Confirme sua senha atual e depois siga as instruções do seu dispositivo.',
|
|
'settings.passkey.passwordRequired': 'A senha atual é obrigatória.',
|
|
'settings.passkey.namePlaceholder': 'Nome (opcional, ex.: "iPhone")',
|
|
'settings.passkey.addedToast': 'Passkey adicionada',
|
|
'settings.passkey.added': 'Adicionada',
|
|
'settings.passkey.addError': 'Não foi possível adicionar a passkey',
|
|
'settings.passkey.cancelled': 'Configuração da passkey cancelada',
|
|
'settings.passkey.deleted': 'Passkey removida',
|
|
'settings.passkey.deleteConfirm': 'Remover esta passkey? Confirme com sua senha.',
|
|
'settings.passkey.rename': 'Renomear',
|
|
'settings.passkey.defaultName': 'Passkey',
|
|
'settings.passkey.synced': 'Sincronizada',
|
|
'settings.passkey.deviceBound': 'Este dispositivo',
|
|
'settings.passkey.lastUsed': 'Último uso',
|
|
'settings.passkey.neverUsed': 'Nunca usada',
|
|
'settings.mapPoiPill': 'Explorar lugares no mapa',
|
|
'settings.mapPoiPillHint':
|
|
'Mostrar uma etiqueta de categoria no mapa da viagem para encontrar restaurantes, hotéis e mais por perto a partir do OpenStreetMap.',
|
|
'settings.airtrail.title': 'AirTrail',
|
|
'settings.airtrail.hint':
|
|
'Conecte seu AirTrail auto-hospedado para importar e sincronizar voos. Crie uma chave de API no AirTrail em Configurações → Segurança.',
|
|
'settings.airtrail.url': 'URL da instância',
|
|
'settings.airtrail.apiKey': 'Chave de API',
|
|
'settings.airtrail.apiKeyPlaceholder': 'Chave de API Bearer',
|
|
'settings.airtrail.apiKeyHint': 'Gerada no AirTrail em Configurações → Segurança. Armazenada de forma criptografada.',
|
|
'settings.airtrail.allowInsecureTls': 'Permitir certificados autoassinados',
|
|
'settings.airtrail.allowInsecureTlsHint': 'Ative apenas para uma instância confiável na sua própria rede.',
|
|
'settings.airtrail.writeBack': 'Gravar alterações de volta no AirTrail',
|
|
'settings.airtrail.writeBackHint':
|
|
'Desativado por padrão: o AirTrail é a fonte da verdade e o TREK apenas lê dele. Ative para enviar ao AirTrail as alterações feitas no TREK.',
|
|
'settings.airtrail.connected': 'Conectado',
|
|
'settings.airtrail.notConnected': 'Não conectado',
|
|
'settings.airtrail.toast.saved': 'Conexão com o AirTrail salva',
|
|
'settings.airtrail.toast.saveError': 'Não foi possível salvar a conexão',
|
|
'settings.airtrail.test.button': 'Testar conexão',
|
|
'settings.airtrail.test.success': 'Conectado — {count} voo(s) encontrado(s)',
|
|
'settings.airtrail.test.failed': 'Falha na conexão',
|
|
'settings.aiParsing.title': 'Análise por IA',
|
|
'settings.aiParsing.hint':
|
|
'Use seu próprio modelo de IA para extrair reservas dos arquivos enviados. Isso se aplica apenas quando o administrador não configurou um modelo para toda a instância.',
|
|
'settings.aiParsing.provider': 'Provedor',
|
|
'settings.aiParsing.providerLocal': 'Local (Ollama)',
|
|
'settings.aiParsing.providerOpenai': 'OpenAI',
|
|
'settings.aiParsing.providerAnthropic': 'Anthropic',
|
|
'settings.aiParsing.model': 'Modelo',
|
|
'settings.aiParsing.baseUrl': 'URL base',
|
|
'settings.aiParsing.baseUrlHint':
|
|
'Onde o modelo é executado — um servidor Ollama local ou um endpoint compatível com OpenAI.',
|
|
'settings.aiParsing.apiKey': 'Chave de API',
|
|
'settings.aiParsing.apiKeyHint': 'Armazenada de forma criptografada. Deixe em branco para manter a chave atual.',
|
|
'settings.aiParsing.multimodal': 'Enviar documentos como imagens',
|
|
'settings.aiParsing.multimodalHint':
|
|
'Para modelos com capacidade de visão — envia o PDF original em vez do texto extraído.',
|
|
'settings.aiParsing.toast.saved': 'Configurações de IA salvas',
|
|
'settings.aiParsing.toast.saveError': 'Não foi possível salvar as configurações de IA',
|
|
'settings.tabs.appearance': 'Appearance',
|
|
'settings.appearance.theme': 'Theme',
|
|
'settings.appearance.scheme': 'Color scheme',
|
|
'settings.appearance.scheme.default': 'Default',
|
|
'settings.appearance.scheme.highContrast': 'High contrast',
|
|
'settings.appearance.scheme.indigo': 'Indigo',
|
|
'settings.appearance.scheme.teal': 'Teal',
|
|
'settings.appearance.scheme.rose': 'Rose',
|
|
'settings.appearance.scheme.amber': 'Amber',
|
|
'settings.appearance.scheme.violet': 'Violet',
|
|
'settings.appearance.scheme.custom': 'Custom',
|
|
'settings.appearance.customAccent': 'Custom accent',
|
|
'settings.appearance.contrastOk': 'Good contrast',
|
|
'settings.appearance.contrastLow': 'Low contrast',
|
|
'settings.appearance.readability': 'Readability',
|
|
'settings.appearance.transparency': 'Transparency',
|
|
'settings.appearance.transparencyHint':
|
|
'Glassy translucent surfaces. Turn off for solid, higher-contrast backgrounds.',
|
|
'settings.appearance.reduceMotion': 'Reduce motion',
|
|
'settings.appearance.reduceMotionHint': 'Minimize animations and transitions.',
|
|
'settings.appearance.density': 'Density',
|
|
'settings.appearance.comfortable': 'Comfortable',
|
|
'settings.appearance.compact': 'Compact',
|
|
'settings.appearance.textSize': 'Text size',
|
|
'settings.appearance.advancedTextSizes': 'Advanced text sizes',
|
|
'settings.appearance.hideAdvanced': 'Hide advanced',
|
|
'settings.appearance.tier.title': 'Titles',
|
|
'settings.appearance.tier.subtitle': 'Subtitles',
|
|
'settings.appearance.tier.body': 'Body',
|
|
'settings.appearance.tier.caption': 'Captions',
|
|
'settings.appearance.dashboardWidgets': 'Dashboard widgets',
|
|
'settings.appearance.dashboardWidgetsHint': 'Show or hide dashboard widgets independently on desktop and mobile.',
|
|
'settings.appearance.desktop': 'Desktop',
|
|
'settings.appearance.mobile': 'Mobile',
|
|
'settings.appearance.widget.sidebar': 'Right sidebar',
|
|
'settings.appearance.widget.currency': 'Currency',
|
|
'settings.appearance.widget.collections': 'Coleções',
|
|
'settings.appearance.widget.timezones': 'Timezones',
|
|
'settings.appearance.widget.upcomingReservations': 'Upcoming reservations',
|
|
'settings.appearance.widget.atlas': 'Atlas / countries',
|
|
'settings.appearance.widget.tripsTotal': 'Trips total',
|
|
'settings.appearance.widget.daysTraveled': 'Days traveled',
|
|
'settings.appearance.widget.distanceFlown': 'Distance flown',
|
|
'settings.appearance.reset': 'Reset to defaults',
|
|
'settings.appearance.group.belowHero': 'Below the hero',
|
|
'settings.appearance.group.bottomOfPage': 'Bottom of page',
|
|
'settings.appearance.sidebarHint': 'The whole right column. Turn off and the dashboard centers.',
|
|
'settings.appearance.densityHint':
|
|
'Compact tightens spacing and padding for a denser layout that fits more on screen.',
|
|
'settings.appearance.textSizeAll': 'Everything',
|
|
'settings.appearance.perSize': 'Adjust each size separately',
|
|
'settings.appearance.size.large': 'Large',
|
|
'settings.appearance.size.medium': 'Medium',
|
|
'settings.appearance.size.normal': 'Normal',
|
|
'settings.appearance.size.small': 'Small',
|
|
'settings.appearance.preview.large': 'Large heading',
|
|
'settings.appearance.preview.medium': 'Medium subtitle',
|
|
'settings.appearance.preview.normal': 'Normal body text',
|
|
'settings.appearance.preview.small': 'Small caption / address',
|
|
'settings.appearance.example.large': 'Headings, big numbers',
|
|
'settings.appearance.example.medium': 'Sub-headings',
|
|
'settings.appearance.example.normal': 'Place names, descriptions',
|
|
'settings.appearance.example.small': 'Addresses, labels',
|
|
'settings.appearance.experimental': 'Experimental',
|
|
'settings.general.languageRegion': 'Language & region',
|
|
'settings.general.travelMap': 'Travel & map',
|
|
|
|
// ── Offline (#1135)
|
|
'settings.offline.cache.title': 'Cache offline',
|
|
'settings.offline.mode.title': 'Modo offline',
|
|
'settings.offline.mode.force': 'Forçar modo offline',
|
|
'settings.offline.mode.forceHint':
|
|
'Trabalhe apenas com os dados em cache e enfileire suas alterações. Desative para reconectar e sincronizar.',
|
|
'settings.offline.mode.active':
|
|
'O modo offline está ligado — suas alterações estão na fila e serão sincronizadas quando você o desativar.',
|
|
'settings.offline.prepare.title': 'Preparar para uso offline',
|
|
'settings.offline.prepare.hint':
|
|
'Baixe tudo o que você precisa — dados da viagem, documentos e blocos do mapa — antes de perder a conexão.',
|
|
'settings.offline.prepare.button': 'Baixar para uso offline',
|
|
'settings.offline.prepare.running': 'Baixando…',
|
|
'settings.offline.prepare.done': 'Pronto para uso offline',
|
|
'settings.offline.prepare.phase.trips': 'Dados da viagem',
|
|
'settings.offline.prepare.phase.files': 'Documentos',
|
|
'settings.offline.prepare.phase.tiles': 'Blocos do mapa',
|
|
'settings.offline.resync': 'Sincronizar agora',
|
|
'settings.offline.resyncing': 'Sincronizando…',
|
|
'settings.offline.storage.title': 'O que armazenar offline',
|
|
'settings.offline.storage.tiles': 'Armazenar blocos do mapa offline',
|
|
'settings.offline.storage.tilesHint':
|
|
'Os blocos do mapa usam mais armazenamento. Desative para manter offline apenas os dados da viagem e os documentos.',
|
|
'settings.offline.storage.tripsTitle': 'Viagens',
|
|
'settings.offline.storage.tripOn': 'Armazenada offline',
|
|
'settings.offline.storage.tripOff': 'Não armazenada',
|
|
'settings.offline.clear': 'Limpar cache',
|
|
'settings.offline.clearConfirm':
|
|
'Limpar todos os dados de viagem offline? Você pode sincronizar novamente a qualquer momento quando estiver online.',
|
|
'settings.offline.stats.trips': 'Viagens em cache',
|
|
'settings.offline.stats.pending': 'Alterações pendentes',
|
|
'settings.offline.stats.failed': 'Alterações com falha',
|
|
'settings.offline.stats.conflicts': 'Conflitos',
|
|
'settings.offline.empty': 'Nenhuma viagem em cache ainda. Conecte-se à internet para sincronizar.',
|
|
'settings.offline.loading': 'Carregando…',
|
|
'settings.offline.conflicts.title': 'Conflitos de sincronização',
|
|
'settings.offline.conflicts.hint':
|
|
'As alterações que você fez offline conflitam com alterações mais recentes no servidor. Escolha qual versão manter.',
|
|
'settings.offline.conflicts.keepMine': 'Manter a minha',
|
|
'settings.offline.conflicts.keepServer': 'Manter a do servidor',
|
|
'settings.offline.conflicts.mine': 'Sua versão',
|
|
'settings.offline.conflicts.server': 'Versão do servidor',
|
|
'settings.offline.conflicts.item': 'Alteração em “{name}”',
|
|
'settings.offline.conflicts.strategyTitle': 'Quando ocorrer um conflito',
|
|
'settings.offline.conflicts.strategy.ask': 'Perguntar sempre',
|
|
'settings.offline.conflicts.strategy.mine': 'Sempre manter a minha versão',
|
|
'settings.offline.conflicts.strategy.server': 'Sempre manter a versão do servidor',
|
|
'settings.offline.banner.offline': 'Offline',
|
|
'settings.offline.banner.forced': 'Modo offline',
|
|
'settings.offline.banner.queued': 'Offline · {count} na fila',
|
|
'settings.offline.banner.syncing': 'Sincronizando {count}…',
|
|
'settings.offline.banner.failed': 'Falha ao sincronizar: {count}',
|
|
'settings.offline.banner.conflicts': 'Conflitos: {count}',
|
|
'settings.pluginActivity.title': 'Atividade dos plugins',
|
|
'settings.pluginActivity.description': 'Cada ação que um plugin realizou em seu nome, das mais recentes primeiro.',
|
|
'settings.pluginActivity.empty': 'Ainda não há atividade de plugins.',
|
|
'settings.pluginActivity.refresh': 'Atualizar',
|
|
'settings.pluginActivity.columns.plugin': 'Plugin',
|
|
'settings.pluginActivity.columns.action': 'Ação',
|
|
'settings.pluginActivity.columns.resource': 'Recurso',
|
|
'settings.pluginActivity.columns.when': 'Quando',
|
|
'settings.pluginActivity.columns.status': 'Resultado',
|
|
'settings.alwaysShowRoutes': 'Sempre mostrar rotas de reserva',
|
|
'settings.alwaysShowRoutesHint': 'Mostra automaticamente no mapa a rota de cada voo, trem e outra reserva, sem precisar ativar item por item.',
|
|
};
|
|
|
|
export default settings;
|