fix: placeholder names inside {…} were translated

This commit is contained in:
Rotimi Best
2026-05-27 14:57:21 +01:00
parent 9082cbebf4
commit d855b45eda
9 changed files with 347 additions and 329 deletions
@@ -7,17 +7,17 @@
},
"validations": {
"generic": {
"invalid_type": "Nieprawidłowy typ{oczekiwany, wybierz, niezdefiniowany{} inny{. Oczekiwany {oczekiwany}}}{otrzymany, wybierz, niezdefiniowany{} inny{ (otrzymany {otrzymany})}}",
"too_big": "Wartość jest za duża{maksymalna, wybierz, niezdefiniowana{} inna{. Maksymalnie {maksimum}}}",
"too_small": "Wartość jest za mała{minimum, wybierz, niezdefiniowane{} inne{. Minimum {minimum}}}",
"invalid_format": "Nieprawidłowy format{validacja, wybierz, niezdefiniowany{} other{ for {validation}}}",
"invalid_type": "Nieprawidłowy typ{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}",
"too_big": "Wartość jest za duża{maximum, select, undefined{} other{. Maximum {maximum}}}",
"too_small": "Wartość jest za mała{minimum, select, undefined{} other{. Minimum {minimum}}}",
"invalid_format": "Nieprawidłowy format{validation, select, undefined{} other{ for {validation}}}",
"not_multiple_of": "Wartość musi być wielokrotnością {multipleOf}",
"unrecognized_keys": "Zawiera nierozpoznane klucze{klucze, wybierz, niezdefiniowane{} inne{: {klucze}}}",
"invalid_union": "Nieprawidłowa wartość podanych opcji{unionErrors, wybierz, niezdefiniowane{} inne{. Niepowodzenie opcji: {unionErrors}}}",
"invalid_key": "Nieprawidłowy klucz{klucz, wybierz, niezdefiniowany{} inny{: {klucz}}}",
"invalid_element": "Nieprawidłowy element{index, wybierz, niezdefiniowany{} other{ w indeksie {index}}}",
"invalid_value": "Nieprawidłowa wartość{oczekiwana, wybierz, niezdefiniowana{} inna{. Oczekiwany {oczekiwany}}}{otrzymany, wybierz, niezdefiniowany{} inny{ (otrzymany {otrzymany})}}",
"custom": "{wiadomość}",
"unrecognized_keys": "Zawiera nierozpoznane klucze{keys, select, undefined{} other{: {keys}}}",
"invalid_union": "Nieprawidłowa wartość podanych opcji{unionErrors, select, undefined{} other{. {unionErrors} option(s) failed}}",
"invalid_key": "Nieprawidłowy klucz{key, select, undefined{} other{: {key}}}",
"invalid_element": "Nieprawidłowy element{index, select, undefined{} other{ w indeksie {index}}}",
"invalid_value": "Nieprawidłowa wartość{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}",
"custom": "{message}",
"required_field": "To pole jest wymagane",
"invalid_field": "Nieprawidłowa wartość"
},
@@ -118,7 +118,7 @@
},
"exercise": {
"options": {
"custom": "{wiadomość}"
"custom": "{message}"
},
"points": {
"too_small": "Punkty muszą wynosić co najmniej 0"
@@ -531,7 +531,7 @@
"description": "Zapisy pogrupowane według typu kursu",
"subtitle": "Liczba rejestracji wszystkich typów: {total}",
"empty": "Nie ma jeszcze danych zapisów",
"course_count": "{count, plural, one {# kurs} other {# kursy}}",
"course_count": "{count, plural, one {# course} other {# courses}}",
"views_short": "widoki",
"types": {
"SELF_PACED": "We własnym tempie",
@@ -589,8 +589,8 @@
"progress_distribution_card_description": "Ilu uczniów mieści się w każdym przedziale ukończenia.",
"grade_distribution_card_description": "Ilu uczniów należy do każdego przedziału ocen.",
"students_table_description": "Sortowalny przegląd z linkami do profili uczniów.",
"kpi_team_tutors": "{count, plural, one {# korepetytor w zespole kursu} other {# korepetytorów w zespole kursu}}",
"kpi_lessons_exercises": "{count, plural, one {# ćwiczenie} inne {# ćwiczenia}} przypisane do lekcji",
"kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}",
"kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} przypisane do lekcji",
"kpi_progress_grade": "{grade}% średniej oceny z ćwiczeń wśród zapisanych uczniów"
}
},
@@ -629,7 +629,7 @@
"send_email": "Wyślij e-mail z powiadomieniem",
"submit": "Przypisz",
"cancel": "Anuluj",
"snackbar_success": "Przypisano {przydzielonych} użytkowników do kursów ({alreadyEnrolled} jest już zapisanych, wysłano e-maile: {emailsSent})",
"snackbar_success": "Przypisano {assigned} użytkowników do kursów ({alreadyEnrolled} jest już zapisanych, wysłano e-maile: {emailsSent})",
"snackbar_no_courses": "Proszę wybrać przynajmniej jeden kurs",
"snackbar_failed": "Nie udało się przypisać kursów"
},
@@ -1109,7 +1109,7 @@
"snackbar_failed_revoke_invite": "Nie udało się odwołać zaproszenia",
"snackbar_failed_load_audit": "Nie udało się wczytać audytu zaproszeń",
"snackbar_metadata_copied": "Zaproś skopiowane metadane",
"snackbar_email_invites_success": "Utworzono zaproszenia ({count}). Wysłano {wysłano}, nie udało się {nie udało się}. Pominięte duplikaty: {duplikaty}.",
"snackbar_email_invites_success": "Utworzono zaproszenia ({count}). Wysłano {sent}, nie udało się {failed}. Pominięte duplikaty: {duplicates}.",
"select_at_least_one_student": "Select at least one existing student",
"presets": {
"one_time_24h": "Jednorazowo (24h)",
@@ -1342,7 +1342,7 @@
"checking_submission": "Sprawdzam Twoje zgłoszenie...",
"answer_required": "Zanim przejdziesz dalej, odpowiedz na to pytanie.",
"instructor_feedback": "Informacje zwrotne od instruktora",
"attempt_counter": "Próba {bieżąca} z {total}",
"attempt_counter": "Próba {current} z {total}",
"previous_try": "Poprzednia próba",
"next_try": "Następna próba",
"try_again": "Spróbuj ponownie",
@@ -1379,7 +1379,9 @@
},
"select_type": "Wybierz typ",
"question_type_auto_gradable": "Auto",
"question_type_auto_gradable_description": "Scored automatically by the system",
"question_type_manual_grading": "Manual",
"question_type_manual_grading_description": "Requires human review to score",
"premium_question_type": "Uaktualnij, aby używać tego typu pytań"
},
"delete_confirmation": {
@@ -1439,7 +1441,7 @@
"helper": "Przeciągnij elementy, aby określić właściwą kolejność.",
"add_step": "Dodaj krok",
"empty": "Dodaj kroki, a następnie przeciągnij, aby ustawić oczekiwaną kolejność.",
"step_placeholder": "Krok „{'indeks'}'",
"step_placeholder": "Krok „{'index'}'",
"remove_step_tooltip": "Usuń krok"
}
},
@@ -1457,7 +1459,7 @@
"link": {
"preview": {
"empty": "Nie przesłano żadnych linków.",
"item_label": "Link „{'indeks'}'"
"item_label": "Link „{'index'}'"
},
"take": {
"helper": "Dodaj jeden lub więcej linków. Akceptowane są tylko prawidłowe adresy URL http/https.",
@@ -1795,7 +1797,7 @@
"view_pdf": "Zobacz PDF",
"remove_document": "Usuń dokument",
"delete": "Usuń",
"page_of": "Strona {strona} z {total}",
"page_of": "Strona {page} z {total}",
"loading_pdf": "Ładowanie pliku PDF...",
"failed_to_load_pdf": "Nie udało się załadować dokumentu PDF",
"failed_to_render_pdf": "Nie udało się wyrenderować strony PDF",
@@ -1837,8 +1839,8 @@
"add_from_library": "Dodaj z biblioteki",
"cancel_upload": "Anuluj przesyłanie",
"upload_cancelled": "Przesyłanie anulowane przez użytkownika",
"max_files": "{count, plural, one {Możesz przesłać # plik} other {Możesz przesłać # plików}}",
"max_files_and_size": "(do {rozmiar} każdy)",
"max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}",
"max_files_and_size": "(do {size} każdy)",
"google_drive_choose": "Wybierz z Dysku Google",
"google_drive_opening": "Otwieram selektor…",
"google_drive_hint": "Wybierz film ze swojego konta Google. Każda osoba przeglądająca lekcję potrzebuje dostępu — ustaw udostępnianie na Dysku na „Każda osoba mająca link może wyświetlać” (lub odpowiednik w Twojej organizacji).",
@@ -1973,7 +1975,7 @@
"user_avatar_alt": "Awatar użytkownika",
"comments": {
"comment": "komentarz",
"showing_of": "Wyświetlanie {pokazane} z {total}",
"showing_of": "Wyświetlanie {shown} z {total}",
"hide": "Ukryj komentarze",
"placeholder": "Dodaj komentarz do zajęć",
"submit_aria": "Prześlij komentarz",
@@ -2111,7 +2113,7 @@
}
},
"certificates": {
"progress_hint": "{bieżący}% ukończenia ({required}% wymagane do pobrania)"
"progress_hint": "{current}% ukończenia ({required}% wymagane do pobrania)"
},
"certification": {
"rules_heading": "Zasady",
@@ -2329,17 +2331,17 @@
"pick_up_where_you_left_off": "Rozpocznij od miejsca, w którym skończyłeś",
"course_awaits_you": "{title} czeka na Ciebie",
"learning_awaits_you": "Kolejny kurs już na Ciebie czeka",
"lms_today_progress": "Twoje postępy w nauce są następujące: liczy się każdy krok.",
"lms_today_progress": "Twój postęp w nauce wynosi {progress}% – każdy krok się liczy.",
"lms_today_empty": "Twoja ścieżka edukacyjna jest gotowa, gdy Ty jesteś.",
"compliance_score": "Wynik zgodności",
"compliance": "Zgodność",
"compliance_score_subtitle": "Obecnie ukończone {completed} z {total} kursów compliance",
"compliance_score_empty": "Nie przydzielono jeszcze żadnych kursów z zakresu zgodności",
"compliance_met": "Osiągnięto {ukończone} z {total}",
"compliance_met": "Osiągnięto {completed} z {total}",
"required_courses_completed": "Ukończono {completed} z {total} wymaganych kursów",
"streak": "Smuga",
"days_active": "dni aktywne",
"items_done": "Wykonano {ukończone} z {total}",
"items_done": "Wykonano {completed} z {total}",
"login_activity_title": "Aktywność logowania ucznia",
"login_activity_description": "Najbardziej aktywne dni tygodnia (ostatnie 90 dni)",
"login_activity_no_data": "Brak aktywności związanej z logowaniem",
@@ -3050,8 +3052,8 @@
"field_theme": "Temat",
"field_hero": "Nagłówek bohatera",
"field_nav": "Nawigacja",
"field_nav_count_one": "{liczba} linków",
"field_nav_count_other": "Liczba linków",
"field_nav_count_one": "{count} linków",
"field_nav_count_other": "{count} linków",
"hero_empty": "—",
"customize": "Dostosuj stronę docelową"
}
@@ -3266,8 +3268,8 @@
"title": "Kup więcej tokenów",
"description": "Każdy pakiet dodaje 5 000 000 kredytów za 5 USD. Wybierz, ile opakowań potrzebujesz.",
"quantity_hint": "paczki",
"preview": "{ilość} paczek · {tokens} tokenów · ${dolary}",
"buy_button": "Kup za ${dolarów}"
"preview": "{quantity} paczek · {tokens} tokenów · ${dollars}",
"buy_button": "Kup za ${dollars}"
},
"leaderboard": {
"title": "Wykorzystanie zespołu",
@@ -3288,13 +3290,13 @@
"purchased": {
"title": "Zakupione użycie",
"subtitle": "Dodatkowe zakupione żetony przechodzą na inne, dopóki nie zostaną wykorzystane.",
"lifetime": "Zakupiono {tokens} tokenów · Wydano ${dolarów}",
"lifetime": "Zakupiono {tokens} tokenów · Wydano ${dollars}",
"buy_more": "Kup więcej"
},
"included": {
"title": "Twoje uwzględnione wykorzystanie",
"subtitle": "Tokeny miesięczne zawarte w Twoim planie.",
"resets_on": "Resetuje {data}"
"resets_on": "Resetuje {date}"
}
}
},
@@ -3702,7 +3704,7 @@
"no_available_courses": "Brak dostępnych kursów do dodania.",
"no_matching_courses": "Żaden kurs nie pasuje do Twojego wyszukiwania.",
"no_matching_program_courses": "Żaden kurs programowy nie pasuje do Twojego wyszukiwania.",
"pagination_status": "Strona {strona} z {totalPages}",
"pagination_status": "Strona {page} z {totalPages}",
"published_access_callout_title": "Dostęp studencki",
"published_access_callout_description": "Studenci mają dostęp wyłącznie do opublikowanych kursów. Kursy mogą znajdować się w tym programie dla Twojego zespołu, gdy nie są jeszcze opublikowane, ale pozostają ukryte przed uczniami, dopóki ich nie opublikujesz."
},
@@ -3724,7 +3726,7 @@
"user_avatar_alt": "Awatar użytkownika",
"comments": {
"comment": "komentarz",
"showing_of": "Wyświetlanie {pokazane} z {total}",
"showing_of": "Wyświetlanie {shown} z {total}",
"hide": "Ukryj komentarze",
"placeholder": "Dodaj komentarz do programu",
"submit_aria": "Prześlij komentarz",
@@ -3801,7 +3803,7 @@
"heading": "Twoje cele",
"empty_title": "Brak przypisanych celów",
"empty_description": "Kiedy Twoi instruktorzy wyznaczą cele, pojawią się tutaj.",
"due_in_days": "Termin za {day} dni",
"due_in_days": "Termin za {days} dni",
"due_tomorrow": "Termin na jutro",
"due_today": "Termin na dzisiaj",
"overdue": "Zaległe",
@@ -3967,7 +3969,7 @@
"rename_chat_placeholder": "Tytuł rozmowy",
"rename_chat_failed": "Nie można zmienić nazwy tej rozmowy. Spróbuj ponownie.",
"error_rate_limit": "Usługa AI jest chwilowo zajęta. Spróbuj ponownie za chwilę.",
"error_rate_limit_with_wait": "Usługa AI jest chwilowo zajęta. Spróbuj ponownie za {sekundy} sekund.",
"error_rate_limit_with_wait": "Usługa AI jest chwilowo zajęta. Spróbuj ponownie za {seconds} sekund.",
"error_context_too_long": "Rozmowa jest za długa. Spróbuj rozpocząć nowy czat lub skrócić wiadomość.",
"error_network": "Błąd sieci. Sprawdź połączenie i spróbuj ponownie.",
"context_usage_tooltip": "Wykorzystano {used} / {max} tokenów",
@@ -3996,7 +3998,7 @@
"completed": "Uruchomienie zakończone.",
"completed_with_counts": "Uruchomienie zakończone — utworzono {counts}.",
"failed": "Uruchomienie nie powiodło się.",
"failed_with_reason": "Uruchomienie nie powiodło się — {powód}.",
"failed_with_reason": "Uruchomienie nie powiodło się — {reason}.",
"canceled": "Bieg odwołany.",
"canceled_with_counts": "Uruchomienie anulowane — utworzono {counts} przed zatrzymaniem.",
"paused": "Uruchomienie wstrzymane. Wznów, aby kontynuować.",
@@ -4311,7 +4313,7 @@
"submit": "Sprawdź moje odpowiedzi",
"try_again": "Spróbuj ponownie",
"practice_again": "Poćwicz jeszcze raz",
"attempt_option": "Próba {attemptNumber} – {poprawna}/{total}",
"attempt_option": "Próba {attemptNumber} – {correct}/{total}",
"attempts_select_aria": "Twoje próby",
"privacy_hint": "Oceniane natychmiastowo w Twojej przeglądarce – nic nie jest przesyłane.",
"summary_template": "Masz [[correct]] / [[total]] poprawnie."