diff --git a/src/consts/datetime.js b/src/consts/datetime.js index e93fdd48..c10a8b7f 100644 --- a/src/consts/datetime.js +++ b/src/consts/datetime.js @@ -29,6 +29,16 @@ const allWeekDays = { } }; +const allWeekDaysArray = [ + allWeekDays.Sunday, + allWeekDays.Monday, + allWeekDays.Tuesday, + allWeekDays.Wednesday, + allWeekDays.Thursday, + allWeekDays.Friday, + allWeekDays.Saturday +]; + const allDateRanges = { All: { type: 0, @@ -84,6 +94,7 @@ const defaultFirstDayOfWeek = allWeekDays.Sunday.type; export default { allWeekDays: allWeekDays, + allWeekDaysArray: allWeekDaysArray, allDateRanges: allDateRanges, defaultFirstDayOfWeek: defaultFirstDayOfWeek }; diff --git a/src/lib/utils.js b/src/lib/utils.js index dcc5a2f0..236a3ea8 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -151,8 +151,9 @@ function getDay(date) { return moment(date).date(); } -function getDayOfWeek(date) { - return moment(date).format('dddd'); +function getDayOfWeekName(date) { + const dayOfWeek = moment(date).days(); + return dateTimeConstants.allWeekDaysArray[dayOfWeek].name; } function getHour(date) { @@ -658,7 +659,7 @@ export default { getMonth, getYearAndMonth, getDay, - getDayOfWeek, + getDayOfWeekName, getHour, getMinute, getSecond, diff --git a/src/locales/en.js b/src/locales/en.js index d2649da1..9dd78e78 100644 --- a/src/locales/en.js +++ b/src/locales/en.js @@ -8,7 +8,7 @@ export default { 'currency': 'USD', 'firstDayOfWeek': 'Sunday' }, - 'format': { + 'format': { // The type of date or time format is moment format, ref: https://momentjs.com/docs/#/displaying/ 'date': { 'long': 'M/D/YYYY', 'short': 'M/D/YYYY' @@ -36,37 +36,44 @@ export default { 'symbol': '{symbol} {amount}' } }, - 'input-format': { + 'input-format': { // The type of date or time format is framework7 format, ref: https://v5.framework7.io/docs/calendar.html#calendar-parameters 'datetime': { 'long': 'm/d/yyyy hh::mm A', }, }, 'datetime': { 'Monday': { + 'min': 'Mo', 'short': 'Mon', 'long': 'Monday' }, 'Tuesday': { + 'min': 'Tu', 'short': 'Tue', 'long': 'Tuesday' }, 'Wednesday': { + 'min': 'We', 'short': 'Wed', 'long': 'Wednesday' }, 'Thursday': { + 'min': 'Th', 'short': 'Thu', 'long': 'Thursday' }, 'Friday': { + 'min': 'Fr', 'short': 'Fri', 'long': 'Friday' }, 'Saturday': { + 'min': 'Sa', 'short': 'Sat', 'long': 'Saturday' }, 'Sunday': { + 'min': 'Su', 'short': 'Sun', 'long': 'Sunday' }, diff --git a/src/locales/zh_Hans.js b/src/locales/zh_Hans.js index 9cb1b9de..89a0d153 100644 --- a/src/locales/zh_Hans.js +++ b/src/locales/zh_Hans.js @@ -43,30 +43,37 @@ export default { }, 'datetime': { 'Monday': { + 'min': '一', 'short': '周一', 'long': '星期一' }, 'Tuesday': { + 'min': '二', 'short': '周二', 'long': '星期二' }, 'Wednesday': { + 'min': '三', 'short': '周三', 'long': '星期三' }, 'Thursday': { + 'min': '四', 'short': '周四', 'long': '星期四' }, 'Friday': { + 'min': '五', 'short': '周五', 'long': '星期五' }, 'Saturday': { + 'min': '六', 'short': '周六', 'long': '星期六' }, 'Sunday': { + 'min': '日', 'short': '周日', 'long': '星期日' }, diff --git a/src/mobile-main.js b/src/mobile-main.js index c084f201..1aaa2bb3 100644 --- a/src/mobile-main.js +++ b/src/mobile-main.js @@ -265,6 +265,17 @@ Vue.prototype.$locale = { i18n.t('datetime.Saturday.short') ]; }, + getAllMinWeekdayNames: function () { + return [ + i18n.t('datetime.Sunday.min'), + i18n.t('datetime.Monday.min'), + i18n.t('datetime.Tuesday.min'), + i18n.t('datetime.Wednesday.min'), + i18n.t('datetime.Thursday.min'), + i18n.t('datetime.Friday.min'), + i18n.t('datetime.Saturday.min') + ]; + }, getInputTimeIntlDateTimeFormatOptions: function () { const hourMinuteFormat = i18n.t('input-format.datetime.long'); const is24HourFormat = hourMinuteFormat.indexOf('H') > 0; @@ -284,7 +295,13 @@ Vue.prototype.$locale = { } i18n.locale = locale; - moment.locale(locale); + moment.locale(locale, { + months : this.getAllLongMonthNames(), + monthsShort : this.getAllShortMonthNames(), + weekdays : this.getAllLongWeekdayNames(), + weekdaysShort : this.getAllShortWeekdayNames(), + weekdaysMin : this.getAllMinWeekdayNames(), + }); services.setLocale(locale); document.querySelector('html').setAttribute('lang', locale); diff --git a/src/store/transaction.js b/src/store/transaction.js index 06216107..f9b8647d 100644 --- a/src/store/transaction.js +++ b/src/store/transaction.js @@ -287,7 +287,7 @@ export function fillTransactionObject(state, transaction, currentUtcOffset) { const transactionTime = utils.parseDateFromUnixTime(transaction.time, transaction.utcOffset, currentUtcOffset); transaction.day = utils.getDay(transactionTime); - transaction.dayOfWeek = utils.getDayOfWeek(transactionTime); + transaction.dayOfWeek = utils.getDayOfWeekName(transactionTime); if (transaction.sourceAccountId) { transaction.sourceAccount = state.allAccountsMap[transaction.sourceAccountId]; diff --git a/src/views/mobile/Home.vue b/src/views/mobile/Home.vue index 3d357b6f..3764f806 100644 --- a/src/views/mobile/Home.vue +++ b/src/views/mobile/Home.vue @@ -13,7 +13,7 @@ Expense - {{ dateRange.thisMonth.startTime | moment('MMMM') | format('datetime.#{value}.long') | localized }} + {{ dateRange.thisMonth.startTime | moment('MMMM') }} · {{ $t('Expense') }}