mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
2281 lines
70 KiB
Plaintext
2281 lines
70 KiB
Plaintext
{
|
|
"@@locale": "pt",
|
|
"appTitle": "MeshCore SAR",
|
|
"@appTitle": {
|
|
"description": "The application title"
|
|
},
|
|
"messages": "Mensagens",
|
|
"@messages": {
|
|
"description": "Messages tab label"
|
|
},
|
|
"contacts": "Contatos",
|
|
"@contacts": {
|
|
"description": "Contacts tab label"
|
|
},
|
|
"map": "Mapa",
|
|
"@map": {
|
|
"description": "Map tab label"
|
|
},
|
|
"settings": "Configurações",
|
|
"@settings": {
|
|
"description": "Settings screen title"
|
|
},
|
|
"connect": "Conectar",
|
|
"@connect": {
|
|
"description": "Connect button label"
|
|
},
|
|
"disconnect": "Desconectar",
|
|
"@disconnect": {
|
|
"description": "Disconnect button label"
|
|
},
|
|
"noDevicesFound": "Nenhum dispositivo encontrado",
|
|
"@noDevicesFound": {
|
|
"description": "Text shown when no BLE devices are found"
|
|
},
|
|
"scanAgain": "Escanear novamente",
|
|
"@scanAgain": {
|
|
"description": "Button to restart BLE scanning"
|
|
},
|
|
"tapToConnect": "Toque para conectar",
|
|
"@tapToConnect": {
|
|
"description": "Subtitle text for device in scan list"
|
|
},
|
|
"deviceNotConnected": "Dispositivo não conectado",
|
|
"@deviceNotConnected": {
|
|
"description": "Error message when device is not connected"
|
|
},
|
|
"locationPermissionDenied": "Permissão de localização negada",
|
|
"@locationPermissionDenied": {
|
|
"description": "Error when location permission is denied"
|
|
},
|
|
"locationPermissionPermanentlyDenied": "Permissão de localização negada permanentemente. Ative-a em Configurações.",
|
|
"@locationPermissionPermanentlyDenied": {
|
|
"description": "Error when location permission is permanently denied"
|
|
},
|
|
"locationPermissionRequired": "A permissão de localização é necessária para rastreamento GPS e coordenação da equipe. Você pode ativá-la depois em Configurações.",
|
|
"@locationPermissionRequired": {
|
|
"description": "Message when location permission is needed"
|
|
},
|
|
"locationServicesDisabled": "Os serviços de localização estão desativados. Ative-os em Configurações.",
|
|
"@locationServicesDisabled": {
|
|
"description": "Error when location services are disabled"
|
|
},
|
|
"failedToGetGpsLocation": "Falha ao obter localização GPS",
|
|
"@failedToGetGpsLocation": {
|
|
"description": "Error when GPS location cannot be obtained"
|
|
},
|
|
"failedToAdvertise": "Falha ao anunciar: {error}",
|
|
"@failedToAdvertise": {
|
|
"description": "Error message for failed advertisement",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"cancelReconnection": "Cancelar reconexão",
|
|
"@cancelReconnection": {
|
|
"description": "Tooltip for cancel reconnection button"
|
|
},
|
|
"general": "Geral",
|
|
"@general": {
|
|
"description": "General settings section header"
|
|
},
|
|
"theme": "Tema",
|
|
"@theme": {
|
|
"description": "Theme setting label"
|
|
},
|
|
"chooseTheme": "Escolher tema",
|
|
"@chooseTheme": {
|
|
"description": "Theme selection dialog title"
|
|
},
|
|
"light": "Claro",
|
|
"@light": {
|
|
"description": "Light theme option"
|
|
},
|
|
"dark": "Escuro",
|
|
"@dark": {
|
|
"description": "Dark theme option"
|
|
},
|
|
"blueLightTheme": "Tema azul claro",
|
|
"@blueLightTheme": {
|
|
"description": "Description for blue light theme"
|
|
},
|
|
"blueDarkTheme": "Tema azul escuro",
|
|
"@blueDarkTheme": {
|
|
"description": "Description for blue dark theme"
|
|
},
|
|
"sarRed": "SAR Vermelho",
|
|
"@sarRed": {
|
|
"description": "SAR Red theme option"
|
|
},
|
|
"alertEmergencyMode": "Modo de alerta/emergência",
|
|
"@alertEmergencyMode": {
|
|
"description": "Description for SAR Red theme"
|
|
},
|
|
"sarGreen": "SAR Verde",
|
|
"@sarGreen": {
|
|
"description": "SAR Green theme option"
|
|
},
|
|
"safeAllClearMode": "Modo seguro/tudo limpo",
|
|
"@safeAllClearMode": {
|
|
"description": "Description for SAR Green theme"
|
|
},
|
|
"autoSystem": "Automático (Sistema)",
|
|
"@autoSystem": {
|
|
"description": "Auto/System theme option"
|
|
},
|
|
"followSystemTheme": "Seguir tema do sistema",
|
|
"@followSystemTheme": {
|
|
"description": "Description for system theme"
|
|
},
|
|
"showRxTxIndicators": "Mostrar indicadores RX/TX",
|
|
"@showRxTxIndicators": {
|
|
"description": "Setting to show RX/TX indicators"
|
|
},
|
|
"displayPacketActivity": "Exibir indicadores de atividade de pacotes na barra superior",
|
|
"@displayPacketActivity": {
|
|
"description": "Description for RX/TX indicators setting"
|
|
},
|
|
"disableMap": "Desativar mapa",
|
|
"@disableMap": {
|
|
"description": "Setting to disable the map tab"
|
|
},
|
|
"disableMapDescription": "Ocultar a aba de mapa para reduzir o uso de bateria",
|
|
"@disableMapDescription": {
|
|
"description": "Description for disable map setting"
|
|
},
|
|
"language": "Idioma",
|
|
"@language": {
|
|
"description": "Language setting label"
|
|
},
|
|
"chooseLanguage": "Escolher idioma",
|
|
"@chooseLanguage": {
|
|
"description": "Language selection dialog title"
|
|
},
|
|
"save": "Salvar",
|
|
"@save": {
|
|
"description": "Save button label"
|
|
},
|
|
"cancel": "Cancelar",
|
|
"@cancel": {
|
|
"description": "Cancel button label"
|
|
},
|
|
"close": "Fechar",
|
|
"@close": {
|
|
"description": "Close button label"
|
|
},
|
|
"about": "Sobre",
|
|
"@about": {
|
|
"description": "About section header"
|
|
},
|
|
"appVersion": "Versão do app",
|
|
"@appVersion": {
|
|
"description": "App version label"
|
|
},
|
|
"appName": "Nome do app",
|
|
"@appName": {
|
|
"description": "App name label"
|
|
},
|
|
"aboutMeshCoreSar": "About MeshCore SAR",
|
|
"@aboutMeshCoreSar": {
|
|
"description": "About dialog title"
|
|
},
|
|
"aboutDescription": "A Search & Rescue application designed for emergency response teams. Features include:\n\n• BLE mesh networking for device-to-device communication\n• Offline maps with multiple layer options\n• Real-time team member tracking\n• SAR tactical markers (found person, fire, staging)\n• Contact management and messaging\n• GPS tracking with compass heading\n• Map tile caching for offline use",
|
|
"@aboutDescription": {
|
|
"description": "About dialog description"
|
|
},
|
|
"technologiesUsed": "Technologies Used:",
|
|
"@technologiesUsed": {
|
|
"description": "Technologies used section title"
|
|
},
|
|
"technologiesList": "• Flutter for cross-platform development\n• BLE (Bluetooth Low Energy) for mesh networking\n• OpenStreetMap for mapping\n• Provider for state management\n• SharedPreferences for local storage",
|
|
"@technologiesList": {
|
|
"description": "List of technologies used"
|
|
},
|
|
"moreInfo": "Mais informações",
|
|
"@moreInfo": {
|
|
"description": "More info button label"
|
|
},
|
|
"packageName": "Package Name",
|
|
"@packageName": {
|
|
"description": "Package name label"
|
|
},
|
|
"sampleData": "Dados de exemplo",
|
|
"@sampleData": {
|
|
"description": "Sample data section header"
|
|
},
|
|
"sampleDataDescription": "Carregar ou limpar contatos, mensagens de canal e marcadores SAR de exemplo para testes",
|
|
"@sampleDataDescription": {
|
|
"description": "Sample data section description"
|
|
},
|
|
"loadSampleData": "Carregar dados de exemplo",
|
|
"@loadSampleData": {
|
|
"description": "Load sample data button"
|
|
},
|
|
"clearAllData": "Limpar todos os dados",
|
|
"@clearAllData": {
|
|
"description": "Clear all data button"
|
|
},
|
|
"clearAllDataConfirmTitle": "Limpar todos os dados",
|
|
"@clearAllDataConfirmTitle": {
|
|
"description": "Clear data confirmation dialog title"
|
|
},
|
|
"clearAllDataConfirmMessage": "Isso limpará todos os contatos e marcadores SAR. Tem certeza?",
|
|
"@clearAllDataConfirmMessage": {
|
|
"description": "Clear data confirmation message"
|
|
},
|
|
"clear": "Limpar",
|
|
"@clear": {
|
|
"description": "Clear button label"
|
|
},
|
|
"loadedSampleData": "Loaded {teamCount} team members, {channelCount} channels, {sarCount} SAR markers, {messageCount} messages",
|
|
"@loadedSampleData": {
|
|
"description": "Success message after loading sample data",
|
|
"placeholders": {
|
|
"teamCount": {
|
|
"type": "int"
|
|
},
|
|
"channelCount": {
|
|
"type": "int"
|
|
},
|
|
"sarCount": {
|
|
"type": "int"
|
|
},
|
|
"messageCount": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"failedToLoadSampleData": "Falha ao carregar dados de exemplo: {error}",
|
|
"@failedToLoadSampleData": {
|
|
"description": "Error message when sample data fails to load",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"allDataCleared": "Todos os dados foram limpos",
|
|
"@allDataCleared": {
|
|
"description": "Success message after clearing all data"
|
|
},
|
|
"failedToStartBackgroundTracking": "Falha ao iniciar rastreamento em segundo plano. Verifique permissões e conexão BLE.",
|
|
"@failedToStartBackgroundTracking": {
|
|
"description": "Error message when background tracking fails to start"
|
|
},
|
|
"locationBroadcast": "Transmissão de localização: {latitude}, {longitude}",
|
|
"@locationBroadcast": {
|
|
"description": "Success message for location broadcast",
|
|
"placeholders": {
|
|
"latitude": {
|
|
"type": "String"
|
|
},
|
|
"longitude": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"defaultPinInfo": "The default pin for devices without a screen is 123456. Trouble pairing? Forget the bluetooth device in system settings.",
|
|
"@defaultPinInfo": {
|
|
"description": "Information about default PIN for pairing"
|
|
},
|
|
"noMessagesYet": "Ainda não há mensagens",
|
|
"@noMessagesYet": {
|
|
"description": "Empty state message when there are no messages"
|
|
},
|
|
"pullDownToSync": "Puxe para baixo para sincronizar mensagens",
|
|
"@pullDownToSync": {
|
|
"description": "Instruction to pull down to refresh messages"
|
|
},
|
|
"deleteContact": "Excluir contato",
|
|
"@deleteContact": {
|
|
"description": "Delete contact action label"
|
|
},
|
|
"delete": "Excluir",
|
|
"@delete": {
|
|
"description": "Delete button label"
|
|
},
|
|
"viewOnMap": "Ver no mapa",
|
|
"@viewOnMap": {
|
|
"description": "Action to view contact location on map"
|
|
},
|
|
"refresh": "Atualizar",
|
|
"@refresh": {
|
|
"description": "Refresh button label"
|
|
},
|
|
"resetPath": "Redefinir rota",
|
|
"@resetPath": {
|
|
"description": "Action to reset contact path for re-routing"
|
|
},
|
|
"publicKeyCopied": "Chave pública copiada para a área de transferência",
|
|
"@publicKeyCopied": {
|
|
"description": "Success message when public key is copied"
|
|
},
|
|
"copiedToClipboard": "{label} copiado para a área de transferência",
|
|
"@copiedToClipboard": {
|
|
"description": "Success message when a value is copied to clipboard",
|
|
"placeholders": {
|
|
"label": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"pleaseEnterPassword": "Digite uma senha",
|
|
"@pleaseEnterPassword": {
|
|
"description": "Validation message for empty password field"
|
|
},
|
|
"failedToSyncContacts": "Falha ao sincronizar contatos: {error}",
|
|
"@failedToSyncContacts": {
|
|
"description": "Error message when contact sync fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"loggedInSuccessfully": "Login realizado com sucesso! Aguardando mensagens da sala...",
|
|
"@loggedInSuccessfully": {
|
|
"description": "Success message after successful room login"
|
|
},
|
|
"loginFailed": "Falha no login - senha incorreta",
|
|
"@loginFailed": {
|
|
"description": "Error message when room login fails"
|
|
},
|
|
"loggingIn": "Entrando em {roomName}...",
|
|
"@loggingIn": {
|
|
"description": "Status message during room login process",
|
|
"placeholders": {
|
|
"roomName": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"failedToSendLogin": "Falha ao enviar login: {error}",
|
|
"@failedToSendLogin": {
|
|
"description": "Error message when login command fails to send",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"lowLocationAccuracy": "Baixa precisão de localização",
|
|
"@lowLocationAccuracy": {
|
|
"description": "Warning title for low GPS accuracy"
|
|
},
|
|
"continue_": "Continuar",
|
|
"@continue_": {
|
|
"description": "Continue button label"
|
|
},
|
|
"sendSarMarker": "Enviar marcador SAR",
|
|
"@sendSarMarker": {
|
|
"description": "Action to send SAR marker"
|
|
},
|
|
"deleteDrawing": "Excluir desenho",
|
|
"@deleteDrawing": {
|
|
"description": "Action to delete a map drawing"
|
|
},
|
|
"drawingTools": "Ferramentas de desenho",
|
|
"@drawingTools": {
|
|
"description": "Drawing tools section or menu title"
|
|
},
|
|
"drawLine": "Desenhar linha",
|
|
"@drawLine": {
|
|
"description": "Map drawing mode: line"
|
|
},
|
|
"drawLineDesc": "Desenhar uma linha livre no mapa",
|
|
"@drawLineDesc": {
|
|
"description": "Description for line drawing mode"
|
|
},
|
|
"drawRectangle": "Desenhar retângulo",
|
|
"@drawRectangle": {
|
|
"description": "Map drawing mode: rectangle"
|
|
},
|
|
"drawRectangleDesc": "Desenhar uma área retangular no mapa",
|
|
"@drawRectangleDesc": {
|
|
"description": "Description for rectangle drawing mode"
|
|
},
|
|
"measureDistance": "Medir distância",
|
|
"@measureDistance": {
|
|
"description": "Map drawing mode: measure distance"
|
|
},
|
|
"measureDistanceDesc": "Pressione longamente dois pontos para medir",
|
|
"@measureDistanceDesc": {
|
|
"description": "Description for distance measurement mode"
|
|
},
|
|
"clearMeasurement": "Limpar medição",
|
|
"@clearMeasurement": {
|
|
"description": "Tooltip to clear measurement"
|
|
},
|
|
"distanceLabel": "Distância: {distance}",
|
|
"@distanceLabel": {
|
|
"description": "Label showing measured distance",
|
|
"placeholders": {
|
|
"distance": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"longPressForSecondPoint": "Pressione longamente para o segundo ponto",
|
|
"@longPressForSecondPoint": {
|
|
"description": "Instruction when first measurement point is set"
|
|
},
|
|
"longPressToStartMeasurement": "Pressione longamente para definir o primeiro ponto",
|
|
"@longPressToStartMeasurement": {
|
|
"description": "Instruction to start measurement"
|
|
},
|
|
"longPressToStartNewMeasurement": "Long press to start new measurement",
|
|
"@longPressToStartNewMeasurement": {
|
|
"description": "Instruction to restart measurement after completion"
|
|
},
|
|
"shareDrawings": "Compartilhar desenhos",
|
|
"@shareDrawings": {
|
|
"description": "Action to share drawings to network"
|
|
},
|
|
"clearAllDrawings": "Limpar todos os desenhos",
|
|
"@clearAllDrawings": {
|
|
"description": "Action to clear all local drawings"
|
|
},
|
|
"completeLine": "Concluir linha",
|
|
"@completeLine": {
|
|
"description": "Tooltip to complete drawing a line"
|
|
},
|
|
"broadcastDrawingsToTeam": "Broadcast {count} drawing{plural} to team",
|
|
"@broadcastDrawingsToTeam": {
|
|
"description": "Subtitle showing how many drawings will be broadcast",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
},
|
|
"plural": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"removeAllDrawings": "Remove all {count} drawing{plural}",
|
|
"@removeAllDrawings": {
|
|
"description": "Subtitle for remove all drawings action",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
},
|
|
"plural": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"deleteAllDrawingsConfirm": "Delete all {count} drawing{plural} from the map?",
|
|
"@deleteAllDrawingsConfirm": {
|
|
"description": "Confirmation dialog message for deleting all drawings",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
},
|
|
"plural": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"drawing": "Desenho",
|
|
"@drawing": {
|
|
"description": "Generic drawing label"
|
|
},
|
|
"shareDrawingsCount": "Share {count} Drawing{plural}",
|
|
"@shareDrawingsCount": {
|
|
"description": "Title for share drawings dialog",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
},
|
|
"plural": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"showReceivedDrawings": "Mostrar desenhos recebidos",
|
|
"@showReceivedDrawings": {
|
|
"description": "Toggle to show/hide received drawings from other team members"
|
|
},
|
|
"showingAllDrawings": "Mostrando todos os desenhos",
|
|
"@showingAllDrawings": {
|
|
"description": "Subtitle when received drawings are visible"
|
|
},
|
|
"showingOnlyYourDrawings": "Mostrando apenas seus desenhos",
|
|
"@showingOnlyYourDrawings": {
|
|
"description": "Subtitle when received drawings are hidden"
|
|
},
|
|
"showSarMarkers": "Mostrar marcadores SAR",
|
|
"@showSarMarkers": {
|
|
"description": "Toggle to show/hide SAR markers on map"
|
|
},
|
|
"showingSarMarkers": "Mostrando marcadores SAR",
|
|
"@showingSarMarkers": {
|
|
"description": "Subtitle when SAR markers are visible"
|
|
},
|
|
"hidingSarMarkers": "Ocultando marcadores SAR",
|
|
"@hidingSarMarkers": {
|
|
"description": "Subtitle when SAR markers are hidden"
|
|
},
|
|
"clearAll": "Limpar tudo",
|
|
"@clearAll": {
|
|
"description": "Clear all button label"
|
|
},
|
|
"publicChannel": "Canal público",
|
|
"@publicChannel": {
|
|
"description": "Public channel option for sharing"
|
|
},
|
|
"broadcastToAll": "Transmitir para todos os nós próximos",
|
|
"@broadcastToAll": {
|
|
"description": "Description for public channel broadcast"
|
|
},
|
|
"storedPermanently": "Armazenado permanentemente na sala",
|
|
"@storedPermanently": {
|
|
"description": "Description for room storage permanence"
|
|
},
|
|
"notConnectedToDevice": "Não conectado ao dispositivo",
|
|
"@notConnectedToDevice": {
|
|
"description": "Error message when device is not connected for direct messaging"
|
|
},
|
|
"typeYourMessage": "Digite sua mensagem...",
|
|
"@typeYourMessage": {
|
|
"description": "Placeholder text for message input field"
|
|
},
|
|
"quickLocationMarker": "Marcador rápido de localização",
|
|
"@quickLocationMarker": {
|
|
"description": "Subtitle for SAR marker sheet header"
|
|
},
|
|
"markerType": "Tipo de marcador",
|
|
"@markerType": {
|
|
"description": "Label for marker type selection section"
|
|
},
|
|
"sendTo": "Enviar para",
|
|
"@sendTo": {
|
|
"description": "Label for destination selection section"
|
|
},
|
|
"noDestinationsAvailable": "Nenhum destino disponível.",
|
|
"@noDestinationsAvailable": {
|
|
"description": "Warning when no rooms or channels exist"
|
|
},
|
|
"selectDestination": "Selecione o destino...",
|
|
"@selectDestination": {
|
|
"description": "Placeholder for destination dropdown"
|
|
},
|
|
"ephemeralBroadcastInfo": "Ephemeral: Broadcast over-the-air only. Not stored - nodes must be online.",
|
|
"@ephemeralBroadcastInfo": {
|
|
"description": "Information about ephemeral channel broadcasts"
|
|
},
|
|
"persistentRoomInfo": "Persistent: Stored immutably in room. Synced automatically and preserved offline.",
|
|
"@persistentRoomInfo": {
|
|
"description": "Information about persistent room storage"
|
|
},
|
|
"location": "Localização",
|
|
"@location": {
|
|
"description": "Label for location section"
|
|
},
|
|
"fromMap": "Do mapa",
|
|
"@fromMap": {
|
|
"description": "Badge showing location is from map tap"
|
|
},
|
|
"gettingLocation": "Obtendo localização...",
|
|
"@gettingLocation": {
|
|
"description": "Loading message while fetching GPS location"
|
|
},
|
|
"locationError": "Erro de localização",
|
|
"@locationError": {
|
|
"description": "Title for location error messages"
|
|
},
|
|
"retry": "Tentar novamente",
|
|
"@retry": {
|
|
"description": "Retry button label"
|
|
},
|
|
"refreshLocation": "Atualizar localização",
|
|
"@refreshLocation": {
|
|
"description": "Tooltip for refresh location button"
|
|
},
|
|
"accuracyMeters": "Precisão: ±{accuracy}m",
|
|
"@accuracyMeters": {
|
|
"description": "Display of GPS accuracy in meters",
|
|
"placeholders": {
|
|
"accuracy": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"notesOptional": "Notas (opcional)",
|
|
"@notesOptional": {
|
|
"description": "Label for optional notes field"
|
|
},
|
|
"addAdditionalInformation": "Adicionar informações extras...",
|
|
"@addAdditionalInformation": {
|
|
"description": "Placeholder for notes field"
|
|
},
|
|
"lowAccuracyWarning": "Location accuracy is ±{accuracy}m. This may not be accurate enough for SAR operations.\n\nContinue anyway?",
|
|
"@lowAccuracyWarning": {
|
|
"description": "Warning dialog content for low GPS accuracy",
|
|
"placeholders": {
|
|
"accuracy": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"loginToRoom": "Entrar na sala",
|
|
"@loginToRoom": {
|
|
"description": "Title for room login dialog"
|
|
},
|
|
"enterPasswordInfo": "Enter the password to access this room. The password will be saved for future use.",
|
|
"@enterPasswordInfo": {
|
|
"description": "Information about room password"
|
|
},
|
|
"password": "Senha",
|
|
"@password": {
|
|
"description": "Password field label"
|
|
},
|
|
"enterRoomPassword": "Digite a senha da sala",
|
|
"@enterRoomPassword": {
|
|
"description": "Password field hint"
|
|
},
|
|
"loggingInDots": "Entrando...",
|
|
"@loggingInDots": {
|
|
"description": "Button text while logging in"
|
|
},
|
|
"login": "Entrar",
|
|
"@login": {
|
|
"description": "Login button label"
|
|
},
|
|
"failedToAddRoom": "Failed to add room to device: {error}\n\nThe room may not have advertised yet.\nTry waiting for the room to broadcast.",
|
|
"@failedToAddRoom": {
|
|
"description": "Error message when adding room fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"direct": "Direto",
|
|
"@direct": {
|
|
"description": "Direct routing indicator"
|
|
},
|
|
"flood": "Inundação",
|
|
"@flood": {
|
|
"description": "Flood routing indicator"
|
|
},
|
|
"loggedIn": "Conectado",
|
|
"@loggedIn": {
|
|
"description": "Logged in status badge"
|
|
},
|
|
"noGpsData": "Sem dados GPS",
|
|
"@noGpsData": {
|
|
"description": "Message when GPS data is not available"
|
|
},
|
|
"distance": "Distância",
|
|
"@distance": {
|
|
"description": "Distance label"
|
|
},
|
|
"directPingTimeout": "Direct ping timeout - retrying {name} with flooding...",
|
|
"@directPingTimeout": {
|
|
"description": "Warning when direct ping times out",
|
|
"placeholders": {
|
|
"name": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"pingFailed": "Falha no ping para {name} - nenhuma resposta recebida",
|
|
"@pingFailed": {
|
|
"description": "Error message when ping fails",
|
|
"placeholders": {
|
|
"name": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"deleteContactConfirmation": "Are you sure you want to delete \"{name}\"?\n\nThis will remove the contact from both the app and the companion radio device.",
|
|
"@deleteContactConfirmation": {
|
|
"description": "Confirmation message for deleting contact",
|
|
"placeholders": {
|
|
"name": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"failedToRemoveContact": "Falha ao remover contato: {error}",
|
|
"@failedToRemoveContact": {
|
|
"description": "Error message when contact removal fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"type": "Tipo",
|
|
"@type": {
|
|
"description": "Contact type label"
|
|
},
|
|
"publicKey": "Chave pública",
|
|
"@publicKey": {
|
|
"description": "Public key label"
|
|
},
|
|
"lastSeen": "Visto por último",
|
|
"@lastSeen": {
|
|
"description": "Last seen label"
|
|
},
|
|
"roomStatus": "Status da sala",
|
|
"@roomStatus": {
|
|
"description": "Room status section header"
|
|
},
|
|
"loginStatus": "Status do login",
|
|
"@loginStatus": {
|
|
"description": "Login status label"
|
|
},
|
|
"notLoggedIn": "Não conectado",
|
|
"@notLoggedIn": {
|
|
"description": "Not logged in status"
|
|
},
|
|
"adminAccess": "Acesso de administrador",
|
|
"@adminAccess": {
|
|
"description": "Admin access label"
|
|
},
|
|
"yes": "Sim",
|
|
"@yes": {
|
|
"description": "Yes answer"
|
|
},
|
|
"no": "Não",
|
|
"@no": {
|
|
"description": "No answer"
|
|
},
|
|
"permissions": "Permissões",
|
|
"@permissions": {
|
|
"description": "Permissions label"
|
|
},
|
|
"passwordSaved": "Senha salva",
|
|
"@passwordSaved": {
|
|
"description": "Password saved label"
|
|
},
|
|
"locationColon": "Localização:",
|
|
"@locationColon": {
|
|
"description": "Location section header"
|
|
},
|
|
"telemetry": "Telemetria",
|
|
"@telemetry": {
|
|
"description": "Telemetry section header"
|
|
},
|
|
"voltage": "Voltagem",
|
|
"@voltage": {
|
|
"description": "Voltage label"
|
|
},
|
|
"battery": "Bateria",
|
|
"@battery": {
|
|
"description": "Battery label"
|
|
},
|
|
"temperature": "Temperatura",
|
|
"@temperature": {
|
|
"description": "Temperature label"
|
|
},
|
|
"humidity": "Umidade",
|
|
"@humidity": {
|
|
"description": "Humidity label"
|
|
},
|
|
"pressure": "Pressão",
|
|
"@pressure": {
|
|
"description": "Pressure label"
|
|
},
|
|
"gpsTelemetry": "GPS (telemetria)",
|
|
"@gpsTelemetry": {
|
|
"description": "GPS from telemetry label"
|
|
},
|
|
"updated": "Atualizado",
|
|
"@updated": {
|
|
"description": "Updated timestamp label"
|
|
},
|
|
"pathResetInfo": "Path reset for {name}. Next message will find a new route.",
|
|
"@pathResetInfo": {
|
|
"description": "Info message after path reset",
|
|
"placeholders": {
|
|
"name": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"reLoginToRoom": "Entrar novamente na sala",
|
|
"@reLoginToRoom": {
|
|
"description": "Button to re-login to room"
|
|
},
|
|
"heading": "Direção",
|
|
"@heading": {
|
|
"description": "Compass heading label"
|
|
},
|
|
"elevation": "Elevação",
|
|
"@elevation": {
|
|
"description": "Elevation/altitude label"
|
|
},
|
|
"accuracy": "Precisão",
|
|
"@accuracy": {
|
|
"description": "GPS accuracy label"
|
|
},
|
|
"bearing": "Rumo",
|
|
"@bearing": {
|
|
"description": "Bearing label in compass"
|
|
},
|
|
"direction": "Direção",
|
|
"@direction": {
|
|
"description": "Direction label in compass"
|
|
},
|
|
"filterMarkers": "Filtrar marcadores",
|
|
"@filterMarkers": {
|
|
"description": "Title for filter markers dialog"
|
|
},
|
|
"filterMarkersTooltip": "Filter markers",
|
|
"@filterMarkersTooltip": {
|
|
"description": "Tooltip for filter button"
|
|
},
|
|
"contactsFilter": "Contatos",
|
|
"@contactsFilter": {
|
|
"description": "Filter option for contacts"
|
|
},
|
|
"repeatersFilter": "Repetidores",
|
|
"@repeatersFilter": {
|
|
"description": "Filter option for repeaters"
|
|
},
|
|
"sarMarkers": "Marcadores SAR",
|
|
"@sarMarkers": {
|
|
"description": "SAR markers section header"
|
|
},
|
|
"foundPerson": "Pessoa encontrada",
|
|
"@foundPerson": {
|
|
"description": "Found person SAR marker type"
|
|
},
|
|
"fire": "Incêndio",
|
|
"@fire": {
|
|
"description": "Fire SAR marker type"
|
|
},
|
|
"stagingArea": "Área de apoio",
|
|
"@stagingArea": {
|
|
"description": "Staging area SAR marker type"
|
|
},
|
|
"showAll": "Mostrar tudo",
|
|
"@showAll": {
|
|
"description": "Button to show all filters"
|
|
},
|
|
"locationUnavailable": "Localização indisponível",
|
|
"@locationUnavailable": {
|
|
"description": "Message when GPS location is unavailable"
|
|
},
|
|
"ahead": "à frente",
|
|
"@ahead": {
|
|
"description": "Relative bearing direction - ahead"
|
|
},
|
|
"degreesRight": "{degrees}° à direita",
|
|
"@degreesRight": {
|
|
"description": "Relative bearing direction - right",
|
|
"placeholders": {
|
|
"degrees": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"degreesLeft": "{degrees}° à esquerda",
|
|
"@degreesLeft": {
|
|
"description": "Relative bearing direction - left",
|
|
"placeholders": {
|
|
"degrees": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"latLonFormat": "Lat: {latitude} Lon: {longitude}",
|
|
"@latLonFormat": {
|
|
"description": "Latitude and longitude display format",
|
|
"placeholders": {
|
|
"latitude": {
|
|
"type": "String"
|
|
},
|
|
"longitude": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"noContactsYet": "Ainda não há contatos",
|
|
"@noContactsYet": {
|
|
"description": "Empty state message when there are no contacts"
|
|
},
|
|
"connectToDeviceToLoadContacts": "Conecte-se a um dispositivo para carregar contatos",
|
|
"@connectToDeviceToLoadContacts": {
|
|
"description": "Instruction to connect device to load contacts"
|
|
},
|
|
"teamMembers": "Membros da equipe",
|
|
"@teamMembers": {
|
|
"description": "Section header for team members (chat contacts)"
|
|
},
|
|
"repeaters": "Repetidores",
|
|
"@repeaters": {
|
|
"description": "Section header for repeater nodes"
|
|
},
|
|
"rooms": "Salas",
|
|
"@rooms": {
|
|
"description": "Section header for rooms"
|
|
},
|
|
"channels": "Canais",
|
|
"@channels": {
|
|
"description": "Section header for broadcast channels"
|
|
},
|
|
"selectMapLayer": "Selecionar camada do mapa",
|
|
"@selectMapLayer": {
|
|
"description": "Title for map layer selection dialog"
|
|
},
|
|
"openStreetMap": "OpenStreetMap",
|
|
"@openStreetMap": {
|
|
"description": "OpenStreetMap layer name"
|
|
},
|
|
"openTopoMap": "OpenTopoMap",
|
|
"@openTopoMap": {
|
|
"description": "OpenTopoMap layer name"
|
|
},
|
|
"esriSatellite": "Satélite ESRI",
|
|
"@esriSatellite": {
|
|
"description": "ESRI Satellite imagery layer name"
|
|
},
|
|
"googleHybrid": "Google Híbrido",
|
|
"@googleHybrid": {
|
|
"description": "Google Hybrid layer name (satellite + labels)"
|
|
},
|
|
"googleRoadmap": "Google Mapa",
|
|
"@googleRoadmap": {
|
|
"description": "Google Roadmap layer name (street map)"
|
|
},
|
|
"googleTerrain": "Google Terreno",
|
|
"@googleTerrain": {
|
|
"description": "Google Terrain layer name (topographic)"
|
|
},
|
|
"dragToPosition": "Arraste para a posição",
|
|
"@dragToPosition": {
|
|
"description": "Label when dragging a pin on map"
|
|
},
|
|
"createSarMarker": "Criar marcador SAR",
|
|
"@createSarMarker": {
|
|
"description": "Label for creating SAR marker from pin"
|
|
},
|
|
"compass": "Bússola",
|
|
"@compass": {
|
|
"description": "Compass title in detailed compass dialog"
|
|
},
|
|
"navigationAndContacts": "Navegação e contatos",
|
|
"@navigationAndContacts": {
|
|
"description": "Subtitle for compass dialog"
|
|
},
|
|
"sarAlert": "ALERTA SAR",
|
|
"@sarAlert": {
|
|
"description": "Label for SAR alert badge on messages"
|
|
},
|
|
"textCopiedToClipboard": "Texto copiado para a área de transferência",
|
|
"@textCopiedToClipboard": {
|
|
"description": "Success message when text is copied"
|
|
},
|
|
"cannotReplySenderMissing": "Cannot reply: sender information missing",
|
|
"@cannotReplySenderMissing": {
|
|
"description": "Error when sender info is missing for reply"
|
|
},
|
|
"cannotReplyContactNotFound": "Cannot reply: contact not found",
|
|
"@cannotReplyContactNotFound": {
|
|
"description": "Error when contact not found for reply"
|
|
},
|
|
"copyText": "Copiar texto",
|
|
"@copyText": {
|
|
"description": "Option to copy message text to clipboard"
|
|
},
|
|
"saveAsTemplate": "Save as Template",
|
|
"@saveAsTemplate": {
|
|
"description": "Option to save SAR message as a reusable template"
|
|
},
|
|
"templateSaved": "Template saved successfully",
|
|
"@templateSaved": {
|
|
"description": "Success message when SAR template is saved"
|
|
},
|
|
"templateAlreadyExists": "Template with this emoji already exists",
|
|
"@templateAlreadyExists": {
|
|
"description": "Error message when trying to save duplicate template"
|
|
},
|
|
"deleteMessage": "Excluir mensagem",
|
|
"@deleteMessage": {
|
|
"description": "Dialog title for deleting a message"
|
|
},
|
|
"deleteMessageConfirmation": "Tem certeza de que deseja excluir esta mensagem?",
|
|
"@deleteMessageConfirmation": {
|
|
"description": "Confirmation text for message deletion"
|
|
},
|
|
"shareLocation": "Compartilhar localização",
|
|
"@shareLocation": {
|
|
"description": "Option to share SAR marker location"
|
|
},
|
|
"shareLocationText": "{markerInfo}\n\nCoordinates: {lat}, {lon}\n\nGoogle Maps: {url}",
|
|
"@shareLocationText": {
|
|
"description": "Formatted text for sharing SAR marker location",
|
|
"placeholders": {
|
|
"markerInfo": {
|
|
"type": "String"
|
|
},
|
|
"lat": {
|
|
"type": "String"
|
|
},
|
|
"lon": {
|
|
"type": "String"
|
|
},
|
|
"url": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"sarLocationShare": "Localização SAR",
|
|
"@sarLocationShare": {
|
|
"description": "Subject line when sharing SAR marker location"
|
|
},
|
|
"justNow": "Agora mesmo",
|
|
"@justNow": {
|
|
"description": "Time indicator for very recent activity"
|
|
},
|
|
"minutesAgo": "há {minutes} min",
|
|
"@minutesAgo": {
|
|
"description": "Time indicator for minutes ago",
|
|
"placeholders": {
|
|
"minutes": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"hoursAgo": "há {hours} h",
|
|
"@hoursAgo": {
|
|
"description": "Time indicator for hours ago",
|
|
"placeholders": {
|
|
"hours": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"daysAgo": "há {days} d",
|
|
"@daysAgo": {
|
|
"description": "Time indicator for days ago",
|
|
"placeholders": {
|
|
"days": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"secondsAgo": "há {seconds} s",
|
|
"@secondsAgo": {
|
|
"description": "Time indicator for seconds ago",
|
|
"placeholders": {
|
|
"seconds": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"sending": "Enviando...",
|
|
"@sending": {
|
|
"description": "Delivery status: sending"
|
|
},
|
|
"sent": "Enviado",
|
|
"@sent": {
|
|
"description": "Delivery status: sent"
|
|
},
|
|
"delivered": "Entregue",
|
|
"@delivered": {
|
|
"description": "Delivery status: delivered"
|
|
},
|
|
"deliveredWithTime": "Entregue ({time}ms)",
|
|
"@deliveredWithTime": {
|
|
"description": "Delivery status with round-trip time",
|
|
"placeholders": {
|
|
"time": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"failed": "Falhou",
|
|
"@failed": {
|
|
"description": "Delivery status: failed"
|
|
},
|
|
"broadcast": "Transmitir",
|
|
"@broadcast": {
|
|
"description": "Delivery status for channel messages (no echoes yet)"
|
|
},
|
|
"deliveredToContacts": "Delivered to {delivered}/{total} contacts",
|
|
"@deliveredToContacts": {
|
|
"description": "Grouped message delivery count",
|
|
"placeholders": {
|
|
"delivered": {
|
|
"type": "int"
|
|
},
|
|
"total": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"allDelivered": "All delivered",
|
|
"@allDelivered": {
|
|
"description": "Status when all recipients received the message"
|
|
},
|
|
"recipientDetails": "Recipient Details",
|
|
"@recipientDetails": {
|
|
"description": "Header for expandable recipient list"
|
|
},
|
|
"pending": "Pendente",
|
|
"@pending": {
|
|
"description": "Delivery status: pending/waiting"
|
|
},
|
|
"sarMarkerFoundPerson": "Found Person",
|
|
"@sarMarkerFoundPerson": {
|
|
"description": "SAR marker type: found person"
|
|
},
|
|
"sarMarkerFire": "Fire Location",
|
|
"@sarMarkerFire": {
|
|
"description": "SAR marker type: fire"
|
|
},
|
|
"sarMarkerStagingArea": "Staging Area",
|
|
"@sarMarkerStagingArea": {
|
|
"description": "SAR marker type: staging area"
|
|
},
|
|
"sarMarkerObject": "Object Found",
|
|
"@sarMarkerObject": {
|
|
"description": "SAR marker type: object"
|
|
},
|
|
"from": "De",
|
|
"@from": {
|
|
"description": "Sender label in notifications"
|
|
},
|
|
"coordinates": "Coordenadas",
|
|
"@coordinates": {
|
|
"description": "Coordinates label"
|
|
},
|
|
"tapToViewOnMap": "Toque para ver no mapa",
|
|
"@tapToViewOnMap": {
|
|
"description": "Notification action text"
|
|
},
|
|
"radioSettings": "Configurações do rádio",
|
|
"@radioSettings": {
|
|
"description": "Section title for radio settings"
|
|
},
|
|
"frequencyMHz": "Frequência (MHz)",
|
|
"@frequencyMHz": {
|
|
"description": "Label for radio frequency field"
|
|
},
|
|
"frequencyExample": "e.g., 869.618",
|
|
"@frequencyExample": {
|
|
"description": "Helper text example for frequency"
|
|
},
|
|
"bandwidth": "Largura de banda",
|
|
"@bandwidth": {
|
|
"description": "Label for bandwidth dropdown"
|
|
},
|
|
"spreadingFactor": "Fator de espalhamento",
|
|
"@spreadingFactor": {
|
|
"description": "Label for spreading factor dropdown"
|
|
},
|
|
"codingRate": "Taxa de codificação",
|
|
"@codingRate": {
|
|
"description": "Label for coding rate dropdown"
|
|
},
|
|
"txPowerDbm": "Potência TX (dBm)",
|
|
"@txPowerDbm": {
|
|
"description": "Label for TX power field"
|
|
},
|
|
"maxPowerDbm": "Máx: {power} dBm",
|
|
"@maxPowerDbm": {
|
|
"description": "Helper text showing maximum TX power",
|
|
"placeholders": {
|
|
"power": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"you": "Você",
|
|
"@you": {
|
|
"description": "Label for the current user in message bubbles"
|
|
},
|
|
"exportFailed": "Falha na exportação: {error}",
|
|
"@exportFailed": {
|
|
"description": "Error message when export fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"importFailed": "Falha na importação: {error}",
|
|
"@importFailed": {
|
|
"description": "Error message when import fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"unknown": "Desconhecido",
|
|
"@unknown": {
|
|
"description": "Unknown value label"
|
|
},
|
|
"onlineLayers": "Camadas online",
|
|
"@onlineLayers": {
|
|
"description": "Section header for online map layers"
|
|
},
|
|
"locationTrail": "Trilha de localização",
|
|
"@locationTrail": {
|
|
"description": "Location trail title"
|
|
},
|
|
"showTrailOnMap": "Mostrar trilha no mapa",
|
|
"@showTrailOnMap": {
|
|
"description": "Toggle to show/hide trail on map"
|
|
},
|
|
"trailVisible": "A trilha está visível no mapa",
|
|
"@trailVisible": {
|
|
"description": "Trail visibility status - visible"
|
|
},
|
|
"trailHiddenRecording": "A trilha está oculta (ainda gravando)",
|
|
"@trailHiddenRecording": {
|
|
"description": "Trail visibility status - hidden but recording"
|
|
},
|
|
"duration": "Duração",
|
|
"@duration": {
|
|
"description": "Duration label"
|
|
},
|
|
"points": "Pontos",
|
|
"@points": {
|
|
"description": "Trail points count label"
|
|
},
|
|
"clearTrail": "Limpar trilha",
|
|
"@clearTrail": {
|
|
"description": "Button to clear location trail"
|
|
},
|
|
"clearTrailQuestion": "Limpar trilha?",
|
|
"@clearTrailQuestion": {
|
|
"description": "Confirmation dialog title"
|
|
},
|
|
"clearTrailConfirmation": "Tem certeza de que deseja limpar a trilha de localização atual?",
|
|
"@clearTrailConfirmation": {
|
|
"description": "Confirmation dialog message"
|
|
},
|
|
"noTrailRecorded": "Nenhuma trilha gravada ainda",
|
|
"@noTrailRecorded": {
|
|
"description": "Message when no trail exists"
|
|
},
|
|
"startTrackingToRecord": "Inicie o rastreamento de localização para gravar sua trilha",
|
|
"@startTrackingToRecord": {
|
|
"description": "Instructions to start trail recording"
|
|
},
|
|
"trailControls": "Controles da trilha",
|
|
"@trailControls": {
|
|
"description": "Trail controls tooltip"
|
|
},
|
|
"contactTrails": "Trilhas dos contatos",
|
|
"@contactTrails": {
|
|
"description": "Contact trails section header"
|
|
},
|
|
"showAllContactTrails": "Mostrar todas as trilhas dos contatos",
|
|
"@showAllContactTrails": {
|
|
"description": "Toggle label to show all contact trails"
|
|
},
|
|
"noContactsWithLocationHistory": "Nenhum contato com histórico de localização",
|
|
"@noContactsWithLocationHistory": {
|
|
"description": "Subtitle when no contacts have trails"
|
|
},
|
|
"showingTrailsForContacts": "Showing trails for {count} contacts",
|
|
"@showingTrailsForContacts": {
|
|
"description": "Subtitle showing number of contacts with trails",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"individualContactTrails": "Trilhas individuais dos contatos",
|
|
"@individualContactTrails": {
|
|
"description": "Expansion tile title for individual contact trails"
|
|
},
|
|
"deviceInformation": "Informações do dispositivo",
|
|
"@deviceInformation": {
|
|
"description": "Device information section header"
|
|
},
|
|
"bleName": "Nome BLE",
|
|
"@bleName": {
|
|
"description": "Bluetooth Low Energy device name label"
|
|
},
|
|
"meshName": "Nome da mesh",
|
|
"@meshName": {
|
|
"description": "Mesh network name label"
|
|
},
|
|
"notSet": "Não definido",
|
|
"@notSet": {
|
|
"description": "Label when a value is not set"
|
|
},
|
|
"model": "Modelo",
|
|
"@model": {
|
|
"description": "Device model label"
|
|
},
|
|
"version": "Versão",
|
|
"@version": {
|
|
"description": "Version label"
|
|
},
|
|
"buildDate": "Data de build",
|
|
"@buildDate": {
|
|
"description": "Firmware build date label"
|
|
},
|
|
"firmware": "Firmware",
|
|
"@firmware": {
|
|
"description": "Firmware label"
|
|
},
|
|
"maxContacts": "Máx. de contatos",
|
|
"@maxContacts": {
|
|
"description": "Maximum contacts capacity label"
|
|
},
|
|
"maxChannels": "Máx. de canais",
|
|
"@maxChannels": {
|
|
"description": "Maximum channels capacity label"
|
|
},
|
|
"publicInfo": "Informações públicas",
|
|
"@publicInfo": {
|
|
"description": "Public information section header"
|
|
},
|
|
"meshNetworkName": "Nome da rede mesh",
|
|
"@meshNetworkName": {
|
|
"description": "Mesh network name field label"
|
|
},
|
|
"nameBroadcastInMesh": "Nome transmitido nos anúncios mesh",
|
|
"@nameBroadcastInMesh": {
|
|
"description": "Helper text for mesh network name field"
|
|
},
|
|
"telemetryAndLocationSharing": "Telemetria e compartilhamento de localização",
|
|
"@telemetryAndLocationSharing": {
|
|
"description": "Telemetry and location sharing toggle label"
|
|
},
|
|
"lat": "Lat",
|
|
"@lat": {
|
|
"description": "Latitude field label (short form)"
|
|
},
|
|
"lon": "Lon",
|
|
"@lon": {
|
|
"description": "Longitude field label (short form)"
|
|
},
|
|
"useCurrentLocation": "Usar localização atual",
|
|
"@useCurrentLocation": {
|
|
"description": "Tooltip for use current location button"
|
|
},
|
|
"noneUnknown": "Nenhum/Desconhecido",
|
|
"@noneUnknown": {
|
|
"description": "Device type: none or unknown"
|
|
},
|
|
"chatNode": "Nó de chat",
|
|
"@chatNode": {
|
|
"description": "Device type: chat node"
|
|
},
|
|
"repeater": "Repetidor",
|
|
"@repeater": {
|
|
"description": "Device type: repeater"
|
|
},
|
|
"roomChannel": "Sala/Canal",
|
|
"@roomChannel": {
|
|
"description": "Device type: room or channel"
|
|
},
|
|
"typeNumber": "Type {number}",
|
|
"@typeNumber": {
|
|
"description": "Generic device type with number",
|
|
"placeholders": {
|
|
"number": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"copiedToClipboardShort": "{label} copiado para a área de transferência",
|
|
"@copiedToClipboardShort": {
|
|
"description": "Short success message when copying to clipboard",
|
|
"placeholders": {
|
|
"label": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"failedToSave": "Falha ao salvar: {error}",
|
|
"@failedToSave": {
|
|
"description": "Generic error message for save failures",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"failedToGetLocation": "Falha ao obter localização: {error}",
|
|
"@failedToGetLocation": {
|
|
"description": "Error message when getting location fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"sarTemplates": "Modelos SAR",
|
|
"@sarTemplates": {
|
|
"description": "SAR templates menu title"
|
|
},
|
|
"manageSarTemplates": "Manage cursor on target templates",
|
|
"@manageSarTemplates": {
|
|
"description": "Subtitle for SAR templates settings"
|
|
},
|
|
"addTemplate": "Adicionar modelo",
|
|
"@addTemplate": {
|
|
"description": "Button to add new SAR template"
|
|
},
|
|
"editTemplate": "Editar modelo",
|
|
"@editTemplate": {
|
|
"description": "Dialog title for editing template"
|
|
},
|
|
"deleteTemplate": "Excluir modelo",
|
|
"@deleteTemplate": {
|
|
"description": "Action to delete template"
|
|
},
|
|
"templateName": "Nome do modelo",
|
|
"@templateName": {
|
|
"description": "Label for template name field"
|
|
},
|
|
"templateNameHint": "ex.: Pessoa encontrada",
|
|
"@templateNameHint": {
|
|
"description": "Hint text for template name"
|
|
},
|
|
"templateEmoji": "Emoji",
|
|
"@templateEmoji": {
|
|
"description": "Label for template emoji field"
|
|
},
|
|
"emojiRequired": "Emoji é obrigatório",
|
|
"@emojiRequired": {
|
|
"description": "Validation error when emoji field is empty"
|
|
},
|
|
"nameRequired": "Nome é obrigatório",
|
|
"@nameRequired": {
|
|
"description": "Validation error when name field is empty"
|
|
},
|
|
"templateDescription": "Descrição (opcional)",
|
|
"@templateDescription": {
|
|
"description": "Label for template description field"
|
|
},
|
|
"templateDescriptionHint": "Adicionar contexto extra...",
|
|
"@templateDescriptionHint": {
|
|
"description": "Hint text for template description"
|
|
},
|
|
"templateColor": "Cor",
|
|
"@templateColor": {
|
|
"description": "Label for template color picker"
|
|
},
|
|
"previewFormat": "Pré-visualização (formato de mensagem SAR)",
|
|
"@previewFormat": {
|
|
"description": "Label for format preview"
|
|
},
|
|
"importFromClipboard": "Importar",
|
|
"@importFromClipboard": {
|
|
"description": "Button to import templates from clipboard"
|
|
},
|
|
"exportToClipboard": "Exportar",
|
|
"@exportToClipboard": {
|
|
"description": "Button to export templates to clipboard"
|
|
},
|
|
"deleteTemplateConfirmation": "Excluir o modelo “{name}”?",
|
|
"@deleteTemplateConfirmation": {
|
|
"description": "Confirmation message for template deletion",
|
|
"placeholders": {
|
|
"name": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"templateAdded": "Modelo adicionado",
|
|
"@templateAdded": {
|
|
"description": "Success message when template is added"
|
|
},
|
|
"templateUpdated": "Modelo atualizado",
|
|
"@templateUpdated": {
|
|
"description": "Success message when template is updated"
|
|
},
|
|
"templateDeleted": "Modelo excluído",
|
|
"@templateDeleted": {
|
|
"description": "Success message when template is deleted"
|
|
},
|
|
"templatesImported": "{count, plural, =0{No templates imported} =1{Imported 1 template} other{Imported {count} templates}}",
|
|
"@templatesImported": {
|
|
"description": "Success message after importing templates",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"templatesExported": "{count, plural, =1{Exported 1 template to clipboard} other{Exported {count} templates to clipboard}}",
|
|
"@templatesExported": {
|
|
"description": "Success message after exporting templates",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"resetToDefaults": "Restaurar padrão",
|
|
"@resetToDefaults": {
|
|
"description": "Action to reset templates to defaults"
|
|
},
|
|
"resetToDefaultsConfirmation": "Isso excluirá todos os modelos personalizados e restaurará os 4 modelos padrão. Continuar?",
|
|
"@resetToDefaultsConfirmation": {
|
|
"description": "Confirmation message for reset to defaults"
|
|
},
|
|
"reset": "Redefinir",
|
|
"@reset": {
|
|
"description": "Reset button label"
|
|
},
|
|
"resetComplete": "Modelos redefinidos para o padrão",
|
|
"@resetComplete": {
|
|
"description": "Success message after reset"
|
|
},
|
|
"noTemplates": "Nenhum modelo disponível",
|
|
"@noTemplates": {
|
|
"description": "Message when no templates exist"
|
|
},
|
|
"tapAddToCreate": "Toque em + para criar seu primeiro modelo",
|
|
"@tapAddToCreate": {
|
|
"description": "Helper text when no templates exist"
|
|
},
|
|
"ok": "OK",
|
|
"@ok": {
|
|
"description": "OK button label"
|
|
},
|
|
"permissionsSection": "Permissões",
|
|
"@permissionsSection": {
|
|
"description": "Permissions section header"
|
|
},
|
|
"locationPermission": "Permissão de localização",
|
|
"@locationPermission": {
|
|
"description": "Location permission label"
|
|
},
|
|
"checking": "Verificando...",
|
|
"@checking": {
|
|
"description": "Loading state indicator"
|
|
},
|
|
"locationPermissionGrantedAlways": "Concedida (Sempre)",
|
|
"@locationPermissionGrantedAlways": {
|
|
"description": "Location permission status: granted always"
|
|
},
|
|
"locationPermissionGrantedWhileInUse": "Concedida (Durante o uso)",
|
|
"@locationPermissionGrantedWhileInUse": {
|
|
"description": "Location permission status: granted while in use"
|
|
},
|
|
"locationPermissionDeniedTapToRequest": "Negada - toque para solicitar",
|
|
"@locationPermissionDeniedTapToRequest": {
|
|
"description": "Location permission status: denied, user can request"
|
|
},
|
|
"locationPermissionPermanentlyDeniedOpenSettings": "Negada permanentemente - abrir configurações",
|
|
"@locationPermissionPermanentlyDeniedOpenSettings": {
|
|
"description": "Location permission status: permanently denied"
|
|
},
|
|
"locationPermissionDialogContent": "A permissão de localização foi negada permanentemente. Ative-a nas configurações do dispositivo.",
|
|
"@locationPermissionDialogContent": {
|
|
"description": "Content for location permission dialog when permanently denied"
|
|
},
|
|
"openSettings": "Abrir configurações",
|
|
"@openSettings": {
|
|
"description": "Button to open device settings"
|
|
},
|
|
"locationPermissionGranted": "Permissão de localização concedida!",
|
|
"@locationPermissionGranted": {
|
|
"description": "Success message when location permission is granted"
|
|
},
|
|
"locationPermissionRequiredForGps": "A permissão de localização é necessária para rastreamento GPS e compartilhamento de localização.",
|
|
"@locationPermissionRequiredForGps": {
|
|
"description": "Info message about location permission requirement"
|
|
},
|
|
"locationPermissionAlreadyGranted": "A permissão de localização já foi concedida.",
|
|
"@locationPermissionAlreadyGranted": {
|
|
"description": "Info message when permission is already granted"
|
|
},
|
|
"sarNavyBlue": "SAR Azul Marinho",
|
|
"@sarNavyBlue": {
|
|
"description": "SAR Navy Blue theme name"
|
|
},
|
|
"sarNavyBlueDescription": "Modo profissional/operações",
|
|
"@sarNavyBlueDescription": {
|
|
"description": "Description for SAR Navy Blue theme"
|
|
},
|
|
"selectRecipient": "Selecionar destinatário",
|
|
"@selectRecipient": {
|
|
"description": "Title for recipient selector sheet"
|
|
},
|
|
"broadcastToAllNearby": "Transmitir para todos os próximos",
|
|
"@broadcastToAllNearby": {
|
|
"description": "Subtitle for public channel option"
|
|
},
|
|
"searchRecipients": "Pesquisar destinatários...",
|
|
"@searchRecipients": {
|
|
"description": "Placeholder text for recipient search field"
|
|
},
|
|
"noContactsFound": "Nenhum contato encontrado",
|
|
"@noContactsFound": {
|
|
"description": "Message when no contacts match search"
|
|
},
|
|
"noRoomsFound": "Nenhuma sala encontrada",
|
|
"@noRoomsFound": {
|
|
"description": "Message when no rooms match search"
|
|
},
|
|
"noRecipientsAvailable": "Nenhum destinatário disponível",
|
|
"@noRecipientsAvailable": {
|
|
"description": "Message when no recipients exist (contacts, rooms, or channels)"
|
|
},
|
|
"noChannelsFound": "Nenhum canal encontrado",
|
|
"@noChannelsFound": {
|
|
"description": "Message when no channels match the search"
|
|
},
|
|
"newMessage": "Nova mensagem",
|
|
"@newMessage": {
|
|
"description": "Notification title for new message"
|
|
},
|
|
"channel": "Canal",
|
|
"@channel": {
|
|
"description": "Channel label in notifications"
|
|
},
|
|
"samplePoliceLead": "Police Lead",
|
|
"@samplePoliceLead": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"sampleDroneOperator": "Drone Operator",
|
|
"@sampleDroneOperator": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"sampleFirefighterAlpha": "Firefighter",
|
|
"@sampleFirefighterAlpha": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"sampleMedicCharlie": "Medic",
|
|
"@sampleMedicCharlie": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"sampleCommandDelta": "Command",
|
|
"@sampleCommandDelta": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"sampleFireEngine": "Fire Engine",
|
|
"@sampleFireEngine": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"sampleAirSupport": "Air Support",
|
|
"@sampleAirSupport": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"sampleBaseCoordinator": "Base Coordinator",
|
|
"@sampleBaseCoordinator": {
|
|
"description": "Sample team member name"
|
|
},
|
|
"channelEmergency": "Emergência",
|
|
"@channelEmergency": {
|
|
"description": "Emergency channel name"
|
|
},
|
|
"channelCoordination": "Coordenação",
|
|
"@channelCoordination": {
|
|
"description": "Coordination channel name"
|
|
},
|
|
"channelUpdates": "Atualizações",
|
|
"@channelUpdates": {
|
|
"description": "Updates channel name"
|
|
},
|
|
"sampleTeamMember": "Sample Team Member",
|
|
"@sampleTeamMember": {
|
|
"description": "Sample sender name"
|
|
},
|
|
"sampleScout": "Sample Scout",
|
|
"@sampleScout": {
|
|
"description": "Sample sender name"
|
|
},
|
|
"sampleBase": "Sample Base",
|
|
"@sampleBase": {
|
|
"description": "Sample sender name"
|
|
},
|
|
"sampleSearcher": "Sample Searcher",
|
|
"@sampleSearcher": {
|
|
"description": "Sample sender name"
|
|
},
|
|
"sampleObjectBackpack": " Backpack found - blue color",
|
|
"@sampleObjectBackpack": {
|
|
"description": "Sample object note"
|
|
},
|
|
"sampleObjectVehicle": " Vehicle abandoned - check for owner",
|
|
"@sampleObjectVehicle": {
|
|
"description": "Sample object note"
|
|
},
|
|
"sampleObjectCamping": " Camping equipment discovered",
|
|
"@sampleObjectCamping": {
|
|
"description": "Sample object note"
|
|
},
|
|
"sampleObjectTrailMarker": " Trail marker found off-path",
|
|
"@sampleObjectTrailMarker": {
|
|
"description": "Sample object note"
|
|
},
|
|
"sampleMsgAllTeamsCheckIn": "All teams check in",
|
|
"@sampleMsgAllTeamsCheckIn": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgWeatherUpdate": "Weather update: Clear skies, temp 18°C",
|
|
"@sampleMsgWeatherUpdate": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgBaseCamp": "Base camp established at staging area",
|
|
"@sampleMsgBaseCamp": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgTeamAlpha": "Team moving to sector 2",
|
|
"@sampleMsgTeamAlpha": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgRadioCheck": "Radio check - all stations respond",
|
|
"@sampleMsgRadioCheck": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgWaterSupply": "Water supply available at checkpoint 3",
|
|
"@sampleMsgWaterSupply": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgTeamBravo": "Team reporting: sector 1 clear",
|
|
"@sampleMsgTeamBravo": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgEtaRallyPoint": "ETA to rally point: 15 minutes",
|
|
"@sampleMsgEtaRallyPoint": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgSupplyDrop": "Supply drop confirmed for 14:00",
|
|
"@sampleMsgSupplyDrop": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgDroneSurvey": "Drone survey completed - no findings",
|
|
"@sampleMsgDroneSurvey": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgTeamCharlie": "Team requesting backup",
|
|
"@sampleMsgTeamCharlie": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgRadioDiscipline": "All units: maintain radio discipline",
|
|
"@sampleMsgRadioDiscipline": {
|
|
"description": "Sample channel message"
|
|
},
|
|
"sampleMsgUrgentMedical": "URGENT: Medical assistance needed at sector 4",
|
|
"@sampleMsgUrgentMedical": {
|
|
"description": "Sample emergency message"
|
|
},
|
|
"sampleMsgAdultMale": " Adult male, conscious",
|
|
"@sampleMsgAdultMale": {
|
|
"description": "Sample emergency message note"
|
|
},
|
|
"sampleMsgFireSpotted": "Fire spotted - coordinates incoming",
|
|
"@sampleMsgFireSpotted": {
|
|
"description": "Sample emergency message"
|
|
},
|
|
"sampleMsgSpreadingRapidly": " Spreading rapidly!",
|
|
"@sampleMsgSpreadingRapidly": {
|
|
"description": "Sample emergency message note"
|
|
},
|
|
"sampleMsgPriorityHelicopter": "PRIORITY: Need helicopter support",
|
|
"@sampleMsgPriorityHelicopter": {
|
|
"description": "Sample emergency message"
|
|
},
|
|
"sampleMsgMedicalTeamEnRoute": "Medical team en route to your location",
|
|
"@sampleMsgMedicalTeamEnRoute": {
|
|
"description": "Sample emergency message"
|
|
},
|
|
"sampleMsgEvacHelicopter": "Evac helicopter ETA 10 minutes",
|
|
"@sampleMsgEvacHelicopter": {
|
|
"description": "Sample emergency message"
|
|
},
|
|
"sampleMsgEmergencyResolved": "Emergency resolved - all clear",
|
|
"@sampleMsgEmergencyResolved": {
|
|
"description": "Sample emergency message"
|
|
},
|
|
"sampleMsgEmergencyStagingArea": " Emergency staging area",
|
|
"@sampleMsgEmergencyStagingArea": {
|
|
"description": "Sample emergency message note"
|
|
},
|
|
"sampleMsgEmergencyServices": "Emergency services notified and responding",
|
|
"@sampleMsgEmergencyServices": {
|
|
"description": "Sample emergency message"
|
|
},
|
|
"sampleAlphaTeamLead": "Team Lead",
|
|
"@sampleAlphaTeamLead": {
|
|
"description": "Sample team name"
|
|
},
|
|
"sampleBravoScout": "Scout",
|
|
"@sampleBravoScout": {
|
|
"description": "Sample team name"
|
|
},
|
|
"sampleCharlieMedic": "Medic",
|
|
"@sampleCharlieMedic": {
|
|
"description": "Sample team name"
|
|
},
|
|
"sampleDeltaNavigator": "Navigator",
|
|
"@sampleDeltaNavigator": {
|
|
"description": "Sample team name"
|
|
},
|
|
"sampleEchoSupport": "Support",
|
|
"@sampleEchoSupport": {
|
|
"description": "Sample team name"
|
|
},
|
|
"sampleBaseCommand": "Base Command",
|
|
"@sampleBaseCommand": {
|
|
"description": "Sample team name"
|
|
},
|
|
"sampleFieldCoordinator": "Field Coordinator",
|
|
"@sampleFieldCoordinator": {
|
|
"description": "Sample team name"
|
|
},
|
|
"sampleMedicalTeam": "Medical Team",
|
|
"@sampleMedicalTeam": {
|
|
"description": "Sample team name"
|
|
},
|
|
"mapDrawing": "Desenho do mapa",
|
|
"@mapDrawing": {
|
|
"description": "Label for map drawing messages"
|
|
},
|
|
"navigateToDrawing": "Navigate to Drawing",
|
|
"@navigateToDrawing": {
|
|
"description": "Option to navigate to drawing on map"
|
|
},
|
|
"copyCoordinates": "Copiar coordenadas",
|
|
"@copyCoordinates": {
|
|
"description": "Option to copy coordinates to clipboard"
|
|
},
|
|
"hideFromMap": "Ocultar do mapa",
|
|
"@hideFromMap": {
|
|
"description": "Option to hide drawing from map"
|
|
},
|
|
"lineDrawing": "Desenho de linha",
|
|
"@lineDrawing": {
|
|
"description": "Label for line type drawings"
|
|
},
|
|
"rectangleDrawing": "Desenho de retângulo",
|
|
"@rectangleDrawing": {
|
|
"description": "Label for rectangle type drawings"
|
|
},
|
|
"manualCoordinates": "Coordenadas manuais",
|
|
"@manualCoordinates": {
|
|
"description": "Label for manual coordinate input toggle"
|
|
},
|
|
"enterCoordinatesManually": "Inserir coordenadas manualmente",
|
|
"@enterCoordinatesManually": {
|
|
"description": "Description for manual coordinate input option"
|
|
},
|
|
"latitudeLabel": "Latitude",
|
|
"@latitudeLabel": {
|
|
"description": "Label for latitude input field"
|
|
},
|
|
"longitudeLabel": "Longitude",
|
|
"@longitudeLabel": {
|
|
"description": "Label for longitude input field"
|
|
},
|
|
"exampleCoordinates": "Example: 46.0569, 14.5058",
|
|
"@exampleCoordinates": {
|
|
"description": "Example coordinate format hint"
|
|
},
|
|
"shareDrawing": "Compartilhar desenho",
|
|
"@shareDrawing": {
|
|
"description": "Title for share single drawing dialog"
|
|
},
|
|
"shareWithAllNearbyDevices": "Compartilhar com todos os dispositivos próximos",
|
|
"@shareWithAllNearbyDevices": {
|
|
"description": "Subtitle for public channel sharing option"
|
|
},
|
|
"shareToRoom": "Compartilhar na sala",
|
|
"@shareToRoom": {
|
|
"description": "Header for room sharing section"
|
|
},
|
|
"sendToPersistentStorage": "Enviar para armazenamento persistente da sala",
|
|
"@sendToPersistentStorage": {
|
|
"description": "Subtitle for room sharing option"
|
|
},
|
|
"deleteDrawingConfirm": "Tem certeza de que deseja excluir este desenho?",
|
|
"@deleteDrawingConfirm": {
|
|
"description": "Confirmation message for deleting a single drawing"
|
|
},
|
|
"drawingDeleted": "Desenho excluído",
|
|
"@drawingDeleted": {
|
|
"description": "Success message after deleting a drawing"
|
|
},
|
|
"yourDrawingsCount": "Your Drawings ({count})",
|
|
"@yourDrawingsCount": {
|
|
"description": "Header showing count of user's drawings",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"shared": "Compartilhado",
|
|
"@shared": {
|
|
"description": "Status label for shared drawings"
|
|
},
|
|
"line": "Linha",
|
|
"@line": {
|
|
"description": "Line drawing type label"
|
|
},
|
|
"rectangle": "Retângulo",
|
|
"@rectangle": {
|
|
"description": "Rectangle drawing type label"
|
|
},
|
|
"updateAvailable": "Atualização disponível",
|
|
"@updateAvailable": {
|
|
"description": "Title for update dialog when new version is available"
|
|
},
|
|
"currentVersion": "Atual",
|
|
"@currentVersion": {
|
|
"description": "Label for current app version"
|
|
},
|
|
"latestVersion": "Mais recente",
|
|
"@latestVersion": {
|
|
"description": "Label for latest available app version"
|
|
},
|
|
"downloadUpdate": "Baixar",
|
|
"@downloadUpdate": {
|
|
"description": "Button to download app update"
|
|
},
|
|
"updateLater": "Mais tarde",
|
|
"@updateLater": {
|
|
"description": "Button to dismiss update dialog"
|
|
},
|
|
"cadastralParcels": "Cadastral Parcels",
|
|
"@cadastralParcels": {
|
|
"description": "Label for cadastral parcels WMS overlay layer"
|
|
},
|
|
"forestRoads": "Forest Roads",
|
|
"@forestRoads": {
|
|
"description": "Label for forest roads WMS overlay layer"
|
|
},
|
|
"wmsOverlays": "WMS Overlays",
|
|
"@wmsOverlays": {
|
|
"description": "Section header for WMS overlay layers in layer selector"
|
|
},
|
|
"hikingTrails": "Hiking Trails",
|
|
"@hikingTrails": {
|
|
"description": "Label for hiking/mountain trails WMS overlay layer"
|
|
},
|
|
"mainRoads": "Main Roads",
|
|
"@mainRoads": {
|
|
"description": "Label for main roads WMS overlay layer"
|
|
},
|
|
"houseNumbers": "House Numbers",
|
|
"@houseNumbers": {
|
|
"description": "Label for house numbers WMS overlay layer"
|
|
},
|
|
"fireHazardZones": "Fire Hazard Zones",
|
|
"@fireHazardZones": {
|
|
"description": "Label for fire hazard risk zones WMS overlay layer"
|
|
},
|
|
"historicalFires": "Historical Fires",
|
|
"@historicalFires": {
|
|
"description": "Label for historical forest fires WMS overlay layer"
|
|
},
|
|
"firebreaks": "Firebreaks",
|
|
"@firebreaks": {
|
|
"description": "Label for firebreaks WMS overlay layer"
|
|
},
|
|
"krasFireZones": "Kras Fire Zones",
|
|
"@krasFireZones": {
|
|
"description": "Label for Kras fire zones WMS overlay layer"
|
|
},
|
|
"placeNames": "Place Names",
|
|
"@placeNames": {
|
|
"description": "Label for geographic place names WMS overlay layer"
|
|
},
|
|
"municipalityBorders": "Municipality Borders",
|
|
"@municipalityBorders": {
|
|
"description": "Label for municipality borders WMS overlay layer"
|
|
},
|
|
"topographicMap": "Topographic Map 1:25000",
|
|
"@topographicMap": {
|
|
"description": "Label for DTK25 topographic base map layer"
|
|
},
|
|
"recentMessages": "Mensagens recentes",
|
|
"@recentMessages": {
|
|
"description": "Header for recent messages overlay on map in fullscreen mode"
|
|
},
|
|
"addChannel": "Adicionar canal",
|
|
"@addChannel": {
|
|
"description": "Button to add a new channel"
|
|
},
|
|
"channelName": "Nome do canal",
|
|
"@channelName": {
|
|
"description": "Label for channel name field"
|
|
},
|
|
"channelNameHint": "ex.: Equipe de Resgate Alfa",
|
|
"@channelNameHint": {
|
|
"description": "Hint for channel name field"
|
|
},
|
|
"channelSecret": "Segredo do canal",
|
|
"@channelSecret": {
|
|
"description": "Label for channel secret field"
|
|
},
|
|
"channelSecretHint": "Senha compartilhada para este canal",
|
|
"@channelSecretHint": {
|
|
"description": "Hint for channel secret field"
|
|
},
|
|
"channelSecretHelp": "This secret must be shared with all team members who need access to this channel",
|
|
"@channelSecretHelp": {
|
|
"description": "Help text explaining channel secret"
|
|
},
|
|
"channelTypesInfo": "Hash channels (#team): Secret auto-generated from name. Same name = same channel across devices.\n\nPrivate channels: Use explicit secret. Only those with the secret can join.",
|
|
"@channelTypesInfo": {
|
|
"description": "Information banner explaining hash and private channel types"
|
|
},
|
|
"hashChannelInfo": "Hash channel: Secret will be auto-generated from the channel name. Anyone using the same name will join the same channel.",
|
|
"@hashChannelInfo": {
|
|
"description": "Help text for hash channels (# prefix)"
|
|
},
|
|
"channelNameRequired": "O nome do canal é obrigatório",
|
|
"@channelNameRequired": {
|
|
"description": "Validation error for empty channel name"
|
|
},
|
|
"channelNameTooLong": "Channel name must be 31 characters or less",
|
|
"@channelNameTooLong": {
|
|
"description": "Validation error for channel name too long"
|
|
},
|
|
"channelSecretRequired": "O segredo do canal é obrigatório",
|
|
"@channelSecretRequired": {
|
|
"description": "Validation error for empty channel secret"
|
|
},
|
|
"channelSecretTooLong": "Channel secret must be 32 characters or less",
|
|
"@channelSecretTooLong": {
|
|
"description": "Validation error for channel secret too long"
|
|
},
|
|
"invalidAsciiCharacters": "Somente caracteres ASCII são permitidos",
|
|
"@invalidAsciiCharacters": {
|
|
"description": "Validation error for non-ASCII characters"
|
|
},
|
|
"channelCreatedSuccessfully": "Canal criado com sucesso",
|
|
"@channelCreatedSuccessfully": {
|
|
"description": "Success message after creating channel"
|
|
},
|
|
"channelCreationFailed": "Falha ao criar canal: {error}",
|
|
"@channelCreationFailed": {
|
|
"description": "Error message when channel creation fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"deleteChannel": "Excluir canal",
|
|
"@deleteChannel": {
|
|
"description": "Delete channel button/menu item"
|
|
},
|
|
"deleteChannelConfirmation": "Are you sure you want to delete channel \"{channelName}\"? This action cannot be undone.",
|
|
"@deleteChannelConfirmation": {
|
|
"description": "Confirmation dialog when deleting a channel",
|
|
"placeholders": {
|
|
"channelName": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"channelDeletedSuccessfully": "Canal excluído com sucesso",
|
|
"@channelDeletedSuccessfully": {
|
|
"description": "Success message after deleting channel"
|
|
},
|
|
"channelDeletionFailed": "Falha ao excluir canal: {error}",
|
|
"@channelDeletionFailed": {
|
|
"description": "Error message when channel deletion fails",
|
|
"placeholders": {
|
|
"error": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"createChannel": "Criar canal",
|
|
"@createChannel": {
|
|
"description": "Button text for creating a channel"
|
|
},
|
|
"wizardBack": "Voltar",
|
|
"@wizardBack": {
|
|
"description": "Wizard back button text"
|
|
},
|
|
"wizardSkip": "Pular",
|
|
"@wizardSkip": {
|
|
"description": "Wizard skip button text"
|
|
},
|
|
"wizardNext": "Próximo",
|
|
"@wizardNext": {
|
|
"description": "Wizard next button text"
|
|
},
|
|
"wizardGetStarted": "Começar",
|
|
"@wizardGetStarted": {
|
|
"description": "Wizard final button text to complete onboarding"
|
|
},
|
|
"wizardWelcomeTitle": "Bem-vindo ao MeshCore SAR",
|
|
"@wizardWelcomeTitle": {
|
|
"description": "Welcome wizard first page title"
|
|
},
|
|
"wizardWelcomeDescription": "A powerful off-grid communication tool for search and rescue operations. Connect with your team using mesh radio technology when traditional networks are unavailable.",
|
|
"@wizardWelcomeDescription": {
|
|
"description": "Welcome wizard first page description"
|
|
},
|
|
"wizardConnectingTitle": "Conectando ao seu rádio",
|
|
"@wizardConnectingTitle": {
|
|
"description": "Wizard connecting page title"
|
|
},
|
|
"wizardConnectingDescription": "Connect your smartphone to a MeshCore radio device via Bluetooth to start communicating off-grid.",
|
|
"@wizardConnectingDescription": {
|
|
"description": "Wizard connecting page description"
|
|
},
|
|
"wizardConnectingFeature1": "Scan for nearby MeshCore devices",
|
|
"@wizardConnectingFeature1": {
|
|
"description": "Wizard connecting feature 1"
|
|
},
|
|
"wizardConnectingFeature2": "Pair with your radio via Bluetooth",
|
|
"@wizardConnectingFeature2": {
|
|
"description": "Wizard connecting feature 2"
|
|
},
|
|
"wizardConnectingFeature3": "Works completely offline - no internet required",
|
|
"@wizardConnectingFeature3": {
|
|
"description": "Wizard connecting feature 3"
|
|
},
|
|
"wizardChannelTitle": "Canais",
|
|
"@wizardChannelTitle": {
|
|
"description": "Wizard channel page title"
|
|
},
|
|
"wizardChannelDescription": "Broadcast messages to everyone on a channel, perfect for team-wide announcements and coordination.",
|
|
"@wizardChannelDescription": {
|
|
"description": "Wizard channel page description"
|
|
},
|
|
"wizardChannelFeature1": "Public Channel for general team communication",
|
|
"@wizardChannelFeature1": {
|
|
"description": "Wizard channel feature 1"
|
|
},
|
|
"wizardChannelFeature2": "Create custom channels for specific groups",
|
|
"@wizardChannelFeature2": {
|
|
"description": "Wizard channel feature 2"
|
|
},
|
|
"wizardChannelFeature3": "Messages are automatically relayed by the mesh",
|
|
"@wizardChannelFeature3": {
|
|
"description": "Wizard channel feature 3"
|
|
},
|
|
"wizardContactsTitle": "Contatos",
|
|
"@wizardContactsTitle": {
|
|
"description": "Wizard contacts page title"
|
|
},
|
|
"wizardContactsDescription": "Your team members appear automatically as they join the mesh network. Send them direct messages or view their location.",
|
|
"@wizardContactsDescription": {
|
|
"description": "Wizard contacts page description"
|
|
},
|
|
"wizardContactsFeature1": "Contacts discovered automatically",
|
|
"@wizardContactsFeature1": {
|
|
"description": "Wizard contacts feature 1"
|
|
},
|
|
"wizardContactsFeature2": "Send private direct messages",
|
|
"@wizardContactsFeature2": {
|
|
"description": "Wizard contacts feature 2"
|
|
},
|
|
"wizardContactsFeature3": "View battery level and last seen time",
|
|
"@wizardContactsFeature3": {
|
|
"description": "Wizard contacts feature 3"
|
|
},
|
|
"wizardMapTitle": "Mapa e localização",
|
|
"@wizardMapTitle": {
|
|
"description": "Wizard map page title"
|
|
},
|
|
"wizardMapDescription": "Track your team in real-time and mark important locations for search and rescue operations.",
|
|
"@wizardMapDescription": {
|
|
"description": "Wizard map page description"
|
|
},
|
|
"wizardMapFeature1": "SAR markers for found persons, fires, and staging areas",
|
|
"@wizardMapFeature1": {
|
|
"description": "Wizard map feature 1"
|
|
},
|
|
"wizardMapFeature2": "Real-time GPS tracking of team members",
|
|
"@wizardMapFeature2": {
|
|
"description": "Wizard map feature 2"
|
|
},
|
|
"wizardMapFeature3": "Download offline maps for remote areas",
|
|
"@wizardMapFeature3": {
|
|
"description": "Wizard map feature 3"
|
|
},
|
|
"wizardMapFeature4": "Draw shapes and share tactical information",
|
|
"@wizardMapFeature4": {
|
|
"description": "Wizard map feature 4"
|
|
},
|
|
"viewWelcomeTutorial": "Ver tutorial de boas-vindas",
|
|
"@viewWelcomeTutorial": {
|
|
"description": "Settings option to re-show welcome wizard"
|
|
},
|
|
"allTeamContacts": "Todos os contatos da equipe",
|
|
"@allTeamContacts": {
|
|
"description": "Destination option to send SAR marker to all team contacts"
|
|
},
|
|
"directMessagesInfo": "Direct messages with ACKs. Sent to {count} team members.",
|
|
"@directMessagesInfo": {
|
|
"description": "Information about sending to all contacts",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"sarMarkerSentToContacts": "SAR marker sent to {count} contacts",
|
|
"@sarMarkerSentToContacts": {
|
|
"description": "Success message after sending SAR marker to all contacts",
|
|
"placeholders": {
|
|
"count": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"noContactsAvailable": "Nenhum contato da equipe disponível",
|
|
"@noContactsAvailable": {
|
|
"description": "Message when there are no chat contacts to send to"
|
|
},
|
|
"reply": "Responder",
|
|
"@reply": {},
|
|
"technicalDetails": "Detalhes técnicos",
|
|
"@technicalDetails": {},
|
|
"messageTechnicalDetails": "Message technical details",
|
|
"@messageTechnicalDetails": {},
|
|
"linkQuality": "Link quality",
|
|
"@linkQuality": {},
|
|
"delivery": "Delivery",
|
|
"@delivery": {},
|
|
"status": "Status",
|
|
"@status": {},
|
|
"expectedAckTag": "Expected ACK tag",
|
|
"@expectedAckTag": {},
|
|
"roundTrip": "Round-trip",
|
|
"@roundTrip": {},
|
|
"retryAttempt": "Retry attempt",
|
|
"@retryAttempt": {},
|
|
"floodFallback": "Flood fallback",
|
|
"@floodFallback": {},
|
|
"identity": "Identity",
|
|
"@identity": {},
|
|
"messageId": "Message ID",
|
|
"@messageId": {},
|
|
"sender": "Sender",
|
|
"@sender": {},
|
|
"senderKey": "Sender key",
|
|
"@senderKey": {},
|
|
"recipient": "Recipient",
|
|
"@recipient": {},
|
|
"recipientKey": "Recipient key",
|
|
"@recipientKey": {},
|
|
"voice": "Voz",
|
|
"@voice": {},
|
|
"voiceId": "Voice ID",
|
|
"@voiceId": {},
|
|
"envelope": "Envelope",
|
|
"@envelope": {},
|
|
"sessionProgress": "Session progress",
|
|
"@sessionProgress": {},
|
|
"complete": "Concluído",
|
|
"@complete": {},
|
|
"rawDump": "Raw dump",
|
|
"@rawDump": {},
|
|
"cannotRetryMissingRecipient": "Cannot retry: recipient information missing",
|
|
"@cannotRetryMissingRecipient": {},
|
|
"voiceUnavailable": "A voz não está disponível no momento",
|
|
"@voiceUnavailable": {},
|
|
"requestingVoice": "Requesting voice",
|
|
"@requestingVoice": {}
|
|
}
|