diff --git a/lang/pl_PL/api_tokens.php b/lang/pl_PL/api_tokens.php new file mode 100644 index 000000000..205b66234 --- /dev/null +++ b/lang/pl_PL/api_tokens.php @@ -0,0 +1,30 @@ + 'Tokeny API', + 'label' => 'Tokeny API', + + // Token management + 'api_token' => 'Token API', + 'api_tokens' => 'Tokeny API', + 'create_api_token' => 'Utwórz token API', + 'your_token' => 'Twój token', + 'token_status' => 'Status tokena', + + // Token lists + 'active_tokens' => 'Aktywne tokeny', + 'expired_tokens' => 'Wygasłe tokeny', + 'all_tokens' => 'Wszystkie tokeny', + + // Token properties + 'expires_at' => 'Wygasa', + 'expires_at_helper_text' => 'Pozostaw puste, jeśli nie chcesz daty wygaśnięcia', + 'last_used_at' => 'Ostatnio używany', + + // Abilities/Permissions + 'abilities' => 'Uprawnienia', + 'read_results' => 'Odczyt wyników', + 'read_results_description' => 'Token będzie miał uprawnienia do odczytu wyników i statystyk.', + 'run_speedtest_description' => 'Token będzie miał uprawnienia do uruchamiania testów prędkości.', + 'list_servers_description' => 'Token będzie miał uprawnienia do listowania serwerów.', +]; diff --git a/lang/pl_PL/auth.php b/lang/pl_PL/auth.php new file mode 100644 index 000000000..34ca1eb80 --- /dev/null +++ b/lang/pl_PL/auth.php @@ -0,0 +1,21 @@ + 'Zaloguj się', + 'failed' => 'Te dane nie pasują do naszych rekordów.', + 'password' => 'Podane hasło jest niepoprawne.', + 'throttle' => 'Zbyt wiele prób logowania. Spróbuj ponownie za :seconds sekund.', + +]; diff --git a/lang/pl_PL/dashboard.php b/lang/pl_PL/dashboard.php new file mode 100644 index 000000000..39b3822bc --- /dev/null +++ b/lang/pl_PL/dashboard.php @@ -0,0 +1,14 @@ + 'Pulpit', + 'no_speedtests_scheduled' => 'Nie zaplanowano testów prędkości.', + 'next_speedtest_at' => 'Następny test prędkości o', + + // Widgets + 'recent_results' => 'Ostatnie Wyniki', + 'statistics' => 'Statystyki', + 'latest_download' => 'Ostatnie pobieranie', + 'latest_upload' => 'Ostatnie wysyłanie', + 'latest_ping' => 'Ostatni ping', +]; diff --git a/lang/pl_PL/enums.php b/lang/pl_PL/enums.php new file mode 100644 index 000000000..396fb22d0 --- /dev/null +++ b/lang/pl_PL/enums.php @@ -0,0 +1,21 @@ + [ + 'benchmarking' => 'Benchmarking', + 'checking' => 'Sprawdzanie', + 'completed' => 'Ukończono', + 'failed' => 'Nieudane', + 'running' => 'Uruchomione', + 'started' => 'Rozpoczęte', + 'skipped' => 'Pominięte', + 'waiting' => 'Oczekujące', + ], + + // Service enum values + 'service' => [ + 'faker' => 'Faker', + 'ookla' => 'Ookla', + ], +]; diff --git a/lang/pl_PL/errors.php b/lang/pl_PL/errors.php new file mode 100644 index 000000000..858250e68 --- /dev/null +++ b/lang/pl_PL/errors.php @@ -0,0 +1,23 @@ + 'Błąd serwera', + 'oops_server_error' => 'Ups, błąd serwera!', + 'error_message' => 'Komunikat błędu', + 'error_fetching_servers' => 'Błąd podczas pobierania serwerów', + 'servers_refreshed_successfully' => 'Serwery odświeżone pomyślnie', + 'copied_to_clipboard' => 'Skopiowano do schowka', + + // Speedtest specific errors + 'ookla_error' => 'Wystąpił błąd podczas listowania serwerów testów prędkości, sprawdź logi.', + 'cron_invalid' => 'Nieprawidłowe wyrażenie cron', + + // Status fix command + 'status_fix' => [ + 'confirm' => 'Czy chcesz kontynuować?', + 'fail' => 'Polecenie przerwane.', + 'finished' => '✅ gotowe!', + 'info_1' => 'To sprawdzi wszystkie wyniki i naprawi status na "ukończone" lub "nieudane" na podstawie danych.', + 'info_2' => '📖 Przeczytaj dokumentację: https://docs.speedtest-tracker.dev/other/commands', + ], +]; diff --git a/lang/pl_PL/general.php b/lang/pl_PL/general.php new file mode 100644 index 000000000..79eb32d79 --- /dev/null +++ b/lang/pl_PL/general.php @@ -0,0 +1,127 @@ + 'Obecna wersja', + 'latest_version' => 'Najnowsza wersja', + 'github' => 'GitHub', + 'repository' => 'Repozytorium', + + // Common actions + 'save' => 'Zapisz', + 'cancel' => 'Anuluj', + 'delete' => 'Usuń', + 'edit' => 'Edytuj', + 'create' => 'Utwórz', + 'search' => 'Szukaj', + 'filter' => 'Filtruj', + 'export' => 'Eksportuj', + 'actions' => 'Akcje', + 'enable' => 'Włącz', + 'yes' => 'Tak', + 'no' => 'Nie', + 'options' => 'Opcje', + 'details' => 'Szczegóły', + 'view' => 'Zobacz', + + // Common labels + 'name' => 'Nazwa', + 'email' => 'Email', + 'email_address' => 'Adres email', + 'password' => 'Hasło', + 'password_confirmation' => 'Potwierdzenie hasła', + 'id' => 'ID', + 'status' => 'Status', + 'message' => 'Wiadomość', + 'comment' => 'Komentarz', + 'comments' => 'Komentarze', + 'created_at' => 'Utworzono', + 'updated_at' => 'Zaktualizowano', + 'url' => 'URL', + 'server' => 'Serwer', + 'servers' => 'Serwery', + 'stats' => 'Statystyki', + 'statistics' => 'Statystyki', + + // Navigation + 'dashboard' => 'Pulpit', + 'results' => 'Wyniki', + 'settings' => 'Ustawienia', + 'users' => 'Użytkownicy', + 'documentation' => 'Dokumentacja', + 'documentation_description' => 'Potrzebujesz pomocy w rozpoczęciu lub konfiguracji testów prędkości?', + 'view_documentation' => 'Zobacz dokumentację', + 'links' => 'Linki', + 'donate' => 'Wesprzyj', + 'donations' => 'Darowizny', + 'donations_description' => 'Wesprzyj rozwój i utrzymanie Speedtest Tracker poprzez darowiznę.', + + // Roles + 'admin' => 'Admin', + 'user' => 'Użytkownik', + 'role' => 'Rola', + + // Date ranges + 'last_24h' => 'Ostatnie 24 godziny', + 'last_week' => 'Ostatni tydzień', + 'last_month' => 'Ostatni miesiąc', + + // Metrics + 'metrics' => 'Metryki', + 'average' => 'Średnia', + 'high' => 'Wysoka', + 'low' => 'Niska', + 'faster' => 'szybsze', + 'slower' => 'wolniejsze', + 'healthy' => 'Zdrowe', + 'not_measured' => 'Nie zmierzono', + 'unhealthy' => 'Niezdrowe', + 'last_results' => 'Ostatnie wyniki', + 'total_failed' => 'Łącznie nieudanych testów', + 'total_complted' => 'Łącznie ukończonych testów', + 'total' => 'Łącznie', + + // Units + 'ms' => 'ms', + 'mbps' => 'Mbps', + + // Speed test metrics + 'download' => 'Pobieranie', + 'upload' => 'Wysyłanie', + 'ping' => 'Ping', + 'jitter' => 'Jitter', + + // Metric labels with units + 'download_mbps' => 'Pobieranie (Mbps)', + 'upload_mbps' => 'Wysyłanie (Mbps)', + 'ping_ms' => 'Ping (ms)', + 'download_ms' => 'Pobieranie (ms)', + 'upload_ms' => 'Wysyłanie (ms)', + 'average_ms' => 'Średnia (ms)', + 'high_ms' => 'Wysoka (ms)', + 'low_ms' => 'Niska (ms)', + 'ping_ms_label' => 'Ping (ms)', + + // Latency + 'download_latency' => 'Opóźnienie pobierania', + 'upload_latency' => 'Opóźnienie wysyłania', + + // Actions + 'run_speedtest' => 'Uruchom test prędkości', + 'list_servers' => 'Lista serwerów', + 'export_current_results' => 'Eksportuj bieżące wyniki', + 'test' => 'Test', + + // Common + 'token' => 'Token', + + // Application + 'speedtest_tracker' => 'Speedtest Tracker', + 'platform' => 'Platforma', + + // Update status + 'update_available' => 'Dostępna aktualizacja!', + 'up_to_date' => 'Aktualne', + + // Notifications + 'token_created' => 'Utworzono Token', +]; diff --git a/lang/pl_PL/passwords.php b/lang/pl_PL/passwords.php new file mode 100644 index 000000000..eac0d0600 --- /dev/null +++ b/lang/pl_PL/passwords.php @@ -0,0 +1,20 @@ + 'Twoje hasło zostało zresetowane!', + 'sent' => 'Wysłaliśmy link do resetowania hasła!', + 'password' => 'Hasło i potwierdzenie muszą pasować i zawierać co najmniej sześć znaków.', + +]; diff --git a/lang/pl_PL/results.php b/lang/pl_PL/results.php new file mode 100644 index 000000000..93aaa0716 --- /dev/null +++ b/lang/pl_PL/results.php @@ -0,0 +1,78 @@ + 'Wyniki', + 'result_overview' => 'Przegląd wyniku', + 'error_message_title' => 'Komunikat błędu', + + // Metrics + 'download' => 'Pobieranie', + 'download_latency_high' => 'Wysokie opóźnienie pobierania', + 'download_latency_low' => 'Niskie opóźnienie pobierania', + 'download_latency_iqm' => 'Opóźnienie pobierania IQM', + 'download_latency_jitter' => 'Jitter opóźnienia pobierania', + + 'upload' => 'Wysyłanie', + 'upload_latency_high' => 'Wysokie opóźnienie wysyłania', + 'upload_latency_low' => 'Niskie opóźnienie wysyłania', + 'upload_latency_iqm' => 'Opóźnienie wysyłania IQM', + 'upload_latency_jitter' => 'Jitter opóźnienia wysyłania', + + 'ping' => 'Ping', + 'ping_details' => 'Szczegóły ping', + 'ping_jitter' => 'Jitter ping', + 'ping_high' => 'Wysoki ping', + 'ping_low' => 'Niski ping', + + 'packet_loss' => 'Utrata pakietów', + 'iqm' => 'IQM', + + // Server & metadata + 'server_&_metadata' => 'Serwer i Metadane', + 'server_id' => 'ID serwera', + 'server_host' => 'Host serwera', + 'server_name' => 'Nazwa serwera', + 'server_location' => 'Lokalizacja serwera', + 'service' => 'Usługa', + 'isp' => 'ISP', + 'ip_address' => 'Adres IP', + 'scheduled' => 'Zaplanowane', + + // Filters + 'only_healthy_speedtests' => 'Tylko zdrowe testy prędkości', + 'only_unhealthy_speedtests' => 'Tylko niezdrowe testy prędkości', + 'only_manual_speedtests' => 'Tylko ręczne testy prędkości', + 'only_scheduled_speedtests' => 'Tylko zaplanowane testy prędkości', + 'created_from' => 'Utworzone od', + 'created_until' => 'Utworzone do', + + // Export + 'export_all_results' => 'Eksportuj wszystkie wyniki', + 'export_all_results_description' => 'Wyeksportuje każdą kolumnę dla wszystkich wyników.', + 'export_completed' => 'Eksport ukończony, wyeksportowano :count :rows.', + 'failed_export' => ':count :rows nie udało się wyeksportować.', + 'row' => '{1} :count wiersz|[2,*] :count wierszy', + + // Actions + 'update_comments' => 'Zaktualizuj komentarze', + 'view_on_speedtest_net' => 'Zobacz na Speedtest.net', + + // Notifications + 'speedtest_benchmark_passed' => 'Test prędkości przeszedł benchmark', + 'speedtest_benchmark_failed' => 'Test prędkości nie przeszedł benchmarku', + 'speedtest_started' => 'Test prędkości rozpoczęty', + 'speedtest_completed' => 'Test prędkości ukończony', + 'speedtest_failed' => 'Test prędkości nieudany', + 'download_threshold_breached' => 'Przekroczono próg pobierania!', + 'upload_threshold_breached' => 'Przekroczono próg wysyłania!', + 'ping_threshold_breached' => 'Przekroczono próg ping!', + + // Run Speedtest Action + 'speedtest' => 'Test prędkości', + 'select_server' => 'Wybierz serwer', + 'select_server_helper' => 'Pozostaw puste, aby uruchomić test prędkości bez określania serwera. Zablokowane serwery zostaną pominięte.', + 'manual_servers' => 'Serwery ręczne', + 'closest_servers' => 'Najbliższe serwery', + 'run_speedtest' => 'Uruchom test prędkości', + 'start' => 'Start', +]; diff --git a/lang/pl_PL/settings.php b/lang/pl_PL/settings.php new file mode 100644 index 000000000..b0e421784 --- /dev/null +++ b/lang/pl_PL/settings.php @@ -0,0 +1,13 @@ + 'Ustawienia', + 'label' => 'Ustawienia', + + // Common settings labels + 'triggers' => 'Wyzwalacze', + 'verify_ssl' => 'Weryfikuj SSL', + 'username' => 'Nazwa użytkownika', + 'username_placeholder' => 'Nazwa użytkownika dla Basic Auth (opcjonalne)', + 'password_placeholder' => 'Hasło dla Basic Auth (opcjonalne)', +]; diff --git a/lang/pl_PL/settings/data_integration.php b/lang/pl_PL/settings/data_integration.php new file mode 100644 index 000000000..8b0779c02 --- /dev/null +++ b/lang/pl_PL/settings/data_integration.php @@ -0,0 +1,46 @@ + 'Integracja danych', + 'label' => 'Integracja danych', + + // InfluxDB v2 + 'influxdb_v2' => 'InfluxDB v2', + 'influxdb_v2_description' => 'Gdy włączone, wszystkie nowe wyniki testów prędkości zostaną również wysłane do InfluxDB.', + 'influxdb_v2_enabled' => 'Włącz', + 'influxdb_v2_url' => 'URL', + 'influxdb_v2_url_placeholder' => 'http://twoja-instancja-influxdb', + 'influxdb_v2_org' => 'Organizacja', + 'influxdb_v2_bucket' => 'Bucket', + 'influxdb_v2_bucket_placeholder' => 'speedtest-tracker', + 'influxdb_v2_token' => 'Token', + 'influxdb_v2_verify_ssl' => 'Weryfikuj SSL', + + // Actions + 'test_connection' => 'Testuj połączenie', + 'starting_bulk_data_write_to_influxdb' => 'Rozpoczynanie masowego zapisu danych do InfluxDB', + 'sending_test_data_to_influxdb' => 'Wysyłanie danych testowych do InfluxDB', + + // Test connection notifications + 'influxdb_test_failed' => 'Test Influxdb nie powiódł się', + 'influxdb_test_failed_body' => 'Sprawdź logi, aby uzyskać więcej szczegółów.', + 'influxdb_test_success' => 'Pomyślnie wysłano dane testowe do Influxdb', + 'influxdb_test_success_body' => 'Dane testowe zostały wysłane do InfluxDB, sprawdź, czy dane zostały otrzymane.', + + // Bulk write notifications + 'influxdb_bulk_write_failed' => 'Nie udało się masowo zapisać do Influxdb.', + 'influxdb_bulk_write_failed_body' => 'Sprawdź logi, aby uzyskać więcej szczegółów.', + 'influxdb_bulk_write_success' => 'Zakończono masowe ładowanie danych do Influxdb.', + 'influxdb_bulk_write_success_body' => 'Dane zostały wysłane do InfluxDB, sprawdź, czy dane zostały otrzymane.', + + // Prometheus + 'prometheus' => 'Prometheus', + 'prometheus_enabled' => 'Włącz', + 'prometheus_enabled_helper_text' => 'Gdy włączone, metryki dla każdego nowego testu prędkości będą dostępne pod adresem /prometheus.', + 'prometheus_allowed_ips' => 'Dozwolone adresy IP', + 'prometheus_allowed_ips_helper' => 'Lista adresów IP lub zakresów CIDR (np. 192.168.1.0/24) dozwolonych do dostępu do punktu końcowego metryk. Pozostaw puste, aby zezwolić na wszystkie adresy IP.', + + // Common labels + 'org' => 'Organizacja', + 'bucket' => 'Bucket', +]; diff --git a/lang/pl_PL/settings/notifications.php b/lang/pl_PL/settings/notifications.php new file mode 100644 index 000000000..7e03ed311 --- /dev/null +++ b/lang/pl_PL/settings/notifications.php @@ -0,0 +1,66 @@ + 'Powiadomienia', + 'label' => 'Powiadomienia', + + // Database notifications + 'database' => 'Baza danych', + 'database_description' => 'Powiadomienia wysłane do tego kanału pojawią się pod ikoną 🔔 w nagłówku.', + 'test_database_channel' => 'Testuj kanał bazy danych', + + // Mail notifications + 'mail' => 'Email', + 'recipients' => 'Odbiorcy', + 'test_mail_channel' => 'Testuj kanał email', + + // Apprise notifications + 'apprise' => 'Apprise', + 'enable_apprise_notifications' => 'Włącz powiadomienia Apprise', + 'apprise_server' => 'Serwer Apprise', + 'apprise_server_url' => 'URL serwera Apprise', + 'apprise_server_url_helper' => 'URL Twojego serwera Apprise. URL musi kończyć się na /notify', + 'apprise_verify_ssl' => 'Weryfikuj SSL', + 'apprise_channels' => 'Kanały powiadomień', + 'apprise_channel_url' => 'URL usługi', + 'apprise_hint_description' => 'Apprise umożliwia wysyłanie powiadomień do ponad 90 usług. Musisz uruchomić serwer Apprise i skonfigurować URL-e usług poniżej.', + 'apprise_channel_url_helper' => 'Użyj formatu URL Apprise. Przykłady: discord://WebhookID/Token, slack://TokenA/TokenB/TokenC', + 'apprise_save_to_test' => 'Zapisz ustawienia, aby przetestować powiadomienie.', + 'test_apprise_channel' => 'Testuj Apprise', + 'apprise_channel_url_validation_error' => 'Nieprawidłowy URL Apprise. Musisz użyć formatu Apprise (np. discord://, slack://), nie http:// lub https://. Zobacz dokumentację Apprise, aby uzyskać więcej informacji', + + // Webhook + 'webhook' => 'Webhook', + 'webhooks' => 'Webhooki', + 'test_webhook_channel' => 'Testuj kanał webhook', + 'webhook_hint_description' => 'Są to ogólne webhooki. Przykłady ładunków i szczegóły implementacji znajdziesz w dokumentacji. Dla usług takich jak Discord, Ntfy itp. użyj Apprise.', + + // Common notification messages + 'notify_on_every_speedtest_run' => 'Powiadamiaj po każdym ukończonym zaplanowanym teście prędkości', + 'notify_on_every_speedtest_run_helper' => 'Wyśle powiadomienie po każdym ukończonym zaplanowanym teście prędkości, tylko dla zdrowych lub niebenchmarkowanych testów', + 'notify_on_threshold_failures' => 'Powiadamiaj o niepowodzeniach progów dla zaplanowanych testów prędkości', + 'notify_on_threshold_failures_helper' => 'Wyśle powiadomienie, gdy zaplanowany test prędkości nie powiedzie się na skonfigurowanych progach', + + // Test notification messages + 'test_notifications' => [ + 'database' => [ + 'ping' => 'Mówię: ping', + 'pong' => 'Ty mówisz: pong', + 'received' => 'Otrzymano powiadomienie testowe z bazy danych!', + 'sent' => 'Wysłano powiadomienie testowe z bazy danych.', + ], + 'mail' => [ + 'add' => 'Dodaj odbiorców email!', + 'sent' => 'Wysłano powiadomienie testowe email.', + ], + 'webhook' => [ + 'add' => 'Dodaj URL-e webhooków!', + 'sent' => 'Wysłano powiadomienie testowe webhook.', + 'failed' => 'Powiadomienie webhook nie powiodło się.', + 'payload' => 'Testowanie powiadomienia webhook', + ], + ], + + // Helper text + 'threshold_helper_text' => 'Powiadomienia o progach zostaną wysłane do trasy /fail w URL-u.', +]; diff --git a/lang/pl_PL/settings/thresholds.php b/lang/pl_PL/settings/thresholds.php new file mode 100644 index 000000000..71346cb34 --- /dev/null +++ b/lang/pl_PL/settings/thresholds.php @@ -0,0 +1,22 @@ + 'Progi', + 'label' => 'Progi', + + // Absolute thresholds + 'absolute' => 'Bezwzględne', + 'absolute_description' => 'Progi bezwzględne nie uwzględniają poprzedniej historii i mogą być uruchamiane przy każdym teście.', + 'absolute_enabled' => 'Włącz progi bezwzględne', + + // Metrics section + 'metrics' => 'Metryki', + 'metrics_helper_text' => 'Ustaw na zero, aby wyłączyć tę metrykę.', + + // General threshold labels + 'thresholds' => 'Progi', + 'threshold_enabled' => 'Próg włączony', + 'threshold_download' => 'Próg pobierania', + 'threshold_upload' => 'Próg wysyłania', + 'threshold_ping' => 'Próg ping', +]; diff --git a/lang/pl_PL/tools.php b/lang/pl_PL/tools.php new file mode 100644 index 000000000..2ccc2e985 --- /dev/null +++ b/lang/pl_PL/tools.php @@ -0,0 +1,6 @@ + 'Serwery Ookla', +]; diff --git a/lang/pl_PL/users.php b/lang/pl_PL/users.php new file mode 100644 index 000000000..1e46e90f8 --- /dev/null +++ b/lang/pl_PL/users.php @@ -0,0 +1,15 @@ + 'Użytkownicy', + 'label' => 'Użytkownicy', + + // User prompts and messages + 'user_change' => [ + 'info' => 'Rola użytkownika zaktualizowana.', + 'password_updated_info' => 'Zaktualizowano hasło dla :email.', + 'what_is_password' => 'Jakie jest nowe hasło?', + 'what_is_the_email_address' => 'Jaki jest adres email?', + 'what_role' => 'Jaka rolę powinien mieć użytkownik?', + ], +]; diff --git a/lang/pl_PL/validation.php b/lang/pl_PL/validation.php new file mode 100644 index 000000000..aa6715df2 --- /dev/null +++ b/lang/pl_PL/validation.php @@ -0,0 +1,91 @@ + [ + 'attribute-name' => [ + + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap our attribute placeholder + | with something more reader friendly such as "E-Mail Address" instead + | of "email". This simply helps us make our message more expressive. + | + */ + + 'attributes' => [ + 'address' => 'adres', + 'age' => 'wiek', + 'body' => 'treść', + 'cell' => 'komórka', + 'city' => 'miasto', + 'country' => 'kraj', + 'date' => 'data', + 'day' => 'dzień', + 'excerpt' => 'podsumowanie', + 'first_name' => 'imię', + 'gender' => 'płeć', + 'marital_status' => 'stan cywilny', + 'profession' => 'zawód', + 'nationality' => 'narodowość', + 'hour' => 'godzina', + 'last_name' => 'nazwisko', + 'message' => 'wiadomość', + 'minute' => 'minuta', + 'mobile' => 'telefon komórkowy', + 'month' => 'miesiąc', + 'name' => 'nazwa', + 'zipcode' => 'kod pocztowy', + 'company_name' => 'nazwa firmy', + 'neighborhood' => 'dzielnica', + 'number' => 'numer', + 'password' => 'hasło', + 'phone' => 'telefon', + 'second' => 'sekunda', + 'sex' => 'płeć', + 'state' => 'województwo', + 'street' => 'ulica', + 'subject' => 'temat', + 'text' => 'tekst', + 'time' => 'czas', + 'title' => 'tytuł', + 'username' => 'nazwa użytkownika', + 'year' => 'rok', + 'description' => 'opis', + 'password_confirmation' => 'potwierdzenie hasła', + 'current_password' => 'obecne hasło', + 'complement' => 'uzupełnienie', + 'modality' => 'modalność', + 'category' => 'kategoria', + 'blood_type' => 'grupa krwi', + 'birth_date' => 'data urodzenia', + ], +];