From 6d7ccf7460512e86199270b02d62feedeadc39ac Mon Sep 17 00:00:00 2001 From: Artur Skowronski Date: Fri, 27 Feb 2026 13:20:38 +0100 Subject: [PATCH 1/5] feat(i18n): add initial Polish locale translations --- README.md | 2 +- html-generators/locales.properties | 1 + .../pl/collections/collectors-teeing.yaml | 17 ++++ .../completablefuture-chaining.yaml | 17 ++++ .../content/pl/datetime/date-formatting.yaml | 17 ++++ .../ejb-timer-vs-jakarta-scheduler.yaml | 17 ++++ .../content/pl/errors/helpful-npe.yaml | 17 ++++ .../pl/io/deserialization-filters.yaml | 17 ++++ .../compact-canonical-constructor.yaml | 17 ++++ .../pl/language/type-inference-with-var.yaml | 17 ++++ .../pl/security/key-derivation-functions.yaml | 17 ++++ .../pl/streams/collectors-flatmapping.yaml | 17 ++++ .../pl/strings/string-chars-stream.yaml | 17 ++++ .../pl/tooling/aot-class-preloading.yaml | 17 ++++ translations/strings/pl.yaml | 88 +++++++++++++++++++ 15 files changed, 294 insertions(+), 1 deletion(-) create mode 100644 translations/content/pl/collections/collectors-teeing.yaml create mode 100644 translations/content/pl/concurrency/completablefuture-chaining.yaml create mode 100644 translations/content/pl/datetime/date-formatting.yaml create mode 100644 translations/content/pl/enterprise/ejb-timer-vs-jakarta-scheduler.yaml create mode 100644 translations/content/pl/errors/helpful-npe.yaml create mode 100644 translations/content/pl/io/deserialization-filters.yaml create mode 100644 translations/content/pl/language/compact-canonical-constructor.yaml create mode 100644 translations/content/pl/language/type-inference-with-var.yaml create mode 100644 translations/content/pl/security/key-derivation-functions.yaml create mode 100644 translations/content/pl/streams/collectors-flatmapping.yaml create mode 100644 translations/content/pl/strings/string-chars-stream.yaml create mode 100644 translations/content/pl/tooling/aot-class-preloading.yaml create mode 100644 translations/strings/pl.yaml diff --git a/README.md b/README.md index ad1a6d7..622c55d 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Generated files (`site/category/*.html`, `site/{locale}/`, and `site/data/snippe ### Internationalization -The site supports 9 languages: English, Deutsch, Español, Português (Brasil), 中文 (简体), العربية, Français, 日本語, and 한국어. See [`specs/i18n/i18n-spec.md`](specs/i18n/i18n-spec.md) for the full specification. +The site supports 10 languages: English, Deutsch, Español, Português (Brasil), 中文 (简体), العربية, Français, 日本語, 한국어, and Polski. See [`specs/i18n/i18n-spec.md`](specs/i18n/i18n-spec.md) for the full specification. ## Build & run locally diff --git a/html-generators/locales.properties b/html-generators/locales.properties index 1013c65..ff07165 100644 --- a/html-generators/locales.properties +++ b/html-generators/locales.properties @@ -8,3 +8,4 @@ ar=🇸🇦 العربية fr=🇫🇷 Français ja=🇯🇵 日本語 ko=🇰🇷 한국어 +pl=🇵🇱 Polski diff --git a/translations/content/pl/collections/collectors-teeing.yaml b/translations/content/pl/collections/collectors-teeing.yaml new file mode 100644 index 0000000..2460050 --- /dev/null +++ b/translations/content/pl/collections/collectors-teeing.yaml @@ -0,0 +1,17 @@ +title: Collectors.teeing() +oldApproach: Dwa przebiegi +modernApproach: teeing() +summary: Oblicz dwa agregaty w jednym przebiegu strumienia. +explanation: Collectors.teeing() przekazuje każdy element do dwóch kolektorów downstream i scala wyniki. Dzięki temu nie trzeba przetwarzać danych dwa razy ani używać mutowalnego akumulatora. +whyModernWins: + - icon: ⚡ + title: Jeden przebieg + desc: Przetwarzasz strumień raz zamiast dwa razy. + - icon: 🧩 + title: Kompozycyjność + desc: Możesz połączyć dowolne dwa kolektory funkcją scalającą. + - icon: 🔒 + title: Niemutowalny wynik + desc: Wynik można od razu scalić do rekordu lub obiektu wartości. +support: + description: Szeroko dostępne od JDK 12 (marzec 2019) diff --git a/translations/content/pl/concurrency/completablefuture-chaining.yaml b/translations/content/pl/concurrency/completablefuture-chaining.yaml new file mode 100644 index 0000000..7dc5391 --- /dev/null +++ b/translations/content/pl/concurrency/completablefuture-chaining.yaml @@ -0,0 +1,17 @@ +title: Łańcuchowanie CompletableFuture +oldApproach: Blokujące Future.get() +modernApproach: CompletableFuture +summary: Łącz operacje asynchroniczne bez blokowania, używając CompletableFuture. +explanation: CompletableFuture pozwala budować nieblokujące potoki async. Łącz kroki przez thenApply, thenCompose i thenAccept. Błędy obsługuj przez exceptionally(). Wiele future można łączyć przez allOf/anyOf. +whyModernWins: + - icon: 🔗 + title: Łańcuchowanie + desc: Składasz kroki asynchroniczne w czytelny pipeline. + - icon: 🚫 + title: Bez blokowania + desc: Żaden wątek nie czeka bezczynnie na wynik. + - icon: 🛡️ + title: Obsługa błędów + desc: exceptionally() i handle() upraszczają odzyskiwanie po błędach. +support: + description: Szeroko dostępne od JDK 8 (marzec 2014) diff --git a/translations/content/pl/datetime/date-formatting.yaml b/translations/content/pl/datetime/date-formatting.yaml new file mode 100644 index 0000000..6fc3f96 --- /dev/null +++ b/translations/content/pl/datetime/date-formatting.yaml @@ -0,0 +1,17 @@ +title: Formatowanie dat +oldApproach: SimpleDateFormat +modernApproach: DateTimeFormatter +summary: Formatuj daty przez niezmienny i bezpieczny wątkowo DateTimeFormatter. +explanation: DateTimeFormatter jest niemutowalny i bezpieczny wątkowo, w przeciwieństwie do SimpleDateFormat. Możesz przechowywać go jako stałą i współdzielić. Dla typowych formatów dostępne są gotowe formattery, np. ISO_LOCAL_DATE. +whyModernWins: + - icon: 🛡️ + title: Bezpieczeństwo wątkowe + desc: Możesz współdzielić formattery między wątkami bez synchronizacji. + - icon: 📋 + title: Wbudowane formaty + desc: ISO_LOCAL_DATE, ISO_INSTANT i inne standardowe formaty. + - icon: 🔒 + title: Niemutowalność + desc: Formatter można bezpiecznie trzymać jako static final. +support: + description: Szeroko dostępne od JDK 8 (marzec 2014) diff --git a/translations/content/pl/enterprise/ejb-timer-vs-jakarta-scheduler.yaml b/translations/content/pl/enterprise/ejb-timer-vs-jakarta-scheduler.yaml new file mode 100644 index 0000000..8accc7b --- /dev/null +++ b/translations/content/pl/enterprise/ejb-timer-vs-jakarta-scheduler.yaml @@ -0,0 +1,17 @@ +title: EJB Timer vs Jakarta Scheduler +oldApproach: EJB TimerService +modernApproach: ManagedScheduledExecutorService +summary: Zastąp ciężkie timery EJB prostszym harmonogramowaniem przez ManagedScheduledExecutorService z Jakarta Concurrency. +explanation: Timery EJB wymagają beana @Stateless lub @Singleton, callbacku @Timeout i wyrażeń harmonogramu w adnotacjach albo XML. Jakarta Concurrency udostępnia ManagedScheduledExecutorService z dobrze znanym API java.util.concurrent. To mniej boilerplate, łatwiejsze testy jednostkowe i brak zależności od kontenera EJB. +whyModernWins: + - icon: 🪶 + title: Mniej boilerplate + desc: Bez callbacku @Timeout i ScheduleExpression, używasz standardowego API ScheduledExecutorService. + - icon: 🧪 + title: Lepsza testowalność + desc: Zwykłe metody i mocki executora upraszczają testy bez kontenera EJB. + - icon: ☁️ + title: Podejście cloud-native + desc: Managed executory integrują się z cyklem życia kontenera i działają w lekkich runtime'ach. +support: + description: Dostępne od Jakarta EE 10 / Concurrency 3.0 diff --git a/translations/content/pl/errors/helpful-npe.yaml b/translations/content/pl/errors/helpful-npe.yaml new file mode 100644 index 0000000..238af77 --- /dev/null +++ b/translations/content/pl/errors/helpful-npe.yaml @@ -0,0 +1,17 @@ +title: Pomocne NullPointerException +oldApproach: Nieczytelny NPE +modernApproach: Szczegółowy NPE +summary: JVM automatycznie wskazuje dokładnie, która zmienna miała wartość null. +explanation: Helpful NPE opisuje, które wyrażenie było null i jaka operacja się nie powiodła. Od Java 14 jest to domyślnie włączone, bez zmian w kodzie, wystarczy nowsze JDK. +whyModernWins: + - icon: 🔍 + title: Dokładna zmienna + desc: Komunikat wskazuje konkretną zmienną null w łańcuchu wywołań. + - icon: ⚡ + title: Szybsze debugowanie + desc: Koniec zgadywania, które z wielu wywołań zwróciło null. + - icon: 🆓 + title: Darmowe usprawnienie + desc: Bez zmian w kodzie, po prostu uruchamiasz na JDK 14+. +support: + description: Szeroko dostępne od JDK 14 (marzec 2020) diff --git a/translations/content/pl/io/deserialization-filters.yaml b/translations/content/pl/io/deserialization-filters.yaml new file mode 100644 index 0000000..b3ddbd3 --- /dev/null +++ b/translations/content/pl/io/deserialization-filters.yaml @@ -0,0 +1,17 @@ +title: Filtry deserializacji +oldApproach: Akceptuj wszystko +modernApproach: ObjectInputFilter +summary: Ograniczaj klasy, które można deserializować, aby zapobiegać atakom. +explanation: ObjectInputFilter pozwala tworzyć allowlisty i denylisty klas, ograniczać głębokość grafu obiektów, rozmiary tablic i liczbę referencji. Chroni to przed podatnościami deserializacji bez dodatkowych bibliotek. +whyModernWins: + - icon: 🛡️ + title: Bezpieczeństwo + desc: Blokuje deserializację nieoczekiwanych lub złośliwych klas. + - icon: 📐 + title: Precyzyjna kontrola + desc: Kontrolujesz głębokość, rozmiary tablic, referencje i wzorce klas. + - icon: 🏗️ + title: Ochrona całego JVM + desc: Możesz ustawić globalny filtr dla całej deserializacji w JVM. +support: + description: Szeroko dostępne od JDK 9 (wrzesień 2017) diff --git a/translations/content/pl/language/compact-canonical-constructor.yaml b/translations/content/pl/language/compact-canonical-constructor.yaml new file mode 100644 index 0000000..38e50fe --- /dev/null +++ b/translations/content/pl/language/compact-canonical-constructor.yaml @@ -0,0 +1,17 @@ +title: Zwarty konstruktor kanoniczny +oldApproach: Jawna walidacja w konstruktorze +modernApproach: Konstruktor zwarty +summary: Waliduj i normalizuj pola rekordów bez powtarzania listy parametrów. +explanation: Rekordy mogą definiować zwarty konstruktor kanoniczny bez listy parametrów i bez ręcznych przypisań pól. Kompilator automatycznie przypisze parametry do pól po wykonaniu logiki walidacji. To idealne miejsce na preconditions, defensywne kopie i normalizację. +whyModernWins: + - icon: ✂️ + title: Mniej powtórzeń + desc: Nie musisz powtarzać parametrów ani ręcznie przypisywać każdego pola. + - icon: 🛡️ + title: Walidacja + desc: Świetne miejsce na null checki, walidację zakresu i defensywne kopie. + - icon: 📖 + title: Czytelniejsza intencja + desc: Zwarta składnia podkreśla walidację zamiast boilerplate. +support: + description: Szeroko dostępne od JDK 16 (marzec 2021) diff --git a/translations/content/pl/language/type-inference-with-var.yaml b/translations/content/pl/language/type-inference-with-var.yaml new file mode 100644 index 0000000..122d61c --- /dev/null +++ b/translations/content/pl/language/type-inference-with-var.yaml @@ -0,0 +1,17 @@ +title: Inferencja typów z var +oldApproach: Jawne typy +modernApproach: Słowo kluczowe var +summary: Używaj var do inferencji typów zmiennych lokalnych, mniej szumu i taka sama kontrola typów. +explanation: Od Java 10 kompilator wywnioskuje typ zmiennej lokalnej na podstawie prawej strony przypisania. To ogranicza wizualny szum bez utraty bezpieczeństwa typów. Używaj var, gdy typ jest oczywisty z kontekstu. +whyModernWins: + - icon: ⚡ + title: Mniej boilerplate + desc: Nie trzeba powtarzać złożonych typów generycznych po obu stronach przypisania. + - icon: 👁 + title: Lepsza czytelność + desc: Skupiasz się na nazwach zmiennych i wartościach, a nie na deklaracjach typów. + - icon: 🔒 + title: Nadal bezpieczne typowanie + desc: Kompilator wywnioskuje i egzekwuje dokładny typ już podczas kompilacji. +support: + description: Szeroko dostępne od JDK 10 (marzec 2018) diff --git a/translations/content/pl/security/key-derivation-functions.yaml b/translations/content/pl/security/key-derivation-functions.yaml new file mode 100644 index 0000000..efba613 --- /dev/null +++ b/translations/content/pl/security/key-derivation-functions.yaml @@ -0,0 +1,17 @@ +title: Funkcje wyprowadzania kluczy +oldApproach: Ręczne PBKDF2 +modernApproach: API KDF +summary: Wyprowadzaj klucze kryptograficzne przez standardowe API KDF. +explanation: API KDF udostępnia standardowy interfejs do funkcji wyprowadzania kluczy, w tym HKDF. Zastępuje nieporęczny wzorzec SecretKeyFactory + PBEKeySpec czytelnym API opartym o builder. +whyModernWins: + - icon: 📐 + title: Czyste API + desc: Wzorzec builder zamiast nieporęcznych konstruktorów KeySpec. + - icon: 🔧 + title: Obsługa HKDF + desc: Nowoczesny HKDF obok PBKDF2. + - icon: 🛡️ + title: Standard + desc: Jednolite API dla różnych algorytmów wyprowadzania kluczy. +support: + description: Ustabilizowane w JDK 25 LTS (JEP 510, wrzesień 2025) diff --git a/translations/content/pl/streams/collectors-flatmapping.yaml b/translations/content/pl/streams/collectors-flatmapping.yaml new file mode 100644 index 0000000..6c8644c --- /dev/null +++ b/translations/content/pl/streams/collectors-flatmapping.yaml @@ -0,0 +1,17 @@ +title: Collectors.flatMapping() +oldApproach: Zagnieżdżone flatMap +modernApproach: flatMapping() +summary: Użyj flatMapping() do spłaszczania wewnątrz kolektora grupującego. +explanation: Collectors.flatMapping() stosuje mapowanie one-to-many jako kolektor downstream. To odpowiednik Stream.flatMap() po stronie kolektorów, przydatny np. wewnątrz groupingBy lub partitioningBy. +whyModernWins: + - icon: 🧩 + title: Kompozycyjność + desc: Działa jako kolektor downstream wewnątrz groupingBy. + - icon: 📐 + title: Jeden przebieg + desc: Spłaszczanie i grupowanie wykonujesz w jednym przejściu strumienia. + - icon: 🔗 + title: Zagnieżdżanie + desc: Łatwo łączysz z innymi kolektorami downstream. +support: + description: Szeroko dostępne od JDK 9 (wrzesień 2017) diff --git a/translations/content/pl/strings/string-chars-stream.yaml b/translations/content/pl/strings/string-chars-stream.yaml new file mode 100644 index 0000000..b2f6c1b --- /dev/null +++ b/translations/content/pl/strings/string-chars-stream.yaml @@ -0,0 +1,17 @@ +title: Znaki String jako strumień +oldApproach: Ręczna pętla +modernApproach: chars() Stream +summary: Przetwarzaj znaki Stringa jako pipeline strumieniowy. +explanation: String.chars() zwraca IntStream wartości znaków i umożliwia funkcyjne przetwarzanie. Dla pełnego wsparcia Unicode użyj codePoints(), które poprawnie obsługuje znaki uzupełniające. +whyModernWins: + - icon: 🔗 + title: Łańcuchowanie + desc: Możesz używać filter, map i collect na strumieniach znaków. + - icon: 📐 + title: Deklaratywność + desc: Opisujesz co chcesz zrobić, a nie jak iterować. + - icon: 🌐 + title: Gotowość na Unicode + desc: codePoints() poprawnie obsługuje emoji i znaki uzupełniające. +support: + description: Dostępne od JDK 8+ (ulepszone w 9+) diff --git a/translations/content/pl/tooling/aot-class-preloading.yaml b/translations/content/pl/tooling/aot-class-preloading.yaml new file mode 100644 index 0000000..a676130 --- /dev/null +++ b/translations/content/pl/tooling/aot-class-preloading.yaml @@ -0,0 +1,17 @@ +title: AOT preloading klas +oldApproach: Zimny start za każdym razem +modernApproach: AOT Cache +summary: Buforuj ładowanie klas i kompilację, aby uzyskać szybszy start aplikacji. +explanation: AOT class preloading buforuje załadowane i zlinkowane klasy z przebiegu treningowego. Przy kolejnych uruchomieniach klasy są ładowane z cache, z pominięciem weryfikacji i linkowania. W połączeniu z kompilacją AOT znacząco skraca to czas startu. +whyModernWins: + - icon: ⚡ + title: Szybszy start + desc: Pomijasz ładowanie klas, weryfikację i linkowanie. + - icon: 📦 + title: Stan w cache + desc: Przebieg treningowy zapisuje optymalny stan klas. + - icon: 🔧 + title: Bez zmian w kodzie + desc: Działa z istniejącymi aplikacjami, wystarczy dodać flagi JVM. +support: + description: Dostępne jako standardowa funkcja w JDK 25 LTS (JEP 514/515, wrzesień 2025) diff --git a/translations/strings/pl.yaml b/translations/strings/pl.yaml new file mode 100644 index 0000000..ba66c2b --- /dev/null +++ b/translations/strings/pl.yaml @@ -0,0 +1,88 @@ +site: + title: java.evolved + tagline: Java ewoluowała. Twój kod też może. + tagline_line1: Java ewoluowała. + tagline_line2: Twój kod też może. + description: Zbiór nowoczesnych snippetów Java. Każdy stary wzorzec Java obok jego czystego, nowoczesnego odpowiednika. + heroSnippetCount: ✦ {{snippetCount}} nowoczesnych wzorców · Java 8 → Java 25 + heroOld: Stare + heroModern: Nowe + allComparisons: Wszystkie porównania + snippetsBadge: '{{snippetCount}} snippetów' +nav: + allPatterns: ← Wszystkie wzorce + toggleTheme: Przełącz motyw + viewOnGitHub: Zobacz na GitHub + selectLanguage: Wybierz język +breadcrumb: + home: Strona główna +sections: + codeComparison: Porównanie kodu + whyModernWins: Dlaczego nowoczesne podejście wygrywa + oldApproach: Stare podejście + modernApproach: Nowoczesne podejście + sinceJdk: Od JDK + difficulty: Poziom trudności + jdkSupport: Wsparcie JDK + howItWorks: Jak to działa + relatedDocs: Powiązana dokumentacja + relatedPatterns: Powiązane wzorce +filters: + show: 'Pokaż:' + all: Wszystkie +difficulty: + beginner: Początkujący + intermediate: Średniozaawansowany + advanced: Zaawansowany +search: + placeholder: Szukaj snippetów… + noResults: Brak wyników. + esc: ESC + searchTrigger: Szukaj… + navigate: nawiguj + open: otwórz + close: zamknij +cards: + old: Stare + modern: Nowe + hoverHint: najedź, aby zobaczyć nową wersję → + hoverHintRelated: Najedź, aby zobaczyć nową wersję ➜ + touchHint: 👆 dotknij lub przesuń → +copy: + copy: Kopiuj + copied: Skopiowano! +share: + label: Udostępnij +view: + expandAll: Rozwiń wszystko + collapseAll: Zwiń wszystko +stats: + modernPatterns: Nowoczesne wzorce + jdkVersions: Obsługiwane wersje JDK + categories: Kategorie + linesOfPython: Linie Pythona wymagane +footer: + tagline: Java ewoluowała. Twój kod też może. + madeWith: Stworzone z ❤️ przez + and: i + inspiredBy: Inspiracja + viewOnGitHub: Zobacz na GitHub +copilot: + headline: Modernizuj swój kod Java z GitHub Copilot. + description: Pozwól Copilotowi automatycznie migrować stare wzorce do nowoczesnej Javy. + appModernization: Modernizacja aplikacji → + javaGuide: Przewodnik po Javie → +support: + available: Dostępne + preview: Preview + experimental: Eksperymentalne +contribute: + button: Współtwórz + codeIssue: Zgłoś problem w kodzie + translationIssue: Zgłoś problem z tłumaczeniem + suggestPattern: Zaproponuj nowy wzorzec + seeIssue: "Widzisz problem z tym kodem?" + reportIt: "Daj nam znać." +untranslated: + notice: Ta strona nie została jeszcze przetłumaczona na {{localeName}}. + viewInEnglish: Zobacz po angielsku From 6108c8479088d56fbba3b059a6e395197b39f20a Mon Sep 17 00:00:00 2001 From: Artur Skowronski Date: Fri, 27 Feb 2026 13:29:30 +0100 Subject: [PATCH 2/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 622c55d..bca85d4 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Generated files (`site/category/*.html`, `site/{locale}/`, and `site/data/snippe ### Internationalization -The site supports 10 languages: English, Deutsch, Español, Português (Brasil), 中文 (简体), العربية, Français, 日本語, 한국어, and Polski. See [`specs/i18n/i18n-spec.md`](specs/i18n/i18n-spec.md) for the full specification. +The site supports 11 languages: English, Deutsch, Español, Português (Brasil), 中文 (简体), العربية, Français, 日本語, 한국어, Italian and Polski. See [`specs/i18n/i18n-spec.md`](specs/i18n/i18n-spec.md) for the full specification. ## Build & run locally From 2e003d83d734376833af79d83afe5e032e4f95cf Mon Sep 17 00:00:00 2001 From: Artur Skowronski Date: Fri, 27 Feb 2026 13:32:21 +0100 Subject: [PATCH 3/5] Update completablefuture-chaining.yaml --- .../content/pl/concurrency/completablefuture-chaining.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/content/pl/concurrency/completablefuture-chaining.yaml b/translations/content/pl/concurrency/completablefuture-chaining.yaml index 7dc5391..4019ac2 100644 --- a/translations/content/pl/concurrency/completablefuture-chaining.yaml +++ b/translations/content/pl/concurrency/completablefuture-chaining.yaml @@ -1,11 +1,11 @@ -title: Łańcuchowanie CompletableFuture +title: Łączenie CompletableFuture oldApproach: Blokujące Future.get() modernApproach: CompletableFuture summary: Łącz operacje asynchroniczne bez blokowania, używając CompletableFuture. -explanation: CompletableFuture pozwala budować nieblokujące potoki async. Łącz kroki przez thenApply, thenCompose i thenAccept. Błędy obsługuj przez exceptionally(). Wiele future można łączyć przez allOf/anyOf. +explanation: CompletableFuture pozwala budować nieblokujące asynchroniczne potoki. Łącz kroki przez thenApply, thenCompose i thenAccept. Błędy obsługuj przez exceptionally(). Wiele future można łączyć przez allOf/anyOf. whyModernWins: - icon: 🔗 - title: Łańcuchowanie + title: Umożliwia łączenie operacji desc: Składasz kroki asynchroniczne w czytelny pipeline. - icon: 🚫 title: Bez blokowania From 75ed66cd7f20f0fe2208fad43e15e146e4f500e5 Mon Sep 17 00:00:00 2001 From: Artur Skowronski Date: Fri, 27 Feb 2026 13:32:46 +0100 Subject: [PATCH 4/5] Update date-formatting.yaml --- translations/content/pl/datetime/date-formatting.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/content/pl/datetime/date-formatting.yaml b/translations/content/pl/datetime/date-formatting.yaml index 6fc3f96..a9bba46 100644 --- a/translations/content/pl/datetime/date-formatting.yaml +++ b/translations/content/pl/datetime/date-formatting.yaml @@ -5,7 +5,7 @@ summary: Formatuj daty przez niezmienny i bezpieczny wątkowo DateTimeFormatter. explanation: DateTimeFormatter jest niemutowalny i bezpieczny wątkowo, w przeciwieństwie do SimpleDateFormat. Możesz przechowywać go jako stałą i współdzielić. Dla typowych formatów dostępne są gotowe formattery, np. ISO_LOCAL_DATE. whyModernWins: - icon: 🛡️ - title: Bezpieczeństwo wątkowe + title: Wątków bezpieczeństwo desc: Możesz współdzielić formattery między wątkami bez synchronizacji. - icon: 📋 title: Wbudowane formaty From fbc36840946c551ceb9672d67339297d14b13c7b Mon Sep 17 00:00:00 2001 From: Artur Skowronski Date: Fri, 27 Feb 2026 13:37:30 +0100 Subject: [PATCH 5/5] chore(i18n): keep pragmatic Polish wording with natural anglicisms --- translations/content/pl/language/type-inference-with-var.yaml | 2 +- translations/strings/pl.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/content/pl/language/type-inference-with-var.yaml b/translations/content/pl/language/type-inference-with-var.yaml index 122d61c..743186c 100644 --- a/translations/content/pl/language/type-inference-with-var.yaml +++ b/translations/content/pl/language/type-inference-with-var.yaml @@ -1,7 +1,7 @@ title: Inferencja typów z var oldApproach: Jawne typy modernApproach: Słowo kluczowe var -summary: Używaj var do inferencji typów zmiennych lokalnych, mniej szumu i taka sama kontrola typów. +summary: Używaj var do inferencji typów zmiennych lokalnych, mniej szumu i to samo bezpieczeństwo typów. explanation: Od Java 10 kompilator wywnioskuje typ zmiennej lokalnej na podstawie prawej strony przypisania. To ogranicza wizualny szum bez utraty bezpieczeństwa typów. Używaj var, gdy typ jest oczywisty z kontekstu. whyModernWins: - icon: ⚡ diff --git a/translations/strings/pl.yaml b/translations/strings/pl.yaml index ba66c2b..e97cc1a 100644 --- a/translations/strings/pl.yaml +++ b/translations/strings/pl.yaml @@ -60,7 +60,7 @@ stats: modernPatterns: Nowoczesne wzorce jdkVersions: Obsługiwane wersje JDK categories: Kategorie - linesOfPython: Linie Pythona wymagane + linesOfPython: Wymagane linie Pythona footer: tagline: Java ewoluowała. Twój kod też może. madeWith: Stworzone z ❤️ przez