You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
6.0KB

  1. //! moment.js locale configuration
  2. //! locale : Arabic [ar]
  3. //! author : Abdel Said: https://github.com/abdelsaid
  4. //! author : Ahmed Elkhatib
  5. //! author : forabi https://github.com/forabi
  6. ;(function (global, factory) {
  7. typeof exports === 'object' && typeof module !== 'undefined'
  8. && typeof require === 'function' ? factory(require('../moment')) :
  9. typeof define === 'function' && define.amd ? define(['../moment'], factory) :
  10. factory(global.moment)
  11. }(this, (function (moment) { 'use strict';
  12. //! moment.js locale configuration
  13. var symbolMap = {
  14. 1: '١',
  15. 2: '٢',
  16. 3: '٣',
  17. 4: '٤',
  18. 5: '٥',
  19. 6: '٦',
  20. 7: '٧',
  21. 8: '٨',
  22. 9: '٩',
  23. 0: '٠',
  24. },
  25. numberMap = {
  26. '١': '1',
  27. '٢': '2',
  28. '٣': '3',
  29. '٤': '4',
  30. '٥': '5',
  31. '٦': '6',
  32. '٧': '7',
  33. '٨': '8',
  34. '٩': '9',
  35. '٠': '0',
  36. },
  37. pluralForm = function (n) {
  38. return n === 0
  39. ? 0
  40. : n === 1
  41. ? 1
  42. : n === 2
  43. ? 2
  44. : n % 100 >= 3 && n % 100 <= 10
  45. ? 3
  46. : n % 100 >= 11
  47. ? 4
  48. : 5;
  49. },
  50. plurals = {
  51. s: [
  52. 'أقل من ثانية',
  53. 'ثانية واحدة',
  54. ['ثانيتان', 'ثانيتين'],
  55. '%d ثوان',
  56. '%d ثانية',
  57. '%d ثانية',
  58. ],
  59. m: [
  60. 'أقل من دقيقة',
  61. 'دقيقة واحدة',
  62. ['دقيقتان', 'دقيقتين'],
  63. '%d دقائق',
  64. '%d دقيقة',
  65. '%d دقيقة',
  66. ],
  67. h: [
  68. 'أقل من ساعة',
  69. 'ساعة واحدة',
  70. ['ساعتان', 'ساعتين'],
  71. '%d ساعات',
  72. '%d ساعة',
  73. '%d ساعة',
  74. ],
  75. d: [
  76. 'أقل من يوم',
  77. 'يوم واحد',
  78. ['يومان', 'يومين'],
  79. '%d أيام',
  80. '%d يومًا',
  81. '%d يوم',
  82. ],
  83. M: [
  84. 'أقل من شهر',
  85. 'شهر واحد',
  86. ['شهران', 'شهرين'],
  87. '%d أشهر',
  88. '%d شهرا',
  89. '%d شهر',
  90. ],
  91. y: [
  92. 'أقل من عام',
  93. 'عام واحد',
  94. ['عامان', 'عامين'],
  95. '%d أعوام',
  96. '%d عامًا',
  97. '%d عام',
  98. ],
  99. },
  100. pluralize = function (u) {
  101. return function (number, withoutSuffix, string, isFuture) {
  102. var f = pluralForm(number),
  103. str = plurals[u][pluralForm(number)];
  104. if (f === 2) {
  105. str = str[withoutSuffix ? 0 : 1];
  106. }
  107. return str.replace(/%d/i, number);
  108. };
  109. },
  110. months = [
  111. 'يناير',
  112. 'فبراير',
  113. 'مارس',
  114. 'أبريل',
  115. 'مايو',
  116. 'يونيو',
  117. 'يوليو',
  118. 'أغسطس',
  119. 'سبتمبر',
  120. 'أكتوبر',
  121. 'نوفمبر',
  122. 'ديسمبر',
  123. ];
  124. var ar = moment.defineLocale('ar', {
  125. months: months,
  126. monthsShort: months,
  127. weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  128. weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  129. weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  130. weekdaysParseExact: true,
  131. longDateFormat: {
  132. LT: 'HH:mm',
  133. LTS: 'HH:mm:ss',
  134. L: 'D/\u200FM/\u200FYYYY',
  135. LL: 'D MMMM YYYY',
  136. LLL: 'D MMMM YYYY HH:mm',
  137. LLLL: 'dddd D MMMM YYYY HH:mm',
  138. },
  139. meridiemParse: /ص|م/,
  140. isPM: function (input) {
  141. return 'م' === input;
  142. },
  143. meridiem: function (hour, minute, isLower) {
  144. if (hour < 12) {
  145. return 'ص';
  146. } else {
  147. return 'م';
  148. }
  149. },
  150. calendar: {
  151. sameDay: '[اليوم عند الساعة] LT',
  152. nextDay: '[غدًا عند الساعة] LT',
  153. nextWeek: 'dddd [عند الساعة] LT',
  154. lastDay: '[أمس عند الساعة] LT',
  155. lastWeek: 'dddd [عند الساعة] LT',
  156. sameElse: 'L',
  157. },
  158. relativeTime: {
  159. future: 'بعد %s',
  160. past: 'منذ %s',
  161. s: pluralize('s'),
  162. ss: pluralize('s'),
  163. m: pluralize('m'),
  164. mm: pluralize('m'),
  165. h: pluralize('h'),
  166. hh: pluralize('h'),
  167. d: pluralize('d'),
  168. dd: pluralize('d'),
  169. M: pluralize('M'),
  170. MM: pluralize('M'),
  171. y: pluralize('y'),
  172. yy: pluralize('y'),
  173. },
  174. preparse: function (string) {
  175. return string
  176. .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  177. return numberMap[match];
  178. })
  179. .replace(/،/g, ',');
  180. },
  181. postformat: function (string) {
  182. return string
  183. .replace(/\d/g, function (match) {
  184. return symbolMap[match];
  185. })
  186. .replace(/,/g, '،');
  187. },
  188. week: {
  189. dow: 6, // Saturday is the first day of the week.
  190. doy: 12, // The week that contains Jan 12th is the first week of the year.
  191. },
  192. });
  193. return ar;
  194. })));