Commit 4ab118119aff1543ac2c963b5717fdcf13f2fd4d
1 parent
d33b5143
some component support i18n
some component support i18n
Showing
13 changed files
with
238 additions
and
30 deletions
Show diff stats
src/components/date-picker/base/confirm.vue
1 | 1 | <template> |
2 | 2 | <div :class="[prefixCls + '-confirm']"> |
3 | 3 | <span :class="timeClasses" v-if="showTime" @click="handleToggleTime"> |
4 | - <template v-if="isTime">选择日期</template> | |
5 | - <template v-else>选择时间</template> | |
4 | + <template v-if="isTime">{{ t('i.datepicker.selectDate') }}</template> | |
5 | + <template v-else>{{ t('i.datepicker.selectTime') }}</template> | |
6 | 6 | </span> |
7 | - <i-button size="small" type="text" @click="handleClear">清空</i-button> | |
8 | - <i-button size="small" type="primary" @click="handleSuccess">确定</i-button> | |
7 | + <i-button size="small" type="text" @click="handleClear">{{ t('i.datepicker.clear') }}</i-button> | |
8 | + <i-button size="small" type="primary" @click="handleSuccess">{{ t('i.datepicker.ok') }}</i-button> | |
9 | 9 | </div> |
10 | 10 | </template> |
11 | 11 | <script> |
12 | 12 | import iButton from '../../button/button.vue'; |
13 | + import Locale from '../../../mixins/locale'; | |
13 | 14 | |
14 | 15 | const prefixCls = 'ivu-picker'; |
15 | 16 | |
16 | 17 | export default { |
18 | + mixins: [ Locale ], | |
17 | 19 | components: { iButton }, |
18 | 20 | props: { |
19 | 21 | showTime: false, | ... | ... |
src/components/date-picker/base/date-table.vue
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | @click="handleClick" |
5 | 5 | @mousemove="handleMouseMove"> |
6 | 6 | <div :class="[prefixCls + '-header']"> |
7 | - <span>日</span><span>一</span><span>二</span><span>三</span><span>四</span><span>五</span><span>六</span> | |
7 | + <span>{{ t('i.datepicker.weeks.sun') }}</span><span>{{ t('i.datepicker.weeks.mon') }}</span><span>{{ t('i.datepicker.weeks.tue') }}</span><span>{{ t('i.datepicker.weeks.wed') }}</span><span>{{ t('i.datepicker.weeks.thu') }}</span><span>{{ t('i.datepicker.weeks.fri') }}</span><span>{{ t('i.datepicker.weeks.sat') }}</span> | |
8 | 8 | </div> |
9 | 9 | <span :class="getCellCls(cell)" v-for="cell in readCells"><em :index="$index">{{ cell.text }}</em></span> |
10 | 10 | </div> |
... | ... | @@ -12,6 +12,7 @@ |
12 | 12 | <script> |
13 | 13 | import { getFirstDayOfMonth, getDayCountOfMonth } from '../util'; |
14 | 14 | import { deepCopy } from '../../../utils/assist'; |
15 | + import Locale from '../../../mixins/locale'; | |
15 | 16 | |
16 | 17 | const prefixCls = 'ivu-date-picker-cells'; |
17 | 18 | |
... | ... | @@ -22,6 +23,7 @@ |
22 | 23 | }; |
23 | 24 | |
24 | 25 | export default { |
26 | + mixins: [ Locale ], | |
25 | 27 | props: { |
26 | 28 | date: {}, |
27 | 29 | year: {}, | ... | ... |
src/components/date-picker/base/month-table.vue
1 | 1 | <template> |
2 | 2 | <div :class="classes" @click="handleClick"> |
3 | - <span :class="getCellCls(cell)" v-for="cell in cells"><em :index="$index">{{ cell.text }}月</em></span> | |
3 | + <span :class="getCellCls(cell)" v-for="cell in cells"><em :index="$index">{{ tCell(cell.text) }}</em></span> | |
4 | 4 | </div> |
5 | 5 | </template> |
6 | 6 | <script> |
7 | 7 | import { deepCopy } from '../../../utils/assist'; |
8 | + import Locale from '../../../mixins/locale'; | |
8 | 9 | const prefixCls = 'ivu-date-picker-cells'; |
9 | 10 | |
10 | 11 | export default { |
12 | + mixins: [ Locale ], | |
11 | 13 | props: { |
12 | 14 | date: {}, |
13 | 15 | month: { |
... | ... | @@ -68,6 +70,9 @@ |
68 | 70 | this.$emit('on-pick', index); |
69 | 71 | } |
70 | 72 | this.$emit('on-pick-click'); |
73 | + }, | |
74 | + tCell (cell) { | |
75 | + return this.t(`i.datepicker.months.m${cell}`); | |
71 | 76 | } |
72 | 77 | } |
73 | 78 | }; | ... | ... |
src/components/date-picker/panel/date-range.vue
... | ... | @@ -22,7 +22,7 @@ |
22 | 22 | <span |
23 | 23 | :class="[datePrefixCls + '-header-label']" |
24 | 24 | @click="showMonthPicker('left')" |
25 | - v-show="leftCurrentView === 'date'">{{ leftMonth + 1 }} 月</span> | |
25 | + v-show="leftCurrentView === 'date'">{{ leftMonthLabel }}</span> | |
26 | 26 | <span |
27 | 27 | :class="iconBtnCls('next', '-double')" |
28 | 28 | @click="nextYear('left')" |
... | ... | @@ -72,7 +72,7 @@ |
72 | 72 | <span |
73 | 73 | :class="[datePrefixCls + '-header-label']" |
74 | 74 | @click="showMonthPicker('right')" |
75 | - v-show="rightCurrentView === 'date'">{{ rightMonth + 1 }} 月</span> | |
75 | + v-show="rightCurrentView === 'date'">{{ rightMonthLabel }}</span> | |
76 | 76 | <span |
77 | 77 | :class="iconBtnCls('next', '-double')" |
78 | 78 | @click="nextYear('right')"><Icon type="ios-arrow-right"></Icon></span> |
... | ... | @@ -141,13 +141,14 @@ |
141 | 141 | import { toDate, prevMonth, nextMonth, initTimeDate } from '../util'; |
142 | 142 | |
143 | 143 | import Mixin from './mixin'; |
144 | + import Locale from '../../../mixins/locale'; | |
144 | 145 | |
145 | 146 | const prefixCls = 'ivu-picker-panel'; |
146 | 147 | const datePrefixCls = 'ivu-date-picker'; |
147 | 148 | |
148 | 149 | export default { |
149 | 150 | name: 'DatePicker', |
150 | - mixins: [Mixin], | |
151 | + mixins: [ Mixin, Locale ], | |
151 | 152 | components: { Icon, DateTable, YearTable, MonthTable, TimePicker, Confirm }, |
152 | 153 | data () { |
153 | 154 | return { |
... | ... | @@ -195,20 +196,25 @@ |
195 | 196 | } |
196 | 197 | }, |
197 | 198 | leftYearLabel () { |
199 | + const tYear = this.t('i.datepicker.year'); | |
198 | 200 | if (this.leftCurrentView === 'year') { |
199 | 201 | const year = this.leftTableYear; |
200 | 202 | if (!year) return ''; |
201 | 203 | const startYear = Math.floor(year / 10) * 10; |
202 | - return `${startYear}年 - ${startYear + 9}年`; | |
204 | + return `${startYear}${tYear} - ${startYear + 9}${tYear}`; | |
203 | 205 | } else { |
204 | 206 | const year = this.leftCurrentView === 'month' ? this.leftTableYear : this.leftYear; |
205 | 207 | if (!year) return ''; |
206 | - return `${year}年`; | |
208 | + return `${year}${tYear}`; | |
207 | 209 | } |
208 | 210 | }, |
209 | 211 | leftMonth () { |
210 | 212 | return this.date.getMonth(); |
211 | 213 | }, |
214 | + leftMonthLabel () { | |
215 | + const month = this.leftMonth + 1; | |
216 | + return this.t(`i.datepicker.month${month}`); | |
217 | + }, | |
212 | 218 | rightYear () { |
213 | 219 | return this.rightDate.getFullYear(); |
214 | 220 | }, |
... | ... | @@ -220,20 +226,25 @@ |
220 | 226 | } |
221 | 227 | }, |
222 | 228 | rightYearLabel () { |
229 | + const tYear = this.t('i.datepicker.year'); | |
223 | 230 | if (this.rightCurrentView === 'year') { |
224 | 231 | const year = this.rightTableYear; |
225 | 232 | if (!year) return ''; |
226 | 233 | const startYear = Math.floor(year / 10) * 10; |
227 | - return `${startYear}年 - ${startYear + 9}年`; | |
234 | + return `${startYear}${tYear} - ${startYear + 9}${tYear}`; | |
228 | 235 | } else { |
229 | 236 | const year = this.rightCurrentView === 'month' ? this.rightTableYear : this.rightYear; |
230 | 237 | if (!year) return ''; |
231 | - return `${year}年`; | |
238 | + return `${year}${tYear}`; | |
232 | 239 | } |
233 | 240 | }, |
234 | 241 | rightMonth () { |
235 | 242 | return this.rightDate.getMonth(); |
236 | 243 | }, |
244 | + rightMonthLabel () { | |
245 | + const month = this.rightMonth + 1; | |
246 | + return this.t(`i.datepicker.month${month}`); | |
247 | + }, | |
237 | 248 | rightDate () { |
238 | 249 | const newDate = new Date(this.date); |
239 | 250 | const month = newDate.getMonth(); | ... | ... |
src/components/date-picker/panel/date.vue
... | ... | @@ -21,7 +21,7 @@ |
21 | 21 | <span |
22 | 22 | :class="[datePrefixCls + '-header-label']" |
23 | 23 | @click="showMonthPicker" |
24 | - v-show="currentView === 'date'">{{ month + 1 + '月' }}</span> | |
24 | + v-show="currentView === 'date'">{{ monthLabel }}</span> | |
25 | 25 | <span |
26 | 26 | :class="iconBtnCls('next', '-double')" |
27 | 27 | @click="nextYear"><Icon type="ios-arrow-right"></Icon></span> |
... | ... | @@ -85,6 +85,7 @@ |
85 | 85 | import Confirm from '../base/confirm.vue'; |
86 | 86 | |
87 | 87 | import Mixin from './mixin'; |
88 | + import Locale from '../../../mixins/locale'; | |
88 | 89 | |
89 | 90 | import { initTimeDate } from '../util'; |
90 | 91 | |
... | ... | @@ -93,7 +94,7 @@ |
93 | 94 | |
94 | 95 | export default { |
95 | 96 | name: 'DatePicker', |
96 | - mixins: [Mixin], | |
97 | + mixins: [ Mixin, Locale ], | |
97 | 98 | components: { Icon, DateTable, YearTable, MonthTable, TimePicker, Confirm }, |
98 | 99 | data () { |
99 | 100 | return { |
... | ... | @@ -123,13 +124,18 @@ |
123 | 124 | ]; |
124 | 125 | }, |
125 | 126 | yearLabel () { |
127 | + const tYear = this.t('i.datepicker.year'); | |
126 | 128 | const year = this.year; |
127 | 129 | if (!year) return ''; |
128 | 130 | if (this.currentView === 'year') { |
129 | 131 | const startYear = Math.floor(year / 10) * 10; |
130 | - return `${startYear}年 - ${startYear + 9}年`; | |
132 | + return `${startYear}${tYear} - ${startYear + 9}${tYear}`; | |
131 | 133 | } |
132 | - return `${year}年`; | |
134 | + return `${year}${tYear}`; | |
135 | + }, | |
136 | + monthLabel () { | |
137 | + const month = this.month + 1; | |
138 | + return this.t(`i.datepicker.month${month}`); | |
133 | 139 | } |
134 | 140 | }, |
135 | 141 | watch: { | ... | ... |
src/components/date-picker/panel/time-range.vue
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | <div :class="[prefixCls + '-content', prefixCls + '-content-left']"> |
5 | 5 | <div :class="[timePrefixCls + '-header']"> |
6 | 6 | <template v-if="showDate">{{ visibleDate }}</template> |
7 | - <template v-else>开始时间</template> | |
7 | + <template v-else>{{ t('i.datepicker.startTime') }}</template> | |
8 | 8 | </div> |
9 | 9 | <time-spinner |
10 | 10 | v-ref:time-spinner |
... | ... | @@ -22,7 +22,7 @@ |
22 | 22 | <div :class="[prefixCls + '-content', prefixCls + '-content-right']"> |
23 | 23 | <div :class="[timePrefixCls + '-header']"> |
24 | 24 | <template v-if="showDate">{{ visibleDateEnd }}</template> |
25 | - <template v-else>结束时间</template> | |
25 | + <template v-else>{{ t('i.datepicker.endTime') }}</template> | |
26 | 26 | </div> |
27 | 27 | <time-spinner |
28 | 28 | v-ref:time-spinner-end |
... | ... | @@ -49,6 +49,7 @@ |
49 | 49 | import Confirm from '../base/confirm.vue'; |
50 | 50 | |
51 | 51 | import Mixin from './mixin'; |
52 | + import Locale from '../../../mixins/locale'; | |
52 | 53 | |
53 | 54 | import { initTimeDate, toDate, formatDate } from '../util'; |
54 | 55 | |
... | ... | @@ -56,7 +57,7 @@ |
56 | 57 | const timePrefixCls = 'ivu-time-picker'; |
57 | 58 | |
58 | 59 | export default { |
59 | - mixins: [Mixin], | |
60 | + mixins: [ Mixin, Locale ], | |
60 | 61 | components: { TimeSpinner, Confirm }, |
61 | 62 | data () { |
62 | 63 | return { |
... | ... | @@ -95,11 +96,17 @@ |
95 | 96 | }, |
96 | 97 | visibleDate () { |
97 | 98 | const date = this.date || initTimeDate(); |
98 | - return `${date.getFullYear()}年 ${date.getMonth() + 1}月`; | |
99 | + const tYear = this.t('i.datepicker.year'); | |
100 | + const month = date.getMonth() + 1; | |
101 | + const tMonth = this.t(`i.datepicker.month${month}`); | |
102 | + return `${date.getFullYear()}${tYear} ${tMonth}`; | |
99 | 103 | }, |
100 | 104 | visibleDateEnd () { |
101 | 105 | const date = this.dateEnd || initTimeDate(); |
102 | - return `${date.getFullYear()}年 ${date.getMonth() + 1}月`; | |
106 | + const tYear = this.t('i.datepicker.year'); | |
107 | + const month = date.getMonth() + 1; | |
108 | + const tMonth = this.t(`i.datepicker.month${month}`); | |
109 | + return `${date.getFullYear()}${tYear} ${tMonth}`; | |
103 | 110 | } |
104 | 111 | }, |
105 | 112 | watch: { | ... | ... |
src/components/date-picker/panel/time.vue
... | ... | @@ -28,6 +28,7 @@ |
28 | 28 | import Confirm from '../base/confirm.vue'; |
29 | 29 | |
30 | 30 | import Mixin from './mixin'; |
31 | + import Locale from '../../../mixins/locale'; | |
31 | 32 | |
32 | 33 | import { initTimeDate } from '../util'; |
33 | 34 | |
... | ... | @@ -35,7 +36,7 @@ |
35 | 36 | const timePrefixCls = 'ivu-time-picker'; |
36 | 37 | |
37 | 38 | export default { |
38 | - mixins: [Mixin], | |
39 | + mixins: [ Mixin, Locale ], | |
39 | 40 | components: { TimeSpinner, Confirm }, |
40 | 41 | data () { |
41 | 42 | return { |
... | ... | @@ -61,7 +62,10 @@ |
61 | 62 | }, |
62 | 63 | visibleDate () { |
63 | 64 | const date = this.date; |
64 | - return `${date.getFullYear()}年 ${date.getMonth() + 1}月`; | |
65 | + const month = date.getMonth() + 1; | |
66 | + const tYear = this.t('i.datepicker.year'); | |
67 | + const tMonth = this.t(`i.datepicker.month${month}`); | |
68 | + return `${date.getFullYear()}${tYear} ${tMonth}`; | |
65 | 69 | } |
66 | 70 | }, |
67 | 71 | watch: { | ... | ... |
src/components/table/table-head.vue
... | ... | @@ -29,15 +29,15 @@ |
29 | 29 | </checkbox-group> |
30 | 30 | </div> |
31 | 31 | <div :class="[prefixCls + '-filter-footer']"> |
32 | - <i-button type="text" size="small" :disabled="!column._filterChecked.length" @click="handleFilter($index)">筛选</i-button> | |
33 | - <i-button type="text" size="small" @click="handleReset($index)">重置</i-button> | |
32 | + <i-button type="text" size="small" :disabled="!column._filterChecked.length" @click="handleFilter($index)">{{ t('i.table.confirmFilter') }}</i-button> | |
33 | + <i-button type="text" size="small" @click="handleReset($index)">{{ t('i.table.resetFilter') }}</i-button> | |
34 | 34 | </div> |
35 | 35 | </div> |
36 | 36 | <div slot="content" :class="[prefixCls + '-filter-list']" v-else> |
37 | 37 | <ul :class="[prefixCls + '-filter-list-single']"> |
38 | 38 | <li |
39 | 39 | :class="itemAllClasses(column)" |
40 | - @click="handleReset($index)">全部</li> | |
40 | + @click="handleReset($index)">{{ t('i.table.clearFilter') }}</li> | |
41 | 41 | <li |
42 | 42 | :class="itemClasses(column, item)" |
43 | 43 | v-for="item in column.filters" |
... | ... | @@ -58,9 +58,10 @@ |
58 | 58 | import Poptip from '../poptip/poptip.vue'; |
59 | 59 | import iButton from '../button/button.vue'; |
60 | 60 | import Mixin from './mixin'; |
61 | + import Locale from '../../mixins/locale'; | |
61 | 62 | |
62 | 63 | export default { |
63 | - mixins: [ Mixin ], | |
64 | + mixins: [ Mixin, Locale ], | |
64 | 65 | components: { CheckboxGroup, Checkbox, Poptip, iButton }, |
65 | 66 | props: { |
66 | 67 | prefixCls: String, | ... | ... |
src/components/table/table.vue
... | ... | @@ -86,6 +86,7 @@ |
86 | 86 | import tableHead from './table-head.vue'; |
87 | 87 | import tableBody from './table-body.vue'; |
88 | 88 | import { oneOf, getStyle, deepCopy, getScrollBarSize } from '../../utils/assist'; |
89 | + import { t } from '../../locale'; | |
89 | 90 | import Csv from '../../utils/csv'; |
90 | 91 | import ExportCsv from './export-csv'; |
91 | 92 | const prefixCls = 'ivu-table'; |
... | ... | @@ -143,11 +144,15 @@ |
143 | 144 | }, |
144 | 145 | noDataText: { |
145 | 146 | type: String, |
146 | - default: '暂无数据' | |
147 | + default () { | |
148 | + return t('i.table.noDataText'); | |
149 | + } | |
147 | 150 | }, |
148 | 151 | noFilteredDataText: { |
149 | 152 | type: String, |
150 | - default: '暂无筛选结果' | |
153 | + default () { | |
154 | + return t('i.table.noFilteredDataText'); | |
155 | + } | |
151 | 156 | } |
152 | 157 | }, |
153 | 158 | data () { | ... | ... |
src/locale/lang/en-US.js
... | ... | @@ -3,6 +3,58 @@ export default { |
3 | 3 | select: { |
4 | 4 | placeholder: 'Select', |
5 | 5 | noMatch: 'No matching data' |
6 | + }, | |
7 | + table: { | |
8 | + noDataText: 'No Data', | |
9 | + noFilteredDataText: 'No filter data', | |
10 | + confirmFilter: 'Confirm', | |
11 | + resetFilter: 'Reset', | |
12 | + clearFilter: 'All' | |
13 | + }, | |
14 | + datepicker: { | |
15 | + selectDate: 'Select date', | |
16 | + selectTime: 'Select time', | |
17 | + startTime: 'Start Time', | |
18 | + endTime: 'End Time', | |
19 | + clear: 'Clear', | |
20 | + ok: 'Ok', | |
21 | + month: '', | |
22 | + month1: 'January', | |
23 | + month2: 'February', | |
24 | + month3: 'March', | |
25 | + month4: 'April', | |
26 | + month5: 'May', | |
27 | + month6: 'June', | |
28 | + month7: 'July', | |
29 | + month8: 'August', | |
30 | + month9: 'September', | |
31 | + month10: 'October', | |
32 | + month11: 'November', | |
33 | + month12: 'December', | |
34 | + year: '', | |
35 | + weeks: { | |
36 | + sun: 'Sun', | |
37 | + mon: 'Mon', | |
38 | + tue: 'Tue', | |
39 | + wed: 'Wed', | |
40 | + thu: 'Thu', | |
41 | + fri: 'Fri', | |
42 | + sat: 'Sat' | |
43 | + }, | |
44 | + months: { | |
45 | + m1: 'Jan', | |
46 | + m2: 'Feb', | |
47 | + m3: 'Mar', | |
48 | + m4: 'Apr', | |
49 | + m5: 'May', | |
50 | + m6: 'Jun', | |
51 | + m7: 'Jul', | |
52 | + m8: 'Aug', | |
53 | + m9: 'Sep', | |
54 | + m10: 'Oct', | |
55 | + m11: 'Nov', | |
56 | + m12: 'Dec' | |
57 | + } | |
6 | 58 | } |
7 | 59 | } |
8 | 60 | }; |
9 | 61 | \ No newline at end of file | ... | ... |
src/locale/lang/zh-CN.js
... | ... | @@ -3,6 +3,58 @@ export default { |
3 | 3 | select: { |
4 | 4 | placeholder: '请选择', |
5 | 5 | noMatch: '无匹配数据' |
6 | + }, | |
7 | + table: { | |
8 | + noDataText: '暂无数据', | |
9 | + noFilteredDataText: '暂无筛选结果', | |
10 | + confirmFilter: '筛选', | |
11 | + resetFilter: '重置', | |
12 | + clearFilter: '全部' | |
13 | + }, | |
14 | + datepicker: { | |
15 | + selectDate: '选择日期', | |
16 | + selectTime: '选择时间', | |
17 | + startTime: '开始时间', | |
18 | + endTime: '结束时间', | |
19 | + clear: '清空', | |
20 | + ok: '确定', | |
21 | + month: '月', | |
22 | + month1: '1 月', | |
23 | + month2: '2 月', | |
24 | + month3: '3 月', | |
25 | + month4: '4 月', | |
26 | + month5: '5 月', | |
27 | + month6: '6 月', | |
28 | + month7: '7 月', | |
29 | + month8: '8 月', | |
30 | + month9: '9 月', | |
31 | + month10: '10 月', | |
32 | + month11: '11 月', | |
33 | + month12: '12 月', | |
34 | + year: '年', | |
35 | + weeks: { | |
36 | + sun: '日', | |
37 | + mon: '一', | |
38 | + tue: '二', | |
39 | + wed: '三', | |
40 | + thu: '四', | |
41 | + fri: '五', | |
42 | + sat: '六' | |
43 | + }, | |
44 | + months: { | |
45 | + m1: '1月', | |
46 | + m2: '2月', | |
47 | + m3: '3月', | |
48 | + m4: '4月', | |
49 | + m5: '5月', | |
50 | + m6: '6月', | |
51 | + m7: '7月', | |
52 | + m8: '8月', | |
53 | + m9: '9月', | |
54 | + m10: '10月', | |
55 | + m11: '11月', | |
56 | + m12: '12月' | |
57 | + } | |
6 | 58 | } |
7 | 59 | } |
8 | 60 | }; |
9 | 61 | \ No newline at end of file | ... | ... |
src/locale/lang/zh-TW.js
... | ... | @@ -3,6 +3,58 @@ export default { |
3 | 3 | select: { |
4 | 4 | placeholder: '請選擇', |
5 | 5 | noMatch: '無匹配數據' |
6 | + }, | |
7 | + table: { | |
8 | + noDataText: '暫無數據', | |
9 | + noFilteredDataText: '暫無篩選結果', | |
10 | + confirmFilter: '篩選', | |
11 | + resetFilter: '重置', | |
12 | + clearFilter: '全部' | |
13 | + }, | |
14 | + datepicker: { | |
15 | + selectDate: '選擇日期', | |
16 | + selectTime: '選擇時間', | |
17 | + startTime: '開始時間', | |
18 | + endTime: '結束時間', | |
19 | + clear: '清空', | |
20 | + ok: '確定', | |
21 | + month: '月', | |
22 | + month1: '1 月', | |
23 | + month2: '2 月', | |
24 | + month3: '3 月', | |
25 | + month4: '4 月', | |
26 | + month5: '5 月', | |
27 | + month6: '6 月', | |
28 | + month7: '7 月', | |
29 | + month8: '8 月', | |
30 | + month9: '9 月', | |
31 | + month10: '10 月', | |
32 | + month11: '11 月', | |
33 | + month12: '12 月', | |
34 | + year: '年', | |
35 | + weeks: { | |
36 | + sun: '日', | |
37 | + mon: '一', | |
38 | + tue: '二', | |
39 | + wed: '三', | |
40 | + thu: '四', | |
41 | + fri: '五', | |
42 | + sat: '六' | |
43 | + }, | |
44 | + months: { | |
45 | + m1: '1月', | |
46 | + m2: '2月', | |
47 | + m3: '3月', | |
48 | + m4: '4月', | |
49 | + m5: '5月', | |
50 | + m6: '6月', | |
51 | + m7: '7月', | |
52 | + m8: '8月', | |
53 | + m9: '9月', | |
54 | + m10: '10月', | |
55 | + m11: '11月', | |
56 | + m12: '12月' | |
57 | + } | |
6 | 58 | } |
7 | 59 | } |
8 | 60 | }; |
9 | 61 | \ No newline at end of file | ... | ... |