mirror of
https://github.com/mayswind/ezbookkeeping
synced 2026-04-21 13:37:43 +00:00
support setting the last 1 to 3 days of the month to scheduled transaction frequency
This commit is contained in:
parent
0222f61da6
commit
d7151bc7ab
26 changed files with 148 additions and 32 deletions
|
|
@ -727,6 +727,16 @@ func (s *TransactionService) CreateScheduledTransactions(c core.Context, current
|
|||
continue
|
||||
}
|
||||
|
||||
if template.ScheduledFrequencyType == models.TRANSACTION_SCHEDULE_FREQUENCY_TYPE_MONTHLY {
|
||||
maxDayInMonth := utils.GetMaxDayOfMonth(currentTime.Year(), currentTime.Month())
|
||||
|
||||
for i := 0; i < len(frequencyValues); i++ {
|
||||
if frequencyValues[i] < 0 {
|
||||
frequencyValues[i] = int64(maxDayInMonth) + frequencyValues[i] + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
frequencyValueSet := utils.ToSet(frequencyValues)
|
||||
templateTimeZone := time.FixedZone("Template Timezone", int(template.ScheduledTimezoneUtcOffset)*60)
|
||||
transactionUnixTime := todayFirstUnixTimeInUTC + int64(template.ScheduledAt)*60
|
||||
|
|
|
|||
|
|
@ -286,6 +286,12 @@ func IsUnixTimeEqualsYearAndMonth(unixTime int64, timezone *time.Location, year
|
|||
return date.Year() == int(year) && int(date.Month()) == int(month)
|
||||
}
|
||||
|
||||
// GetMaxDayOfMonth returns the maximum day of the month for the specified year and month
|
||||
func GetMaxDayOfMonth(year int, month time.Month) int {
|
||||
t := time.Date(year, month+1, 0, 0, 0, 0, 0, time.UTC)
|
||||
return t.Day()
|
||||
}
|
||||
|
||||
// GetTimezoneOffsetMinutes returns offset minutes according specified timezone
|
||||
func GetTimezoneOffsetMinutes(unixTime int64, timezone *time.Location) int16 {
|
||||
_, tzOffset := parseFromUnixTime(unixTime).In(timezone).Zone()
|
||||
|
|
|
|||
|
|
@ -333,6 +333,32 @@ func TestIsUnixTimeEqualsYearAndMonth(t *testing.T) {
|
|||
assert.Equal(t, false, actualValue)
|
||||
}
|
||||
|
||||
func TestGetMaxDayOfMonth(t *testing.T) {
|
||||
expectedValue := 31
|
||||
actualValue := GetMaxDayOfMonth(2023, 1)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = 28
|
||||
actualValue = GetMaxDayOfMonth(2023, 2)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = 29
|
||||
actualValue = GetMaxDayOfMonth(2024, 2)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = 30
|
||||
actualValue = GetMaxDayOfMonth(2023, 4)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = 31
|
||||
actualValue = GetMaxDayOfMonth(2023, 12)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = 28
|
||||
actualValue = GetMaxDayOfMonth(2100, 2)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetTimezoneOffsetMinutes_FixedTimezone(t *testing.T) {
|
||||
timezone := time.FixedZone("Test Timezone", 120*60)
|
||||
expectedValue := int16(120)
|
||||
|
|
|
|||
|
|
@ -15,30 +15,18 @@ export interface CommonScheduleFrequencySelectionProps {
|
|||
label?: string;
|
||||
}
|
||||
|
||||
export interface AvailableMonthDay {
|
||||
day: number;
|
||||
displayName: string;
|
||||
}
|
||||
|
||||
export function useScheduleFrequencySelectionBase() {
|
||||
const { getAllWeekDays, getAllTransactionScheduledFrequencyTypes, getMonthdayShortName } = useI18n();
|
||||
const {
|
||||
getAllWeekDays,
|
||||
getAvailableMonthDays,
|
||||
getAllTransactionScheduledFrequencyTypes
|
||||
} = useI18n();
|
||||
const userStore = useUserStore();
|
||||
|
||||
const allTransactionScheduledFrequencyTypes = computed<TypeAndDisplayName[]>(() => getAllTransactionScheduledFrequencyTypes());
|
||||
const allWeekDays = computed<TypeAndDisplayName[]>(() => getAllWeekDays(userStore.currentUserFirstDayOfWeek));
|
||||
|
||||
const allAvailableMonthDays = computed<AvailableMonthDay[]>(() => {
|
||||
const allAvailableDays = [];
|
||||
|
||||
for (let i = 1; i <= 28; i++) {
|
||||
allAvailableDays.push({
|
||||
day: i,
|
||||
displayName: getMonthdayShortName(i),
|
||||
});
|
||||
}
|
||||
|
||||
return allAvailableDays;
|
||||
});
|
||||
const allAvailableMonthDays = computed<TypeAndDisplayName[]>(() => getAvailableMonthDays(28, 3));
|
||||
|
||||
function getFrequencyValues(value: string): number[] {
|
||||
const values = value.split(',');
|
||||
|
|
|
|||
|
|
@ -41,12 +41,12 @@
|
|||
</v-list>
|
||||
<v-list select-strategy="classic" v-model:selected="frequencyValue"
|
||||
v-else-if="frequencyType === ScheduledTemplateFrequencyType.Monthly.type">
|
||||
<v-list-item :key="monthDay.day" :value="monthDay.day" :title="monthDay.displayName"
|
||||
:class="{ 'frequency-value-selected v-list-item--active text-primary': isFrequencyValueSelected(monthDay.day) }"
|
||||
<v-list-item :key="monthDay.type" :value="monthDay.type" :title="monthDay.displayName"
|
||||
:class="{ 'frequency-value-selected v-list-item--active text-primary': isFrequencyValueSelected(monthDay.type) }"
|
||||
v-for="monthDay in allAvailableMonthDays">
|
||||
<template #prepend="{ isActive }">
|
||||
<v-checkbox density="compact" class="me-1" :model-value="isActive"
|
||||
@update:model-value="updateFrequencyValue(monthDay.day, $event)"></v-checkbox>
|
||||
@update:model-value="updateFrequencyValue(monthDay.type, $event)"></v-checkbox>
|
||||
</template>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
|
|
|
|||
|
|
@ -48,10 +48,10 @@
|
|||
<f7-list dividers class="schedule-frequency-value-list no-margin-vertical"
|
||||
v-if="currentFrequencyType === ScheduledTemplateFrequencyType.Monthly.type">
|
||||
<f7-list-item checkbox
|
||||
:class="isChecked(monthDay.day) ? 'list-item-selected' : ''"
|
||||
:key="monthDay.day"
|
||||
:value="monthDay.day"
|
||||
:checked="isChecked(monthDay.day)"
|
||||
:class="isChecked(monthDay.type) ? 'list-item-selected' : ''"
|
||||
:key="monthDay.type"
|
||||
:value="monthDay.type"
|
||||
:checked="isChecked(monthDay.type)"
|
||||
:title="monthDay.displayName"
|
||||
v-for="monthDay in allAvailableMonthDays"
|
||||
@change="changeFrequencyValue">
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} Stunde(n) und {minutes} Minute(n) vor der Standardzeitzone",
|
||||
"monthDay": "{ordinal} Tag",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} Tage",
|
||||
"everyMultiDaysOfWeek": "Jeden {days}",
|
||||
"everyMultiDaysOfMonth": "Jeden {days} des Monats",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Vorheriger Abrechnungszeitraum",
|
||||
"Current Billing Cycle": "Aktueller Abrechnungszeitraum",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Benutzerdefiniertes Datum",
|
||||
"Start Date": "Startdatum",
|
||||
"End Date": "Enddatum",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} hour(s) and {minutes} minutes ahead of default timezone",
|
||||
"monthDay": "{ordinal} day",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} days",
|
||||
"everyMultiDaysOfWeek": "Every {days}",
|
||||
"everyMultiDaysOfMonth": "Every {days} of month",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Previous Billing Cycle",
|
||||
"Current Billing Cycle": "Current Billing Cycle",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Custom Date",
|
||||
"Start Date": "Start Date",
|
||||
"End Date": "End Date",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} hora(s) y {minutes} minutos antes de la zona horaria predeterminada",
|
||||
"monthDay": "día {ordinal}",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} días",
|
||||
"everyMultiDaysOfWeek": "Cada {days}",
|
||||
"everyMultiDaysOfMonth": "Cada {days} del mes",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Ciclo de facturación anterior",
|
||||
"Current Billing Cycle": "Ciclo de facturación actual",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Fecha personalizada",
|
||||
"Start Date": "Fecha de Inicio",
|
||||
"End Date": "Fecha de Finalización",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} heure(s) et {minutes} minutes d'avance sur le fuseau horaire par défaut",
|
||||
"monthDay": "{ordinal}e jour",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} jours",
|
||||
"everyMultiDaysOfWeek": "Tous les {days}",
|
||||
"everyMultiDaysOfMonth": "Tous les {days} du mois",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Cycle de facturation précédent",
|
||||
"Current Billing Cycle": "Cycle de facturation actuel",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Date personnalisée",
|
||||
"Start Date": "Date de début",
|
||||
"End Date": "Date de fin",
|
||||
|
|
|
|||
|
|
@ -1693,16 +1693,45 @@ export function useI18n() {
|
|||
return '';
|
||||
}
|
||||
|
||||
monthDays.sort(function (d1, d2) {
|
||||
if (d1 >= 0 && d2 >= 0) {
|
||||
return d1 - d2;
|
||||
} else if (d1 < 0 && d2 < 0) {
|
||||
return d1 - d2;
|
||||
} else if (d1 >= 0 && d2 < 0) {
|
||||
return -1; // make positive month day come first
|
||||
} else { // if (d1 < 0 && d2 >= 0)
|
||||
return 1; // make positive month day come first
|
||||
}
|
||||
});
|
||||
|
||||
if (monthDays.length === 1) {
|
||||
return t('format.misc.monthDay', {
|
||||
ordinal: getMonthdayOrdinal(monthDays[0] as number)
|
||||
});
|
||||
const monthDay = monthDays[0] as number;
|
||||
|
||||
if (monthDay >= 0) {
|
||||
return t('format.misc.monthDay', {
|
||||
ordinal: getMonthdayOrdinal(monthDay)
|
||||
});
|
||||
} else if (monthDay === -1) {
|
||||
return t('last day');
|
||||
} else {
|
||||
return t('format.misc.lastMonthDayInLowercase', {
|
||||
ordinal: getMonthdayOrdinal(-monthDay)
|
||||
});
|
||||
}
|
||||
} else {
|
||||
return t('format.misc.monthDays', {
|
||||
multiMonthDays: joinMultiText(monthDays.map(monthDay =>
|
||||
t('format.misc.eachMonthDayInMonthDays', {
|
||||
ordinal: getMonthdayOrdinal(monthDay)
|
||||
})))
|
||||
multiMonthDays: joinMultiText(monthDays.map(monthDay => {
|
||||
if (monthDay >= 0) {
|
||||
return t('format.misc.eachMonthDayInMonthDays', {
|
||||
ordinal: getMonthdayOrdinal(monthDay)
|
||||
});
|
||||
} else {
|
||||
return t('format.misc.eachLastMonthDayInMonthDays', {
|
||||
ordinal: getMonthdayOrdinal(-monthDay)
|
||||
});
|
||||
}
|
||||
}))
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "Avanti di {hours} ore e {minutes} minuti rispetto al fuso orario standard",
|
||||
"monthDay": "{ordinal} giorno",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} giorni",
|
||||
"everyMultiDaysOfWeek": "Ogni {days}",
|
||||
"everyMultiDaysOfMonth": "Ogni {days} del mese",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Ciclo di fatturazione precedente",
|
||||
"Current Billing Cycle": "Ciclo di fatturazione corrente",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Data personalizzata",
|
||||
"Start Date": "Data di inizio",
|
||||
"End Date": "Data di fine",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "デフォルトのタイムゾーンから{hours}時間{minutes}分進んでいます",
|
||||
"monthDay": "{ordinal}日",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays}日間",
|
||||
"everyMultiDaysOfWeek": "毎{days}",
|
||||
"everyMultiDaysOfMonth": "毎月{days}日",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "以前の請求サイクル",
|
||||
"Current Billing Cycle": "現在の請求サイクル",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "カスタム日付",
|
||||
"Start Date": "開始日",
|
||||
"End Date": "終了日",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "ಡೀಫಾಲ್ಟ್ ಸಮಯ ವಲಯಕ್ಕಿಂತ {hours} ಗಂಟೆ ಹಾಗೂ {minutes} ನಿಮಿಷಗಳು ಮುಂದೆ",
|
||||
"monthDay": "{ordinal} ದಿನ",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} ದಿನಗಳು",
|
||||
"everyMultiDaysOfWeek": "ಪ್ರತಿ {days}",
|
||||
"everyMultiDaysOfMonth": "ಪ್ರತಿ {days} ತಿಂಗಳಲ್ಲಿ",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "ಹಿಂದಿನ ಬಿಲ್ಲಿಂಗ್ ಚಕ್ರ",
|
||||
"Current Billing Cycle": "ಪ್ರಸ್ತುತ ಬಿಲ್ಲಿಂಗ್ ಚಕ್ರ",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "ಕಸ್ಟಮ್ ದಿನಾಂಕ",
|
||||
"Start Date": "ಪ್ರಾರಂಭ ದಿನಾಂಕ",
|
||||
"End Date": "ಅಂತ್ಯ ದಿನಾಂಕ",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "기본 시간대보다 {hours}시간 {minutes}분 빠릅니다",
|
||||
"monthDay": "{ordinal}일",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays}일",
|
||||
"everyMultiDaysOfWeek": "매주 {days}",
|
||||
"everyMultiDaysOfMonth": "매월 {days}일",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "이전 청구 주기",
|
||||
"Current Billing Cycle": "현재 청구 주기",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "사용자 지정 날짜",
|
||||
"Start Date": "시작 날짜",
|
||||
"End Date": "종료 날짜",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} uur en {minutes} minuten voor op standaardtijdzone",
|
||||
"monthDay": "{ordinal} dag",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} dagen",
|
||||
"everyMultiDaysOfWeek": "Elke {days}",
|
||||
"everyMultiDaysOfMonth": "Elke {days} van de maand",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Vorige factureringsperiode",
|
||||
"Current Billing Cycle": "Huidige factureringsperiode",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Aangepaste datum",
|
||||
"Start Date": "Begindatum",
|
||||
"End Date": "Einddatum",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} hora(s) e {minutes} minutos à frente do fuso horário padrão",
|
||||
"monthDay": "{ordinal} dia",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} dias",
|
||||
"everyMultiDaysOfWeek": "A cada {days}",
|
||||
"everyMultiDaysOfMonth": "Todo dia {days}",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Ciclo de Cobrança Anterior",
|
||||
"Current Billing Cycle": "Ciclo de Cobrança Atual",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Data Personalizada",
|
||||
"Start Date": "Data de Início",
|
||||
"End Date": "Data de Término",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} час(ов) и {minutes} минут впереди часового пояса по умолчанию",
|
||||
"monthDay": "{ordinal} день",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} дней",
|
||||
"everyMultiDaysOfWeek": "Каждые {days}",
|
||||
"everyMultiDaysOfMonth": "Каждое {days} число месяца",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Предыдущий расчетный период",
|
||||
"Current Billing Cycle": "Текущий расчетный период",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Выбрать дату",
|
||||
"Start Date": "Дата начала",
|
||||
"End Date": "Дата конца",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} ura(ur) in {minutes} minut po privzetem časovnem pasu",
|
||||
"monthDay": "{ordinal} dan",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} dni",
|
||||
"everyMultiDaysOfWeek": "Vsak {days}",
|
||||
"everyMultiDaysOfMonth": "Vsak {days} v mesecu",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Prejšnje obračunsko obdobje",
|
||||
"Current Billing Cycle": "Trenutno obračunsko obdobje",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Datum po meri",
|
||||
"Start Date": "Datum začetka",
|
||||
"End Date": "Datum konca",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "இயல்பு நேர மண்டலத்தை விட {hours} மணி நேரம் {minutes} நிமிடங்கள் முன்னால்",
|
||||
"monthDay": "{ordinal} நாள்",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} நாட்கள்",
|
||||
"everyMultiDaysOfWeek": "ஒவ்வொரு {days}",
|
||||
"everyMultiDaysOfMonth": "மாதத்தில் ஒவ்வொரு {days}",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "முந்தைய பில்லிங் சுழற்சி",
|
||||
"Current Billing Cycle": "தற்போதைய பில்லிங் சுழற்சி",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "தனிப்பயன் தேதி",
|
||||
"Start Date": "தொடக்கம் தேதி",
|
||||
"End Date": "முடிவு தேதி",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "เร็วกว่าเขตเวลาเริ่มต้น {hours} ชั่วโมง {minutes} นาที",
|
||||
"monthDay": "วันที่ {ordinal}",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} วัน",
|
||||
"everyMultiDaysOfWeek": "ทุกๆ {days}",
|
||||
"everyMultiDaysOfMonth": "ทุกๆ {days} ของเดือน",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "รอบบิลก่อนหน้า",
|
||||
"Current Billing Cycle": "รอบบิลปัจจุบัน",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "วันที่กำหนดเอง",
|
||||
"Start Date": "วันที่เริ่มต้น",
|
||||
"End Date": "วันที่สิ้นสุด",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "Varsayılan saat diliminin {hours} saat {minutes} dakika ilerisinde",
|
||||
"monthDay": "{ordinal} gün",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} gün",
|
||||
"everyMultiDaysOfWeek": "Her {days}",
|
||||
"everyMultiDaysOfMonth": "Ayın her {days} günü",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Önceki Fatura Dönemi",
|
||||
"Current Billing Cycle": "Mevcut Fatura Dönemi",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Özel Tarih",
|
||||
"Start Date": "Başlangıç Tarihi",
|
||||
"End Date": "Bitiş Tarihi",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} год і {minutes} хв попереду часового поясу за замовчуванням",
|
||||
"monthDay": "{ordinal} день",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} днів",
|
||||
"everyMultiDaysOfWeek": "Кожні {days}",
|
||||
"everyMultiDaysOfMonth": "Кожного {days} числа місяця",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Попередній розрахунковий період",
|
||||
"Current Billing Cycle": "Поточний розрахунковий період",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Обрати дату",
|
||||
"Start Date": "Дата початку",
|
||||
"End Date": "Дата завершення",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "{hours} giờ và {minutes} phút trước múi giờ mặc định",
|
||||
"monthDay": "Ngày {ordinal}",
|
||||
"lastMonthDay": "Last {ordinal} day",
|
||||
"lastMonthDayInLowercase": "last {ordinal} day",
|
||||
"eachMonthDayInMonthDays": "{ordinal}",
|
||||
"eachLastMonthDayInMonthDays": "last {ordinal}",
|
||||
"monthDays": "{multiMonthDays} ngày",
|
||||
"everyMultiDaysOfWeek": "Mỗi {days}",
|
||||
"everyMultiDaysOfMonth": "Mỗi ngày {days} trong tháng",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "Previous Billing Cycle",
|
||||
"Current Billing Cycle": "Current Billing Cycle",
|
||||
"Last day": "Last day",
|
||||
"last day": "last day",
|
||||
"Custom Date": "Ngày tùy chỉnh",
|
||||
"Start Date": "Start Date",
|
||||
"End Date": "End Date",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "比默认时区早{hours}小时{minutes}分",
|
||||
"monthDay": "{ordinal}日",
|
||||
"lastMonthDay": "倒数第{ordinal}日",
|
||||
"lastMonthDayInLowercase": "倒数第{ordinal}日",
|
||||
"eachMonthDayInMonthDays": "{ordinal}日",
|
||||
"eachLastMonthDayInMonthDays": "倒数第{ordinal}日",
|
||||
"monthDays": "{multiMonthDays}",
|
||||
"everyMultiDaysOfWeek": "每{days}",
|
||||
"everyMultiDaysOfMonth": "每月{days}",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "上个账单周期",
|
||||
"Current Billing Cycle": "当前账单周期",
|
||||
"Last day": "倒数第1日",
|
||||
"last day": "倒数第1日",
|
||||
"Custom Date": "自定义日期",
|
||||
"Start Date": "开始日期",
|
||||
"End Date": "结束日期",
|
||||
|
|
|
|||
|
|
@ -120,7 +120,9 @@
|
|||
"hoursMinutesAheadOfDefaultTimezone": "比預設時區早{hours}小時{minutes}分",
|
||||
"monthDay": "{ordinal}日",
|
||||
"lastMonthDay": "倒數第{ordinal}日",
|
||||
"lastMonthDayInLowercase": "倒數第{ordinal}日",
|
||||
"eachMonthDayInMonthDays": "{ordinal}日",
|
||||
"eachLastMonthDayInMonthDays": "倒數第{ordinal}日",
|
||||
"monthDays": "{multiMonthDays}",
|
||||
"everyMultiDaysOfWeek": "每{days}",
|
||||
"everyMultiDaysOfMonth": "每月{days}",
|
||||
|
|
@ -1542,6 +1544,7 @@
|
|||
"Previous Billing Cycle": "上個帳單週期",
|
||||
"Current Billing Cycle": "當前帳單週期",
|
||||
"Last day": "倒數第1日",
|
||||
"last day": "倒數第1日",
|
||||
"Custom Date": "自訂日期",
|
||||
"Start Date": "開始日期",
|
||||
"End Date": "結束日期",
|
||||
|
|
|
|||
Loading…
Reference in a new issue