11import en from './en'
22import util from '../util'
3- const { genItems, pad} = util
3+ const { genItems, pad, traverse } = util
44
55const locales = {
66 en : en
77}
88
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' ]
2020 }
21- return
2221}
2322
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+ }
3347
48+ export default {
3449 getLocaleStr : ( locale , periodId , fieldId , localeKey ) => {
3550 return traverse ( locale , [ periodId + 'Period' , 'eachPeriod' ] , [ fieldId + 'Field' , 'eachField' ] , [ localeKey ] ) || ''
3651 } ,
@@ -43,23 +58,6 @@ export default {
4358 return traverse ( locale , [ periodId + 'Period' , 'eachPeriod' ] , [ fieldId + 'Field' , 'eachField' ] , [ 'suffix' ] ) || ''
4459 } ,
4560
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
6563}
0 commit comments