File tree Expand file tree Collapse file tree 2 files changed +85
-17
lines changed Expand file tree Collapse file tree 2 files changed +85
-17
lines changed Original file line number Diff line number Diff line change 11// Kurdish [ku]
22import dayjs from 'dayjs'
33
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+
445const locale = {
546 name : 'ku' ,
6- weekdays : 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه' . split ( '_' ) ,
7- months : 'کانونی دووەم_شوبات_ئازار_نیسان_ئایار_حوزەیران_تەمموز_ئاب_ئەیلوول_تشرینی یەكەم_تشرینی دووەم_كانونی یەکەم' . split ( '_' ) ,
47+ months,
48+ monthsShort : months ,
49+ weekdays : 'یەکشەممە_دووشەممە_سێشەممە_چوارشەممە_پێنجشەممە_هەینی_شەممە' . split ( '_' ) ,
50+ weekdaysShort : 'یەکشەم_دووشەم_سێشەم_چوارشەم_پێنجشەم_هەینی_شەممە' . split ( '_' ) ,
851 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+ } ,
1263 ordinal : n => n ,
1364 formats : {
1465 LT : 'HH:mm' ,
@@ -20,23 +71,22 @@ const locale = {
2071 } ,
2172 meridiem : hour => ( hour < 12 ? 'پ.ن' : 'د.ن' ) ,
2273 relativeTime : {
23- future : 'له %s' ,
74+ future : 'لە %s' ,
2475 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 : 'یەک ڕۆژ' ,
3182 dd : '%d ڕۆژ' ,
32- M : 'یهك مانگ' ,
83+ M : 'یەک مانگ' ,
3384 MM : '%d مانگ' ,
34- y : 'یهك ساڵ' ,
85+ y : 'یەک ساڵ' ,
3586 yy : '%d ساڵ'
3687 }
3788}
3889
3990dayjs . locale ( locale , null , true )
4091
4192export default locale
42-
Original file line number Diff line number Diff line change 1+ import moment from 'moment'
12import MockDate from 'mockdate'
23import 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 )
48
59beforeEach ( ( ) => {
610 MockDate . set ( new Date ( ) )
@@ -15,6 +19,20 @@ it('Format meridiem correctly', () => {
1519 const dayjsKu = dayjs ( )
1620 . startOf ( 'day' )
1721 . 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 ( ) )
1937 }
2038} )
You can’t perform that action at this time.
0 commit comments