207 lines
3.7 KiB
JavaScript
207 lines
3.7 KiB
JavaScript
|
import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.mjs";
|
|||
|
|
|||
|
const eraValues = {
|
|||
|
narrow: ["e.ə", "b.e"],
|
|||
|
abbreviated: ["e.ə", "b.e"],
|
|||
|
wide: ["eramızdan əvvəl", "bizim era"],
|
|||
|
};
|
|||
|
|
|||
|
const quarterValues = {
|
|||
|
narrow: ["1", "2", "3", "4"],
|
|||
|
abbreviated: ["K1", "K2", "K3", "K4"],
|
|||
|
wide: ["1ci kvartal", "2ci kvartal", "3cü kvartal", "4cü kvartal"],
|
|||
|
};
|
|||
|
const monthValues = {
|
|||
|
narrow: ["Y", "F", "M", "A", "M", "İ", "İ", "A", "S", "O", "N", "D"],
|
|||
|
abbreviated: [
|
|||
|
"Yan",
|
|||
|
"Fev",
|
|||
|
"Mar",
|
|||
|
"Apr",
|
|||
|
"May",
|
|||
|
"İyun",
|
|||
|
"İyul",
|
|||
|
"Avq",
|
|||
|
"Sen",
|
|||
|
"Okt",
|
|||
|
"Noy",
|
|||
|
"Dek",
|
|||
|
],
|
|||
|
|
|||
|
wide: [
|
|||
|
"Yanvar",
|
|||
|
"Fevral",
|
|||
|
"Mart",
|
|||
|
"Aprel",
|
|||
|
"May",
|
|||
|
"İyun",
|
|||
|
"İyul",
|
|||
|
"Avqust",
|
|||
|
"Sentyabr",
|
|||
|
"Oktyabr",
|
|||
|
"Noyabr",
|
|||
|
"Dekabr",
|
|||
|
],
|
|||
|
};
|
|||
|
|
|||
|
const dayValues = {
|
|||
|
narrow: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
|
|||
|
short: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
|
|||
|
abbreviated: ["Baz", "Baz.e", "Çər.a", "Çər", "Cüm.a", "Cüm", "Şə"],
|
|||
|
wide: [
|
|||
|
"Bazar",
|
|||
|
"Bazar ertəsi",
|
|||
|
"Çərşənbə axşamı",
|
|||
|
"Çərşənbə",
|
|||
|
"Cümə axşamı",
|
|||
|
"Cümə",
|
|||
|
"Şənbə",
|
|||
|
],
|
|||
|
};
|
|||
|
|
|||
|
const dayPeriodValues = {
|
|||
|
narrow: {
|
|||
|
am: "am",
|
|||
|
pm: "pm",
|
|||
|
midnight: "gecəyarı",
|
|||
|
noon: "gün",
|
|||
|
morning: "səhər",
|
|||
|
afternoon: "gündüz",
|
|||
|
evening: "axşam",
|
|||
|
night: "gecə",
|
|||
|
},
|
|||
|
abbreviated: {
|
|||
|
am: "AM",
|
|||
|
pm: "PM",
|
|||
|
midnight: "gecəyarı",
|
|||
|
noon: "gün",
|
|||
|
morning: "səhər",
|
|||
|
afternoon: "gündüz",
|
|||
|
evening: "axşam",
|
|||
|
night: "gecə",
|
|||
|
},
|
|||
|
wide: {
|
|||
|
am: "a.m.",
|
|||
|
pm: "p.m.",
|
|||
|
midnight: "gecəyarı",
|
|||
|
noon: "gün",
|
|||
|
morning: "səhər",
|
|||
|
afternoon: "gündüz",
|
|||
|
evening: "axşam",
|
|||
|
night: "gecə",
|
|||
|
},
|
|||
|
};
|
|||
|
|
|||
|
const formattingDayPeriodValues = {
|
|||
|
narrow: {
|
|||
|
am: "a",
|
|||
|
pm: "p",
|
|||
|
midnight: "gecəyarı",
|
|||
|
noon: "gün",
|
|||
|
morning: "səhər",
|
|||
|
afternoon: "gündüz",
|
|||
|
evening: "axşam",
|
|||
|
night: "gecə",
|
|||
|
},
|
|||
|
abbreviated: {
|
|||
|
am: "AM",
|
|||
|
pm: "PM",
|
|||
|
midnight: "gecəyarı",
|
|||
|
noon: "gün",
|
|||
|
morning: "səhər",
|
|||
|
afternoon: "gündüz",
|
|||
|
evening: "axşam",
|
|||
|
night: "gecə",
|
|||
|
},
|
|||
|
wide: {
|
|||
|
am: "a.m.",
|
|||
|
pm: "p.m.",
|
|||
|
midnight: "gecəyarı",
|
|||
|
noon: "gün",
|
|||
|
morning: "səhər",
|
|||
|
afternoon: "gündüz",
|
|||
|
evening: "axşam",
|
|||
|
night: "gecə",
|
|||
|
},
|
|||
|
};
|
|||
|
|
|||
|
const suffixes = {
|
|||
|
1: "-inci",
|
|||
|
5: "-inci",
|
|||
|
8: "-inci",
|
|||
|
70: "-inci",
|
|||
|
80: "-inci",
|
|||
|
2: "-nci",
|
|||
|
7: "-nci",
|
|||
|
20: "-nci",
|
|||
|
50: "-nci",
|
|||
|
3: "-üncü",
|
|||
|
4: "-üncü",
|
|||
|
100: "-üncü",
|
|||
|
6: "-ncı",
|
|||
|
9: "-uncu",
|
|||
|
10: "-uncu",
|
|||
|
30: "-uncu",
|
|||
|
60: "-ıncı",
|
|||
|
90: "-ıncı",
|
|||
|
};
|
|||
|
|
|||
|
const getSuffix = (number) => {
|
|||
|
if (number === 0) {
|
|||
|
// special case for zero
|
|||
|
return number + "-ıncı";
|
|||
|
}
|
|||
|
|
|||
|
const a = number % 10;
|
|||
|
const b = (number % 100) - a;
|
|||
|
const c = number >= 100 ? 100 : null;
|
|||
|
|
|||
|
if (suffixes[a]) {
|
|||
|
return suffixes[a];
|
|||
|
} else if (suffixes[b]) {
|
|||
|
return suffixes[b];
|
|||
|
} else if (c !== null) {
|
|||
|
return suffixes[c];
|
|||
|
}
|
|||
|
return "";
|
|||
|
};
|
|||
|
|
|||
|
const ordinalNumber = (dirtyNumber, _options) => {
|
|||
|
const number = Number(dirtyNumber);
|
|||
|
const suffix = getSuffix(number);
|
|||
|
|
|||
|
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",
|
|||
|
}),
|
|||
|
|
|||
|
day: buildLocalizeFn({
|
|||
|
values: dayValues,
|
|||
|
defaultWidth: "wide",
|
|||
|
}),
|
|||
|
|
|||
|
dayPeriod: buildLocalizeFn({
|
|||
|
values: dayPeriodValues,
|
|||
|
defaultWidth: "wide",
|
|||
|
formattingValues: formattingDayPeriodValues,
|
|||
|
defaultFormattingWidth: "wide",
|
|||
|
}),
|
|||
|
};
|