123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
- 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",
- }),
- };
|