Skip to content

Commit 8b66cbb

Browse files
CopilotCopilot
andcommitted
Add German (de) translations for datetime and enterprise patterns
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 8e66934 commit 8b66cbb

24 files changed

+457
-0
lines changed

html-generators/locales.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# format: locale=Display name (first entry is the default/primary locale)
22
en=English
3+
de=Deutsch
34
es=Español
45
pt-BR=Português (Brasil)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Datumsformatierung
2+
oldApproach: SimpleDateFormat
3+
modernApproach: DateTimeFormatter
4+
summary: Formatiere Datumswerte mit dem thread-sicheren, unveränderlichen DateTimeFormatter.
5+
explanation: DateTimeFormatter ist unveränderlich und thread-sicher, im Gegensatz zu SimpleDateFormat. Er kann als Konstante gespeichert und geteilt werden. Vordefinierte Formatierer wie ISO_LOCAL_DATE stehen für gängige Formate zur Verfügung.
6+
whyModernWins:
7+
- icon: 🛡️
8+
title: Thread-sicher
9+
desc: Formatierer können ohne Synchronisierung zwischen Threads geteilt werden.
10+
- icon: 📋
11+
title: Eingebaute Formate
12+
desc: ISO_LOCAL_DATE, ISO_INSTANT usw. für Standardformate.
13+
- icon: 🔒
14+
title: Unveränderlich
15+
desc: Kann sicher als static-final-Konstante gespeichert werden.
16+
support:
17+
description: Weitgehend verfügbar seit JDK 8 (März 2014)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Duration und Period
2+
oldApproach: Millisekunden-Arithmetik
3+
modernApproach: Duration / Period
4+
summary: Berechne Zeitdifferenzen typsicher mit Duration und Period.
5+
explanation: Duration steht für zeitbasierte Mengen (Stunden, Minuten, Sekunden). Period steht für datumsbasierte Mengen (Jahre, Monate, Tage). ChronoUnit.between() eignet sich für einfache Differenzen. Alle Klassen behandeln Sonderfälle korrekt.
6+
whyModernWins:
7+
- icon: 🎯
8+
title: Typsicher
9+
desc: Duration für Zeit, Period für Datum — keine Verwechslungen.
10+
- icon: 🛡️
11+
title: Korrekte Berechnung
12+
desc: Behandelt Sommerzeitumstellungen, Schaltjahre und Schaltsekunden.
13+
- icon: 📖
14+
title: Lesbar
15+
desc: ChronoUnit.DAYS.between() liest sich wie natürliche Sprache.
16+
support:
17+
description: Weitgehend verfügbar seit JDK 8 (März 2014)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: HexFormat
2+
oldApproach: Manuelle Hex-Konvertierung
3+
modernApproach: HexFormat
4+
summary: Konvertiere zwischen Hex-Strings und Byte-Arrays mit HexFormat.
5+
explanation: HexFormat bietet bidirektionale Hex-Kodierung und -Dekodierung für Bytes, Integers und Arrays. Trennzeichen, Präfix, Suffix sowie Groß- und Kleinschreibung sind konfigurierbar. Manuelles Formatieren und Parsen entfällt.
6+
whyModernWins:
7+
- icon: 📐
8+
title: Bidirektional
9+
desc: Konvertiere Bytes→Hex und Hex→Bytes mit einer einzigen API.
10+
- icon: 🔧
11+
title: Konfigurierbar
12+
desc: Trennzeichen, Präfix, Suffix, Groß-/Kleinschreibung.
13+
- icon: 📦
14+
title: Array-Unterstützung
15+
desc: Ganze Byte-Arrays auf einmal kodieren und dekodieren.
16+
support:
17+
description: Weitgehend verfügbar seit JDK 17 LTS (September 2021)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Instant mit Nanosekunden-Präzision
2+
oldApproach: Millisekunden
3+
modernApproach: Nanosekunden
4+
summary: Zeitstempel mit Mikrosekunden- oder Nanosekunden-Präzision ermitteln.
5+
explanation: Java 9 verbesserte die Uhrenauflösung, sodass Instant.now() auf den meisten Plattformen Mikrosekunden-Präzision liefert (auf manchen sogar Nanosekunden). Das veraltete currentTimeMillis() liefert nur Millisekunden.
6+
whyModernWins:
7+
- icon: 🎯
8+
title: Höhere Präzision
9+
desc: Mikrosekunden-/Nanosekunden-Zeitstempel statt Millisekunden.
10+
- icon: 📐
11+
title: Typsicher
12+
desc: Instant trägt seine Präzision — keine mehrdeutigen long-Werte.
13+
- icon: 🌐
14+
title: UTC-basiert
15+
desc: Instant ist immer in UTC — keine Zeitzonenverwechslungen.
16+
support:
17+
description: Weitgehend verfügbar seit JDK 9 (September 2017)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Grundlagen der java.time-API
2+
oldApproach: Date + Calendar
3+
modernApproach: java.time.*
4+
summary: Verwende unveränderliche, klare Datums-/Zeittypen statt Date und Calendar.
5+
explanation: java.time stellt LocalDate, LocalTime, LocalDateTime, Instant und ZonedDateTime bereit — alle unveränderlich und thread-sicher. Monate sind ab 1 indiziert. Keine Verwirrung mehr durch Calendar.JANUARY = 0.
6+
whyModernWins:
7+
- icon: 🔒
8+
title: Unveränderlich
9+
desc: Datums-/Zeitwerte können nicht versehentlich geändert werden.
10+
- icon: 📖
11+
title: Klare API
12+
desc: Month.JANUARY statt 0. DayOfWeek.MONDAY statt 2.
13+
- icon: 🛡️
14+
title: Thread-sicher
15+
desc: Keine Synchronisierung nötig — kann frei zwischen Threads geteilt werden.
16+
support:
17+
description: Weitgehend verfügbar seit JDK 8 (März 2014)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: Math.clamp()
2+
oldApproach: Verschachteltes min/max
3+
modernApproach: Math.clamp()
4+
summary: Einen Wert mit einem einzigen klaren Aufruf auf einen Bereich begrenzen.
5+
explanation: "Math.clamp(value, min, max) beschränkt einen Wert auf den Bereich [min, max]. Klarer als verschachteltes Math.min/Math.max und verfügbar für int, long, float und double."
6+
whyModernWins:
7+
- icon: 📖
8+
title: Selbstdokumentierend
9+
desc: clamp(value, min, max) ist eindeutig.
10+
- icon: 🛡️
11+
title: Weniger fehleranfällig
12+
desc: Kein versehentliches Vertauschen der Reihenfolge von min und max mehr.
13+
- icon: 🎯
14+
title: Alle numerischen Typen
15+
desc: Funktioniert mit int, long, float und double.
16+
support:
17+
description: Weitgehend verfügbar seit JDK 21 LTS (September 2023)
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: Ersetze schwerfällige EJB-Timer durch den ManagedScheduledExecutorService von Jakarta Concurrency für einfachere Aufgabenplanung.
5+
explanation: EJB-Timer benötigen einen @Stateless- oder @Singleton-Bean mit einem @Timeout-Callback und XML- oder annotationsbasierten Zeitplanausdrücken. Jakarta Concurrency stellt ManagedScheduledExecutorService bereit, der die vertraute java.util.concurrent-Planungs-API verwendet. Das Ergebnis ist weniger Boilerplate, einfachere Unit-Tests und keine EJB-Container-Abhängigkeit.
6+
whyModernWins:
7+
- icon: 🪶
8+
title: Weniger Boilerplate
9+
desc: "Kein @Timeout-Callback oder ScheduleExpression — verwende die Standard-API von ScheduledExecutorService."
10+
- icon: 🧪
11+
title: Bessere Testbarkeit
12+
desc: Einfache Methoden und Executor-Mocks machen Unit-Tests ohne EJB-Container unkompliziert.
13+
- icon: ☁️
14+
title: Cloud-native-freundlich
15+
desc: Verwaltete Executors integrieren sich in den Container-Lebenszyklus und funktionieren in leichtgewichtigen Laufzeiten.
16+
support:
17+
description: "Verfügbar seit 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: EJB versus CDI
2+
oldApproach: EJB
3+
modernApproach: CDI-Bean
4+
summary: Ersetze schwerfällige EJBs durch leichtgewichtige CDI-Beans für Dependency Injection und Transaktionsverwaltung.
5+
explanation: CDI (Contexts and Dependency Injection) bietet dieselbe Dependency Injection und Transaktionsverwaltung wie EJBs, jedoch als einfache Java-Klassen ohne containerspezifische Interfaces oder Superklassen. Scopes wie @ApplicationScoped und @RequestScoped steuern den Lebenszyklus, und @Transactional ersetzt die obligatorische EJB-Transaktionssemantik.
6+
whyModernWins:
7+
- icon: 🪶
8+
title: Leichtgewichtig
9+
desc: CDI-Beans sind einfache Java-Klassen ohne EJB-spezifische Interfaces oder Deskriptoren.
10+
- icon: 💉
11+
title: Einheitliche Injektion
12+
desc: "@Inject funktioniert für jeden verwalteten Bean, JAX-RS-Ressourcen und Jakarta-EE-Komponenten gleichermaßen."
13+
- icon: 🧪
14+
title: Einfaches Unit-Testing
15+
desc: Einfache Klassen ohne EJB-Proxy-Overhead lassen sich unkompliziert instanziieren und mocken.
16+
support:
17+
description: Weitgehend verfügbar seit Jakarta EE 8 / Java 11
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: JDBC-ResultSet-Mapping vs. JPA-Criteria-API
2+
oldApproach: JDBC ResultSet
3+
modernApproach: JPA Criteria API
4+
summary: Ersetze manuelles JDBC-ResultSet-Mapping durch die typsichere Criteria-API von JPA für dynamische Abfragen.
5+
explanation: Rohes JDBC erfordert das Aufbauen von SQL-Strings, das Setzen von Parametern per Index und das manuelle Mappen jeder ResultSet-Spalte — ein fehleranfälliger Prozess, der bei Spaltenänderungen stillschweigend bricht. Die JPA-Criteria-API erstellt Abfragen programmatisch mit einem typsicheren Builder-Muster. Spaltennamen werden gegen das Entity-Modell validiert, das Ergebnis-Mapping erfolgt automatisch, und komplexe dynamische Abfragen lassen sich ohne Stringverkettung sauber zusammenstellen.
6+
whyModernWins:
7+
- icon: 🔒
8+
title: Typsichere Abfragen
9+
desc: Der Criteria-Builder erkennt fehlerhafte Feldnamen und Typfehler zur Kompilierzeit.
10+
- icon: 🗺️
11+
title: Automatisches Mapping
12+
desc: JPA bildet Ergebniszeilen auf Entity-Objekte ab — kein manuelles Spalte-für-Spalte-Extrahieren.
13+
- icon: 🧩
14+
title: Kombinierbare Prädikate
15+
desc: Dynamische WHERE-Klauseln lassen sich sauber mit and(), or() und wiederverwendbaren Predicate-Objekten aufbauen.
16+
support:
17+
description: Weitgehend verfügbar seit Jakarta EE 8 / Java 11

0 commit comments

Comments
 (0)