From 9b0b53be60c8a03633bba92af4eda0955148a0b7 Mon Sep 17 00:00:00 2001 From: Sven van Ginkel Date: Tue, 10 Feb 2026 22:51:14 +0100 Subject: [PATCH 1/3] bug: fix threshold notification (#2702) --- app/Listeners/ProcessUnhealthySpeedtest.php | 2 +- app/Mail/UnhealthySpeedtestMail.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Listeners/ProcessUnhealthySpeedtest.php b/app/Listeners/ProcessUnhealthySpeedtest.php index 288f60739..860f7a292 100644 --- a/app/Listeners/ProcessUnhealthySpeedtest.php +++ b/app/Listeners/ProcessUnhealthySpeedtest.php @@ -72,7 +72,7 @@ private function notifyAppriseChannels(Result $result): void if ($benchmark['passed'] === false) { $failed[] = [ 'name' => ucfirst($metric), - 'threshold' => $benchmark['value'].' '.$benchmark['unit'], + 'threshold' => $benchmark['benchmark_value'].' '.$benchmark['unit'], 'value' => $this->formatMetricValue($metric, $result), ]; } diff --git a/app/Mail/UnhealthySpeedtestMail.php b/app/Mail/UnhealthySpeedtestMail.php index e22f4ec28..2515a6ad2 100644 --- a/app/Mail/UnhealthySpeedtestMail.php +++ b/app/Mail/UnhealthySpeedtestMail.php @@ -62,7 +62,7 @@ private function formatBenchmark(string $metric, array $benchmark): array { $metricName = str($metric)->title(); $type = str($benchmark['type'])->title(); - $thresholdValue = $benchmark['value'].' '.str($benchmark['unit'])->title(); + $thresholdValue = $benchmark['benchmark_value'].' '.str($benchmark['unit'])->title(); // Get the actual result value $resultValue = match ($metric) { From 21554b12d85a1475cd90f3d85410cc76dc0339fe Mon Sep 17 00:00:00 2001 From: Alex Justesen Date: Thu, 19 Feb 2026 22:11:26 -0500 Subject: [PATCH 2/3] translations (#2710) --- lang/es_ES/api_tokens.php | 10 ++--- lang/es_ES/dashboard.php | 4 +- lang/es_ES/enums.php | 4 +- lang/es_ES/errors.php | 4 +- lang/es_ES/general.php | 16 ++++--- lang/es_ES/passwords.php | 4 +- lang/es_ES/results.php | 56 ++++++++++++------------ lang/es_ES/settings.php | 8 ++-- lang/es_ES/settings/data_integration.php | 14 +++--- lang/es_ES/settings/notifications.php | 1 + lang/es_ES/settings/thresholds.php | 2 +- lang/es_ES/tools.php | 2 +- lang/es_ES/validation.php | 8 ++-- lang/nl_NL/general.php | 2 + lang/nl_NL/settings/notifications.php | 1 + lang/pt_BR/api_tokens.php | 2 +- lang/pt_BR/general.php | 2 + lang/pt_BR/settings/notifications.php | 1 + 18 files changed, 75 insertions(+), 66 deletions(-) diff --git a/lang/es_ES/api_tokens.php b/lang/es_ES/api_tokens.php index 762784c33..44e0b78ab 100644 --- a/lang/es_ES/api_tokens.php +++ b/lang/es_ES/api_tokens.php @@ -1,11 +1,11 @@ 'Tokens API', + 'title' => 'API tokens', 'label' => 'Tokens API', // Token management - 'api_token' => 'API token', + 'api_token' => 'API toquen', 'api_tokens' => 'Tokens de API', 'create_api_token' => 'Crear token API', 'your_token' => 'Tu token', @@ -18,11 +18,11 @@ // Token properties 'expires_at' => 'Expira el', - 'expires_at_helper_text' => 'Dejar en blanco si no desea una fecha de caducidad', - 'last_used_at' => 'Último usado en', + 'expires_at_helper_text' => 'Deja este campo en blanco si no deseas una fecha de caducidad', + 'last_used_at' => 'Usado por última vez el', // Abilities/Permissions - 'abilities' => 'Habilidades', + 'abilities' => 'Permisos', 'read_results' => 'Leer resultados', 'read_results_description' => 'El token tendrá permiso para leer resultados y estadísticas.', 'run_speedtest_description' => 'El token tendrá permiso para ejecutar el test de velocidad.', diff --git a/lang/es_ES/dashboard.php b/lang/es_ES/dashboard.php index b6783d90f..5512c06e7 100644 --- a/lang/es_ES/dashboard.php +++ b/lang/es_ES/dashboard.php @@ -1,9 +1,9 @@ 'Tablero', + 'title' => 'Panel de Control', 'no_speedtests_scheduled' => 'No hay pruebas de velocidad programadas.', - 'next_speedtest_at' => 'Siguiente prueba de velocidad en', + 'next_speedtest_at' => 'Siguiente prueba de velocidad el', // Widgets 'recent_results' => 'Resultados recientes', diff --git a/lang/es_ES/enums.php b/lang/es_ES/enums.php index 3c8089b13..9c7925bf8 100644 --- a/lang/es_ES/enums.php +++ b/lang/es_ES/enums.php @@ -3,10 +3,10 @@ return [ // Status enum values 'status' => [ - 'benchmarking' => 'Marcando', + 'benchmarking' => 'Evaluando', 'checking' => 'Comprobando', 'completed' => 'Completado', - 'failed' => 'Fallo', + 'failed' => 'Fallido', 'running' => 'Ejecutando', 'started' => 'Iniciado', 'skipped' => 'Omitido', diff --git a/lang/es_ES/errors.php b/lang/es_ES/errors.php index c11da734d..c707ca6cb 100644 --- a/lang/es_ES/errors.php +++ b/lang/es_ES/errors.php @@ -9,7 +9,7 @@ 'copied_to_clipboard' => 'Copiado al portapapeles', // Speedtest specific errors - 'ookla_error' => 'Se ha producido un error al listar servidores de prueba de velocidad, comprobar los registros.', + 'ookla_error' => 'Se ha producido un error al listar los servidores de prueba de velocidad, comprueba los registros', 'cron_invalid' => 'Expresión cron no válida', // Status fix command @@ -17,7 +17,7 @@ 'confirm' => '¿Desea continuar?', 'fail' => 'Comando abortado.', 'finished' => '✅ ¡Hecho!', - 'info_1' => 'Esto comprobará todos los resultados y corregirá el estado a "completado" o "fallado" basado en los datos.', + 'info_1' => 'Esto comprobará todos los resultados y cambiará el estado a "completado" o "fallido" basado en los datos', 'info_2' => '📖 Lee la documentación: https://docs.speedtest-tracker.dev/other/commands', ], ]; diff --git a/lang/es_ES/general.php b/lang/es_ES/general.php index 270adc512..f58686338 100644 --- a/lang/es_ES/general.php +++ b/lang/es_ES/general.php @@ -13,22 +13,22 @@ 'edit' => 'Editar', 'create' => 'Crear', 'search' => 'Buscar', - 'filter' => 'Filtro', + 'filter' => 'Filtrar', 'export' => 'Exportar', 'actions' => 'Acciones', 'enable' => 'Activar', 'yes' => 'Sí', - 'no' => 'Nu', + 'no' => 'No', 'options' => 'Opciones', 'details' => 'Detalles', 'view' => 'Ver', // Common labels 'name' => 'Nombre', - 'email' => 'E-mail', - 'email_address' => 'Dirección de email', + 'email' => 'Correo electrónico', + 'email_address' => 'Dirección de correo electrónico', 'password' => 'Contraseña', - 'password_confirmation' => 'Confirmación de contraseña', + 'password_confirmation' => 'Repite la contraseña', 'id' => 'ID', 'status' => 'Estado', 'message' => 'Mensaje', @@ -43,18 +43,20 @@ 'statistics' => 'Estadísticas', // Navigation - 'dashboard' => 'Tablero', + 'dashboard' => 'Panel de control', 'results' => 'Resultados', 'settings' => 'Ajustes', 'users' => 'Usuarios', 'documentation' => 'Documentación', + 'documentation_description' => '¿Necesitas ayuda para empezar o configurar tus pruebas?', 'view_documentation' => 'Ver documentación', 'links' => 'Enlaces', 'donate' => 'Donar', 'donations' => 'Donaciones', + 'donations_description' => 'Apoya el desarrollo y mantenimiento de SpeedTracker haciendo una donación.', // Roles - 'admin' => 'Admin', + 'admin' => 'Administrador', 'user' => 'Usuario', 'role' => 'Rol', diff --git a/lang/es_ES/passwords.php b/lang/es_ES/passwords.php index c1132d746..1259ad569 100644 --- a/lang/es_ES/passwords.php +++ b/lang/es_ES/passwords.php @@ -14,7 +14,7 @@ */ 'reset' => '¡Tu contraseña ha sido restablecida!', - 'sent' => '¡Hemos enviado por correo electrónico tu enlace de restablecimiento de contraseña!', - 'password' => 'La contraseña y la confirmación deben coincidir y contener al menos seis caracteres.', + 'sent' => '¡Hemos enviado por correo electrónico un enlace para restablecer la contraseña!', + 'password' => 'Ambas contraseñas deben coincidir y contener al menos seis caracteres', ]; diff --git a/lang/es_ES/results.php b/lang/es_ES/results.php index 89df7e984..a1e55f656 100644 --- a/lang/es_ES/results.php +++ b/lang/es_ES/results.php @@ -7,50 +7,50 @@ // Metrics 'download' => 'Descargar', - 'download_latency_high' => 'Descargar latencia alta', - 'download_latency_low' => 'Descargar latencia baja', - 'download_latency_iqm' => 'Descargar latencia IQM', - 'download_latency_jitter' => 'Descargar jitter de latencia', + 'download_latency_high' => 'Latencia de descarga alta', + 'download_latency_low' => 'Latencia de descarga baja', + 'download_latency_iqm' => 'Latencia de descarga IQM', + 'download_latency_jitter' => 'Variación de latencia de descarga', - 'upload' => 'Subir', - 'upload_latency_high' => 'Subir latencia alta', - 'upload_latency_low' => 'Subir latencia baja', - 'upload_latency_iqm' => 'Cargar latencia IQM', - 'upload_latency_jitter' => 'Subir jitter de latencia', + 'upload' => 'Subida', + 'upload_latency_high' => 'Latencia de subida alta', + 'upload_latency_low' => 'Latencia de subida baja', + 'upload_latency_iqm' => 'Latencia de subida IQM', + 'upload_latency_jitter' => 'Variación de latencia de subida', - 'ping' => 'Señal', + 'ping' => 'Ping', 'ping_details' => 'Detalles de ping', - 'ping_jitter' => 'Ping jitter', + 'ping_jitter' => 'Variación de ping', 'ping_high' => 'Ping alto', 'ping_low' => 'Ping bajo', - 'packet_loss' => 'Pérdida del paquete', + 'packet_loss' => 'Paquetes perdidos', 'iqm' => 'IQM', // Server & metadata 'server_&_metadata' => 'Servidor y metadatos', 'server_id' => 'ID del servidor', - 'server_host' => 'Servidor host', + 'server_host' => 'Host del servidor', 'server_name' => 'Nombre del servidor', 'server_location' => 'Ubicación del servidor', 'service' => 'Servicio', - 'isp' => 'ISP', + 'isp' => 'Proveedor de internet', 'ip_address' => 'Dirección IP', 'scheduled' => 'Programado', // Filters - 'only_healthy_speedtests' => 'Sólo pruebas de velocidad saludables', - 'only_unhealthy_speedtests' => 'Sólo pruebas de velocidad poco saludables', - 'only_manual_speedtests' => 'Sólo pruebas de velocidad manuales', - 'only_scheduled_speedtests' => 'Sólo pruebas de velocidad programadas', - 'created_from' => 'Creado a partir de', + 'only_healthy_speedtests' => 'Solo pruebas de velocidad saludables', + 'only_unhealthy_speedtests' => 'Sólo pruebas de velocidad no saludables', + 'only_manual_speedtests' => 'Solo pruebas de velocidad manuales', + 'only_scheduled_speedtests' => 'Solo pruebas de velocidad programadas', + 'created_from' => 'Creado desde', 'created_until' => 'Creado hasta', // Export 'export_all_results' => 'Exportar todos los resultados', - 'export_all_results_description' => 'Exportará cada columna para todos los resultados.', + 'export_all_results_description' => 'Exportará todas las columnas para todos los resultados.', 'export_completed' => 'Exportación completada, :count :rows exportadas.', - 'failed_export' => ':count :rows falló al exportar.', + 'failed_export' => ':count :ros exportación fallida.', 'row' => '{1} :count fila|[2,*] :count filas', // Actions @@ -58,14 +58,14 @@ 'view_on_speedtest_net' => 'Ver en Speedtest.net', // Notifications - 'speedtest_benchmark_passed' => 'La prueba de rendimiento de velocidad ha pasado', + 'speedtest_benchmark_passed' => 'Prueba de velocidad superada', 'speedtest_benchmark_failed' => 'Prueba de rendimiento de velocidad fallida', - 'speedtest_started' => 'Velocidad iniciada', - 'speedtest_completed' => 'Velocidad completada', - 'speedtest_failed' => 'Error en la prueba de velocidad', - 'download_threshold_breached' => '¡Umbral de descarga incumplido!', - 'upload_threshold_breached' => '¡Umbral de subida infringido!', - 'ping_threshold_breached' => '¡Umbral de ping infringido!', + 'speedtest_started' => 'Prueba de velocidad iniciada', + 'speedtest_completed' => 'Prueba de velocidad completada', + 'speedtest_failed' => 'Prueba de velocidad fallida', + 'download_threshold_breached' => '¡Umbral de descarga superado!', + 'upload_threshold_breached' => '¡Umbral de subida superado!', + 'ping_threshold_breached' => '¡Umbral de ping superado!', // Run Speedtest Action 'speedtest' => 'Velocidad', diff --git a/lang/es_ES/settings.php b/lang/es_ES/settings.php index 102901771..565addcaf 100644 --- a/lang/es_ES/settings.php +++ b/lang/es_ES/settings.php @@ -1,13 +1,13 @@ 'Ajustes', - 'label' => 'Ajustes', + 'title' => 'Configuración', + 'label' => 'Configuración', // Common settings labels 'triggers' => 'Disparadores', 'verify_ssl' => 'Verificar SSL', - 'username' => 'Usuario', - 'username_placeholder' => 'Nombre de usuario para Auth Básica (opcional)', + 'username' => 'Nombre de usuario', + 'username_placeholder' => 'Nombre de usuario para autenticación Básica (opcional)', 'password_placeholder' => 'Contraseña para autenticación básica (opcional)', ]; diff --git a/lang/es_ES/settings/data_integration.php b/lang/es_ES/settings/data_integration.php index a1b024848..a53326dc2 100644 --- a/lang/es_ES/settings/data_integration.php +++ b/lang/es_ES/settings/data_integration.php @@ -6,13 +6,13 @@ // InfluxDB v2 'influxdb_v2' => 'InfluxDB v2', - 'influxdb_v2_description' => 'Cuando está activado, todos los nuevos resultados de Speedtest también serán enviados a InfluxDB.', + 'influxdb_v2_description' => 'Cuando está activado, los nuevos resultados de las pruebas también serán enviados a InfluxDB.', 'influxdb_v2_enabled' => 'Activar', 'influxdb_v2_url' => 'URL', 'influxdb_v2_url_placeholder' => 'http://su-instancia-influxdb', 'influxdb_v2_org' => 'Org', 'influxdb_v2_bucket' => 'Cubo', - 'influxdb_v2_bucket_placeholder' => 'rastreador de velocidad', + 'influxdb_v2_bucket_placeholder' => 'registros-de-velocidad', 'influxdb_v2_token' => 'Token', 'influxdb_v2_verify_ssl' => 'Verificar SSL', @@ -25,20 +25,20 @@ 'influxdb_test_failed' => 'Prueba de Influxdb fallida', 'influxdb_test_failed_body' => 'Revisa los registros para más detalles.', 'influxdb_test_success' => 'Datos de prueba enviados con éxito a Influxdb', - 'influxdb_test_success_body' => 'Los datos de prueba han sido enviados a InfluxDB, compruebe si los datos han sido recibidos.', + 'influxdb_test_success_body' => 'Los datos de prueba han sido enviados a InfluxDB, comprueba si los datos han sido recibidos', // Bulk write notifications 'influxdb_bulk_write_failed' => 'Error al escribir en masa a Influxdb.', 'influxdb_bulk_write_failed_body' => 'Revisa los registros para más detalles.', 'influxdb_bulk_write_success' => 'Carga de datos en masa a Influxdb.', - 'influxdb_bulk_write_success_body' => 'Los datos han sido enviados a InfluxDB, compruebe si los datos han sido recibidos.', + 'influxdb_bulk_write_success_body' => 'Los datos han sido enviados a InfluxDB, comprueba si los datos han sido recibidos.', // Prometheus - 'prometheus' => 'Prometeo', + 'prometheus' => 'Prometheus', 'prometheus_enabled' => 'Activar', - 'prometheus_enabled_helper_text' => 'Cuando está activado, las métricas para cada prueba de velocidad nueva estarán disponibles en el punto final /prometheus.', + 'prometheus_enabled_helper_text' => 'Cuando está activado, las métricas para cada prueba de velocidad nueva estarán disponibles en el extremo /prometheus.', 'prometheus_allowed_ips' => 'Direcciones IP permitidas', - 'prometheus_allowed_ips_helper' => 'Lista de direcciones IP o rangos CIDR (por ejemplo, 192.168.1.0/24) permitieron acceder al extremo de las métricas. Dejar en blanco para permitir todas las IPs.', + 'prometheus_allowed_ips_helper' => 'Lista de direcciones IP o rangos CIDR (por ejemplo, 192.168.1.0/24) permitidas para acceder al extremo de las métricas. Dejar en blanco para permitir todas las IPs.', // Common labels 'org' => 'Org', diff --git a/lang/es_ES/settings/notifications.php b/lang/es_ES/settings/notifications.php index d19c00f5e..e7dd1b702 100644 --- a/lang/es_ES/settings/notifications.php +++ b/lang/es_ES/settings/notifications.php @@ -56,6 +56,7 @@ 'webhook' => [ 'add' => '¡Añadir URL de webhook!', 'sent' => 'Prueba de notificación de webhook enviada.', + 'failed' => 'Notificación de Webhook fallida.', 'payload' => 'Probando notificación de webhook', ], ], diff --git a/lang/es_ES/settings/thresholds.php b/lang/es_ES/settings/thresholds.php index 8fc4e7748..cc7e6599c 100644 --- a/lang/es_ES/settings/thresholds.php +++ b/lang/es_ES/settings/thresholds.php @@ -6,7 +6,7 @@ // Absolute thresholds 'absolute' => 'Absoluto', - 'absolute_description' => 'Los umbrales absolutos no tienen en cuenta la historia anterior y podrían ser activados en cada prueba.', + 'absolute_description' => 'Los umbrales absolutos no tienen en cuenta el historial anterior y podrían ser activados en cada prueba', 'absolute_enabled' => 'Habilitar umbrales absolutos', // Metrics section diff --git a/lang/es_ES/tools.php b/lang/es_ES/tools.php index 249d79aae..65f20093c 100644 --- a/lang/es_ES/tools.php +++ b/lang/es_ES/tools.php @@ -2,5 +2,5 @@ return [ // Ookla server list - 'ookla_servers' => 'Servidores Ookla', + 'ookla_servers' => 'Servidores de Ookla', ]; diff --git a/lang/es_ES/validation.php b/lang/es_ES/validation.php index 9eb5a792a..fce586284 100644 --- a/lang/es_ES/validation.php +++ b/lang/es_ES/validation.php @@ -50,14 +50,14 @@ 'country' => 'país', 'date' => 'fecha', 'day' => 'día', - 'excerpt' => 'summary', + 'excerpt' => 'resumen', 'first_name' => 'nombre', 'gender' => 'género', 'marital_status' => 'estado civil', 'profession' => 'profesión', 'nationality' => 'nacionalidad', 'hour' => 'hora', - 'last_name' => 'apellido', + 'last_name' => 'apellidos', 'message' => 'mensaje', 'minute' => 'minuto', 'mobile' => 'móvil', @@ -65,7 +65,7 @@ 'name' => 'nombre', 'zipcode' => 'código postal', 'company_name' => 'nombre de empresa', - 'neighborhood' => 'vecindad', + 'neighborhood' => 'barrio', 'number' => 'número', 'password' => 'contraseña', 'phone' => 'teléfono', @@ -75,7 +75,7 @@ 'street' => 'calle', 'subject' => 'tema', 'text' => 'texto', - 'time' => 'tiempo', + 'time' => 'hora', 'title' => 'título', 'username' => 'nombre de usuario', 'year' => 'año', diff --git a/lang/nl_NL/general.php b/lang/nl_NL/general.php index 014edba84..379644919 100644 --- a/lang/nl_NL/general.php +++ b/lang/nl_NL/general.php @@ -48,10 +48,12 @@ 'settings' => 'Instellingen', 'users' => 'Gebruikers', 'documentation' => 'Documentatie', + 'documentation_description' => 'Hulp nodig bij het opstarten of configureren van uw snelheid testen?', 'view_documentation' => 'Bekijk documentatie', 'links' => 'Koppelingen', 'donate' => 'Doneren', 'donations' => 'Donaties', + 'donations_description' => 'Ondersteun de ontwikkeling en het onderhoud van Speedtest Tracker door een donatie te doen.', // Roles 'admin' => 'Beheerder', diff --git a/lang/nl_NL/settings/notifications.php b/lang/nl_NL/settings/notifications.php index 27dbd7140..2bb7e85fa 100644 --- a/lang/nl_NL/settings/notifications.php +++ b/lang/nl_NL/settings/notifications.php @@ -56,6 +56,7 @@ 'webhook' => [ 'add' => 'Voeg webhook URL\'s toe!', 'sent' => 'Test webhook melding verzonden.', + 'failed' => 'Webhook notificatie is mislukt.', 'payload' => 'Webhook melding', ], ], diff --git a/lang/pt_BR/api_tokens.php b/lang/pt_BR/api_tokens.php index 17ae5269c..e723f39c8 100644 --- a/lang/pt_BR/api_tokens.php +++ b/lang/pt_BR/api_tokens.php @@ -1,7 +1,7 @@ 'Tokens de API', + 'title' => 'API Tokens', 'label' => 'Tokens de API', // Token management diff --git a/lang/pt_BR/general.php b/lang/pt_BR/general.php index 56565dd1d..1a88eb7b1 100644 --- a/lang/pt_BR/general.php +++ b/lang/pt_BR/general.php @@ -48,10 +48,12 @@ 'settings' => 'Confirgurações', 'users' => 'Usuários', 'documentation' => 'Documentação', + 'documentation_description' => 'Precisa de ajuda para começar ou configurar seus testes de velocidade?', 'view_documentation' => 'Ver documentação', 'links' => 'Links', 'donate' => 'Doar', 'donations' => 'Doações', + 'donations_description' => 'Apoie o desenvolvimento e a manutenção do Speedtest Tracker fazendo uma doação.', // Roles 'admin' => 'Admin', diff --git a/lang/pt_BR/settings/notifications.php b/lang/pt_BR/settings/notifications.php index cee325eca..ef4e55040 100644 --- a/lang/pt_BR/settings/notifications.php +++ b/lang/pt_BR/settings/notifications.php @@ -56,6 +56,7 @@ 'webhook' => [ 'add' => 'Adicionar URLs webhook!', 'sent' => 'Notificação de teste webhook enviada.', + 'failed' => 'A notificação do webhook falhou.', 'payload' => 'Testando notificação webhook', ], ], From a48d103250e4de83998942824e4a5103b0b2ed5f Mon Sep 17 00:00:00 2001 From: Alex Justesen Date: Thu, 19 Feb 2026 22:14:18 -0500 Subject: [PATCH 3/3] Release v1.13.10 (#2711) --- config/speedtest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/speedtest.php b/config/speedtest.php index 9faa99341..31f0faf65 100644 --- a/config/speedtest.php +++ b/config/speedtest.php @@ -6,9 +6,9 @@ /** * General settings. */ - 'build_date' => Carbon::parse('2026-02-08'), + 'build_date' => Carbon::parse('2026-02-19'), - 'build_version' => 'v1.13.9', + 'build_version' => 'v1.13.10', 'content_width' => env('CONTENT_WIDTH', '7xl'),