feat(quando-zbr): implement i18n infrastructure for EN/DE languages

Add internationalization support with translation data for English and
German languages. This provides the foundation for localized formatting
of dates and durations.

Changes:
- Add i18n.go with translation maps for month names, weekday names,
  and duration units (both EN and DE)
- Implement helper methods on Lang type: MonthName, MonthNameShort,
  WeekdayName, WeekdayNameShort, DurationUnit
- Add automatic fallback to English for unknown languages
- Create comprehensive test suite in i18n_test.go (97.8% coverage)
- Update Lang type documentation with future expansion notes
- Add example tests demonstrating i18n usage

Blocks: quando-10t, quando-5ol, quando-95w
This commit is contained in:
Oliver Jakoubek 2026-02-11 19:27:16 +01:00
commit 436d8dd411
5 changed files with 568 additions and 4 deletions

18
date.go
View file

@ -5,8 +5,22 @@ import (
"time"
)
// Lang represents a language for i18n formatting.
// This is a placeholder - full implementation in i18n.go.
// Lang represents a language for internationalization (i18n) in formatting.
//
// Phase 1 supports English (EN) and German (DE). Future phases will expand to
// include 21 additional languages: FR, ES, IT, PT, NL, PL, RU, JA, ZH, KO, AR,
// HI, TR, SV, NO, DA, FI, CS, HU, RO, UK, EL.
//
// Language affects:
// - Format(Long): month and weekday names
// - FormatLayout: custom layouts with month/weekday names
// - Duration.Human(): time unit names
//
// Language does NOT affect:
// - ISO, EU, US, RFC2822 formats (always language-independent)
// - Numeric outputs (WeekNumber, Quarter, DayOfYear)
//
// See i18n.go for translation data and helper methods.
type Lang string
const (