localize.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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. abbreviated: [
  19. "يانۋار",
  20. "فېۋىرال",
  21. "مارت",
  22. "ئاپرىل",
  23. "ماي",
  24. "ئىيۇن",
  25. "ئىيول",
  26. "ئاۋغۇست",
  27. "سىنتەبىر",
  28. "ئۆكتەبىر",
  29. "نويابىر",
  30. "دىكابىر",
  31. ],
  32. wide: [
  33. "يانۋار",
  34. "فېۋىرال",
  35. "مارت",
  36. "ئاپرىل",
  37. "ماي",
  38. "ئىيۇن",
  39. "ئىيول",
  40. "ئاۋغۇست",
  41. "سىنتەبىر",
  42. "ئۆكتەبىر",
  43. "نويابىر",
  44. "دىكابىر",
  45. ],
  46. };
  47. const dayValues = {
  48. narrow: ["ي", "د", "س", "چ", "پ", "ج", "ش"],
  49. short: ["ي", "د", "س", "چ", "پ", "ج", "ش"],
  50. abbreviated: [
  51. "يەكشەنبە",
  52. "دۈشەنبە",
  53. "سەيشەنبە",
  54. "چارشەنبە",
  55. "پەيشەنبە",
  56. "جۈمە",
  57. "شەنبە",
  58. ],
  59. wide: [
  60. "يەكشەنبە",
  61. "دۈشەنبە",
  62. "سەيشەنبە",
  63. "چارشەنبە",
  64. "پەيشەنبە",
  65. "جۈمە",
  66. "شەنبە",
  67. ],
  68. };
  69. const dayPeriodValues = {
  70. narrow: {
  71. am: "ئە",
  72. pm: "چ",
  73. midnight: "ك",
  74. noon: "چ",
  75. morning: "ئەتىگەن",
  76. afternoon: "چۈشتىن كىيىن",
  77. evening: "ئاخشىم",
  78. night: "كىچە",
  79. },
  80. abbreviated: {
  81. am: "ئە",
  82. pm: "چ",
  83. midnight: "ك",
  84. noon: "چ",
  85. morning: "ئەتىگەن",
  86. afternoon: "چۈشتىن كىيىن",
  87. evening: "ئاخشىم",
  88. night: "كىچە",
  89. },
  90. wide: {
  91. am: "ئە",
  92. pm: "چ",
  93. midnight: "ك",
  94. noon: "چ",
  95. morning: "ئەتىگەن",
  96. afternoon: "چۈشتىن كىيىن",
  97. evening: "ئاخشىم",
  98. night: "كىچە",
  99. },
  100. };
  101. const formattingDayPeriodValues = {
  102. narrow: {
  103. am: "ئە",
  104. pm: "چ",
  105. midnight: "ك",
  106. noon: "چ",
  107. morning: "ئەتىگەندە",
  108. afternoon: "چۈشتىن كىيىن",
  109. evening: "ئاخشامدا",
  110. night: "كىچىدە",
  111. },
  112. abbreviated: {
  113. am: "ئە",
  114. pm: "چ",
  115. midnight: "ك",
  116. noon: "چ",
  117. morning: "ئەتىگەندە",
  118. afternoon: "چۈشتىن كىيىن",
  119. evening: "ئاخشامدا",
  120. night: "كىچىدە",
  121. },
  122. wide: {
  123. am: "ئە",
  124. pm: "چ",
  125. midnight: "ك",
  126. noon: "چ",
  127. morning: "ئەتىگەندە",
  128. afternoon: "چۈشتىن كىيىن",
  129. evening: "ئاخشامدا",
  130. night: "كىچىدە",
  131. },
  132. };
  133. const ordinalNumber = (dirtyNumber, _options) => {
  134. return String(dirtyNumber);
  135. };
  136. export const localize = {
  137. ordinalNumber,
  138. era: buildLocalizeFn({
  139. values: eraValues,
  140. defaultWidth: "wide",
  141. }),
  142. quarter: buildLocalizeFn({
  143. values: quarterValues,
  144. defaultWidth: "wide",
  145. argumentCallback: (quarter) => quarter - 1,
  146. }),
  147. month: buildLocalizeFn({
  148. values: monthValues,
  149. defaultWidth: "wide",
  150. }),
  151. day: buildLocalizeFn({
  152. values: dayValues,
  153. defaultWidth: "wide",
  154. }),
  155. dayPeriod: buildLocalizeFn({
  156. values: dayPeriodValues,
  157. defaultWidth: "wide",
  158. formattingValues: formattingDayPeriodValues,
  159. defaultFormattingWidth: "wide",
  160. }),
  161. };