feat(i18n): 覆盖支持扩展到 19 语言(de/fr/pt/ko/ar/hi/id/tr/vi/th/ru/it/nl/sv/pl/zh-HK/zh-TW/zh-MO)

This commit is contained in:
HuanLinOTO
2026-08-23 14:57:48 +08:00
parent 16a809594c
commit 7f8f95a59b
20 changed files with 6224 additions and 2 deletions
+347
View File
@@ -0,0 +1,347 @@
/**
* The pl (Polish) dictionary for the betterSidebar namespace.
*
* Mirrors the key set of `zh` in `locales.ts`. The sidebar's `t()`
* consults this dict when `attachBetterLocale(store)` has been called
* with an active better-locale store whose `active` is `'pl'`; absent
* that, the existing zh/en chain runs unchanged.
*
* Translation conventions:
* - Formal register (Pan/Pani/Państwo) for user-facing copy.
* - Polish diacritics used throughout (ą, ć, ę, ł, ń, ó, ś, ź, ż).
* - {placeholder} patterns kept verbatim (interpolation runs after lookup).
* - Git vocabulary follows the English-leaning developer style
* (commit, branch, stage, diff, cherry-pick, hash, push, fetch, pull).
* - English brand names (VS Code, Cursor, Zed, SSH, Mermaid, HTML, CSS,
* PDF, Markdown, Cursor) stay as-is.
*/
/** The pl dictionary (key-set-equal to zh, enforced by the type annotation in locales.ts). */
export const pl: Record<string, string> = {
files: 'Pliki',
explorer: 'Eksplorator',
git: 'Kontrola źródła',
terminal: 'Terminal',
editor: 'Edytor',
editorExplorer: 'Sposób otwierania plików',
editorExplorerDesc: 'Kontroluje sposób otwierania plików',
editorExplorerMerged: 'Połączone',
editorExplorerMergedDesc: 'Pliki przełączają się w miejscu w tym samym oknie; nowe okna zaczynają z rozwiniętym drzewem',
editorExplorerSplit: 'Osobne',
editorExplorerSplitDesc: 'Okna bez ścieżki to samodzielny eksplorator (tylko drzewo); każdy plik otwiera własne okno (drzewo zadokowane, domyślnie zwinięte)',
editorTreeToggle: 'Panel drzewa plików',
editorPathPlaceholder: 'Ścieżka pliku (względna do katalogu sesji lub bezwzględna), Enter, aby otworzyć',
editorSearchPlaceholder: 'Szukaj po nazwie pliku…',
editorSearchNoResults: 'Brak pasujących plików',
editorSearchTruncated: 'Zbyt wiele wyników — pokazuję częściową listę',
editorEmptyHint: 'Wybierz plik z panelu drzewa lub pola ścieżki powyżej, aby rozpocząć podgląd',
openFileNewTab: 'Otwórz w nowej karcie',
openFileSide: 'Otwórz z boku',
openWithMenu: 'Otwórz za pomocą',
openWithSshSuffix: ' (SSH)',
pinOpenWith: 'Przypnij do menu',
unpinOpenWith: 'Odepnij',
openWithExplorer: 'Menedżer plików',
openWithVscode: 'VS Code',
openWithCursor: 'Cursor',
openWithZed: 'Zed',
openWithSettingsSshTitle: 'Zdalny host SSH',
openWithSettingsSshDesc: 'Puste = lokalny obszar roboczy; z user@host lub aliasem SSH otwieracze rodziny VSCode przełączają się na protokół vscode-remote/ssh-remote, a Menedżer plików / Zed / niestandardowe edytory spoza rodziny VSCode są ukrywane w menu',
openWithSettingsSshPlaceholder: 'user@host lub alias SSH',
openWithSettingsCustomTitle: 'Niestandardowe edytory',
openWithSettingsCustomDesc: 'Nazwa + szablon URL (zastępnik {path}) + flaga rodziny VSCode; w trybie zdalnym tylko edytory rodziny VSCode mogą otwierać ścieżkę zdalną',
openWithSettingsAdd: 'Dodaj',
openWithSettingsName: 'Nazwa',
openWithSettingsTemplate: 'np. cursor://file/{path}',
openWithSettingsFamily: 'Rodzina VSCode',
openWithSettingsFamilyDesc: 'Ten edytor używa dialektu URL VSCode (obsługuje otwieranie zdalne przez SSH)',
openWithSettingsRemove: 'Usuń',
openWithSettingsInvalidHint: 'Edytory z brakującą nazwą lub szablonem bez {path} / scheme:// nie są pokazywane w menu',
newTab: 'Nowa karta',
openExplorer: 'Eksplorator',
brokenSymlink: 'Uszkodzone dowiązanie symboliczne',
openGit: 'Panel Git',
newTerminal: 'Nowy terminal',
terminalLimit: 'Osiągnięto limit terminali (3)',
close: 'Zamknij',
closeOtherTabs: 'Zamknij inne karty',
closeLeftTabs: 'Zamknij karty po lewej',
closeRightTabs: 'Zamknij karty po prawej',
collapse: 'Zwiń panel boczny',
expand: 'Rozwiń panel boczny',
collapseBottomPanel: 'Zwiń panel dolny',
expandBottomPanel: 'Rozwiń panel dolny',
terminalError: 'Połączenie z terminalem nie powiodło się',
terminalConnectFailed: 'Terminal nie mógł połączyć się wielokrotnie',
terminalRetry: 'Ponów',
terminalDepsFailed: 'Zależność terminala node-pty nie mogła się załadować',
terminalDepsHint: 'Uruchom poniższe polecenie w terminalu lub cmd na maszynie DSH, aby to naprawić, a następnie ponów (node-pty pozostaje w synchronizacji z wersją rdzenia DSH):',
terminalDepsProfile: ' (wykryty profil: {profile})',
preview: 'Podgląd',
edit: 'Edytuj',
mermaidError: 'Renderowanie Mermaid nie powiodło się',
mermaidZoomIn: 'Powiększ',
mermaidZoomOut: 'Pomniejsz',
mermaidZoomReset: 'Resetuj',
mermaidZoomHint: 'Kółko: powiększenie · przeciąganie: panowanie · Esc: zamknięcie',
refresh: 'Odśwież',
save: 'Zapisz',
saved: 'Zapisano',
unsaved: 'Niezapisane',
saveFailed: 'Zapis nie powiódł się',
truncation: 'Plik zbyt duży — pokazuję pierwsze 512 KB',
binary: 'Plik binarny, podgląd niedostępny',
loading: 'Ładowanie…',
error: 'Ładowanie nie powiodło się',
retry: 'Ponów',
splitLeft: 'Podziel w lewo',
splitRight: 'Podziel w prawo',
splitUp: 'Podziel w górę',
splitDown: 'Podziel w dół',
notRepo: 'Ten katalog nie jest repozytorium git',
noChanges: 'Brak zmian',
stage: 'Dodaj do indeksu',
unstage: 'Usuń z indeksu',
stageAll: 'Dodaj wszystko do indeksu',
unstageAll: 'Usuń wszystko z indeksu',
commitPlaceholder: 'Komunikat commitu (Ctrl+Enter)',
commit: 'Commit',
commitError: 'Commit nie powiódł się',
branch: 'Gałąź',
checkoutError: 'Przełączenie gałęzi nie powiodło się',
history: 'Historia',
changes: 'Zmiany',
staged: 'W indeksie',
unstaged: 'Poza indeksem',
cancel: 'Anuluj',
diffEmpty: 'Brak zmian tekstowych',
diffLoadError: 'Ładowanie diff nie powiodło się',
diffBinary: 'Binarny',
diffAdded: 'Dodany',
diffDeleted: 'Usunięty',
diffRenamed: 'Zmieniono nazwę',
diffExpand: 'Rozwiń jeszcze {count} wierszy',
diffCollapse: 'Zwiń',
discard: 'Odrzuć zmiany',
discardTitle: 'Odrzuć zmiany',
discardDesc: 'To odrzuci zmiany w drzewie roboczym dla „{path}” (nieodwracalne).',
viewCommitDiff: 'Pokaż diff commitu',
copyShortHash: 'Kopiuj krótki hash',
copyFullHash: 'Kopiuj pełny hash',
copySubject: 'Kopiuj temat commitu',
revertCommit: 'Cofnij commit',
revertTitle: 'Cofnij commit',
revertDesc: 'Utworzy nowy commit na bieżącej gałęzi, który cofa „{subject}”.',
cherryPickCommit: 'Cherry-pick commit',
cherryPickTitle: 'Cherry-pick commit',
cherryPickDesc: 'Zastosuje zmiany z „{subject}” na bieżącej gałęzi.',
timeJustNow: 'przed chwilą',
timeMinutesAgo: '{n} min temu',
timeHoursAgo: '{n} g temu',
timeYesterday: 'wczoraj',
loadMore: 'Wczytaj więcej',
historyLoadError: 'Ładowanie dalszej historii nie powiodło się',
produced: 'Wyprodukowane',
producedOpen: 'Otwórz w panelu bocznym',
disconnected: 'Terminal odłączony, ponowne łączenie…',
exited: 'Proces terminala zakończony',
noSession: 'Wybierz rozmowę, aby korzystać z panelu bocznego',
pluginNotLoaded: 'Wtyczka niezaładowana; karta chwilowo niedostępna:',
hiddenFiles: 'Ukryte pliki',
parent: 'Katalog nadrzędny',
copied: 'Skopiowano',
copy: 'Kopiuj',
newFile: 'Nowy plik',
openEditor: 'Otwórz edytor',
gitDetail: 'Zobacz szczegóły zmian',
referenceFile: '@plik',
addToConversation: 'Dodaj do rozmowy',
copyRelative: 'Kopiuj ścieżkę względną',
copyAbsolute: 'Kopiuj ścieżkę bezwzględną',
download: 'Pobierz',
uploadFiles: 'Wgraj pliki',
uploadFolder: 'Wgraj folder',
uploadHere: 'Wgraj tutaj',
uploadDropHint: 'Upuść pliki/foldery tutaj, aby wgrać',
uploadDropChat: 'Upuść na obszar czatu, aby dodać obrazy do rozmowy',
uploadTo: 'Wgraj do {dir}',
uploadingTo: 'Wgrywanie do {dir}…',
uploadProgress: 'Wgrywanie {done}/{total}: {name}',
uploadDone: 'Wgrano {count} plików',
uploadFailed: 'Wgrywanie nie powiodło się: {error}',
uploadFailedUnknown: 'Nieznany błąd',
uploadTooLarge: 'Plik zbyt duży (ponad limit wgrywania)',
uploadCancelled: 'Wgrywanie anulowane',
settingsNav: 'Karta boczna',
settingsIntro: 'Zarządzaj tym, co pokazuje karta boczna i jak się zachowuje',
settingsPopupDesc: 'Skonfiguruj opcje powiązane z: {feature}',
settingsDone: 'Gotowe',
settingsOpenTitle: 'Otwórz domyślnie dla nowych rozmów',
settingsOpenDesc: 'Rozwiń kartę boczną automatycznie dla zupełnie nowych rozmów; istniejące rozmowy zachowują własne układy',
settingsWidthTitle: 'Domyślny udział szerokości',
settingsWidthDesc: 'Domyślny udział szerokości okna dla karty bocznej w nowych rozmowach (20–60)',
settingsWidthSuffix: '%',
settingsOpenPathTitle: 'Otwieraj pliki czatu w panelu bocznym',
settingsOpenPathDesc: 'Otwieraj linki plików na czacie (wiersze narzędzi, wyprodukowane pliki, wzmianki) w edytorze panelu bocznego zamiast w domyślnej aplikacji systemu',
settingsTitleBarTitle: 'Tryb zgodności pozycji',
settingsTitleBarDesc: 'Wybierz schemat zgodności paska tytułu: automatyczne wykrywanie (domyślne, konserwatywne) / oficjalny web DSH / znane powłoki pulpitu / niestandardowy (przesunięcie + własne CSS)',
settingsTitleBarStripTitle: 'Przesunięcie',
settingsTitleBarStripDesc: 'Wysokość paska tytułu: o ile pikseli przyciski i treść panelu bocznego są przesunięte w dół (0–120, domyślnie 40; obowiązuje w schemacie niestandardowym)',
settingsSchemeAutoTitle: 'Automatyczne wykrywanie',
settingsSchemeAutoDesc: 'Konserwatywne: tylko standardowe API Window Controls Overlay się wlicza (rzeczywista wysokość nakładki); zwykłe środowiska web nie są modyfikowane',
settingsSchemeWebTitle: 'Oficjalny web DSH',
settingsSchemeWebDesc: 'Jawnie zadeklaruj oficjalny interfejs web: brak adaptacji (nawet standardowa geometria WCO nie ma zastosowania)',
settingsSchemeCustomTitle: 'Niestandardowy',
settingsSchemeCustomDesc: 'Pełna kontrola: wstrzykuj własne CSS (może nadpisać style wbudowane) i ustawiasz przesunięcie paska tytułu',
settingsSchemeDetectedSuffix: 'wykryto',
settingsCustomCssTitle: 'Niestandardowe CSS',
settingsCustomCssDesc: 'Style dodawane na końcu strony (późniejsze w kaskadzie wygrywa remisy; użyj !important, aby nadpisać zmienne inline zapisane przez JS)',
settingsCustomCssPlaceholder: '/* np. zarezerwuj 36px dla powłoki z własnym paskiem tytułu */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
settingsSaveFailed: 'Zapis nie powiódł się',
settingsConflict: 'Ustawienie zmienione w innym oknie — spróbuj ponownie',
binaryNoPreview: 'Tego typu pliku nie można wyświetlić w podglądzie',
downloadToView: 'Pobierz, aby zobaczyć',
settingsSubagentTitle: 'Automatycznie otwieraj stronę Zadań przy pojawieniu się podagenta',
settingsSubagentDesc: 'Gdy bieżąca rozmowa powoła nowego podagenta, rozwiń panel boczny i otwórz stronę Zadań; wyłącz, aby otwierać ręcznie',
settingsJobsTitle: 'Automatycznie otwieraj stronę zadań w tle przy nowym zadaniu',
settingsJobsDesc: 'Gdy w bieżącej rozmowie pojawi się nowe zadanie w tle, rozwiń panel boczny i otwórz stronę zadań w tle (każde nowe zadanie wyzwala); wyłącz, aby otwierać ręcznie',
settingsToolsTitle: 'Wstrzyknij narzędzia terminala dla modelu',
settingsToolsDesc: 'Po włączeniu model może tworzyć i sterować terminalami panelu bocznego przez 8 narzędzi terminal_* (domyślnie wyłączone)',
settingsBottomTerminalTitle: 'Automatycznie otwieraj terminal przy pierwszym rozwinięciu panelu dolnego',
settingsBottomTerminalDesc: 'Gdy panel dolny jest rozwijany po raz pierwszy w sesji, spróbuj otworzyć nową kartę terminala tam (limit terminali nadal obowiązuje; domyślnie włączone)',
settingsFontFamilyTitle: 'Krój czcionki terminala',
settingsFontFamilyDesc: 'Niestandardowy krój czcionki terminala (stos font-family CSS, np. "JetBrains Mono", monospace; puste = krój monospace z motywu)',
settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
settingsFontSizeTitle: 'Rozmiar czcionki terminala',
settingsFontSizeDesc: 'Rozmiar czcionki terminala w px (9–32, domyślnie 13)',
settingsFontSizeSuffix: 'px',
settingsShellTitle: 'Ścieżka powłoki',
settingsShellDesc: 'Powłoka uruchamiana dla terminali UI i modelu (ścieżka bezwzględna lub nazwa pliku). Puste zachowuje dawną kolejność: yaml config.shell → $SHELL / powłoka logowania / Windows powershell.exe. Dotyczy terminali otwieranych potem',
settingsShellPlaceholder: 'np. /bin/zsh (puste = auto)',
settingsShellArgsTitle: 'Argumenty powłoki',
settingsShellArgsDesc: 'Jawne argumenty powłoki, oddzielone spacjami; niepuste w pełni zastępuje domyślne (zgodnie z kontraktem shellArgs w yaml)',
settingsShellArgsPlaceholder: 'np. -l (puste = domyślne)',
settingsTabsTitle: 'Treść panelu bocznego',
settingsViewersTitle: 'Podglądy plików',
settingsGeneralTitle: 'Ogólne',
settingsPopup: 'Ustawienia funkcji',
settingsViewerCatchAll: 'Zapasowy: dowolny plik',
viewerImage: 'Obraz',
viewerPdf: 'PDF',
viewerMarkdown: 'Markdown',
viewerCode: 'Kod',
viewerBinary: 'Pobieranie binarne',
viewerHtml: 'HTML',
browser: 'Przeglądarka',
browserPlaceholder: 'Wpisz adres URL, np. example.com',
browserGo: 'Przejdź',
browserBack: 'Wstecz',
browserForward: 'Naprzód',
browserStart: 'Wpisz adres URL, aby rozpocząć przeglądanie (tryb piaskownicy)',
browserBlockedScheme: 'Zablokowano: dozwolone są tylko adresy URL http/https',
browserBlockedLoopback: 'Zablokowano: nie można tu przeglądać adresów lokalnych i wewnętrznych',
browserInvalid: 'Nieprawidłowy adres URL',
browserNoSandboxWarning: 'Piaskownica wyłączona: bieżąca strona działa z pełnymi uprawnieniami interfejsu (można przywrócić w ustawieniach)',
htmlNoSandboxWarning: 'Piaskownica wyłączona: ten HTML działa z pełnymi uprawnieniami interfejsu (można przywrócić w ustawieniach)',
sandboxStatusOn: 'Tryb piaskownicy: włączony · strony nie mogą dostępować danych interfejsu ani plików lokalnych; logowania i ciasteczka firm trzecich mogą nie działać',
sandboxUnlock: 'Wyłącz tymczasowo (niebezpieczne)',
sandboxRestore: 'Przywróć piaskownicę',
settingsHtmlDefaultUnsafeTitle: 'Otwieraj podgląd HTML bez piaskownicy domyślnie (niebezpieczne)',
settingsHtmlDefaultUnsafeDesc: 'Po włączeniu każdy nowo otwarty podgląd HTML zaczyna się bez piaskownicy (ten sam origin co interfejs — może czytać pliki sesji i wewnętrzne API); pasek stanu nadal pozwala przywrócić piaskownicę',
settingsHtmlSandboxTitle: 'Wyłącz piaskownicę podglądu HTML (niebezpieczne)',
settingsHtmlSandboxDesc: 'Po wyłączeniu podglądany HTML działa w tym samym originie co interfejs: może czytać pliki sesji, localStorage i wywoływać wewnętrzne API. Włączaj tylko dla w pełni zaufanych plików',
settingsBrowserSandboxTitle: 'Wyłącz piaskownicę przeglądarki (niebezpieczne)',
settingsBrowserSandboxDesc: 'Po wyłączeniu każda odwiedzana strona działa w tym samym originie co interfejs: może czytać dane sesji i podszywać się pod Twoją sesję logowania. Włączaj tylko dla w pełni zaufanych witryn',
settingsBrowserLinksTitle: 'Otwieraj linki zewnętrzne z czatu w panelu bocznym',
settingsBrowserLinksDesc: 'Po włączeniu kliknięcie linku zewnętrznego na czacie lub w interfejsie otwiera panel boczny zamiast nowego okna; HTTP i HTTPS sterowane są osobnymi przełącznikami poniżej; Ctrl/Cmd+klik zawsze pomija',
settingsBrowserHttpTitle: 'Otwieraj strony HTTP w panelu bocznym',
settingsBrowserHttpDesc: 'Po włączeniu kliknięcie zewnętrznego linku HTTP na czacie lub w interfejsie otwiera panel boczny (strony wtyczek deklarujące urlTarget mają pierwszeństwo); Ctrl/Cmd+klik zawsze pomija',
settingsBrowserHttpsTitle: 'Otwieraj strony HTTPS w panelu bocznym',
settingsBrowserHttpsDesc: 'Po włączeniu kliknięcie zewnętrznego linku HTTPS na czacie lub w interfejsie otwiera panel boczny. Domyślnie wyłączone: większość stron HTTPS odmawia osadzania, więc przeglądarka systemowa jest płynniejszym domyślnym wyborem',
browserOpenExternal: 'Otwórz w przeglądarce',
browserEmbedBlocked: '{host} odmówił osadzenia',
browserEmbedBlockedDesc: 'Witryna zabrania wyświetlania w innych stronach (X-Frame-Options / frame-ancestors), więc nie może się załadować w panelu bocznym. Otwórz ją bezpośrednio w przeglądarce.',
browserEmbedAnyway: 'Załaduj mimo to',
subagent: 'Zadania',
openSubagent: 'Zadania',
subagentMainAgent: 'Agent główny',
subagentEmpty: 'Brak podagentów',
subagentEmptyDesc: 'Podagenci powołani przez agenta głównego pojawią się tutaj',
subagentRunning: 'Działa',
subagentInactive: 'Bezczynny',
subagentModeOneShot: 'Jednorazowy',
subagentModeContinuable: 'Kontynuowalny',
subagentCount: '{count} podagentów',
subagentCountRunning: '{count} podagentów · {running} działa',
subagentDiagCorrupt: 'Uszkodzony',
subagentDiagUnsupported: 'Nieobsługiwany',
subagentDiagUnavailable: 'Niedostępny',
subagentThinking: 'Myśli…',
sideChat: 'Czat boczny (beta)',
sideChatNew: 'Nowy wątek',
sideChatUntitled: 'Nowy wątek',
sideChatEmpty: 'Brak rozmów bocznych',
sideChatEmptyDesc: 'Każda rozmowa boczna to własna karta w pasku kart — dziedziczy kontekst bieżącej sesji i nigdy nie trafia do rozmowy głównej',
sideChatCreating: 'Tworzenie rozmowy bocznej…',
sideChatRetry: 'Ponów',
sideChatThreads: 'Przełącz wątek / nowy',
sideChatSave: 'Zapisz jako nową sesję',
sideChatSaveTitle: 'Promuj ten wątek do sesji najwyższego poziomu na głównej liście sesji',
sideChatSaved: 'Zapisano jako nową sesję',
sideChatNoTurn: 'Zapis jest dostępny po pierwszej ukończonej turze',
sideChatPendingDrop: 'Ostatnie niezakończone pytanie następcze nie zostanie uwzględnione w zapisanej sesji',
sideChatFirstPlaceholder: 'Zadaj pierwsze pytanie — kontekst odziedziczony…',
sideChatComposerPlaceholder: 'Pytaj dalej…',
sideChatThinking: 'Drążenie…',
sideChatThink: 'Myślenie',
sideChatInjection: 'Kontekst wstrzyknięty',
sideChatSend: 'Wyślij',
sideChatCancel: 'Zatrzymaj',
sideChatCancelTitle: 'Przerwij bieżącą turę (kolejka jest zachowana)',
sideChatClose: 'Zamknij wątek',
sideChatCloseTitle: 'Zwolnij agenta wątku (historia jest zachowana)',
sideChatError: 'Błąd czatu bocznego: {message}',
jobs: 'Zadania w tle',
jobsCount: '{count} zadań w tle',
jobsCountRunning: '{count} zadań w tle · {running} działa',
jobStatusRunning: 'Działa',
jobStatusStopping: 'Zatrzymywanie',
jobStatusCompleted: 'Ukończono',
jobStatusKilled: 'Zabito',
jobStatusFailed: 'Nie powiodło się',
jobDurationSeconds: '{seconds}s',
jobDurationMinutes: '{minutes}m {seconds}s',
jobDurationHours: '{hours}g {minutes}m',
jobViewOutput: 'Pokaż wyjście',
jobHideOutput: 'Ukryj wyjście',
jobNoOutput: 'Brak wyjścia',
jobNotReadYet: 'Oczekiwanie, aż model odczyta to zadanie; wyjście pojawi się tutaj, gdy model uruchomi job_output',
jobOutputTruncated: 'Wyjście skrócone',
jobOutputError: 'Ładowanie wyjścia nie powiodło się',
jobKill: 'Zabij',
jobKillConfirm: 'Kliknij ponownie, aby potwierdzić zabicie',
jobKillError: 'Zabicie nie powiodło się',
addPluginsTabCard: 'Dodaj wtyczki kart',
addPluginsTabCardDesc: 'Zarejestruj nową stronę panelu bocznego',
addPluginsViewerCard: 'Dodaj wtyczki podglądu',
addPluginsViewerCardDesc: 'Zarejestruj podgląd typu pliku',
addPluginsTabDesc: 'Strony panelu bocznego (karty) mogą być rozszerzane przez wtyczki. Wtyczki rejestrują się przez usługę ctx.betterSidebar; kliknięcie „Zainstaluj” kopiuje polecenie instalacji — wklej je do terminala tam, gdzie żyje Twój profil DSH, i uruchom.',
addPluginsViewerDesc: 'Podglądy plików mogą być rozszerzane przez wtyczki. Wtyczki rejestrują się przez usługę ctx.betterSidebar; kliknięcie „Zainstaluj” kopiuje polecenie instalacji — wklej je do terminala tam, gdzie żyje Twój profil DSH, i uruchom.',
addPluginsBrowseMore: 'Przeglądaj więcej wtyczek na GitHub (topic: dsh-better-sidebar)',
addPluginsSearch: 'Szukaj po nazwie lub opisie wtyczki…',
addPluginsNoMatch: 'Brak pasujących wtyczek',
addPluginsRecommended: 'Zalecane wtyczki',
addPluginsEmpty: 'Brak wyselekcjonowanych wtyczek — opublikuj swoją pod tematem na GitHub',
openPlugin: 'Otwórz',
copyInstall: 'Kopiuj polecenie instalacji',
pluginOfficeDesc: 'Podgląd pakietu Office (.docx / .xlsx / .pptx) dla edytora better-sidebar, utrzymujący ciężkie biblioteki renderujące Office poza rdzeniem głównego pakietu',
pluginFlowglassDesc: 'Wykres przepływu sesji na żywo: trzy tory dla użytkownika, asystenta i wywołań narzędzi, z grupami równoległymi, gałęziami podagentów, drążeniem i statusem na żywo; rejestruje natywną kartę Flowglass po zainstalowaniu better-sidebar, z fallbackiem do samodzielnej szuflady',
pluginGitForgeDesc: 'Karta Git Forge: biblioteka kont GitHub/Gitea (i innych forges) + autoryzacja per projekt + twarda polityka push; tokeny zostają w lokalnych sekretach (nigdy w kontekście modelu); narzędzie GitForge tylko do odczytu i agentowy helper poświadczeń HTTPS',
pluginGitRemotesDesc: 'Karta Git Remotes: gałąź/nadrzędne/ahead-behind, fetch (z opcjonalnym prune), ff-only pull i push dopiero po potwierdzeniu w karcie. Nie zastępuje wbudowanej karty Git stage/commit i nie oferuje force-push ani narzędzia auto-push modelu',
pluginSentinelDesc: 'Budzenie agenta sterowane warunkami: czujniki plików/procesów/portów/HTTP/poleceń/webhooków wybudzają uśpione sesje, gdy warunek zajdzie; rejestruje kartę „Sentinel” z ogólnoserwerową tabelą obserwacji',
pluginSidebarQaDesc: 'Wybierz-i-zapytaj: Zaznacz tekst rozmowy → zapytaj w prawym panelu → niezależna sesja pytań następczych (❓) w tym samym obszarze roboczym; szybki model bez myślenia kompresuje główny kontekst i wstrzykuje go z cytatem, nie przerywając głównej rozmowy; pytania następcze mogą zagnieżdżać się, kontynuować i być archiwizowane',
pluginSshTunnelDesc: 'Karta SSH Tunnel: spis wielu hostów + autoryzacja per projekt + klucze trzymane lokalnie; narzędzie modelu SSHManager (exec/SFTP/strategie sesji); centralny interaktywny terminal i dwupanelowy SFTP',
pluginTurnReviewDesc: 'Ludzka bramka na diffie „tej właśnie tury”: Approve / Request changes per ścieżka z opcjonalnym komentarzem; ścieżki pogrupowane wg sesji głównej / podagenta / nieprzypisane; wbudowany diff migawka-początku-tury vs teraz, zanim zdecydujesz. Bez forka, bez /rewind',
pluginVideoPreviewDesc: 'Wbudowany podgląd plików wideo (.mp4/.webm/.mov/.mkv/.avi itp.) w edytorze better-sidebar, wspierany przez dedykowaną trasę hosta /video z obsługą HTTP Range (206) — przewijanie działa, a pliki nie są ograniczane przez mediaLimit 20 MB',
pluginDocsPanelDesc: 'Globalne dokumenty w panelu bocznym DSH: globalne notatki Markdown, czytelne z dowolnego obszaru roboczego — lista z kliknięciem, kontur z przejściami, otwieranie w Chrome / VS Code i przyciski kopiowania kodu; katalog konfigurowalny (domyślnie ~/.dsh/docs)',
}