Ant Design Vue中日期插件国际化显示错乱:使用 Ant Design Vue的a-date-picker插件,设置了中文格式,但依旧显示的为中英文混乱效果,如何解决?

发布时间:2026/8/20 15:59:24

Ant Design Vue中日期插件国际化显示错乱:使用 Ant Design Vue的a-date-picker插件,设置了中文格式,但依旧显示的为中英文混乱效果,如何解决?
本文收录于 《全栈 Bug 调优实战版》 专栏。专栏聚焦真实项目中的各类疑难 Bug从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者还是负责复杂项目的资深工程师都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论助你稳步进阶、放大技术价值。特别说明文中问题案例来源于真实生产环境与公开技术社区并结合多位一线资深工程师与架构师的长期实践经验经过人工筛选与AI系统化智能整理后输出。文中的解决方案并非唯一“标准答案”而是兼顾可行性、可复现性与思路启发性的实践参考供你在实际项目中灵活运用与演进。欢迎订阅本专栏一次订阅后专栏内所有文章可永久免费阅读后续更新内容皆不用再次订阅持续更新中。 问题描述详细问题描述如下Ant Design Vue中日期插件国际化显示错乱使用 Ant Design Vue的a-date-picker插件设置了中文格式但依旧显示的为中英文混乱效果如何解决main.ts注册文件如下import{createApp}fromvue;importprintfromvue3-print-nb;importAppfrom./App.vue;import{setupRouter}from./router;import{setupIcons}from./components/basic/icon;import{setupStore}from/store;import{setupAntd,setupAssets,setupGlobalMethods}from/plugins;importdayjsfromdayjs;importlanguageChinesefromdayjs/locale/zh-cn;constappcreateApp(App);functionsetupPlugins(){// 安装图标setupIcons();// 注册全局常用的ant-design-vue组件setupAntd(app);// 引入静态资源setupAssets();// 注册全局方法如app.config.globalProperties.$message messagesetupGlobalMethods(app);}asyncfunctionsetupApp(){dayjs.locale(languageChinese);// 挂载vuex状态管理setupStore(app);// Multilingual configuration// Asynchronous case: language files may be obtained from the server side// 挂载路由setupRouter(app);app.use(print);app.mount(#app);}setupPlugins();setupApp();全局页面配置:script setup langtsimportzhCNfromant-design-vue/es/locale/zh_CN;import{ConfigProvider}fromant-design-vue;defineOptions({name:ProConfigProvider,});/scripttemplateConfigProvider:localezhCNslot/slot/ConfigProvider/template全文目录 问题描述 请知悉如下方案不保证一定适配你的问题✅️问题理解✅️问题解决方案方案 A按官方推荐方式重构 Day.js 国际化初始化最推荐根治型第一步改掉 main.ts 的写法第二步把 Day.js locale 初始化再前置一层第三步检查有没有“提前创建的 dayjs 实例”第四步如果已有值是旧实例要重建方案 B对 DatePicker 单独补齐 locale 配置组件级兜底方案 C如果项目里有动态切换中英文做“语言切换后重建日期实例”✅️问题延伸1组件文案层2日期对象语言层3显示格式层✅️问题预测1RangePicker、MonthPicker、WeekPicker 也会出现同类问题2“今天”中文了但星期头还是英文3切换语言后输入框变了弹窗面板没全变4某些页面正常某些页面不正常5SSR、微前端、多入口项目更容易出问题✅️小结 结语 互动说明 文末福利技术成长加速包 Who am I? 请知悉如下方案不保证一定适配你的问题如下是针对上述问题进行专业角度剖析答疑不喜勿喷仅供参考✅️问题理解你这个现象本质上不是“中文没配上”而是只配对了一半。从你截图里的2025年 Feb可以非常明确地判断出ConfigProvider的zhCN已经生效了一部分所以“今天”、年份格式里的“年”是中文但Day.js 的月份/星期语言环境没有完整作用到 DatePicker 当前使用的日期实例所以月份仍然显示成Feb这样的英文缩写。Ant Design Vue 官方文档也明确说明DatePicker 默认是en-US可以通过DatePicker locale或ConfigProvider locale设置组件文案同时其示例里还单独要求引入 Day.js 的zh-cn语言包并调用dayjs.locale(zh-cn)。再结合 Day.js 官方说明关键点还有一个修改全局 locale 不会影响“之前已经创建好的 Day.js 实例”。也就是说只要有某些dayjs()对象是在dayjs.locale(zh-cn)之前创建出来的它们依然会保留英文环境。你看到的“年份中文、月份英文”这种混搭和社区里反馈过的现象是吻合的。所以这个问题通常不是单点 bug而是下面这两个国际化层没有同时统一你的代码里最值得怀疑的点有 3 个你用了import languageChinese from dayjs/locale/zh-cndayjs.locale(languageChinese)但官方推荐写法是直接加载语言包再传字符串zh-cn。dayjs.locale(...)放在setupApp()里执行时机偏晚。如果项目中有任何模块在main.ts导入阶段、store 初始值、表单 schema、组件顶层常量里就提前执行了dayjs()这些实例就已经是英文了。这个判断与 Day.js“不会影响既有实例”的规则完全一致。ConfigProvider解决的是 Ant Design Vue 组件层文案不等于自动把所有 Day.js 实例也切成中文。Ant Design Vue 文档本身就是把这两件事拆开说明的。✅️问题解决方案方案 A按官方推荐方式重构 Day.js 国际化初始化最推荐根治型这是最稳、最标准、最适合生产环境的方案。核心原则只有一句话先加载 Day.js 中文语言包并设置全局 locale再让任何 DatePicker / store / 默认值去创建 dayjs 实例。第一步改掉main.ts的写法你现在是importdayjsfromdayjs;importlanguageChinesefromdayjs/locale/zh-cn;asyncfunctionsetupApp(){dayjs.locale(languageChinese);...}建议改成import{createApp}fromvue;importprintfromvue3-print-nb;importAppfrom./App.vue;import{setupRouter}from./router;import{setupIcons}from./components/basic/icon;import{setupStore}from/store;import{setupAntd,setupAssets,setupGlobalMethods}from/plugins;importdayjsfromdayjs;importdayjs/locale/zh-cn;// 必须尽早执行dayjs.locale(zh-cn);constappcreateApp(App);functionsetupPlugins(){setupIcons();setupAntd(app);setupAssets();setupGlobalMethods(app);}asyncfunctionsetupApp(){setupStore(app);setupRouter(app);app.use(print);app.mount(#app);}setupPlugins();setupApp();这里有两个关键变化import dayjs/locale/zh-cn这是加载语言包dayjs.locale(zh-cn)这是切换全局语言且官方就是这么写的。第二步把 Day.js locale 初始化再前置一层更严谨的做法是专门建一个文件比如src/bootstrap/dayjs-locale.tsimportdayjsfromdayjs;importdayjs/locale/zh-cn;dayjs.locale(zh-cn);exportdefaultdayjs;然后在main.ts顶部第一行就先引入它import./bootstrap/dayjs-locale;import{createApp}fromvue;importAppfrom./App.vue;...这样做的意义是把 locale 初始化从“业务流程中的一步”变成“应用启动前置依赖”。对于大型项目、后台模板、多人协作项目这个做法比把dayjs.locale()塞在setupApp()里更安全。第三步检查有没有“提前创建的 dayjs 实例”这个点非常重要也是很多人明明改了 locale 还不生效的根本原因。重点排查这些位置store初始 state 里是否写了dayjs()表单默认值对象里是否写了dayjs()组件script setup顶层常量是否写了const defaultDate dayjs()工具模块里是否导出了const now dayjs()路由 meta / 查询参数默认值里是否提前生成日期对象例如下面这种就很容易中招// 错误示例模块加载时就创建了 dayjs 实例exportconstqueryParamsreactive({date:dayjs(),});应改成exportconstqueryParamsreactive({date:null,});exportfunctioninitQueryParams(){queryParams.datedayjs();}或者至少确保这个文件是在 Day.js locale 完成初始化之后才被执行。第四步如果已有值是旧实例要重建因为 Day.js 官方明确说了修改全局 locale 不影响之前创建好的实例。所以如果你的表单值、store 值、缓存值已经是旧的英文实例要重新生成一次importdayjsfromdayjs;if(formState.date){formState.datedayjs(formState.date).locale(zh-cn);}如果是数组范围if(formState.range?.length){formState.rangeformState.range.map((d)dayjs(d).locale(zh-cn));}方案 B对 DatePicker 单独补齐 locale 配置组件级兜底Ant Design Vue 官方文档提到DatePicker 既可以走ConfigProvider locale也可以单独传locale属性。你的全局ConfigProvider已经有了但为了避免局部组件没有正确继承或者某些封装组件打断上下文建议你对日期组件再补一层显式传参。script setup langts import zhCN from ant-design-vue/es/date-picker/locale/zh_CN; import { ref } from vue; import dayjs, { Dayjs } from dayjs; const value refDayjs | null(dayjs().locale(zh-cn)); /script template a-date-picker v-model:valuevalue :localezhCN formatYYYY-MM-DD / /template这个方案的作用是:localezhCN确保 DatePicker 自己的组件文案、面板配置明确是中文value用.locale(zh-cn)确保当前值实例自身也是中文环境。不过这里要强调一下format只决定输入框显示/解析格式不决定面板上的月份、星期是中文还是英文。面板里月份名、星期名是否中文根源仍然是 Day.js locale 和实例创建时机。这个认知很关键。所以这个方案更像是“组件级兜底”不是唯一根治手段。方案 C如果项目里有动态切换中英文做“语言切换后重建日期实例”如果你的系统支持运行时切换语言那么即便初始化时是正确的后面也可能再次出现“文案切了日期实例没切”的问题。建议在语言切换逻辑里统一处理importdayjsfromdayjs;exportfunctionswitchLang(lang:zh-cn|en){dayjs.locale(lang);// 重新创建当前页面或 store 中所有日期实例if(formState.date){formState.datedayjs(formState.date).locale(lang);}if(formState.range?.length){formState.rangeformState.range.map((d)dayjs(d).locale(lang));}}如果你用的是vue-i18n可以监听语言变化watch(()locale.value,(lang){constdayjsLanglangzh-CN?zh-cn:en;dayjs.locale(dayjsLang);if(formState.date){formState.datedayjs(formState.date).locale(dayjsLang);}},{immediate:true});这个方案适合多语言后台SaaS 管理系统国际化门户站支持用户实时切换语言的控制台✅️问题延伸这个问题其实延伸出一个非常重要的前端国际化认知UI 组件国际化 ≠ 日期库国际化 ≠ 数据格式国际化。很多人会把这 3 件事混在一起但它们实际上是 3 层1组件文案层由ConfigProvider locale或组件自身locale控制。比如今天确定占位符面板某些固定文案这是 Ant Design Vue 负责的部分。2日期对象语言层由dayjs.locale(zh-cn)控制。比如Jan / Feb / Mar 还是 一月 / 二月 / 三月Mon / Tue 还是 周一 / 周二某些 locale-aware 的格式化输出这是 Day.js 负责的部分。3显示格式层由format、valueFormat、dayjs().format(...)控制。比如YYYY-MM-DDYYYY年MM月DD日MM/DD/YYYY这层只决定“怎么格式化”不自动决定语言环境。所以很多人会写a-date-picker formatYYYY年MM月DD日 /然后以为月份面板也会变中文。实际上不会。因为format只是输出模板不是 locale 开关。✅️问题预测基于你当前项目结构我预测后续还可能遇到下面几类连带问题建议你现在一起规避掉1RangePicker、MonthPicker、WeekPicker 也会出现同类问题如果根因是 Day.js 实例创建时机不对那么不仅a-date-picker会混乱a-range-picker、pickermonth、pickerweek也会出现中英混排。2“今天”中文了但星期头还是英文这说明ConfigProvider locale生效了但 Day.js locale 没生效或者值实例是旧实例。这个症状和你当前问题是同一类。3切换语言后输入框变了弹窗面板没全变这是典型的“全局文案响应式更新了但旧 Day.js 实例没重建”。4某些页面正常某些页面不正常通常意味着某些页面在组件顶层提前创建了dayjs()某些 store/module 在 import 时就生成了日期默认值某些封装日期组件没有继承全局ConfigProvider5SSR、微前端、多入口项目更容易出问题因为这类项目的模块执行顺序更复杂locale 初始化时机更难保证统一。这时一定要把 Day.js locale 初始化做成独立 bootstrap。✅️小结你的问题本质上是Ant Design Vue 的组件中文文案生效了但 Day.js 的中文语言环境没有完整作用到 DatePicker 当前使用的日期实例因此出现了2025年 Feb这种中英文混合显示。这个判断同时符合 Ant Design Vue 的官方使用方式和 Day.js 关于 locale 作用范围的规则。你最应该直接落地的修复动作是这 4 条把importlanguageChinesefromdayjs/locale/zh-cn;dayjs.locale(languageChinese);改成importdayjs/locale/zh-cn;dayjs.locale(zh-cn);这是官方推荐路径。把dayjs.locale(zh-cn)提前到应用最早阶段不要放在setupApp()里等业务流程执行后再设。排查所有“在 locale 设置之前就创建的 dayjs 实例”尤其是 store 初始值、组件顶层常量、表单默认值。对已经创建过的旧值重新生成实例必要时对a-date-picker单独传:localezhCN做兜底。 结语 互动说明希望以上分析与解决思路能为你当前的问题提供一些有效线索或直接可用的操作路径。若你按文中步骤执行后仍未解决不必焦虑或抱怨这很常见——复杂问题往往由多重因素叠加引起欢迎你将最新报错信息、关键代码片段、环境说明等补充到评论区我会在力所能及的范围内结合大家的反馈一起帮你继续定位 如果你有更优或更通用的解法非常欢迎在评论区分享你的实践经验或改进方案你的这份补充可能正好帮到更多正在被类似问题困扰的同学正所谓「赠人玫瑰手有余香」也算是为技术社区持续注入正向循环 文末福利技术成长加速包 文中部分问题来自本人项目实践部分来自读者反馈与公开社区案例也有少量经由全网社区与智能问答平台整理而来。若你尝试后仍没完全解决问题还请多一点理解、少一点苛责——技术问题本就复杂多变没有任何人能给出对所有场景都 100% 套用的方案。如果你已经找到更适合自己项目现场的做法非常建议你沉淀成文档或教程这不仅是对他人的帮助更是对自己认知的再升级。如果你还在持续查 Bug、找方案可以顺便逛逛我专门整理的 Bug 专栏《全栈 Bug 调优实战版》️这里收录的都是在真实场景中踩过的坑希望能帮你少走弯路节省更多宝贵时间。✍️如果这篇文章对你有一点点帮助欢迎给 bug菌 来个一键三连关注 点赞 收藏你的支持是我持续输出高质量实战内容的最大动力。同时也欢迎关注我的硬核公众号 「猿圈奇妙屋」获取第一时间更新的技术干货、BAT 等互联网公司最新面试真题、4000G 技术 PDF 电子书、简历 / PPT 模板、技术文章 Markdown 模板等资料通通免费领取。你能想到的绝大部分学习资料我都尽量帮你准备齐全剩下的只需要你愿意迈出那一步来拿。 Who am I?我是 bug菌热活跃于 CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等技术社区CSDN 博客之星 Top30、华为云多年度十佳博主/卓越贡献者、掘金多年度人气作者 Top40掘金、InfoQ、51CTO 等平台签约及优质作者全网粉丝累计30w。更多高质量技术内容及成长资料可查看这个合集入口 点击查看 ️硬核技术公众号「猿圈奇妙屋」期待你的加入一起进阶、一起打怪升级。- End -

相关新闻

快手无水印下载怎么实现?KS-Downloader 快速上手与完整使用指南

快手无水印下载怎么实现?KS-Downloader 快速上手与完整使用指南

2026/8/20 15:59:24

快手无水印下载怎么实现?KS-Downloader 快速上手与完整使用指南 【免费下载链接】KS-Downloader 快手(KuaiShou)作品视频/图片下载工具 项目地址: https://gitcode.com/gh_mirrors/ks/KS-Downloader 你有没有过这样的瞬间:…

如何快速入门 PX4 开源飞控:新手完整实操指南(仿真与固件编译)

如何快速入门 PX4 开源飞控:新手完整实操指南(仿真与固件编译)

2026/8/20 15:59:24

如何快速入门 PX4 开源飞控:新手完整实操指南(仿真与固件编译) 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 很多第一次接触 PX4 开源飞控的朋友,其…

新手也能快速上手:用 Rusted PackFile Manager 搞定 Total War 模组开发

新手也能快速上手:用 Rusted PackFile Manager 搞定 Total War 模组开发

2026/8/20 15:59:24

新手也能快速上手:用 Rusted PackFile Manager 搞定 Total War 模组开发 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目…

061、量化感知训练(QAT)的IR表示

061、量化感知训练(QAT)的IR表示

2026/8/20 17:09:27

061、量化感知训练(QAT)的IR表示 从一次模型部署翻车说起 去年有个项目,把MobileNetV3量化部署到某款AIoT芯片上。FP32精度92%,INT8量化后直接掉到78%。团队里有人提议“直接上QAT吧”,结果训练完导出模型,芯片编译器报了一堆“unsupported operation”。我打开导出的M…

用 erlcloud 调用 AWS Lambda:函数部署与调用的完整教程

用 erlcloud 调用 AWS Lambda:函数部署与调用的完整教程

2026/8/20 17:09:27

用 erlcloud 调用 AWS Lambda:函数部署与调用的完整教程 【免费下载链接】erlcloud AWS APIs library for Erlang (Amazon EC2, S3, SQS, DDB, ELB and etc) 项目地址: https://gitcode.com/gh_mirrors/er/erlcloud 在 Erlang 生态中,erlcloud 是…

060、Enzyme自动微分框架与MLIR的集成

060、Enzyme自动微分框架与MLIR的集成

2026/8/20 17:09:27

060、Enzyme自动微分框架与MLIR的集成 一、一个让我熬夜到凌晨三点的梯度问题 去年秋天,我在给一个边缘计算设备写模型推理加速器。模型里有个自定义算子,用C++手写了前向,反向梯度死活算不对。手动推导链式法则?矩阵维度一多,脑子就炸。用PyTorch的autograd?算子太底层…

059、自动微分(AutoDiff)在MLIR中的表示

059、自动微分(AutoDiff)在MLIR中的表示

2026/8/20 17:09:27

059、自动微分(AutoDiff)在MLIR中的表示 上周调试一个自定义算子反向传播时,发现MLIR生成的梯度计算图里多了一个莫名其妙的linalg.generic操作,把输入张量原地改写了。查了两天,最后定位到是自动微分pass在lowering过程中把某个中间变量的梯度累加逻辑错误地折叠进了前向…

免费神器强制调整窗口大小,拖不动的窗口一招变听话

免费神器强制调整窗口大小,拖不动的窗口一招变听话

2026/8/20 17:09:27

免费神器强制调整窗口大小,拖不动的窗口一招变听话 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 周一早上八点半,财务部最资深的会计周姐准时坐到工位上。…

同步任务在凌晨3点崩了之后:SeaTunnel 与 Flink 的选型复盘实录

同步任务在凌晨3点崩了之后:SeaTunnel 与 Flink 的选型复盘实录

2026/8/20 16:59:27

同步任务在凌晨3点崩了之后:SeaTunnel 与 Flink 的选型复盘实录 【免费下载链接】seatunnel SeaTunnel is a multimodal, high-performance, distributed, massive data integration tool. 项目地址: https://gitcode.com/GitHub_Trending/se/seatunnel 如果…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/19 9:17:18

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

2026/8/20 0:08:45

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com…

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

2026/8/20 0:08:45

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 判断你是否…

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

2026/8/20 0:08:45

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 按 3MF 官方规范的字面意思,一…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…