import {en} from "./languages/en.ts";
import {zh_TW} from "./languages/zh_TW.ts";
import {zh_CN} from "./languages/zh_CN.ts";
import type I18nKey from "./i18nKey.ts";
import {siteConfig} from "../config.ts";

export type Translation = {
    [K in I18nKey]: string;
}

const defaultTranslation = en;

const map: { [key: string]: Translation } = {
    "en": en,
    "en_us": en,
    "en_gb": en,
    "en_au": en,
    "zh_cn": zh_CN,
    "zh_tw": zh_TW,
}

export function getTranslation(lang: string): Translation {
    lang = lang.toLowerCase();
    return map[lang] || defaultTranslation;
}

export function i18n(key: I18nKey): string {
    const lang = siteConfig.lang || "en";
    return getTranslation(lang)[key];
}