feat(app): polish translations (#9884)

This commit is contained in:
Filip
2026-01-21 22:04:25 +01:00
committed by GitHub
parent 09d2fd57ff
commit 5ca28b6454
11 changed files with 744 additions and 2 deletions

View File

@@ -19,13 +19,15 @@ import { dict as uiEs } from "@opencode-ai/ui/i18n/es"
import { dict as uiFr } from "@opencode-ai/ui/i18n/fr"
import { dict as uiDa } from "@opencode-ai/ui/i18n/da"
import { dict as uiJa } from "@opencode-ai/ui/i18n/ja"
import { dict as pl } from "@/i18n/pl"
import { dict as uiPl } from "@opencode-ai/ui/i18n/pl"
export type Locale = "en" | "zh" | "ko" | "de" | "es" | "fr" | "da" | "ja"
export type Locale = "en" | "zh" | "ko" | "de" | "es" | "fr" | "da" | "ja" | "pl"
type RawDictionary = typeof en & typeof uiEn
type Dictionary = i18n.Flatten<RawDictionary>
const LOCALES: readonly Locale[] = ["en", "zh", "ko", "de", "es", "fr", "da", "ja"]
const LOCALES: readonly Locale[] = ["en", "zh", "ko", "de", "es", "fr", "da", "ja", "pl"]
function detectLocale(): Locale {
if (typeof navigator !== "object") return "en"
@@ -40,6 +42,7 @@ function detectLocale(): Locale {
if (language.toLowerCase().startsWith("fr")) return "fr"
if (language.toLowerCase().startsWith("da")) return "da"
if (language.toLowerCase().startsWith("ja")) return "ja"
if (language.toLowerCase().startsWith("pl")) return "pl"
}
return "en"
@@ -63,6 +66,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont
if (store.locale === "fr") return "fr"
if (store.locale === "da") return "da"
if (store.locale === "ja") return "ja"
if (store.locale === "pl") return "pl"
return "en"
})
@@ -81,6 +85,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont
if (locale() === "fr") return { ...base, ...i18n.flatten({ ...fr, ...uiFr }) }
if (locale() === "da") return { ...base, ...i18n.flatten({ ...da, ...uiDa }) }
if (locale() === "ja") return { ...base, ...i18n.flatten({ ...ja, ...uiJa }) }
if (locale() === "pl") return { ...base, ...i18n.flatten({ ...pl, ...uiPl }) }
return { ...base, ...i18n.flatten({ ...ko, ...uiKo }) }
})
@@ -95,6 +100,7 @@ export const { use: useLanguage, provider: LanguageProvider } = createSimpleCont
fr: "language.fr",
da: "language.da",
ja: "language.ja",
pl: "language.pl",
}
const label = (value: Locale) => t(labelKey[value])

View File

