Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/fixes/16649-pl-untranslated-ui-strings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(i18n):** UI strings of the Polish locale were still English (the quota-share time windows, the Codex cooldown and paid credits, the proxy subscription core errors, the per-model concurrency caps, the request timeline labels); they are now translated with the wording of the neighbouring pl keys ([#16649](https://github.com/diegosouzapw/OmniRoute/pull/16649)) — thanks @pacocartones.
120 changes: 60 additions & 60 deletions src/i18n/messages/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -5268,11 +5268,11 @@
}
},
"providers": {
"codexReleaseCooldown": "Clear local cooldown",
"codexReleaseCooldownHint": "Allow this Codex account to be tried again. Does not redeem a reset credit or change upstream limits.",
"codexReleasingCooldown": "Clearing…",
"codexCooldownReleased": "Local cooldown cleared.",
"codexCooldownReleaseFailed": "Could not clear cooldown. Please try again.",
"codexReleaseCooldown": "Wyczyść lokalny cooldown",
"codexReleaseCooldownHint": "Pozwala ponownie spróbować użyć tego konta Codex. Nie wykorzystuje kredytu resetu i nie zmienia limitów upstream.",
"codexReleasingCooldown": "Czyszczenie…",
"codexCooldownReleased": "Lokalny cooldown wyczyszczony.",
"codexCooldownReleaseFailed": "Nie udało się wyczyścić cooldownu. Spróbuj ponownie.",
"title": "Dostawcy",
"Account Deactivated": "Konto dezaktywowane",
"allProviders": "Wszystkie Providers",
Expand Down Expand Up @@ -5543,7 +5543,7 @@
"modelsImported": "Zaimportowano {count} models",
"allModelsAlreadyImported": "Wszystkie models zostały już zaimportowane",
"noNewModelsToImport": "Brak nowych models do zaimportowania — wszystkie models znajdują się już w rejestrze lub na liście niestandardowych models",
"localCatalogFallbackStatus": "Couldn't reach the provider's model list — showing the built-in catalog",
"localCatalogFallbackStatus": "Nie udało się pobrać listy modeli dostawcy — wyświetlany jest wbudowany katalog",
"skippingExistingModels": "Pomijanie {count} istniejących models",
"autoSync": "Automatyczna synchronizacja",
"autoSyncShort": "Synchronizuj",
Expand Down Expand Up @@ -6729,16 +6729,16 @@
"searchByModelAria": "Szukaj według modelu",
"selectSupportedEndpoint": "Wybierz przynajmniej jeden obsługiwany punkt końcowy",
"antigravityClientProfileHarness": "Harness / CLI",
"rateLimitOverridesModelConcurrencyLabel": "Per-model concurrency caps",
"rateLimitOverridesModelConcurrencyLabel": "Limity współbieżności dla poszczególnych modeli",
"rateLimitOverridesModelConcurrencyPlaceholder": "glm-5=1\nglm-4.7=3",
"rateLimitOverridesModelConcurrencyHint": "Optional: one model=cap per line, matched against the exact upstream model id. Queues excess requests locally; blank means no per-model cap.",
"rateLimitOverridesModelConcurrencyInvalid": "Invalid per-model concurrency entry \"{entry}\" — use model=cap with a whole number from 1 to {max}.",
"codexPaidCreditsShort": "Extra credits",
"codexPaidCreditsToggleTitle": "Allow paid Codex credits after subscription quota runs out (additional charges may apply)",
"codexPaidCreditsEnabled": "Codex paid credits enabled (additional charges may apply)",
"codexPaidCreditsDisabled": "Codex paid credits disabled",
"failedUpdateCodexPaidCredits": "Failed to update Codex paid-credit policy",
"allowCodexPaidCreditsLabel": "Allow paid Codex credits",
"rateLimitOverridesModelConcurrencyHint": "Opcjonalne: jeden wpis model=cap w wierszu, dopasowywany do dokładnego identyfikatora modelu upstream. Nadmiarowe żądania są kolejkowane lokalnie; puste oznacza brak limitu dla modelu.",
"rateLimitOverridesModelConcurrencyInvalid": "Nieprawidłowy wpis współbieżności dla modelu „{entry}” — użyj model=cap, gdzie cap jest liczbą całkowitą od 1 do {max}.",
"codexPaidCreditsShort": "Dodatkowe kredyty",
"codexPaidCreditsToggleTitle": "Zezwalaj na płatne kredyty Codex po wyczerpaniu limitu subskrypcji (mogą obowiązywać dodatkowe opłaty)",
"codexPaidCreditsEnabled": "Płatne kredyty Codex włączone (mogą obowiązywać dodatkowe opłaty)",
"codexPaidCreditsDisabled": "Płatne kredyty Codex wyłączone",
"failedUpdateCodexPaidCredits": "Nie udało się zaktualizować zasad płatnych kredytów Codex",
"allowCodexPaidCreditsLabel": "Zezwalaj na płatne kredyty Codex",
"allowCodexPaidCreditsDescription": "Allow this account to use paid credits after its subscription quota reaches the cutoff. Requires available credits reported by OpenAI; may incur charges. Spark limits and upstream cooldowns still apply. Credit availability is checked even if quota preflight is disabled."
},
"settings": {
Expand Down Expand Up @@ -7089,10 +7089,10 @@
"NEEDS_CORE_NOT_CONFIGURED": "Ta subskrypcja zawiera węzły, które wymagają lokalnego rdzenia proxy (SS/VMess/Trojan/VLESS); nie są one trasowane, dopóki nie skonfigurujesz punktu końcowego SOCKS5 lokalnego rdzenia.",
"NO_USABLE_NODES": "Subskrypcja nie zwróciła żadnych użytecznych węzłów (http/https/socks5 lub węzłów z punktem końcowym lokalnego rdzenia).",
"SELECTOR_SWITCH_FAILED": "Wywołanie sterujące rdzenia proxy nie powiodło się; poprzednia trasa pozostaje aktywna. Sprawdź adres URL i sekret sterowania, a następnie odśwież.",
"CORE_CONFIG_NOT_GENERATED": "The local-core config was not generated; the adopted file is unchanged. Check the path and refresh.",
"CORE_CONFIG_NOT_GENERATED": "Konfiguracja lokalnego rdzenia nie została wygenerowana; przyjęty plik pozostał bez zmian. Sprawdź ścieżkę i odśwież.",
"CORE_CONFIG_NOT_APPLIED": "Wygenerowana konfiguracja rdzenia nie mogła zastąpić przyjętego pliku; zamiast tego zachowano kopię obok.",
"CORE_RELOAD_UNDECLARED": "No reload channel is declared for the replaced core config. Declare one: a control URL on a compatible core, the OMNIROUTE_PROXY_CORE_RELOAD_COMMAND variable as a JSON argument array, or the value external for an outside observer.",
"CORE_RELOAD_FAILED": "The proxy core reload failed; the new config file stays in place. Check the reload command, then refresh.",
"CORE_RELOAD_UNDECLARED": "Dla zastąpionej konfiguracji rdzenia nie zadeklarowano kanału przeładowania. Zadeklaruj jeden: adres URL sterowania w zgodnym rdzeniu, zmienną OMNIROUTE_PROXY_CORE_RELOAD_COMMAND jako tablicę argumentów JSON albo wartość external dla zewnętrznego obserwatora.",
"CORE_RELOAD_FAILED": "Przeładowanie rdzenia proxy nie powiodło się; nowy plik konfiguracji pozostaje na miejscu. Sprawdź polecenie przeładowania, a następnie odśwież.",
"CORE_CONFIG_ENTRIES_SKIPPED": "Niektóre wpisy zostały pominięte podczas generowania. Zobacz log serwera."
},
"description": "Wklej link do subskrypcji proxy. Po włączeniu ruch jest kierowany przez pulę proxy w trybie globalnym lub regułowym (określony dostawca). Węzły subskrypcyjne są automatycznie synchronizowane z pulą proxy i ponownie wykorzystują istniejące mechanizmy odpytywania, sprawdzania stanu i zapobiegania wyciekom.",
Expand Down Expand Up @@ -7180,17 +7180,17 @@
"lastSwitchMember": "Obsługujący element",
"nextSwitch": "Następne możliwe przełączenie",
"nextSwitchNow": "Teraz",
"coreConfigPath": "Core config file",
"coreConfigPath": "Plik konfiguracji rdzenia",
"coreConfigPathPlaceholder": "/var/lib/omniroute/sing-box/config.json",
"coreConfigPathDesc": "Absolute .json path (lowercase extension). Empty = no generation. Each sync writes '<path>'.generated beside the adopted file, never into it.",
"lastSwitchKind": "Switch reason",
"coreConfigPathDesc": "Bezwzględna ścieżka do pliku .json (rozszerzenie małymi literami). Puste = bez generowania. Każda synchronizacja zapisuje '<path>'.generated obok przyjętego pliku, nigdy do niego.",
"lastSwitchKind": "Powód przełączenia",
"switchKind": {
"ip_quota_429": "quota",
"proxy_unreachable": "unreachable",
"ip_quota_429": "limit",
"proxy_unreachable": "niedostępny",
"transport": "transport",
"slow": "slow"
"slow": "wolny"
},
"coreReloadAppliedBy": "Applied by: {mode}",
"coreReloadAppliedBy": "Zastosowane przez: {mode}",
"coreBinaryPath": "Ścieżka pliku binarnego rdzenia",
"coreBinaryPathPlaceholder": "/usr/bin/sing-box",
"coreBinaryPathHelp": "Opcjonalne: weryfikuje wygenerowany plik plikiem binarnym rdzenia przed zastąpieniem przyjętego pliku. Pozostaw puste, aby nadal zapisywać obok niego. Katalog zostanie utworzony, jeśli nie istnieje."
Expand Down Expand Up @@ -10123,10 +10123,10 @@
"lastRefreshed": "Ostatnio odświeżono",
"providerQuota": "Limit dostawcy",
"providerQuotaHomeHint": "Status na żywo na połączonych kontach",
"codexPaidCreditsLabel": "Paid Codex credits",
"codexPaidCreditsAvailable": "Available (balance not reported)",
"codexPaidCreditsUnavailable": "Unavailable or spending limit reached",
"codexPaidCreditsUnlimited": "Unlimited"
"codexPaidCreditsLabel": "Płatne kredyty Codex",
"codexPaidCreditsAvailable": "Dostępne (saldo nie jest raportowane)",
"codexPaidCreditsUnavailable": "Niedostępne lub osiągnięto limit wydatków",
"codexPaidCreditsUnlimited": "Bez limitu"
},
"modals": {
"waitingAuth": "Oczekiwanie na autoryzację",
Expand Down Expand Up @@ -12147,33 +12147,33 @@
"accountQuotaNone": "—",
"logTitle": "Dziennik użycia",
"logEmpty": "Brak użycia",
"schedulesTitle": "Time windows",
"schedulesHint": "Say when OmniRoute may use these accounts, and how much it may take. Allow windows act as a whitelist: add one and the pool is closed outside it. A block window is a blackout and always wins over an allow window it overlaps.",
"schedulesEmpty": "No time windows — the pool is available around the clock",
"schedulesAdd": "Add window",
"schedulesRemove": "Remove window",
"schedulesEnabled": "Window enabled",
"schedulesMode": "Window type",
"schedulesModeAllow": "Allow",
"schedulesModeBlock": "Block",
"schedulesFrom": "From",
"schedulesTo": "To",
"schedulesReserve": "Keep free",
"schedulesReserveHint": "Stop using the account once less than this share of a quota window is left. Counts everyone's usage, so someone else working on the same account pushes OmniRoute out first. Add one floor per window: a weekly reserve that protects the whole week would throttle every short burst if it also governed the 5h window.",
"schedulesReserveNone": "no floor — OmniRoute may use the account down to empty",
"schedulesReserveAdd": "Add floor",
"schedulesReserveRemove": "Remove floor",
"schedulesReserveWindow": "Quota window this floor guards",
"schedulesReserveWindowAny": "any window",
"schedulesBudget": "OmniRoute budget",
"schedulesBudgetHint": "How much OmniRoute itself may spend in this window. Counts only its own traffic, so usage by anyone else neither eats nor inflates it.",
"schedulesBudgetUnit": "Budget unit",
"schedulesBudgetWindow": "Budget window",
"schedulesTimezone": "Time zone",
"schedulesPriority": "Priority",
"schedulesSaved": "Time windows saved",
"schedulesSaveError": "Could not save the time windows",
"schedulesLoadError": "Could not load the time windows",
"schedulesTitle": "Okna czasowe",
"schedulesHint": "Określ, kiedy OmniRoute może używać tych kont i ile może zużyć. Okna zezwalające działają jak biała lista: po dodaniu jednego pula jest zamknięta poza nim. Okno blokujące to przerwa w działaniu i zawsze wygrywa z nakładającym się oknem zezwalającym.",
"schedulesEmpty": "Brak okien czasowych — pula jest dostępna przez całą dobę",
"schedulesAdd": "Dodaj okno",
"schedulesRemove": "Usuń okno",
"schedulesEnabled": "Okno włączone",
"schedulesMode": "Typ okna",
"schedulesModeAllow": "Zezwalaj",
"schedulesModeBlock": "Blokuj",
"schedulesFrom": "Od",
"schedulesTo": "Do",
"schedulesReserve": "Zostaw wolne",
"schedulesReserveHint": "Przestań używać konta, gdy w oknie limitu zostanie mniej niż ten udział. Liczy się użycie wszystkich, więc jeśli ktoś inny pracuje na tym samym koncie, OmniRoute wycofa się jako pierwszy. Dodaj jeden próg na okno: tygodniowa rezerwa chroniąca cały tydzień dławiłaby każdy krótki szczyt, gdyby obejmowała też okno 5-godzinne.",
"schedulesReserveNone": "brak progu — OmniRoute może zużyć konto do zera",
"schedulesReserveAdd": "Dodaj próg",
"schedulesReserveRemove": "Usuń próg",
"schedulesReserveWindow": "Okno limitu chronione przez ten próg",
"schedulesReserveWindowAny": "dowolne okno",
"schedulesBudget": "Budżet OmniRoute",
"schedulesBudgetHint": "Ile samo OmniRoute może wydać w tym oknie. Liczy tylko własny ruch, więc użycie przez innych ani go nie zużywa, ani nie zwiększa.",
"schedulesBudgetUnit": "Jednostka budżetu",
"schedulesBudgetWindow": "Okno budżetu",
"schedulesTimezone": "Strefa czasowa",
"schedulesPriority": "Priorytet",
"schedulesSaved": "Zapisano okna czasowe",
"schedulesSaveError": "Nie udało się zapisać okien czasowych",
"schedulesLoadError": "Nie udało się wczytać okien czasowych",
"groupLabel": "Grupa",
"newGroup": "Nowa grupa",
"renameGroup": "Zmień nazwę grupy",
Expand Down Expand Up @@ -14635,11 +14635,11 @@
"day": "dzień",
"unknownModel": "nieznany",
"pending": "oczekujące",
"allApiKeys": "All API keys",
"allApiKeys": "Wszystkie klucze API",
"mcp": "MCP",
"mcpTool": "MCP tool",
"scope": "Scope",
"apiKey": "API key"
"mcpTool": "Narzędzie MCP",
"scope": "Zakres",
"apiKey": "Klucz API"
},
"metadata": {
"compressionTitle": "Kompresja",
Expand Down
Loading