204 lines
3.7 KiB
JavaScript
204 lines
3.7 KiB
JavaScript
|
import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.mjs";
|
|||
|
|
|||
|
const eraValues = {
|
|||
|
narrow: ["ab. J.C.", "apr. J.C."],
|
|||
|
abbreviated: ["ab. J.C.", "apr. J.C."],
|
|||
|
wide: ["abans Jèsus-Crist", "après Jèsus-Crist"],
|
|||
|
};
|
|||
|
|
|||
|
const quarterValues = {
|
|||
|
narrow: ["T1", "T2", "T3", "T4"],
|
|||
|
abbreviated: ["1èr trim.", "2nd trim.", "3en trim.", "4en trim."],
|
|||
|
wide: ["1èr trimèstre", "2nd trimèstre", "3en trimèstre", "4en trimèstre"],
|
|||
|
};
|
|||
|
|
|||
|
const monthValues = {
|
|||
|
narrow: [
|
|||
|
"GN",
|
|||
|
"FB",
|
|||
|
"MÇ",
|
|||
|
"AB",
|
|||
|
"MA",
|
|||
|
"JN",
|
|||
|
"JL",
|
|||
|
"AG",
|
|||
|
"ST",
|
|||
|
"OC",
|
|||
|
"NV",
|
|||
|
"DC",
|
|||
|
],
|
|||
|
|
|||
|
abbreviated: [
|
|||
|
"gen.",
|
|||
|
"febr.",
|
|||
|
"març",
|
|||
|
"abr.",
|
|||
|
"mai",
|
|||
|
"junh",
|
|||
|
"jul.",
|
|||
|
"ag.",
|
|||
|
"set.",
|
|||
|
"oct.",
|
|||
|
"nov.",
|
|||
|
"dec.",
|
|||
|
],
|
|||
|
|
|||
|
wide: [
|
|||
|
"genièr",
|
|||
|
"febrièr",
|
|||
|
"març",
|
|||
|
"abril",
|
|||
|
"mai",
|
|||
|
"junh",
|
|||
|
"julhet",
|
|||
|
"agost",
|
|||
|
"setembre",
|
|||
|
"octòbre",
|
|||
|
"novembre",
|
|||
|
"decembre",
|
|||
|
],
|
|||
|
};
|
|||
|
|
|||
|
const dayValues = {
|
|||
|
narrow: ["dg.", "dl.", "dm.", "dc.", "dj.", "dv.", "ds."],
|
|||
|
short: ["dg.", "dl.", "dm.", "dc.", "dj.", "dv.", "ds."],
|
|||
|
abbreviated: ["dg.", "dl.", "dm.", "dc.", "dj.", "dv.", "ds."],
|
|||
|
wide: [
|
|||
|
"dimenge",
|
|||
|
"diluns",
|
|||
|
"dimars",
|
|||
|
"dimècres",
|
|||
|
"dijòus",
|
|||
|
"divendres",
|
|||
|
"dissabte",
|
|||
|
],
|
|||
|
};
|
|||
|
|
|||
|
const dayPeriodValues = {
|
|||
|
narrow: {
|
|||
|
am: "am",
|
|||
|
pm: "pm",
|
|||
|
midnight: "mièjanuèch",
|
|||
|
noon: "miègjorn",
|
|||
|
morning: "matin",
|
|||
|
afternoon: "aprèp-miègjorn",
|
|||
|
evening: "vèspre",
|
|||
|
night: "nuèch",
|
|||
|
},
|
|||
|
abbreviated: {
|
|||
|
am: "a.m.",
|
|||
|
pm: "p.m.",
|
|||
|
midnight: "mièjanuèch",
|
|||
|
noon: "miègjorn",
|
|||
|
morning: "matin",
|
|||
|
afternoon: "aprèp-miègjorn",
|
|||
|
evening: "vèspre",
|
|||
|
night: "nuèch",
|
|||
|
},
|
|||
|
wide: {
|
|||
|
am: "a.m.",
|
|||
|
pm: "p.m.",
|
|||
|
midnight: "mièjanuèch",
|
|||
|
noon: "miègjorn",
|
|||
|
morning: "matin",
|
|||
|
afternoon: "aprèp-miègjorn",
|
|||
|
evening: "vèspre",
|
|||
|
night: "nuèch",
|
|||
|
},
|
|||
|
};
|
|||
|
|
|||
|
const formattingDayPeriodValues = {
|
|||
|
narrow: {
|
|||
|
am: "am",
|
|||
|
pm: "pm",
|
|||
|
midnight: "mièjanuèch",
|
|||
|
noon: "miègjorn",
|
|||
|
morning: "del matin",
|
|||
|
afternoon: "de l’aprèp-miègjorn",
|
|||
|
evening: "del ser",
|
|||
|
night: "de la nuèch",
|
|||
|
},
|
|||
|
abbreviated: {
|
|||
|
am: "AM",
|
|||
|
pm: "PM",
|
|||
|
midnight: "mièjanuèch",
|
|||
|
noon: "miègjorn",
|
|||
|
morning: "del matin",
|
|||
|
afternoon: "de l’aprèp-miègjorn",
|
|||
|
evening: "del ser",
|
|||
|
night: "de la nuèch",
|
|||
|
},
|
|||
|
wide: {
|
|||
|
am: "ante meridiem",
|
|||
|
pm: "post meridiem",
|
|||
|
midnight: "mièjanuèch",
|
|||
|
noon: "miègjorn",
|
|||
|
morning: "del matin",
|
|||
|
afternoon: "de l’aprèp-miègjorn",
|
|||
|
evening: "del ser",
|
|||
|
night: "de la nuèch",
|
|||
|
},
|
|||
|
};
|
|||
|
|
|||
|
const ordinalNumber = (dirtyNumber, options) => {
|
|||
|
const number = Number(dirtyNumber);
|
|||
|
const unit = options?.unit;
|
|||
|
let ordinal;
|
|||
|
|
|||
|
switch (number) {
|
|||
|
case 1:
|
|||
|
ordinal = "èr";
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
ordinal = "nd";
|
|||
|
break;
|
|||
|
default:
|
|||
|
ordinal = "en";
|
|||
|
}
|
|||
|
|
|||
|
// feminine for year, week, hour, minute, second
|
|||
|
if (
|
|||
|
unit === "year" ||
|
|||
|
unit === "week" ||
|
|||
|
unit === "hour" ||
|
|||
|
unit === "minute" ||
|
|||
|
unit === "second"
|
|||
|
) {
|
|||
|
ordinal += "a";
|
|||
|
}
|
|||
|
|
|||
|
return number + ordinal;
|
|||
|
};
|
|||
|
|
|||
|
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",
|
|||
|
}),
|
|||
|
};
|