182 lines
3.7 KiB
JavaScript
182 lines
3.7 KiB
JavaScript
import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.mjs";
|
||
|
||
const eraValues = {
|
||
narrow: ["πΧ", "μΧ"],
|
||
abbreviated: ["π.Χ.", "μ.Χ."],
|
||
wide: ["προ Χριστού", "μετά Χριστόν"],
|
||
};
|
||
|
||
const quarterValues = {
|
||
narrow: ["1", "2", "3", "4"],
|
||
abbreviated: ["Τ1", "Τ2", "Τ3", "Τ4"],
|
||
wide: ["1ο τρίμηνο", "2ο τρίμηνο", "3ο τρίμηνο", "4ο τρίμηνο"],
|
||
};
|
||
|
||
const monthValues = {
|
||
narrow: ["Ι", "Φ", "Μ", "Α", "Μ", "Ι", "Ι", "Α", "Σ", "Ο", "Ν", "Δ"],
|
||
abbreviated: [
|
||
"Ιαν",
|
||
"Φεβ",
|
||
"Μάρ",
|
||
"Απρ",
|
||
"Μάι",
|
||
"Ιούν",
|
||
"Ιούλ",
|
||
"Αύγ",
|
||
"Σεπ",
|
||
"Οκτ",
|
||
"Νοέ",
|
||
"Δεκ",
|
||
],
|
||
|
||
wide: [
|
||
"Ιανουάριος",
|
||
"Φεβρουάριος",
|
||
"Μάρτιος",
|
||
"Απρίλιος",
|
||
"Μάιος",
|
||
"Ιούνιος",
|
||
"Ιούλιος",
|
||
"Αύγουστος",
|
||
"Σεπτέμβριος",
|
||
"Οκτώβριος",
|
||
"Νοέμβριος",
|
||
"Δεκέμβριος",
|
||
],
|
||
};
|
||
|
||
const formattingMonthValues = {
|
||
narrow: ["Ι", "Φ", "Μ", "Α", "Μ", "Ι", "Ι", "Α", "Σ", "Ο", "Ν", "Δ"],
|
||
abbreviated: [
|
||
"Ιαν",
|
||
"Φεβ",
|
||
"Μαρ",
|
||
"Απρ",
|
||
"Μαΐ",
|
||
"Ιουν",
|
||
"Ιουλ",
|
||
"Αυγ",
|
||
"Σεπ",
|
||
"Οκτ",
|
||
"Νοε",
|
||
"Δεκ",
|
||
],
|
||
|
||
wide: [
|
||
"Ιανουαρίου",
|
||
"Φεβρουαρίου",
|
||
"Μαρτίου",
|
||
"Απριλίου",
|
||
"Μαΐου",
|
||
"Ιουνίου",
|
||
"Ιουλίου",
|
||
"Αυγούστου",
|
||
"Σεπτεμβρίου",
|
||
"Οκτωβρίου",
|
||
"Νοεμβρίου",
|
||
"Δεκεμβρίου",
|
||
],
|
||
};
|
||
|
||
const dayValues = {
|
||
narrow: ["Κ", "Δ", "T", "Τ", "Π", "Π", "Σ"],
|
||
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 ordinalNumber = (dirtyNumber, options) => {
|
||
const number = Number(dirtyNumber);
|
||
const unit = options?.unit;
|
||
let suffix;
|
||
|
||
if (unit === "year" || unit === "month") {
|
||
suffix = "ος";
|
||
} else if (
|
||
unit === "week" ||
|
||
unit === "dayOfYear" ||
|
||
unit === "day" ||
|
||
unit === "hour" ||
|
||
unit === "date"
|
||
) {
|
||
suffix = "η";
|
||
} else {
|
||
suffix = "ο";
|
||
}
|
||
|
||
return number + suffix;
|
||
};
|
||
|
||
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",
|
||
formattingValues: formattingMonthValues,
|
||
defaultFormattingWidth: "wide",
|
||
}),
|
||
|
||
day: buildLocalizeFn({
|
||
values: dayValues,
|
||
defaultWidth: "wide",
|
||
}),
|
||
|
||
dayPeriod: buildLocalizeFn({
|
||
values: dayPeriodValues,
|
||
defaultWidth: "wide",
|
||
}),
|
||
};
|