diff --git a/src/i18n/languages.ts b/src/i18n/languages.ts index d552973..2f6cb9e 100644 --- a/src/i18n/languages.ts +++ b/src/i18n/languages.ts @@ -17,4 +17,5 @@ export const LANGUAGE_METADATA: Record< de: { name: "German", nativeName: "Deutsch", priority: 5 }, ja: { name: "Japanese", nativeName: "日本語", priority: 6 }, vi: { name: "Vietnamese", nativeName: "Tiếng Việt", priority: 7 }, + pl: { name: "Polish", nativeName: "Polski", priority: 8 }, }; diff --git a/src/i18n/locales/pl/translation.json b/src/i18n/locales/pl/translation.json new file mode 100644 index 0000000..8bc88c4 --- /dev/null +++ b/src/i18n/locales/pl/translation.json @@ -0,0 +1,410 @@ +{ + "sidebar": { + "general": "Ogólne", + "advanced": "Zaawansowane", + "postProcessing": "Postproces", + "history": "Historia", + "debug": "Debugowanie", + "about": "O programie" + }, + "onboarding": { + "subtitle": "Aby rozpocząć, wybierz model transkrypcji", + "recommended": "Polecane", + "download": "Pobierz", + "downloading": "Pobieranie...", + "modelCard": { + "accuracy": "dokładność", + "speed": "szybkość" + }, + "models": { + "small": { + "name": "Whisper Small", + "description": "Szybki i dość dokładny." + }, + "medium": { + "name": "Whisper Medium", + "description": "Dobra dokładność, średnia szybkość" + }, + "turbo": { + "name": "Whisper Turbo", + "description": "Zrównoważona dokładność i szybkość." + }, + "large": { + "name": "Whisper Large", + "description": "Dobra dokładność, ale wolny." + }, + "parakeet-tdt-0.6b-v2": { + "name": "Parakeet V2", + "description": "Tylko angielski. Najlepszy model dla osób mówiących po angielsku." + }, + "parakeet-tdt-0.6b-v3": { + "name": "Parakeet V3", + "description": "Szybki i dokładny" + } + }, + "errors": { + "loadModels": "Nie udało się wczytać dostępnych modeli", + "downloadModel": "Nie udało się pobrać modelu: {{error}}" + } + }, + "modelSelector": { + "welcome": "Witamy w Handy!", + "downloadPrompt": "Pobierz model poniżej, aby rozpocząć transkrypcję.", + "availableModels": "Dostępne modele", + "downloadModels": "Pobierz modele", + "chooseModel": "Wybierz model", + "active": "Aktywny", + "download": "Pobierz", + "downloadSize": "Rozmiar pobierania", + "noModelsAvailable": "Brak dostępnych modeli", + "extracting": "Rozpakowywanie {{modelName}}...", + "extractingMultiple": "Rozpakowywanie {{count}} modeli...", + "extractingGeneric": "Rozpakowywanie...", + "downloading": "Pobieranie {{percentage}}%", + "downloadingMultiple": "Pobieranie {{count}} modeli...", + "modelReady": "Model gotowy", + "loading": "Wczytywanie {{modelName}}...", + "loadingGeneric": "Wczytywanie...", + "modelError": "Błąd modelu", + "modelUnloaded": "Model wyładowany", + "noModelDownloadRequired": "Brak modelu – wymagane pobranie", + "deleteModel": "Usuń {{modelName}}" + }, + "settings": { + "general": { + "title": "Ogólne", + "shortcut": { + "title": "Skróty Handy", + "description": "Skonfiguruj skróty klawiaturowe do uruchamiania nagrywania mowy", + "loading": "Wczytywanie skrótów...", + "none": "Brak skonfigurowanych skrótów", + "notFound": "Nie znaleziono skrótu", + "pressKeys": "Naciśnij klawisze...", + "bindings": { + "transcribe": { + "name": "Transkrybuj", + "description": "Konwertuje Twoją mowę na tekst." + }, + "cancel": { + "name": "Anuluj", + "description": "Anuluje bieżące nagrywanie." + } + }, + "errors": { + "restore": "Nie udało się przywrócić oryginalnego skrótu", + "set": "Nie udało się ustawić skrótu: {{error}}", + "reset": "Nie udało się zresetować skrótu do wartości domyślnej" + } + }, + "language": { + "title": "Język", + "description": "Wybierz język rozpoznawania mowy. Opcja Auto automatycznie określi język, a wybór konkretnego języka może poprawić dokładność.", + "descriptionUnsupported": "Model Parakeet automatycznie wykrywa język. Nie jest potrzebny ręczny wybór.", + "searchPlaceholder": "Szukaj języka...", + "noResults": "Nie znaleziono języków", + "auto": "Auto" + }, + "pushToTalk": { + "label": "Push To Talk", + "description": "Przytrzymaj, aby nagrywać, puść, aby zatrzymać" + } + }, + "sound": { + "title": "Dźwięk", + "microphone": { + "title": "Mikrofon", + "description": "Wybierz preferowane urządzenie mikrofonowe", + "placeholder": "Wybierz mikrofon...", + "loading": "Wczytywanie..." + }, + "audioFeedback": { + "label": "Informacja dźwiękowa", + "description": "Odtwarzaj dźwięk przy rozpoczęciu i zakończeniu nagrywania" + }, + "outputDevice": { + "title": "Urządzenie wyjściowe", + "description": "Wybierz preferowane urządzenie audio do odtwarzania dźwięków", + "placeholder": "Wybierz urządzenie wyjściowe...", + "loading": "Wczytywanie..." + }, + "volume": { + "title": "Głośność", + "description": "Dostosuj głośność dźwięków informacyjnych" + } + }, + "advanced": { + "title": "Zaawansowane", + "startHidden": { + "label": "Uruchom ukryty", + "description": "Uruchom w zasobniku systemowym bez otwierania okna." + }, + "autostart": { + "label": "Uruchamiaj przy starcie", + "description": "Automatycznie uruchamiaj Handy po zalogowaniu." + }, + "overlay": { + "title": "Pozycja nakładki", + "description": "Wyświetlaj wizualną nakładkę podczas nagrywania i transkrypcji. Na Linuxie zalecane 'Brak'.", + "options": { + "none": "Brak", + "bottom": "Dół", + "top": "Góra" + } + }, + "pasteMethod": { + "title": "Metoda wklejania", + "description": "Wybierz sposób wstawiania tekstu. Direct: symuluje wpisywanie. None: pomija wklejanie, tylko aktualizuje historię/clipboard.", + "options": { + "clipboard": "Schowek ({{modifier}}+V)", + "clipboardCtrlShiftV": "Schowek (Ctrl+Shift+V)", + "clipboardShiftInsert": "Schowek (Shift+Insert)", + "direct": "Bezpośrednio", + "none": "Brak" + } + }, + "clipboardHandling": { + "title": "Obsługa schowka", + "description": "Nie modyfikuj schowka zachowuje jego zawartość. Kopiuj do schowka pozostawia wynik transkrypcji w schowku.", + "options": { + "dontModify": "Nie modyfikuj schowka", + "copyToClipboard": "Kopiuj do schowka" + } + }, + "translateToEnglish": { + "label": "Tłumacz na angielski", + "description": "Automatycznie tłumacz mowę z innych języków na angielski podczas transkrypcji.", + "descriptionUnsupported": "Tłumaczenie nie jest obsługiwane przez model {{model}}." + }, + "modelUnload": { + "title": "Wyładowanie modelu", + "description": "Automatycznie zwalnia pamięć GPU/CPU po określonym czasie nieużywania", + "options": { + "never": "Nigdy", + "immediately": "Natychmiast", + "min2": "Po 2 minutach", + "min5": "Po 5 minutach", + "min10": "Po 10 minutach", + "min15": "Po 15 minutach", + "hour1": "Po 1 godzinie", + "sec5": "Po 5 sekundach (Debug)" + } + }, + "customWords": { + "title": "Własne słowa", + "description": "Dodaj słowa, które często są źle rozpoznawane lub zapisywane podczas transkrypcji. System automatycznie poprawi podobnie brzmiące słowa, aby pasowały do Twojej listy.", + "placeholder": "Dodaj słowo", + "add": "Dodaj", + "remove": "Usuń {{word}}" + } + }, + "postProcessing": { + "title": "Postprocess", + "disabledNotice": "Postprocess jest obecnie wyłączony. Włącz go w ustawieniach Debug, aby skonfigurować.", + "api": { + "title": "API (zgodne z OpenAI)", + "provider": { + "title": "Dostawca", + "description": "Wybierz dostawcę zgodnego z OpenAI." + }, + "appleIntelligence": { + "title": "Apple Intelligence", + "description": "Działa całkowicie na urządzeniu. Nie wymaga klucza API ani dostępu do sieci.", + "requirements": "Wymaga komputera Mac z Apple Silicon i systemem macOS Tahoe (26.0) lub nowszym. Apple Intelligence musi być włączone w Ustawieniach systemowych." + }, + "baseUrl": { + "title": "Adres bazowy", + "description": "Bazowy adres API dla wybranego dostawcy. Tylko dostawca niestandardowy może być edytowany.", + "placeholder": "https://api.openai.com/v1" + }, + "apiKey": { + "title": "Klucz API", + "description": "Klucz API dla wybranego dostawcy.", + "placeholder": "sk-..." + }, + "model": { + "title": "Model", + "descriptionApple": "Podaj opcjonalny limit tokenów lub pozostaw domyślne ustawienie urządzenia.", + "descriptionCustom": "Podaj identyfikator modelu wymagany przez Twój niestandardowy endpoint.", + "descriptionDefault": "Wybierz model udostępniony przez wybranego dostawcę.", + "placeholderApple": "Apple Intelligence", + "placeholderWithOptions": "Wyszukaj lub wybierz model", + "placeholderNoOptions": "Wpisz nazwę modelu", + "refreshModels": "Odśwież modele" + } + }, + "prompts": { + "title": "Prompt", + "selectedPrompt": { + "title": "Wybrany prompt", + "description": "Wybierz szablon do ulepszania transkrypcji lub utwórz nowy. Użyj ${output} w treści, aby odwołać się do przechwyconej transkrypcji." + }, + "noPrompts": "Brak dostępnych promptów", + "selectPrompt": "Wybierz prompt", + "createNew": "Utwórz nowy prompt", + "promptLabel": "Etykieta promptu", + "promptLabelPlaceholder": "Wpisz nazwę promptu", + "promptInstructions": "Instrukcje promptu", + "promptInstructionsPlaceholder": "Wpisz instrukcje do wykonania po transkrypcji. Przykład: Popraw gramatykę i jasność dla następującego tekstu: ${output}", + "promptTip": "Wskazówka: użyj ${output}, aby wstawić transkrybowany tekst do promptu.", + "updatePrompt": "Zaktualizuj prompt", + "deletePrompt": "Usuń prompt", + "createPrompt": "Utwórz prompt", + "cancel": "Anuluj", + "selectToEdit": "Wybierz prompt powyżej, aby zobaczyć i edytować jego szczegóły.", + "createFirst": "Kliknij 'Utwórz nowy prompt' powyżej, aby utworzyć pierwszy prompt postprocessingu." + } + }, + "history": { + "title": "Historia", + "openFolder": "Otwórz folder nagrań", + "loading": "Wczytywanie historii...", + "empty": "Brak transkrypcji. Rozpocznij nagrywanie, aby zbudować historię!", + "copyToClipboard": "Kopiuj transkrypcję do schowka", + "save": "Zapisz transkrypcję", + "unsave": "Usuń z zapisanych", + "delete": "Usuń wpis", + "deleteError": "Nie udało się usunąć wpisu. Spróbuj ponownie." + }, + "debug": { + "title": "Debugowanie", + "logDirectory": { + "title": "Katalog logów", + "description": "Miejsce przechowywania plików logów" + }, + "logLevel": { + "title": "Poziom logów", + "description": "Ustaw poziom szczegółowości logowania" + }, + "updateChecks": { + "label": "Sprawdzaj aktualizacje", + "description": "Automatycznie sprawdzaj nowe wersje Handy" + }, + "soundTheme": { + "label": "Motyw dźwiękowy", + "description": "Wybierz motyw dźwiękowy dla informacji o rozpoczęciu i zakończeniu nagrywania" + }, + "wordCorrectionThreshold": { + "title": "Próg korekty słów", + "description": "Czułość dla własnych korekt słów" + }, + "historyLimit": { + "title": "Limit historii", + "description": "Maksymalna liczba wpisów w historii", + "entries": "wpisy" + }, + "recordingRetention": { + "title": "Retencja nagrań", + "description": "Jak długo przechowywać nagrania audio", + "never": "Nigdy", + "preserveLimit": "Zachowaj {{count}} nagrań", + "days3": "Po 3 dniach", + "weeks2": "Po 2 tygodniach", + "months3": "Po 3 miesiącach", + "placeholder": "Wybierz okres retencji..." + }, + "alwaysOnMicrophone": { + "label": "Mikrofon zawsze aktywny", + "description": "Utrzymuj mikrofon aktywny dla szybszej reakcji" + }, + "clamshellMicrophone": { + "title": "Mikrofon przy zamkniętej pokrywie", + "description": "Mikrofon używany, gdy pokrywa laptopa jest zamknięta" + }, + "postProcessingToggle": { + "label": "Postprocess", + "description": "Włącz AI do ulepszania tekstu po transkrypcji" + }, + "muteWhileRecording": { + "label": "Wycisz podczas nagrywania", + "description": "Wycisz dźwięk systemu podczas nagrywania" + }, + "appendTrailingSpace": { + "label": "Dodaj spację na końcu", + "description": "Dodaj spację po wklejonej transkrypcji" + }, + "paths": { + "appData": "Dane aplikacji:", + "models": "Modele:", + "settings": "Ustawienia:" + } + }, + "about": { + "title": "O programie", + "version": { + "title": "Wersja", + "description": "Aktualna wersja Handy" + }, + "appDataDirectory": { + "title": "Katalog danych aplikacji", + "description": "Miejsce, gdzie Handy przechowuje swoje dane" + }, + "sourceCode": { + "title": "Kod źródłowy", + "description": "Zobacz kod źródłowy i współtwórz", + "button": "Zobacz na GitHub" + }, + "supportDevelopment": { + "title": "Wspieraj rozwój", + "description": "Pomóż nam dalej rozwijać Handy", + "button": "Wesprzyj" + }, + "acknowledgments": { + "title": "Podziękowania", + "whisper": { + "title": "Whisper.cpp", + "description": "Wydajne wykonywanie modelu rozpoznawania mowy Whisper od OpenAI", + "details": "Handy używa Whisper.cpp do szybkiego, lokalnego przetwarzania mowy na tekst. Dzięki niesamowitej pracy Georgi Gerganova i współtwórców." + } + } + } + }, + "footer": { + "downloadingModel": "Pobieranie {{model}}...", + "checkingUpdates": "Sprawdzanie aktualizacji...", + "updateAvailable": "Dostępna aktualizacja: {{version}}", + "updateAvailableShort": "Dostępna aktualizacja", + "upToDate": "Aktualne", + "downloadUpdate": "Pobierz aktualizację", + "restart": "Uruchom ponownie", + "updateCheckingDisabled": "Sprawdzanie aktualizacji wyłączone", + "downloading": "Pobieranie... {{progress}}%", + "installing": "Instalowanie...", + "preparing": "Przygotowywanie...", + "checkForUpdates": "Sprawdź aktualizacje" + }, + "common": { + "loading": "Wczytywanie...", + "save": "Zapisz", + "cancel": "Anuluj", + "reset": "Resetuj", + "add": "Dodaj", + "remove": "Usuń", + "delete": "Usuń", + "edit": "Edytuj", + "create": "Utwórz", + "update": "Aktualizuj", + "close": "Zamknij", + "open": "Otwórz", + "default": "Domyślne", + "enabled": "Włączone", + "disabled": "Wyłączone", + "on": "Włącz", + "off": "Wyłącz", + "yes": "Tak", + "no": "Nie", + "noOptionsFound": "Nie znaleziono opcji" + }, + "accessibility": { + "permissionsRequired": "Wymagane uprawnienia dostępności", + "permissionsDescription": "Handy potrzebuje uprawnień dostępności, aby wpisywać transkrybowany tekst.", + "openSettings": "Otwórz ustawienia systemowe", + "dismiss": "Zamknij" + }, + "errors": { + "loadDirectory": "Błąd wczytywania katalogu: {{error}}" + }, + "appLanguage": { + "title": "Język aplikacji", + "description": "Zmień język interfejsu Handy" + } +}