js тАв Lines: 227import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
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",
}),
};