const langMap: { [key: string]: string } = {
    // 简单语言标识映射
    fa: 'fa-IR', // 波斯语
    zh: 'zh-CN', // 中文
    en: 'en-US', // 英语（改为美国英语作为默认）
    ar: 'ar-SA', // 阿拉伯语
    de: 'de-DE', // 德语
    es: 'es-ES', // 西班牙语
    fr: 'fr-FR', // 法语
    hi: 'hi-IN', // 印地语（修正为印地语）
    id: 'id-ID', // 印度尼西亚语
    it: 'it-IT', // 意大利语
    ja: 'ja-JP', // 日语
    ko: 'ko-KR', // 朝鲜语
    nl: 'nl-NL', // 荷兰语
    pl: 'pl-PL', // 波兰语
    pt: 'pt-PT', // 葡萄牙语
    ru: 'ru-RU', // 俄语
    sv: 'sv-SE', // 瑞典语
    th: 'th-TH', // 泰语
    tr: 'tr-TR', // 土耳其语
    vi: 'vi-VN', // 越南语
    // 新增简单语言标识
    af: 'af-ZA', // 南非荷兰语（修正为南非荷兰语）
    am: 'am-ET', // 阿姆哈拉语
    as: 'as-IN', // 阿萨姆语（修正为阿萨姆语）
    az: 'az-AZ', // 阿塞拜疆语
    be: 'be-BY', // 白俄罗斯语
    bg: 'bg-BG', // 保加利亚语
    bn: 'bn-BD', // 孟加拉语
    bo: 'bo-CN', // 藏语（修正为藏语）
    bs: 'bs-BA', // 波斯尼亚语
    ca: 'ca-ES', // 加泰罗尼亚语（修正为加泰罗尼亚语）
    cs: 'cs-CZ', // 捷克语
    cy: 'cy-GB', // 威尔士语（修正为威尔士语）
    da: 'da-DK', // 丹麦语
    el: 'el-GR', // 希腊语
    et: 'et-EE', // 爱沙尼亚语
    eu: 'eu-ES', // 巴斯克语（修正为巴斯克语）
    fi: 'fi-FI', // 芬兰语
    ga: 'ga-IE', // 爱尔兰语（修正为爱尔兰语）
    gd: 'gd-GB', // 苏格兰盖立语（修正为苏格兰盖立语）
    gl: 'gl-ES', // 加利西亚语（修正为加利西亚语）
    gu: 'gu-IN', // 古吉拉特语（修正为古吉拉特语）
    he: 'he-IL', // 希伯来语
    hr: 'hr-HR', // 克罗地亚语
    hu: 'hu-HU', // 匈牙利语
    hy: 'hy-AM', // 亚美尼亚语
    is: 'is-IS', // 冰岛语
    ka: 'ka-GE', // 格鲁吉亚语
    kk: 'kk-KZ', // 哈萨克语
    km: 'km-KH', // 高棉语
    kn: 'kn-IN', // 埃纳德语（修正为埃纳德语）
    ky: 'ky-KG', // 吉尔吉斯语
    lo: 'lo-LA', // 老挝语
    lt: 'lt-LT', // 立陶宛语
    lv: 'lv-LV', // 拉脱维亚语
    mk: 'mk-MK', // 马其顿语
    ml: 'ml-IN', // 马拉雅拉姆语（修正为马拉雅拉姆语）
    mn: 'mn-MN', // 蒙古语
    mr: 'mr-IN', // 马拉地语（修正为马拉地语）
    ms: 'ms-MY', // 马来语
    mt: 'mt-MT', // 马其他语
    my: 'my-MM', // 缅甸语
    ne: 'ne-NP', // 尼泊尔语
    no: 'nb-NO', // 挪威语
    or: 'or-IN', // 奥里雅语（修正为奥里雅语）
    pa: 'pa-IN', // 旁遮普语（修正为旁遮普语）
    ps: 'ps-AF', // 普什图语
    ro: 'ro-RO', // 罗马尼亚语
    sa: 'sa-IN', // 梵语（修正为梵语）
    sd: 'sd-PK', // 信德语（修正为信德语）
    si: 'si-LK', // 僧伽罗语
    sk: 'sk-SK', // 斯洛伐克语
    sl: 'sl-SI', // 斯洛文尼亚语
    sq: 'sq-AL', // 阿尔巴尼亚语
    sr: 'sr-RS', // 塞尔维亚语
    sw: 'sw-KE', // 斯瓦西里语
    ta: 'ta-IN', // 泰米尔语（修正为泰米尔语）
    te: 'te-IN', // 泰卢固语（修正为泰卢固语）
    tg: 'tg-TJ', // 塔吉克语
    ti: 'ti-ET', // 提格里尼亚语
    tk: 'tk-TM', // 土库曼语
    tt: 'tt-RU', // 鞑靼语（修正为鞑靼语）
    ug: 'ug-CN', // 维吾尔语（修正为维吾尔语）
    uk: 'uk-UA', // 乌克兰语
    ur: 'ur-PK', // 乌尔都语
    uz: 'uz-UZ', // 乌兹别克语
    wo: 'wo-SN', // 沃洛夫语（修正为沃洛夫语）
    xh: 'xh-ZA', // 索萨语（修正为索萨语）
    yo: 'yo-NG', // 约鲁巴语（修正为约鲁巴语）
    zu: 'zu-ZA', // 祖鲁语（修正为祖鲁语）

    // 原有的详细语言映射
    'sq-al': 'sq-AL', //阿尔巴尼亚语(阿尔巴尼亚)
    'gsw-fr': 'gsw-FR', //阿尔萨斯语(法国)
    'ar-dz': 'ar-DZ', //阿拉伯语(阿尔及利亚)
    'ar-ae': 'ar-AE', //阿拉伯语(阿联酋)
    'ar-om': 'ar-OM', //阿拉伯语(阿曼)
    'ar-eg': 'ar-EG', //阿拉伯语(埃及)
    'ar-bh': 'ar-BH', //阿拉伯语(巴林)
    'ar-qa': 'ar-QA', //阿拉伯语(卡塔尔)
    'ar-kw': 'ar-KW', //阿拉伯语(科威特)
    'ar-lb': 'ar-LB', //阿拉伯语(黎巴嫩)
    'ar-ly': 'ar-LY', //阿拉伯语(利⽐亚)
    'ar-ma': 'ar-MA', //阿拉伯语(摩洛哥)
    'ar-sa': 'ar-SA', //阿拉伯语(沙特阿拉伯)
    'ar-tn': 'ar-TN', //阿拉伯语(突尼斯)
    'ar-sy': 'ar-SY', //阿拉伯语(叙利亚)
    'ar-ye': 'ar-YE', //阿拉伯语(也门)
    'ar-iq': 'ar-IQ', //阿拉伯语(伊拉克)
    'ar-jo': 'ar-JO', //阿拉伯语(约旦)
    'am-et': 'am-ET', //阿姆哈拉语(埃塞俄⽐亚)
    'as-in': 'as-IN', //阿萨姆语(印度)
    'az-latn': 'az-AZ', //阿塞拜疆语(拉丁语)
    'az-latn-az': 'az-AZ', //阿塞拜疆语(拉丁语，阿塞拜疆)
    'az-cyrl': 'az-AZ', //阿塞拜疆语(西⾥尔⽂)
    'az-cyrl-az': 'az-AZ', //阿塞拜疆语(西⾥尔⽂，阿塞拜疆)
    'kn-in': 'kn-IN', //埃纳德语(印度)
    'ga-ie': 'ga-IE', //爱尔兰语(爱尔兰)
    'et-ee': 'et-EE', //爱沙尼亚语(爱沙尼亚)
    'oc-fr': 'oc-FR', //奥克西唐语(法国)
    'or-in': 'or-IN', //奥里雅语(印度)
    'ba-ru': 'ba-RU', //巴什基尔语(俄罗斯)
    'eu-es': 'eu-ES', //巴斯克语(巴斯克)
    'nso-za': 'nso-ZA', //巴索托语(南⾮)
    'be-by': 'be-BY', //白俄罗斯语(白俄罗斯)
    'bg-bg': 'bg-BG', //保加利亚语(保加利亚)
    'se-fi': 'se-FI', //北萨米语(芬兰)
    'se-no': 'se-NO', //北萨米语(挪威)
    'se-se': 'se-SE', //北萨米语(瑞典)
    'is-is': 'is-IS', //冰岛语(冰岛)
    'pl-pl': 'pl-PL', //波兰语(波兰)
    'bs-latn': 'bs-BA', //波斯尼亚语(拉丁语)
    'bs-latn-ba': 'bs-BA', //波斯尼亚语(拉丁语，波斯尼亚和⿊塞哥维那)
    'bs-cyrl': 'bs-BA', //波斯尼亚语(西⾥尔⽂)
    'bs-cyrl-ba': 'bs-BA', //波斯尼亚语(西⾥尔⽂，波斯尼亚和⿊塞哥维那)
    'fa-ir': 'fa-IR', //波斯语
    'br-fr': 'br-FR', //布里多尼语(法国)
    'bo-cn': 'bo-CN', //藏语(中国)
    'ko-kr': 'ko-KR', //朝鲜语(韩国)
    'tn-za': 'tn-ZA', //茨瓦纳语(南非)
    'prs-af': 'ps-AF', //达里语(阿富汗)
    'tt-ru': 'tt-RU', //鞑靼语(俄罗斯)
    'da-dk': 'da-DK', //丹麦语(丹麦)
    'de-at': 'de-AT', //德语(奥地利)
    'de-de': 'de-DE', //德语(德国)
    'de-li': 'de-LI', //德语(列⽀敦⼠登)
    'de-lu': 'de-LU', //德语(卢森堡)
    'de-ch': 'de-CH', //德语(瑞⼠)
    'dv-mv': 'dv-MV', //迪维希语(马尔代夫)
    'ru-ru': 'ru-RU', //俄语(俄罗斯)
    'fo-fo': 'fo-FO', //法罗语(法罗群岛)
    'fr-be': 'fr-BE', //法语(⽐利时)
    'fr-fr': 'fr-FR', //法语(法国)
    'fr-ca': 'fr-CA', //法语(加拿⼤)
    'fr-lu': 'fr-LU', //法语(卢森堡)
    'fr-mc': 'fr-MC', //法语(摩纳哥)
    'fr-ch': 'fr-CH', //法语(瑞⼠)
    'sa-in': 'sa-IN', //梵语(印度)
    'fil-ph': 'fil-PH', //菲律宾语(菲律宾)
    'fi-fi': 'fi-FI', //芬兰语(芬兰)
    'fy-nl': 'fy-NL', //弗⾥西亚语(荷兰)
    'km-kh': 'km-KH', //高棉语(柬埔寨)
    'kl-gl': 'kl-GL', //格陵兰语(格陵兰)
    'ka-ge': 'ka-GE', //格鲁吉亚语(格鲁吉亚)
    'gu-in': 'gu-IN', //古吉拉特语(印度)
    'kk-kz': 'kk-KZ', //哈萨克语(哈萨克斯坦)
    'ha-latn': 'ha-NG', //豪撒语(拉丁语)
    'ha-latn-ng': 'ha-NG', //豪撒语(拉丁语，尼⽇利亚)
    'nl-be': 'nl-BE', //荷兰语(⽐利时)
    'nl-nl': 'nl-NL', //荷兰语(荷兰)
    'qut-gt': 'qut-GT', //基切语(危地马拉)
    'ky-kg': 'ky-KG', //吉尔吉斯语(吉尔吉斯斯坦)
    'gl-es': 'gl-ES', //加利西亚语(加利西亚语)
    'ca-es': 'ca-ES', //加泰罗尼亚语(加泰罗尼亚)
    'ca-es-valencia': 'ca-ES', //加泰罗尼亚语(加泰罗尼亚)
    'cs-cz': 'cs-CZ', //捷克语(捷克共和国)
    'co-fr': 'co-FR', //科西嘉语(法国)
    'hr-hr': 'hr-HR', //克罗地亚语(克罗地亚)
    'hr-ba': 'hr-BA', //克罗地亚语(拉丁语，波斯尼亚和⿊塞哥维那)
    'quz-bo': 'quz-BO', //克丘亚语(玻利维亚)
    'quz-ec': 'quz-EC', //克丘亚语(厄⽠多尔)
    'quz-pe': 'quz-PE', //克丘亚语(秘鲁)
    'kok-in': 'kok-IN', //孔卡尼语(印度)
    'lv-lv': 'lv-LV', //拉脱维亚语(拉脱维亚)
    'lo-la': 'lo-LA', //老挝语(老挝人民民主共和国)
    'lt-lt': 'lt-LT', //立陶宛语(立陶宛)
    'lb-lu': 'lb-LU', //卢森堡语(卢森堡)
    'rw-rw': 'rw-RW', //卢旺达语(卢旺达)
    'ro-ro': 'ro-RO', //罗马尼亚语(罗马尼亚)
    'rm-ch': 'rm-CH', //罗曼什语(瑞⼠)
    'smj-no': 'smj-NO', //律勒萨米语(挪威)
    'smj-se': 'smj-SE', //律勒萨米语(瑞典)
    'mt-mt': 'mt-MT', //马其他语(马其他)
    'mr-in': 'mr-IN', //马拉地语(印度)
    'ml-in': 'ml-IN', //马拉雅拉姆语(印度)
    'ms-my': 'ms-MY', //马来语(马来西亚)
    'ms-bn': 'ms-BN', //马来语(⽂莱达鲁萨兰国)
    'my-mm': 'my-MM', //缅甸语(缅甸)
    'arn-cl': 'arn-CL', //马普丹冈语(智利)
    'mk-mk': 'mk-MK', //马其顿语(前南斯拉夫马其顿共和国)
    'mi-nz': 'mi-NZ', //毛利语(新西兰)
    'mn-mong': 'mn-MN', //蒙古语(传统蒙古语)
    'mn-mong-cn': 'mn-MN', //蒙古语(传统蒙古语，中国)
    'mn-cyrl': 'mn-MN', //蒙古语(西⾥尔⽂)
    'mn-mn': 'mn-MN', //蒙古语(西⾥尔⽂，蒙古)
    'bn-bd': 'bn-BD', //孟加拉语(孟加拉国)
    'bn-in': 'bn-IN', //孟加拉语(印度)
    'moh-ca': 'moh-CA', //莫霍克语(莫霍克)
    'af-za': 'af-ZA', //南非荷兰语(南非)
    'sma-no': 'sma-NO', //南萨米语(挪威)
    'sma-se': 'sma-SE', //南萨米语(瑞典)
    'ne-np': 'ne-NP', //尼泊尔语(尼泊尔)
    'pa-in': 'pa-IN', //旁遮普语(印度)
    'pa-arab-pk': 'pa-PK', //旁遮普语(阿拉伯语)
    'pt-br': 'pt-BR', //葡萄牙语(巴西)
    'pt-pt': 'pt-PT', //葡萄牙语(葡萄牙)
    'chr-cher-us': 'chr-US', //切罗基语
    'ja-jp': 'ja-JP', //日语(日本)
    'sv-fi': 'sv-FI', //瑞典语(芬兰)
    'sv-se': 'sv-SE', //瑞典语(瑞典)
    'sr-latn': 'sr-RS', //塞尔维亚语(拉丁语)
    'sr-latn-ba': 'sr-BA', //塞尔维亚语(拉丁语，波斯尼亚和⿊塞哥维那)
    'sr-latn-me': 'sr-ME', //塞尔维亚语(拉丁语，⿊⼭共和国)
    'sr-latn-rs': 'sr-RS', //塞尔维亚语(拉丁语，塞尔维亚共和国)
    'sr-latn-cs': 'sr-RS', //塞尔维亚语(拉丁语，塞尔维亚和⿊⼭(前
    'sr-cyrl': 'sr-RS', //塞尔维亚语(西⾥尔⽂)
    'sr-cyrl-ba': 'sr-BA', //塞尔维亚语(西⾥尔⽂，波斯尼亚和⿊塞哥维那)
    'sr-cyrl-me': 'sr-ME', //塞尔维亚语(西⾥尔⽂，⿊⼭共和国)
    'sr-cyrl-rs': 'sr-RS', //塞尔维亚语(西⾥尔⽂，塞尔维亚共和国)
    'sr-cyrl-cs': 'sr-RS', //塞尔维亚语(西⾥尔⽂，塞尔维亚和⿊⼭(前
    'si-lk': 'si-LK', //僧伽罗语(斯⾥兰卡)
    'hsb-de': 'hsb-DE', //上索布语(德国)
    'nb-no': 'nb-NO', //书面挪威语(挪威)
    'nn-no': 'nn-NO', //尼诺斯克挪威语(挪威)
    'sms-fi': 'sms-FI', //斯科特萨⽶语(芬兰)
    'sk-sk': 'sk-SK', //斯洛伐克语(斯洛伐克)
    'sl-si': 'sl-SI', //斯洛文尼亚语(斯洛文尼亚)
    'sw-ke': 'sw-KE', //斯瓦西里语(肯尼亚)
    'gd-gb': 'gd-GB', //苏格兰盖立语(英国)
    'tg-cyrl': 'tg-TJ', //塔吉克语(西⾥尔⽂)
    'tg-cyrl-tj': 'tg-TJ', //塔吉克语(西⾥尔⽂，塔吉克斯坦)
    'tzm-latn': 'tzm-DZ', //塔马塞特语(拉丁语)
    'tzm-latn-dz': 'tzm-DZ', //塔马塞特语(拉丁语，阿尔及利亚)
    'th-th': 'th-TH', //泰语(泰国)
    'te-in': 'te-IN', //泰卢固语(印度)
    'ta-in': 'ta-IN', //泰米尔语(印度)
    'tr-tr': 'tr-TR', //土耳其语(土耳其)
    'tk-tm': 'tk-TM', //土库曼语(土库曼斯坦)
    'cy-gb': 'cy-GB', //威尔士语(英国)
    'ug-cn': 'ug-CN', //维吾尔语(中国)
    'wo-sn': 'wo-SN', //沃洛夫语(塞内加尔)
    'ur-pk': 'ur-PK', //乌尔都语(巴基斯坦伊斯兰共和国)
    'uk-ua': 'uk-UA', //乌克兰语(乌克兰)
    'uz-latn': 'uz-UZ', //乌兹别克语(拉丁语)
    'uz-latn-uz': 'uz-UZ', //乌兹别克语(拉丁语，乌兹别克斯坦)
    'uz-cyrl': 'uz-UZ', //乌兹别克语(西⾥尔⽂)
    'uz-cyrl-uz': 'uz-UZ', //乌兹别克语(西⾥尔⽂，乌兹别克斯坦)
    'es-ar': 'es-AR', //西班牙语(阿根廷)
    'es-py': 'es-PY', //西班牙语(巴拉圭)
    'es-pa': 'es-PA', //西班牙语(巴拿马)
    'es-pr': 'es-PR', //西班牙语(波多黎各)
    'es-bo': 'es-BO', //西班牙语(玻利维亚)
    'es-do': 'es-DO', //西班牙语(多⽶尼加共和国)
    'es-ec': 'es-EC', //西班牙语(厄⽠多尔)
    'es-co': 'es-CO', //西班牙语(哥伦⽐亚)
    'es-cr': 'es-CR', //西班牙语(哥斯达黎加)
    'es-hn': 'es-HN', //西班牙语(洪都拉斯)
    'es-us': 'es-US', //西班牙语(美国)
    'es-pe': 'es-PE', //西班牙语(秘鲁)
    'es-mx': 'es-MX', //西班牙语(墨西哥)
    'es-ni': 'es-NI', //西班牙语(尼加拉⽠)
    'es-sv': 'es-SV', //西班牙语(萨尔⽡多)
    'es-gt': 'es-GT', //西班牙语(危地马拉)
    'es-ve': 'es-VE', //西班牙语(委内瑞拉玻利⽡尔共和国)
    'es-uy': 'es-UY', //西班牙语(乌拉圭)
    'es-es': 'es-ES', //西班牙语(西班⽛，国际排序)
    'es-cl': 'es-CL', //西班牙语(智利)
    'he-il': 'he-IL', //希伯来语(以⾊列)
    'el-gr': 'el-GR', //希腊语(希腊)
    'dsb-de': 'dsb-DE', //下索布语(德国)
    'hu-hu': 'hu-HU', //匈牙利语(匈牙利)
    'ad-arab-pk': 'sd-PK', //信德语(阿拉伯语)
    'syr-sy': 'syr-SY', //叙利亚语(叙利亚)
    'sah-ru': 'sah-RU', //雅库特语(俄罗斯)
    'hy-am': 'hy-AM', //亚美尼亚语(亚美尼亚)
    'ig-ng': 'ig-NG', //伊博语(尼⽇利亚)
    'smn-fi': 'smn-FI', //伊纳里萨米语(芬兰)
    'ii-cn': 'ii-CN', //彝语(中国)
    'it-ch': 'it-CH', //意大利语(瑞⼠)
    'it-it': 'it-IT', //意大利语(意⼤利)
    'iu-latn': 'iu-CA', //因纽特语(拉丁语)
    'iu-latn-ca': 'iu-CA', //因纽特语(拉丁语，加拿⼤)
    'iu-cans': 'iu-CA', //因纽特语(⾳节)
    'iu-cans-ca': 'iu-CA', //因纽特语(⾳节，加拿⼤)
    'hi-in': 'hi-IN', //印地语(印度)
    'id-id': 'id-ID', //印度尼西亚语(印度尼西亚)
    'en-ie': 'en-IE', //英语(爱尔兰)
    'en-au': 'en-AU', //英语(澳⼤利亚)
    'en-bz': 'en-BZ', //英语(伯利兹)
    'en-ph': 'en-PH', //英语(菲律宾共和国)
    'en-029': 'en-029', //英语(加勒⽐海)
    'en-ca': 'en-CA', //英语(加拿⼤)
    'en-zw': 'en-ZW', //英语(津巴布韦)
    'en-my': 'en-MY', //英语(马来西亚)
    'en-us': 'en-US', //英语(美国)
    'en-za': 'en-ZA', //英语(南⾮)
    'en-tt': 'en-TT', //英语(特⽴尼达和多巴哥)
    'en-sg': 'en-SG', //英语(新加坡)
    'en-nz': 'en-NZ', //英语(新西兰)
    'en-jm': 'en-JM', //英语(⽛买加)
    'en-in': 'en-IN', //英语(印度)
    'en-gb': 'en-GB', //英语(英国)
    'yo-ng': 'yo-NG', //约鲁巴语(尼⽇利亚)
    'vi-vn': 'vi-VN', //越南语(越南)
    'zh-hant': 'zh-TW', //中文(繁体)
    'zh-mo': 'zh-MO', //中文(繁体，澳门特别行政区)
    'zh-tw': 'zh-TW', //中文(繁体，台湾)
    'zh-hk': 'zh-HK', //中文(繁体，香港特别行政区)
    'zh-cn': 'zh-CN', //中文(简体)
    'zh-sg': 'zh-SG', //中文(简体，新加坡)
    'ku-arab-iq': 'ku-IQ', //中部库尔德语

    // 新增标准语言变体映射
    'zh-hans': 'zh-CN', // 简体中文
    'en-001': 'en-GB', // 国际英语
    'en-150': 'en-GB', // 欧洲英语
    'ar-001': 'ar-SA', // 现代标准阿拉伯语
    'es-419': 'es-ES', // 拉丁美洲西班牙语
    'fr-001': 'fr-FR', // 国际法语
    'pt-001': 'pt-PT', // 国际葡萄牙语

    // 新增特殊用途语言代码
    und: 'en-US', // 未定义语言
    mul: 'en-US', // 多语言
    zxx: 'en-US', // 无语言内容
};

import replace from 'ramda/es/replace';

export function getLangTarget(language: string): string {
    return langMap[replace(/_/g, '-', language.toLowerCase())] || 'en-US';
}
