From 6f4bc7c3bb7b2c150621269c1883a7b502cc6773 Mon Sep 17 00:00:00 2001 From: Supra4E8C Date: Sat, 14 Feb 2026 00:26:54 +0800 Subject: [PATCH] fix(format): use page locale by default --- src/utils/format.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/utils/format.ts b/src/utils/format.ts index 55e0f3b..f9eadf5 100644 --- a/src/utils/format.ts +++ b/src/utils/format.ts @@ -3,6 +3,14 @@ * 从原项目 src/utils/string.js 迁移 */ +const resolveDefaultLocale = (): string | undefined => { + const fromDocument = + typeof document !== 'undefined' ? document.documentElement?.lang?.trim() : ''; + if (fromDocument) return fromDocument; + const fromNavigator = typeof navigator !== 'undefined' ? navigator.language?.trim() : ''; + return fromNavigator || undefined; +}; + /** * 隐藏 API Key 中间部分,仅保留前后两位 */ @@ -38,14 +46,15 @@ export function formatFileSize(bytes: number): string { /** * 格式化日期时间 */ -export function formatDateTime(date: string | Date): string { +export function formatDateTime(date: string | Date, locale?: string): string { const d = typeof date === 'string' ? new Date(date) : date; if (isNaN(d.getTime())) { return 'Invalid Date'; } - return d.toLocaleString('zh-CN', { + const resolvedLocale = locale?.trim() || resolveDefaultLocale(); + return d.toLocaleString(resolvedLocale, { year: 'numeric', month: '2-digit', day: '2-digit', @@ -89,8 +98,9 @@ export function formatUnixTimestamp(value: unknown, locale?: string): string { /** * 格式化数字(添加千位分隔符) */ -export function formatNumber(num: number): string { - return num.toLocaleString('zh-CN'); +export function formatNumber(num: number, locale?: string): string { + const resolvedLocale = locale?.trim() || resolveDefaultLocale(); + return num.toLocaleString(resolvedLocale); } /**