import type { InventoryLocalePack } from "../types.ts"; export type LocalePackLoader = () => Promise<{ default: InventoryLocalePack }>; /** * Lazy loaders for every non-English locale pack, keyed by inventory id * then locale. Packs are only fetched (and only enter memory / a bundle) * when requested. */ export const localePacks: Readonly>>> = { "phq9": { tr: () => import("./tr/phq9.ts"), de: () => import("./de/phq9.ts"), zh: () => import("./zh/phq9.ts"), es: () => import("./es/phq9.ts"), }, "gad7": { tr: () => import("./tr/gad7.ts"), de: () => import("./de/gad7.ts"), zh: () => import("./zh/gad7.ts"), es: () => import("./es/gad7.ts"), }, "dass21": { tr: () => import("./tr/dass21.ts"), de: () => import("./de/dass21.ts"), zh: () => import("./zh/dass21.ts"), es: () => import("./es/dass21.ts"), }, "who5": { tr: () => import("./tr/who5.ts"), de: () => import("./de/who5.ts"), zh: () => import("./zh/who5.ts"), es: () => import("./es/who5.ts"), }, "asrs6": { tr: () => import("./tr/asrs6.ts"), de: () => import("./de/asrs6.ts"), zh: () => import("./zh/asrs6.ts"), es: () => import("./es/asrs6.ts"), }, "aq10": { tr: () => import("./tr/aq10.ts"), de: () => import("./de/aq10.ts"), zh: () => import("./zh/aq10.ts"), es: () => import("./es/aq10.ts"), }, "audit": { tr: () => import("./tr/audit.ts"), de: () => import("./de/audit.ts"), zh: () => import("./zh/audit.ts"), es: () => import("./es/audit.ts"), }, "mini-ipip": { tr: () => import("./tr/mini-ipip.ts"), de: () => import("./de/mini-ipip.ts"), zh: () => import("./zh/mini-ipip.ts"), es: () => import("./es/mini-ipip.ts"), }, "cesd": { tr: () => import("./tr/cesd.ts"), de: () => import("./de/cesd.ts"), zh: () => import("./zh/cesd.ts"), es: () => import("./es/cesd.ts"), }, // ecr-r and hsps ship en plus the published, validated Turkish // adaptations (nebisumer.com); other locales can follow once verified // sources are available. "ecr-r": { tr: () => import("./tr/ecr-r.ts"), }, "erq": { tr: () => import("./tr/erq.ts"), de: () => import("./de/erq.ts"), zh: () => import("./zh/erq.ts"), es: () => import("./es/erq.ts"), }, "hsps": { tr: () => import("./tr/hsps.ts"), }, "swls": { tr: () => import("./tr/swls.ts"), de: () => import("./de/swls.ts"), zh: () => import("./zh/swls.ts"), es: () => import("./es/swls.ts"), }, "flourishing": { tr: () => import("./tr/flourishing.ts"), de: () => import("./de/flourishing.ts"), zh: () => import("./zh/flourishing.ts"), es: () => import("./es/flourishing.ts"), }, "k10": { tr: () => import("./tr/k10.ts"), de: () => import("./de/k10.ts"), zh: () => import("./zh/k10.ts"), es: () => import("./es/k10.ts"), }, "k6": { tr: () => import("./tr/k6.ts"), de: () => import("./de/k6.ts"), zh: () => import("./zh/k6.ts"), es: () => import("./es/k6.ts"), }, "rses": { tr: () => import("./tr/rses.ts"), de: () => import("./de/rses.ts"), zh: () => import("./zh/rses.ts"), es: () => import("./es/rses.ts"), }, "mini-ipip6": { tr: () => import("./tr/mini-ipip6.ts"), de: () => import("./de/mini-ipip6.ts"), zh: () => import("./zh/mini-ipip6.ts"), es: () => import("./es/mini-ipip6.ts"), }, "bis-bas": { tr: () => import("./tr/bis-bas.ts"), de: () => import("./de/bis-bas.ts"), zh: () => import("./zh/bis-bas.ts"), es: () => import("./es/bis-bas.ts"), }, "ipip-neo-60": { tr: () => import("./tr/ipip-neo-60.ts"), de: () => import("./de/ipip-neo-60.ts"), zh: () => import("./zh/ipip-neo-60.ts"), es: () => import("./es/ipip-neo-60.ts"), }, "ipip-via-r": { tr: () => import("./tr/ipip-via-r.ts"), de: () => import("./de/ipip-via-r.ts"), zh: () => import("./zh/ipip-via-r.ts"), es: () => import("./es/ipip-via-r.ts"), }, "phq15": { tr: () => import("./tr/phq15.ts"), de: () => import("./de/phq15.ts"), zh: () => import("./zh/phq15.ts"), es: () => import("./es/phq15.ts"), }, "pcl5": { tr: () => import("./tr/pcl5.ts"), de: () => import("./de/pcl5.ts"), zh: () => import("./zh/pcl5.ts"), es: () => import("./es/pcl5.ts"), }, "eat26": { tr: () => import("./tr/eat26.ts"), de: () => import("./de/eat26.ts"), zh: () => import("./zh/eat26.ts"), es: () => import("./es/eat26.ts"), }, "csi16": { tr: () => import("./tr/csi16.ts"), de: () => import("./de/csi16.ts"), zh: () => import("./zh/csi16.ts"), es: () => import("./es/csi16.ts"), }, "ucla-ls3": { tr: () => import("./tr/ucla-ls3.ts"), de: () => import("./de/ucla-ls3.ts"), zh: () => import("./zh/ucla-ls3.ts"), es: () => import("./es/ucla-ls3.ts"), }, "cbi": { tr: () => import("./tr/cbi.ts"), de: () => import("./de/cbi.ts"), zh: () => import("./zh/cbi.ts"), es: () => import("./es/cbi.ts"), }, }; /** Locales available for an inventory (its base locale plus lazy packs). */ export function availableLocales(inventoryId: string): string[] { return ["en", ...Object.keys(localePacks[inventoryId] ?? {})].sort(); }