localize.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import { buildLocalizeFn } from "../../_lib/buildLocalizeFn.js";
  2. const eraValues = {
  3. narrow: ["ق", "ب"],
  4. abbreviated: ["ق.م.", "ب.م."],
  5. wide: ["قبل الميلاد", "بعد الميلاد"],
  6. };
  7. const quarterValues = {
  8. narrow: ["1", "2", "3", "4"],
  9. abbreviated: ["ر1", "ر2", "ر3", "ر4"],
  10. wide: ["الربع الأول", "الربع الثاني", "الربع الثالث", "الربع الرابع"],
  11. };
  12. const monthValues = {
  13. narrow: ["د", "ن", "أ", "س", "أ", "ج", "ج", "م", "أ", "م", "ف", "ج"],
  14. abbreviated: [
  15. "جانفي",
  16. "فيفري",
  17. "مارس",
  18. "أفريل",
  19. "ماي",
  20. "جوان",
  21. "جويلية",
  22. "أوت",
  23. "سبتمبر",
  24. "أكتوبر",
  25. "نوفمبر",
  26. "ديسمبر",
  27. ],
  28. wide: [
  29. "جانفي",
  30. "فيفري",
  31. "مارس",
  32. "أفريل",
  33. "ماي",
  34. "جوان",
  35. "جويلية",
  36. "أوت",
  37. "سبتمبر",
  38. "أكتوبر",
  39. "نوفمبر",
  40. "ديسمبر",
  41. ],
  42. };
  43. const dayValues = {
  44. narrow: ["ح", "ن", "ث", "ر", "خ", "ج", "س"],
  45. short: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت"],
  46. abbreviated: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت"],
  47. wide: [
  48. "الأحد",
  49. "الاثنين",
  50. "الثلاثاء",
  51. "الأربعاء",
  52. "الخميس",
  53. "الجمعة",
  54. "السبت",
  55. ],
  56. };
  57. const dayPeriodValues = {
  58. narrow: {
  59. am: "ص",
  60. pm: "ع",
  61. morning: "الصباح",
  62. noon: "القايلة",
  63. afternoon: "بعد القايلة",
  64. evening: "العشية",
  65. night: "الليل",
  66. midnight: "نص الليل",
  67. },
  68. abbreviated: {
  69. am: "ص",
  70. pm: "ع",
  71. morning: "الصباح",
  72. noon: "القايلة",
  73. afternoon: "بعد القايلة",
  74. evening: "العشية",
  75. night: "الليل",
  76. midnight: "نص الليل",
  77. },
  78. wide: {
  79. am: "ص",
  80. pm: "ع",
  81. morning: "الصباح",
  82. noon: "القايلة",
  83. afternoon: "بعد القايلة",
  84. evening: "العشية",
  85. night: "الليل",
  86. midnight: "نص الليل",
  87. },
  88. };
  89. const formattingDayPeriodValues = {
  90. narrow: {
  91. am: "ص",
  92. pm: "ع",
  93. morning: "في الصباح",
  94. noon: "في القايلة",
  95. afternoon: "بعد القايلة",
  96. evening: "في العشية",
  97. night: "في الليل",
  98. midnight: "نص الليل",
  99. },
  100. abbreviated: {
  101. am: "ص",
  102. pm: "ع",
  103. morning: "في الصباح",
  104. noon: "في القايلة",
  105. afternoon: "بعد القايلة",
  106. evening: "في العشية",
  107. night: "في الليل",
  108. midnight: "نص الليل",
  109. },
  110. wide: {
  111. am: "ص",
  112. pm: "ع",
  113. morning: "في الصباح",
  114. noon: "في القايلة",
  115. afternoon: "بعد القايلة",
  116. evening: "في العشية",
  117. night: "في الليل",
  118. midnight: "نص الليل",
  119. },
  120. };
  121. const ordinalNumber = (num) => String(num);
  122. export const localize = {
  123. ordinalNumber: ordinalNumber,
  124. era: buildLocalizeFn({
  125. values: eraValues,
  126. defaultWidth: "wide",
  127. }),
  128. quarter: buildLocalizeFn({
  129. values: quarterValues,
  130. defaultWidth: "wide",
  131. argumentCallback: (quarter) => quarter - 1,
  132. }),
  133. month: buildLocalizeFn({
  134. values: monthValues,
  135. defaultWidth: "wide",
  136. }),
  137. day: buildLocalizeFn({
  138. values: dayValues,
  139. defaultWidth: "wide",
  140. }),
  141. dayPeriod: buildLocalizeFn({
  142. values: dayPeriodValues,
  143. defaultWidth: "wide",
  144. formattingValues: formattingDayPeriodValues,
  145. defaultFormattingWidth: "wide",
  146. }),
  147. };