File tree 2 files changed +85
-17
lines changed
2 files changed +85
-17
lines changed Original file line number Diff line number Diff line change 1
1
// Kurdish [ku]
2
2
import dayjs from 'dayjs'
3
3
4
+ export const englishToArabicNumbersMap = {
5
+ 1 : '١' ,
6
+ 2 : '٢' ,
7
+ 3 : '٣' ,
8
+ 4 : '٤' ,
9
+ 5 : '٥' ,
10
+ 6 : '٦' ,
11
+ 7 : '٧' ,
12
+ 8 : '٨' ,
13
+ 9 : '٩' ,
14
+ 0 : '٠'
15
+ }
16
+
17
+ const arabicToEnglishNumbersMap = {
18
+ '١' : '1' ,
19
+ '٢' : '2' ,
20
+ '٣' : '3' ,
21
+ '٤' : '4' ,
22
+ '٥' : '5' ,
23
+ '٦' : '6' ,
24
+ '٧' : '7' ,
25
+ '٨' : '8' ,
26
+ '٩' : '9' ,
27
+ '٠' : '0'
28
+ }
29
+
30
+ const months = [
31
+ 'کانوونی دووەم' ,
32
+ 'شوبات' ,
33
+ 'ئادار' ,
34
+ 'نیسان' ,
35
+ 'ئایار' ,
36
+ 'حوزەیران' ,
37
+ 'تەممووز' ,
38
+ 'ئاب' ,
39
+ 'ئەیلوول' ,
40
+ 'تشرینی یەکەم' ,
41
+ 'تشرینی دووەم' ,
42
+ 'کانوونی یەکەم'
43
+ ]
44
+
4
45
const locale = {
5
46
name : 'ku' ,
6
- weekdays : 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه' . split ( '_' ) ,
7
- months : 'کانونی دووەم_شوبات_ئازار_نیسان_ئایار_حوزەیران_تەمموز_ئاب_ئەیلوول_تشرینی یەكەم_تشرینی دووەم_كانونی یەکەم' . split ( '_' ) ,
47
+ months,
48
+ monthsShort : months ,
49
+ weekdays : 'یەکشەممە_دووشەممە_سێشەممە_چوارشەممە_پێنجشەممە_هەینی_شەممە' . split ( '_' ) ,
50
+ weekdaysShort : 'یەکشەم_دووشەم_سێشەم_چوارشەم_پێنجشەم_هەینی_شەممە' . split ( '_' ) ,
8
51
weekStart : 6 ,
9
- weekdaysShort : 'یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه' . split ( '_' ) ,
10
- monthsShort : 'کانونی دووەم_شوبات_ئازار_نیسان_ئایار_حوزەیران_تەمموز_ئاب_ئەیلوول_تشرینی یەكەم_تشرینی دووەم_كانونی یەکەم' . split ( '_' ) ,
11
- weekdaysMin : 'ی_د_س_چ_پ_ه_ش' . split ( '_' ) ,
52
+ weekdaysMin : 'ی_د_س_چ_پ_هـ_ش' . split ( '_' ) ,
53
+ preparse ( string ) {
54
+ return string
55
+ . replace ( / [ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ٠ ] / g, match => arabicToEnglishNumbersMap [ match ] )
56
+ . replace ( / ، / g, ',' )
57
+ } ,
58
+ postformat ( string ) {
59
+ return string
60
+ . replace ( / \d / g, match => englishToArabicNumbersMap [ match ] )
61
+ . replace ( / , / g, '،' )
62
+ } ,
12
63
ordinal : n => n ,
13
64
formats : {
14
65
LT : 'HH:mm' ,
@@ -20,23 +71,22 @@ const locale = {
20
71
} ,
21
72
meridiem : hour => ( hour < 12 ? 'پ.ن' : 'د.ن' ) ,
22
73
relativeTime : {
23
- future : 'له %s' ,
74
+ future : 'لە %s' ,
24
75
past : '%s' ,
25
- s : 'چهند چركهیهك ' ,
26
- m : 'یهك خولهك ' ,
27
- mm : '%d خولهك ' ,
28
- h : 'یهك كاتژمێر ' ,
29
- hh : '%d كاتژمێر ' ,
30
- d : 'یهك ڕۆژ' ,
76
+ s : 'چەند چرکەیەک ' ,
77
+ m : 'یەک خولەک ' ,
78
+ mm : '%d خولەک ' ,
79
+ h : 'یەک کاتژمێر ' ,
80
+ hh : '%d کاتژمێر ' ,
81
+ d : 'یەک ڕۆژ' ,
31
82
dd : '%d ڕۆژ' ,
32
- M : 'یهك مانگ' ,
83
+ M : 'یەک مانگ' ,
33
84
MM : '%d مانگ' ,
34
- y : 'یهك ساڵ' ,
85
+ y : 'یەک ساڵ' ,
35
86
yy : '%d ساڵ'
36
87
}
37
88
}
38
89
39
90
dayjs . locale ( locale , null , true )
40
91
41
92
export default locale
42
-
Original file line number Diff line number Diff line change
1
+ import moment from 'moment'
1
2
import MockDate from 'mockdate'
2
3
import dayjs from '../../src'
3
- import '../../src/locale/ku'
4
+ import locale , { englishToArabicNumbersMap } from '../../src/locale/ku'
5
+ import preParsePostFormat from '../../src/plugin/preParsePostFormat'
6
+
7
+ dayjs . extend ( preParsePostFormat )
4
8
5
9
beforeEach ( ( ) => {
6
10
MockDate . set ( new Date ( ) )
@@ -15,6 +19,20 @@ it('Format meridiem correctly', () => {
15
19
const dayjsKu = dayjs ( )
16
20
. startOf ( 'day' )
17
21
. add ( i , 'hour' )
18
- expect ( dayjsKu . locale ( 'ku' ) . format ( 'h A' ) ) . toBe ( `${ i % 12 || 12 } ${ i < 12 ? 'پ.ن' : 'د.ن' } ` )
22
+ const hour = ( i % 12 || 12 )
23
+ . toString ( )
24
+ . replace ( / \d / g, match => englishToArabicNumbersMap [ match ] )
25
+ const m = i < 12 ? 'پ.ن' : 'د.ن'
26
+ expect ( dayjsKu . locale ( 'ku' ) . format ( 'h A' ) ) . toBe ( `${ hour } ${ m } ` )
27
+ }
28
+ } )
29
+
30
+ it ( 'Preparse with locale function' , ( ) => {
31
+ for ( let i = 0 ; i <= 7 ; i += 1 ) {
32
+ dayjs . locale ( locale )
33
+ const momentKu = moment ( )
34
+ . locale ( 'ku' )
35
+ . add ( i , 'day' )
36
+ expect ( dayjs ( momentKu . format ( ) ) . format ( ) ) . toEqual ( momentKu . format ( ) )
19
37
}
20
38
} )
You can’t perform that action at this time.
0 commit comments