@@ -276,6 +276,7 @@ export const dict = {
"language.fr": "Fransk",
"language.ja": "Japansk",
"language.da": "Dansk",
"language.pl": "Polsk",
"toast.language.title": "Sprog",
"toast.language.description": "Skiftede til {{language}}",

View File

@@ -281,6 +281,7 @@ export const dict = {
"language.fr": "Französisch",
"language.ja": "Japanisch",
"language.da": "Dänisch",
"language.pl": "Polnisch",
"toast.language.title": "Sprache",
"toast.language.description": "Zu {{language}} gewechselt",

View File

@@ -293,6 +293,7 @@ export const dict = {
"language.fr": "French",
"language.ja": "Japanese",
"language.da": "Danish",
"language.pl": "Polish",
"toast.language.title": "Language",
"toast.language.description": "Switched to {{language}}",

View File

@@ -276,6 +276,7 @@ export const dict = {
"language.fr": "Francés",
"language.ja": "Japonés",
"language.da": "Danés",
"language.pl": "Polaco",
"toast.language.title": "Idioma",
"toast.language.description": "Cambiado a {{language}}",

View File

@@ -276,6 +276,7 @@ export const dict = {
"language.fr": "Français",
"language.ja": "Japonais",
"language.da": "Danois",
"language.pl": "Polonais",
"toast.language.title": "Langue",
"toast.language.description": "Passé à {{language}}",

View File

@@ -274,6 +274,7 @@ export const dict = {
"language.fr": "フランス語",
"language.ja": "日本語",
"language.da": "デンマーク語",
"language.pl": "ポーランド語",
"toast.language.title": "言語",
"toast.language.description": "{{language}}に切り替えました",

View File

@@ -278,6 +278,7 @@ export const dict = {
"language.fr": "프랑스어",
"language.ja": "일본어",
"language.da": "덴마크어",
"language.pl": "폴란드어",
"toast.language.title": "언어",
"toast.language.description": "{{language}}(으)로 전환됨",

638
packages/app/src/i18n/pl.ts Normal file
View File

@@ -0,0 +1,638 @@
export const dict = {
"command.category.suggested": "Sugerowane",
"command.category.view": "Widok",
"command.category.project": "Projekt",
"command.category.provider": "Dostawca",
"command.category.server": "Serwer",
"command.category.session": "Sesja",
"command.category.theme": "Motyw",
"command.category.language": "Język",
"command.category.file": "Plik",
"command.category.terminal": "Terminal",
"command.category.model": "Model",
"command.category.mcp": "MCP",
"command.category.agent": "Agent",
"command.category.permissions": "Uprawnienia",
"command.category.workspace": "Przestrzeń robocza",
"command.category.settings": "Ustawienia",
"theme.scheme.system": "Systemowy",
"theme.scheme.light": "Jasny",
"theme.scheme.dark": "Ciemny",
"command.sidebar.toggle": "Przełącz pasek boczny",
"command.project.open": "Otwórz projekt",
"command.provider.connect": "Połącz dostawcę",
"command.server.switch": "Przełącz serwer",
"command.settings.open": "Otwórz ustawienia",
"command.session.previous": "Poprzednia sesja",
"command.session.next": "Następna sesja",
"command.session.archive": "Zarchiwizuj sesję",
"command.palette": "Paleta poleceń",
"command.theme.cycle": "Przełącz motyw",
"command.theme.set": "Użyj motywu: {{theme}}",
"command.theme.scheme.cycle": "Przełącz schemat kolorów",
"command.theme.scheme.set": "Użyj schematu kolorów: {{scheme}}",
"command.language.cycle": "Przełącz język",
"command.language.set": "Użyj języka: {{language}}",
"command.session.new": "Nowa sesja",
"command.file.open": "Otwórz plik",
"command.file.open.description": "Szukaj plików i poleceń",
"command.terminal.toggle": "Przełącz terminal",
"command.review.toggle": "Przełącz przegląd",
"command.terminal.new": "Nowy terminal",
"command.terminal.new.description": "Utwórz nową kartę terminala",
"command.steps.toggle": "Przełącz kroki",
"command.steps.toggle.description": "Pokaż lub ukryj kroki dla bieżącej wiadomości",
"command.message.previous": "Poprzednia wiadomość",
"command.message.previous.description": "Przejdź do poprzedniej wiadomości użytkownika",
"command.message.next": "Następna wiadomość",
"command.message.next.description": "Przejdź do następnej wiadomości użytkownika",
"command.model.choose": "Wybierz model",
"command.model.choose.description": "Wybierz inny model",
"command.mcp.toggle": "Przełącz MCP",
"command.mcp.toggle.description": "Przełącz MCP",
"command.agent.cycle": "Przełącz agenta",
"command.agent.cycle.description": "Przełącz na następnego agenta",
"command.agent.cycle.reverse": "Przełącz agenta wstecz",
"command.agent.cycle.reverse.description": "Przełącz na poprzedniego agenta",
"command.model.variant.cycle": "Przełącz wysiłek myślowy",
"command.model.variant.cycle.description": "Przełącz na następny poziom wysiłku",
"command.permissions.autoaccept.enable": "Automatyczne akceptowanie edycji",
"command.permissions.autoaccept.disable": "Zatrzymaj automatyczne akceptowanie edycji",
"command.session.undo": "Cofnij",
"command.session.undo.description": "Cofnij ostatnią wiadomość",
"command.session.redo": "Ponów",
"command.session.redo.description": "Ponów ostatnią cofniętą wiadomość",
"command.session.compact": "Kompaktuj sesję",
"command.session.compact.description": "Podsumuj sesję, aby zmniejszyć rozmiar kontekstu",
"command.session.fork": "Rozwidlij od wiadomości",
"command.session.fork.description": "Utwórz nową sesję od poprzedniej wiadomości",
"command.session.share": "Udostępnij sesję",
"command.session.share.description": "Udostępnij tę sesję i skopiuj URL do schowka",
"command.session.unshare": "Przestań udostępniać sesję",
"command.session.unshare.description": "Zatrzymaj udostępnianie tej sesji",
"palette.search.placeholder": "Szukaj plików i poleceń",
"palette.empty": "Brak wyników",
"palette.group.commands": "Polecenia",
"palette.group.files": "Pliki",
"dialog.provider.search.placeholder": "Szukaj dostawców",
"dialog.provider.empty": "Nie znaleziono dostawców",
"dialog.provider.group.popular": "Popularne",
"dialog.provider.group.other": "Inne",
"dialog.provider.tag.recommended": "Zalecane",
"dialog.provider.anthropic.note": "Połącz z Claude Pro/Max lub kluczem API",
"dialog.model.select.title": "Wybierz model",
"dialog.model.search.placeholder": "Szukaj modeli",
"dialog.model.empty": "Brak wyników modelu",
"dialog.model.manage": "Zarządzaj modelami",
"dialog.model.manage.description": "Dostosuj, które modele pojawiają się w wyborze modelu.",
"dialog.model.unpaid.freeModels.title": "Darmowe modele dostarczane przez OpenCode",
"dialog.model.unpaid.addMore.title": "Dodaj więcej modeli od popularnych dostawców",
"dialog.provider.viewAll": "Zobacz wszystkich dostawców",
"provider.connect.title": "Połącz {{provider}}",
"provider.connect.title.anthropicProMax": "Zaloguj się z Claude Pro/Max",
"provider.connect.selectMethod": "Wybierz metodę logowania dla {{provider}}.",
"provider.connect.method.apiKey": "Klucz API",
"provider.connect.status.inProgress": "Autoryzacja w toku...",
"provider.connect.status.waiting": "Oczekiwanie na autoryzację...",
"provider.connect.status.failed": "Autoryzacja nie powiodła się: {{error}}",
"provider.connect.apiKey.description":
"Wprowadź swój klucz API {{provider}}, aby połączyć konto i używać modeli {{provider}} w OpenCode.",
"provider.connect.apiKey.label": "Klucz API {{provider}}",
"provider.connect.apiKey.placeholder": "Klucz API",
"provider.connect.apiKey.required": "Klucz API jest wymagany",
"provider.connect.opencodeZen.line1":
"OpenCode Zen daje dostęp do wybranego zestawu niezawodnych, zoptymalizowanych modeli dla agentów kodujących.",
"provider.connect.opencodeZen.line2":
"Z jednym kluczem API uzyskasz dostęp do modeli takich jak Claude, GPT, Gemini, GLM i więcej.",
"provider.connect.opencodeZen.visit.prefix": "Odwiedź ",
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
"provider.connect.opencodeZen.visit.suffix": ", aby odebrać swój klucz API.",
"provider.connect.oauth.code.visit.prefix": "Odwiedź ",
"provider.connect.oauth.code.visit.link": "ten link",
"provider.connect.oauth.code.visit.suffix":
", aby odebrać kod autoryzacyjny, połączyć konto i używać modeli {{provider}} w OpenCode.",
"provider.connect.oauth.code.label": "Kod autoryzacyjny {{method}}",
"provider.connect.oauth.code.placeholder": "Kod autoryzacyjny",
"provider.connect.oauth.code.required": "Kod autoryzacyjny jest wymagany",
"provider.connect.oauth.code.invalid": "Nieprawidłowy kod autoryzacyjny",
"provider.connect.oauth.auto.visit.prefix": "Odwiedź ",
"provider.connect.oauth.auto.visit.link": "ten link",
"provider.connect.oauth.auto.visit.suffix":
" i wprowadź poniższy kod, aby połączyć konto i używać modeli {{provider}} w OpenCode.",
"provider.connect.oauth.auto.confirmationCode": "Kod potwierdzający",
"provider.connect.toast.connected.title": "Połączono {{provider}}",
"provider.connect.toast.connected.description": "Modele {{provider}} są teraz dostępne do użycia.",
"model.tag.free": "Darmowy",
"model.tag.latest": "Najnowszy",
"model.provider.anthropic": "Anthropic",
"model.provider.openai": "OpenAI",
"model.provider.google": "Google",
"model.provider.xai": "xAI",
"model.provider.meta": "Meta",
"model.input.text": "tekst",
"model.input.image": "obraz",
"model.input.audio": "audio",
"model.input.video": "wideo",
"model.input.pdf": "pdf",
"model.tooltip.allows": "Obsługuje: {{inputs}}",
"model.tooltip.reasoning.allowed": "Obsługuje wnioskowanie",
"model.tooltip.reasoning.none": "Brak wnioskowania",
"model.tooltip.context": "Limit kontekstu {{limit}}",
"common.search.placeholder": "Szukaj",
"common.loading": "Ładowanie",
"common.loading.ellipsis": "...",
"common.cancel": "Anuluj",
"common.submit": "Prześlij",
"common.save": "Zapisz",
"common.saving": "Zapisywanie...",
"common.default": "Domyślny",
"common.attachment": "załącznik",
"prompt.placeholder.shell": "Wpisz polecenie terminala...",
"prompt.placeholder.normal": 'Zapytaj o cokolwiek... "{{example}}"',
"prompt.mode.shell": "Terminal",
"prompt.mode.shell.exit": "esc aby wyjść",
"prompt.example.1": "Napraw TODO w bazie kodu",
"prompt.example.2": "Jaki jest stos technologiczny tego projektu?",
"prompt.example.3": "Napraw zepsute testy",
"prompt.example.4": "Wyjaśnij jak działa uwierzytelnianie",
"prompt.example.5": "Znajdź i napraw luki w zabezpieczeniach",
"prompt.example.6": "Dodaj testy jednostkowe dla serwisu użytkownika",
"prompt.example.7": "Zrefaktoryzuj tę funkcję, aby była bardziej czytelna",
"prompt.example.8": "Co oznacza ten błąd?",
"prompt.example.9": "Pomóż mi zdebugować ten problem",
"prompt.example.10": "Wygeneruj dokumentację API",
"prompt.example.11": "Zoptymalizuj zapytania do bazy danych",
"prompt.example.12": "Dodaj walidację danych wejściowych",
"prompt.example.13": "Utwórz nowy komponent dla...",
"prompt.example.14": "Jak wdrożyć ten projekt?",
"prompt.example.15": "Sprawdź mój kod pod kątem najlepszych praktyk",
"prompt.example.16": "Dodaj obsługę błędów do tej funkcję",
"prompt.example.17": "Wyjaśnij ten wzorzec regex",
"prompt.example.18": "Przekonwertuj to na TypeScript",
"prompt.example.19": "Dodaj logowanie w całej bazie kodu",
"prompt.example.20": "Które zależności są przestarzałe?",
"prompt.example.21": "Pomóż mi napisać skrypt migracyjny",
"prompt.example.22": "Zaimplementuj cachowanie dla tego punktu końcowego",
"prompt.example.23": "Dodaj stronicowanie do tej listy",
"prompt.example.24": "Utwórz polecenie CLI dla...",
"prompt.example.25": "Jak działają tutaj zmienne środowiskowe?",
"prompt.popover.emptyResults": "Brak pasujących wyników",
"prompt.popover.emptyCommands": "Brak pasujących poleceń",
"prompt.dropzone.label": "Upuść obrazy lub pliki PDF tutaj",
"prompt.slash.badge.custom": "własne",
"prompt.context.active": "aktywny",
"prompt.context.includeActiveFile": "Dołącz aktywny plik",
"prompt.action.attachFile": "Załącz plik",
"prompt.action.send": "Wyślij",
"prompt.action.stop": "Zatrzymaj",
"prompt.toast.pasteUnsupported.title": "Nieobsługiwane wklejanie",
"prompt.toast.pasteUnsupported.description": "Tylko obrazy lub pliki PDF mogą być tutaj wklejane.",
"prompt.toast.modelAgentRequired.title": "Wybierz agenta i model",
"prompt.toast.modelAgentRequired.description": "Wybierz agenta i model przed wysłaniem zapytania.",
"prompt.toast.worktreeCreateFailed.title": "Nie udało się utworzyć drzewa roboczego",
"prompt.toast.sessionCreateFailed.title": "Nie udało się utworzyć sesji",
"prompt.toast.shellSendFailed.title": "Nie udało się wysłać polecenia powłoki",
"prompt.toast.commandSendFailed.title": "Nie udało się wysłać polecenia",
"prompt.toast.promptSendFailed.title": "Nie udało się wysłać zapytania",
"dialog.mcp.title": "MCP",
"dialog.mcp.description": "{{enabled}} z {{total}} włączone",
"dialog.mcp.empty": "Brak skonfigurowanych MCP",
"mcp.status.connected": "połączono",
"mcp.status.failed": "niepowodzenie",
"mcp.status.needs_auth": "wymaga autoryzacji",
"mcp.status.disabled": "wyłączone",
"dialog.fork.empty": "Brak wiadomości do rozwidlenia",
"dialog.directory.search.placeholder": "Szukaj folderów",
"dialog.directory.empty": "Nie znaleziono folderów",
"dialog.server.title": "Serwery",
"dialog.server.description": "Przełącz serwer OpenCode, z którym łączy się ta aplikacja.",
"dialog.server.search.placeholder": "Szukaj serwerów",
"dialog.server.empty": "Brak serwerów",
"dialog.server.add.title": "Dodaj serwer",
"dialog.server.add.url": "URL serwera",
"dialog.server.add.placeholder": "http://localhost:4096",
"dialog.server.add.error": "Nie można połączyć się z serwerem",
"dialog.server.add.checking": "Sprawdzanie...",
"dialog.server.add.button": "Dodaj",
"dialog.server.default.title": "Domyślny serwer",
"dialog.server.default.description":
"Połącz z tym serwerem przy uruchomieniu aplikacji zamiast uruchamiać lokalny serwer. Wymaga restartu.",
"dialog.server.default.none": "Nie wybrano serwera",
"dialog.server.default.set": "Ustaw bieżący serwer jako domyślny",
"dialog.server.default.clear": "Wyczyść",
"dialog.project.edit.title": "Edytuj projekt",
"dialog.project.edit.name": "Nazwa",
"dialog.project.edit.icon": "Ikona",
"dialog.project.edit.icon.alt": "Ikona projektu",
"dialog.project.edit.icon.hint": "Kliknij lub przeciągnij obraz",
"dialog.project.edit.icon.recommended": "Zalecane: 128x128px",
"dialog.project.edit.color": "Kolor",
"context.breakdown.title": "Podział kontekstu",
"context.breakdown.note": 'Przybliżony podział tokenów wejściowych. "Inne" obejmuje definicje narzędzi i narzut.',
"context.breakdown.system": "System",
"context.breakdown.user": "Użytkownik",
"context.breakdown.assistant": "Asystent",
"context.breakdown.tool": "Wywołania narzędzi",
"context.breakdown.other": "Inne",
"context.systemPrompt.title": "Prompt systemowy",
"context.rawMessages.title": "Surowe wiadomości",
"context.stats.session": "Sesja",
"context.stats.messages": "Wiadomości",
"context.stats.provider": "Dostawca",
"context.stats.model": "Model",
"context.stats.limit": "Limit kontekstu",
"context.stats.totalTokens": "Całkowita liczba tokenów",
"context.stats.usage": "Użycie",
"context.stats.inputTokens": "Tokeny wejściowe",
"context.stats.outputTokens": "Tokeny wyjściowe",
"context.stats.reasoningTokens": "Tokeny wnioskowania",
"context.stats.cacheTokens": "Tokeny pamięci podręcznej (odczyt/zapis)",
"context.stats.userMessages": "Wiadomości użytkownika",
"context.stats.assistantMessages": "Wiadomości asystenta",
"context.stats.totalCost": "Całkowity koszt",
"context.stats.sessionCreated": "Utworzono sesję",
"context.stats.lastActivity": "Ostatnia aktywność",
"context.usage.tokens": "Tokeny",
"context.usage.usage": "Użycie",
"context.usage.cost": "Koszt",
"context.usage.clickToView": "Kliknij, aby zobaczyć kontekst",
"language.en": "Angielski",
"language.zh": "Chiński",
"language.ko": "Koreański",
"language.de": "Niemiecki",
"language.es": "Hiszpański",
"language.fr": "Francuski",
"language.ja": "Japoński",
"language.da": "Duński",
"language.pl": "Polski",
"toast.language.title": "Język",
"toast.language.description": "Przełączono na {{language}}",
"toast.theme.title": "Przełączono motyw",
"toast.scheme.title": "Schemat kolorów",
"toast.permissions.autoaccept.on.title": "Automatyczne akceptowanie edycji",
"toast.permissions.autoaccept.on.description": "Uprawnienia do edycji i zapisu będą automatycznie zatwierdzane",
"toast.permissions.autoaccept.off.title": "Zatrzymano automatyczne akceptowanie edycji",
"toast.permissions.autoaccept.off.description": "Uprawnienia do edycji i zapisu będą wymagały zatwierdzenia",
"toast.model.none.title": "Nie wybrano modelu",
"toast.model.none.description": "Połącz dostawcę, aby podsumować tę sesję",
"toast.file.loadFailed.title": "Nie udało się załadować pliku",
"toast.session.share.copyFailed.title": "Nie udało się skopiować URL do schowka",
"toast.session.share.success.title": "Sesja udostępniona",
"toast.session.share.success.description": "Link udostępniania skopiowany do schowka!",
"toast.session.share.failed.title": "Nie udało się udostępnić sesji",
"toast.session.share.failed.description": "Wystąpił błąd podczas udostępniania sesji",
"toast.session.unshare.success.title": "Zatrzymano udostępnianie sesji",
"toast.session.unshare.success.description": "Udostępnianie sesji zostało pomyślnie zatrzymane!",
"toast.session.unshare.failed.title": "Nie udało się zatrzymać udostępniania sesji",
"toast.session.unshare.failed.description": "Wystąpił błąd podczas zatrzymywania udostępniania sesji",
"toast.session.listFailed.title": "Nie udało się załadować sesji dla {{project}}",
"toast.update.title": "Dostępna aktualizacja",
"toast.update.description": "Nowa wersja OpenCode ({{version}}) jest teraz dostępna do instalacji.",
"toast.update.action.installRestart": "Zainstaluj i zrestartuj",
"toast.update.action.notYet": "Jeszcze nie",
"error.page.title": "Coś poszło nie tak",
"error.page.description": "Wystąpił błąd podczas ładowania aplikacji.",
"error.page.details.label": "Szczegóły błędu",
"error.page.action.restart": "Restartuj",
"error.page.action.checking": "Sprawdzanie...",
"error.page.action.checkUpdates": "Sprawdź aktualizacje",
"error.page.action.updateTo": "Zaktualizuj do {{version}}",
"error.page.report.prefix": "Proszę zgłosić ten błąd do zespołu OpenCode",
"error.page.report.discord": "na Discordzie",
"error.page.version": "Wersja: {{version}}",
"error.dev.rootNotFound":
"Nie znaleziono elementu głównego. Czy zapomniałeś dodać go do swojego index.html? A może atrybut id został błędnie wpisany?",
"error.globalSync.connectFailed": "Nie można połączyć się z serwerem. Czy serwer działa pod adresem `{{url}}`?",
"error.chain.unknown": "Nieznany błąd",
"error.chain.causedBy": "Spowodowany przez:",
"error.chain.apiError": "Błąd API",
"error.chain.status": "Status: {{status}}",
"error.chain.retryable": "Można ponowić: {{retryable}}",
"error.chain.responseBody": "Treść odpowiedzi:\n{{body}}",
"error.chain.didYouMean": "Czy miałeś na myśli: {{suggestions}}",
"error.chain.modelNotFound": "Model nie znaleziony: {{provider}}/{{model}}",
"error.chain.checkConfig": "Sprawdź swoją konfigurację (opencode.json) nazwy dostawców/modeli",
"error.chain.mcpFailed":
'Serwer MCP "{{name}}" nie powiódł się. Uwaga, OpenCode nie obsługuje jeszcze uwierzytelniania MCP.',
"error.chain.providerAuthFailed": "Uwierzytelnianie dostawcy nie powiodło się ({{provider}}): {{message}}",
"error.chain.providerInitFailed":
'Nie udało się zainicjować dostawcy "{{provider}}". Sprawdź poświadczenia i konfigurację.',
"error.chain.configJsonInvalid": "Plik konfiguracyjny w {{path}} nie jest poprawnym JSON(C)",
"error.chain.configJsonInvalidWithMessage": "Plik konfiguracyjny w {{path}} nie jest poprawnym JSON(C): {{message}}",
"error.chain.configDirectoryTypo":
'Katalog "{{dir}}" w {{path}} jest nieprawidłowy. Zmień nazwę katalogu na "{{suggestion}}" lub usuń go. To częsta literówka.',
"error.chain.configFrontmatterError": "Nie udało się przetworzyć frontmatter w {{path}}:\n{{message}}",
"error.chain.configInvalid": "Plik konfiguracyjny w {{path}} jest nieprawidłowy",
"error.chain.configInvalidWithMessage": "Plik konfiguracyjny w {{path}} jest nieprawidłowy: {{message}}",
"notification.permission.title": "Wymagane uprawnienie",
"notification.permission.description": "{{sessionTitle}} w {{projectName}} potrzebuje uprawnienia",
"notification.question.title": "Pytanie",
"notification.question.description": "{{sessionTitle}} w {{projectName}} ma pytanie",
"notification.action.goToSession": "Przejdź do sesji",
"notification.session.responseReady.title": "Odpowiedź gotowa",
"notification.session.error.title": "Błąd sesji",
"notification.session.error.fallbackDescription": "Wystąpił błąd",
"home.recentProjects": "Ostatnie projekty",
"home.empty.title": "Brak ostatnich projektów",
"home.empty.description": "Zacznij od otwarcia lokalnego projektu",
"session.tab.session": "Sesja",
"session.tab.review": "Przegląd",
"session.tab.context": "Kontekst",
"session.review.filesChanged": "Zmieniono {{count}} plików",
"session.review.loadingChanges": "Ładowanie zmian...",
"session.review.empty": "Brak zmian w tej sesji",
"session.messages.renderEarlier": "Renderuj wcześniejsze wiadomości",
"session.messages.loadingEarlier": "Ładowanie wcześniejszych wiadomości...",
"session.messages.loadEarlier": "Załaduj wcześniejsze wiadomości",
"session.messages.loading": "Ładowanie wiadomości...",
"session.messages.jumpToLatest": "Przejdź do najnowszych",
"session.context.addToContext": "Dodaj {{selection}} do kontekstu",
"session.new.worktree.main": "Główna gałąź",
"session.new.worktree.mainWithBranch": "Główna gałąź ({{branch}})",
"session.new.worktree.create": "Utwórz nowe drzewo robocze",
"session.new.lastModified": "Ostatnio zmodyfikowano",
"session.header.search.placeholder": "Szukaj {{project}}",
"session.share.popover.title": "Opublikuj w sieci",
"session.share.popover.description.shared":
"Ta sesja jest publiczna w sieci. Jest dostępna dla każdego, kto posiada link.",
"session.share.popover.description.unshared":
"Udostępnij sesję publicznie w sieci. Będzie dostępna dla każdego, kto posiada link.",
"session.share.action.share": "Udostępnij",
"session.share.action.publish": "Opublikuj",
"session.share.action.publishing": "Publikowanie...",
"session.share.action.unpublish": "Cofnij publikację",
"session.share.action.unpublishing": "Cofanie publikacji...",
"session.share.action.view": "Widok",
"session.share.copy.copied": "Skopiowano",
"session.share.copy.copyLink": "Kopiuj link",
"lsp.tooltip.none": "Brak serwerów LSP",
"lsp.label.connected": "{{count}} LSP",
"prompt.loading": "Ładowanie promptu...",
"terminal.loading": "Ładowanie terminala...",
"terminal.title": "Terminal",
"terminal.title.numbered": "Terminal {{number}}",
"terminal.connectionLost.title": "Utracono połączenie",
"terminal.connectionLost.description":
"Połączenie z terminalem zostało przerwane. Może się to zdarzyć przy restarcie serwera.",
"common.closeTab": "Zamknij kartę",
"common.dismiss": "Odrzuć",
"common.requestFailed": "Żądanie nie powiodło się",
"common.moreOptions": "Więcej opcji",
"common.learnMore": "Dowiedz się więcej",
"common.rename": "Zmień nazwę",
"common.reset": "Resetuj",
"common.delete": "Usuń",
"common.close": "Zamknij",
"common.edit": "Edytuj",
"common.loadMore": "Załaduj więcej",
"common.key.esc": "ESC",
"sidebar.menu.toggle": "Przełącz menu",
"sidebar.settings": "Ustawienia",
"sidebar.help": "Pomoc",
"sidebar.workspaces.enable": "Włącz przestrzenie robocze",
"sidebar.workspaces.disable": "Wyłącz przestrzenie robocze",
"sidebar.gettingStarted.title": "Pierwsze kroki",
"sidebar.gettingStarted.line1": "OpenCode zawiera darmowe modele, więc możesz zacząć od razu.",
"sidebar.gettingStarted.line2": "Połącz dowolnego dostawcę, aby używać modeli, w tym Claude, GPT, Gemini itp.",
"sidebar.project.recentSessions": "Ostatnie sesje",
"sidebar.project.viewAllSessions": "Zobacz wszystkie sesje",
"settings.section.desktop": "Pulpit",
"settings.tab.general": "Ogólne",
"settings.tab.shortcuts": "Skróty",
"settings.general.section.appearance": "Wygląd",
"settings.general.section.notifications": "Powiadomienia systemowe",
"settings.general.section.sounds": "Efekty dźwiękowe",
"settings.general.row.language.title": "Język",
"settings.general.row.language.description": "Zmień język wyświetlania dla OpenCode",
"settings.general.row.appearance.title": "Wygląd",
"settings.general.row.appearance.description": "Dostosuj wygląd OpenCode na swoim urządzeniu",
"settings.general.row.theme.title": "Motyw",
"settings.general.row.theme.description": "Dostosuj motyw OpenCode.",
"settings.general.row.font.title": "Czcionka",
"settings.general.row.font.description": "Dostosuj czcionkę mono używaną w blokach kodu",
"font.option.ibmPlexMono": "IBM Plex Mono",
"font.option.cascadiaCode": "Cascadia Code",
"font.option.firaCode": "Fira Code",
"font.option.hack": "Hack",
"font.option.inconsolata": "Inconsolata",
"font.option.intelOneMono": "Intel One Mono",
"font.option.jetbrainsMono": "JetBrains Mono",
"font.option.mesloLgs": "Meslo LGS",
"font.option.robotoMono": "Roboto Mono",
"font.option.sourceCodePro": "Source Code Pro",
"font.option.ubuntuMono": "Ubuntu Mono",
"sound.option.alert01": "Alert 01",
"sound.option.alert02": "Alert 02",
"sound.option.alert03": "Alert 03",
"sound.option.alert04": "Alert 04",
"sound.option.alert05": "Alert 05",
"sound.option.alert06": "Alert 06",
"sound.option.alert07": "Alert 07",
"sound.option.alert08": "Alert 08",
"sound.option.alert09": "Alert 09",
"sound.option.alert10": "Alert 10",
"sound.option.bipbop01": "Bip-bop 01",
"sound.option.bipbop02": "Bip-bop 02",
"sound.option.bipbop03": "Bip-bop 03",
"sound.option.bipbop04": "Bip-bop 04",
"sound.option.bipbop05": "Bip-bop 05",
"sound.option.bipbop06": "Bip-bop 06",
"sound.option.bipbop07": "Bip-bop 07",
"sound.option.bipbop08": "Bip-bop 08",
"sound.option.bipbop09": "Bip-bop 09",
"sound.option.bipbop10": "Bip-bop 10",
"sound.option.staplebops01": "Staplebops 01",
"sound.option.staplebops02": "Staplebops 02",
"sound.option.staplebops03": "Staplebops 03",
"sound.option.staplebops04": "Staplebops 04",
"sound.option.staplebops05": "Staplebops 05",
"sound.option.staplebops06": "Staplebops 06",
"sound.option.staplebops07": "Staplebops 07",
"sound.option.nope01": "Nope 01",
"sound.option.nope02": "Nope 02",
"sound.option.nope03": "Nope 03",
"sound.option.nope04": "Nope 04",
"sound.option.nope05": "Nope 05",
"sound.option.nope06": "Nope 06",
"sound.option.nope07": "Nope 07",
"sound.option.nope08": "Nope 08",
"sound.option.nope09": "Nope 09",
"sound.option.nope10": "Nope 10",
"sound.option.nope11": "Nope 11",
"sound.option.nope12": "Nope 12",
"sound.option.yup01": "Yup 01",
"sound.option.yup02": "Yup 02",
"sound.option.yup03": "Yup 03",
"sound.option.yup04": "Yup 04",
"sound.option.yup05": "Yup 05",
"sound.option.yup06": "Yup 06",
"settings.general.notifications.agent.title": "Agent",
"settings.general.notifications.agent.description":
"Pokaż powiadomienie systemowe, gdy agent zakończy pracę lub wymaga uwagi",
"settings.general.notifications.permissions.title": "Uprawnienia",
"settings.general.notifications.permissions.description":
"Pokaż powiadomienie systemowe, gdy wymagane jest uprawnienie",
"settings.general.notifications.errors.title": "Błędy",
"settings.general.notifications.errors.description": "Pokaż powiadomienie systemowe, gdy wystąpi błąd",
"settings.general.sounds.agent.title": "Agent",
"settings.general.sounds.agent.description": "Odtwórz dźwięk, gdy agent zakończy pracę lub wymaga uwagi",
"settings.general.sounds.permissions.title": "Uprawnienia",
"settings.general.sounds.permissions.description": "Odtwórz dźwięk, gdy wymagane jest uprawnienie",
"settings.general.sounds.errors.title": "Błędy",
"settings.general.sounds.errors.description": "Odtwórz dźwięk, gdy wystąpi błąd",
"settings.shortcuts.title": "Skróty klawiszowe",
"settings.shortcuts.reset.button": "Przywróć domyślne",
"settings.shortcuts.reset.toast.title": "Zresetowano skróty",
"settings.shortcuts.reset.toast.description": "Skróty klawiszowe zostały przywrócone do ustawień domyślnych.",
"settings.shortcuts.conflict.title": "Skrót już w użyciu",
"settings.shortcuts.conflict.description": "{{keybind}} jest już przypisany do {{titles}}.",
"settings.shortcuts.unassigned": "Nieprzypisany",
"settings.shortcuts.pressKeys": "Naciśnij klawisze",
"settings.shortcuts.search.placeholder": "Szukaj skrótów",
"settings.shortcuts.search.empty": "Nie znaleziono skrótów",
"settings.shortcuts.group.general": "Ogólne",
"settings.shortcuts.group.session": "Sesja",
"settings.shortcuts.group.navigation": "Nawigacja",
"settings.shortcuts.group.modelAndAgent": "Model i agent",
"settings.shortcuts.group.terminal": "Terminal",
"settings.shortcuts.group.prompt": "Prompt",
"settings.providers.title": "Dostawcy",
"settings.providers.description": "Ustawienia dostawców będą tutaj konfigurowalne.",
"settings.models.title": "Modele",
"settings.models.description": "Ustawienia modeli będą tutaj konfigurowalne.",
"settings.agents.title": "Agenci",
"settings.agents.description": "Ustawienia agentów będą tutaj konfigurowalne.",
"settings.commands.title": "Polecenia",
"settings.commands.description": "Ustawienia poleceń będą tutaj konfigurowalne.",
"settings.mcp.title": "MCP",
"settings.mcp.description": "Ustawienia MCP będą tutaj konfigurowalne.",
"settings.permissions.title": "Uprawnienia",
"settings.permissions.description": "Kontroluj, jakich narzędzi serwer może używać domyślnie.",
"settings.permissions.section.tools": "Narzędzia",
"settings.permissions.toast.updateFailed.title": "Nie udało się zaktualizować uprawnień",
"settings.permissions.action.allow": "Zezwól",
"settings.permissions.action.ask": "Pytaj",
"settings.permissions.action.deny": "Odmów",
"settings.permissions.tool.read.title": "Odczyt",
"settings.permissions.tool.read.description": "Odczyt pliku (pasuje do ścieżki pliku)",
"settings.permissions.tool.edit.title": "Edycja",
"settings.permissions.tool.edit.description": "Modyfikacja plików, w tym edycje, zapisy, łatki i multi-edycje",
"settings.permissions.tool.glob.title": "Glob",
"settings.permissions.tool.glob.description": "Dopasowywanie plików za pomocą wzorców glob",
"settings.permissions.tool.grep.title": "Grep",
"settings.permissions.tool.grep.description": "Przeszukiwanie zawartości plików za pomocą wyrażeń regularnych",
"settings.permissions.tool.list.title": "Lista",
"settings.permissions.tool.list.description": "Wyświetlanie listy plików w katalogu",
"settings.permissions.tool.bash.title": "Bash",
"settings.permissions.tool.bash.description": "Uruchamianie poleceń powłoki",
"settings.permissions.tool.task.title": "Zadanie",
"settings.permissions.tool.task.description": "Uruchamianie pod-agentów",
"settings.permissions.tool.skill.title": "Umiejętność",
"settings.permissions.tool.skill.description": "Ładowanie umiejętności według nazwy",
"settings.permissions.tool.lsp.title": "LSP",
"settings.permissions.tool.lsp.description": "Uruchamianie zapytań serwera językowego",
"settings.permissions.tool.todoread.title": "Odczyt Todo",
"settings.permissions.tool.todoread.description": "Odczyt listy zadań",
"settings.permissions.tool.todowrite.title": "Zapis Todo",
"settings.permissions.tool.todowrite.description": "Aktualizacja listy zadań",
"settings.permissions.tool.webfetch.title": "Pobieranie z sieci",
"settings.permissions.tool.webfetch.description": "Pobieranie zawartości z adresu URL",
"settings.permissions.tool.websearch.title": "Wyszukiwanie w sieci",
"settings.permissions.tool.websearch.description": "Przeszukiwanie sieci",
"settings.permissions.tool.codesearch.title": "Wyszukiwanie kodu",
"settings.permissions.tool.codesearch.description": "Przeszukiwanie kodu w sieci",
"settings.permissions.tool.external_directory.title": "Katalog zewnętrzny",
"settings.permissions.tool.external_directory.description": "Dostęp do plików poza katalogiem projektu",
"settings.permissions.tool.doom_loop.title": "Zapętlenie",
"settings.permissions.tool.doom_loop.description": "Wykrywanie powtarzających się wywołań narzędzi (doom loop)",
"workspace.new": "Nowa przestrzeń robocza",
"workspace.type.local": "lokalna",
"workspace.type.sandbox": "piaskownica",
"workspace.create.failed.title": "Nie udało się utworzyć przestrzeni roboczej",
"workspace.delete.failed.title": "Nie udało się usunąć przestrzeni roboczej",
"workspace.resetting.title": "Resetowanie przestrzeni roboczej",
"workspace.resetting.description": "To może potrwać minutę.",
"workspace.reset.failed.title": "Nie udało się zresetować przestrzeni roboczej",
"workspace.reset.success.title": "Przestrzeń robocza zresetowana",
"workspace.reset.success.description": "Przestrzeń robocza odpowiada teraz domyślnej gałęzi.",
"workspace.status.checking": "Sprawdzanie niezscalonych zmian...",
"workspace.status.error": "Nie można zweryfikować statusu git.",
"workspace.status.clean": "Nie wykryto niezscalonych zmian.",
"workspace.status.dirty": "Wykryto niezscalone zmiany w tej przestrzeni roboczej.",
"workspace.delete.title": "Usuń przestrzeń roboczą",
"workspace.delete.confirm": 'Usunąć przestrzeń roboczą "{{name}}"?',
"workspace.delete.button": "Usuń przestrzeń roboczą",
"workspace.reset.title": "Resetuj przestrzeń roboczą",
"workspace.reset.confirm": 'Zresetować przestrzeń roboczą "{{name}}"?',
"workspace.reset.button": "Resetuj przestrzeń roboczą",
"workspace.reset.archived.none": "Żadne aktywne sesje nie zostaną zarchiwizowane.",
"workspace.reset.archived.one": "1 sesja zostanie zarchiwizowana.",
"workspace.reset.archived.many": "{{count}} sesji zostanie zarchiwizowanych.",
"workspace.reset.note": "To zresetuje przestrzeń roboczą, aby odpowiadała domyślnej gałęzi.",
}

View File

@@ -274,6 +274,7 @@ export const dict = {
"language.fr": "法语",
"language.ja": "日语",
"language.da": "丹麦语",
"language.pl": "波兰语",
"toast.language.title": "语言",
"toast.language.description": "已切换到{{language}}",

View File

@@ -0,0 +1,90 @@
export const dict = {
"ui.sessionReview.title": "Zmiany w sesji",
"ui.sessionReview.diffStyle.unified": "Ujednolicony",
"ui.sessionReview.diffStyle.split": "Podzielony",
"ui.sessionReview.expandAll": "Rozwiń wszystko",
"ui.sessionReview.collapseAll": "Zwiń wszystko",
"ui.sessionTurn.steps.show": "Pokaż kroki",
"ui.sessionTurn.steps.hide": "Ukryj kroki",
"ui.sessionTurn.summary.response": "Odpowiedź",
"ui.sessionTurn.diff.showMore": "Pokaż więcej zmian ({{count}})",
"ui.sessionTurn.retry.retrying": "ponawianie",
"ui.sessionTurn.retry.inSeconds": "za {{seconds}}s",
"ui.sessionTurn.status.delegating": "Delegowanie pracy",
"ui.sessionTurn.status.planning": "Planowanie kolejnych kroków",
"ui.sessionTurn.status.gatheringContext": "Zbieranie kontekstu",
"ui.sessionTurn.status.searchingCodebase": "Przeszukiwanie bazy kodu",
"ui.sessionTurn.status.searchingWeb": "Przeszukiwanie sieci",
"ui.sessionTurn.status.makingEdits": "Wprowadzanie zmian",
"ui.sessionTurn.status.runningCommands": "Uruchamianie poleceń",
"ui.sessionTurn.status.thinking": "Myślenie",
"ui.sessionTurn.status.thinkingWithTopic": "Myślenie - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Zbieranie myśli",
"ui.sessionTurn.status.consideringNextSteps": "Rozważanie kolejnych kroków",
"ui.messagePart.diagnostic.error": "Błąd",
"ui.messagePart.title.edit": "Edycja",
"ui.messagePart.title.write": "Pisanie",
"ui.messagePart.option.typeOwnAnswer": "Wpisz własną odpowiedź",
"ui.messagePart.review.title": "Przejrzyj swoje odpowiedzi",
"ui.list.loading": "Ładowanie",
"ui.list.empty": "Brak wyników",
"ui.list.emptyWithFilter.prefix": "Brak wyników dla",
"ui.list.emptyWithFilter.suffix": "",
"ui.messageNav.newMessage": "Nowa wiadomość",
"ui.textField.copyToClipboard": "Skopiuj do schowka",
"ui.textField.copied": "Skopiowano",
"ui.imagePreview.alt": "Podgląd obrazu",
"ui.tool.read": "Odczyt",
"ui.tool.list": "Lista",
"ui.tool.glob": "Glob",
"ui.tool.grep": "Grep",
"ui.tool.webfetch": "Pobieranie sieciowe",
"ui.tool.shell": "Terminal",
"ui.tool.patch": "Patch",
"ui.tool.todos": "Zadania",
"ui.tool.todos.read": "Czytaj zadania",
"ui.tool.questions": "Pytania",
"ui.tool.agent": "Agent {{type}}",
"ui.common.file.one": "plik",
"ui.common.file.other": "pliki",
"ui.common.question.one": "pytanie",
"ui.common.question.other": "pytania",
"ui.common.add": "Dodaj",
"ui.common.cancel": "Anuluj",
"ui.common.confirm": "Potwierdź",
"ui.common.dismiss": "Odrzuć",
"ui.common.next": "Dalej",
"ui.common.submit": "Prześlij",
"ui.permission.deny": "Odmów",
"ui.permission.allowAlways": "Zezwalaj zawsze",
"ui.permission.allowOnce": "Zezwól raz",
"ui.message.expand": "Rozwiń wiadomość",
"ui.message.collapse": "Zwiń wiadomość",
"ui.message.copy": "Kopiuj",
"ui.message.copied": "Skopiowano!",
"ui.message.attachment.alt": "załącznik",
"ui.patch.action.deleted": "Usunięto",
"ui.patch.action.created": "Utworzono",
"ui.patch.action.moved": "Przeniesiono",
"ui.patch.action.patched": "Załatano",
"ui.question.subtitle.answered": "{{count}} odpowiedzi",
"ui.question.answer.none": "(brak odpowiedzi)",
"ui.question.review.notAnswered": "(bez odpowiedzi)",
"ui.question.multiHint": "(zaznacz wszystkie pasujące)",
"ui.question.custom.placeholder": "Wpisz swoją odpowiedź...",
}