Files
silo-server/web/src/lib/languageNames.test.ts
T
QuickandGitHub 73488d1bfa feat(metadata): add original-language preferences (#526)
* feat(metadata): add original-language preferences

* fix(settings): show metadata exceptions immediately

* docs(settings): add metadata language screenshot

* fix(settings): make language exceptions responsive

* fix(settings): standardize language display names
2026-07-31 15:23:30 -04:00

34 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
canonicalLanguageTag,
englishLanguageName,
getLanguageName,
normalizeLanguageCode,
} from "./languageNames";
describe("languageNames", () => {
it("uses bundled English CLDR names for ISO 639-1 and ISO 639-3 values", () => {
expect(englishLanguageName("sa")).toBe("Sanskrit");
expect(englishLanguageName("se")).toBe("Northern Sami");
expect(englishLanguageName("sm")).toBe("Samoan");
expect(englishLanguageName("yue")).toBe("Cantonese");
});
it("preserves region and script specificity in names", () => {
expect(englishLanguageName("pt-BR")).toBe("Brazilian Portuguese");
expect(englishLanguageName("sr-Latn")).toBe("Serbian (Latin)");
});
it("canonicalizes ISO aliases without changing regional identity", () => {
expect(canonicalLanguageTag("eng")).toBe("en");
expect(canonicalLanguageTag("pt_BR")).toBe("pt-BR");
expect(normalizeLanguageCode("fre-CA")).toBe("fr");
});
it("distinguishes an unassigned tag from a translated language name", () => {
expect(englishLanguageName("xx")).toBeNull();
expect(getLanguageName("xx")).toBe("Unknown language (xx)");
});
});