Skip to content

Commit 6321b13

Browse files
authored
Merge pull request #103 from ArturSkowronski/feat/pl-translation-bootstrap
Add Polish (Polskie) locale
2 parents 6cfcca4 + fbc3684 commit 6321b13

File tree

15 files changed

+294
-1
lines changed

15 files changed

+294
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Generated files (`site/category/*.html`, `site/{locale}/`, and `site/data/snippe
5454

5555
### Internationalization
5656

57-
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.
57+
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.
5858

5959
## Build & run locally
6060

html-generators/locales.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ fr=🇫🇷 Français
99
ja=🇯🇵 日本語
1010
ko=🇰🇷 한국어
1111
it=🇮🇹 Italiano
12+
pl=🇵🇱 Polski
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Collectors.teeing()
2+
oldApproach: Dwa przebiegi
3+
modernApproach: teeing()
4+
summary: Oblicz dwa agregaty w jednym przebiegu strumienia.
5+
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.
6+
whyModernWins:
7+
- icon:
8+
title: Jeden przebieg
9+
desc: Przetwarzasz strumień raz zamiast dwa razy.
10+
- icon: 🧩
11+
title: Kompozycyjność
12+
desc: Możesz połączyć dowolne dwa kolektory funkcją scalającą.
13+
- icon: 🔒
14+
title: Niemutowalny wynik
15+
desc: Wynik można od razu scalić do rekordu lub obiektu wartości.
16+
support:
17+
description: Szeroko dostępne od JDK 12 (marzec 2019)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Łączenie CompletableFuture
2+
oldApproach: Blokujące Future.get()
3+
modernApproach: CompletableFuture
4+
summary: Łącz operacje asynchroniczne bez blokowania, używając CompletableFuture.
5+
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.
6+
whyModernWins:
7+
- icon: 🔗
8+
title: Umożliwia łączenie operacji
9+
desc: Składasz kroki asynchroniczne w czytelny pipeline.
10+
- icon: 🚫
11+
title: Bez blokowania
12+
desc: Żaden wątek nie czeka bezczynnie na wynik.
13+
- icon: 🛡️
14+
title: Obsługa błędów
15+
desc: exceptionally() i handle() upraszczają odzyskiwanie po błędach.
16+
support:
17+
description: Szeroko dostępne od JDK 8 (marzec 2014)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Formatowanie dat
2+
oldApproach: SimpleDateFormat
3+
modernApproach: DateTimeFormatter
4+
summary: Formatuj daty przez niezmienny i bezpieczny wątkowo DateTimeFormatter.
5+
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.
6+
whyModernWins:
7+
- icon: 🛡️
8+
title: Wątków bezpieczeństwo
9+
desc: Możesz współdzielić formattery między wątkami bez synchronizacji.
10+
- icon: 📋
11+
title: Wbudowane formaty
12+
desc: ISO_LOCAL_DATE, ISO_INSTANT i inne standardowe formaty.
13+
- icon: 🔒
14+
title: Niemutowalność
15+
desc: Formatter można bezpiecznie trzymać jako static final.
16+
support:
17+
description: Szeroko dostępne od JDK 8 (marzec 2014)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: EJB Timer vs Jakarta Scheduler
2+
oldApproach: EJB TimerService
3+
modernApproach: ManagedScheduledExecutorService
4+
summary: Zastąp ciężkie timery EJB prostszym harmonogramowaniem przez ManagedScheduledExecutorService z Jakarta Concurrency.
5+
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.
6+
whyModernWins:
7+
- icon: 🪶
8+
title: Mniej boilerplate
9+
desc: Bez callbacku @Timeout i ScheduleExpression, używasz standardowego API ScheduledExecutorService.
10+
- icon: 🧪
11+
title: Lepsza testowalność
12+
desc: Zwykłe metody i mocki executora upraszczają testy bez kontenera EJB.
13+
- icon: ☁️
14+
title: Podejście cloud-native
15+
desc: Managed executory integrują się z cyklem życia kontenera i działają w lekkich runtime'ach.
16+
support:
17+
description: Dostępne od Jakarta EE 10 / Concurrency 3.0
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Pomocne NullPointerException
2+
oldApproach: Nieczytelny NPE
3+
modernApproach: Szczegółowy NPE
4+
summary: JVM automatycznie wskazuje dokładnie, która zmienna miała wartość null.
5+
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.
6+
whyModernWins:
7+
- icon: 🔍
8+
title: Dokładna zmienna
9+
desc: Komunikat wskazuje konkretną zmienną null w łańcuchu wywołań.
10+
- icon:
11+
title: Szybsze debugowanie
12+
desc: Koniec zgadywania, które z wielu wywołań zwróciło null.
13+
- icon: 🆓
14+
title: Darmowe usprawnienie
15+
desc: Bez zmian w kodzie, po prostu uruchamiasz na JDK 14+.
16+
support:
17+
description: Szeroko dostępne od JDK 14 (marzec 2020)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Filtry deserializacji
2+
oldApproach: Akceptuj wszystko
3+
modernApproach: ObjectInputFilter
4+
summary: Ograniczaj klasy, które można deserializować, aby zapobiegać atakom.
5+
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.
6+
whyModernWins:
7+
- icon: 🛡️
8+
title: Bezpieczeństwo
9+
desc: Blokuje deserializację nieoczekiwanych lub złośliwych klas.
10+
- icon: 📐
11+
title: Precyzyjna kontrola
12+
desc: Kontrolujesz głębokość, rozmiary tablic, referencje i wzorce klas.
13+
- icon: 🏗️
14+
title: Ochrona całego JVM
15+
desc: Możesz ustawić globalny filtr dla całej deserializacji w JVM.
16+
support:
17+
description: Szeroko dostępne od JDK 9 (wrzesień 2017)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Zwarty konstruktor kanoniczny
2+
oldApproach: Jawna walidacja w konstruktorze
3+
modernApproach: Konstruktor zwarty
4+
summary: Waliduj i normalizuj pola rekordów bez powtarzania listy parametrów.
5+
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ę.
6+
whyModernWins:
7+
- icon: ✂️
8+
title: Mniej powtórzeń
9+
desc: Nie musisz powtarzać parametrów ani ręcznie przypisywać każdego pola.
10+
- icon: 🛡️
11+
title: Walidacja
12+
desc: Świetne miejsce na null checki, walidację zakresu i defensywne kopie.
13+
- icon: 📖
14+
title: Czytelniejsza intencja
15+
desc: Zwarta składnia podkreśla walidację zamiast boilerplate.
16+
support:
17+
description: Szeroko dostępne od JDK 16 (marzec 2021)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Inferencja typów z var
2+
oldApproach: Jawne typy
3+
modernApproach: Słowo kluczowe var
4+
summary: Używaj var do inferencji typów zmiennych lokalnych, mniej szumu i to samo bezpieczeństwo typów.
5+
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.
6+
whyModernWins:
7+
- icon:
8+
title: Mniej boilerplate
9+
desc: Nie trzeba powtarzać złożonych typów generycznych po obu stronach przypisania.
10+
- icon: 👁
11+
title: Lepsza czytelność
12+
desc: Skupiasz się na nazwach zmiennych i wartościach, a nie na deklaracjach typów.
13+
- icon: 🔒
14+
title: Nadal bezpieczne typowanie
15+
desc: Kompilator wywnioskuje i egzekwuje dokładny typ już podczas kompilacji.
16+
support:
17+
description: Szeroko dostępne od JDK 10 (marzec 2018)

0 commit comments

Comments
 (0)