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