Files
2026-05-30 19:59:39 -03:00

193 lines
3.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"],
};
// Note: in English, the names of days of the week and months are capitalized.
// If you are making a new locale based on this one, check if the same is true for the language you're working on.
// Generally, formatted dates should look like they are in the middle of a sentence,
// e.g. in Spanish language the weekdays and months should be in the lowercase.
const monthValues = {
narrow: [
"فر",
"ار",
"خر",
"تی",
"مر",
"شه",
"مه",
"آب",
"آذ",
"دی",
"به",
"اس",
],
abbreviated: [
"فرو",
"ارد",
"خرد",
"تیر",
"مرد",
"شهر",
"مهر",
"آبا",
"آذر",
"دی",
"بهم",
"اسف",
],
wide: [
"فروردین",
"اردیبهشت",
"خرداد",
"تیر",
"مرداد",
"شهریور",
"مهر",
"آبان",
"آذر",
"دی",
"بهمن",
"اسفند",
],
};
const dayValues = {
narrow: ["ی", "د", "س", "چ", "پ", "ج", "ش"],
short: ["1ش", "2ش", "3ش", "4ش", "5ش", "ج", "ش"],
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 formattingDayPeriodValues = {
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);
return number + "-ام";
};
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",
}),
};