ar.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. var symbolMap = {
  13. '1': '١',
  14. '2': '٢',
  15. '3': '٣',
  16. '4': '٤',
  17. '5': '٥',
  18. '6': '٦',
  19. '7': '٧',
  20. '8': '٨',
  21. '9': '٩',
  22. '0': '٠'
  23. };
  24. var numberMap = {
  25. '١': '1',
  26. '٢': '2',
  27. '٣': '3',
  28. '٤': '4',
  29. '٥': '5',
  30. '٦': '6',
  31. '٧': '7',
  32. '٨': '8',
  33. '٩': '9',
  34. '٠': '0'
  35. };
  36. var pluralForm = function (n) {
  37. return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
  38. };
  39. var plurals = {
  40. s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
  41. m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
  42. h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
  43. d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
  44. M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
  45. y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
  46. };
  47. var pluralize = function (u) {
  48. return function (number, withoutSuffix, string, isFuture) {
  49. var f = pluralForm(number),
  50. str = plurals[u][pluralForm(number)];
  51. if (f === 2) {
  52. str = str[withoutSuffix ? 0 : 1];
  53. }
  54. return str.replace(/%d/i, number);
  55. };
  56. };
  57. var months = [
  58. 'يناير',
  59. 'فبراير',
  60. 'مارس',
  61. 'أبريل',
  62. 'مايو',
  63. 'يونيو',
  64. 'يوليو',
  65. 'أغسطس',
  66. 'سبتمبر',
  67. 'أكتوبر',
  68. 'نوفمبر',
  69. 'ديسمبر'
  70. ];
  71. var ar = moment.defineLocale('ar', {
  72. months : months,
  73. monthsShort : months,
  74. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  75. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  76. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  77. weekdaysParseExact : true,
  78. longDateFormat : {
  79. LT : 'HH:mm',
  80. LTS : 'HH:mm:ss',
  81. L : 'D/\u200FM/\u200FYYYY',
  82. LL : 'D MMMM YYYY',
  83. LLL : 'D MMMM YYYY HH:mm',
  84. LLLL : 'dddd D MMMM YYYY HH:mm'
  85. },
  86. meridiemParse: /ص|م/,
  87. isPM : function (input) {
  88. return 'م' === input;
  89. },
  90. meridiem : function (hour, minute, isLower) {
  91. if (hour < 12) {
  92. return 'ص';
  93. } else {
  94. return 'م';
  95. }
  96. },
  97. calendar : {
  98. sameDay: '[اليوم عند الساعة] LT',
  99. nextDay: '[غدًا عند الساعة] LT',
  100. nextWeek: 'dddd [عند الساعة] LT',
  101. lastDay: '[أمس عند الساعة] LT',
  102. lastWeek: 'dddd [عند الساعة] LT',
  103. sameElse: 'L'
  104. },
  105. relativeTime : {
  106. future : 'بعد %s',
  107. past : 'منذ %s',
  108. s : pluralize('s'),
  109. ss : pluralize('s'),
  110. m : pluralize('m'),
  111. mm : pluralize('m'),
  112. h : pluralize('h'),
  113. hh : pluralize('h'),
  114. d : pluralize('d'),
  115. dd : pluralize('d'),
  116. M : pluralize('M'),
  117. MM : pluralize('M'),
  118. y : pluralize('y'),
  119. yy : pluralize('y')
  120. },
  121. preparse: function (string) {
  122. return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  123. return numberMap[match];
  124. }).replace(/،/g, ',');
  125. },
  126. postformat: function (string) {
  127. return string.replace(/\d/g, function (match) {
  128. return symbolMap[match];
  129. }).replace(/,/g, '،');
  130. },
  131. week : {
  132. dow : 6, // Saturday is the first day of the week.
  133. doy : 12 // The week that contains Jan 1st is the first week of the year.
  134. }
  135. });
  136. return ar;
  137. })));