localize.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  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. // Note: in English, the names of days of the week and months are capitalized.
  13. // If you are making a new locale based on this one, check if the same is true for the language you're working on.
  14. // Generally, formatted dates should look like they are in the middle of a sentence,
  15. // e.g. in Spanish language the weekdays and months should be in the lowercase.
  16. const monthValues = {
  17. narrow: [
  18. "ک-د",
  19. "ش",
  20. "ئا",
  21. "ن",
  22. "م",
  23. "ح",
  24. "ت",
  25. "ئا",
  26. "ئە",
  27. "تش-ی",
  28. "تش-د",
  29. "ک-ی",
  30. ],
  31. abbreviated: [
  32. "کان-دوو",
  33. "شوب",
  34. "ئاد",
  35. "نیس",
  36. "مایس",
  37. "حوز",
  38. "تەم",
  39. "ئاب",
  40. "ئەل",
  41. "تش-یەک",
  42. "تش-دوو",
  43. "کان-یەک",
  44. ],
  45. wide: [
  46. "کانوونی دووەم",
  47. "شوبات",
  48. "ئادار",
  49. "نیسان",
  50. "مایس",
  51. "حوزەیران",
  52. "تەمموز",
  53. "ئاب",
  54. "ئەیلول",
  55. "تشرینی یەکەم",
  56. "تشرینی دووەم",
  57. "کانوونی یەکەم",
  58. ],
  59. };
  60. const dayValues = {
  61. narrow: ["ی-ش", "د-ش", "س-ش", "چ-ش", "پ-ش", "هە", "ش"],
  62. short: ["یە-شە", "دوو-شە", "سێ-شە", "چو-شە", "پێ-شە", "هەی", "شە"],
  63. abbreviated: [
  64. "یەک-شەم",
  65. "دوو-شەم",
  66. "سێ-شەم",
  67. "چوار-شەم",
  68. "پێنج-شەم",
  69. "هەینی",
  70. "شەمە",
  71. ],
  72. wide: [
  73. "یەک شەمە",
  74. "دوو شەمە",
  75. "سێ شەمە",
  76. "چوار شەمە",
  77. "پێنج شەمە",
  78. "هەینی",
  79. "شەمە",
  80. ],
  81. };
  82. const dayPeriodValues = {
  83. narrow: {
  84. am: "پ",
  85. pm: "د",
  86. midnight: "ن-ش",
  87. noon: "ن",
  88. morning: "بەیانی",
  89. afternoon: "دوای نیوەڕۆ",
  90. evening: "ئێوارە",
  91. night: "شەو",
  92. },
  93. abbreviated: {
  94. am: "پ-ن",
  95. pm: "د-ن",
  96. midnight: "نیوە شەو",
  97. noon: "نیوەڕۆ",
  98. morning: "بەیانی",
  99. afternoon: "دوای نیوەڕۆ",
  100. evening: "ئێوارە",
  101. night: "شەو",
  102. },
  103. wide: {
  104. am: "پێش نیوەڕۆ",
  105. pm: "دوای نیوەڕۆ",
  106. midnight: "نیوە شەو",
  107. noon: "نیوەڕۆ",
  108. morning: "بەیانی",
  109. afternoon: "دوای نیوەڕۆ",
  110. evening: "ئێوارە",
  111. night: "شەو",
  112. },
  113. };
  114. const formattingDayPeriodValues = {
  115. narrow: {
  116. am: "پ",
  117. pm: "د",
  118. midnight: "ن-ش",
  119. noon: "ن",
  120. morning: "لە بەیانیدا",
  121. afternoon: "لە دوای نیوەڕۆدا",
  122. evening: "لە ئێوارەدا",
  123. night: "لە شەودا",
  124. },
  125. abbreviated: {
  126. am: "پ-ن",
  127. pm: "د-ن",
  128. midnight: "نیوە شەو",
  129. noon: "نیوەڕۆ",
  130. morning: "لە بەیانیدا",
  131. afternoon: "لە دوای نیوەڕۆدا",
  132. evening: "لە ئێوارەدا",
  133. night: "لە شەودا",
  134. },
  135. wide: {
  136. am: "پێش نیوەڕۆ",
  137. pm: "دوای نیوەڕۆ",
  138. midnight: "نیوە شەو",
  139. noon: "نیوەڕۆ",
  140. morning: "لە بەیانیدا",
  141. afternoon: "لە دوای نیوەڕۆدا",
  142. evening: "لە ئێوارەدا",
  143. night: "لە شەودا",
  144. },
  145. };
  146. const ordinalNumber = (dirtyNumber, _options) => {
  147. return String(dirtyNumber);
  148. };
  149. export const localize = {
  150. ordinalNumber,
  151. era: buildLocalizeFn({
  152. values: eraValues,
  153. defaultWidth: "wide",
  154. }),
  155. quarter: buildLocalizeFn({
  156. values: quarterValues,
  157. defaultWidth: "wide",
  158. argumentCallback: (quarter) => quarter - 1,
  159. }),
  160. month: buildLocalizeFn({
  161. values: monthValues,
  162. defaultWidth: "wide",
  163. }),
  164. day: buildLocalizeFn({
  165. values: dayValues,
  166. defaultWidth: "wide",
  167. }),
  168. dayPeriod: buildLocalizeFn({
  169. values: dayPeriodValues,
  170. defaultWidth: "wide",
  171. formattingValues: formattingDayPeriodValues,
  172. defaultFormattingWidth: "wide",
  173. }),
  174. };