Problem / Motivation
The email list shows dates in English ("1h ago", "2d ago", "Apr 28") even when I have the UI set to German. Also "1h ago" isn't very useful — I'd rather see the actual time the mail arrived. Pretty much every other mail client (Gmail, Outlook, Apple Mail, Thunderbird) does this differently.
Proposed Solution
Show dates like this instead:
- Today → just the time, e.g.
15:31
- Last 7 days → short weekday + time, e.g.
Fr 15:31
- Older → full date in the user's locale, e.g.
28.04.2026 (de) or 04/28/2026 (en)
Respect the user's locale (from the language picker) and the 12h/24h setting that already exists.
I've put together a working implementation here, in case it helps:
https://github.com/dealerweb/bulwark-webmail/compare/main...feature/email-list-date-format
It's a single function in lib/utils.ts, no call-site changes needed.
Works automatically for all 17 locales Bulwark supports — uses Intl.DateTimeFormat under the hood, so no per-language strings to maintain.
Alternatives Considered
No response
Feature Area
Email
Mockups / Examples
No response
Additional Context
No response
Problem / Motivation
The email list shows dates in English ("1h ago", "2d ago", "Apr 28") even when I have the UI set to German. Also "1h ago" isn't very useful — I'd rather see the actual time the mail arrived. Pretty much every other mail client (Gmail, Outlook, Apple Mail, Thunderbird) does this differently.
Proposed Solution
Show dates like this instead:
15:31Fr 15:3128.04.2026(de) or04/28/2026(en)Respect the user's locale (from the language picker) and the 12h/24h setting that already exists.
I've put together a working implementation here, in case it helps:
https://github.com/dealerweb/bulwark-webmail/compare/main...feature/email-list-date-format
It's a single function in
lib/utils.ts, no call-site changes needed.Works automatically for all 17 locales Bulwark supports — uses Intl.DateTimeFormat under the hood, so no per-language strings to maintain.
Alternatives Considered
No response
Feature Area
Email
Mockups / Examples
No response
Additional Context
No response