import { Lang } from "@scandic-hotels/common/constants/language" import { ApiLang } from "@scandic-hotels/trpc/constants/apiLang" export const languages: Record = { [Lang.da]: "Dansk", [Lang.de]: "Deutsch", [Lang.en]: "English", [Lang.fi]: "Suomi", [Lang.no]: "Norsk", [Lang.sv]: "Svenska", } export const localeToLang: Record = { en: Lang.en, "en-US": Lang.en, "en-GB": Lang.en, "en-DE": Lang.en, "en-DK": Lang.en, "en-SE": Lang.en, "en-FI": Lang.en, sv: Lang.sv, "se-SE": Lang.sv, "sv-SE": Lang.sv, "sv-FI": Lang.sv, fi: Lang.fi, "fi-FI": Lang.fi, "se-FI": Lang.fi, "smn-FI": Lang.fi, dk: Lang.da, da: Lang.da, "da-DK": Lang.da, "fo-DK": Lang.da, de: Lang.de, "de-DE": Lang.de, "dsb-DE": Lang.de, "ksh-DE": Lang.de, "nds-DE": Lang.de, "hsb-DE": Lang.de, "de-CH": Lang.de, "de-AU": Lang.de, no: Lang.no, nb: Lang.no, "nb-NO": Lang.no, "nn-NO": Lang.no, "se-NO": Lang.no, } as const export const languageSelect = [ { label: "Danish", value: ApiLang.Da }, { label: "German", value: ApiLang.De }, { label: "English", value: ApiLang.En }, { label: "Finnish", value: ApiLang.Fi }, { label: "Norwegian", value: ApiLang.No }, { label: "Swedish", value: ApiLang.Sv }, ] /** * Get localized language options based on the current lang. */ export function getLocalizedLanguageOptions(currentLang: Lang) { const displayNames = new Intl.DisplayNames([currentLang], { type: "language", }) return languageSelect.map((option) => { const localizedName = displayNames.of(option.value) const capitalizedName = localizedName ? localizedName.charAt(0).toUpperCase() + localizedName.slice(1) : option.label return { value: option.value, label: capitalizedName, } }) }