diff --git a/worklenz-frontend/public/locales/en/all-project-list.json b/worklenz-frontend/public/locales/en/all-project-list.json index ab98cb6b8..cd1fbe921 100644 --- a/worklenz-frontend/public/locales/en/all-project-list.json +++ b/worklenz-frontend/public/locales/en/all-project-list.json @@ -30,5 +30,7 @@ "category": "Category", "client": "Client" }, - "noPermission": "You don't have permission to perform this action" + "noPermission": "You don't have permission to perform this action", + "addToFavorites": "Add to favorites", + "removeFromFavorites": "Remove from favorites" } diff --git a/worklenz-frontend/public/locales/en/home.json b/worklenz-frontend/public/locales/en/home.json index cfd513107..2360dc095 100644 --- a/worklenz-frontend/public/locales/en/home.json +++ b/worklenz-frontend/public/locales/en/home.json @@ -58,5 +58,8 @@ "timeLoggedTaskAriaLabel": "Time logged task:", "errorLoadingRecentTasks": "Error loading recent tasks", "errorLoadingTimeLoggedTasks": "Error loading time logged tasks" - } + }, + "clickOpenTaskForm": "Click to open task form", + "addToFavorites": "Add to favorites", + "removeFromFavorites": "Remove from favorites" } diff --git a/worklenz-frontend/public/locales/en/navbar.json b/worklenz-frontend/public/locales/en/navbar.json index a63de500b..63f39709f 100644 --- a/worklenz-frontend/public/locales/en/navbar.json +++ b/worklenz-frontend/public/locales/en/navbar.json @@ -20,9 +20,16 @@ "settings": "Settings", "deleteAccount": "Delete Account", "logOut": "Log Out", + "account": "Account", + "ownedBy": "Owned by:", + "noRunningTimers": "No running timers", + "runningTimers": "Running timers", + "timerError": "Timer error", "notificationsDrawer": { "read": "Read notifications", "unread": "Unread notifications", + "unreadTab": "Unread", + "readTab": "Read", "markAsRead": "Mark as read", "readAndJoin": "Read & Join", "accept": "Accept", diff --git a/worklenz-frontend/public/locales/en/settings/clients.json b/worklenz-frontend/public/locales/en/settings/clients.json index b7fa4dac0..631026797 100644 --- a/worklenz-frontend/public/locales/en/settings/clients.json +++ b/worklenz-frontend/public/locales/en/settings/clients.json @@ -18,5 +18,7 @@ "createClientSuccessMessage": "Create client success!", "createClientErrorMessage": "Create client failed!", "updateClientSuccessMessage": "Update client success!", - "updateClientErrorMessage": "Update client failed!" + "updateClientErrorMessage": "Update client failed!", + "editButton": "Edit", + "deleteButton": "Delete" } diff --git a/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json b/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json index 4aa0cfbb8..4d6b07027 100644 --- a/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json +++ b/worklenz-frontend/public/locales/en/task-drawer/task-drawer.json @@ -125,5 +125,7 @@ "confirmMarkAsDone": "Yes, mark as done", "cancelMarkAsDone": "No, keep current status", "markAsDoneDescription": "You've set the progress to 100%. Would you like to update the task status to \"Done\"?" - } + }, + "todayText": "Today", + "yesterdayText": "Yesterday" } diff --git a/worklenz-frontend/public/locales/en/task-list-filters.json b/worklenz-frontend/public/locales/en/task-list-filters.json index b104052c0..d5de4a96c 100644 --- a/worklenz-frontend/public/locales/en/task-list-filters.json +++ b/worklenz-frontend/public/locales/en/task-list-filters.json @@ -91,5 +91,9 @@ "sortByField": "Sort by {{field}}", "ascendingOrder": "Ascending", "descendingOrder": "Descending", - "currentSort": "Current sort: {{field}} {{order}}" + "currentSort": "Current sort: {{field}} {{order}}", + "dragStatusesHint": "Drag statuses to reorder them within categories or drag between categories to change their type.", + "statusCategoryNote": "Note: Each category must have at least one status. You cannot move a status if it is the only one in its category.", + "dragToReorder": "Drag to reorder", + "selectText": "Select" } diff --git a/worklenz-frontend/public/locales/en/task-management.json b/worklenz-frontend/public/locales/en/task-management.json index 1b771420d..93a8905ad 100644 --- a/worklenz-frontend/public/locales/en/task-management.json +++ b/worklenz-frontend/public/locales/en/task-management.json @@ -35,5 +35,7 @@ "dependencies": "Task has dependencies", "recurring": "Recurring task" } - } + }, + "selectPhase": "Select", + "noData": "No data" } diff --git a/worklenz-frontend/public/locales/pl/404-page.json b/worklenz-frontend/public/locales/pl/404-page.json new file mode 100644 index 000000000..dd8cc77d3 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/404-page.json @@ -0,0 +1,4 @@ +{ + "doesNotExistText": "Przepraszamy, odwiedzona strona nie istnieje.", + "backHomeButton": "Wróć do strony głównej" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/account-setup.json b/worklenz-frontend/public/locales/pl/account-setup.json new file mode 100644 index 000000000..07b519e67 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/account-setup.json @@ -0,0 +1,224 @@ +{ + "continue": "Kontynuuj", + "setupYourAccount": "Skonfiguruj swoje konto.", + "organizationStepTitle": "Nazwij swoją organizację", + "organizationStepWelcome": "Witaj w Worklenz!", + "organizationStepDescription": "Zacznijmy od konfiguracji Twojej organizacji. Będzie to główne miejsce pracy dla Twojego zespołu.", + "organizationStepLabel": "Nazwa organizacji", + "organizationStepPlaceholder": "np. Acme Corporation", + "organizationStepTooltip": "Ta nazwa pojawi się w Twoim obszarze roboczym i będzie można ją później zmienić w ustawieniach.", + "organizationStepNeedIdeas": "Potrzebujesz pomysłów?", + "organizationStepUseDetected": "Użyj wykrytych:", + "organizationStepCharacters": "znaków", + "organizationStepGoodLength": "Dobra długość", + "organizationStepTooShort": "Za krótko", + "organizationStepNamingTips": "Wskazówki dotyczące nazewnictwa", + "organizationStepTip1": "Zachowaj prostotę i łatwość zapamiętania", + "organizationStepTip2": "Odzwierciedl swoją branżę lub wartości", + "organizationStepTip3": "Pomyśl o przyszłym rozwoju", + "organizationStepTip4": "Uczyń ją unikalną i łatwą do brandowania", + "organizationStepSuggestionsTitle": "Sugestie nazw", + "organizationStepCategory1": "Firmy technologiczne", + "organizationStepCategory2": "Agencje kreatywne", + "organizationStepCategory3": "Doradztwo", + "organizationStepCategory4": "Startupy", + "organizationStepSuggestionsNote": "To tylko przykłady, które pomogą Ci zacząć. Wybierz coś, co reprezentuje Twoją organizację.", + "organizationStepPrivacyNote": "Nazwa Twojej organizacji jest prywatna i widoczna tylko dla członków Twojego zespołu.", + "projectStepTitle": "Utwórz swój pierwszy projekt", + "projectStepLabel": "Nad jakim projektem pracujesz obecnie?", + "projectStepPlaceholder": "np. Plan marketingowy", + "tasksStepLabel": "Wpisz kilka zadań, które zamierzasz wykonać w", + "tasksStepAddAnother": "Dodaj kolejne", + "emailPlaceholder": "Adres e-mail", + "invalidEmail": "Wprowadź prawidłowy adres e-mail", + "or": "lub", + "templateButton": "Importuj z szablonu", + "goBack": "Wróć", + "cancel": "Anuluj", + "create": "Utwórz", + "templateDrawerTitle": "Wybierz z szablonów", + "step3InputLabel": "Zaproś e-mailem", + "addAnother": "Dodaj kolejne", + "skipForNow": "Pomiń na razie", + "skipping": "Pomijanie...", + "formTitle": "Utwórz swoje pierwsze zadanie.", + "step3Title": "Zaproś swój zespół do współpracy z", + "maxMembers": " (Możesz zaprosić do 5 członków)", + "maxTasks": " (Możesz utworzyć do 5 zadań)", + "membersStepTitle": "Zaproś swój zespół", + "membersStepDescription": "Dodaj członków zespołu do \"{{organizationName}}\" i rozpocznij współpracę", + "memberPlaceholder": "Członek zespołu {{index}} - Wprowadź adres e-mail", + "validEmailAddress": "Prawidłowy adres e-mail", + "addAnotherTeamMember": "Dodaj kolejnego członka zespołu ({{current}}/{{max}})", + "canInviteLater": "Zawsze możesz zaprosić członków zespołu później", + "skipStepDescription": "Nie masz gotowych adresów e-mail? Nie ma problemu! Możesz pominąć ten krok i zaprosić członków zespołu później z pulpitu nawigacyjnego projektu.", + "orgCategoryTech": "Firmy technologiczne", + "orgCategoryCreative": "Agencje kreatywne", + "orgCategoryConsulting": "Doradztwo", + "orgCategoryStartups": "Startupy", + "namingTip1": "Zachowaj prostotę i łatwość zapamiętania", + "namingTip2": "Odzwierciedl swoją branżę lub wartości", + "namingTip3": "Pomyśl o przyszłym rozwoju", + "namingTip4": "Uczyń ją unikalną i łatwą do brandowania", + "aboutYouTitle": "Opowiedz nam o sobie", + "aboutYouDescription": "Pomóż nam spersonalizować Twoje doświadczenie", + "orgTypeQuestion": "Co najlepiej opisuje Twoją organizację?", + "userRoleQuestion": "Jaka jest Twoja rola?", + "yourNeedsTitle": "Jakie są Twoje główne potrzeby?", + "yourNeedsDescription": "Zaznacz wszystkie, które mają zastosowanie, aby pomóc nam skonfigurować Twój obszar roboczy", + "yourNeedsQuestion": "Jak będziesz przede wszystkim używać Worklenz?", + "useCaseTaskOrg": "Organizuj i śledź zadania", + "useCaseTeamCollab": "Współpracuj bezproblemowo", + "useCaseResourceMgmt": "Zarządzaj czasem i zasobami", + "useCaseClientComm": "Pozostań w kontakcie z klientami", + "useCaseTimeTrack": "Monitoruj godziny projektu", + "useCaseOther": "Coś innego", + "selectedText": "wybrane", + "previousToolsQuestion": "Jakich narzędzi używałeś wcześniej? (Opcjonalnie)", + "discoveryTitle": "Jeszcze jedna rzecz...", + "discoveryDescription": "Pomóż nam zrozumieć, jak odkryłeś Worklenz", + "discoveryQuestion": "Jak o nas usłyszałeś?", + "allSetTitle": "Wszystko gotowe!", + "allSetDescription": "Stwórzmy Twój pierwszy projekt i zacznijmy korzystać z Worklenz", + "surveyCompleteTitle": "Dziękujemy!", + "surveyCompleteDescription": "Twoja opinia pomaga nam ulepszać Worklenz dla wszystkich", + "aboutYouStepName": "O Tobie", + "yourNeedsStepName": "Twoje potrzeby", + "discoveryStepName": "Odkrycie", + "stepProgress": "Krok {step} z 3: {title}", + "projectStepHeader": "Stwórzmy Twój pierwszy projekt", + "projectStepSubheader": "Zacznij od zera lub użyj szablonu, aby przyspieszyć pracę", + "startFromScratch": "Zacznij od zera", + "templateSelected": "Szablon wybrany poniżej", + "quickSuggestions": "Szybkie sugestie:", + "orText": "LUB", + "startWithTemplate": "Zacznij od szablonu", + "clearToSelectTemplate": "Wyczyść nazwę projektu powyżej, aby wybrać szablon", + "templateHeadStart": "Zacznij z gotowymi strukturami projektów", + "browseAllTemplates": "Przeglądaj wszystkie szablony", + "templatesAvailable": "Dostępnych jest ponad 15 szablonów branżowych", + "chooseTemplate": "Wybierz szablon pasujący do typu Twojego projektu", + "createProject": "Utwórz projekt", + "templateSoftwareDev": "Rozwój oprogramowania", + "templateSoftwareDesc": "Sprinty Agile, śledzenie błędów, wydania", + "templateMarketing": "Kampania marketingowa", + "templateMarketingDesc": "Planowanie kampanii, kalendarz treści", + "templateConstruction": "Projekt budowlany", + "templateConstructionDesc": "Fazy, pozwolenia, wykonawcy", + "templateStartup": "Uruchomienie startupu", + "templateStartupDesc": "Rozwój MVP, finansowanie, wzrost", + "tasksStepTitle": "Dodaj swoje pierwsze zadania", + "tasksStepDescription": "Podziel \"{{projectName}}\" na konkretne zadania, aby zacząć", + "taskPlaceholder": "Zadanie {{index}} - np. Co należy zrobić?", + "addAnotherTask": "Dodaj kolejne zadanie ({{current}}/{{max}})", + "surveyStepTitle": "Opowiedz nam o sobie", + "surveyStepLabel": "Pomóż nam spersonalizować Twoje doświadczenie z Worklenz, odpowiadając na kilka pytań.", + "organizationType": "Co najlepiej opisuje Twoją organizację?", + "organizationTypeFreelancer": "Freelancer", + "organizationTypeStartup": "Startup", + "organizationTypeSmallMediumBusiness": "Mała lub średnia firma", + "organizationTypeAgency": "Agencja", + "organizationTypeEnterprise": "Przedsiębiorstwo", + "organizationTypeOther": "Inne", + "userRole": "Jaka jest Twoja rola?", + "userRoleFounderCeo": "Założyciel / CEO", + "userRoleProjectManager": "Menedżer projektu", + "userRoleSoftwareDeveloper": "Programista", + "userRoleDesigner": "Projektant", + "userRoleOperations": "Operacje", + "userRoleOther": "Inne", + "mainUseCases": "Do czego głównie będziesz używać Worklenz?", + "mainUseCasesTaskManagement": "Zarządzanie zadaniami", + "mainUseCasesTeamCollaboration": "Współpraca zespołowa", + "mainUseCasesResourcePlanning": "Planowanie zasobów", + "mainUseCasesClientCommunication": "Komunikacja z klientem i raportowanie", + "mainUseCasesTimeTracking": "Śledzenie czasu", + "mainUseCasesOther": "Inne", + "previousTools": "Jakich narzędzi używałeś przed Worklenz?", + "previousToolsPlaceholder": "np. Trello, Asana, Monday.com", + "howHeardAbout": "Jak usłyszałeś o Worklenz?", + "howHeardAboutGoogleSearch": "Wyszukiwarka Google", + "howHeardAboutTwitter": "Twitter", + "howHeardAboutLinkedin": "LinkedIn", + "howHeardAboutFriendColleague": "Od znajomego lub kolegi", + "howHeardAboutBlogArticle": "Z bloga lub artykułu", + "howHeardAboutOther": "Inne", + "aboutYouStepTitle": "Opowiedz nam o sobie", + "aboutYouStepDescription": "Pomóż nam spersonalizować Twoje doświadczenie", + "yourNeedsStepTitle": "Jakie są Twoje główne potrzeby?", + "yourNeedsStepDescription": "Zaznacz wszystkie, które Cię dotyczą, aby pomóc nam skonfigurować Twoje środowisko pracy", + "selected": "wybrane", + "previousToolsLabel": "Jakich narzędzi używałeś wcześniej? (Opcjonalnie)", + "roleSuggestions": { + "designer": "UI/UX, Grafika, Kreatywność", + "developer": "Frontend, Backend, Full-stack", + "projectManager": "Planowanie, Koordynacja", + "marketing": "Treści, Media Społecznościowe, Wzrost", + "sales": "Rozwój Biznesu, Relacje z Klientami", + "operations": "Administracja, HR, Finanse" + }, + "languages": { + "en": "Angielski", + "es": "Hiszpański", + "pt": "Portugalski", + "de": "Niemiecki", + "alb": "Albański", + "zh": "Chiński uproszczony" + }, + "orgSuggestions": { + "tech": [ + "TechKorporacja", + "Studio Deweloperskie", + "Mistrzowie Kodu", + "Kuźnia Pikseli" + ], + "creative": [ + "Centrum Kreatywności", + "Studio Projektowe", + "Dzieła Marki", + "Sztuki Wizualne" + ], + "consulting": [ + "Grupa Strategiczna", + "Rozwiązania Biznesowe", + "Doradcy Eksperci", + "Partnerzy Rozwoju" + ], + "startup": [ + "Laboratoria Innowacji", + "Prace Przyszłości", + "Spółka Venture", + "Następna Generacja" + ] + }, + "projectSuggestions": { + "freelancer": [ + "Projekt Klienta", + "Aktualizacja Portfolio", + "Marka Osobista" + ], + "startup": [ + "Rozwój MVP", + "Wprowadzenie Produktu", + "Badania Rynku" + ], + "agency": [ + "Kampania Klienta", + "Strategia Marki", + "Przeprojektowanie Strony Internetowej" + ], + "enterprise": [ + "Migracja Systemu", + "Optymalizacja Procesów", + "Szkolenie Zespołu" + ] + }, + "useCaseDescriptions": { + "taskManagement": "Organizuj i śledź zadania", + "teamCollaboration": "Współpracuj bezproblemowo", + "resourcePlanning": "Zarządzaj czasem i zasobami", + "clientCommunication": "Pozostań w kontakcie z klientami", + "timeTracking": "Monitoruj godziny projektu", + "other": "Coś innego" + } +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/admin-center/configuration.json b/worklenz-frontend/public/locales/pl/admin-center/configuration.json new file mode 100644 index 000000000..e27f3c570 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/admin-center/configuration.json @@ -0,0 +1,26 @@ +{ + "billingDetails": "Szczegóły płatności", + "name": "Imię i nazwisko", + "namePlaceholder": "Imię i nazwisko", + "emailAddress": "Adres e-mail", + "emailPlaceholder": "Adres e-mail", + "contactNumber": "Numer kontaktowy", + "phoneNumberPlaceholder": "Numer telefonu", + "phoneValidationError": "Numer telefonu musi składać się dokładnie z 10 cyfr", + "companyDetails": "Dane firmy", + "companyName": "Nazwa firmy", + "companyNamePlaceholder": "Nazwa firmy", + "addressLine01": "Adres, linia 1", + "addressLine01Placeholder": "Adres, linia 1", + "addressLine02": "Adres, linia 2", + "addressLine02Placeholder": "Adres, linia 2", + "country": "Kraj", + "countryPlaceholder": "Kraj", + "city": "Miasto", + "cityPlaceholder": "Miasto", + "state": "Województwo", + "statePlaceholder": "Województwo", + "postalCode": "Kod pocztowy", + "postalCodePlaceholder": "Kod pocztowy", + "save": "Zapisz" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/admin-center/current-bill.json b/worklenz-frontend/public/locales/pl/admin-center/current-bill.json new file mode 100644 index 000000000..fad8f252b --- /dev/null +++ b/worklenz-frontend/public/locales/pl/admin-center/current-bill.json @@ -0,0 +1,126 @@ +{ + "title": "Rozliczenia", + "currentBill": "Bieżący rachunek", + "configuration": "Konfiguracja", + "currentPlanDetails": "Szczegóły bieżącego planu", + "upgradePlan": "Uaktualnij plan", + "cardBodyText01": "Darmowy okres próbny", + "cardBodyText02": "(Twój plan próbny wygasa za 1 miesiąc i 19 dni)", + "redeemCode": "Zrealizuj kod", + "accountStorage": "Pamięć konta", + "used": "Użyto:", + "remaining": "Pozostało:", + "charges": "Opłaty", + "tooltip": "Opłaty za bieżący cykl rozliczeniowy", + "description": "Opis", + "billingPeriod": "Okres rozliczeniowy", + "billStatus": "Status rachunku", + "perUserValue": "Wartość na użytkownika", + "users": "Użytkownicy", + "amount": "Kwota", + "invoices": "Faktury", + "transactionId": "Identyfikator transakcji", + "transactionDate": "Data transakcji", + "paymentMethod": "Metoda płatności", + "status": "Status", + "ltdUsers": "Możesz dodać do {{ltd_users}} użytkowników.", + "totalSeats": "Łączna liczba miejsc", + "availableSeats": "Dostępne miejsca", + "addMoreSeats": "Dodaj więcej miejsc", + "drawerTitle": "Zrealizuj kod", + "label": "Zrealizuj kod", + "drawerPlaceholder": "Wprowadź swój kod realizacji", + "redeemSubmit": "Prześlij", + "modalTitle": "Wybierz najlepszy plan dla swojego zespołu", + "seatLabel": "Liczba miejsc", + "freePlan": "Plan darmowy", + "startup": "Startup", + "business": "Biznes", + "tag": "Najpopularniejszy", + "enterprise": "Enterprise", + "freeSubtitle": "darmowy na zawsze", + "freeUsers": "Najlepszy do użytku osobistego", + "freeText01": "100MB pamięci", + "freeText02": "3 projekty", + "freeText03": "5 członków zespołu", + "startupSubtitle": "STAŁA STAWKA / miesiąc", + "startupUsers": "Do 15 użytkowników", + "startupText01": "25GB pamięci", + "startupText02": "Nieograniczone aktywne projekty", + "startupText03": "Harmonogram", + "startupText04": "Raportowanie", + "startupText05": "Subskrybuj projekty", + "businessSubtitle": "użytkownik / miesiąc", + "businessUsers": "16 - 200 użytkowników", + "enterpriseUsers": "200 - 500+ użytkowników", + "footerTitle": "Prosimy o podanie numeru kontaktowego, pod którym możemy się z Państwem skontaktować.", + "footerLabel": "Numer kontaktowy", + "footerButton": "Skontaktuj się z nami", + "redeemCodePlaceHolder": "Wprowadź swój kod realizacji", + "submit": "Prześlij", + "trialPlan": "Darmowy okres próbny", + "trialExpireDate": "Ważny do {{trial_expire_date}}", + "trialExpired": "Twój darmowy okres próbny wygasł {{trial_expire_string}}", + "trialInProgress": "Twój darmowy okres próbny wygasa {{trial_expire_string}}", + "required": "To pole jest wymagane", + "invalidCode": "Nieprawidłowy kod", + "selectPlan": "Wybierz najlepszy plan dla swojego zespołu", + "changeSubscriptionPlan": "Zmień swój plan subskrypcji", + "noOfSeats": "Liczba miejsc", + "annualPlan": "Pro - Roczny", + "monthlyPlan": "Pro - Miesięczny", + "freeForever": "Darmowy na zawsze", + "bestForPersonalUse": "Najlepszy do użytku osobistego", + "storage": "Pamięć", + "projects": "Projekty", + "teamMembers": "Członkowie zespołu", + "unlimitedTeamMembers": "Nieograniczona liczba członków zespołu", + "unlimitedActiveProjects": "Nieograniczone aktywne projekty", + "schedule": "Harmonogram", + "reporting": "Raportowanie", + "subscribeToProjects": "Subskrybuj projekty", + "billedAnnually": "Rozliczane rocznie", + "billedMonthly": "Rozliczane miesięcznie", + "pausePlan": "Wstrzymaj plan", + "resumePlan": "Wznów plan", + "changePlan": "Zmień plan", + "cancelPlan": "Anuluj plan", + "perMonthPerUser": "za użytkownika/miesiąc", + "viewInvoice": "Wyświetl fakturę", + "switchToFreePlan": "Przejdź na plan darmowy", + "expirestoday": "dzisiaj", + "expirestomorrow": "jutro", + "expiredDayAgo": "{{days}} dzień temu", + "expiredDaysAgo": "{{days}} dni temu", + "continueWith": "Kontynuuj z {{plan}}", + "changeToPlan": "Zmień na {{plan}}", + "creditPlan": "Plan kredytowy", + "customPlan": "Plan niestandardowy", + "planValidTill": "Twój plan jest ważny do {{date}}", + "purchaseSeatsText": "Aby kontynuować, musisz zakupić dodatkowe miejsca.", + "currentSeatsText": "Obecnie masz dostępne {{seats}} miejsc.", + "selectSeatsText": "Wybierz liczbę dodatkowych miejsc do zakupu.", + "purchase": "Zakup", + "contactSales": "Skontaktuj się z działem sprzedaży", + "submitSuccess": "Kod zrealizowany pomyślnie!", + "submitSuccessDescription": "Twoje konto zostało zaktualizowane o nowe środki.", + "percentUsed": "% Użyto", + "sizeUnits": { + "bytes": "Bajty", + "kb": "KB", + "mb": "MB", + "gb": "GB", + "tb": "TB" + }, + "seatPerMonth": "miejsce / miesiąc", + "totalPrice": "Całkowita kwota $", + "tryForFree": "Wypróbuj za darmo", + "subscriptionUpdateSuccess": "Subskrypcja zaktualizowana pomyślnie!", + "paymentProcessorError": "Nie udało się załadować procesora płatności", + "seatsLabel": "Miejsca:", + "requiredField": "*", + "purchaseSeatsTextSingle": "Aby kontynuować, musisz zakupić dodatkowe miejsce.", + "singleUserNote": "Obecnie masz dostępne 1 miejsce.", + "selectSeatsTextSingle": "Wybierz liczbę dodatkowych miejsc do zakupu.", + "phoneNumberPattern": "500123456" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/admin-center/overview.json b/worklenz-frontend/public/locales/pl/admin-center/overview.json new file mode 100644 index 000000000..b1504772b --- /dev/null +++ b/worklenz-frontend/public/locales/pl/admin-center/overview.json @@ -0,0 +1,11 @@ +{ + "overview": "Przegląd", + "name": "Nazwa organizacji", + "owner": "Właściciel organizacji", + "admins": "Administratorzy organizacji", + "contactNumber": "Dodaj numer kontaktowy", + "edit": "Edytuj", + "emailAddress": "Adres e-mail", + "enterOrganizationName": "Wprowadź nazwę organizacji", + "ownerSuffix": " (Właściciel)" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/admin-center/projects.json b/worklenz-frontend/public/locales/pl/admin-center/projects.json new file mode 100644 index 000000000..4e9181ca4 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/admin-center/projects.json @@ -0,0 +1,12 @@ +{ + "membersCount": "Liczba członków", + "createdAt": "Utworzono o", + "projectName": "Nazwa projektu", + "teamName": "Nazwa zespołu", + "refreshProjects": "Odśwież projekty", + "searchPlaceholder": "Szukaj według nazwy projektu", + "deleteProject": "Czy na pewno chcesz usunąć ten projekt?", + "confirm": "Potwierdź", + "cancel": "Anuluj", + "delete": "Usuń projekt" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/admin-center/sidebar.json b/worklenz-frontend/public/locales/pl/admin-center/sidebar.json new file mode 100644 index 000000000..8771716aa --- /dev/null +++ b/worklenz-frontend/public/locales/pl/admin-center/sidebar.json @@ -0,0 +1,8 @@ +{ + "overview": "Przegląd", + "users": "Użytkownicy", + "teams": "Zespoły", + "billing": "Rozliczenia", + "projects": "Projekty", + "adminCenter": "Centrum administratora" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/admin-center/teams.json b/worklenz-frontend/public/locales/pl/admin-center/teams.json new file mode 100644 index 000000000..9c08a7228 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/admin-center/teams.json @@ -0,0 +1,35 @@ +{ + "title": "Zespoły", + "subtitle": "zespoły", + "tooltip": "Odśwież zespoły", + "placeholder": "Szukaj po nazwie", + "addTeam": "Dodaj zespół", + "team": "Zespół", + "membersCount": "Liczba członków", + "members": "Członkowie", + "drawerTitle": "Utwórz nowy zespół", + "label": "Nazwa zespołu", + "drawerPlaceholder": "Nazwa", + "create": "Utwórz", + "delete": "Usuń", + "settings": "Ustawienia", + "popTitle": "Czy na pewno?", + "message": "Proszę wprowadzić nazwę", + "teamSettings": "Ustawienia zespołu", + "teamName": "Nazwa zespołu", + "teamDescription": "Opis zespołu", + "teamMembers": "Członkowie zespołu", + "teamMembersCount": "Liczba członków zespołu", + "teamMembersPlaceholder": "Szukaj po nazwie", + "addMember": "Dodaj członka", + "add": "Dodaj", + "update": "Aktualizuj", + "teamNamePlaceholder": "Nazwa zespołu", + "user": "Użytkownik", + "role": "Rola", + "owner": "Właściciel", + "admin": "Administrator", + "member": "Członek", + "cannotChangeOwnerRole": "Rola właściciela nie może zostać zmieniona", + "pendingInvitation": "Oczekujące zaproszenie" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/admin-center/users.json b/worklenz-frontend/public/locales/pl/admin-center/users.json new file mode 100644 index 000000000..67c118c98 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/admin-center/users.json @@ -0,0 +1,10 @@ +{ + "title": "Użytkownicy", + "subTitle": "użytkownicy", + "placeholder": "Szukaj po nazwie", + "user": "Użytkownik", + "email": "E-mail", + "lastActivity": "Ostatnia aktywność", + "refresh": "Odśwież użytkowników", + "name": "Nazwa" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/all-project-list.json b/worklenz-frontend/public/locales/pl/all-project-list.json new file mode 100644 index 000000000..c6d3d952d --- /dev/null +++ b/worklenz-frontend/public/locales/pl/all-project-list.json @@ -0,0 +1,36 @@ +{ + "name": "Nazwa", + "client": "Klient", + "category": "Kategoria", + "status": "Status", + "tasksProgress": "Postęp zadań", + "updated_at": "Ostatnia aktualizacja", + "members": "Członkowie", + "setting": "Ustawienia", + "projects": "Projekty", + "refreshProjects": "Odśwież projekty", + "all": "Wszystkie", + "favorites": "Ulubione", + "archived": "Zarchiwizowane", + "placeholder": "Szukaj po nazwie", + "archive": "Archiwizuj", + "unarchive": "Przywróć z archiwum", + "archiveConfirm": "Czy na pewno chcesz zarchiwizować ten projekt?", + "unarchiveConfirm": "Czy na pewno chcesz przywrócić ten projekt z archiwum?", + "yes": "Tak", + "no": "Nie", + "clickToFilter": "Kliknij, aby filtrować według", + "noProjects": "Nie znaleziono projektów", + "addToFavourites": "Dodaj do ulubionych", + "list": "Lista", + "group": "Grupa", + "listView": "Widok listy", + "groupView": "Widok grup", + "groupBy": { + "category": "Kategoria", + "client": "Klient" + }, + "noPermission": "Nie masz uprawnień do wykonania tej akcji", + "addToFavorites": "Dodaj do ulubionych", + "removeFromFavorites": "Usuń z ulubionych" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/auth/auth-common.json b/worklenz-frontend/public/locales/pl/auth/auth-common.json new file mode 100644 index 000000000..c6a954e24 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/auth/auth-common.json @@ -0,0 +1,5 @@ +{ + "loggingOut": "Wylogowywanie...", + "authenticating": "Uwierzytelnianie...", + "gettingThingsReady": "Przygotowywanie wszystkiego dla Ciebie..." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/auth/forgot-password.json b/worklenz-frontend/public/locales/pl/auth/forgot-password.json new file mode 100644 index 000000000..41a54b29a --- /dev/null +++ b/worklenz-frontend/public/locales/pl/auth/forgot-password.json @@ -0,0 +1,12 @@ +{ + "headerDescription": "Zresetuj swoje hasło", + "emailLabel": "E-mail", + "emailPlaceholder": "Wprowadź swój adres e-mail", + "emailRequired": "Proszę wprowadzić swój adres e-mail!", + "resetPasswordButton": "Zresetuj hasło", + "returnToLoginButton": "Wróć do logowania", + "passwordResetSuccessMessage": "Link do resetowania hasła został wysłany na Twój adres e-mail.", + "orText": "LUB", + "successTitle": "Instrukcje resetowania wysłane!", + "successMessage": "Informacje dotyczące resetowania zostały wysłane na Twój adres e-mail. Proszę sprawdzić swoją skrzynkę." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/auth/login.json b/worklenz-frontend/public/locales/pl/auth/login.json new file mode 100644 index 000000000..3fc78008b --- /dev/null +++ b/worklenz-frontend/public/locales/pl/auth/login.json @@ -0,0 +1,27 @@ +{ + "headerDescription": "Zaloguj się do swojego konta", + "emailLabel": "E-mail", + "emailPlaceholder": "Wprowadź swój e-mail", + "emailRequired": "Proszę wprowadzić swój e-mail!", + "passwordLabel": "Hasło", + "passwordPlaceholder": "Wprowadź swoje hasło", + "passwordRequired": "Proszę wprowadzić swoje hasło!", + "rememberMe": "Zapamiętaj mnie", + "loginButton": "Zaloguj się", + "signupButton": "Zarejestruj się", + "forgotPasswordButton": "Nie pamiętasz hasła?", + "signInWithGoogleButton": "Zaloguj się przez Google", + "dontHaveAccountText": "Nie masz konta?", + "orText": "LUB", + "successMessage": "Zalogowano pomyślnie!", + "loginError": "Logowanie nie powiodło się", + "googleLoginError": "Logowanie przez Google nie powiodło się", + "validationMessages": { + "email": "Proszę wprowadzić prawidłowy adres e-mail", + "password": "Hasło musi mieć co najmniej 8 znaków" + }, + "errorMessages": { + "loginErrorTitle": "Logowanie nie powiodło się", + "loginErrorMessage": "Proszę sprawdzić swój e-mail i hasło i spróbować ponownie" + } +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/auth/signup.json b/worklenz-frontend/public/locales/pl/auth/signup.json new file mode 100644 index 000000000..4bf40c6b6 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/auth/signup.json @@ -0,0 +1,31 @@ +{ + "headerDescription": "Zarejestruj się, aby rozpocząć", + "nameLabel": "Imię i nazwisko", + "namePlaceholder": "Wprowadź swoje imię i nazwisko", + "nameRequired": "Proszę wprowadzić swoje imię i nazwisko!", + "nameMinCharacterRequired": "Imię i nazwisko musi mieć co najmniej 4 znaki!", + "emailLabel": "E-mail", + "emailPlaceholder": "Wprowadź swój adres e-mail", + "emailRequired": "Proszę wprowadzić swój adres e-mail!", + "passwordLabel": "Hasło", + "passwordGuideline": "Hasło musi mieć co najmniej 8 znaków, zawierać wielkie i małe litery, cyfrę oraz znak specjalny.", + "passwordPlaceholder": "Wprowadź swoje hasło", + "passwordRequired": "Proszę wprowadzić swoje hasło!", + "passwordMinCharacterRequired": "Hasło musi mieć co najmniej 8 znaków!", + "passwordMaxCharacterRequired": "Hasło może mieć maksymalnie 32 znaki!", + "passwordPatternRequired": "Hasło nie spełnia wymagań!", + "strongPasswordPlaceholder": "Wprowadź silniejsze hasło", + "passwordValidationAltText": "Hasło musi zawierać co najmniej 8 znaków, w tym wielkie i małe litery, cyfrę oraz symbol.", + "signupSuccessMessage": "Rejestracja zakończona pomyślnie!", + "privacyPolicyLink": "Polityka prywatności", + "termsOfUseLink": "Warunki użytkowania", + "bySigningUpText": "Rejestrując się, zgadzasz się na nasze", + "andText": "i", + "signupButton": "Zarejestruj się", + "signInWithGoogleButton": "Zarejestruj się przez Google", + "alreadyHaveAccountText": "Masz już konto?", + "loginButton": "Zaloguj się", + "orText": "LUB", + "reCAPTCHAVerificationError": "Błąd weryfikacji reCAPTCHA", + "reCAPTCHAVerificationErrorMessage": "Nie udało nam się zweryfikować Twojego reCAPTCHA. Spróbuj ponownie." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/auth/verify-reset-email.json b/worklenz-frontend/public/locales/pl/auth/verify-reset-email.json new file mode 100644 index 000000000..83c172a6d --- /dev/null +++ b/worklenz-frontend/public/locales/pl/auth/verify-reset-email.json @@ -0,0 +1,14 @@ +{ + "title": "Zweryfikuj e-mail resetujący", + "description": "Wprowadź swoje nowe hasło", + "placeholder": "Wprowadź swoje nowe hasło", + "confirmPasswordPlaceholder": "Potwierdź swoje nowe hasło", + "passwordHint": "Minimum 8 znaków, z dużymi i małymi literami, cyfrą i symbolem.", + "resetPasswordButton": "Zresetuj hasło", + "orText": "Lub", + "resendResetEmail": "Wyślij ponownie e-mail resetujący", + "passwordRequired": "Proszę wprowadzić swoje nowe hasło", + "returnToLoginButton": "Wróć do logowania", + "confirmPasswordRequired": "Proszę potwierdzić swoje nowe hasło", + "passwordMismatch": "Hasła nie są zgodne" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/common.json b/worklenz-frontend/public/locales/pl/common.json new file mode 100644 index 000000000..4a0039071 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/common.json @@ -0,0 +1,69 @@ +{ + "login-success": "Logowanie pomyślne!", + "login-failed": "Logowanie nieudane. Sprawdź swoje dane uwierzytelniające i spróbuj ponownie.", + "signup-success": "Rejestracja pomyślna! Witamy na pokładzie.", + "signup-failed": "Rejestracja nieudana. Upewnij się, że wszystkie wymagane pola są wypełnione i spróbuj ponownie.", + "reconnecting": "Ponowne łączenie z serwerem...", + "connection-lost": "Nie udało się połączyć z serwerem. Sprawdź swoje połączenie internetowe.", + "connection-restored": "Pomyślnie połączono z serwerem", + "cancel": "Anuluj", + "update-available": "Dostępna aktualizacja Worklenz!", + "update-description": "Dostępna jest nowa wersja Worklenz z najnowszymi funkcjami i ulepszeniami.", + "update-instruction": "Aby uzyskać najlepsze wrażenia, odśwież stronę, aby zastosować nowe zmiany.", + "update-whats-new": "💡 <1>Co nowego: Zwiększona wydajność, poprawki błędów i ulepszone doświadczenie użytkownika", + "update-now": "Zaktualizuj teraz", + "update-later": "Później", + "updating": "Aktualizowanie...", + "license-expired-title": "Subskrypcja wygasła", + "license-expired-subtitle": "Twoja subskrypcja Worklenz wygasła. Odnów ją, aby nadal korzystać ze wszystkich funkcji.", + "license-expired-trial-title": "Okres próbny wygasł", + "license-expired-trial-subtitle": "Twój okres próbny Worklenz wygasł. Uaktualnij, aby nadal korzystać ze wszystkich funkcji.", + "license-expired-custom-title": "Plan niestandardowy wygasł", + "license-expired-custom-subtitle": "Twój plan niestandardowy wygasł. Skontaktuj się z pomocą techniczną lub odnów, aby kontynuować.", + "license-expired-features": "Odnów teraz, aby nadal korzystać z:", + "license-expired-trial-features": "Uaktualnij teraz, aby odblokować:", + "license-expired-custom-features": "Skontaktuj się z pomocą techniczną, aby kontynuować z:", + "license-expired-feature-1": "✓ Nieograniczone projekty i zadania", + "license-expired-feature-2": "✓ Zaawansowane raportowanie i analityka", + "license-expired-feature-3": "✓ Funkcje współpracy zespołowej", + "license-expired-feature-4": "✓ Priorytetowe wsparcie", + "license-expired-upgrade": "Odnów teraz", + "license-expired-trial-upgrade": "Uaktualnij teraz", + "license-expired-custom-upgrade": "Skontaktuj się z pomocą techniczną", + "license-expired-contacting-support": "Łączenie z pomocą techniczną...", + "license-expired-message-sent": "Wiadomość wysłana ✓", + "license-expired-days-remaining_one": "Pozostał {{days}} dzień okresu próbnego", + "license-expired-days-remaining_few": "Pozostały {{days}} dni okresu próbnego", + "license-expired-days-remaining_many": "Pozostało {{days}} dni okresu próbnego", + "license-expired-days-remaining_other": "Pozostało {{days}} dni okresu próbnego", + "trial-expiring-soon_one": "Twój okres próbny wygasa za {{days}} dzień", + "trial-expiring-soon_few": "Twój okres próbny wygasa za {{days}} dni", + "trial-expiring-soon_many": "Twój okres próbny wygasa za {{days}} dni", + "trial-expiring-soon_other": "Twój okres próbny wygasa za {{days}} dni", + "trial-expiring-today": "Twój okres próbny wygasa dzisiaj!", + "trial-expiring-upgrade": "Uaktualnij teraz, aby zachować wszystkie swoje dane i kontynuować bez przerwy", + "trial-badge-days": "Pozostało {{days}} dni", + "trial-badge-today": "Ostatni dzień!", + "trial-badge-hours": "Pozostało {{hours}} godz.", + "trial-alert-admin-note": "Nadal możesz uzyskać dostęp do Centrum Administracyjnego, aby zarządzać swoją subskrypcją", + "trial-alert-dismiss": "Odrzuć na dziś", + "switch-team-to-continue": "Przełącz zespół, aby kontynuować", + "current-team": "Obecny zespół", + "select-team": "Wybierz zespół", + "owned-by": "Właściciel", + "switch-team-active-subscription": "Przełącz się na zespół z aktywną subskrypcją, aby kontynuować pracę", + "or": "lub", + "license-expiring-soon_one": "Twoja licencja wygasa za {{days}} dzień", + "license-expiring-soon_few": "Twoja licencja wygasa za {{days}} dni", + "license-expiring-soon_many": "Twoja licencja wygasa za {{days}} dni", + "license-expiring-soon_other": "Twoja licencja wygasa za {{days}} dni", + "license-expiring-today": "Twoja licencja wygasa dzisiaj!", + "license-expired-grace-period_one": "Twoja licencja wygasła. Pozostał {{days}} dzień okresu karencji", + "license-expired-grace-period_few": "Twoja licencja wygasła. Pozostały {{days}} dni okresu karencji", + "license-expired-grace-period_many": "Twoja licencja wygasła. Pozostało {{days}} dni okresu karencji", + "license-expired-grace-period_other": "Twoja licencja wygasła. Pozostało {{days}} dni okresu karencji", + "license-expiring-upgrade": "Odnów teraz, aby zachować wszystkie swoje dane i kontynuować bez przerwy", + "license-badge-days": "Pozostało {{days}} dni", + "license-badge-today": "Ostatni dzień!", + "license-badge-hours": "Pozostało {{hours}} godz." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/create-first-project-form.json b/worklenz-frontend/public/locales/pl/create-first-project-form.json new file mode 100644 index 000000000..3dccda95a --- /dev/null +++ b/worklenz-frontend/public/locales/pl/create-first-project-form.json @@ -0,0 +1,13 @@ +{ + "formTitle": "Utwórz swój pierwszy projekt", + "inputLabel": "Nad jakim projektem pracujesz w tej chwili?", + "or": "lub", + "templateButton": "Importuj z szablonu", + "createFromTemplate": "Utwórz z szablonu", + "goBack": "Wróć", + "continue": "Kontynuuj", + "cancel": "Anuluj", + "create": "Utwórz", + "templateDrawerTitle": "Wybierz z szablonów", + "createProject": "Utwórz projekt" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/create-first-tasks.json b/worklenz-frontend/public/locales/pl/create-first-tasks.json new file mode 100644 index 000000000..65da7fb2d --- /dev/null +++ b/worklenz-frontend/public/locales/pl/create-first-tasks.json @@ -0,0 +1,7 @@ +{ + "formTitle": "Utwórz swoje pierwsze zadanie.", + "inputLable": "Wpisz kilka zadań, które zamierzasz wykonać w", + "addAnother": "Dodaj kolejne", + "goBack": "Wróć", + "continue": "Kontynuuj" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/home.json b/worklenz-frontend/public/locales/pl/home.json new file mode 100644 index 000000000..010ee3b7c --- /dev/null +++ b/worklenz-frontend/public/locales/pl/home.json @@ -0,0 +1,65 @@ +{ + "todoList": { + "title": "Lista zadań", + "refreshTasks": "Odśwież zadania", + "addTask": "+ Dodaj zadanie", + "noTasks": "Brak zadań", + "pressEnter": "Naciśnij", + "toCreate": "aby utworzyć.", + "markAsDone": "Oznacz jako wykonane" + }, + "projects": { + "title": "Projekty", + "refreshProjects": "Odśwież projekty", + "noRecentProjects": "Obecnie nie jesteś przypisany do żadnego projektu.", + "noFavouriteProjects": "Żadne projekty nie zostały oznaczone jako ulubione.", + "recent": "Ostatnie", + "favourites": "Ulubione" + }, + "tasks": { + "assignedToMe": "Przypisane do mnie", + "assignedByMe": "Przypisane przeze mnie", + "all": "Wszystkie", + "today": "Dziś", + "upcoming": "Nadchodzące", + "overdue": "Zaległe", + "noDueDate": "Brak terminu", + "noTasks": "Brak zadań do wyświetlenia.", + "addTask": "+ Dodaj zadanie", + "name": "Nazwa", + "project": "Projekt", + "status": "Status", + "dueDate": "Termin", + "dueDatePlaceholder": "Ustaw termin", + "tomorrow": "Jutro", + "nextWeek": "Następny tydzień", + "nextMonth": "Następny miesiąc", + "projectRequired": "Proszę wybrać projekt", + "pressTabToSelectDueDateAndProject": "Naciśnij Tab, aby wybrać termin i projekt", + "dueOn": "Zadania do wykonania na", + "taskRequired": "Proszę dodać zadanie", + "list": "Lista", + "calendar": "Kalendarz", + "tasks": "Zadania", + "refresh": "Odśwież", + "recentActivity": "Ostatnia aktywność", + "recentTasks": "Ostatnie zadania", + "recentTasksSegment": "Ostatnie zadania", + "timeLogged": "Zalogowany czas", + "timeLoggedSegment": "Zalogowany czas", + "noRecentTasks": "Brak ostatnich zadań", + "noTimeLoggedTasks": "Brak zadań z zalogowanym czasem", + "activityTag": "Aktywność", + "timeLogTag": "Rejestr czasu", + "timerTag": "Minutnik", + "activitySingular": "aktywność", + "activityPlural": "aktywności", + "recentTaskAriaLabel": "Ostatnie zadanie:", + "timeLoggedTaskAriaLabel": "Zadanie z zalogowanym czasem:", + "errorLoadingRecentTasks": "Błąd ładowania ostatnich zadań", + "errorLoadingTimeLoggedTasks": "Błąd ładowania zadań z zalogowanym czasem" + }, + "clickOpenTaskForm": "Kliknij, aby otworzyć zadanie", + "addToFavorites": "Dodaj do ulubionych", + "removeFromFavorites": "Usuń z ulubionych" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/invite-initial-team-members.json b/worklenz-frontend/public/locales/pl/invite-initial-team-members.json new file mode 100644 index 000000000..0172feaa6 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/invite-initial-team-members.json @@ -0,0 +1,8 @@ +{ + "formTitle": "Zaproś swój zespół do współpracy", + "inputLable": "Zaproś e-mailem", + "addAnother": "Dodaj kolejny", + "goBack": "Wróć", + "continue": "Kontynuuj", + "skipForNow": "Pomiń na razie" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/kanban-board.json b/worklenz-frontend/public/locales/pl/kanban-board.json new file mode 100644 index 000000000..a44dbb219 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/kanban-board.json @@ -0,0 +1,45 @@ +{ + "rename": "Zmień nazwę", + "delete": "Usuń", + "addTask": "Dodaj zadanie", + "addSectionButton": "Dodaj sekcję", + "changeCategory": "Zmień kategorię", + "deleteTooltip": "Usuń", + "deleteConfirmationTitle": "Czy na pewno?", + "deleteConfirmationOk": "Tak", + "deleteConfirmationCancel": "Anuluj", + "deleteTaskTitle": "Usuń zadanie", + "deleteTaskContent": "Czy na pewno chcesz usunąć to zadanie? Tej operacji nie można cofnąć.", + "deleteTaskConfirm": "Usuń", + "deleteTaskCancel": "Anuluj", + "deleteStatusTitle": "Usuń status", + "deleteStatusContent": "Czy na pewno chcesz usunąć ten status? Tej operacji nie można cofnąć.", + "deletePhaseTitle": "Usuń fazę", + "deletePhaseContent": "Czy na pewno chcesz usunąć tę fazę? Tej operacji nie można cofnąć.", + "dueDate": "Termin", + "cancel": "Anuluj", + "today": "Dziś", + "tomorrow": "Jutro", + "assignToMe": "Przypisz do mnie", + "archive": "Archiwizuj", + "newTaskNamePlaceholder": "Wpisz nazwę zadania", + "newSubtaskNamePlaceholder": "Wpisz nazwę podzadania", + "untitledSection": "Sekcja bez tytułu", + "unmapped": "Nieprzypisane", + "clickToChangeDate": "Kliknij, aby zmienić datę", + "noDueDate": "Brak terminu", + "save": "Zapisz", + "clear": "Wyczyść", + "nextWeek": "Następny tydzień", + "noSubtasks": "Brak podzadań", + "showSubtasks": "Pokaż podzadania", + "hideSubtasks": "Ukryj podzadania", + "errorLoadingTasks": "Błąd ładowania zadań", + "noTasksFound": "Nie znaleziono zadań", + "loadingFilters": "Ładowanie filtrów...", + "failedToUpdateColumnOrder": "Nie udało się zaktualizować kolejności kolumn", + "failedToUpdatePhaseOrder": "Nie udało się zaktualizować kolejności faz", + "pleaseTryAgain": "Spróbuj ponownie", + "taskNotCompleted": "Zadanie nie jest ukończone", + "completeTaskDependencies": "Proszę ukończyć zależności zadania przed kontynuowaniem" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/license-expired.json b/worklenz-frontend/public/locales/pl/license-expired.json new file mode 100644 index 000000000..140206937 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/license-expired.json @@ -0,0 +1,6 @@ +{ + "title": "Twój okres próbny Worklenz wygasł!", + "subtitle": "Proszę, uaktualnij teraz.", + "button": "Uaktualnij teraz", + "checking": "Sprawdzanie statusu subskrypcji..." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/navbar.json b/worklenz-frontend/public/locales/pl/navbar.json new file mode 100644 index 000000000..cadf15eb2 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/navbar.json @@ -0,0 +1,39 @@ +{ + "logoAlt": "Logo Worklenz", + "home": "Strona główna", + "projects": "Projekty", + "schedule": "Harmonogram", + "reporting": "Raportowanie", + "clients": "Klienci", + "teams": "Zespoły", + "labels": "Etykiety", + "jobTitles": "Stanowiska", + "upgradePlan": "Uaktualnij plan", + "upgradePlanTooltip": "Uaktualnij plan", + "invite": "Zaproś", + "inviteTooltip": "Zaproś członków zespołu do dołączenia", + "switchTeamTooltip": "Zmień zespół", + "help": "Pomoc", + "notificationTooltip": "Wyświetl powiadomienia", + "profileTooltip": "Wyświetl profil", + "adminCenter": "Centrum administratora", + "settings": "Ustawienia", + "deleteAccount": "Usuń konto", + "logOut": "Wyloguj", + "account": "Konto", + "ownedBy": "Właściciel:", + "noRunningTimers": "Brak aktywnych minutników", + "runningTimers": "Aktywne minutniki", + "timerError": "Błąd minutnika", + "notificationsDrawer": { + "read": "Przeczytane", + "unread": "Nieprzeczytane", + "unreadTab": "Nieprzeczytane", + "readTab": "Przeczytane", + "markAsRead": "Oznacz jako przeczytane", + "readAndJoin": "Przeczytaj i dołącz", + "accept": "Akceptuj", + "acceptAndJoin": "Akceptuj i dołącz", + "noNotifications": "Brak powiadomień" + } +} diff --git a/worklenz-frontend/public/locales/pl/organization-name-form.json b/worklenz-frontend/public/locales/pl/organization-name-form.json new file mode 100644 index 000000000..bddbc30f2 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/organization-name-form.json @@ -0,0 +1,5 @@ +{ + "nameYourOrganization": "Nazwij swoją organizację.", + "worklenzAccountTitle": "Wybierz nazwę dla swojego konta Worklenz.", + "continue": "Kontynuuj" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/phases-drawer.json b/worklenz-frontend/public/locales/pl/phases-drawer.json new file mode 100644 index 000000000..b6e077d5b --- /dev/null +++ b/worklenz-frontend/public/locales/pl/phases-drawer.json @@ -0,0 +1,24 @@ +{ + "configurePhases": "Konfiguruj Fazy", + "configure": "Konfiguruj", + "phaseLabel": "Etykieta Fazy", + "enterPhaseName": "Wprowadź nazwę fazy", + "addOption": "Dodaj Opcję", + "phaseOptions": "Opcje Fazy", + "optionsText": "Opcje", + "dragToReorderPhases": "Przeciągnij fazy, aby zmienić ich kolejność. Każda faza może mieć inny kolor.", + "enterNewPhaseName": "Wprowadź nową nazwę fazy...", + "addPhase": "Dodaj Fazę", + "noPhasesFound": "Nie znaleziono faz", + "no": "Nie", + "found": "znaleziono", + "deletePhase": "Usuń Fazę", + "deletePhaseConfirm": "Czy na pewno chcesz usunąć tę fazę? Tej operacji nie można cofnąć.", + "rename": "Zmień nazwę", + "delete": "Usuń", + "create": "Utwórz", + "cancel": "Anuluj", + "selectColor": "Wybierz kolor", + "managePhases": "Zarządzaj Fazami", + "close": "Zamknij" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-drawer.json b/worklenz-frontend/public/locales/pl/project-drawer.json new file mode 100644 index 000000000..637416174 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-drawer.json @@ -0,0 +1,52 @@ +{ + "createProject": "Utwórz projekt", + "editProject": "Edytuj projekt", + "enterCategoryName": "Wprowadź nazwę kategorii", + "hitEnterToCreate": "Naciśnij Enter, aby utworzyć!", + "enterNotes": "Notatki", + "youCanManageClientsUnderSettings": "Klientami możesz zarządzać w Ustawieniach", + "addCategory": "Dodaj kategorię do projektu", + "newCategory": "Nowa kategoria", + "notes": "Notatki", + "startDate": "Data rozpoczęcia", + "endDate": "Data zakończenia", + "estimateWorkingDays": "Szacowana liczba dni roboczych", + "estimateManDays": "Szacowana liczba osobodni", + "hoursPerDay": "Godziny dziennie", + "create": "Utwórz", + "update": "Aktualizuj", + "delete": "Usuń", + "typeToSearchClients": "Wpisz, aby wyszukać klientów", + "projectColor": "Kolor projektu", + "pleaseEnterAName": "Proszę wprowadzić nazwę", + "enterProjectName": "Wprowadź nazwę projektu", + "name": "Nazwa", + "status": "Status", + "health": "Stan", + "category": "Kategoria", + "projectManager": "Menedżer projektu", + "client": "Klient", + "deleteConfirmation": "Czy na pewno chcesz usunąć?", + "deleteConfirmationDescription": "Spowoduje to usunięcie wszystkich powiązanych danych i nie będzie można tego cofnąć.", + "yes": "Tak", + "no": "Nie", + "createdAt": "Utworzono", + "updatedAt": "Zaktualizowano", + "by": "przez", + "add": "Dodaj", + "asClient": "jako klient", + "createClient": "Utwórz klienta", + "searchInputPlaceholder": "Szukaj według nazwy lub adresu e-mail", + "hoursPerDayValidationMessage": "Godziny dziennie muszą być liczbą z zakresu od 1 do 24", + "workingDaysValidationMessage": "Dni robocze muszą być liczbą dodatnią", + "manDaysValidationMessage": "Osobodni muszą być liczbą dodatnią", + "noPermission": "Brak uprawnień", + "progressSettings": "Ustawienia postępu", + "manualProgress": "Postęp ręczny", + "manualProgressTooltip": "Zezwalaj na ręczne aktualizacje postępu dla zadań bez podzadań", + "weightedProgress": "Postęp ważony", + "weightedProgressTooltip": "Obliczaj postęp na podstawie wag podzadań", + "timeProgress": "Postęp oparty na czasie", + "timeProgressTooltip": "Obliczaj postęp na podstawie szacowanego czasu", + "enterProjectKey": "Wprowadź klucz projektu" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view-files.json b/worklenz-frontend/public/locales/pl/project-view-files.json new file mode 100644 index 000000000..b2ae450ad --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view-files.json @@ -0,0 +1,14 @@ +{ + "nameColumn": "Nazwa", + "attachedTaskColumn": "Załączone zadanie", + "sizeColumn": "Rozmiar", + "uploadedByColumn": "Przesłane przez", + "uploadedAtColumn": "Przesłano o", + "fileIconAlt": "Ikona pliku", + "titleDescriptionText": "Wszystkie załączniki do zadań w tym projekcie pojawią się tutaj.", + "deleteConfirmationTitle": "Czy na pewno?", + "deleteConfirmationOk": "Tak", + "deleteConfirmationCancel": "Anuluj", + "segmentedTooltip": "Wkrótce! Przełączaj między widokiem listy a widokiem miniatur.", + "emptyText": "W projekcie nie ma załączników." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view-insights.json b/worklenz-frontend/public/locales/pl/project-view-insights.json new file mode 100644 index 000000000..d098cd2c2 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view-insights.json @@ -0,0 +1,41 @@ +{ + "overview": { + "title": "Przegląd", + "statusOverview": "Przegląd statusu", + "priorityOverview": "Przegląd priorytetów", + "lastUpdatedTasks": "Ostatnio zaktualizowane zadania" + }, + "members": { + "title": "Członkowie", + "tooltip": "Członkowie", + "tasksByMembers": "Zadania według członków", + "tasksByMembersTooltip": "Zadania według członków", + "name": "Nazwa", + "taskCount": "Liczba zadań", + "contribution": "Wkład", + "completed": "Ukończone", + "incomplete": "Nieukończone", + "overdue": "Zaległe", + "progress": "Postęp" + }, + "tasks": { + "overdueTasks": "Zaległe zadania", + "overLoggedTasks": "Zadania z nadmiernie zarejestrowanym czasem", + "tasksCompletedEarly": "Zadania ukończone przed terminem", + "tasksCompletedLate": "Zadania ukończone po terminie", + "overLoggedTasksTooltip": "Zadania, dla których zarejestrowano czas przekraczający szacowany czas", + "overdueTasksTooltip": "Zadania, których termin minął" + }, + "common": { + "seeAll": "Zobacz wszystkie", + "totalLoggedHours": "Całkowita liczba zarejestrowanych godzin", + "totalEstimation": "Całkowite oszacowanie", + "completedTasks": "Ukończone zadania", + "incompleteTasks": "Nieukończone zadania", + "overdueTasks": "Zaległe zadania", + "overdueTasksTooltip": "Zadania, których termin minął", + "totalLoggedHoursTooltip": "Szacowanie zadań i zarejestrowany czas dla zadań.", + "includeArchivedTasks": "Uwzględnij zarchiwizowane zadania", + "export": "Eksportuj" + } +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view-members.json b/worklenz-frontend/public/locales/pl/project-view-members.json new file mode 100644 index 000000000..c74b8c85c --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view-members.json @@ -0,0 +1,18 @@ +{ + "nameColumn": "Imię", + "jobTitleColumn": "Stanowisko", + "emailColumn": "E-mail", + "tasksColumn": "Zadania", + "taskProgressColumn": "Postęp zadania", + "accessColumn": "Dostęp", + "fileIconAlt": "Ikona pliku", + "deleteConfirmationTitle": "Czy na pewno?", + "deleteConfirmationOk": "Tak", + "deleteConfirmationCancel": "Anuluj", + "refreshButtonTooltip": "Odśwież członków", + "deleteButtonTooltip": "Usuń z projektu", + "memberCount": "Członek", + "membersCountPlural": "Członkowie", + "emptyText": "Brak członków w projekcie.", + "searchPlaceholder": "Szukaj członków" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view-updates.json b/worklenz-frontend/public/locales/pl/project-view-updates.json new file mode 100644 index 000000000..d1356e980 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view-updates.json @@ -0,0 +1,6 @@ +{ + "inputPlaceholder": "Dodaj komentarz…", + "addButton": "Dodaj", + "cancelButton": "Anuluj", + "deleteButton": "Usuń" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view.json b/worklenz-frontend/public/locales/pl/project-view.json new file mode 100644 index 000000000..8017c040b --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view.json @@ -0,0 +1,14 @@ +{ + "taskList": "Lista zadań", + "board": "Tablica", + "insights": "Wglądy", + "files": "Pliki", + "members": "Członkowie", + "updates": "Aktualizacje", + "projectView": "Widok projektu", + "loading": "Ładowanie projektu...", + "error": "Błąd ładowania projektu", + "pinnedTab": "Przypięta jako domyślna zakładka", + "pinTab": "Przypnij jako domyślną zakładkę", + "unpinTab": "Odepnij domyślną zakładkę" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view/import-task-templates.json b/worklenz-frontend/public/locales/pl/project-view/import-task-templates.json new file mode 100644 index 000000000..cb1287a65 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view/import-task-templates.json @@ -0,0 +1,11 @@ +{ + "importTaskTemplate": "Importuj Szablon Zadania", + "templateName": "Nazwa Szablonu", + "templateDescription": "Opis Szablonu", + "selectedTasks": "Wybrane Zadania", + "tasks": "Zadania", + "templates": "Szablony", + "remove": "Usuń", + "cancel": "Anuluj", + "import": "Importuj" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view/project-member-drawer.json b/worklenz-frontend/public/locales/pl/project-view/project-member-drawer.json new file mode 100644 index 000000000..1c0c950dd --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view/project-member-drawer.json @@ -0,0 +1,11 @@ +{ + "title": "Udostępnij projekt", + "searchLabel": "Dodaj członków, wpisując ich imię lub adres e-mail", + "searchPlaceholder": "Wpisz imię lub adres e-mail", + "inviteAsAMember": "Zaproś jako członka", + "inviteNewMemberByEmail": "Zaproś nowego członka przez e-mail", + "members": "Członkowie", + "copyProjectLink": "Kopiuj link do projektu", + "inviteMember": "Zaproś członka", + "alsoInviteToProject": "Zaproś również do projektu" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view/project-view-header.json b/worklenz-frontend/public/locales/pl/project-view/project-view-header.json new file mode 100644 index 000000000..0db80db5d --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view/project-view-header.json @@ -0,0 +1,31 @@ +{ + "importTasks": "Importuj zadania", + "importTask": "Importuj zadanie", + "createTask": "Utwórz zadanie", + "settings": "Ustawienia", + "subscribe": "Subskrybuj", + "unsubscribe": "Anuluj subskrypcję", + "deleteProject": "Usuń projekt", + "startDate": "Data rozpoczęcia", + "endDate": "Data zakończenia", + "projectSettings": "Ustawienia projektu", + "projectSummary": "Podsumowanie projektu", + "receiveProjectSummary": "Otrzymuj podsumowanie projektu każdego wieczoru.", + "refreshProject": "Odśwież projekt", + "saveAsTemplate": "Zapisz jako szablon", + "invite": "Zaproś", + "share": "Udostępnij", + "subscribeTooltip": "Subskrybuj powiadomienia o projekcie", + "unsubscribeTooltip": "Anuluj subskrypcję powiadomień o projekcie", + "refreshTooltip": "Odśwież dane projektu", + "settingsTooltip": "Otwórz ustawienia projektu", + "saveAsTemplateTooltip": "Zapisz ten projekt jako szablon", + "inviteTooltip": "Zaproś członków zespołu do tego projektu", + "createTaskTooltip": "Utwórz nowe zadanie", + "importTaskTooltip": "Importuj zadanie z szablonu", + "navigateBackTooltip": "Wróć do listy projektów", + "projectStatusTooltip": "Status projektu", + "projectDatesInfo": "Informacje o harmonogramie projektu", + "projectCategoryTooltip": "Kategoria projektu", + "defaultTaskName": "Zadanie bez tytułu" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/project-view/save-as-template.json b/worklenz-frontend/public/locales/pl/project-view/save-as-template.json new file mode 100644 index 000000000..f66ab7b5c --- /dev/null +++ b/worklenz-frontend/public/locales/pl/project-view/save-as-template.json @@ -0,0 +1,27 @@ +{ + "title": "Zapisz jako szablon", + "templateName": "Nazwa szablonu", + "includes": "Co powinno być uwzględnione w szablonie z projektu?", + "includesOptions": { + "statuses": "Statusy", + "phases": "Fazy", + "labels": "Etykiety" + }, + "taskIncludes": "Co powinno być uwzględnione w szablonie z zadań?", + "taskIncludesOptions": { + "statuses": "Statusy", + "phases": "Fazy", + "labels": "Etykiety", + "name": "Nazwa", + "priority": "Priorytet", + "status": "Status", + "phase": "Faza", + "label": "Etykieta", + "timeEstimate": "Szacowany czas", + "description": "Opis", + "subTasks": "Podzadania" + }, + "cancel": "Anuluj", + "save": "Zapisz", + "templateNamePlaceholder": "Wprowadź nazwę szablonu" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-members-drawer.json b/worklenz-frontend/public/locales/pl/reporting-members-drawer.json new file mode 100644 index 000000000..b14d77aed --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-members-drawer.json @@ -0,0 +1,76 @@ +{ + "exportButton": "Eksportuj", + "timeLogsButton": "Rejestry czasu", + "activityLogsButton": "Rejestry aktywności", + "tasksButton": "Zadania", + "searchByNameInputPlaceholder": "Szukaj po nazwie", + "overviewTab": "Przegląd", + "timeLogsTab": "Rejestry czasu", + "activityLogsTab": "Rejestry aktywności", + "tasksTab": "Zadania", + "projectsText": "Projekty", + "totalTasksText": "Wszystkie zadania", + "assignedTasksText": "Przypisane zadania", + "completedTasksText": "Ukończone zadania", + "ongoingTasksText": "Trwające zadania", + "overdueTasksText": "Zaległe zadania", + "loggedHoursText": "Zarejestrowane godziny", + "tasksText": "Zadania", + "allText": "Wszystkie", + "tasksByProjectsText": "Zadania według projektów", + "tasksByStatusText": "Zadania według statusu", + "tasksByPriorityText": "Zadania według priorytetu", + "todoText": "Do zrobienia", + "doingText": "W trakcie", + "doneText": "Zrobione", + "lowText": "Niski", + "mediumText": "Średni", + "highText": "Wysoki", + "billableButton": "Rozliczalne", + "billableText": "Rozliczalne", + "nonBillableText": "Nierozliczalne", + "timeLogsEmptyPlaceholder": "Brak rejestrów czasu do wyświetlenia", + "loggedText": "Zarejestrowano", + "forText": "dla", + "inText": "w", + "updatedText": "Zaktualizowano", + "fromText": "Od", + "toText": "do", + "withinText": "w ciągu", + "activityLogsEmptyPlaceholder": "Brak rejestrów aktywności do wyświetlenia", + "filterByText": "Filtruj według:", + "selectProjectPlaceholder": "Wybierz projekt", + "taskColumn": "Zadanie", + "nameColumn": "Nazwa", + "projectColumn": "Projekt", + "statusColumn": "Status", + "priorityColumn": "Priorytet", + "dueDateColumn": "Termin wykonania", + "completedDateColumn": "Data ukończenia", + "estimatedTimeColumn": "Szacowany czas", + "loggedTimeColumn": "Zarejestrowany czas", + "overloggedTimeColumn": "Nadmiernie zarejestrowany czas", + "daysLeftColumn": "Dni pozostałe/Zaległe", + "startDateColumn": "Data rozpoczęcia", + "endDateColumn": "Data zakończenia", + "actualTimeColumn": "Rzeczywisty czas", + "projectHealthColumn": "Stan projektu", + "categoryColumn": "Kategoria", + "projectManagerColumn": "Menedżer projektu", + "tasksStatsOverviewDrawerTitle": "'s Zadania", + "projectsStatsOverviewDrawerTitle": "'s Projekty", + "cancelledText": "Anulowane", + "blockedText": "Zablokowane", + "onHoldText": "Wstrzymane", + "proposedText": "Proponowane", + "inPlanningText": "W planowaniu", + "inProgressText": "W toku", + "completedText": "Ukończone", + "continuousText": "Ciągłe", + "daysLeftText": "dni pozostało", + "daysOverdueText": "dni zaległych", + "notSetText": "Nie ustawiono", + "needsAttentionText": "Wymaga uwagi", + "atRiskText": "Zagrożone", + "goodText": "Dobre" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-members.json b/worklenz-frontend/public/locales/pl/reporting-members.json new file mode 100644 index 000000000..2313d519c --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-members.json @@ -0,0 +1,31 @@ +{ + "yesterdayText": "Wczoraj", + "lastSevenDaysText": "Ostatnie 7 dni", + "lastWeekText": "Ostatni tydzień", + "lastThirtyDaysText": "Ostatnie 30 dni", + "lastMonthText": "Ostatni miesiąc", + "lastThreeMonthsText": "Ostatnie 3 miesiące", + "allTimeText": "Cały czas", + "customRangeText": "Niestandardowy zakres", + "startDateInputPlaceholder": "Data rozpoczęcia", + "EndDateInputPlaceholder": "Data zakończenia", + "filterButton": "Filtruj", + "membersTitle": "Członkowie", + "includeArchivedButton": "Uwzględnij zarchiwizowane projekty", + "exportButton": "Eksportuj", + "excelButton": "Excel", + "searchByNameInputPlaceholder": "Szukaj po nazwie", + "memberColumn": "Członek", + "tasksProgressColumn": "Postęp zadań", + "tasksAssignedColumn": "Przypisane zadania", + "completedTasksColumn": "Ukończone zadania", + "overdueTasksColumn": "Zadania przeterminowane", + "ongoingTasksColumn": "Zadania w toku", + "tasksAssignedColumnTooltip": "Zadania przypisane w wybranym zakresie dat", + "overdueTasksColumnTooltip": "Zadania przeterminowane na koniec wybranego zakresu dat", + "completedTasksColumnTooltip": "Zadania ukończone w wybranym zakresie dat", + "ongoingTasksColumnTooltip": "Rozpoczęte zadania jeszcze nieukończone", + "todoText": "Do zrobienia", + "doingText": "W trakcie", + "doneText": "Zrobione" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-overview-drawer.json b/worklenz-frontend/public/locales/pl/reporting-overview-drawer.json new file mode 100644 index 000000000..c1f965bab --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-overview-drawer.json @@ -0,0 +1,33 @@ +{ + "exportButton": "Eksportuj", + "projectsButton": "Projekty", + "membersButton": "Członkowie", + "searchByNameInputPlaceholder": "Szukaj po nazwie", + "overviewTab": "Przegląd", + "projectsTab": "Projekty", + "membersTab": "Członkowie", + "projectsByStatusText": "Projekty według statusu", + "projectsByCategoryText": "Projekty według kategorii", + "projectsByHealthText": "Projekty według stanu", + "projectsText": "Projekty", + "allText": "Wszystkie", + "cancelledText": "Anulowane", + "blockedText": "Zablokowane", + "onHoldText": "Wstrzymane", + "proposedText": "Proponowane", + "inPlanningText": "W planowaniu", + "inProgressText": "W toku", + "completedText": "Ukończone", + "continuousText": "Ciągłe", + "notSetText": "Nie ustawiono", + "needsAttentionText": "Wymaga uwagi", + "atRiskText": "Zagrożone", + "goodText": "Dobre", + "nameColumn": "Nazwa", + "emailColumn": "E-mail", + "projectsColumn": "Projekty", + "tasksColumn": "Zadania", + "overdueTasksColumn": "Zadania zaległe", + "completedTasksColumn": "Zadania ukończone", + "ongoingTasksColumn": "Zadania w toku" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-overview.json b/worklenz-frontend/public/locales/pl/reporting-overview.json new file mode 100644 index 000000000..65a1c4990 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-overview.json @@ -0,0 +1,22 @@ +{ + "overviewTitle": "Przegląd", + "includeArchivedButton": "Uwzględnij zarchiwizowane projekty", + "teamCount": "Zespół", + "teamCountPlural": "Zespoły", + "projectCount": "Projekt", + "projectCountPlural": "Projekty", + "memberCount": "Członek", + "memberCountPlural": "Członkowie", + "activeProjectCount": "Aktywny projekt", + "activeProjectCountPlural": "Aktywne projekty", + "overdueProjectCount": "Zaległy projekt", + "overdueProjectCountPlural": "Zaległe projekty", + "unassignedMemberCount": "Nieprzypisany członek", + "unassignedMemberCountPlural": "Nieprzypisani członkowie", + "memberWithOverdueTaskCount": "Członek z zaległym zadaniem", + "memberWithOverdueTaskCountPlural": "Członkowie z zaległymi zadaniami", + "teamsText": "Zespoły", + "nameColumn": "Nazwa", + "projectsColumn": "Projekty", + "membersColumn": "Członkowie" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-projects-drawer.json b/worklenz-frontend/public/locales/pl/reporting-projects-drawer.json new file mode 100644 index 000000000..c392fdebe --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-projects-drawer.json @@ -0,0 +1,52 @@ +{ + "exportButton": "Eksportuj", + "membersButton": "Członkowie", + "tasksButton": "Zadania", + "searchByNameInputPlaceholder": "Szukaj po nazwie", + "overviewTab": "Przegląd", + "membersTab": "Członkowie", + "tasksTab": "Zadania", + "completedTasksText": "Ukończone zadania", + "incompleteTasksText": "Nieukończone zadania", + "overdueTasksText": "Zaległe zadania", + "allocatedHoursText": "Przydzielone godziny", + "loggedHoursText": "Zarejestrowane godziny", + "tasksText": "Zadania", + "allText": "Wszystkie", + "tasksByStatusText": "Zadania według statusu", + "tasksByPriorityText": "Zadania według priorytetu", + "tasksByDueDateText": "Zadania według terminu", + "todoText": "Do zrobienia", + "doingText": "W trakcie", + "doneText": "Zrobione", + "lowText": "Niski", + "mediumText": "Średni", + "highText": "Wysoki", + "completedText": "Ukończone", + "upcomingText": "Nadchodzące", + "overdueText": "Zaległe", + "noDueDateText": "Brak terminu", + "nameColumn": "Nazwa", + "tasksCountColumn": "Liczba zadań", + "completedTasksColumn": "Ukończone zadania", + "incompleteTasksColumn": "Nieukończone zadania", + "overdueTasksColumn": "Zaległe zadania", + "contributionColumn": "Wkład", + "progressColumn": "Postęp", + "loggedTimeColumn": "Zarejestrowany czas", + "taskColumn": "Zadanie", + "projectColumn": "Projekt", + "statusColumn": "Status", + "priorityColumn": "Priorytet", + "phaseColumn": "Faza", + "dueDateColumn": "Termin", + "completedDateColumn": "Data ukończenia", + "estimatedTimeColumn": "Szacowany czas", + "overloggedTimeColumn": "Nadmiernie zalogowany czas", + "completedOnColumn": "Ukończono dnia", + "daysOverdueColumn": "Dni zaległości", + "groupByText": "Grupuj według:", + "statusText": "Status", + "priorityText": "Priorytet", + "phaseText": "Faza" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-projects-filters.json b/worklenz-frontend/public/locales/pl/reporting-projects-filters.json new file mode 100644 index 000000000..16f83d787 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-projects-filters.json @@ -0,0 +1,31 @@ +{ + "searchByNamePlaceholder": "Szukaj po nazwie", + "searchByCategoryPlaceholder": "Szukaj po kategorii", + "statusText": "Status", + "healthText": "Kondycja", + "categoryText": "Kategoria", + "projectManagerText": "Kierownik Projektu", + "showFieldsText": "Pokaż pola", + "cancelledText": "Anulowany", + "blockedText": "Zablokowany", + "onHoldText": "Wstrzymany", + "proposedText": "Proponowany", + "inPlanningText": "W planowaniu", + "inProgressText": "W toku", + "completedText": "Ukończony", + "continuousText": "Ciągły", + "notSetText": "Nieustawiony", + "needsAttentionText": "Wymaga uwagi", + "atRiskText": "Zagrożony", + "goodText": "Dobry", + "nameText": "Projekt", + "estimatedVsActualText": "Szacowane vs Rzeczywiste", + "tasksProgressText": "Postęp zadań", + "lastActivityText": "Ostatnia aktywność", + "datesText": "Daty rozpoczęcia/zakończenia", + "daysLeftText": "Dni pozostałe/przeterminowane", + "projectHealthText": "Kondycja projektu", + "projectUpdateText": "Aktualizacja projektu", + "clientText": "Klient", + "teamText": "Zespół" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-projects.json b/worklenz-frontend/public/locales/pl/reporting-projects.json new file mode 100644 index 000000000..fee38ac97 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-projects.json @@ -0,0 +1,44 @@ +{ + "projectCount": "Projekt", + "projectCountPlural": "Projekty", + "includeArchivedButton": "Uwzględnij zarchiwizowane projekty", + "exportButton": "Eksportuj", + "excelButton": "Excel", + "projectColumn": "Projekt", + "estimatedVsActualColumn": "Szacowane vs Rzeczywiste", + "tasksProgressColumn": "Postęp zadań", + "lastActivityColumn": "Ostatnia aktywność", + "statusColumn": "Status", + "datesColumn": "Daty rozpoczęcia/zakończenia", + "daysLeftColumn": "Dni pozostałe/Zaległe", + "projectHealthColumn": "Stan projektu", + "categoryColumn": "Kategoria", + "projectUpdateColumn": "Aktualizacja projektu", + "clientColumn": "Klient", + "teamColumn": "Zespół", + "projectManagerColumn": "Menedżer projektu", + "openButton": "Otwórz", + "estimatedText": "Szacowane", + "actualText": "Rzeczywiste", + "todoText": "Do zrobienia", + "doingText": "W trakcie", + "doneText": "Zrobione", + "cancelledText": "Anulowane", + "blockedText": "Zablokowane", + "onHoldText": "Wstrzymane", + "proposedText": "Proponowane", + "inPlanningText": "W planowaniu", + "inProgressText": "W toku", + "completedText": "Ukończone", + "continuousText": "Ciągłe", + "daysLeftText": "dni pozostało", + "dayLeftText": "dzień pozostał", + "daysOverdueText": "dni zaległych", + "notSetText": "Nie ustawiono", + "needsAttentionText": "Wymaga uwagi", + "atRiskText": "Zagrożone", + "goodText": "Dobre", + "setCategoryText": "Ustaw kategorię", + "searchByNameInputPlaceholder": "Szukaj po nazwie", + "todayText": "Dzisiaj" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/reporting-sidebar.json b/worklenz-frontend/public/locales/pl/reporting-sidebar.json new file mode 100644 index 000000000..e6d3f8e7f --- /dev/null +++ b/worklenz-frontend/public/locales/pl/reporting-sidebar.json @@ -0,0 +1,8 @@ +{ + "overview": "Przegląd", + "projects": "Projekty", + "members": "Członkowie", + "timeReports": "Raporty czasu pracy", + "estimateVsActual": "Szacunek vs Rzeczywistość", + "currentOrganizationTooltip": "Obecna organizacja" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/schedule.json b/worklenz-frontend/public/locales/pl/schedule.json new file mode 100644 index 000000000..e3be71c3f --- /dev/null +++ b/worklenz-frontend/public/locales/pl/schedule.json @@ -0,0 +1,34 @@ +{ + "today": "Dzisiaj", + "week": "Tydzień", + "month": "Miesiąc", + "settings": "Ustawienia", + "workingDays": "Dni robocze", + "monday": "Poniedziałek", + "tuesday": "Wtorek", + "wednesday": "Środa", + "thursday": "Czwartek", + "friday": "Piątek", + "saturday": "Sobota", + "sunday": "Niedziela", + "workingHours": "Godziny pracy", + "hours": "godziny", + "saveButton": "Zapisz", + "totalAllocation": "Całkowita alokacja", + "timeLogged": "Zalogowany czas", + "remainingTime": "Pozostały czas", + "total": "Całkowity", + "perDay": "Na dzień", + "tasks": "zadania", + "startDate": "Data rozpoczęcia", + "endDate": "Data zakończenia", + "hoursPerDay": "Godziny dziennie", + "totalHours": "Całkowite godziny", + "deleteButton": "Usuń", + "cancelButton": "Anuluj", + "tabTitle": "Zadanie bez daty rozpoczęcia i zakończenia", + "allocatedTime": "Przydzielony czas", + "totalLogged": "Całkowicie zalogowano", + "loggedBillable": "Zalogowano rozliczalne", + "loggedNonBillable": "Zalogowano nierozliczalne" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/account-deletion.json b/worklenz-frontend/public/locales/pl/settings/account-deletion.json new file mode 100644 index 000000000..5bce97ee1 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/account-deletion.json @@ -0,0 +1,29 @@ +{ + "title": "Usunięcie konta", + "dangerZone": "Strefa zagrożenia", + "warningTitle": "Ostrzeżenie: Tej czynności nie można cofnąć", + "warningDescription1": "Usunięcie konta spowoduje:", + "warningPoint1": "Trwałe usunięcie wszystkich Twoich danych osobowych", + "warningPoint2": "Usunięcie Cię ze wszystkich zespołów i projektów", + "warningPoint3": "Usunięcie całej utworzonej przez Ciebie treści i wkładu", + "warningPoint4": "Anulowanie wszystkich aktywnych subskrypcji", + "warningDescription2": "Twoje dane zostaną trwale usunięte w ciągu 30 dni od złożenia wniosku.", + "beforeDeletion": "Przed usunięciem konta, prosimy:", + "exportData": "Wyeksportuj wszelkie ważne dane, które chcesz zachować", + "cancelSubscription": "Upewnij się, że wszystkie subskrypcje są anulowane", + "informTeam": "Poinformuj członków zespołu o swoim odejściu", + "deleteAccountButton": "Usuń moje konto", + "confirmDeletionTitle": "Potwierdź usunięcie konta", + "finalWarning": "Ta czynność jest trwała i nie można jej cofnąć!", + "confirmationInstructions": "Aby potwierdzić usunięcie, wpisz poniższe słowo dokładnie tak, jak pokazano:", + "typeDeleteToConfirm": "Wpisz DELETE, aby potwierdzić", + "confirmDelete": "Tak, usuń moje konto", + "cancel": "Anuluj", + "invalidConfirmation": "Wpisz DELETE, aby potwierdzić", + "deletionRequestSuccess": "Wniosek o usunięcie konta został pomyślnie przesłany", + "requestSubmitted": "Wniosek przesłany", + "deletionConfirmationMessage": "Twój wniosek o usunięcie konta został przyjęty. Twoje konto i wszystkie powiązane dane zostaną trwale usunięte w ciągu 30 dni. Zostaniesz teraz wylogowany.", + "deletionRequestFailed": "Nie udało się przesłać wniosku o usunięcie. Spróbuj ponownie.", + "dataRetentionNotice": "Informacja o przechowywaniu danych", + "dataRetentionDescription": "Zgodnie z naszą polityką przechowywania danych, Twoje konto i wszystkie powiązane dane zostaną trwale usunięte w ciągu 30 dni. Proces ten nie może zostać cofnięty po jego zainicjowaniu." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/appearance.json b/worklenz-frontend/public/locales/pl/settings/appearance.json new file mode 100644 index 000000000..ab3124c8c --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/appearance.json @@ -0,0 +1,5 @@ +{ + "title": "Wygląd", + "darkMode": "Tryb Ciemny", + "darkModeDescription": "Przełączaj się między trybem jasnym a ciemnym, aby dostosować swoje wrażenia wizualne." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/categories.json b/worklenz-frontend/public/locales/pl/settings/categories.json new file mode 100644 index 000000000..d9ba6888d --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/categories.json @@ -0,0 +1,10 @@ +{ + "categoryColumn": "Kategoria", + "deleteConfirmationTitle": "Czy na pewno?", + "deleteConfirmationOk": "Tak", + "deleteConfirmationCancel": "Anuluj", + "associatedTaskColumn": "Powiązane projekty", + "searchPlaceholder": "Szukaj po nazwie", + "emptyText": "Kategorie można tworzyć podczas aktualizowania lub tworzenia projektów.", + "colorChangeTooltip": "Kliknij, aby zmienić kolor" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/change-password.json b/worklenz-frontend/public/locales/pl/settings/change-password.json new file mode 100644 index 000000000..022a1b2bb --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/change-password.json @@ -0,0 +1,15 @@ +{ + "title": "Zmień Hasło", + "currentPassword": "Obecne Hasło", + "newPassword": "Nowe Hasło", + "confirmPassword": "Potwierdź Hasło", + "currentPasswordPlaceholder": "Wprowadź swoje obecne hasło", + "newPasswordPlaceholder": "Nowe Hasło", + "confirmPasswordPlaceholder": "Potwierdź Hasło", + "currentPasswordRequired": "Proszę wprowadzić swoje obecne hasło!", + "newPasswordRequired": "Proszę wprowadzić swoje nowe hasło!", + "passwordValidationError": "Hasło musi mieć co najmniej 8 znaków, zawierać wielką literę, cyfrę i symbol.", + "passwordMismatch": "Hasła nie pasują do siebie!", + "passwordRequirements": "Nowe hasło powinno mieć co najmniej 8 znaków, zawierać wielką literę, cyfrę i symbol.", + "updateButton": "Zaktualizuj Hasło" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/clients.json b/worklenz-frontend/public/locales/pl/settings/clients.json new file mode 100644 index 000000000..23850042e --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/clients.json @@ -0,0 +1,24 @@ +{ + "nameColumn": "Nazwa", + "projectColumn": "Projekt", + "noProjectsAvailable": "Brak dostępnych projektów", + "deleteConfirmationTitle": "Czy na pewno?", + "deleteConfirmationOk": "Tak", + "deleteConfirmationCancel": "Anuluj", + "searchPlaceholder": "Szukaj po nazwie", + "createClient": "Utwórz klienta", + "pinTooltip": "Kliknij, aby przypiąć to do menu głównego", + "createClientDrawerTitle": "Utwórz klienta", + "updateClientDrawerTitle": "Zaktualizuj klienta", + "nameLabel": "Nazwa", + "namePlaceholder": "Nazwa", + "nameRequiredError": "Proszę podać nazwę", + "createButton": "Utwórz", + "updateButton": "Zaktualizuj", + "createClientSuccessMessage": "Klient utworzony pomyślnie!", + "createClientErrorMessage": "Utworzenie klienta nie powiodło się!", + "updateClientSuccessMessage": "Klient zaktualizowany pomyślnie!", + "updateClientErrorMessage": "Aktualizacja klienta nie powiodła się!", + "editButton": "Edytuj", + "deleteButton": "Usuń" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/job-titles.json b/worklenz-frontend/public/locales/pl/settings/job-titles.json new file mode 100644 index 000000000..3b15a423d --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/job-titles.json @@ -0,0 +1,20 @@ +{ + "nameColumn": "Nazwa", + "deleteConfirmationTitle": "Czy na pewno?", + "deleteConfirmationOk": "Tak", + "deleteConfirmationCancel": "Anuluj", + "searchPlaceholder": "Szukaj po nazwie", + "createJobTitleButton": "Utwórz stanowisko", + "pinTooltip": "Kliknij, aby przypiąć to do menu głównego", + "createJobTitleDrawerTitle": "Utwórz stanowisko", + "updateJobTitleDrawerTitle": "Edytuj stanowisko", + "nameLabel": "Nazwa", + "namePlaceholder": "Nazwa", + "nameRequiredError": "Proszę podać nazwę", + "createButton": "Utwórz", + "updateButton": "Aktualizuj", + "createJobTitleSuccessMessage": "Pomyślnie utworzono stanowisko!", + "createJobTitleErrorMessage": "Nie udało się utworzyć stanowiska!", + "updateJobTitleSuccessMessage": "Pomyślnie zaktualizowano stanowisko!", + "updateJobTitleErrorMessage": "Nie udało się zaktualizować stanowiska!" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/labels.json b/worklenz-frontend/public/locales/pl/settings/labels.json new file mode 100644 index 000000000..9117313f1 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/labels.json @@ -0,0 +1,15 @@ +{ + "labelColumn": "Etykieta", + "deleteConfirmationTitle": "Czy na pewno?", + "deleteConfirmationOk": "Tak", + "deleteConfirmationCancel": "Anuluj", + "associatedTaskColumn": "Liczba powiązanych zadań", + "searchPlaceholder": "Szukaj po nazwie", + "emptyText": "Etykiety można tworzyć podczas aktualizowania lub tworzenia zadań.", + "pinTooltip": "Kliknij, aby przypiąć to do menu głównego", + "colorChangeTooltip": "Kliknij, aby zmienić kolor", + "pageTitle": "Zarządzaj etykietami", + "deleteConfirmTitle": "Czy na pewno chcesz to usunąć?", + "deleteButton": "Usuń", + "cancelButton": "Anuluj" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/language.json b/worklenz-frontend/public/locales/pl/settings/language.json new file mode 100644 index 000000000..21b7109c9 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/language.json @@ -0,0 +1,7 @@ +{ + "language": "Język", + "language_required": "Język jest wymagany", + "time_zone": "Strefa czasowa", + "time_zone_required": "Strefa czasowa jest wymagana", + "save_changes": "Zapisz zmiany" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/notifications.json b/worklenz-frontend/public/locales/pl/settings/notifications.json new file mode 100644 index 000000000..73fb062b2 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/notifications.json @@ -0,0 +1,11 @@ +{ + "title": "Ustawienia powiadomień", + "emailTitle": "Wysyłaj mi powiadomienia e-mail", + "emailDescription": "Obejmuje to nowe przydziały zadań", + "dailyDigestTitle": "Wysyłaj mi codzienne podsumowanie", + "dailyDigestDescription": "Każdego wieczoru otrzymasz podsumowanie ostatniej aktywności w zadaniach.", + "popupTitle": "Wyświetlaj powiadomienia na moim komputerze, gdy Worklenz jest otwarty", + "popupDescription": "Wyskakujące powiadomienia mogą być wyłączone przez Twoją przeglądarkę. Zmień ustawienia przeglądarki, aby je zezwolić.", + "unreadItemsTitle": "Pokaż liczbę nieprzeczytanych elementów", + "unreadItemsDescription": "Zobaczysz liczniki dla każdego powiadomienia." +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/profile.json b/worklenz-frontend/public/locales/pl/settings/profile.json new file mode 100644 index 000000000..c889b1614 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/profile.json @@ -0,0 +1,14 @@ +{ + "uploadError": "Możesz przesłać tylko plik JPG/PNG!", + "uploadSizeError": "Obraz musi być mniejszy niż 2MB!", + "upload": "Prześlij", + "nameLabel": "Imię", + "nameRequiredError": "Imię jest wymagane", + "emailLabel": "Email", + "emailRequiredError": "Email jest wymagany", + "saveChanges": "Zapisz zmiany", + "profileJoinedText": "Dołączył miesiąc temu", + "profileLastUpdatedText": "Ostatnia aktualizacja miesiąc temu", + "avatarTooltip": "Kliknij, aby przesłać awatar", + "title": "Ustawienia profilu" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/project-templates.json b/worklenz-frontend/public/locales/pl/settings/project-templates.json new file mode 100644 index 000000000..ac93c611b --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/project-templates.json @@ -0,0 +1,8 @@ +{ + "nameColumn": "Nazwa", + "editToolTip": "Edytuj", + "deleteToolTip": "Usuń", + "confirmText": "Czy na pewno?", + "okText": "Tak", + "cancelText": "Anuluj" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/sidebar.json b/worklenz-frontend/public/locales/pl/settings/sidebar.json new file mode 100644 index 000000000..d84603dfa --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/sidebar.json @@ -0,0 +1,16 @@ +{ + "profile": "Profil", + "notifications": "Powiadomienia", + "clients": "Klienci", + "job-titles": "Stanowiska", + "labels": "Etykiety", + "categories": "Kategorie", + "project-templates": "Szablony projektów", + "task-templates": "Szablony zadań", + "team-members": "Członkowie zespołu", + "teams": "Zespoły", + "change-password": "Zmień hasło", + "language-and-region": "Język i region", + "appearance": "Wygląd", + "account-deletion": "Usuń konto" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/task-templates.json b/worklenz-frontend/public/locales/pl/settings/task-templates.json new file mode 100644 index 000000000..cceb9fb51 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/task-templates.json @@ -0,0 +1,9 @@ +{ + "nameColumn": "Nazwa", + "createdColumn": "Utworzono", + "editToolTip": "Edytuj", + "deleteToolTip": "Usuń", + "confirmText": "Czy na pewno?", + "okText": "Tak", + "cancelText": "Anuluj" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/team-members.json b/worklenz-frontend/public/locales/pl/settings/team-members.json new file mode 100644 index 000000000..9a62abb57 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/team-members.json @@ -0,0 +1,48 @@ +{ + "title": "Członkowie zespołu", + "nameColumn": "Imię i nazwisko", + "projectsColumn": "Projekty", + "emailColumn": "Email", + "teamAccessColumn": "Dostęp do zespołu", + "memberCount": "Członek", + "membersCountPlural": "Członkowie", + "searchPlaceholder": "Szukaj członków po imieniu i nazwisku", + "pinTooltip": "Odśwież listę członków", + "addMemberButton": "Dodaj nowego członka", + "editTooltip": "Edytuj członka", + "deactivateTooltip": "Dezaktywuj członka", + "activateTooltip": "Aktywuj członka", + "deleteTooltip": "Usuń członka", + "confirmDeleteTitle": "Czy na pewno chcesz usunąć tego członka?", + "confirmActivateTitle": "Czy na pewno chcesz zmienić status tego członka?", + "okText": "Tak, kontynuuj", + "cancelText": "Nie, anuluj", + "deactivatedText": "(Obecnie dezaktywowany)", + "pendingInvitationText": "(Zaproszenie oczekujące)", + "addMemberDrawerTitle": "Zaproś członków zespołu", + "updateMemberDrawerTitle": "Zaktualizuj członka zespołu", + "addMemberEmailHint": "Członkowie zostaną dodani do zespołu niezależnie od statusu akceptacji zaproszenia", + "memberEmailLabel": "Adres(y) e-mail", + "memberEmailPlaceholder": "Wprowadź adres e-mail członka zespołu", + "memberEmailRequiredError": "Wprowadź prawidłowy adres e-mail", + "jobTitleLabel": "Stanowisko", + "jobTitlePlaceholder": "Wybierz lub wyszukaj stanowisko (Opcjonalnie)", + "memberAccessLabel": "Poziom dostępu", + "addToTeamButton": "Wyślij zaproszenie", + "updateButton": "Zapisz zmiany", + "resendInvitationButton": "Wyślij ponownie e-mail z zaproszeniem", + "invitationSentSuccessMessage": "Zaproszenie do zespołu wysłane pomyślnie!", + "createMemberSuccessMessage": "Nowy członek zespołu dodany pomyślnie!", + "createMemberErrorMessage": "Nie udało się dodać członka zespołu. Spróbuj ponownie.", + "updateMemberSuccessMessage": "Członek zespołu zaktualizowany pomyślnie!", + "updateMemberErrorMessage": "Nie udało się zaktualizować członka zespołu. Spróbuj ponownie.", + "memberText": "Członek", + "adminText": "Administrator", + "ownerText": "Właściciel zespołu", + "addedText": "Dodano", + "updatedText": "Zaktualizowano", + "noResultFound": "Wpisz adres e-mail i naciśnij Enter...", + "jobTitlesFetchError": "Nie udało się pobrać stanowisk", + "invitationResent": "Zaproszenie wysłane ponownie pomyślnie!", + "copyTeamLink": "Kopiuj link do zespołu" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/settings/teams.json b/worklenz-frontend/public/locales/pl/settings/teams.json new file mode 100644 index 000000000..5e5a2e9c4 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/settings/teams.json @@ -0,0 +1,16 @@ +{ + "title": "Zespoły", + "team": "Zespół", + "teams": "Zespoły", + "name": "Nazwa", + "created": "Utworzono", + "ownsBy": "Właściciel", + "edit": "Edytuj", + "editTeam": "Edytuj zespół", + "pinTooltip": "Kliknij, aby przypiąć to do menu głównego", + "editTeamName": "Edytuj nazwę zespołu", + "updateName": "Zaktualizuj nazwę", + "namePlaceholder": "Nazwa", + "nameRequired": "Proszę wprowadzić nazwę", + "updateFailed": "Zmiana nazwy zespołu nie powiodła się!" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/survey.json b/worklenz-frontend/public/locales/pl/survey.json new file mode 100644 index 000000000..57dc2a6e1 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/survey.json @@ -0,0 +1,14 @@ +{ + "modalTitle": "Pomóż nam ulepszyć Twoje doświadczenie", + "skip": "Pomiń na razie", + "previous": "Poprzedni", + "next": "Następny", + "completeSurvey": "Ukończ ankietę", + "submitting": "Przesyłanie Twoich odpowiedzi...", + "submitSuccessTitle": "Dziękujemy!", + "submitSuccessSubtitle": "Twoja opinia pomaga nam ulepszyć Worklenz dla wszystkich.", + "submitSuccessMessage": "Dziękujemy za wypełnienie ankiety!", + "submitErrorMessage": "Nie udało się przesłać ankiety. Spróbuj ponownie.", + "submitErrorLog": "Nie udało się przesłać ankiety", + "fetchErrorLog": "Nie udało się pobrać ankiety" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/task-drawer/task-drawer-info-tab.json b/worklenz-frontend/public/locales/pl/task-drawer/task-drawer-info-tab.json new file mode 100644 index 000000000..58e0f4c35 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/task-drawer/task-drawer-info-tab.json @@ -0,0 +1,30 @@ +{ + "details": { + "task-key": "Klucz zadania", + "phase": "Faza", + "assignees": "Przypisani", + "due-date": "Termin", + "time-estimation": "Szacowany czas", + "priority": "Priorytet", + "labels": "Etykiety", + "billable": "Płatne", + "notify": "Powiadom", + "when-done-notify": "Po zakończeniu powiadom", + "start-date": "Data rozpoczęcia", + "end-date": "Data zakończenia", + "hide-start-date": "Ukryj datę rozpoczęcia", + "show-start-date": "Pokaż datę rozpoczęcia", + "hours": "Godziny", + "minutes": "Minuty", + "recurring": "Powtarzające się" + }, + "description": { + "title": "Opis", + "placeholder": "Dodaj bardziej szczegółowy opis..." + }, + "subTasks": { + "title": "Podzadania", + "add-sub-task": "Dodaj podzadanie", + "refresh-sub-tasks": "Odśwież podzadania" + } +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/task-drawer/task-drawer-recurring-config.json b/worklenz-frontend/public/locales/pl/task-drawer/task-drawer-recurring-config.json new file mode 100644 index 000000000..4991b9837 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/task-drawer/task-drawer-recurring-config.json @@ -0,0 +1,34 @@ +{ + "recurring": "Powtarzający się", + "recurringTaskConfiguration": "Konfiguracja zadania cyklicznego", + "repeats": "Powtarza się", + "daily": "Codziennie", + "weekly": "Tygodniowo", + "everyXDays": "Co X dni", + "everyXWeeks": "Co X tygodni", + "everyXMonths": "Co X miesięcy", + "monthly": "Miesięcznie", + "selectDaysOfWeek": "Wybierz dni tygodnia", + "mon": "Pon", + "tue": "Wt", + "wed": "Śr", + "thu": "Czw", + "fri": "Pt", + "sat": "Sob", + "sun": "Nd", + "monthlyRepeatType": "Typ powtarzania miesięcznego", + "onSpecificDate": "W konkretnym dniu", + "onSpecificDay": "W konkretny dzień", + "dateOfMonth": "Dzień miesiąca", + "weekOfMonth": "Tydzień miesiąca", + "dayOfWeek": "Dzień tygodnia", + "first": "Pierwszy", + "second": "Drugi", + "third": "Trzeci", + "fourth": "Czwarty", + "last": "Ostatni", + "intervalDays": "Interwał (dni)", + "intervalWeeks": "Interwał (tygodnie)", + "intervalMonths": "Interwał (miesiące)", + "saveChanges": "Zapisz zmiany" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/task-drawer/task-drawer.json b/worklenz-frontend/public/locales/pl/task-drawer/task-drawer.json new file mode 100644 index 000000000..23c8d82a2 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/task-drawer/task-drawer.json @@ -0,0 +1,131 @@ +{ + "taskHeader": { + "taskNamePlaceholder": "Wpisz swoje zadanie", + "deleteTask": "Usuń zadanie", + "parentTask": "Zadanie nadrzędne", + "currentTask": "Bieżące zadanie", + "back": "Wstecz", + "backToParent": "Wróć do zadania nadrzędnego", + "toParentTask": "do zadania nadrzędnego", + "loadingHierarchy": "Ładowanie hierarchii..." + }, + "taskInfoTab": { + "title": "Informacje", + "details": { + "title": "Szczegóły", + "task-key": "Klucz zadania", + "phase": "Faza", + "assignees": "Przypisani", + "due-date": "Termin", + "time-estimation": "Estymacja czasu", + "priority": "Priorytet", + "labels": "Etykiety", + "billable": "Płatne", + "notify": "Powiadom", + "when-done-notify": "Po zakończeniu powiadom", + "start-date": "Data rozpoczęcia", + "end-date": "Data zakończenia", + "hide-start-date": "Ukryj datę rozpoczęcia", + "show-start-date": "Pokaż datę rozpoczęcia", + "hours": "Godziny", + "minutes": "Minuty", + "progressValue": "Wartość postępu", + "progressValueTooltip": "Ustaw procent postępu (0-100%)", + "progressValueRequired": "Proszę wprowadzić wartość postępu", + "progressValueRange": "Postęp musi być w zakresie od 0 do 100", + "taskWeight": "Waga zadania", + "taskWeightTooltip": "Ustaw wagę tego podzadania (procentowo)", + "taskWeightRequired": "Proszę wprowadzić wagę zadania", + "taskWeightRange": "Waga musi być w zakresie od 0 do 100", + "recurring": "Powtarzające się" + }, + "labels": { + "labelInputPlaceholder": "Szukaj lub utwórz", + "labelsSelectorInputTip": "Naciśnij Enter, aby utworzyć" + }, + "description": { + "title": "Opis", + "placeholder": "Dodaj bardziej szczegółowy opis..." + }, + "subTasks": { + "title": "Podzadania", + "addSubTask": "Dodaj podzadanie", + "addSubTaskInputPlaceholder": "Wpisz swoje zadanie i naciśnij enter", + "refreshSubTasks": "Odśwież podzadania", + "edit": "Edytuj", + "delete": "Usuń", + "confirmDeleteSubTask": "Czy na pewno chcesz usunąć to podzadanie?", + "deleteSubTask": "Usuń podzadanie" + }, + "dependencies": { + "title": "Zależności", + "addDependency": "+ Dodaj nową zależność", + "blockedBy": "Zablokowane przez", + "searchTask": "Wpisz, aby wyszukać zadanie", + "noTasksFound": "Nie znaleziono zadań", + "confirmDeleteDependency": "Czy na pewno chcesz usunąć?" + }, + "attachments": { + "title": "Załączniki", + "chooseOrDropFileToUpload": "Wybierz lub upuść plik do przesłania", + "uploading": "Przesyłanie..." + }, + "comments": { + "title": "Komentarze", + "addComment": "+ Dodaj nowy komentarz", + "noComments": "Brak komentarzy. Bądź pierwszym, który skomentuje!", + "delete": "Usuń", + "confirmDeleteComment": "Czy na pewno chcesz usunąć ten komentarz?", + "addCommentPlaceholder": "Dodaj komentarz...", + "cancel": "Anuluj", + "commentButton": "Skomentuj", + "attachFiles": "Dołącz pliki", + "addMoreFiles": "Dodaj więcej plików", + "selectedFiles": "Wybrane pliki (do 25MB, maksymalnie {{count}})", + "maxFilesError": "Możesz przesłać maksymalnie {{count}} plików", + "processFilesError": "Nie udało się przetworzyć plików", + "addCommentError": "Proszę dodać komentarz lub załączyć pliki", + "createdBy": "Utworzono {{time}} przez {{user}}", + "updatedTime": "Zaktualizowano {{time}}" + }, + "searchInputPlaceholder": "Szukaj po nazwie", + "pendingInvitation": "Oczekujące zaproszenie" + }, + "taskTimeLogTab": { + "title": "Rejestr czasu", + "addTimeLog": "Dodaj nowy rejestr czasu", + "totalLogged": "Całkowity zarejestrowany czas", + "exportToExcel": "Eksportuj do Excela", + "noTimeLogsFound": "Nie znaleziono rejestrów czasu", + "timeLogForm": { + "date": "Data", + "startTime": "Godzina rozpoczęcia", + "endTime": "Godzina zakończenia", + "workDescription": "Opis pracy", + "descriptionPlaceholder": "Dodaj opis", + "logTime": "Zarejestruj czas", + "updateTime": "Zaktualizuj czas", + "cancel": "Anuluj", + "selectDateError": "Proszę wybrać datę", + "selectStartTimeError": "Proszę wybrać godzinę rozpoczęcia", + "selectEndTimeError": "Proszę wybrać godzinę zakończenia", + "endTimeAfterStartError": "Godzina zakończenia musi być po godzinie rozpoczęcia" + } + }, + "taskActivityLogTab": { + "title": "Rejestr aktywności", + "add": "DODAJ", + "remove": "USUŃ", + "none": "Brak", + "weight": "Waga", + "createdTask": "utworzył zadanie." + }, + "taskProgress": { + "markAsDoneTitle": "Oznaczyć zadanie jako zakończone?", + "confirmMarkAsDone": "Tak, oznacz jako zakończone", + "cancelMarkAsDone": "Nie, zachowaj obecny status", + “markAsDoneDescription”: “Ustawiłeś postęp na 100%. Czy chcesz zaktualizować status zadania na „Zakończone”?” + }, + “todayText”: “Dzisiaj”, + “yesterdayText”: “Wczoraj” +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/task-list-filters.json b/worklenz-frontend/public/locales/pl/task-list-filters.json new file mode 100644 index 000000000..c919e3ec0 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/task-list-filters.json @@ -0,0 +1,93 @@ +{ + "searchButton": "Szukaj", + "resetButton": "Resetuj", + "searchInputPlaceholder": "Szukaj po nazwie", + "sortText": "Sortuj", + "statusText": "Status", + "phaseText": "Faza", + "memberText": "Członkowie", + "assigneesText": "Przypisani", + "priorityText": "Priorytet", + "labelsText": "Etykiety", + "membersText": "Członkowie", + "groupByText": "Grupuj według", + "showArchivedText": "Pokaż zarchiwizowane", + "showFieldsText": "Pokaż pola", + "keyText": "Klucz", + "taskText": "Zadanie", + "descriptionText": "Opis", + "phasesText": "Fazy", + "listText": "Lista", + "progressText": "Postęp", + "timeTrackingText": "Śledzenie czasu", + "timetrackingText": "Śledzenie czasu", + "estimationText": "Estymacja", + "startDateText": "Data rozpoczęcia", + "startdateText": "Data rozpoczęcia", + "endDateText": "Data zakończenia", + "dueDateText": "Termin", + "duedateText": "Termin", + "completedDateText": "Data ukończenia", + "completeddateText": "Data ukończenia", + "createdDateText": "Data utworzenia", + "createddateText": "Data utworzenia", + "lastUpdatedText": "Ostatnia aktualizacja", + "lastupdatedText": "Ostatnia aktualizacja", + "reporterText": "Zgłaszający", + "dueTimeText": "Godzina terminu", + "duetimeText": "Godzina terminu", + "lowText": "Niski", + "mediumText": "Średni", + "highText": "Wysoki", + "createStatusButtonTooltip": "Ustawienia statusu", + "configPhaseButtonTooltip": "Ustawienia fazy", + "noLabelsFound": "Nie znaleziono etykiet", + "addStatusButton": "Dodaj status", + "addPhaseButton": "Dodaj fazę", + "createStatus": "Utwórz status", + "name": "Nazwa", + "category": "Kategoria", + "selectCategory": "Wybierz kategorię", + "pleaseEnterAName": "Proszę wprowadzić nazwę", + "pleaseSelectACategory": "Proszę wybrać kategorię", + "create": "Utwórz", + "searchTasks": "Szukaj zadań...", + "searchPlaceholder": "Szukaj...", + "fieldsText": "Pola", + "loadingFilters": "Ładowanie filtrów...", + "noOptionsFound": "Nie znaleziono opcji", + "filtersActive": "aktywne filtry", + "filterActive": "aktywny filtr", + "clearAll": "Wyczyść wszystko", + "clearing": "Czyszczenie...", + "cancel": "Anuluj", + "search": "Szukaj", + "groupedBy": "Grupowane według", + "manage": "Zarządzaj", + "manageStatuses": "Zarządzaj statusami", + "managePhases": "Zarządzaj fazami", + "dragToReorderStatuses": "Statusy są uporządkowane według kategorii. Przeciągnij, aby zmienić kolejność w kategoriach. Kliknij 'Dodaj status', aby utworzyć nowe statusy w każdej kategorii.", + "enterNewStatusName": "Wprowadź nową nazwę statusu...", + "addStatus": "Dodaj status", + "noStatusesFound": "Brak statusów w tej kategorii", + "deleteStatus": "Usuń status", + "deleteStatusConfirm": "Czy na pewno chcesz usunąć ten status? Tej operacji nie można cofnąć.", + "rename": "Zmień nazwę", + "delete": "Usuń", + "enterStatusName": "Wprowadź nazwę statusu", + "close": "Zamknij", + "cannotMoveStatus": "Nie można przenieść statusu", + "cannotMoveStatusMessage": "Nie można przenieść tego statusu, ponieważ pozostawiłoby to kategorię '{{categoryName}}' pustą. Każda kategoria musi mieć co najmniej jeden status.", + "ok": "OK", + "clearSort": "Wyczyść sortowanie", + "sortAscending": "Sortuj rosnąco", + "sortDescending": "Sortuj malejąco", + "sortByField": "Sortuj według {{field}}", + "ascendingOrder": "Rosnąco", + "descendingOrder": "Malejąco", + "currentSort": "Aktualne sortowanie: {{field}} {{order}}", + "dragStatusesHint": "Przeciągnij statusy, aby zmienić ich kolejność w kategoriach lub przeciągnij między kategoriami, aby zmienić ich typ.", + "statusCategoryNote": "Uwaga: Każda kategoria musi mieć co najmniej jeden status. Nie można przenieść statusu, jeśli jest jedynym w swojej kategorii.", + "dragToReorder": "Przeciągnij, aby zmienić kolejność", + "selectText": "Wybierz" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/task-list-table.json b/worklenz-frontend/public/locales/pl/task-list-table.json new file mode 100644 index 000000000..f102dea88 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/task-list-table.json @@ -0,0 +1,133 @@ +{ + "keyColumn": "Klucz", + "taskColumn": "Zadanie", + "descriptionColumn": "Opis", + "progressColumn": "Postęp", + "membersColumn": "Członkowie", + "assigneesColumn": "Przypisani", + "labelsColumn": "Etykiety", + "phasesColumn": "Fazy", + "phaseColumn": "Faza", + "statusColumn": "Status", + "priorityColumn": "Priorytet", + "timeTrackingColumn": "Śledzenie czasu", + "timetrackingColumn": "Śledzenie czasu", + "estimationColumn": "Estymacja", + "startDateColumn": "Data rozpoczęcia", + "startdateColumn": "Data rozpoczęcia", + "dueDateColumn": "Termin", + "duedateColumn": "Termin", + "completedDateColumn": "Data ukończenia", + "completeddateColumn": "Data ukończenia", + "createdDateColumn": "Data utworzenia", + "createddateColumn": "Data utworzenia", + "lastUpdatedColumn": "Ostatnia aktualizacja", + "lastupdatedColumn": "Ostatnia aktualizacja", + "reporterColumn": "Zgłaszający", + "dueTimeColumn": "Godzina terminu", + "todoSelectorText": "Do zrobienia", + "doingSelectorText": "W trakcie", + "doneSelectorText": "Zrobione", + "lowSelectorText": "Niski", + "mediumSelectorText": "Średni", + "highSelectorText": "Wysoki", + "selectText": "Wybierz", + "labelsSelectorInputTip": "Naciśnij enter, aby utworzyć!", + "addTaskText": "Dodaj zadanie", + "addSubTaskText": "Dodaj podzadanie", + "addTaskInputPlaceholder": "Wpisz swoje zadanie i naciśnij enter", + "noTasksInGroup": "Brak zadań w tej grupie", + "dropTaskHere": "Upuść zadanie tutaj", + "openButton": "Otwórz", + "okButton": "Ok", + "noLabelsFound": "Nie znaleziono etykiet", + "searchInputPlaceholder": "Szukaj lub utwórz", + "assigneeSelectorInviteButton": "Zaproś nowego członka przez e-mail", + "labelInputPlaceholder": "Szukaj lub utwórz", + "searchLabelsPlaceholder": "Szukaj etykiet...", + "createLabelButton": "Utwórz „{{name}}”", + "manageLabelsPath": "Ustawienia → Etykiety", + "pendingInvitation": "Oczekujące zaproszenie", + "contextMenu": { + "assignToMe": "Przypisz do mnie", + "copyLink": "Kopiuj link do zadania", + "linkCopied": "Link skopiowany do schowka", + "linkCopyFailed": "Nie udało się skopiować linku", + "moveTo": "Przenieś do", + "unarchive": "Przywróć z archiwum", + "archive": "Archiwizuj", + "convertToSubTask": "Konwertuj na podzadanie", + "convertToTask": "Konwertuj na zadanie", + "delete": "Usuń", + "searchByNameInputPlaceholder": "Szukaj po nazwie" + }, + "setDueDate": "Ustaw termin", + "setStartDate": "Ustaw datę rozpoczęcia", + "clearDueDate": "Wyczyść termin", + "clearStartDate": "Wyczyść datę rozpoczęcia", + "dueDatePlaceholder": "Termin", + "startDatePlaceholder": "Data rozpoczęcia", + "emptyStates": { + "noTaskGroups": "Nie znaleziono grup zadań", + "noTaskGroupsDescription": "Zadania pojawią się tutaj po ich utworzeniu lub zastosowaniu filtrów.", + "errorPrefix": "Błąd:", + "dragTaskFallback": "Zadanie" + }, + "customColumns": { + "addCustomColumn": "Dodaj kolumnę niestandardową", + "customColumnHeader": "Kolumna niestandardowa", + "customColumnSettings": "Ustawienia kolumny niestandardowej", + "noCustomValue": "Brak wartości", + "peopleField": "Pole osoby", + "noDate": "Brak daty", + "unsupportedField": "Nieobsługiwany typ pola", + "modal": { + "addFieldTitle": "Dodaj pole", + "editFieldTitle": "Edytuj pole", + "fieldTitle": "Tytuł pola", + "fieldTitleRequired": "Tytuł pola jest wymagany", + "columnTitlePlaceholder": "Tytuł kolumny", + "type": "Typ", + "deleteConfirmTitle": "Czy na pewno chcesz usunąć tę kolumnę niestandardową?", + "deleteConfirmDescription": "Tej operacji nie można cofnąć. Wszystkie dane powiązane z tą kolumną zostaną trwale usunięte.", + "deleteButton": "Usuń", + "cancelButton": "Anuluj", + "createButton": "Utwórz", + "updateButton": "Aktualizuj", + "createSuccessMessage": "Kolumna niestandardowa utworzona pomyślnie", + "updateSuccessMessage": "Kolumna niestandardowa zaktualizowana pomyślnie", + "deleteSuccessMessage": "Kolumna niestandardowa usunięta pomyślnie", + "deleteErrorMessage": "Nie udało się usunąć kolumny niestandardowej", + "createErrorMessage": "Nie udało się utworzyć kolumny niestandardowej", + "updateErrorMessage": "Nie udało się zaktualizować kolumny niestandardowej" + }, + "fieldTypes": { + "people": "Osoby", + "number": "Liczba", + "date": "Data", + "selection": "Wybór", + "checkbox": "Pole wyboru", + "labels": "Etykiety", + "key": "Klucz", + "formula": "Formuła" + } + }, + "indicators": { + "tooltips": { + "subtasks": "{{count}} podzadanie", + "subtasks_plural": "{{count}} podzadań", + "comments": "{{count}} komentarz", + "comments_plural": "{{count}} komentarzy", + "attachments": "{{count}} załącznik", + "attachments_plural": "{{count}} załączników", + "subscribers": "Zadanie ma subskrybentów", + "dependencies": "Zadanie ma zależności", + "recurring": "Zadanie cykliczne" + } + }, + "timer": { + "conflictTitle": "Timer już działa", + "conflictMessage": "Masz uruchomiony timer dla „{{taskName}}” w projekcie „{{projectName}}”. Czy chcesz zatrzymać ten timer i uruchomić nowy dla tego zadania?", + "stopAndStart": "Zatrzymaj i uruchom nowy timer" + } +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/task-management.json b/worklenz-frontend/public/locales/pl/task-management.json new file mode 100644 index 000000000..5c89d6a87 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/task-management.json @@ -0,0 +1,51 @@ +{ + "noTasksInGroup": "Brak zadań w tej grupie", + "noTasksInGroupDescription": "Dodaj zadanie, aby rozpocząć", + "addFirstTask": "Dodaj swoje pierwsze zadanie", + "openTask": "Otwórz", + "subtask": "podzadanie", + "subtasks": "podzadania", + "comment": "komentarz", + "comments": "komentarze", + "attachment": "załącznik", + "attachments": "załączniki", + "enterSubtaskName": "Wprowadź nazwę podzadania...", + "add": "Dodaj", + "cancel": "Anuluj", + "renameGroup": "Zmień nazwę grupy", + "renameStatus": "Zmień nazwę statusu", + "renamePhase": "Zmień nazwę fazy", + "changeCategory": "Zmień kategorię", + "clickToEditGroupName": "Kliknij, aby edytować nazwę grupy", + "enterGroupName": "Wprowadź nazwę grupy", + "todo": "Do zrobienia", + "inProgress": "W trakcie", + "done": "Zrobione", + "defaultTaskName": "Zadanie bez tytułu", + "indicators": { + "tooltips": { + "subtasks": "{{count}} podzadanie", + "subtasks_plural": "{{count}} podzadania", + "comments": "{{count}} komentarz", + "comments_plural": "{{count}} komentarze", + "attachments": "{{count}} załącznik", + "attachments_plural": "{{count}} załączniki", + "subscribers": "Zadanie ma subskrybentów", + "dependencies": "Zadanie ma zależności", + "recurring": "Zadanie cykliczne" + } + }, + "tooltips": { + "subtasks_one": "{{count}} podzadanie", + "subtasks_few": "{{count}} podzadania", + "subtasks_many": "{{count}} podzadań", + "comments_one": "{{count}} komentarz", + "comments_few": "{{count}} komentarze", + "comments_many": "{{count}} komentarzy", + "attachments_one": "{{count}} załącznik", + "attachments_few": "{{count}} załączniki", + "attachments_many": "{{count}} załączników" + }, + "selectPhase": "Wybierz", + "noData": "Brak danych" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/task-template-drawer.json b/worklenz-frontend/public/locales/pl/task-template-drawer.json new file mode 100644 index 000000000..3ab617db8 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/task-template-drawer.json @@ -0,0 +1,12 @@ +{ + "createTaskTemplate": "Utwórz szablon zadania", + "editTaskTemplate": "Edytuj szablon zadania", + "cancelText": "Anuluj", + "saveText": "Zapisz", + "templateNameText": "Nazwa szablonu", + "templateNameRequired": "Nazwa szablonu jest wymagana", + "selectedTasks": "Wybrane zadania", + "removeTask": "Usuń", + "cancelButton": "Anuluj", + "saveButton": "Zapisz" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/tasks/task-table-bulk-actions.json b/worklenz-frontend/public/locales/pl/tasks/task-table-bulk-actions.json new file mode 100644 index 000000000..f601d1439 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/tasks/task-table-bulk-actions.json @@ -0,0 +1,43 @@ +{ + "taskSelected": "wybrane zadanie", + "tasksSelected": "wybrane zadania", + "changeStatus": "Zmień status/priorytet/fazy", + "changeLabel": "Zmień etykietę", + "assignToMe": "Przypisz do mnie", + "changeAssignees": "Zmień przypisanych", + "archive": "Archiwizuj", + "unarchive": "Przywróć z archiwum", + "delete": "Usuń", + "moreOptions": "Więcej opcji", + "deselectAll": "Odznacz wszystko", + "status": "Status", + "priority": "Priorytet", + "phase": "Faza", + "member": "Członek", + "createTaskTemplate": "Utwórz szablon zadania", + "apply": "Zastosuj", + "createLabel": "+ Utwórz etykietę", + "searchOrCreateLabel": "Szukaj lub utwórz etykietę...", + "hitEnterToCreate": "Naciśnij Enter, aby utworzyć", + "labelExists": "Etykieta już istnieje", + "pendingInvitation": "Oczekujące zaproszenie", + "noMatchingLabels": "Brak pasujących etykiet", + "noLabels": "Brak etykiet", + "CHANGE_STATUS": "Zmień status", + "CHANGE_PRIORITY": "Zmień priorytet", + "CHANGE_PHASE": "Zmień fazę", + "ADD_LABELS": "Dodaj etykiety", + "ASSIGN_TO_ME": "Przypisz do mnie", + "ASSIGN_MEMBERS": "Przypisz członków", + "ARCHIVE": "Archiwizuj", + "DELETE": "Usuń", + "CANCEL": "Anuluj", + "CLEAR_SELECTION": "Wyczyść zaznaczenie", + "DELETE_TASKS_WARNING": "Tej czynności nie można cofnąć.", + "TASKS_SELECTED_one": "{{count}} wybrane zadanie", + "TASKS_SELECTED_few": "{{count}} wybrane zadania", + "TASKS_SELECTED_many": "{{count}} wybranych zadań", + "DELETE_TASKS_CONFIRM_one": "Usunąć {{count}} zadanie?", + "DELETE_TASKS_CONFIRM_few": "Usunąć {{count}} zadania?", + "DELETE_TASKS_CONFIRM_many": "Usunąć {{count}} zadań?" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/template-drawer.json b/worklenz-frontend/public/locales/pl/template-drawer.json new file mode 100644 index 000000000..2e66f9874 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/template-drawer.json @@ -0,0 +1,19 @@ +{ + "title": "Edytuj Szablon Zadania", + "cancelText": "Anuluj", + "saveText": "Zapisz", + "templateNameText": "Nazwa Szablonu", + "selectedTasks": "Wybrane Zadania", + "removeTask": "Usuń", + "description": "Opis", + "phase": "Faza", + "statuses": "Statusy", + "priorities": "Priorytety", + "labels": "Etykiety", + "tasks": "Zadania", + "noTemplateSelected": "Nie wybrano szablonu", + "noDescription": "Brak opisu", + "worklenzTemplates": "Szablony Worklenz", + "yourTemplatesLibrary": "Twoja Biblioteka", + "searchTemplates": "Szukaj Szablonów" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/templateDrawer.json b/worklenz-frontend/public/locales/pl/templateDrawer.json new file mode 100644 index 000000000..9a4470c1f --- /dev/null +++ b/worklenz-frontend/public/locales/pl/templateDrawer.json @@ -0,0 +1,23 @@ +{ + "bugTracking": "Śledzenie błędów", + "construction": "Budownictwo", + "designCreative": "Projektowanie i kreatywność", + "education": "Edukacja", + "finance": "Finanse", + "hrRecruiting": "HR i rekrutacja", + "informationTechnology": "Technologie informacyjne", + "legal": "Prawo", + "manufacturing": "Produkcja", + "marketing": "Marketing", + "nonprofit": "Organizacja non-profit", + "personalUse": "Użytek osobisty", + "salesCRM": "Sprzedaż i CRM", + "serviceConsulting": "Usługi i doradztwo", + "softwareDevelopment": "Rozwój oprogramowania", + "description": "Opis", + "phase": "Faza", + "statuses": "Statusy", + "priorities": "Priorytety", + "labels": "Etykiety", + "tasks": "Zadania" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/time-report.json b/worklenz-frontend/public/locales/pl/time-report.json new file mode 100644 index 000000000..55b74ca3f --- /dev/null +++ b/worklenz-frontend/public/locales/pl/time-report.json @@ -0,0 +1,45 @@ +{ + "includeArchivedProjects": "Uwzględnij zarchiwizowane projekty", + "export": "Eksportuj", + "timeSheet": "Arkusz czasu pracy", + "searchByName": "Szukaj po nazwie", + "selectAll": "Zaznacz wszystko", + "teams": "Zespoły", + "searchByProject": "Szukaj po nazwie projektu", + "projects": "Projekty", + "searchByCategory": "Szukaj po nazwie kategorii", + "categories": "Kategorie", + "billable": "Rozliczalne", + "nonBillable": "Nierozliczalne", + "total": "Suma", + "projectsTimeSheet": "Arkusz czasu pracy projektów", + "loggedTime": "Zalogowany czas (godziny)", + "exportToExcel": "Eksportuj do Excela", + "logged": "zalogowano", + "for": "dla", + "membersTimeSheet": "Arkusz czasu pracy członków", + "member": "Członek", + "estimatedVsActual": "Szacowane vs Rzeczywiste", + "workingDays": "Dni robocze", + "manDays": "Roboczodni", + "days": "Dni", + "estimatedDays": "Szacowane dni", + "actualDays": "Rzeczywiste dni", + "noCategories": "Nie znaleziono kategorii", + "noCategory": "Brak kategorii", + "noProjects": "Nie znaleziono projektów", + "noTeams": "Nie znaleziono zespołów", + "noData": "Nie znaleziono danych", + "groupBy": "Grupuj według", + "groupByCategory": "Kategoria", + "groupByTeam": "Zespół", + "groupByStatus": "Status", + "groupByNone": "Brak", + "clearSearch": "Wyczyść wyszukiwanie", + "selectedProjects": "Wybrane projekty", + "projectsSelected": "wybrano projektów", + "showSelected": "Pokaż tylko wybrane", + "expandAll": "Rozwiń wszystko", + "collapseAll": "Zwiń wszystko", + "ungrouped": "Niepogrupowane" +} \ No newline at end of file diff --git a/worklenz-frontend/public/locales/pl/unauthorized.json b/worklenz-frontend/public/locales/pl/unauthorized.json new file mode 100644 index 000000000..57f8b1426 --- /dev/null +++ b/worklenz-frontend/public/locales/pl/unauthorized.json @@ -0,0 +1,5 @@ +{ + "title": "Nieautoryzowany!", + "subtitle": "Nie masz uprawnień do dostępu do tej strony", + "button": "Przejdź do strony głównej" +} \ No newline at end of file diff --git a/worklenz-frontend/src/features/i18n/LanguageSelector.tsx b/worklenz-frontend/src/features/i18n/LanguageSelector.tsx index 36c887579..cd5924e6a 100644 --- a/worklenz-frontend/src/features/i18n/LanguageSelector.tsx +++ b/worklenz-frontend/src/features/i18n/LanguageSelector.tsx @@ -18,6 +18,7 @@ const LanguageSelector = () => { { key: 'alb', label: 'Shqip' }, { key: 'de', label: 'Deutsch' }, { key: 'zh_cn', label: '简体中文' }, + { key: 'pl', label: 'Polski' }, ]; const languageLabels = { @@ -27,6 +28,7 @@ const LanguageSelector = () => { alb: 'Sq', de: 'de', zh_cn: 'zh_cn', + pl: 'Pl', }; return ( diff --git a/worklenz-frontend/src/features/i18n/localesSlice.ts b/worklenz-frontend/src/features/i18n/localesSlice.ts index 74644183e..f91b77bbe 100644 --- a/worklenz-frontend/src/features/i18n/localesSlice.ts +++ b/worklenz-frontend/src/features/i18n/localesSlice.ts @@ -9,6 +9,7 @@ export enum Language { DE = 'de', ZH_CN = 'zh_cn', KO = 'ko', + PL = 'pl', } export type ILanguageType = `${Language}`; diff --git a/worklenz-frontend/src/utils/current-date-string.ts b/worklenz-frontend/src/utils/current-date-string.ts index 10b879294..e1531178a 100644 --- a/worklenz-frontend/src/utils/current-date-string.ts +++ b/worklenz-frontend/src/utils/current-date-string.ts @@ -1,59 +1,35 @@ import dayjs from 'dayjs'; +import 'dayjs/locale/pl'; +import 'dayjs/locale/ko'; import { getLanguageFromLocalStorage } from './language-utils'; +const localeMap: Record = { + 'en': 'en', + 'es': 'es', + 'pt': 'pt', + 'de': 'de', + 'zh_cn': 'zh-cn', + 'alb': 'sq', + 'pl': 'pl', + 'ko': 'ko', +}; + +const todayTextMap: Record = { + 'en': 'Today is', + 'es': 'Hoy es', + 'pt': 'Hoje é', + 'de': 'Heute ist', + 'zh_cn': '今天是', + 'alb': 'Sot është', + 'pl': 'Dziś jest', + 'ko': '오늘은', +}; + export const currentDateString = (): string => { const date = dayjs(); const localeString = getLanguageFromLocalStorage(); - - // Map language codes to dayjs locales - let locale = 'en'; // Default to English - switch (localeString) { - case 'en': - locale = 'en'; - break; - case 'es': - locale = 'es'; - break; - case 'pt': - locale = 'pt'; - break; - case 'de': - locale = 'de'; - break; - case 'zh_cn': - locale = 'zh-cn'; - break; - case 'alb': - locale = 'sq'; // Albanian locale code for dayjs - break; - default: - locale = 'en'; - } - - // Get localized "Today is" text - let todayText = 'Today is'; // Default English - switch (localeString) { - case 'en': - todayText = 'Today is'; - break; - case 'es': - todayText = 'Hoy es'; - break; - case 'pt': - todayText = 'Hoje é'; - break; - case 'de': - todayText = 'Heute ist'; - break; - case 'zh_cn': - todayText = '今天是'; - break; - case 'alb': - todayText = 'Sot është'; - break; - default: - todayText = 'Today is'; - } + const locale = localeMap[localeString] || 'en'; + const todayText = todayTextMap[localeString] || 'Today is'; return `${todayText} ${date.locale(locale).format('dddd, MMMM DD, YYYY')}`; }; diff --git a/worklenz-frontend/src/utils/dateUtils.ts b/worklenz-frontend/src/utils/dateUtils.ts index ad22c9114..cfa4570b2 100644 --- a/worklenz-frontend/src/utils/dateUtils.ts +++ b/worklenz-frontend/src/utils/dateUtils.ts @@ -5,6 +5,8 @@ import 'dayjs/locale/de'; import 'dayjs/locale/es'; import 'dayjs/locale/pt'; import 'dayjs/locale/zh-cn'; +import 'dayjs/locale/pl'; +import 'dayjs/locale/ko'; import { getLanguageFromLocalStorage } from './language-utils'; // Initialize plugins @@ -19,7 +21,9 @@ const getLocaleFromLanguage = (language: string): string => { 'es': 'es', 'pt': 'pt', 'alb': 'en', // Albanian not supported by dayjs, fallback to English - 'zh': 'zh-cn' + 'zh': 'zh-cn', + 'pl': 'pl', + 'ko': 'ko' }; return localeMap[language] || 'en'; }; diff --git a/worklenz-frontend/src/utils/format-date-time-with-locale.ts b/worklenz-frontend/src/utils/format-date-time-with-locale.ts index 23548ac3a..5f548c42a 100644 --- a/worklenz-frontend/src/utils/format-date-time-with-locale.ts +++ b/worklenz-frontend/src/utils/format-date-time-with-locale.ts @@ -1,12 +1,25 @@ import { format } from 'date-fns'; -import { enUS, es, pt } from 'date-fns/locale'; +import { enUS, es, pt, de, pl, ko, zhCN } from 'date-fns/locale'; import { getLanguageFromLocalStorage } from './language-utils'; +const getDateFnsLocale = (lang: string) => { + const localeMap: Record = { + 'en': enUS, + 'es': es, + 'pt': pt, + 'de': de, + 'pl': pl, + 'ko': ko, + 'zh_cn': zhCN, + }; + return localeMap[lang] || enUS; +}; + export const formatDateTimeWithLocale = (dateString: string): string => { if (!dateString) return ''; const date = new Date(dateString); const localeString = getLanguageFromLocalStorage(); - const locale = localeString === 'en' ? enUS : localeString === 'es' ? es : pt; + const locale = getDateFnsLocale(localeString); return format(date, 'MMM d, yyyy, h:mm:ss a', { locale }); }; diff --git a/worklenz-frontend/src/utils/greetingString.ts b/worklenz-frontend/src/utils/greetingString.ts index 86043f0be..37bdbd882 100644 --- a/worklenz-frontend/src/utils/greetingString.ts +++ b/worklenz-frontend/src/utils/greetingString.ts @@ -41,6 +41,18 @@ export const greetingString = (name: string): string => { morning = 'Morgen'; afternoon = 'Tag'; evening = 'Abend'; + } else if (language === 'pl') { + greetingPrefix = 'Cześć'; + greetingSuffix = 'Dobry'; + morning = 'poranek'; + afternoon = 'dzień'; + evening = 'wieczór'; + } else if (language === 'ko') { + greetingPrefix = '안녕하세요'; + greetingSuffix = ''; + morning = '좋은 아침'; + afternoon = '좋은 오후'; + evening = '좋은 저녁'; } else if (language === 'zh_cn') { greetingPrefix = '你好'; greetingSuffix = ''; @@ -60,5 +72,10 @@ export const greetingString = (name: string): string => { return `${greetingPrefix} ${name}, ${localizedTimePeriod}!`; } + // Handle languages with empty greetingSuffix (e.g., Korean) + if (!greetingSuffix) { + return `${greetingPrefix} ${name}, ${localizedTimePeriod}!`; + } + return `${greetingPrefix} ${name}, ${greetingSuffix} ${localizedTimePeriod}!`; };