Locale

Interface for all user-facing strings. Pass a Partial<Locale> to any hook to override specific strings — unspecified fields fall back to DEFAULT_LOCALE.

import type { Locale } from "react-date-range-picker-headless";

Fields

FieldTypeDescription
weekdaysstring[]7 weekday abbreviations starting from Sunday. E.g. ["Su", "Mo", ...].
monthsstring[]12 month names. E.g. ["January", "February", ...].
confirmstringConfirm button label. Default: "Confirm".
cancelstringCancel button label. Default: "Cancel".
clearstringClear button label. Default: "Clear".
todaystringToday button label. Default: "Today".
placeholderstringSingle date placeholder. Default: "Select date".
rangePlaceholderstringDate range placeholder. Default: "Select date range".
dateTimePlaceholderstringDate-time placeholder. Default: "Select date and time".
rangeTimePlaceholderstringRange-time placeholder. Default: "Select date range and time".
timePlaceholderstringTime-only placeholder. Default: "Select time".
amstringAM label. Default: "AM".
pmstringPM label. Default: "PM".
yearLabelstringYear column header. Default: "".
monthLabelstringMonth column header. Default: "".
hourLabelstringHour column aria-label. Default: "Hours".
minuteLabelstringMinute column aria-label. Default: "Minutes".
secondLabelstringSecond column aria-label. Default: "Seconds".
hoursLabelstringHours accessible label. Default: "Hours".
minutesLabelstringMinutes accessible label. Default: "Minutes".
secondsLabelstringSeconds accessible label. Default: "Seconds".
startTimeLabelstringStart time label. Default: "Start time".
endTimeLabelstringEnd time label. Default: "End time".
rangeSeparatorstringSeparator between range start/end in display. Default: " ~ ".
prevMonthstringPrevious month button text. Default: "\u2039" (single left angle).
nextMonthstringNext month button text. Default: "\u203A" (single right angle).
prevMonthLabelstringPrevious month accessible label. Default: "Previous month".
nextMonthLabelstringNext month accessible label. Default: "Next month".
selectYearLabelstringYear dropdown accessible label. Default: "Select year".
selectMonthLabelstringMonth dropdown accessible label. Default: "Select month".
formatMonthYear(month: Date) => stringFormat month header. Default: "January 2026".
formatDate(date: Date) => stringFormat single date display. Default: "2026-01-15".
formatDateTime(date: Date, precision?: TimePrecision, hourFormat?: HourFormat) => stringFormat date-time display. Default: "2026-01-15 14:30".
formatTime(hour, minute, second, period?) => stringFormat time display. Default: "14:30:00".
formatRange(start: string, end: string) => stringFormat range display. Default: "start ~ end".

TypeScript Definition

interface Locale {
weekdays: string[];
months: string[];
confirm: string;
cancel: string;
clear: string;
today: string;
placeholder: string;
rangePlaceholder: string;
dateTimePlaceholder: string;
rangeTimePlaceholder: string;
timePlaceholder: string;
am: string;
pm: string;
yearLabel: string;
monthLabel: string;
hourLabel: string;
minuteLabel: string;
secondLabel: string;
hoursLabel: string;
minutesLabel: string;
secondsLabel: string;
startTimeLabel: string;
endTimeLabel: string;
rangeSeparator: string;
prevMonth: string;
nextMonth: string;
prevMonthLabel: string;
nextMonthLabel: string;
selectYearLabel: string;
selectMonthLabel: string;
formatMonthYear: (month: Date) => string;
formatDate: (date: Date) => string;
formatDateTime: (date: Date, precision?: TimePrecision, hourFormat?: HourFormat) => string;
formatTime: (hour: number, minute: number, second: number, period?: TimePeriod) => string;
formatRange: (start: string, end: string) => string;
}