index.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js";
  2. var numberValues = {
  3. locale: {
  4. '1': '१',
  5. '2': '२',
  6. '3': '३',
  7. '4': '४',
  8. '5': '५',
  9. '6': '६',
  10. '7': '७',
  11. '8': '८',
  12. '9': '९',
  13. '0': '०'
  14. },
  15. number: {
  16. '१': '1',
  17. '२': '2',
  18. '३': '3',
  19. '४': '4',
  20. '५': '5',
  21. '६': '6',
  22. '७': '7',
  23. '८': '8',
  24. '९': '9',
  25. '०': '0'
  26. }
  27. };
  28. // CLDR #1585 - #1592
  29. var eraValues = {
  30. narrow: ['ईसा-पूर्व', 'ईस्वी'],
  31. abbreviated: ['ईसा-पूर्व', 'ईस्वी'],
  32. wide: ['ईसा-पूर्व', 'ईसवी सन']
  33. };
  34. // CLDR #1593 - #1616
  35. var quarterValues = {
  36. narrow: ['1', '2', '3', '4'],
  37. abbreviated: ['ति1', 'ति2', 'ति3', 'ति4'],
  38. wide: ['पहली तिमाही', 'दूसरी तिमाही', 'तीसरी तिमाही', 'चौथी तिमाही']
  39. };
  40. // Note: in English, the names of days of the week and months are capitalized.
  41. // If you are making a new locale based on this one, check if the same is true for the language you're working on.
  42. // Generally, formatted dates should look like they are in the middle of a sentence,
  43. // e.g. in Spanish language the weekdays and months should be in the lowercase.
  44. // https://www.unicode.org/cldr/charts/32/summary/hi.html
  45. // CLDR #1617 - #1688
  46. var monthValues = {
  47. narrow: ['ज', 'फ़', 'मा', 'अ', 'मई', 'जू', 'जु', 'अग', 'सि', 'अक्टू', 'न', 'दि'],
  48. abbreviated: ['जन', 'फ़र', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुल', 'अग', 'सित', 'अक्टू', 'नव', 'दिस'],
  49. wide: ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर']
  50. };
  51. // CLDR #1689 - #1744
  52. var dayValues = {
  53. narrow: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],
  54. short: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],
  55. abbreviated: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
  56. wide: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार']
  57. };
  58. var dayPeriodValues = {
  59. narrow: {
  60. am: 'पूर्वाह्न',
  61. pm: 'अपराह्न',
  62. midnight: 'मध्यरात्रि',
  63. noon: 'दोपहर',
  64. morning: 'सुबह',
  65. afternoon: 'दोपहर',
  66. evening: 'शाम',
  67. night: 'रात'
  68. },
  69. abbreviated: {
  70. am: 'पूर्वाह्न',
  71. pm: 'अपराह्न',
  72. midnight: 'मध्यरात्रि',
  73. noon: 'दोपहर',
  74. morning: 'सुबह',
  75. afternoon: 'दोपहर',
  76. evening: 'शाम',
  77. night: 'रात'
  78. },
  79. wide: {
  80. am: 'पूर्वाह्न',
  81. pm: 'अपराह्न',
  82. midnight: 'मध्यरात्रि',
  83. noon: 'दोपहर',
  84. morning: 'सुबह',
  85. afternoon: 'दोपहर',
  86. evening: 'शाम',
  87. night: 'रात'
  88. }
  89. };
  90. var formattingDayPeriodValues = {
  91. narrow: {
  92. am: 'पूर्वाह्न',
  93. pm: 'अपराह्न',
  94. midnight: 'मध्यरात्रि',
  95. noon: 'दोपहर',
  96. morning: 'सुबह',
  97. afternoon: 'दोपहर',
  98. evening: 'शाम',
  99. night: 'रात'
  100. },
  101. abbreviated: {
  102. am: 'पूर्वाह्न',
  103. pm: 'अपराह्न',
  104. midnight: 'मध्यरात्रि',
  105. noon: 'दोपहर',
  106. morning: 'सुबह',
  107. afternoon: 'दोपहर',
  108. evening: 'शाम',
  109. night: 'रात'
  110. },
  111. wide: {
  112. am: 'पूर्वाह्न',
  113. pm: 'अपराह्न',
  114. midnight: 'मध्यरात्रि',
  115. noon: 'दोपहर',
  116. morning: 'सुबह',
  117. afternoon: 'दोपहर',
  118. evening: 'शाम',
  119. night: 'रात'
  120. }
  121. };
  122. var ordinalNumber = function ordinalNumber(dirtyNumber, _options) {
  123. var number = Number(dirtyNumber);
  124. return numberToLocale(number);
  125. };
  126. export function localeToNumber(locale) {
  127. var enNumber = locale.toString().replace(/[१२३४५६७८९०]/g, function (match) {
  128. return numberValues.number[match];
  129. });
  130. return Number(enNumber);
  131. }
  132. export function numberToLocale(enNumber) {
  133. return enNumber.toString().replace(/\d/g, function (match) {
  134. return numberValues.locale[match];
  135. });
  136. }
  137. var localize = {
  138. ordinalNumber: ordinalNumber,
  139. era: buildLocalizeFn({
  140. values: eraValues,
  141. defaultWidth: 'wide'
  142. }),
  143. quarter: buildLocalizeFn({
  144. values: quarterValues,
  145. defaultWidth: 'wide',
  146. argumentCallback: function argumentCallback(quarter) {
  147. return quarter - 1;
  148. }
  149. }),
  150. month: buildLocalizeFn({
  151. values: monthValues,
  152. defaultWidth: 'wide'
  153. }),
  154. day: buildLocalizeFn({
  155. values: dayValues,
  156. defaultWidth: 'wide'
  157. }),
  158. dayPeriod: buildLocalizeFn({
  159. values: dayPeriodValues,
  160. defaultWidth: 'wide',
  161. formattingValues: formattingDayPeriodValues,
  162. defaultFormattingWidth: 'wide'
  163. })
  164. };
  165. export default localize;