diff --git a/packages/i18n/src/client.test.ts b/packages/i18n/src/client.test.ts new file mode 100644 index 0000000..c7b0d28 --- /dev/null +++ b/packages/i18n/src/client.test.ts @@ -0,0 +1,16 @@ +/** + * @vitest-environment jsdom + */ +import { describe, expect, it } from "vitest"; +import { i18n, initI18nClient } from "./index.ts"; + +describe("initI18nClient", () => { + it("normalizes regional html lang tags to supported languages", () => { + document.documentElement.lang = "de-DE"; + + initI18nClient(); + + expect(i18n.language).toBe("de"); + expect(i18n.t("journal:nav.login")).toBe("Anmelden"); + }); +}); diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index 5db3adb..7634071 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -64,6 +64,7 @@ export function initI18nClient() { ...commonOptions, detection: { order: ["htmlTag", "navigator"], + convertDetectedLanguage: (lng: string) => matchSupportedLng(lng), caches: [], }, });