1
1
import en from './en'
2
2
import util from '../util'
3
- const { genItems, pad} = util
3
+ const { genItems, pad, traverse } = util
4
4
5
5
const locales = {
6
6
en : en
7
7
}
8
8
9
- function traverse ( obj , ... keys ) {
10
- if ( keys . length == 0 )
11
- return obj
12
-
13
- for ( let key of keys [ 0 ] ) {
14
- if ( obj . hasOwnProperty ( key ) ) {
15
- let res = traverse ( obj [ key ] , ... keys . slice ( 1 ) )
16
- if ( res !== undefined ) {
17
- return res
18
- }
19
- }
9
+ /**
10
+ *
11
+ * @param { string } locale=en
12
+ * @returns { object } object with all strings in the request language
13
+ */
14
+ function getLocale ( locale ) {
15
+ if ( locales . hasOwnProperty ( locale ) ) {
16
+ return locales [ locale ]
17
+ }
18
+ else {
19
+ return locales [ 'en' ]
20
20
}
21
- return
22
21
}
23
22
24
- export default {
25
- getLocale : ( locale ) => {
26
- if ( locales . hasOwnProperty ( locale ) ) {
27
- return locales [ locale ]
28
- }
29
- else {
30
- return locales [ 'en' ]
31
- }
32
- } ,
23
+ /**
24
+ *
25
+ * @param {string } locale
26
+ * @returns {object } items for minute, hour, day, month and day of week
27
+ */
28
+ function defaultItems ( locale ) {
29
+ return {
30
+ minuteItems : genItems ( 0 , 59 , ( value ) => pad ( value , 2 ) ) ,
31
+ hourItems : genItems ( 0 , 59 , ( value ) => pad ( value , 2 ) ) ,
32
+ dayItems : genItems ( 1 , 31 ) ,
33
+ monthItems : genItems ( 1 , 12 , ( value ) => {
34
+ return new Date ( 2021 , value - 1 , 1 ) . toLocaleDateString ( locale , { month : 'long' } )
35
+ } , ( value ) => {
36
+ return new Date ( 2021 , value - 1 , 1 ) . toLocaleDateString ( locale , { month : 'short' } )
37
+ } ) ,
38
+ dayOfWeekItems : genItems ( 0 , 6 , ( value ) => {
39
+ let date = new Date ( 2021 , 0 , 3 + value ) //first sunday in 2021
40
+ return date . toLocaleDateString ( locale , { weekday : 'long' } )
41
+ } , ( value ) => {
42
+ let date = new Date ( 2021 , 0 , 3 + value ) //first sunday in 2021
43
+ return date . toLocaleDateString ( locale , { weekday : 'short' } )
44
+ } )
45
+ }
46
+ }
33
47
48
+ export default {
34
49
getLocaleStr : ( locale , periodId , fieldId , localeKey ) => {
35
50
return traverse ( locale , [ periodId + 'Period' , 'eachPeriod' ] , [ fieldId + 'Field' , 'eachField' ] , [ localeKey ] ) || ''
36
51
} ,
@@ -43,23 +58,6 @@ export default {
43
58
return traverse ( locale , [ periodId + 'Period' , 'eachPeriod' ] , [ fieldId + 'Field' , 'eachField' ] , [ 'suffix' ] ) || ''
44
59
} ,
45
60
46
- defaultItems : ( locale ) => {
47
- return {
48
- minuteItems : genItems ( 0 , 59 , ( value ) => pad ( value , 2 ) ) ,
49
- hourItems : genItems ( 0 , 59 , ( value ) => pad ( value , 2 ) ) ,
50
- dayItems : genItems ( 1 , 31 ) ,
51
- monthItems : genItems ( 1 , 12 , ( value ) => {
52
- return new Date ( 2021 , value - 1 , 1 ) . toLocaleDateString ( locale , { month : 'long' } )
53
- } , ( value ) => {
54
- return new Date ( 2021 , value - 1 , 1 ) . toLocaleDateString ( locale , { month : 'short' } )
55
- } ) ,
56
- dayOfWeekItems : genItems ( 0 , 6 , ( value ) => {
57
- let date = new Date ( 2021 , 0 , 3 + value ) //first sunday in 2021
58
- return date . toLocaleDateString ( locale , { weekday : 'long' } )
59
- } , ( value ) => {
60
- let date = new Date ( 2021 , 0 , 3 + value ) //first sunday in 2021
61
- return date . toLocaleDateString ( locale , { weekday : 'short' } )
62
- } )
63
- }
64
- } ,
61
+ defaultItems,
62
+ getLocale
65
63
}
0 commit comments