{ "language": { "name": "Português" }, "app": { "title": "DeFlock" }, "about": { "title": "DeFlock - Transparência da Vigilância", "description": "DeFlock é um aplicativo móvel focado na privacidade para mapear infraestrutura de vigilância pública usando OpenStreetMap. Documente câmeras, ALPRs, detectores de tiros e outros dispositivos de vigilância em sua comunidade para tornar essa infraestrutura visível e pesquisável.", "features": "• Mapeamento com capacidade offline com áreas para download\n• Upload direto para OpenStreetMap com OAuth2\n• Perfis integrados para principais fabricantes\n• Respeitoso à privacidade - nenhum dado do usuário coletado\n• Múltiplos provedores de mapas (OSM, imagens de satélite)", "initiative": "Parte da iniciativa mais ampla DeFlock para promover transparência na vigilância.", "footer": "Visite: deflock.me\nConstruído com Flutter • Código Aberto" }, "welcome": { "title": "Bem-vindo ao DeFlock", "description": "DeFlock foi fundado na ideia de que ferramentas de vigilância pública devem ser transparentes. Dentro deste aplicativo móvel, como no site, você poderá ver a localização de ALPRs e outras infraestruturas de vigilância em sua área local e no exterior.", "mission": "No entanto, este projeto não é automatizado; precisamos de todos nós para tornar este projeto melhor. Ao visualizar o mapa, você pode tocar em \"Novo Nó\" para adicionar uma instalação anteriormente desconhecida. Com sua ajuda, podemos alcançar nosso objetivo de maior transparência e conscientização pública sobre infraestrutura de vigilância.", "firsthandKnowledge": "IMPORTANTE: Contribua apenas com dispositivos de vigilância que você observou pessoalmente em primeira mão. As políticas do OpenStreetMap e Google proíbem o uso de fontes como imagens do Street View para contribuições. Suas contribuições devem ser baseadas em suas próprias observações diretas e presenciais.", "privacy": "Nota de Privacidade: Este aplicativo funciona inteiramente localmente em seu dispositivo e usa a API de terceiros OpenStreetMap apenas para armazenamento e envio de dados. DeFlock não coleta nem armazena qualquer tipo de dados do usuário e não é responsável pelo gerenciamento de contas.", "tileNote": "NOTA: Os tiles gratuitos de mapa do OpenStreetMap podem ser muito lentos para carregar. Provedores alternativos de tiles podem ser configurados em Configurações > Avançado.", "moreInfo": "Você pode encontrar mais links em Configurações > Sobre.", "dontShowAgain": "Não mostrar esta mensagem de boas-vindas novamente", "getStarted": "Vamos começar com o DeFlock!" }, "actions": { "tagNode": "Novo Nó", "download": "Baixar", "settings": "Configurações", "edit": "Editar", "delete": "Excluir", "cancel": "Cancelar", "ok": "OK", "close": "Fechar", "submit": "Enviar", "saveEdit": "Salvar Edição", "clear": "Limpar", "viewOnOSM": "Ver no OSM", "advanced": "Avançado", "useAdvancedEditor": "Usar Editor Avançado" }, "followMe": { "off": "Ativar seguir-me", "follow": "Ativar seguir-me (rotação)", "rotating": "Desativar seguir-me" }, "settings": { "title": "Configurações", "language": "Idioma", "systemDefault": "Padrão do Sistema", "aboutInfo": "Sobre / Informações", "aboutThisApp": "Sobre este App", "aboutSubtitle": "Informações do aplicativo e créditos", "languageSubtitle": "Escolha seu idioma preferido", "maxNodes": "Máx. de nós desenhados", "maxNodesSubtitle": "Definir um limite superior para o número de nós no mapa (padrão: 250).", "maxNodesWarning": "Você provavelmente não quer fazer isso a menos que tenha certeza absoluta de que tem uma boa razão para isso.", "offlineMode": "Modo Offline", "offlineModeSubtitle": "Desabilitar todas as requisições de rede exceto para áreas locais/offline.", "pauseQueueProcessing": "Pausar Fila de Upload", "pauseQueueProcessingSubtitle": "Parar upload de alterações na fila mantendo acesso a dados ao vivo.", "offlineModeWarningTitle": "Downloads Ativos", "offlineModeWarningMessage": "Ativar o modo offline cancelará qualquer download de área ativo. Deseja continuar?", "enableOfflineMode": "Ativar Modo Offline", "profiles": "Perfis", "profilesSubtitle": "Gerenciar perfis de nós e operadores", "offlineSettings": "Configurações Offline", "offlineSettingsSubtitle": "Gerenciar modo offline e áreas baixadas", "advancedSettings": "Configurações Avançadas", "advancedSettingsSubtitle": "Configurações de desempenho, alertas e provedores de mapas", "proximityAlerts": "Alertas de Proximidade", "networkStatusIndicator": "Indicador de Status de Rede" }, "proximityAlerts": { "getNotified": "Receba notificações ao se aproximar de dispositivos de vigilância", "batteryUsage": "Usa bateria extra para monitoramento contínuo de localização", "notificationsEnabled": "✓ Notificações habilitadas", "notificationsDisabled": "⚠ Notificações desabilitadas", "permissionRequired": "Permissão de notificação necessária", "permissionExplanation": "Notificações push estão desabilitadas. Você só verá alertas dentro do app e não será notificado quando o app estiver em segundo plano.", "enableNotifications": "Habilitar Notificações", "checkingPermissions": "Verificando permissões...", "alertDistance": "Distância de alerta: ", "meters": "metros", "rangeInfo": "Faixa: {}-{} metros (padrão: {})" }, "node": { "title": "Nó #{}", "tagSheetTitle": "Tags do Dispositivo de Vigilância", "queuedForUpload": "Nó na fila para envio", "editQueuedForUpload": "Edição de nó na fila para envio", "deleteQueuedForUpload": "Exclusão de nó na fila para envio", "confirmDeleteTitle": "Excluir Nó", "confirmDeleteMessage": "Tem certeza de que deseja excluir o nó #{}? Esta ação não pode ser desfeita." }, "addNode": { "profile": "Perfil", "selectProfile": "Selecionar um perfil...", "profileRequired": "Por favor, selecione um perfil para continuar.", "direction": "Direção {}°", "profileNoDirectionInfo": "Este perfil não requer uma direção.", "mustBeLoggedIn": "Você deve estar logado para enviar novos nós. Por favor, faça login via Configurações.", "enableSubmittableProfile": "Ative um perfil enviável nas Configurações para enviar novos nós.", "profileViewOnlyWarning": "Este perfil é apenas para visualização do mapa. Por favor, selecione um perfil enviável para enviar novos nós.", "refineTags": "Refinar Tags", "refineTagsWithProfile": "Refinar Tags ({})" }, "editNode": { "title": "Editar Nó #{}", "profile": "Perfil", "selectProfile": "Selecionar um perfil...", "profileRequired": "Por favor, selecione um perfil para continuar.", "direction": "Direção {}°", "profileNoDirectionInfo": "Este perfil não requer uma direção.", "temporarilyDisabled": "As edições foram temporariamente desabilitadas enquanto resolvemos um bug - desculpe - volte em breve.", "mustBeLoggedIn": "Você deve estar logado para editar nós. Por favor, faça login via Configurações.", "sandboxModeWarning": "Não é possível enviar edições de nós de produção para o sandbox. Mude para o modo Produção nas Configurações para editar nós.", "enableSubmittableProfile": "Ative um perfil enviável nas Configurações para editar nós.", "profileViewOnlyWarning": "Este perfil é apenas para visualização do mapa. Por favor, selecione um perfil enviável para editar nós.", "cannotMoveConstrainedNode": "Não é possível mover esta câmera - ela está conectada a outro elemento do mapa (OSM way/relation). Você ainda pode editar suas tags e direção.", "extractFromWay": "Extrair nó do way/relation", "extractFromWaySubtitle": "Criar novo nó com as mesmas tags, permitir mover para nova localização", "refineTags": "Refinar Tags", "refineTagsWithProfile": "Refinar Tags ({})" }, "download": { "title": "Baixar Área do Mapa", "maxZoomLevel": "Nível máx. de zoom", "storageEstimate": "Estimativa de armazenamento:", "tilesAndSize": "{} tiles, {} MB", "minZoom": "Zoom mín.:", "maxRecommendedZoom": "Zoom máx. recomendado: Z{}", "withinTileLimit": "Dentro do limite de {} tiles", "exceedsTileLimit": "A seleção atual excede o limite de {} tiles", "offlineModeWarning": "Downloads desabilitados no modo offline. Desative o modo offline para baixar novas áreas.", "downloadStarted": "Download iniciado! Buscando tiles e nós...", "downloadFailed": "Falha ao iniciar o download: {}" }, "uploadMode": { "title": "Destino do Upload", "subtitle": "Escolha onde as câmeras são enviadas", "production": "Produção", "sandbox": "Sandbox", "simulate": "Simular", "productionDescription": "Enviar para o banco de dados OSM ao vivo (visível para todos os usuários)", "sandboxDescription": "Uploads vão para o Sandbox OSM (seguro para testes, redefine regularmente).", "simulateDescription": "Simular uploads (não contacta servidores OSM)" }, "auth": { "osmAccountTitle": "Conta OpenStreetMap", "osmAccountSubtitle": "Gerencie seu login OSM e visualize suas contribuições", "loggedInAs": "Logado como {}", "loginToOSM": "Fazer login no OpenStreetMap", "tapToLogout": "Toque para sair", "requiredToSubmit": "Necessário para enviar dados de câmeras", "loggedOut": "Deslogado", "testConnection": "Testar Conexão", "testConnectionSubtitle": "Verificar se as credenciais OSM estão funcionando", "connectionOK": "Conexão OK - credenciais são válidas", "connectionFailed": "Conexão falhou - por favor, faça login novamente", "viewMyEdits": "Ver Minhas Edições no OSM", "viewMyEditsSubtitle": "Ver seu histórico de edições no OpenStreetMap", "aboutOSM": "Sobre OpenStreetMap", "aboutOSMDescription": "OpenStreetMap é um projeto de mapeamento colaborativo de código aberto onde os contribuintes criam e mantêm um mapa gratuito e editável do mundo. Suas contribuições de dispositivos de vigilância ajudam a tornar esta infraestrutura visível e pesquisável.", "visitOSM": "Visitar OpenStreetMap", "deleteAccount": "Excluir Conta OSM", "deleteAccountSubtitle": "Gerencie sua conta OpenStreetMap", "deleteAccountExplanation": "Para excluir sua conta OpenStreetMap, você precisará visitar o site do OpenStreetMap. Isso removerá permanentemente sua conta OSM e todos os dados associados.", "deleteAccountWarning": "Aviso: Esta ação não pode ser desfeita e excluirá permanentemente sua conta OSM.", "goToOSM": "Ir para OpenStreetMap" }, "queue": { "title": "Fila de Upload", "subtitle": "Gerenciar uploads pendentes de dispositivos de vigilância", "pendingUploads": "Uploads pendentes: {}", "pendingItemsCount": "Itens Pendentes: {}", "nothingInQueue": "Nada na fila", "simulateModeEnabled": "Modo simulação ativado – uploads simulados", "sandboxMode": "Modo sandbox – uploads vão para o Sandbox OSM", "tapToViewQueue": "Toque para ver a fila", "clearUploadQueue": "Limpar Fila de Upload", "removeAllPending": "Remover todos os {} uploads pendentes", "clearQueueTitle": "Limpar Fila", "clearQueueConfirm": "Remover todos os {} uploads pendentes?", "queueCleared": "Fila limpa", "uploadQueueTitle": "Fila de Upload ({} itens)", "queueIsEmpty": "A fila está vazia", "cameraWithIndex": "Câmera {}", "error": " (Erro)", "completing": " (Completando...)", "destination": "Dest: {}", "latitude": "Lat: {}", "longitude": "Lon: {}", "direction": "Direção: {}°", "attempts": "Tentativas: {}", "uploadFailedRetry": "Upload falhou. Toque em tentar novamente para tentar novamente.", "retryUpload": "Tentar upload novamente", "clearAll": "Limpar Tudo" }, "tileProviders": { "title": "Provedores de Tiles", "noProvidersConfigured": "Nenhum provedor de tiles configurado", "tileTypesCount": "{} tipos de tiles", "apiKeyConfigured": "Chave API configurada", "needsApiKey": "Precisa de chave API", "editProvider": "Editar Provedor", "addProvider": "Adicionar Provedor", "deleteProvider": "Excluir Provedor", "deleteProviderConfirm": "Tem certeza de que deseja excluir \"{}\"?", "providerName": "Nome do Provedor", "providerNameHint": "ex., Mapas Personalizados Inc.", "providerNameRequired": "Nome do provedor é obrigatório", "apiKey": "Chave API (Opcional)", "apiKeyHint": "Insira a chave API se necessária pelos tipos de tiles", "tileTypes": "Tipos de Tiles", "addType": "Adicionar Tipo", "noTileTypesConfigured": "Nenhum tipo de tile configurado", "atLeastOneTileTypeRequired": "Pelo menos um tipo de tile é obrigatório", "manageTileProviders": "Gerenciar Provedores" }, "tileTypeEditor": { "editTileType": "Editar Tipo de Tile", "addTileType": "Adicionar Tipo de Tile", "name": "Nome", "nameHint": "ex., Satélite", "nameRequired": "Nome é obrigatório", "urlTemplate": "Modelo de URL", "urlTemplateHint": "https://exemplo.com/{z}/{x}/{y}.png", "urlTemplateRequired": "Modelo de URL é obrigatório", "urlTemplatePlaceholders": "URL deve conter os marcadores {z}, {x} e {y}", "attribution": "Atribuição", "attributionHint": "© Provedor de Mapas", "attributionRequired": "Atribuição é obrigatória", "maxZoom": "Nível de Zoom Máximo", "maxZoomHint": "Nível de zoom máximo (1-23)", "maxZoomRequired": "Zoom máximo é obrigatório", "maxZoomInvalid": "Zoom máximo deve ser um número", "maxZoomRange": "Zoom máximo deve estar entre {} e {}", "fetchPreview": "Buscar Preview", "previewTileLoaded": "Tile de preview carregado com sucesso", "previewTileFailed": "Falha ao buscar preview: {}", "save": "Salvar" }, "profiles": { "nodeProfiles": "Perfis de Nó", "newProfile": "Novo Perfil", "builtIn": "Integrado", "custom": "Personalizado", "view": "Ver", "deleteProfile": "Excluir Perfil", "deleteProfileConfirm": "Tem certeza de que deseja excluir \"{}\"?", "profileDeleted": "Perfil excluído" }, "mapTiles": { "title": "Tiles do Mapa", "manageProviders": "Gerenciar Provedores", "attribution": "Atribuição do Mapa" }, "profileEditor": { "viewProfile": "Ver Perfil", "newProfile": "Novo Perfil", "editProfile": "Editar Perfil", "profileName": "Nome do perfil", "profileNameHint": "ex., Câmera ALPR Personalizada", "profileNameRequired": "Nome do perfil é obrigatório", "requiresDirection": "Requer Direção", "requiresDirectionSubtitle": "Se câmeras deste tipo precisam de uma tag de direção", "submittable": "Enviável", "submittableSubtitle": "Se este perfil pode ser usado para envios de câmeras", "osmTags": "Tags OSM", "addTag": "Adicionar Tag", "saveProfile": "Salvar Perfil", "keyHint": "chave", "valueHint": "valor", "atLeastOneTagRequired": "Pelo menos uma tag é obrigatória", "profileSaved": "Perfil \"{}\" salvo" }, "operatorProfileEditor": { "newOperatorProfile": "Novo Perfil de Operador", "editOperatorProfile": "Editar Perfil de Operador", "operatorName": "Nome do operador", "operatorNameHint": "ex., Departamento de Polícia de Austin", "operatorNameRequired": "Nome do operador é obrigatório", "operatorProfileSaved": "Perfil de operador \"{}\" salvo" }, "operatorProfiles": { "title": "Perfis de Operador", "noProfilesMessage": "Nenhum perfil de operador definido. Crie um para aplicar tags de operador aos envios de nós.", "tagsCount": "{} tags", "deleteOperatorProfile": "Excluir Perfil de Operador", "deleteOperatorProfileConfirm": "Tem certeza de que deseja excluir \"{}\"?", "operatorProfileDeleted": "Perfil de operador excluído" }, "offlineAreas": { "title": "Áreas Offline", "noAreasTitle": "Nenhuma área offline", "noAreasSubtitle": "Baixe uma área do mapa para uso offline.", "provider": "Provedor", "maxZoom": "Zoom máx", "zoomLevels": "Z{}-{}", "latitude": "Lat", "longitude": "Lon", "tiles": "Tiles", "size": "Tamanho", "nodes": "Nós", "areaIdFallback": "Área {}...", "renameArea": "Renomear área", "refreshWorldTiles": "Atualizar/rebaixar tiles mundiais", "deleteOfflineArea": "Excluir área offline", "cancelDownload": "Cancelar download", "renameAreaDialogTitle": "Renomear Área Offline", "areaNameLabel": "Nome da Área", "renameButton": "Renomear", "megabytes": "MB", "kilobytes": "KB", "progress": "{}%", "refreshArea": "Atualizar área", "refreshAreaDialogTitle": "Atualizar Área Offline", "refreshAreaDialogSubtitle": "Escolha o que atualizar para esta área:", "refreshTiles": "Atualizar Tiles do Mapa", "refreshTilesSubtitle": "Baixar novamente todos os tiles para imagens atualizadas", "refreshNodes": "Atualizar Nós", "refreshNodesSubtitle": "Buscar novamente os dados dos nós para esta área", "startRefresh": "Iniciar Atualização", "refreshStarted": "Atualização iniciada!", "refreshFailed": "Atualização falhou: {}" }, "refineTagsSheet": { "title": "Refinar Tags", "operatorProfile": "Perfil de Operador", "done": "Concluído", "none": "Nenhum", "noAdditionalOperatorTags": "Nenhuma tag adicional de operador", "additionalTags": "tags adicionais", "additionalTagsTitle": "Tags Adicionais", "noTagsDefinedForProfile": "Nenhuma tag definida para este perfil de operador.", "noOperatorProfiles": "Nenhum perfil de operador definido", "noOperatorProfilesMessage": "Crie perfis de operador nas Configurações para aplicar tags adicionais aos seus envios de nós." }, "layerSelector": { "cannotChangeTileTypes": "Não é possível alterar tipos de tiles durante o download de áreas offline", "selectMapLayer": "Selecionar Camada do Mapa", "noTileProvidersAvailable": "Nenhum provedor de tiles disponível" }, "advancedEdit": { "title": "Opções de Edição Avançada", "subtitle": "Estes editores oferecem recursos mais avançados para edições complexas.", "webEditors": "Editores Web", "mobileEditors": "Editores Móveis", "iDEditor": "Editor iD", "iDEditorSubtitle": "Editor web completo - sempre funciona", "rapidEditor": "Editor RapiD", "rapidEditorSubtitle": "Edição assistida por IA com dados do Facebook", "vespucci": "Vespucci", "vespucciSubtitle": "Editor OSM avançado para Android", "streetComplete": "StreetComplete", "streetCompleteSubtitle": "Aplicativo de mapeamento baseado em pesquisas", "everyDoor": "EveryDoor", "everyDoorSubtitle": "Edição rápida de POI", "goMap": "Go Map!!", "goMapSubtitle": "Editor OSM iOS", "couldNotOpenEditor": "Não foi possível abrir o editor - aplicativo pode não estar instalado", "couldNotOpenURL": "Não foi possível abrir a URL", "couldNotOpenOSMWebsite": "Não foi possível abrir o site do OSM" }, "networkStatus": { "showIndicator": "Exibir indicador de status de rede", "showIndicatorSubtitle": "Mostrar status de carregamento e erro de rede no mapa", "loading": "Carregando...", "timedOut": "Tempo esgotado", "noData": "Nenhum tile aqui", "success": "Concluído", "nodeLimitReached": "Limite exibido - aumentar nas configurações", "tileProviderSlow": "Provedor de tiles lento", "nodeDataSlow": "Dados do nó lentos", "networkIssues": "Problemas de rede" }, "navigation": { "searchLocation": "Buscar localização", "searchPlaceholder": "Buscar locais ou coordenadas...", "routeTo": "Rota para", "routeFrom": "Rota de", "selectLocation": "Selecionar localização", "calculatingRoute": "Calculando rota...", "routeCalculationFailed": "Falha no cálculo da rota", "start": "Iniciar", "resume": "Continuar", "endRoute": "Terminar rota", "routeOverview": "Visão geral da rota", "retry": "Tentar novamente", "cancelSearch": "Cancelar busca", "noResultsFound": "Nenhum resultado encontrado", "searching": "Buscando...", "location": "Localização", "startPoint": "Início", "endPoint": "Fim", "startSelect": "Início (selecionar)", "endSelect": "Fim (selecionar)", "distance": "Distância: {} km", "routeActive": "Rota ativa", "navigationSettings": "Navegação", "navigationSettingsSubtitle": "Configurações de planejamento de rota e evasão", "avoidanceDistance": "Distância de evasão", "avoidanceDistanceSubtitle": "Distância mínima para ficar longe de dispositivos de vigilância", "searchHistory": "Histórico máximo de busca", "searchHistorySubtitle": "Número máximo de buscas recentes para lembrar", "units": "Unidades", "unitsSubtitle": "Unidades de exibição para distâncias e medidas", "metric": "Métrico (km, m)", "imperial": "Imperial (mi, ft)", "meters": "metros", "feet": "pés" }, "suspectedLocations": { "title": "Localizações Suspeitas", "showSuspectedLocations": "Mostrar Localizações Suspeitas", "showSuspectedLocationsSubtitle": "Mostrar marcadores de ponto de interrogação para sites de vigilância suspeitos de dados de licenças de serviços públicos", "lastUpdated": "Última Atualização", "refreshNow": "Atualizar agora", "dataSource": "Fonte de Dados", "dataSourceDescription": "Dados de licenças de serviços públicos indicando possíveis locais de instalação de infraestrutura de vigilância", "dataSourceCredit": "Coleta e hospedagem de dados fornecidas por alprwatch.org", "minimumDistance": "Distância Mínima de Nós Reais", "minimumDistanceSubtitle": "Ocultar localizações suspeitas dentro de {}m de dispositivos de vigilância existentes", "updating": "Atualizando Localizações Suspeitas", "downloadingAndProcessing": "Baixando e processando dados...", "updateSuccess": "Localizações suspeitas atualizadas com sucesso", "updateFailed": "Falha ao atualizar localizações suspeitas", "neverFetched": "Nunca buscado", "daysAgo": "{} dias atrás", "hoursAgo": "{} horas atrás", "minutesAgo": "{} minutos atrás", "justNow": "Agora mesmo" }, "suspectedLocation": { "title": "Localização Suspeita #{}", "ticketNo": "N° do Ticket", "address": "Endereço", "street": "Rua", "city": "Cidade", "state": "Estado", "intersectingStreet": "Rua que Cruza", "workDoneFor": "Trabalho Feito Para", "remarks": "Observações", "url": "URL", "coordinates": "Coordenadas", "noAddressAvailable": "Nenhum endereço disponível" } }