|
|
@@ -0,0 +1,81 @@
|
|
|
+import zhCN from 'antd/locale/zh_CN';
|
|
|
+import enUS from 'antd/locale/en_US';
|
|
|
+// 未来可以添加更多语言支持
|
|
|
+// import jaJP from 'antd/locale/ja_JP';
|
|
|
+// import koKR from 'antd/locale/ko_KR';
|
|
|
+// import frFR from 'antd/locale/fr_FR';
|
|
|
+
|
|
|
+import dayjs from 'dayjs';
|
|
|
+import 'dayjs/locale/zh-cn';
|
|
|
+import 'dayjs/locale/en';
|
|
|
+// import 'dayjs/locale/ja';
|
|
|
+// import 'dayjs/locale/ko';
|
|
|
+// import 'dayjs/locale/fr';
|
|
|
+
|
|
|
+import type { Locale } from 'antd/es/locale';
|
|
|
+
|
|
|
+/**
|
|
|
+ * Ant Design locale 映射配置
|
|
|
+ * 键:应用的 locale 代码(如 'zh_CN', 'en_US')
|
|
|
+ * 值:对应的 Ant Design locale 配置对象
|
|
|
+ */
|
|
|
+const LOCALE_MAP: Record<string, Locale> = {
|
|
|
+ zh_CN: zhCN,
|
|
|
+ zh_TW: zhCN, // 繁体中文暂时使用简体 locale(可按需导入 zh_TW)
|
|
|
+ en_US: enUS,
|
|
|
+ en_GB: enUS, // 英式英语使用美式英语 locale
|
|
|
+ // 未来可以轻松添加更多语言支持:
|
|
|
+ // ja_JP: jaJP,
|
|
|
+ // ko_KR: koKR,
|
|
|
+ // fr_FR: frFR,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * dayjs locale 映射配置
|
|
|
+ * 键:应用的 locale 代码(如 'zh_CN', 'en_US')
|
|
|
+ * 值:对应的 dayjs locale 代码(如 'zh-cn', 'en')
|
|
|
+ */
|
|
|
+const DAYJS_LOCALE_MAP: Record<string, string> = {
|
|
|
+ zh_CN: 'zh-cn',
|
|
|
+ zh_TW: 'zh-cn', // 繁体中文暂时使用简体 locale
|
|
|
+ en_US: 'en',
|
|
|
+ en_GB: 'en',
|
|
|
+ // 未来可以添加更多语言:
|
|
|
+ // ja_JP: 'ja',
|
|
|
+ // ko_KR: 'ko',
|
|
|
+ // fr_FR: 'fr',
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * 根据应用的 locale 代码获取对应的 Ant Design locale 配置
|
|
|
+ * @param localeCode - 应用的 locale 代码,如 'zh_CN', 'en_US'
|
|
|
+ * @returns Ant Design locale 配置对象,如果找不到匹配项则返回英语 locale
|
|
|
+ *
|
|
|
+ * @example
|
|
|
+ * ```ts
|
|
|
+ * const locale = getAntdLocale('zh_CN'); // 返回中文 locale
|
|
|
+ * const locale = getAntdLocale('en_US'); // 返回英文 locale
|
|
|
+ * const locale = getAntdLocale('unknown'); // 返回默认英文 locale
|
|
|
+ * ```
|
|
|
+ */
|
|
|
+export function getAntdLocale(localeCode: string): Locale {
|
|
|
+ return LOCALE_MAP[localeCode] || enUS;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 设置 dayjs 的全局 locale
|
|
|
+ * 此函数会根据应用的 locale 代码自动配置 dayjs 的语言环境
|
|
|
+ *
|
|
|
+ * @param localeCode - 应用的 locale 代码,如 'zh_CN', 'en_US'
|
|
|
+ *
|
|
|
+ * @example
|
|
|
+ * ```ts
|
|
|
+ * setDayjsLocale('zh_CN'); // 设置 dayjs 为中文
|
|
|
+ * setDayjsLocale('en_US'); // 设置 dayjs 为英文
|
|
|
+ * ```
|
|
|
+ */
|
|
|
+export function setDayjsLocale(localeCode: string): void {
|
|
|
+ const dayjsLocale = DAYJS_LOCALE_MAP[localeCode] || 'en';
|
|
|
+ dayjs.locale(dayjsLocale);
|
|
|
+ console.log(`dayjs locale 已设置为: ${dayjsLocale} (应用 locale: ${localeCode})`);
|
|
|
+}
|