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