UNPKG

5.07 kBJavaScriptView Raw
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
7import moment from '../moment';
8
9var 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
121export 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, // Saturday is the first day of the week.
187 doy: 12, // The week that contains Jan 12th is the first week of the year.
188 },
189});