207 lines
4.1 KiB
JavaScript
207 lines
4.1 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: ["Ж", "Д", "С", "С", "Б", "Ж", "С"],
|
||
short: ["жс", "дс", "сс", "ср", "бс", "жм", "сб"],
|
||
abbreviated: ["жс", "дс", "сс", "ср", "бс", "жм", "сб"],
|
||
wide: [
|
||
"жексенбі",
|
||
"дүйсенбі",
|
||
"сейсенбі",
|
||
"сәрсенбі",
|
||
"бейсенбі",
|
||
"жұма",
|
||
"сенбі",
|
||
],
|
||
};
|
||
|
||
const dayPeriodValues = {
|
||
narrow: {
|
||
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: "түн",
|
||
},
|
||
wide: {
|
||
am: "ТД",
|
||
pm: "ТК",
|
||
midnight: "түн ортасында",
|
||
noon: "түсте",
|
||
morning: "таңертең",
|
||
afternoon: "күндіз",
|
||
evening: "кеште",
|
||
night: "түнде",
|
||
},
|
||
};
|
||
|
||
const suffixes = {
|
||
0: "-ші",
|
||
1: "-ші",
|
||
2: "-ші",
|
||
3: "-ші",
|
||
4: "-ші",
|
||
5: "-ші",
|
||
6: "-шы",
|
||
7: "-ші",
|
||
8: "-ші",
|
||
9: "-шы",
|
||
10: "-шы",
|
||
20: "-шы",
|
||
30: "-шы",
|
||
40: "-шы",
|
||
50: "-ші",
|
||
60: "-шы",
|
||
70: "-ші",
|
||
80: "-ші",
|
||
90: "-шы",
|
||
100: "-ші",
|
||
};
|
||
|
||
const ordinalNumber = (dirtyNumber, _options) => {
|
||
const number = Number(dirtyNumber);
|
||
const mod10 = number % 10;
|
||
const b = number >= 100 ? 100 : null;
|
||
const suffix =
|
||
suffixes[number] || suffixes[mod10] || (b && suffixes[b]) || "";
|
||
|
||
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: "any",
|
||
formattingValues: formattingDayPeriodValues,
|
||
defaultFormattingWidth: "wide",
|
||
}),
|
||
};
|