From bc08a4884e11c1c38c520b7174ae49012da86d1b Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Wed, 17 Jun 2026 14:01:58 +0200 Subject: [PATCH 1/2] fix(pat-filemanager): Use site language in formatDate --- src/pat/filemanager/src/utils/format.test.ts | 18 ++++++++++++++++++ src/pat/filemanager/src/utils/format.ts | 8 +++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/pat/filemanager/src/utils/format.test.ts b/src/pat/filemanager/src/utils/format.test.ts index 7d03901c5..4abb84e89 100644 --- a/src/pat/filemanager/src/utils/format.test.ts +++ b/src/pat/filemanager/src/utils/format.test.ts @@ -15,6 +15,24 @@ describe("formatDate", () => { it("formats a real date string", () => { expect(formatDate(PAST)).not.toBe(""); }); + + it("respects the document language (de)", () => { + const originalLang = document.documentElement.lang; + document.documentElement.lang = "de"; + const formatted = formatDate(PAST); + // "Jan." is the short month in German for January (January 1st, 2020) + expect(formatted).toContain("Jan."); + document.documentElement.lang = originalLang; + }); + + it("respects the document language (en)", () => { + const originalLang = document.documentElement.lang; + document.documentElement.lang = "en"; + const formatted = formatDate(PAST); + // "Jan" is the short month in English for January + expect(formatted).toContain("Jan"); + document.documentElement.lang = originalLang; + }); }); describe("formatSize", () => { diff --git a/src/pat/filemanager/src/utils/format.ts b/src/pat/filemanager/src/utils/format.ts index 825a2beac..443e63db8 100644 --- a/src/pat/filemanager/src/utils/format.ts +++ b/src/pat/filemanager/src/utils/format.ts @@ -10,10 +10,16 @@ function parseDate(value: unknown): Date | null { return Number.isNaN(date.getTime()) ? null : date; } +/** Detect the current UI language from the tag, normalized for Intl. */ +function getLang(): string { + if (typeof document === "undefined") return "en"; + return (document.documentElement.lang || "en").replace("_", "-"); +} + export function formatDate(value: unknown): string { const date = parseDate(value); if (!date) return ""; - return new Intl.DateTimeFormat(undefined, { + return new Intl.DateTimeFormat(getLang(), { year: "numeric", month: "short", day: "numeric", From a84f920b3cd136e23eccb3a2cf85ec9421309515 Mon Sep 17 00:00:00 2001 From: Mikel Larreategi Date: Wed, 17 Jun 2026 14:08:40 +0200 Subject: [PATCH 2/2] maint(pat-filemanager): Use distinct locales (en/es) for formatDate tests --- src/pat/filemanager/src/utils/format.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pat/filemanager/src/utils/format.test.ts b/src/pat/filemanager/src/utils/format.test.ts index 4abb84e89..d6c1e38b7 100644 --- a/src/pat/filemanager/src/utils/format.test.ts +++ b/src/pat/filemanager/src/utils/format.test.ts @@ -16,12 +16,12 @@ describe("formatDate", () => { expect(formatDate(PAST)).not.toBe(""); }); - it("respects the document language (de)", () => { + it("respects the document language (es)", () => { const originalLang = document.documentElement.lang; - document.documentElement.lang = "de"; + document.documentElement.lang = "es"; const formatted = formatDate(PAST); - // "Jan." is the short month in German for January (January 1st, 2020) - expect(formatted).toContain("Jan."); + // "ene" is the short month in Spanish for January (January 1st, 2020) + expect(formatted).toContain("ene"); document.documentElement.lang = originalLang; });