mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
1740 lines
41 KiB
Dart
1740 lines
41 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for Spanish Castilian (`es`).
|
|
class AppLocalizationsEs extends AppLocalizations {
|
|
AppLocalizationsEs([String locale = 'es']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'MeshCore SAR';
|
|
|
|
@override
|
|
String get messages => 'Mensajes';
|
|
|
|
@override
|
|
String get contacts => 'Contactos';
|
|
|
|
@override
|
|
String get map => 'Mapa';
|
|
|
|
@override
|
|
String get settings => 'Configuración';
|
|
|
|
@override
|
|
String get connect => 'Conectar';
|
|
|
|
@override
|
|
String get disconnect => 'Desconectar';
|
|
|
|
@override
|
|
String get noDevicesFound => 'No se encontraron dispositivos';
|
|
|
|
@override
|
|
String get scanAgain => 'Buscar de nuevo';
|
|
|
|
@override
|
|
String get tapToConnect => 'Toca para conectar';
|
|
|
|
@override
|
|
String get deviceNotConnected => 'Dispositivo no conectado';
|
|
|
|
@override
|
|
String get locationPermissionDenied => 'Permiso de ubicación denegado';
|
|
|
|
@override
|
|
String get locationPermissionPermanentlyDenied =>
|
|
'Permiso de ubicación denegado permanentemente. Por favor, actívalo en Configuración.';
|
|
|
|
@override
|
|
String get locationPermissionRequired =>
|
|
'El permiso de ubicación es necesario para el seguimiento GPS y la coordinación del equipo. Puedes activarlo más tarde en Configuración.';
|
|
|
|
@override
|
|
String get locationServicesDisabled =>
|
|
'Los servicios de ubicación están desactivados. Por favor, actívalos en Configuración.';
|
|
|
|
@override
|
|
String get failedToGetGpsLocation => 'Error al obtener la ubicación GPS';
|
|
|
|
@override
|
|
String failedToAdvertise(String error) {
|
|
return 'Error al anunciar: $error';
|
|
}
|
|
|
|
@override
|
|
String get cancelReconnection => 'Cancelar reconexión';
|
|
|
|
@override
|
|
String get general => 'General';
|
|
|
|
@override
|
|
String get theme => 'Tema';
|
|
|
|
@override
|
|
String get chooseTheme => 'Elegir tema';
|
|
|
|
@override
|
|
String get light => 'Claro';
|
|
|
|
@override
|
|
String get dark => 'Oscuro';
|
|
|
|
@override
|
|
String get blueLightTheme => 'Tema azul claro';
|
|
|
|
@override
|
|
String get blueDarkTheme => 'Tema azul oscuro';
|
|
|
|
@override
|
|
String get sarRed => 'SAR Rojo';
|
|
|
|
@override
|
|
String get alertEmergencyMode => 'Modo de alerta/emergencia';
|
|
|
|
@override
|
|
String get sarGreen => 'SAR Verde';
|
|
|
|
@override
|
|
String get safeAllClearMode => 'Modo seguro/todo despejado';
|
|
|
|
@override
|
|
String get autoSystem => 'Auto (Sistema)';
|
|
|
|
@override
|
|
String get followSystemTheme => 'Seguir el tema del sistema';
|
|
|
|
@override
|
|
String get showRxTxIndicators => 'Mostrar indicadores RX/TX';
|
|
|
|
@override
|
|
String get displayPacketActivity =>
|
|
'Mostrar indicadores de actividad de paquetes en la barra superior';
|
|
|
|
@override
|
|
String get disableMap => 'Desactivar mapa';
|
|
|
|
@override
|
|
String get disableMapDescription =>
|
|
'Ocultar la pestaña del mapa para reducir el uso de batería';
|
|
|
|
@override
|
|
String get language => 'Idioma';
|
|
|
|
@override
|
|
String get chooseLanguage => 'Elegir idioma';
|
|
|
|
@override
|
|
String get save => 'Guardar';
|
|
|
|
@override
|
|
String get cancel => 'Cancelar';
|
|
|
|
@override
|
|
String get close => 'Cerrar';
|
|
|
|
@override
|
|
String get about => 'Acerca de';
|
|
|
|
@override
|
|
String get appVersion => 'Versión de la aplicación';
|
|
|
|
@override
|
|
String get appName => 'Nombre de la aplicación';
|
|
|
|
@override
|
|
String get aboutMeshCoreSar => 'Acerca de MeshCore SAR';
|
|
|
|
@override
|
|
String get aboutDescription =>
|
|
'Una aplicación de Búsqueda y Rescate diseñada para equipos de respuesta a emergencias. Las características incluyen:\n\n• Red mesh BLE para comunicación entre dispositivos\n• Mapas sin conexión con múltiples opciones de capas\n• Seguimiento en tiempo real de miembros del equipo\n• Marcadores tácticos SAR (persona encontrada, fuego, zona de preparación)\n• Gestión de contactos y mensajería\n• Seguimiento GPS con rumbo de brújula\n• Caché de teselas de mapa para uso sin conexión';
|
|
|
|
@override
|
|
String get technologiesUsed => 'Tecnologías utilizadas:';
|
|
|
|
@override
|
|
String get technologiesList =>
|
|
'• Flutter para desarrollo multiplataforma\n• BLE (Bluetooth Low Energy) para redes mesh\n• OpenStreetMap para mapas\n• Provider para gestión de estado\n• SharedPreferences para almacenamiento local';
|
|
|
|
@override
|
|
String get moreInfo => 'Más información';
|
|
|
|
@override
|
|
String get packageName => 'Nombre del paquete';
|
|
|
|
@override
|
|
String get sampleData => 'Datos de muestra';
|
|
|
|
@override
|
|
String get sampleDataDescription =>
|
|
'Cargar o borrar contactos de muestra, mensajes de canal y marcadores SAR para pruebas';
|
|
|
|
@override
|
|
String get loadSampleData => 'Cargar datos de muestra';
|
|
|
|
@override
|
|
String get clearAllData => 'Borrar todos los datos';
|
|
|
|
@override
|
|
String get clearAllDataConfirmTitle => 'Borrar todos los datos';
|
|
|
|
@override
|
|
String get clearAllDataConfirmMessage =>
|
|
'Esto borrará todos los contactos y marcadores SAR. ¿Estás seguro?';
|
|
|
|
@override
|
|
String get clear => 'Borrar';
|
|
|
|
@override
|
|
String loadedSampleData(
|
|
int teamCount,
|
|
int channelCount,
|
|
int sarCount,
|
|
int messageCount,
|
|
) {
|
|
return 'Cargados $teamCount miembros del equipo, $channelCount canales, $sarCount marcadores SAR, $messageCount mensajes';
|
|
}
|
|
|
|
@override
|
|
String failedToLoadSampleData(String error) {
|
|
return 'Error al cargar datos de muestra: $error';
|
|
}
|
|
|
|
@override
|
|
String get allDataCleared => 'Todos los datos borrados';
|
|
|
|
@override
|
|
String get failedToStartBackgroundTracking =>
|
|
'Error al iniciar el seguimiento en segundo plano. Verifica los permisos y la conexión BLE.';
|
|
|
|
@override
|
|
String locationBroadcast(String latitude, String longitude) {
|
|
return 'Difusión de ubicación: $latitude, $longitude';
|
|
}
|
|
|
|
@override
|
|
String get defaultPinInfo =>
|
|
'El PIN predeterminado para dispositivos sin pantalla es 123456. ¿Problemas para emparejar? Olvida el dispositivo bluetooth en la configuración del sistema.';
|
|
|
|
@override
|
|
String get noMessagesYet => 'Aún no hay mensajes';
|
|
|
|
@override
|
|
String get pullDownToSync => 'Desliza hacia abajo para sincronizar mensajes';
|
|
|
|
@override
|
|
String get deleteContact => 'Eliminar contacto';
|
|
|
|
@override
|
|
String get delete => 'Eliminar';
|
|
|
|
@override
|
|
String get viewOnMap => 'Ver en el mapa';
|
|
|
|
@override
|
|
String get refresh => 'Actualizar';
|
|
|
|
@override
|
|
String get resetPath => 'Restablecer ruta (Re-enrutar)';
|
|
|
|
@override
|
|
String get publicKeyCopied => 'Clave pública copiada al portapapeles';
|
|
|
|
@override
|
|
String copiedToClipboard(String label) {
|
|
return '$label copiado al portapapeles';
|
|
}
|
|
|
|
@override
|
|
String get pleaseEnterPassword => 'Por favor, introduce una contraseña';
|
|
|
|
@override
|
|
String failedToSyncContacts(String error) {
|
|
return 'Error al sincronizar contactos: $error';
|
|
}
|
|
|
|
@override
|
|
String get loggedInSuccessfully =>
|
|
'¡Inicio de sesión exitoso! Esperando mensajes de la sala...';
|
|
|
|
@override
|
|
String get loginFailed => 'Error de inicio de sesión - contraseña incorrecta';
|
|
|
|
@override
|
|
String loggingIn(String roomName) {
|
|
return 'Iniciando sesión en $roomName...';
|
|
}
|
|
|
|
@override
|
|
String failedToSendLogin(String error) {
|
|
return 'Error al enviar inicio de sesión: $error';
|
|
}
|
|
|
|
@override
|
|
String get lowLocationAccuracy => 'Baja precisión de ubicación';
|
|
|
|
@override
|
|
String get continue_ => 'Continuar';
|
|
|
|
@override
|
|
String get sendSarMarker => 'Enviar marcador SAR';
|
|
|
|
@override
|
|
String get deleteDrawing => 'Eliminar dibujo';
|
|
|
|
@override
|
|
String get drawingTools => 'Herramientas de Dibujo';
|
|
|
|
@override
|
|
String get drawLine => 'Dibujar línea';
|
|
|
|
@override
|
|
String get drawLineDesc => 'Dibujar una línea a mano alzada en el mapa';
|
|
|
|
@override
|
|
String get drawRectangle => 'Dibujar rectángulo';
|
|
|
|
@override
|
|
String get drawRectangleDesc => 'Dibujar un área rectangular en el mapa';
|
|
|
|
@override
|
|
String get measureDistance => 'Medir distancia';
|
|
|
|
@override
|
|
String get measureDistanceDesc =>
|
|
'Presión prolongada en dos puntos para medir';
|
|
|
|
@override
|
|
String get clearMeasurement => 'Borrar medición';
|
|
|
|
@override
|
|
String distanceLabel(String distance) {
|
|
return 'Distancia: $distance';
|
|
}
|
|
|
|
@override
|
|
String get longPressForSecondPoint =>
|
|
'Presión prolongada para el segundo punto';
|
|
|
|
@override
|
|
String get longPressToStartMeasurement =>
|
|
'Presión prolongada para establecer el primer punto';
|
|
|
|
@override
|
|
String get longPressToStartNewMeasurement =>
|
|
'Presión prolongada para nueva medición';
|
|
|
|
@override
|
|
String get shareDrawings => 'Compartir dibujos';
|
|
|
|
@override
|
|
String get clearAllDrawings => 'Borrar todos los dibujos';
|
|
|
|
@override
|
|
String get completeLine => 'Completar línea';
|
|
|
|
@override
|
|
String broadcastDrawingsToTeam(int count, String plural) {
|
|
return 'Transmitir $count dibujo$plural al equipo';
|
|
}
|
|
|
|
@override
|
|
String removeAllDrawings(int count, String plural) {
|
|
return 'Eliminar todos los $count dibujo$plural';
|
|
}
|
|
|
|
@override
|
|
String deleteAllDrawingsConfirm(int count, String plural) {
|
|
return '¿Eliminar todos los $count dibujo$plural del mapa?';
|
|
}
|
|
|
|
@override
|
|
String get drawing => 'Dibujo';
|
|
|
|
@override
|
|
String shareDrawingsCount(int count, String plural) {
|
|
return 'Compartir $count dibujo$plural';
|
|
}
|
|
|
|
@override
|
|
String get showReceivedDrawings => 'Mostrar dibujos recibidos';
|
|
|
|
@override
|
|
String get showingAllDrawings => 'Mostrando todos los dibujos';
|
|
|
|
@override
|
|
String get showingOnlyYourDrawings => 'Mostrando solo tus dibujos';
|
|
|
|
@override
|
|
String get showSarMarkers => 'Mostrar marcadores SAR';
|
|
|
|
@override
|
|
String get showingSarMarkers => 'Mostrando marcadores SAR';
|
|
|
|
@override
|
|
String get hidingSarMarkers => 'Ocultando marcadores SAR';
|
|
|
|
@override
|
|
String get clearAll => 'Borrar todo';
|
|
|
|
@override
|
|
String get publicChannel => 'Canal público';
|
|
|
|
@override
|
|
String get broadcastToAll => 'Difundir a todos los nodos cercanos (efímero)';
|
|
|
|
@override
|
|
String get storedPermanently => 'Almacenado permanentemente en la sala';
|
|
|
|
@override
|
|
String get notConnectedToDevice => 'No conectado al dispositivo';
|
|
|
|
@override
|
|
String get typeYourMessage => 'Escribe tu mensaje...';
|
|
|
|
@override
|
|
String get quickLocationMarker => 'Marcador de ubicación rápida';
|
|
|
|
@override
|
|
String get markerType => 'Tipo de marcador';
|
|
|
|
@override
|
|
String get sendTo => 'Enviar a';
|
|
|
|
@override
|
|
String get noDestinationsAvailable => 'No hay destinos disponibles.';
|
|
|
|
@override
|
|
String get selectDestination => 'Seleccionar destino...';
|
|
|
|
@override
|
|
String get ephemeralBroadcastInfo =>
|
|
'Efímero: Solo difusión por el aire. No se almacena - los nodos deben estar en línea.';
|
|
|
|
@override
|
|
String get persistentRoomInfo =>
|
|
'Persistente: Almacenado de manera inmutable en la sala. Se sincroniza automáticamente y se conserva sin conexión.';
|
|
|
|
@override
|
|
String get location => 'Ubicación';
|
|
|
|
@override
|
|
String get fromMap => 'Desde el mapa';
|
|
|
|
@override
|
|
String get gettingLocation => 'Obteniendo ubicación...';
|
|
|
|
@override
|
|
String get locationError => 'Error de ubicación';
|
|
|
|
@override
|
|
String get retry => 'Reintentar';
|
|
|
|
@override
|
|
String get refreshLocation => 'Actualizar ubicación';
|
|
|
|
@override
|
|
String accuracyMeters(int accuracy) {
|
|
return 'Precisión: ±${accuracy}m';
|
|
}
|
|
|
|
@override
|
|
String get notesOptional => 'Notas (opcional)';
|
|
|
|
@override
|
|
String get addAdditionalInformation => 'Agregar información adicional...';
|
|
|
|
@override
|
|
String lowAccuracyWarning(int accuracy) {
|
|
return 'La precisión de la ubicación es ±${accuracy}m. Esto puede no ser lo suficientemente preciso para operaciones SAR.\n\n¿Continuar de todos modos?';
|
|
}
|
|
|
|
@override
|
|
String get loginToRoom => 'Iniciar sesión en la sala';
|
|
|
|
@override
|
|
String get enterPasswordInfo =>
|
|
'Introduce la contraseña para acceder a esta sala. La contraseña se guardará para uso futuro.';
|
|
|
|
@override
|
|
String get password => 'Contraseña';
|
|
|
|
@override
|
|
String get enterRoomPassword => 'Introduce la contraseña de la sala';
|
|
|
|
@override
|
|
String get loggingInDots => 'Iniciando sesión...';
|
|
|
|
@override
|
|
String get login => 'Iniciar sesión';
|
|
|
|
@override
|
|
String failedToAddRoom(String error) {
|
|
return 'Error al agregar la sala al dispositivo: $error\n\nLa sala puede no haber anunciado aún.\nIntenta esperar a que la sala transmita.';
|
|
}
|
|
|
|
@override
|
|
String get direct => 'Directo';
|
|
|
|
@override
|
|
String get flood => 'Inundación';
|
|
|
|
@override
|
|
String get loggedIn => 'Sesión iniciada';
|
|
|
|
@override
|
|
String get noGpsData => 'Sin datos GPS';
|
|
|
|
@override
|
|
String get distance => 'Distancia';
|
|
|
|
@override
|
|
String directPingTimeout(String name) {
|
|
return 'Tiempo de espera de ping directo agotado - reintentando $name con inundación...';
|
|
}
|
|
|
|
@override
|
|
String pingFailed(String name) {
|
|
return 'Ping fallido a $name - no se recibió respuesta';
|
|
}
|
|
|
|
@override
|
|
String deleteContactConfirmation(String name) {
|
|
return '¿Estás seguro de que quieres eliminar \"$name\"?\n\nEsto eliminará el contacto tanto de la aplicación como del dispositivo de radio compañero.';
|
|
}
|
|
|
|
@override
|
|
String failedToRemoveContact(String error) {
|
|
return 'Error al eliminar contacto: $error';
|
|
}
|
|
|
|
@override
|
|
String get type => 'Tipo';
|
|
|
|
@override
|
|
String get publicKey => 'Clave pública';
|
|
|
|
@override
|
|
String get lastSeen => 'Visto por última vez';
|
|
|
|
@override
|
|
String get roomStatus => 'Estado de la sala';
|
|
|
|
@override
|
|
String get loginStatus => 'Estado de inicio de sesión';
|
|
|
|
@override
|
|
String get notLoggedIn => 'No ha iniciado sesión';
|
|
|
|
@override
|
|
String get adminAccess => 'Acceso de administrador';
|
|
|
|
@override
|
|
String get yes => 'Sí';
|
|
|
|
@override
|
|
String get no => 'No';
|
|
|
|
@override
|
|
String get permissions => 'Permisos';
|
|
|
|
@override
|
|
String get passwordSaved => 'Contraseña guardada';
|
|
|
|
@override
|
|
String get locationColon => 'Ubicación:';
|
|
|
|
@override
|
|
String get telemetry => 'Telemetría';
|
|
|
|
@override
|
|
String get voltage => 'Voltaje';
|
|
|
|
@override
|
|
String get battery => 'Batería';
|
|
|
|
@override
|
|
String get temperature => 'Temperatura';
|
|
|
|
@override
|
|
String get humidity => 'Humedad';
|
|
|
|
@override
|
|
String get pressure => 'Presión';
|
|
|
|
@override
|
|
String get gpsTelemetry => 'GPS (Telemetría)';
|
|
|
|
@override
|
|
String get updated => 'Actualizado';
|
|
|
|
@override
|
|
String pathResetInfo(String name) {
|
|
return 'Ruta restablecida para $name. El próximo mensaje encontrará una nueva ruta.';
|
|
}
|
|
|
|
@override
|
|
String get reLoginToRoom => 'Re-iniciar sesión en la sala';
|
|
|
|
@override
|
|
String get heading => 'Rumbo';
|
|
|
|
@override
|
|
String get elevation => 'Elevación';
|
|
|
|
@override
|
|
String get accuracy => 'Precisión';
|
|
|
|
@override
|
|
String get bearing => 'Rumbo';
|
|
|
|
@override
|
|
String get direction => 'Dirección';
|
|
|
|
@override
|
|
String get filterMarkers => 'Filtrar marcadores';
|
|
|
|
@override
|
|
String get filterMarkersTooltip => 'Filtrar marcadores';
|
|
|
|
@override
|
|
String get contactsFilter => 'Contactos';
|
|
|
|
@override
|
|
String get repeatersFilter => 'Repetidores';
|
|
|
|
@override
|
|
String get sarMarkers => 'Marcadores SAR';
|
|
|
|
@override
|
|
String get foundPerson => 'Persona encontrada';
|
|
|
|
@override
|
|
String get fire => 'Fuego';
|
|
|
|
@override
|
|
String get stagingArea => 'Área de preparación';
|
|
|
|
@override
|
|
String get showAll => 'Mostrar todo';
|
|
|
|
@override
|
|
String get locationUnavailable => 'Ubicación no disponible';
|
|
|
|
@override
|
|
String get ahead => 'adelante';
|
|
|
|
@override
|
|
String degreesRight(int degrees) {
|
|
return '$degrees° derecha';
|
|
}
|
|
|
|
@override
|
|
String degreesLeft(int degrees) {
|
|
return '$degrees° izquierda';
|
|
}
|
|
|
|
@override
|
|
String latLonFormat(String latitude, String longitude) {
|
|
return 'Lat: $latitude Lon: $longitude';
|
|
}
|
|
|
|
@override
|
|
String get noContactsYet => 'Aún no hay contactos';
|
|
|
|
@override
|
|
String get connectToDeviceToLoadContacts =>
|
|
'Conéctate a un dispositivo para cargar contactos';
|
|
|
|
@override
|
|
String get teamMembers => 'Miembros del equipo';
|
|
|
|
@override
|
|
String get repeaters => 'Repetidores';
|
|
|
|
@override
|
|
String get rooms => 'Salas';
|
|
|
|
@override
|
|
String get channels => 'Canales';
|
|
|
|
@override
|
|
String get selectMapLayer => 'Seleccionar capa de mapa';
|
|
|
|
@override
|
|
String get openStreetMap => 'OpenStreetMap';
|
|
|
|
@override
|
|
String get openTopoMap => 'OpenTopoMap';
|
|
|
|
@override
|
|
String get esriSatellite => 'ESRI Satélite';
|
|
|
|
@override
|
|
String get googleHybrid => 'Google Híbrido';
|
|
|
|
@override
|
|
String get googleRoadmap => 'Google Mapa de Carreteras';
|
|
|
|
@override
|
|
String get googleTerrain => 'Google Terreno';
|
|
|
|
@override
|
|
String get dragToPosition => 'Arrastrar a posición';
|
|
|
|
@override
|
|
String get createSarMarker => 'Crear marcador SAR';
|
|
|
|
@override
|
|
String get compass => 'Brújula';
|
|
|
|
@override
|
|
String get navigationAndContacts => 'Navegación y contactos';
|
|
|
|
@override
|
|
String get sarAlert => 'ALERTA SAR';
|
|
|
|
@override
|
|
String get textCopiedToClipboard => 'Texto copiado al portapapeles';
|
|
|
|
@override
|
|
String get cannotReplySenderMissing =>
|
|
'No se puede responder: falta información del remitente';
|
|
|
|
@override
|
|
String get cannotReplyContactNotFound =>
|
|
'No se puede responder: contacto no encontrado';
|
|
|
|
@override
|
|
String get copyText => 'Copiar texto';
|
|
|
|
@override
|
|
String get saveAsTemplate => 'Guardar como Plantilla';
|
|
|
|
@override
|
|
String get templateSaved => 'Plantilla guardada exitosamente';
|
|
|
|
@override
|
|
String get templateAlreadyExists => 'Ya existe una plantilla con este emoji';
|
|
|
|
@override
|
|
String get deleteMessage => 'Eliminar mensaje';
|
|
|
|
@override
|
|
String get deleteMessageConfirmation =>
|
|
'¿Está seguro de que desea eliminar este mensaje?';
|
|
|
|
@override
|
|
String get shareLocation => 'Compartir ubicación';
|
|
|
|
@override
|
|
String shareLocationText(
|
|
String markerInfo,
|
|
String lat,
|
|
String lon,
|
|
String url,
|
|
) {
|
|
return '$markerInfo\n\nCoordenadas: $lat, $lon\n\nGoogle Maps: $url';
|
|
}
|
|
|
|
@override
|
|
String get sarLocationShare => 'Ubicación SAR';
|
|
|
|
@override
|
|
String get justNow => 'Justo ahora';
|
|
|
|
@override
|
|
String minutesAgo(int minutes) {
|
|
return 'Hace ${minutes}m';
|
|
}
|
|
|
|
@override
|
|
String hoursAgo(int hours) {
|
|
return 'Hace ${hours}h';
|
|
}
|
|
|
|
@override
|
|
String daysAgo(int days) {
|
|
return 'Hace ${days}d';
|
|
}
|
|
|
|
@override
|
|
String secondsAgo(int seconds) {
|
|
return 'Hace ${seconds}s';
|
|
}
|
|
|
|
@override
|
|
String get sending => 'Enviando...';
|
|
|
|
@override
|
|
String get sent => 'Enviado';
|
|
|
|
@override
|
|
String get delivered => 'Entregado';
|
|
|
|
@override
|
|
String deliveredWithTime(int time) {
|
|
return 'Entregado (${time}ms)';
|
|
}
|
|
|
|
@override
|
|
String get failed => 'Fallido';
|
|
|
|
@override
|
|
String get broadcast => 'Difusión';
|
|
|
|
@override
|
|
String deliveredToContacts(int delivered, int total) {
|
|
return 'Entregado a $delivered/$total contactos';
|
|
}
|
|
|
|
@override
|
|
String get allDelivered => 'Todo entregado';
|
|
|
|
@override
|
|
String get recipientDetails => 'Detalles de destinatarios';
|
|
|
|
@override
|
|
String get pending => 'Pendiente';
|
|
|
|
@override
|
|
String get sarMarkerFoundPerson => 'Persona encontrada';
|
|
|
|
@override
|
|
String get sarMarkerFire => 'Ubicación de fuego';
|
|
|
|
@override
|
|
String get sarMarkerStagingArea => 'Área de preparación';
|
|
|
|
@override
|
|
String get sarMarkerObject => 'Objeto encontrado';
|
|
|
|
@override
|
|
String get from => 'De';
|
|
|
|
@override
|
|
String get coordinates => 'Coordenadas';
|
|
|
|
@override
|
|
String get tapToViewOnMap => 'Toca para ver en el mapa';
|
|
|
|
@override
|
|
String get radioSettings => 'Configuración de radio';
|
|
|
|
@override
|
|
String get frequencyMHz => 'Frecuencia (MHz)';
|
|
|
|
@override
|
|
String get frequencyExample => 'ej., 869.618';
|
|
|
|
@override
|
|
String get bandwidth => 'Ancho de banda';
|
|
|
|
@override
|
|
String get spreadingFactor => 'Factor de dispersión';
|
|
|
|
@override
|
|
String get codingRate => 'Tasa de codificación';
|
|
|
|
@override
|
|
String get txPowerDbm => 'Potencia TX (dBm)';
|
|
|
|
@override
|
|
String maxPowerDbm(int power) {
|
|
return 'Máx: $power dBm';
|
|
}
|
|
|
|
@override
|
|
String get you => 'Tú';
|
|
|
|
@override
|
|
String exportFailed(String error) {
|
|
return 'Error al exportar: $error';
|
|
}
|
|
|
|
@override
|
|
String importFailed(String error) {
|
|
return 'Error al importar: $error';
|
|
}
|
|
|
|
@override
|
|
String get unknown => 'Desconocido';
|
|
|
|
@override
|
|
String get onlineLayers => 'Capas en línea';
|
|
|
|
@override
|
|
String get locationTrail => 'Rastro de ubicación';
|
|
|
|
@override
|
|
String get showTrailOnMap => 'Mostrar rastro en el mapa';
|
|
|
|
@override
|
|
String get trailVisible => 'El rastro es visible en el mapa';
|
|
|
|
@override
|
|
String get trailHiddenRecording => 'El rastro está oculto (aún grabando)';
|
|
|
|
@override
|
|
String get duration => 'Duración';
|
|
|
|
@override
|
|
String get points => 'Puntos';
|
|
|
|
@override
|
|
String get clearTrail => 'Borrar rastro';
|
|
|
|
@override
|
|
String get clearTrailQuestion => '¿Borrar rastro?';
|
|
|
|
@override
|
|
String get clearTrailConfirmation =>
|
|
'¿Estás seguro de que quieres borrar el rastro de ubicación actual? Esta acción no se puede deshacer.';
|
|
|
|
@override
|
|
String get noTrailRecorded => 'Aún no se ha grabado rastro';
|
|
|
|
@override
|
|
String get startTrackingToRecord =>
|
|
'Inicia el seguimiento de ubicación para grabar tu rastro';
|
|
|
|
@override
|
|
String get trailControls => 'Controles del rastro';
|
|
|
|
@override
|
|
String get contactTrails => 'Rastros de contactos';
|
|
|
|
@override
|
|
String get showAllContactTrails => 'Mostrar todos los rastros de contactos';
|
|
|
|
@override
|
|
String get noContactsWithLocationHistory =>
|
|
'No hay contactos con historial de ubicación';
|
|
|
|
@override
|
|
String showingTrailsForContacts(int count) {
|
|
return 'Mostrando rastros para $count contactos';
|
|
}
|
|
|
|
@override
|
|
String get individualContactTrails => 'Rastros individuales de contactos';
|
|
|
|
@override
|
|
String get deviceInformation => 'Información del dispositivo';
|
|
|
|
@override
|
|
String get bleName => 'Nombre BLE';
|
|
|
|
@override
|
|
String get meshName => 'Nombre Mesh';
|
|
|
|
@override
|
|
String get notSet => 'No establecido';
|
|
|
|
@override
|
|
String get model => 'Modelo';
|
|
|
|
@override
|
|
String get version => 'Versión';
|
|
|
|
@override
|
|
String get buildDate => 'Fecha de compilación';
|
|
|
|
@override
|
|
String get firmware => 'Firmware';
|
|
|
|
@override
|
|
String get maxContacts => 'Contactos máximos';
|
|
|
|
@override
|
|
String get maxChannels => 'Canales máximos';
|
|
|
|
@override
|
|
String get publicInfo => 'Información pública';
|
|
|
|
@override
|
|
String get meshNetworkName => 'Nombre de red Mesh';
|
|
|
|
@override
|
|
String get nameBroadcastInMesh => 'Nombre difundido en anuncios mesh';
|
|
|
|
@override
|
|
String get telemetryAndLocationSharing => 'Telemetría y compartir ubicación';
|
|
|
|
@override
|
|
String get lat => 'Lat';
|
|
|
|
@override
|
|
String get lon => 'Lon';
|
|
|
|
@override
|
|
String get useCurrentLocation => 'Usar ubicación actual';
|
|
|
|
@override
|
|
String get noneUnknown => 'Ninguno/Desconocido';
|
|
|
|
@override
|
|
String get chatNode => 'Nodo de chat';
|
|
|
|
@override
|
|
String get repeater => 'Repetidor';
|
|
|
|
@override
|
|
String get roomChannel => 'Sala/Canal';
|
|
|
|
@override
|
|
String typeNumber(int number) {
|
|
return 'Tipo $number';
|
|
}
|
|
|
|
@override
|
|
String copiedToClipboardShort(String label) {
|
|
return 'Copiado $label al portapapeles';
|
|
}
|
|
|
|
@override
|
|
String failedToSave(String error) {
|
|
return 'Error al guardar: $error';
|
|
}
|
|
|
|
@override
|
|
String failedToGetLocation(String error) {
|
|
return 'Error al obtener ubicación: $error';
|
|
}
|
|
|
|
@override
|
|
String get sarTemplates => 'Plantillas SAR';
|
|
|
|
@override
|
|
String get manageSarTemplates => 'Gestionar plantillas SAR';
|
|
|
|
@override
|
|
String get addTemplate => 'Agregar plantilla';
|
|
|
|
@override
|
|
String get editTemplate => 'Editar plantilla';
|
|
|
|
@override
|
|
String get deleteTemplate => 'Eliminar plantilla';
|
|
|
|
@override
|
|
String get templateName => 'Nombre de plantilla';
|
|
|
|
@override
|
|
String get templateNameHint => 'p. ej., Persona encontrada';
|
|
|
|
@override
|
|
String get templateEmoji => 'Emoji';
|
|
|
|
@override
|
|
String get emojiRequired => 'Se requiere emoji';
|
|
|
|
@override
|
|
String get nameRequired => 'Se requiere nombre';
|
|
|
|
@override
|
|
String get templateDescription => 'Descripcion (opcional)';
|
|
|
|
@override
|
|
String get templateDescriptionHint => 'Anade contexto adicional...';
|
|
|
|
@override
|
|
String get templateColor => 'Color';
|
|
|
|
@override
|
|
String get previewFormat => 'Vista previa (formato de mensaje SAR)';
|
|
|
|
@override
|
|
String get importFromClipboard => 'Importar';
|
|
|
|
@override
|
|
String get exportToClipboard => 'Exportar';
|
|
|
|
@override
|
|
String deleteTemplateConfirmation(String name) {
|
|
return '¿Eliminar la plantilla \'$name\'?';
|
|
}
|
|
|
|
@override
|
|
String get templateAdded => 'Plantilla anadida';
|
|
|
|
@override
|
|
String get templateUpdated => 'Plantilla actualizada';
|
|
|
|
@override
|
|
String get templateDeleted => 'Plantilla eliminada';
|
|
|
|
@override
|
|
String templatesImported(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'Se importaron $count plantillas',
|
|
one: 'Se importo 1 plantilla',
|
|
zero: 'No se importaron plantillas',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String templatesExported(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'Se exportaron $count plantillas al portapapeles',
|
|
one: 'Se exporto 1 plantilla al portapapeles',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get resetToDefaults => 'Restablecer valores predeterminados';
|
|
|
|
@override
|
|
String get resetToDefaultsConfirmation =>
|
|
'Esto eliminará todas las plantillas personalizadas y restaurará las 4 plantillas predeterminadas. ¿Continuar?';
|
|
|
|
@override
|
|
String get reset => 'Restablecer';
|
|
|
|
@override
|
|
String get resetComplete =>
|
|
'Plantillas restablecidas a valores predeterminados';
|
|
|
|
@override
|
|
String get noTemplates => 'No hay plantillas disponibles';
|
|
|
|
@override
|
|
String get tapAddToCreate => 'Toca + para crear tu primera plantilla';
|
|
|
|
@override
|
|
String get ok => 'OK';
|
|
|
|
@override
|
|
String get permissionsSection => 'Permisos';
|
|
|
|
@override
|
|
String get locationPermission => 'Permiso de ubicación';
|
|
|
|
@override
|
|
String get checking => 'Comprobando...';
|
|
|
|
@override
|
|
String get locationPermissionGrantedAlways => 'Concedido (Siempre)';
|
|
|
|
@override
|
|
String get locationPermissionGrantedWhileInUse =>
|
|
'Concedido (Durante el uso)';
|
|
|
|
@override
|
|
String get locationPermissionDeniedTapToRequest =>
|
|
'Denegado - Toca para solicitar';
|
|
|
|
@override
|
|
String get locationPermissionPermanentlyDeniedOpenSettings =>
|
|
'Denegado permanentemente - Abrir ajustes';
|
|
|
|
@override
|
|
String get locationPermissionDialogContent =>
|
|
'El permiso de ubicación está permanentemente denegado. Por favor, actívalo en la configuración de tu dispositivo para usar el rastreo GPS y compartir ubicación.';
|
|
|
|
@override
|
|
String get openSettings => 'Abrir ajustes';
|
|
|
|
@override
|
|
String get locationPermissionGranted => '¡Permiso de ubicación concedido!';
|
|
|
|
@override
|
|
String get locationPermissionRequiredForGps =>
|
|
'El permiso de ubicación es necesario para el rastreo GPS y compartir ubicación.';
|
|
|
|
@override
|
|
String get locationPermissionAlreadyGranted =>
|
|
'El permiso de ubicación ya está concedido.';
|
|
|
|
@override
|
|
String get sarNavyBlue => 'SAR Azul Marino';
|
|
|
|
@override
|
|
String get sarNavyBlueDescription => 'Modo Profesional/Operaciones';
|
|
|
|
@override
|
|
String get selectRecipient => 'Seleccionar destinatario';
|
|
|
|
@override
|
|
String get broadcastToAllNearby => 'Transmitir a todos cercanos';
|
|
|
|
@override
|
|
String get searchRecipients => 'Buscar destinatarios...';
|
|
|
|
@override
|
|
String get noContactsFound => 'No se encontraron contactos';
|
|
|
|
@override
|
|
String get noRoomsFound => 'No se encontraron salas';
|
|
|
|
@override
|
|
String get noRecipientsAvailable => 'No hay destinatarios disponibles';
|
|
|
|
@override
|
|
String get noChannelsFound => 'No se encontraron canales';
|
|
|
|
@override
|
|
String get newMessage => 'Nuevo mensaje';
|
|
|
|
@override
|
|
String get channel => 'Canal';
|
|
|
|
@override
|
|
String get samplePoliceLead => 'Jefe de Policía';
|
|
|
|
@override
|
|
String get sampleDroneOperator => 'Operador de Dron';
|
|
|
|
@override
|
|
String get sampleFirefighterAlpha => 'Bombero';
|
|
|
|
@override
|
|
String get sampleMedicCharlie => 'Médico';
|
|
|
|
@override
|
|
String get sampleCommandDelta => 'Comando';
|
|
|
|
@override
|
|
String get sampleFireEngine => 'Camión de Bomberos';
|
|
|
|
@override
|
|
String get sampleAirSupport => 'Apoyo Aéreo';
|
|
|
|
@override
|
|
String get sampleBaseCoordinator => 'Coordinador de Base';
|
|
|
|
@override
|
|
String get channelEmergency => 'Emergencia';
|
|
|
|
@override
|
|
String get channelCoordination => 'Coordinación';
|
|
|
|
@override
|
|
String get channelUpdates => 'Actualizaciones';
|
|
|
|
@override
|
|
String get sampleTeamMember => 'Miembro de Equipo de Muestra';
|
|
|
|
@override
|
|
String get sampleScout => 'Explorador de Muestra';
|
|
|
|
@override
|
|
String get sampleBase => 'Base de Muestra';
|
|
|
|
@override
|
|
String get sampleSearcher => 'Buscador de Muestra';
|
|
|
|
@override
|
|
String get sampleObjectBackpack => ' Mochila encontrada - color azul';
|
|
|
|
@override
|
|
String get sampleObjectVehicle =>
|
|
' Vehículo abandonado - verificar propietario';
|
|
|
|
@override
|
|
String get sampleObjectCamping => ' Equipo de camping descubierto';
|
|
|
|
@override
|
|
String get sampleObjectTrailMarker =>
|
|
' Marcador de sendero encontrado fuera del camino';
|
|
|
|
@override
|
|
String get sampleMsgAllTeamsCheckIn => 'Todos los equipos reporten';
|
|
|
|
@override
|
|
String get sampleMsgWeatherUpdate =>
|
|
'Actualización del clima: Cielo despejado, temp 18°C';
|
|
|
|
@override
|
|
String get sampleMsgBaseCamp =>
|
|
'Campamento base establecido en área de preparación';
|
|
|
|
@override
|
|
String get sampleMsgTeamAlpha => 'Equipo moviéndose al sector 2';
|
|
|
|
@override
|
|
String get sampleMsgRadioCheck =>
|
|
'Prueba de radio - todas las estaciones respondan';
|
|
|
|
@override
|
|
String get sampleMsgWaterSupply =>
|
|
'Suministro de agua disponible en punto de control 3';
|
|
|
|
@override
|
|
String get sampleMsgTeamBravo => 'Equipo reportando: sector 1 despejado';
|
|
|
|
@override
|
|
String get sampleMsgEtaRallyPoint => 'ETA al punto de encuentro: 15 minutos';
|
|
|
|
@override
|
|
String get sampleMsgSupplyDrop =>
|
|
'Caída de suministros confirmada para las 14:00';
|
|
|
|
@override
|
|
String get sampleMsgDroneSurvey =>
|
|
'Inspección con dron completada - sin hallazgos';
|
|
|
|
@override
|
|
String get sampleMsgTeamCharlie => 'Equipo solicitando apoyo';
|
|
|
|
@override
|
|
String get sampleMsgRadioDiscipline =>
|
|
'Todas las unidades: mantener disciplina de radio';
|
|
|
|
@override
|
|
String get sampleMsgUrgentMedical =>
|
|
'URGENTE: Asistencia médica necesaria en sector 4';
|
|
|
|
@override
|
|
String get sampleMsgAdultMale => ' Hombre adulto, consciente';
|
|
|
|
@override
|
|
String get sampleMsgFireSpotted => 'Fuego avistado - coordenadas próximas';
|
|
|
|
@override
|
|
String get sampleMsgSpreadingRapidly => ' ¡Se propaga rápidamente!';
|
|
|
|
@override
|
|
String get sampleMsgPriorityHelicopter =>
|
|
'PRIORIDAD: Necesitamos apoyo de helicóptero';
|
|
|
|
@override
|
|
String get sampleMsgMedicalTeamEnRoute =>
|
|
'Equipo médico en camino a su ubicación';
|
|
|
|
@override
|
|
String get sampleMsgEvacHelicopter =>
|
|
'Helicóptero de evacuación ETA 10 minutos';
|
|
|
|
@override
|
|
String get sampleMsgEmergencyResolved =>
|
|
'Emergencia resuelta - todo despejado';
|
|
|
|
@override
|
|
String get sampleMsgEmergencyStagingArea =>
|
|
' Área de preparación de emergencia';
|
|
|
|
@override
|
|
String get sampleMsgEmergencyServices =>
|
|
'Servicios de emergencia notificados y respondiendo';
|
|
|
|
@override
|
|
String get sampleAlphaTeamLead => 'Líder de Equipo';
|
|
|
|
@override
|
|
String get sampleBravoScout => 'Explorador';
|
|
|
|
@override
|
|
String get sampleCharlieMedic => 'Médico';
|
|
|
|
@override
|
|
String get sampleDeltaNavigator => 'Navegador';
|
|
|
|
@override
|
|
String get sampleEchoSupport => 'Apoyo';
|
|
|
|
@override
|
|
String get sampleBaseCommand => 'Comando de Base';
|
|
|
|
@override
|
|
String get sampleFieldCoordinator => 'Coordinador de Campo';
|
|
|
|
@override
|
|
String get sampleMedicalTeam => 'Equipo Médico';
|
|
|
|
@override
|
|
String get mapDrawing => 'Dibujo del Mapa';
|
|
|
|
@override
|
|
String get navigateToDrawing => 'Navegar al Dibujo';
|
|
|
|
@override
|
|
String get copyCoordinates => 'Copiar Coordenadas';
|
|
|
|
@override
|
|
String get hideFromMap => 'Ocultar del Mapa';
|
|
|
|
@override
|
|
String get lineDrawing => 'Línea';
|
|
|
|
@override
|
|
String get rectangleDrawing => 'Rectángulo';
|
|
|
|
@override
|
|
String get manualCoordinates => 'Coordenadas Manuales';
|
|
|
|
@override
|
|
String get enterCoordinatesManually => 'Introducir coordenadas manualmente';
|
|
|
|
@override
|
|
String get latitudeLabel => 'Latitud';
|
|
|
|
@override
|
|
String get longitudeLabel => 'Longitud';
|
|
|
|
@override
|
|
String get exampleCoordinates => 'Ejemplo: 46.0569, 14.5058';
|
|
|
|
@override
|
|
String get shareDrawing => 'Compartir Dibujo';
|
|
|
|
@override
|
|
String get shareWithAllNearbyDevices =>
|
|
'Compartir con todos los dispositivos cercanos';
|
|
|
|
@override
|
|
String get shareToRoom => 'Compartir en Sala';
|
|
|
|
@override
|
|
String get sendToPersistentStorage =>
|
|
'Enviar a almacenamiento persistente de sala';
|
|
|
|
@override
|
|
String get deleteDrawingConfirm =>
|
|
'¿Está seguro de que desea eliminar este dibujo?';
|
|
|
|
@override
|
|
String get drawingDeleted => 'Dibujo eliminado';
|
|
|
|
@override
|
|
String yourDrawingsCount(int count) {
|
|
return 'Sus Dibujos ($count)';
|
|
}
|
|
|
|
@override
|
|
String get shared => 'Compartido';
|
|
|
|
@override
|
|
String get line => 'Línea';
|
|
|
|
@override
|
|
String get rectangle => 'Rectángulo';
|
|
|
|
@override
|
|
String get updateAvailable => 'Actualización Disponible';
|
|
|
|
@override
|
|
String get currentVersion => 'Actual';
|
|
|
|
@override
|
|
String get latestVersion => 'Última';
|
|
|
|
@override
|
|
String get downloadUpdate => 'Descargar';
|
|
|
|
@override
|
|
String get updateLater => 'Más Tarde';
|
|
|
|
@override
|
|
String get cadastralParcels => 'Parcelas Catastrales';
|
|
|
|
@override
|
|
String get forestRoads => 'Caminos Forestales';
|
|
|
|
@override
|
|
String get wmsOverlays => 'Superposiciones WMS';
|
|
|
|
@override
|
|
String get hikingTrails => 'Senderos de Montaña';
|
|
|
|
@override
|
|
String get mainRoads => 'Carreteras Principales';
|
|
|
|
@override
|
|
String get houseNumbers => 'Números de Casa';
|
|
|
|
@override
|
|
String get fireHazardZones => 'Zonas de Riesgo de Incendio';
|
|
|
|
@override
|
|
String get historicalFires => 'Incendios Históricos';
|
|
|
|
@override
|
|
String get firebreaks => 'Cortafuegos';
|
|
|
|
@override
|
|
String get krasFireZones => 'Zonas de Incendio Kras';
|
|
|
|
@override
|
|
String get placeNames => 'Nombres de Lugares';
|
|
|
|
@override
|
|
String get municipalityBorders => 'Límites Municipales';
|
|
|
|
@override
|
|
String get topographicMap => 'Mapa Topográfico 1:25000';
|
|
|
|
@override
|
|
String get recentMessages => 'Mensajes Recientes';
|
|
|
|
@override
|
|
String get addChannel => 'Agregar Canal';
|
|
|
|
@override
|
|
String get channelName => 'Nombre del Canal';
|
|
|
|
@override
|
|
String get channelNameHint => 'ej. Equipo de Rescate Alfa';
|
|
|
|
@override
|
|
String get channelSecret => 'Contraseña del Canal';
|
|
|
|
@override
|
|
String get channelSecretHint => 'Contraseña compartida para este canal';
|
|
|
|
@override
|
|
String get channelSecretHelp =>
|
|
'Esta contraseña debe compartirse con todos los miembros del equipo que necesiten acceso a este canal';
|
|
|
|
@override
|
|
String get channelTypesInfo =>
|
|
'Canales hash (#equipo): Contraseña generada automáticamente del nombre. Mismo nombre = mismo canal en todos los dispositivos.\n\nCanales privados: Use contraseña explícita. Solo aquellos con la contraseña pueden unirse.';
|
|
|
|
@override
|
|
String get hashChannelInfo =>
|
|
'Canal hash: La contraseña se generará automáticamente del nombre del canal. Cualquiera que use el mismo nombre se unirá al mismo canal.';
|
|
|
|
@override
|
|
String get channelNameRequired => 'El nombre del canal es obligatorio';
|
|
|
|
@override
|
|
String get channelNameTooLong =>
|
|
'El nombre del canal debe tener 31 caracteres o menos';
|
|
|
|
@override
|
|
String get channelSecretRequired => 'La contraseña del canal es obligatoria';
|
|
|
|
@override
|
|
String get channelSecretTooLong =>
|
|
'La contraseña del canal debe tener 32 caracteres o menos';
|
|
|
|
@override
|
|
String get invalidAsciiCharacters => 'Solo se permiten caracteres ASCII';
|
|
|
|
@override
|
|
String get channelCreatedSuccessfully => 'Canal creado exitosamente';
|
|
|
|
@override
|
|
String channelCreationFailed(String error) {
|
|
return 'Error al crear el canal: $error';
|
|
}
|
|
|
|
@override
|
|
String get deleteChannel => 'Eliminar Canal';
|
|
|
|
@override
|
|
String deleteChannelConfirmation(String channelName) {
|
|
return '¿Está seguro de que desea eliminar el canal \"$channelName\"? Esta acción no se puede deshacer.';
|
|
}
|
|
|
|
@override
|
|
String get channelDeletedSuccessfully => 'Canal eliminado exitosamente';
|
|
|
|
@override
|
|
String channelDeletionFailed(String error) {
|
|
return 'Error al eliminar el canal: $error';
|
|
}
|
|
|
|
@override
|
|
String get createChannel => 'Crear Canal';
|
|
|
|
@override
|
|
String get wizardBack => 'Atrás';
|
|
|
|
@override
|
|
String get wizardSkip => 'Omitir';
|
|
|
|
@override
|
|
String get wizardNext => 'Siguiente';
|
|
|
|
@override
|
|
String get wizardGetStarted => 'Comenzar';
|
|
|
|
@override
|
|
String get wizardWelcomeTitle => 'Bienvenido a MeshCore SAR';
|
|
|
|
@override
|
|
String get wizardWelcomeDescription =>
|
|
'Una poderosa herramienta de comunicación sin conexión para operaciones de búsqueda y rescate. Conéctese con su equipo usando tecnología de radio en malla cuando las redes tradicionales no estén disponibles.';
|
|
|
|
@override
|
|
String get wizardConnectingTitle => 'Conectando a su Radio';
|
|
|
|
@override
|
|
String get wizardConnectingDescription =>
|
|
'Conecte su smartphone a un dispositivo de radio MeshCore vía Bluetooth para comenzar a comunicarse sin conexión.';
|
|
|
|
@override
|
|
String get wizardConnectingFeature1 =>
|
|
'Buscar dispositivos MeshCore cercanos';
|
|
|
|
@override
|
|
String get wizardConnectingFeature2 => 'Emparejar con su radio vía Bluetooth';
|
|
|
|
@override
|
|
String get wizardConnectingFeature3 =>
|
|
'Funciona completamente sin conexión - no se requiere internet';
|
|
|
|
@override
|
|
String get wizardChannelTitle => 'Canales';
|
|
|
|
@override
|
|
String get wizardChannelDescription =>
|
|
'Transmita mensajes a todos en un canal, perfecto para anuncios y coordinación de todo el equipo.';
|
|
|
|
@override
|
|
String get wizardChannelFeature1 =>
|
|
'Canal público para comunicación general del equipo';
|
|
|
|
@override
|
|
String get wizardChannelFeature2 =>
|
|
'Cree canales personalizados para grupos específicos';
|
|
|
|
@override
|
|
String get wizardChannelFeature3 =>
|
|
'Los mensajes se retransmiten automáticamente por la malla';
|
|
|
|
@override
|
|
String get wizardContactsTitle => 'Contactos';
|
|
|
|
@override
|
|
String get wizardContactsDescription =>
|
|
'Los miembros de su equipo aparecen automáticamente cuando se unen a la red en malla. Envíeles mensajes directos o vea su ubicación.';
|
|
|
|
@override
|
|
String get wizardContactsFeature1 => 'Contactos descubiertos automáticamente';
|
|
|
|
@override
|
|
String get wizardContactsFeature2 => 'Enviar mensajes directos privados';
|
|
|
|
@override
|
|
String get wizardContactsFeature3 =>
|
|
'Ver nivel de batería y hora de última vista';
|
|
|
|
@override
|
|
String get wizardMapTitle => 'Mapa & Ubicación';
|
|
|
|
@override
|
|
String get wizardMapDescription =>
|
|
'Rastree a su equipo en tiempo real y marque ubicaciones importantes para operaciones de búsqueda y rescate.';
|
|
|
|
@override
|
|
String get wizardMapFeature1 =>
|
|
'Marcadores SAR para personas encontradas, incendios y áreas de preparación';
|
|
|
|
@override
|
|
String get wizardMapFeature2 =>
|
|
'Rastreo GPS en tiempo real de miembros del equipo';
|
|
|
|
@override
|
|
String get wizardMapFeature3 =>
|
|
'Descargar mapas sin conexión para áreas remotas';
|
|
|
|
@override
|
|
String get wizardMapFeature4 =>
|
|
'Dibujar formas y compartir información táctica';
|
|
|
|
@override
|
|
String get viewWelcomeTutorial => 'Ver tutorial de bienvenida';
|
|
|
|
@override
|
|
String get allTeamContacts => 'Todos los contactos del equipo';
|
|
|
|
@override
|
|
String directMessagesInfo(int count) {
|
|
return 'Mensajes directos con confirmaciones. Enviado a $count miembros del equipo.';
|
|
}
|
|
|
|
@override
|
|
String sarMarkerSentToContacts(int count) {
|
|
return 'Marcador SAR enviado a $count contactos';
|
|
}
|
|
|
|
@override
|
|
String get noContactsAvailable => 'No hay contactos del equipo disponibles';
|
|
|
|
@override
|
|
String get reply => 'Responder';
|
|
|
|
@override
|
|
String get technicalDetails => 'Detalles técnicos';
|
|
|
|
@override
|
|
String get messageTechnicalDetails => 'Detalles técnicos del mensaje';
|
|
|
|
@override
|
|
String get linkQuality => 'Calidad del enlace';
|
|
|
|
@override
|
|
String get delivery => 'Entrega';
|
|
|
|
@override
|
|
String get status => 'Estado';
|
|
|
|
@override
|
|
String get expectedAckTag => 'Etiqueta ACK esperada';
|
|
|
|
@override
|
|
String get roundTrip => 'Ida y vuelta';
|
|
|
|
@override
|
|
String get retryAttempt => 'Intento de reenvío';
|
|
|
|
@override
|
|
String get floodFallback => 'Reserva de inundación';
|
|
|
|
@override
|
|
String get identity => 'Identidad';
|
|
|
|
@override
|
|
String get messageId => 'ID de mensaje';
|
|
|
|
@override
|
|
String get sender => 'Remitente';
|
|
|
|
@override
|
|
String get senderKey => 'Clave del remitente';
|
|
|
|
@override
|
|
String get recipient => 'Destinatario';
|
|
|
|
@override
|
|
String get recipientKey => 'Clave del destinatario';
|
|
|
|
@override
|
|
String get voice => 'Voz';
|
|
|
|
@override
|
|
String get voiceId => 'ID de voz';
|
|
|
|
@override
|
|
String get envelope => 'Envolvente';
|
|
|
|
@override
|
|
String get sessionProgress => 'Progreso de sesión';
|
|
|
|
@override
|
|
String get complete => 'Completo';
|
|
|
|
@override
|
|
String get rawDump => 'Volcado sin procesar';
|
|
|
|
@override
|
|
String get cannotRetryMissingRecipient =>
|
|
'No se puede reintentar: falta información del destinatario';
|
|
|
|
@override
|
|
String get voiceUnavailable => 'Voz no disponible en este momento';
|
|
|
|
@override
|
|
String get requestingVoice => 'Solicitando voz';
|
|
}
|