本地化助手
用于创建和合并本地化配置的函数。
import { DEFAULT_LOCALE, mergeLocale, createLocale, resolveLocale, weekdayToNumber,} from "react-date-range-picker-headless";DEFAULT_LOCALE
默认的英文本地化对象。所有字段都用英文字符串填充。
| 类型 | Locale |
DEFAULT_LOCALE.weekdays; // ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]DEFAULT_LOCALE.months; // ["January", "February", ..., "December"]DEFAULT_LOCALE.confirm; // "Confirm"DEFAULT_LOCALE.placeholder; // "Select date"mergeLocale
将部分本地化配置合并到默认本地化配置中。
| 签名 | mergeLocale(partial?: Partial<Locale>): Locale |
如果没有提供部分配置,则返回 DEFAULT_LOCALE。当 rangeSeparator 被覆盖但 formatRange 没有被覆盖时,formatRange 会自动重新生成以使用新的分隔符。
mergeLocale(); // DEFAULT_LOCALE
mergeLocale({ confirm: "OK", cancel: "Back", rangeSeparator: " - ",});// { ...DEFAULT_LOCALE, confirm: "OK", cancel: "Back", rangeSeparator: " - ", formatRange: (s, e) => `${s} - ${e}` }createLocale
使用 Intl.DateTimeFormat 从 BCP 47 本地化键创建本地化配置。
| 签名 | createLocale(localeKey: string, overrides?: Partial<Locale>): Locale |
| 参数 | 类型 | 描述 |
|---|---|---|
localeKey | string | BCP 47 本地化标识符 (例如 "ko", "ja", "zh-CN", "pt-BR")。 |
overrides | Partial<Locale> | 在 Intl 生成后应用的额外覆盖。 |
从 Intl.DateTimeFormat 生成工作日名称、月份名称、AM/PM 标签和格式化函数。非 Intl 字段(confirm、cancel、placeholder 等)除非被覆盖,否则回退到 DEFAULT_LOCALE。
const koLocale = createLocale("ko", { confirm: "확인", cancel: "취소", clear: "초기화", placeholder: "날짜 선택",});// koLocale.weekdays -> ["일", "월", "화", "수", "목", "금", "토"]// koLocale.months -> ["1월", "2월", ...]// koLocale.formatDate(new Date(2026, 2, 1)) -> "2026. 03. 01."resolveLocale
合并部分本地化配置,并旋转星期标题以匹配 weekStartsOn。
| 签名 | resolveLocale(partial?: Partial<Locale>, weekStartsOnNum?: number): Locale |
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
partial | Partial<Locale> | — | 本地化覆盖。 |
weekStartsOnNum | number | 0 | 一周的第一天 (0 = 星期日)。 |
当 weekStartsOnNum 不为 0 时,weekdays 数组会被旋转,以使标题从正确的一天开始。
resolveLocale(undefined, 1).weekdays;// ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"]weekdayToNumber
将 WeekDay 字符串转换为其数值。
| 签名 | weekdayToNumber(day: WeekDay): number |
weekdayToNumber("sunday"); // 0weekdayToNumber("monday"); // 1weekdayToNumber("saturday"); // 6