import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.mjs"; const numberValues = { locale: { 1: "१", 2: "२", 3: "३", 4: "४", 5: "५", 6: "६", 7: "७", 8: "८", 9: "९", 0: "०", }, number: { "१": "1", "२": "2", "३": "3", "४": "4", "५": "5", "६": "6", "७": "7", "८": "8", "९": "9", "०": "0", }, }; // CLDR #1585 - #1592 const eraValues = { narrow: ["ईसा-पूर्व", "ईस्वी"], abbreviated: ["ईसा-पूर्व", "ईस्वी"], wide: ["ईसा-पूर्व", "ईसवी सन"], }; // CLDR #1593 - #1616 const quarterValues = { narrow: ["1", "2", "3", "4"], abbreviated: ["ति1", "ति2", "ति3", "ति4"], wide: ["पहली तिमाही", "दूसरी तिमाही", "तीसरी तिमाही", "चौथी तिमाही"], }; // Note: in English, the names of days of the week and months are capitalized. // If you are making a new locale based on this one, check if the same is true for the language you're working on. // Generally, formatted dates should look like they are in the middle of a sentence, // e.g. in Spanish language the weekdays and months should be in the lowercase. // https://www.unicode.org/cldr/charts/32/summary/hi.html // CLDR #1617 - #1688 const monthValues = { narrow: [ "ज", "फ़", "मा", "अ", "मई", "जू", "जु", "अग", "सि", "अक्टू", "न", "दि", ], abbreviated: [ "जन", "फ़र", "मार्च", "अप्रैल", "मई", "जून", "जुल", "अग", "सित", "अक्टू", "नव", "दिस", ], wide: [ "जनवरी", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितंबर", "अक्टूबर", "नवंबर", "दिसंबर", ], }; // CLDR #1689 - #1744 const dayValues = { narrow: ["र", "सो", "मं", "बु", "गु", "शु", "श"], short: ["र", "सो", "मं", "बु", "गु", "शु", "श"], abbreviated: ["रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"], wide: [ "रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार", ], }; const dayPeriodValues = { narrow: { am: "पूर्वाह्न", pm: "अपराह्न", midnight: "मध्यरात्रि", noon: "दोपहर", morning: "सुबह", afternoon: "दोपहर", evening: "शाम", night: "रात", }, abbreviated: { am: "पूर्वाह्न", pm: "अपराह्न", midnight: "मध्यरात्रि", noon: "दोपहर", morning: "सुबह", afternoon: "दोपहर", evening: "शाम", night: "रात", }, wide: { am: "पूर्वाह्न", pm: "अपराह्न", midnight: "मध्यरात्रि", noon: "दोपहर", morning: "सुबह", afternoon: "दोपहर", evening: "शाम", night: "रात", }, }; const formattingDayPeriodValues = { narrow: { am: "पूर्वाह्न", pm: "अपराह्न", midnight: "मध्यरात्रि", noon: "दोपहर", morning: "सुबह", afternoon: "दोपहर", evening: "शाम", night: "रात", }, abbreviated: { am: "पूर्वाह्न", pm: "अपराह्न", midnight: "मध्यरात्रि", noon: "दोपहर", morning: "सुबह", afternoon: "दोपहर", evening: "शाम", night: "रात", }, wide: { am: "पूर्वाह्न", pm: "अपराह्न", midnight: "मध्यरात्रि", noon: "दोपहर", morning: "सुबह", afternoon: "दोपहर", evening: "शाम", night: "रात", }, }; const ordinalNumber = (dirtyNumber, _options) => { const number = Number(dirtyNumber); return numberToLocale(number); }; export function localeToNumber(locale) { const enNumber = locale.toString().replace(/[१२३४५६७८९०]/g, function (match) { return numberValues.number[match]; }); return Number(enNumber); } export function numberToLocale(enNumber) { return enNumber.toString().replace(/\d/g, function (match) { return numberValues.locale[match]; }); } export const localize = { ordinalNumber, era: buildLocalizeFn({ values: eraValues, defaultWidth: "wide", }), quarter: buildLocalizeFn({ values: quarterValues, defaultWidth: "wide", argumentCallback: (quarter) => quarter - 1, }), month: buildLocalizeFn({ values: monthValues, defaultWidth: "wide", }), day: buildLocalizeFn({ values: dayValues, defaultWidth: "wide", }), dayPeriod: buildLocalizeFn({ values: dayPeriodValues, defaultWidth: "wide", formattingValues: formattingDayPeriodValues, defaultFormattingWidth: "wide", }), };