diff --git a/src/about/i18n.ts b/src/about/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/about/i18n.ts +++ b/src/about/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/about/translations/pl.json b/src/about/translations/pl.json new file mode 100644 index 000000000..9fae1ed7c --- /dev/null +++ b/src/about/translations/pl.json @@ -0,0 +1,7 @@ +{ + "title": "O {appName}", + "description": "MicroPython dla inteligentnych hubów {lego} Powered Up.", + "licenseButton": { "label": "Licencje oprogramowania" }, + "changelogButton": { "label": "Lista zmian" }, + "websiteButton": { "label": "Strona Pybricks" } +} diff --git a/src/activities/i18n.ts b/src/activities/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/activities/i18n.ts +++ b/src/activities/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/activities/translations/pl.json b/src/activities/translations/pl.json new file mode 100644 index 000000000..8f0b5bca9 --- /dev/null +++ b/src/activities/translations/pl.json @@ -0,0 +1,5 @@ +{ + "title": "Aktywności", + "explorer": "Przeglądarka plików", + "settings": "Ustawienia i pomoc" +} diff --git a/src/alerts/i18n.ts b/src/alerts/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/alerts/i18n.ts +++ b/src/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/alerts/translations/pl.json b/src/alerts/translations/pl.json new file mode 100644 index 000000000..c5decfca5 --- /dev/null +++ b/src/alerts/translations/pl.json @@ -0,0 +1,6 @@ +{ + "message": "Wystąpił nieoczekiwany błąd. Rozważ zgłoszenie go, abyśmy mogli przygotować lepszy komunikat.", + "technicalInfo": "Rozwiń, aby zobaczyć szczegółowe informacje techniczne", + "copyErrorMessage": "Kopiuj komunikat błędu", + "reportBug": "Zgłoś błąd" +} diff --git a/src/app/alerts/i18n.ts b/src/app/alerts/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/app/alerts/i18n.ts +++ b/src/app/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/app/alerts/translations/pl.json b/src/app/alerts/translations/pl.json new file mode 100644 index 000000000..29a9043b7 --- /dev/null +++ b/src/app/alerts/translations/pl.json @@ -0,0 +1,5 @@ +{ + "updateServerFailure": { + "message": "Nie udało się połączyć z serwerem aktualizacji. Połączenie internetowe lub serwer mogą być niedostępne. Spróbuj ponownie później." + } +} diff --git a/src/app/i18n.ts b/src/app/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/app/i18n.ts +++ b/src/app/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/app/translations/pl.json b/src/app/translations/pl.json new file mode 100644 index 000000000..771dcc591 --- /dev/null +++ b/src/app/translations/pl.json @@ -0,0 +1,8 @@ +{ + "landmark": { + "activities": "Aktywności", + "editor": "Edytor", + "terminal": "Terminal", + "documentation": "Dokumentacja" + } +} diff --git a/src/ble/alerts/i18n.ts b/src/ble/alerts/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/ble/alerts/i18n.ts +++ b/src/ble/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/ble/alerts/translations/pl.json b/src/ble/alerts/translations/pl.json new file mode 100644 index 000000000..6e5030216 --- /dev/null +++ b/src/ble/alerts/translations/pl.json @@ -0,0 +1,41 @@ +{ + "noWebBluetooth": { + "message": "Ta przeglądarka nie obsługuje Web Bluetooth lub nie jest włączony.", + "suggestion": "Użyj obsługiwanej przeglądarki takiej jak Google Chrome lub Microsoft Edge.", + "linux": "Web Bluetooth jest eksperymentalny na Linuksie i musi być ręcznie włączony. Skopiuj poniższy link i wklej go w pasku adresu.", + "action": "Więcej informacji" + }, + "bluetoothNotAvailable": { + "message": "Nie znaleziono adaptera Bluetooth lub nie udzielono zgody na jego użycie.", + "suggestion": "Podłącz lub włącz adapter Bluetooth Low Energy, upewnij się, że Twoja przeglądarka ma uprawnienia do jego użycia i zrestartuj przeglądarkę.", + "browserSupport": "Niektóre przeglądarki takie jak Brave i Opera nie obsługują Web Bluetooth. Upewnij się, że używasz obsługiwanej przeglądarki takiej jak Chrome, Edge lub na iOS WebBLE." + }, + "noGatt": { + "message": "Przeglądarka internetowa nie udzieliła pozwolenia na użycie Bluetooth Low Energy." + }, + "missingService": { + "message": "Połączono z hubem, ale nie udało się uzyskać usługi {serviceName}.", + "suggestion1": "Upewnij się, że używasz najnowszego firmware.", + "suggestion2": "Jeśli problem nadal występuje, spróbuj usunąć urządzenie \"{hubName}\" w ustawieniach Bluetooth systemu operacyjnego, a następnie spróbuj połączyć się ponownie." + }, + "noHub": { + "message": "Nie wykryto huba.", + "suggestion": "Czy zainstalowałeś już firmware Pybricks?", + "flashFirmwareButton": "Zainstaluj firmware Pybricks", + "troubleshootButton": "Rozwiąż problemy z połączeniem" + }, + "oldFirmware": { + "message": "Nowa wersja firmware jest dostępna dla tego huba. Zainstaluj najnowszą wersję, aby używać wszystkich nowych funkcji.", + "flashFirmware": { + "label": "Zaktualizuj firmware Pybricks" + } + }, + "newPybricksProfile": { + "message": "Połączony hub używa nowszej wersji profilu komunikacji Pybricks. Niektóre funkcje mogą nie działać poprawnie.", + "versions": "Hub ma wersję {hubVersion}, podczas gdy {app} obsługuje {appVersion}.", + "suggestion": "Zdegraduj firmware huba lub zaktualizuj {app}, aby uniknąć problemów." + }, + "disconnected": { + "message": "Hub nie jest już połączony. Połącz się ponownie i spróbuj jeszcze raz." + } +} diff --git a/src/components/i18n.ts b/src/components/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/components/i18n.ts +++ b/src/components/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/components/translations/pl.json b/src/components/translations/pl.json new file mode 100644 index 000000000..dd4a6d251 --- /dev/null +++ b/src/components/translations/pl.json @@ -0,0 +1,12 @@ +{ + "helpButton": { + "label": "Pomoc", + "description": "Kliknij, aby wyświetlić pomoc dla pola wyboru {helpForLabel}." + }, + "helpDialog": { + "title": "Pomoc", + "closeButton": { + "label": "Zamknij" + } + } +} diff --git a/src/editor/i18n.ts b/src/editor/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/editor/i18n.ts +++ b/src/editor/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/editor/translations/pl.json b/src/editor/translations/pl.json new file mode 100644 index 000000000..60937fcd8 --- /dev/null +++ b/src/editor/translations/pl.json @@ -0,0 +1,20 @@ +{ + "tablist": { + "label": "Edytor" + }, + "welcome": "Witaj", + "placeholder": "Napisz tutaj swój program...", + "check": "Sprawdź składnię", + "toggleDocs": "Pokaż/ukryj dokumentację", + "copy": "Kopiuj", + "paste": "Wklej", + "selectAll": "Zaznacz wszystko", + "undo": "Cofnij", + "redo": "Ponów", + "closeFile": { "tooltip": "Zamknij {fileName}" }, + "contextMenu": { "label": "Menu kontekstowe edytora" }, + "docs": { + "show": "Pokaż dokumentację", + "hide": "Ukryj dokumentację" + } +} diff --git a/src/explorer/alerts/i18n.ts b/src/explorer/alerts/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/alerts/i18n.ts +++ b/src/explorer/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/alerts/translations/pl.json b/src/explorer/alerts/translations/pl.json new file mode 100644 index 000000000..3a9356d71 --- /dev/null +++ b/src/explorer/alerts/translations/pl.json @@ -0,0 +1,11 @@ +{ + "fileInUse": { + "message": "Plik '{fileName}' nie mógł zostać otwarty. Jest już otwarty w innym oknie." + }, + "noFilesToBackup": { + "message": "Nie ma plików do backupu. Najpierw utwórz nowy plik klikając ikonę {icon}." + }, + "noPyFiles": { + "message": "Nie było plików {py} w pliku {zip}." + } +} diff --git a/src/explorer/deleteFileAlert/i18n.ts b/src/explorer/deleteFileAlert/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/deleteFileAlert/i18n.ts +++ b/src/explorer/deleteFileAlert/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/deleteFileAlert/translations/pl.json b/src/explorer/deleteFileAlert/translations/pl.json new file mode 100644 index 000000000..4400ebb17 --- /dev/null +++ b/src/explorer/deleteFileAlert/translations/pl.json @@ -0,0 +1,7 @@ +{ + "message": "Plik '{fileName}' zostanie trwale usunięty. Tej operacji nie można cofnąć.", + "action": { + "accept": "Usuń", + "cancel": "Zachowaj" + } +} diff --git a/src/explorer/duplicateFileDialog/i18n.ts b/src/explorer/duplicateFileDialog/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/duplicateFileDialog/i18n.ts +++ b/src/explorer/duplicateFileDialog/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/duplicateFileDialog/translations/pl.json b/src/explorer/duplicateFileDialog/translations/pl.json new file mode 100644 index 000000000..9beeaa5c1 --- /dev/null +++ b/src/explorer/duplicateFileDialog/translations/pl.json @@ -0,0 +1,6 @@ +{ + "title": "Duplikuj '{fileName}'", + "action": { + "accept": "Duplikuj" + } +} diff --git a/src/explorer/fileNameFormGroup/i18n.ts b/src/explorer/fileNameFormGroup/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/fileNameFormGroup/i18n.ts +++ b/src/explorer/fileNameFormGroup/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/fileNameFormGroup/translations/pl.json b/src/explorer/fileNameFormGroup/translations/pl.json new file mode 100644 index 000000000..9cce8162c --- /dev/null +++ b/src/explorer/fileNameFormGroup/translations/pl.json @@ -0,0 +1,13 @@ +{ + "label": "Nazwa pliku", + "helpText": { + "isOk": "OK!", + "isEmpty": "Nazwa pliku nie może być pusta.", + "hasSpaces": "Nazwa pliku nie może zawierać spacji.", + "hasFileExtension": "Rozszerzenie pliku zostanie dodane automatycznie.", + "hasInvalidFirstCharacter": "Nazwa pliku musi zaczynać się od litery ({letters}) lub podkreślenia ({underscore}).", + "hasInvalidCharacters": "Nazwa pliku może zawierać tylko litery ({letters}), cyfry ({numbers}) i podkreślenia ({underscore}).", + "alreadyExists": "Plik o tej nazwie już istnieje. Spróbuj innej nazwy.", + "fixIt": "Napraw to dla mnie." + } +} diff --git a/src/explorer/i18n.ts b/src/explorer/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/explorer/i18n.ts +++ b/src/explorer/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/newFileWizard/i18n.ts b/src/explorer/newFileWizard/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/newFileWizard/i18n.ts +++ b/src/explorer/newFileWizard/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/newFileWizard/translations/pl.json b/src/explorer/newFileWizard/translations/pl.json new file mode 100644 index 000000000..bb75cb4f3 --- /dev/null +++ b/src/explorer/newFileWizard/translations/pl.json @@ -0,0 +1,16 @@ +{ + "title": "Utwórz nowy plik", + "template": { + "label": "Szablon" + }, + "useTemplate": { + "label": "Użyj szablonu", + "description": { + "checked": "Utwórz nowy plik dla wybranego huba.", + "unchecked": "Utwórz nowy pusty plik." + } + }, + "action": { + "create": "Utwórz" + } +} diff --git a/src/explorer/renameFileDialog/i18n.ts b/src/explorer/renameFileDialog/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/renameFileDialog/i18n.ts +++ b/src/explorer/renameFileDialog/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/renameFileDialog/translations/pl.json b/src/explorer/renameFileDialog/translations/pl.json new file mode 100644 index 000000000..779fef994 --- /dev/null +++ b/src/explorer/renameFileDialog/translations/pl.json @@ -0,0 +1,6 @@ +{ + "title": "Zmień nazwę '{fileName}'", + "action": { + "rename": "Zmień nazwę" + } +} diff --git a/src/explorer/renameImportDialog/i18n.ts b/src/explorer/renameImportDialog/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/renameImportDialog/i18n.ts +++ b/src/explorer/renameImportDialog/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/renameImportDialog/translations/pl.json b/src/explorer/renameImportDialog/translations/pl.json new file mode 100644 index 000000000..7fe0aa199 --- /dev/null +++ b/src/explorer/renameImportDialog/translations/pl.json @@ -0,0 +1,8 @@ +{ + "title": "Zmień nazwę importowanego pliku", + "message": "Nazwa importowanego pliku '{fileName}' jest niedozwolona w {appName}. Proszę zmienić nazwę poniżej.", + "action": { + "skip": "Pomiń importowanie tego pliku", + "rename": "Zmień nazwę" + } +} diff --git a/src/explorer/replaceImportDialog/i18n.ts b/src/explorer/replaceImportDialog/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/explorer/replaceImportDialog/i18n.ts +++ b/src/explorer/replaceImportDialog/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/explorer/replaceImportDialog/translations/pl.json b/src/explorer/replaceImportDialog/translations/pl.json new file mode 100644 index 000000000..4090d4d31 --- /dev/null +++ b/src/explorer/replaceImportDialog/translations/pl.json @@ -0,0 +1,12 @@ +{ + "title": "Zastąpić istniejący plik?", + "message": "Plik o tej samej nazwie co importowany plik '{fileName}' już istnieje.", + "option": { + "remember": "Zapamiętaj tę odpowiedź przy rozwiązywaniu dodatkowych konfliktów." + }, + "action": { + "skip": "Zachowaj istniejący plik i pomiń importowanie tego pliku", + "replace": "Zastąp istniejący plik importowanym plikiem", + "rename": "Zachowaj istniejący plik i zmień nazwę importowanego pliku" + } +} diff --git a/src/explorer/translations/pl.json b/src/explorer/translations/pl.json new file mode 100644 index 000000000..ffb3e5694 --- /dev/null +++ b/src/explorer/translations/pl.json @@ -0,0 +1,33 @@ +{ + "header": { + "toolbar": { + "title": "Operacje na plikach", + "exportAll": "Utwórz kopię zapasową wszystkich plików", + "import": "Importuj plik", + "addNew": "Utwórz nowy plik" + } + }, + "tree": { + "label": "Pliki", + "liveDescriptor": { + "intro": { + "accessibilityGuide": "Przewodnik dostępności dla drzewa {treeLabel}.", + "navigation": "Nawiguj po drzewie klawiszami strzałek. Zacznij wpisywać nazwę pliku, aby go wyszukać. Dostępne są dodatkowe skróty:", + "keybindings": { + "primaryAction": "{key}, aby otworzyć plik w edytorze kodu", + "rename": "{key}, aby rozpocząć zmianę nazwy zaznaczonego pliku", + "duplicate": "{key}, aby zduplikować zaznaczony plik", + "export": "{key}, aby wyeksportować zaznaczony plik", + "delete": "{key}, aby usunąć zaznaczony plik" + } + }, + "searching": "Wyszukiwanie." + } + }, + "treeItem": { + "renameTooltip": "Zmień nazwę {fileName}", + "duplicateTooltip": "Duplikuj {fileName}", + "exportTooltip": "Eksportuj {fileName}", + "deleteTooltip": "Usuń {fileName}" + } +} diff --git a/src/firmware/alerts/i18n.ts b/src/firmware/alerts/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/firmware/alerts/i18n.ts +++ b/src/firmware/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/firmware/alerts/translations/pl.json b/src/firmware/alerts/translations/pl.json new file mode 100644 index 000000000..6e2998da3 --- /dev/null +++ b/src/firmware/alerts/translations/pl.json @@ -0,0 +1,35 @@ +{ + "dfuError": { + "message": "Wystąpił błąd USB podczas instalacji firmware.", + "suggestion": "Upewnij się, że kabel USB nie jest uszkodzony i jest solidnie podłączony do huba i komputera.", + "tryAgainButton": "Spróbuj ponownie" + }, + "noWebUsb": { + "message": "Ta przeglądarka nie obsługuje WebUSB lub WebUSB nie jest włączony.", + "suggestion": "Użyj obsługiwanej przeglądarki takiej jak Google Chrome lub Microsoft Edge." + }, + "noWebHid": { + "message": "Ta przeglądarka nie obsługuje WebHID lub WebHID nie jest włączony.", + "suggestion": "Użyj obsługiwanej przeglądarki takiej jak Google Chrome lub Microsoft Edge." + }, + "noDfuHub": { + "message": "Nie można znaleźć Twojego huba?", + "suggestion1": { + "windows": "Może być konieczne ręczne zainstalowanie sterownika USB przed połączeniem z hubem.", + "linux": "Może być konieczne dodanie reguł udev przed połączeniem z hubem." + }, + "troubleshootButton": "Wskazówki dotyczące rozwiązywania problemów", + "installUsbDriverButton": "Zainstaluj sterownik USB", + "configureUdevRulesButton": "Skonfiguruj reguły udev" + }, + "noDfuInterface": { + "message": "To bardzo niezwykłe. Urządzenie USB nie zawierało oczekiwanego interfejsu." + }, + "flashProgress": { + "erasing": "Usuwanie starego firmware: {percent}", + "flashing": "Instalowanie nowego firmware: {percent}" + }, + "releaseButton": { + "message": "Teraz możesz zwolnić przycisk zasilania na hubie." + } +} diff --git a/src/firmware/bootloaderInstructions/i18n.ts b/src/firmware/bootloaderInstructions/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/firmware/bootloaderInstructions/i18n.ts +++ b/src/firmware/bootloaderInstructions/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/firmware/bootloaderInstructions/translations/pl.json b/src/firmware/bootloaderInstructions/translations/pl.json new file mode 100644 index 000000000..80e4201af --- /dev/null +++ b/src/firmware/bootloaderInstructions/translations/pl.json @@ -0,0 +1,53 @@ +{ + "warning": { + "linux": { + "message": "Jeśli nigdy nie używałeś Pybricks z USB na Linuksie, będziesz musiał skonfigurować reguły udev przed instalacją firmware. {learnMore}", + "learnMore": "Dowiedz się więcej." + }, + "windows": { + "message": "Czy używasz Pybricks na tym komputerze po raz pierwszy? Może być konieczne ręczne zainstalowanie sterownika USB dla tego typu huba. {instructions}", + "instructions": "Kliknij, aby zobaczyć instrukcje." + } + }, + "button": { + "bluetooth": "Przycisk Bluetooth", + "power": "przycisk", + "right": "prawy przycisk" + }, + "light": { + "bluetooth": "Światło Bluetooth", + "status": "światło huba" + }, + "lightPattern": { + "bluetooth": "różowo-zielono-niebiesko-wyłączone", + "status": "jasno fioletowy" + }, + "instructionGroup": { + "prepare": { + "title": "Przygotowanie:", + "batteries": "Upewnij się, że hub ma nowe lub w pełni naładowane baterie.", + "turnOff": "Upewnij się, że hub jest wyłączony.", + "usb": "Odłącz kabel USB.", + "app": "Otwórz aplikację {lego} PoweredUp w trybie 'Tworzenie' i rozpocznij nowy projekt." + }, + "bootloaderMode": { + "title": "Wejdź w tryb aktualizacji (zobacz wideo):", + "disconnectIo": "Odłącz jakiekolwiek urządzenie od portu A na hubie.", + "holdButton": "Naciśnij i przytrzymaj {button} na hubie.", + "connectUsb": "Podłącz kabel USB.", + "waitForLight": "Poczekaj, aż {light} zacznie migać {lightPattern}.", + "waitAppConnect": "Aplikacja automatycznie się połączy i rozpocznie przywracanie firmware.", + "releaseButton": "Zwolnij {button}.", + "keepHolding": "Trzymaj {button} w następnych krokach. Powiemy Ci, kiedy go puścić.", + "pressPowerButtonEV3": "Naciśnij środkowy przycisk, aby włączyć EV3.", + "releaseButtonsEV3": "Gdy ekran pokaże \"Updating...\", zwolnij oba przyciski." + }, + "connect": { + "title": "Instalacja:", + "selectEV3FirmwareType": "Wybierz poniżej wersję firmware do przywrócenia.", + "clickConnectAndFlash": "Kliknij poniższy przycisk {flashButton}.", + "selectDevice": "W oknie dialogowym wybierz {deviceName} i kliknij {connectButton}.", + "connectButton": "Połącz" + } + } +} diff --git a/src/firmware/dfuWindowsDriverInstallDialog/i18n.ts b/src/firmware/dfuWindowsDriverInstallDialog/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/firmware/dfuWindowsDriverInstallDialog/i18n.ts +++ b/src/firmware/dfuWindowsDriverInstallDialog/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/firmware/dfuWindowsDriverInstallDialog/translations/pl.json b/src/firmware/dfuWindowsDriverInstallDialog/translations/pl.json new file mode 100644 index 000000000..156fc11cb --- /dev/null +++ b/src/firmware/dfuWindowsDriverInstallDialog/translations/pl.json @@ -0,0 +1,61 @@ +{ + "title": "Instrukcje instalacji sterownika USB DFU dla Windows", + "backButton": { + "label": "Wstecz" + }, + "nextButton": { + "label": "Dalej" + }, + "doneButton": { + "label": "Gotowe" + }, + "step": { + "1": { + "message": "Kliknij prawym przyciskiem myszy {startMenu} Windows, a następnie kliknij {deviceManager}.", + "startMenu": "Menu Start", + "deviceManager": "Menedżer urządzeń" + }, + "2": { + "message": "Poszukaj {dfuUsbHubName} w sekcji {otherDevices}.", + "otherDevices": "Inne urządzenia", + "properties": "Właściwości", + "listedWithWarning": "Jeśli jest wyświetlony ze znakiem ostrzeżenia, kliknij go prawym przyciskiem myszy i wybierz {properties}.", + "listedWithoutWarning": "Jeśli jest wyświetlony gdzie indziej bez znaku ostrzeżenia, sterownik jest już zainstalowany. Możesz zamknąć to okno.", + "notListed": "Jeśli go wcale nie widzisz, upewnij się, że hub jest w trybie aktualizacji DFU i spróbuj ponownie. Zamknij to okno, aby obejrzeć instrukcje wideo." + }, + "3": { + "message": "W oknie dialogowym {properties} kliknij przycisk {updateDriver}.", + "properties": "Właściwości {dfuUsbHubName}", + "updateDriver": "Aktualizuj sterownik..." + }, + "4": { + "message": "W oknie dialogowym {updateDrivers} kliknij przycisk {browse}.", + "updateDrivers": "Aktualizuj sterowniki", + "browse": "Przeglądaj mój komputer w poszukiwaniu sterowników" + }, + "5": { + "message": "Następnie kliknij przycisk {letMePick}.", + "letMePick": "Pozwól mi wybrać z listy dostępnych sterowników na moim komputerze" + }, + "6": { + "message": "Na liście typów urządzeń wybierz {usbDevices}, a następnie kliknij przycisk {next}.", + "usbDevices": "Urządzenia Universal Serial Bus", + "next": "Dalej" + }, + "7": { + "message": "Na liście {manufacturer} wybierz {winUsbDevice}. Następnie na liście {model} również wybierz {winUsbDevice}. Następnie kliknij przycisk {next}.", + "manufacturer": "Producent", + "winUsbDevice": "Urządzenie WinUsb", + "model": "Model", + "next": "Dalej" + }, + "8": { + "message": "Okno dialogowe ostrzegawcze informuje, że sterownik nie jest zalecany. Kliknij {yes}, aby kontynuować mimo to. Sterownik jest kompatybilny.", + "yes": "Tak" + }, + "9": { + "message": "Instalacja sterownika jest zakończona. Kliknij przycisk {close}.", + "close": "Zamknij" + } + } +} diff --git a/src/firmware/installPybricksDialog/i18n.ts b/src/firmware/installPybricksDialog/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/firmware/installPybricksDialog/i18n.ts +++ b/src/firmware/installPybricksDialog/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/firmware/installPybricksDialog/translations/pl.json b/src/firmware/installPybricksDialog/translations/pl.json new file mode 100644 index 000000000..ae1948bb2 --- /dev/null +++ b/src/firmware/installPybricksDialog/translations/pl.json @@ -0,0 +1,72 @@ +{ + "title": "Zainstaluj firmware Pybricks", + "selectHubPanel": { + "title": "Wybierz typ huba", + "message": "Wybierz swój hub.", + "notOnListButton": { + "label": "Co z innymi hubami?", + "info": { + "mindstorms": { + "title": "Cegły {legoMindstormsRegisteredTrademark}", + "intro": "{appName} obecnie nie obsługuje poprzednich generacji {legoMindstormsRegisteredTrademark}.", + "help": { + "message": "Ale z Twoją pomocą może! Kliknij przycisk {sponsor} w prawym górnym rogu, aby zobaczyć, jak możesz nas wesprzeć.", + "sponsor": "sponsor" + }, + "rcx": "RCX: Może działać w trybie strumieniowym.", + "nxt": "NXT: Przetestowaliśmy to. Może działać!" + }, + "poweredUp": { + "title": "Inne huby", + "intro": "Wsparcie dla tych hubów obecnie nie jest planowane.", + "wedo2": "Smart hub WeDo 2.0", + "duploTrain": "Hub pociągu Duplo.", + "mario": "Mario/Luigi/Peach.", + "technicMove": "Hub Technic Move." + } + } + }, + "advanced": { + "label": "Zaawansowane", + "customFirmwareDropzone": { + "label": "Przeciągnij tutaj niestandardowy plik firmware .zip lub kliknij, aby przeglądać." + } + }, + "customFirmware": { + "message": "Wybrano niestandardowy firmware.", + "hubType": "Typ huba: {hubTypeName}", + "firmwareVersion": "Wersja firmware: {version}", + "clearButton": "Wyczyść" + } + }, + "licensePanel": { + "title": "Zaakceptuj licencje", + "licenseText": { + "error": "Wystąpił problem podczas pobierania pliku firmware." + }, + "acceptCheckbox": { + "label": "Przeczytałem i zgadzam się z warunkami licencji." + } + }, + "optionsPanel": { + "title": "Skonfiguruj opcje", + "hubName": { + "label": "Nazwa huba", + "labelInfo": "(opcjonalne)", + "help": "Wybierz nazwę Bluetooth dla swojego huba. Jeśli masz więcej niż jeden hub, ułatwi to odróżnienie ich podczas połączenia.", + "error": "Nazwa jest zbyt długa." + } + }, + "bootloaderPanel": { + "title": "Zainstaluj" + }, + "backButton": { + "label": "Wstecz" + }, + "nextButton": { + "label": "Dalej" + }, + "flashFirmwareButton": { + "label": "Zainstaluj" + } +} diff --git a/src/firmware/restoreOfficialDialog/i18n.ts b/src/firmware/restoreOfficialDialog/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/firmware/restoreOfficialDialog/i18n.ts +++ b/src/firmware/restoreOfficialDialog/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/firmware/restoreOfficialDialog/translations/pl.json b/src/firmware/restoreOfficialDialog/translations/pl.json new file mode 100644 index 000000000..781c65222 --- /dev/null +++ b/src/firmware/restoreOfficialDialog/translations/pl.json @@ -0,0 +1,32 @@ +{ + "title": "Przywróć oficjalny firmware {lego}", + "backButton": { + "label": "Wstecz" + }, + "nextButton": { + "label": "Dalej" + }, + "doneButton": { + "label": "Gotowe" + }, + "selectHubPanel": { + "title": "Wybierz hub", + "message": "Wybierz hub, na którym przywrócić oficjalny firmware {lego}, a następnie kliknij {next}." + }, + "restoreFirmwarePanel": { + "title": "Przywróć firmware", + "instruction2": { + "ble": { + "message": "Gdy pasek postępu zostanie zakończony, hub uruchomi się ponownie, a aplikacja się połączy. Oficjalny firmware został przywrócony." + }, + "updateApp": "Po zakończeniu odzyskiwania użyj aplikacji {app}, aby uzyskać najnowszy oficjalny firmware.", + "updateAppVersion": "Możesz użyć wersji 2 (legacy) lub wersji 3, aby to zrobić." + }, + "flashButton": "Przywróć", + "ev3FirmwareType": { + "home": "Edycja domowa (v1.09H)", + "education": "Edycja edukacyjna (v1.09E)", + "makecode": "Microsoft MakeCode (v1.10E)" + } + } +} diff --git a/src/hub/alerts/i18n.ts b/src/hub/alerts/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/hub/alerts/i18n.ts +++ b/src/hub/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/hub/alerts/translations/pl.json b/src/hub/alerts/translations/pl.json new file mode 100644 index 000000000..7eca9bc8b --- /dev/null +++ b/src/hub/alerts/translations/pl.json @@ -0,0 +1,6 @@ +{ + "userProgramSize": { + "message": "Ten program jest zbyt duży. Skompilowany rozmiar to {actual} bajtów, ale hub może pomieścić tylko {max} bajtów.", + "suggestion": "Spróbuj usunąć nieużywany kod lub zmniejszyć nazwy i ciągi znaków." + } +} diff --git a/src/i18n.ts b/src/i18n.ts index 754d29bc0..b37d7ee41 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -12,7 +12,7 @@ import type { /** The global i18n manager. */ export const i18nManager = new I18nManager({ - locale: 'en', + locale: 'pl', onError: (err): void => console.error(err), }); diff --git a/src/licenses/i18n.ts b/src/licenses/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/licenses/i18n.ts +++ b/src/licenses/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/licenses/translations/pl.json b/src/licenses/translations/pl.json new file mode 100644 index 000000000..6fc24f580 --- /dev/null +++ b/src/licenses/translations/pl.json @@ -0,0 +1,16 @@ +{ + "title": "Licencje oprogramowania open source", + "description": "{name} jest zbudowany na oprogramowaniu open source. Używając {name} zgadzasz się na warunki i postanowienia wszystkich zawartych licencji oprogramowania.", + "packageList": { + "label": "Pakiety" + }, + "packageLabel": "Pakiet:", + "authorLabel": "Autor:", + "licenseLabel": "Licencja:", + "error": { + "fetchFailed": "Nie udało się załadować danych licencji." + }, + "help": { + "selectPackage": "Wybierz pakiet, aby zobaczyć licencję." + } +} diff --git a/src/mpy/alerts/i18n.ts b/src/mpy/alerts/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/mpy/alerts/i18n.ts +++ b/src/mpy/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/mpy/alerts/translations/pl.json b/src/mpy/alerts/translations/pl.json new file mode 100644 index 000000000..4e52c1fc5 --- /dev/null +++ b/src/mpy/alerts/translations/pl.json @@ -0,0 +1,6 @@ +{ + "compilerError": { + "message": "Nie udało się skompilować pliku MicroPython.", + "gotoErrorButton": "Przejdź do błędu" + } +} diff --git a/src/notifications/i18n.ts b/src/notifications/i18n.ts index eceeb4b22..2860ee52f 100644 --- a/src/notifications/i18n.ts +++ b/src/notifications/i18n.ts @@ -4,6 +4,7 @@ // Notification translation keys. import { I18n, useI18n as useShopifyI18n } from '@shopify/react-i18n'; +import './translations/pl.json'; export function useI18n(): I18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/notifications/translations/pl.json b/src/notifications/translations/pl.json new file mode 100644 index 000000000..4da1bd67e --- /dev/null +++ b/src/notifications/translations/pl.json @@ -0,0 +1,47 @@ +{ + "app": { + "noUpdateFound": "{appName} jest już aktualny." + }, + "ble": { + "gattServiceNotFound": "Połączono z hubem, ale nie udało się uzyskać usługi {serviceName}.\nUpewnij się, że używasz najnowszego oprogramowania układowego.\nJeśli problem będzie się powtarzał, spróbuj usunąć urządzenie \"{hubName}\" w ustawieniach Bluetooth systemu, a następnie spróbuj połączyć się ponownie.", + "unexpectedError": "Nieoczekiwany błąd podczas próby połączenia: {errorMessage}" + }, + "editor": { + "failedToOpenFile": "Nie udało się otworzyć pliku.", + "failedToSaveFile": "Nie udało się zapisać programu." + }, + "explorer": { + "failedToImportFiles": "Nie udało się zaimportować pliku(ów).", + "failedToCreate": "Nie udało się utworzyć pliku.", + "failedToDuplicate": "Nie udało się zduplikować pliku.", + "failedToExport": "Nie udało się wyeksportować pliku.", + "failedToDelete": "Nie udało się usunąć pliku.", + "failedToArchive": "Nie udało się zarchiwizować plików.'" + }, + "fileStorage": { + "failedToInitialize": "Nie udało się zainicjować pamięci plików. Zmiany nie będą zapisywane automatycznie." + }, + "flashFirmware": { + "timedOut": "Hub zbyt długo nie odpowiadał. Uruchom go ponownie i spróbuj ponownie.", + "bleError": "Wystąpił problem z Bluetooth.", + "disconnected": "Połączenie z hubem zostało przerwane przed zakończeniem instalacji. Uruchom hub ponownie i spróbuj ponownie.", + "hubError": "Hub zgłosił błąd.", + "unsupportedDevice": "Podłączony hub nie jest obsługiwany.", + "deviceMismatch": "Oprogramowanie układowe jest dla innego rodzaju huba niż podłączony.", + "failToFetch": "Nie udało się pobrać oprogramowania układowego z serwera: {status}", + "badZipFile": "Plik firmware.zip nie zawiera wymaganych plików lub jest nieprawidłowy.", + "badMetadata": "Plik firmware.metadata.json zawiera brakujące lub nieprawidłowe wpisy. Popraw go i spróbuj ponownie.", + "compileError": "Dołączony plik main.py nie mógł zostać skompilowany. Popraw go i spróbuj ponownie.", + "sizeTooBig": "Połączony firmware i main.py są zbyt duże, aby zmieścić się w pamięci flash.", + "unexpectedError": "Nieoczekiwany błąd podczas próby instalacji oprogramowania układowego: {errorMessage}" + }, + "mpy": { + "error": "{errorMessage}" + }, + "serviceWorker": { + "update": { + "message": "Dostępna jest nowa wersja {appName}. Kliknij {action}, aby zacząć używać nowej wersji.", + "action": "Uruchom ponownie" + } + } +} diff --git a/src/settings/i18n.ts b/src/settings/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/settings/i18n.ts +++ b/src/settings/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/settings/translations/pl.json b/src/settings/translations/pl.json new file mode 100644 index 000000000..fa30822fa --- /dev/null +++ b/src/settings/translations/pl.json @@ -0,0 +1,56 @@ +{ + "title": "Ustawienia i pomoc", + "appearance": { + "title": "Wygląd", + "darkMode": { + "label": "Tryb ciemny", + "help": "Włącz, aby wybrać tryb ciemny. Wyłącz, aby wybrać tryb jasny." + }, + "zoom": { + "help": "Użyj {in} i {out}, aby zmienić powiększenie." + } + }, + "firmware": { + "title": "Oprogramowanie układowe", + "flashPybricksButton": { + "label": "Zainstaluj oprogramowanie układowe Pybricks" + }, + "flashLegoButton": { + "label": "Przywróć oficjalne oprogramowanie {lego}" + } + }, + "help": { + "title": "Pomoc", + "projects": { + "label": "Przykładowe projekty" + }, + "support": { + "label": "Wsparcie" + }, + "chat": { + "label": "Czat" + }, + "bugs": { + "label": "Zgłaszanie błędów" + } + }, + "app": { + "title": "Aplikacja", + "offlineUseHelp": "Gotowe do użycia offline.", + "install": { + "label": "Zainstaluj jako aplikację" + }, + "checkForUpdate": { + "label": "Sprawdź aktualizację" + }, + "restart": { + "label": "Uruchom ponownie, aby zainstalować aktualizację" + }, + "about": { + "label": "Informacje" + }, + "tour": { + "label": "Przewodnik powitalny" + } + } +} diff --git a/src/sponsor/alerts/i18n.ts b/src/sponsor/alerts/i18n.ts index eb8dc4868..0a80470b3 100644 --- a/src/sponsor/alerts/i18n.ts +++ b/src/sponsor/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/sponsor/alerts/translations/pl.json b/src/sponsor/alerts/translations/pl.json new file mode 100644 index 000000000..c1c9269d5 --- /dev/null +++ b/src/sponsor/alerts/translations/pl.json @@ -0,0 +1,5 @@ +{ + "addressCopied": { + "message": "Adres skopiowany do schowka. Użyj portfela obsługującego adresy ENS, aby przekazać darowiznę." + } +} diff --git a/src/sponsor/i18n.ts b/src/sponsor/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/sponsor/i18n.ts +++ b/src/sponsor/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/sponsor/translations/pl.json b/src/sponsor/translations/pl.json new file mode 100644 index 000000000..8d8c8e4bc --- /dev/null +++ b/src/sponsor/translations/pl.json @@ -0,0 +1,27 @@ +{ + "title": "Wesprzyj {pybricks}", + "whoAreWe": { + "heading": "Kim jesteśmy?", + "team": { + "about": "Pybricks jest prowadzony przez mały {team}, wspierany przez społeczność entuzjastów otwartego oprogramowania z całego świata.", + "team": "zespół" + }, + "mission": "Naszą misją jest uczynić robotykę zabawną i dostępną oraz nauczyć milion osób programowania. Możesz w tym pomóc!" + }, + "whyDonate": { + "heading": "Dlaczego warto wpłacić?", + "body": "Darowizny pomagają nam:" + }, + "donateReason": { + "keepPybricksFree": "Utrzymać Pybricks darmowym dla wszystkich.", + "supportNewHubs": "Wspierać Pybricks na nowych hubach, silnikach i czujnikach.", + "writeDocs": "Tworzyć dokumentację i poradniki.", + "exploreFeatures": "Badać duże nowe funkcje, takie jak wielozadaniowość czy programowanie blokowe.", + "supportOthers": "Wspierać projekty, na których opiera się Pybricks, takie jak MicroPython." + }, + "donateOptions": { + "heading": "Jak przekazać darowiznę", + "options": "Możesz użyć poniższych linków do jednorazowej lub miesięcznej darowizny.", + "thanks": "Dziękujemy, bardzo to doceniamy!" + } +} diff --git a/src/status-bar/i18n.ts b/src/status-bar/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/status-bar/i18n.ts +++ b/src/status-bar/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/status-bar/translations/pl.json b/src/status-bar/translations/pl.json new file mode 100644 index 000000000..489865025 --- /dev/null +++ b/src/status-bar/translations/pl.json @@ -0,0 +1,22 @@ +{ + "completionEngineStatus": { + "label": "Wskaźnik stanu mechanizmu podpowiedzi kodu", + "message": { + "loading": "Mechanizm podpowiedzi kodu uruchamia się i wkrótce będzie gotowy.", + "ready": "Mechanizm podpowiedzi kodu jest gotowy do użycia.", + "failed": "Mechanizm podpowiedzi kodu przestał działać.", + "unknown": "Mechanizm podpowiedzi kodu nie został jeszcze uruchomiony." + } + }, + "hubInfo": { + "title": "Podłączony hub", + "connectedTo": "Połączono z:", + "hubType": "Typ huba:", + "firmware": "Oprogramowanie układowe:" + }, + "battery": { + "title": "Bateria", + "low": "Niski poziom baterii. Hub wkrótce się wyłączy.", + "ok": "Poziom baterii jest OK." + } +} diff --git a/src/terminal/i18n.ts b/src/terminal/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/terminal/i18n.ts +++ b/src/terminal/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/terminal/translations/pl.json b/src/terminal/translations/pl.json new file mode 100644 index 000000000..e5c8c1978 --- /dev/null +++ b/src/terminal/translations/pl.json @@ -0,0 +1,6 @@ +{ + "copy": "Kopiuj", + "paste": "Wklej", + "selectAll": "Zaznacz wszystko", + "clear": "Wyczyść" +} diff --git a/src/toolbar/buttons/bluetooth/i18n.ts b/src/toolbar/buttons/bluetooth/i18n.ts index 6c6df61d3..e73a0d2d6 100644 --- a/src/toolbar/buttons/bluetooth/i18n.ts +++ b/src/toolbar/buttons/bluetooth/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/toolbar/buttons/bluetooth/translations/pl.json b/src/toolbar/buttons/bluetooth/translations/pl.json new file mode 100644 index 000000000..075d8c8e8 --- /dev/null +++ b/src/toolbar/buttons/bluetooth/translations/pl.json @@ -0,0 +1,8 @@ +{ + "label": "Bluetooth", + "tooltip": { + "connect": "Połącz przez Bluetooth", + "disconnect": "Rozłącz Bluetooth", + "usbConnected": "USB jest podłączony, rozłącz aby użyć Bluetooth" + } +} diff --git a/src/toolbar/buttons/repl/i18n.ts b/src/toolbar/buttons/repl/i18n.ts index 6c6df61d3..e73a0d2d6 100644 --- a/src/toolbar/buttons/repl/i18n.ts +++ b/src/toolbar/buttons/repl/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/toolbar/buttons/repl/translations/pl.json b/src/toolbar/buttons/repl/translations/pl.json new file mode 100644 index 000000000..e4bde315e --- /dev/null +++ b/src/toolbar/buttons/repl/translations/pl.json @@ -0,0 +1,4 @@ +{ + "label": "REPL", + "tooltip": "Koduj interaktywnie w terminalu (REPL)" +} diff --git a/src/toolbar/buttons/run/i18n.ts b/src/toolbar/buttons/run/i18n.ts index 6c6df61d3..e73a0d2d6 100644 --- a/src/toolbar/buttons/run/i18n.ts +++ b/src/toolbar/buttons/run/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/toolbar/buttons/run/translations/pl.json b/src/toolbar/buttons/run/translations/pl.json new file mode 100644 index 000000000..7006a3a96 --- /dev/null +++ b/src/toolbar/buttons/run/translations/pl.json @@ -0,0 +1,7 @@ +{ + "label": "Uruchom", + "tooltip": { + "action": "Uruchom ten program ({key})", + "progress": "Pobieranie… {percent}" + } +} diff --git a/src/toolbar/buttons/sponsor/i18n.ts b/src/toolbar/buttons/sponsor/i18n.ts index 6c6df61d3..e73a0d2d6 100644 --- a/src/toolbar/buttons/sponsor/i18n.ts +++ b/src/toolbar/buttons/sponsor/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/toolbar/buttons/sponsor/translations/pl.json b/src/toolbar/buttons/sponsor/translations/pl.json new file mode 100644 index 000000000..5b3965f92 --- /dev/null +++ b/src/toolbar/buttons/sponsor/translations/pl.json @@ -0,0 +1,6 @@ +{ + "label": "Sponsor", + "tooltip": { + "action": "Dowiedz się, jak możesz pomóc wesprzeć rozwój Pybricks." + } +} diff --git a/src/toolbar/buttons/stop/i18n.ts b/src/toolbar/buttons/stop/i18n.ts index 6c6df61d3..e73a0d2d6 100644 --- a/src/toolbar/buttons/stop/i18n.ts +++ b/src/toolbar/buttons/stop/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/toolbar/buttons/stop/translations/pl.json b/src/toolbar/buttons/stop/translations/pl.json new file mode 100644 index 000000000..b3da91355 --- /dev/null +++ b/src/toolbar/buttons/stop/translations/pl.json @@ -0,0 +1,4 @@ +{ + "label": "Stop", + "tooltip": "Zatrzymaj wszystko ({key})" +} diff --git a/src/toolbar/buttons/usb/i18n.ts b/src/toolbar/buttons/usb/i18n.ts index b19de94d1..03dc55981 100644 --- a/src/toolbar/buttons/usb/i18n.ts +++ b/src/toolbar/buttons/usb/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/toolbar/buttons/usb/translations/pl.json b/src/toolbar/buttons/usb/translations/pl.json new file mode 100644 index 000000000..755ef0e2d --- /dev/null +++ b/src/toolbar/buttons/usb/translations/pl.json @@ -0,0 +1,8 @@ +{ + "label": "USB", + "tooltip": { + "connect": "Połącz przez USB", + "disconnect": "Rozłącz USB", + "bluetoothConnected": "Bluetooth jest podłączony, rozłącz aby użyć USB" + } +} diff --git a/src/toolbar/i18n.ts b/src/toolbar/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/toolbar/i18n.ts +++ b/src/toolbar/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/toolbar/translations/pl.json b/src/toolbar/translations/pl.json new file mode 100644 index 000000000..7dc24d50f --- /dev/null +++ b/src/toolbar/translations/pl.json @@ -0,0 +1,3 @@ +{ + "label": "Edytor" +} diff --git a/src/tour/i18n.ts b/src/tour/i18n.ts index 47ec27906..e23e3406a 100644 --- a/src/tour/i18n.ts +++ b/src/tour/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/tour/translations/pl.json b/src/tour/translations/pl.json new file mode 100644 index 000000000..8a802d490 --- /dev/null +++ b/src/tour/translations/pl.json @@ -0,0 +1,34 @@ +{ + "back": "Wstecz", + "close": "Zamknij", + "last": "Ostatni", + "next": "Dalej", + "open": "Otwórz okno dialogowe", + "skip": "Pomiń", + "steps": { + "welcome": { + "message": "Witamy w {appName}.", + "action": "Kliknij {next}, aby odkryć kluczowe funkcje." + }, + "newFile": { + "message": "Kliknij przycisk {icon}, aby utworzyć nowy program." + }, + "backupFiles": { + "message": "Nie trać swojej pracy.", + "action": "Kliknij {icon}, aby wykonać kopię zapasową swoich programów." + }, + "flashPybricksFirmware": { + "message": "Aby używać {appName}, musisz zainstalować oprogramowanie układowe Pybricks." + }, + "restoreOfficialFirmware": { + "message": "W każdej chwili możesz przywrócić oficjalne oprogramowanie {lego}." + }, + "connectToHub": { + "message": "Kliknij przycisk Bluetooth, aby się połączyć." + }, + "downloadAndRun": { + "message": "Po połączeniu kliknij przycisk {icon}, aby uruchomić program.", + "runAgain": "Program jest teraz zapisany na hubie. Naciśnij przycisk na hubie, aby uruchomić go ponownie." + } + } +} diff --git a/src/usb/alerts/i18n.ts b/src/usb/alerts/i18n.ts index 1fce2da95..416542799 100644 --- a/src/usb/alerts/i18n.ts +++ b/src/usb/alerts/i18n.ts @@ -4,6 +4,7 @@ import { useI18n as useShopifyI18n } from '@shopify/react-i18n'; import type { TypedI18n } from '../../i18n'; import type translations from './translations/en.json'; +import './translations/pl.json'; export function useI18n(): TypedI18n { // istanbul ignore next: babel-loader rewrites this line diff --git a/src/usb/alerts/translations/pl.json b/src/usb/alerts/translations/pl.json new file mode 100644 index 000000000..d03ef6733 --- /dev/null +++ b/src/usb/alerts/translations/pl.json @@ -0,0 +1,18 @@ +{ + "noWebUsb": { + "message": "Ta przeglądarka nie obsługuje WebUSB lub nie jest włączony.", + "suggestion": "Użyj obsługiwanej przeglądarki takiej jak Google Chrome lub Microsoft Edge.", + "action": "Więcej informacji" + }, + "oldFirmware": { + "message": "Nowa wersja firmware jest dostępna dla tego huba. Zainstaluj najnowszą wersję, aby używać wszystkich nowych funkcji.", + "flashFirmware": { + "label": "Zaktualizuj firmware Pybricks" + } + }, + "newPybricksProfile": { + "message": "Połączony hub używa nowszej wersji profilu komunikacji Pybricks. Niektóre funkcje mogą nie działać poprawnie.", + "versions": "Hub ma wersję {hubVersion}, podczas gdy {app} obsługuje {appVersion}.", + "suggestion": "Zdegraduj firmware huba lub zaktualizuj {app}, aby uniknąć problemów." + } +}