update text content

This commit is contained in:
MaysWind
2024-04-06 13:07:16 +08:00
parent cb57b216d0
commit 4b68ccf678
70 changed files with 557 additions and 563 deletions
+1 -1
View File
@@ -112,7 +112,7 @@
:class="{ 'd-none': loading, 'hover-display': !loading }"
v-if="exchangeRate.currencyCode !== baseCurrency"
@click="setAsBaseline(exchangeRate.currencyCode, getConvertedAmount(exchangeRate))">
{{ $t('Set As Baseline') }}
{{ $t('Set as Base') }}
</v-btn>
<span>{{ getDisplayConvertedAmount(exchangeRate, isEnableThousandsSeparator) }}</span>
</div>
+3 -3
View File
@@ -23,7 +23,7 @@
<v-card variant="flat" class="w-100 mt-0 px-4 pt-12" max-width="500">
<v-card-text>
<h4 class="text-h4 mb-2">{{ $t('Forget Password?') }}</h4>
<p class="mb-0">{{ $t('Please input your email address used for registration and we\'ll send you an email with reset password link') }}</p>
<p class="mb-0">{{ $t('Please enter your email address used for registration and we\'ll send you an email with a reset password link') }}</p>
</v-card-text>
<v-card-text class="pb-0 mb-6">
@@ -54,7 +54,7 @@
<router-link class="d-flex align-center justify-center" to="/login"
:class="{ 'disabled': requesting }">
<v-icon :icon="icons.left"/>
<span>{{ $t('Back to log in') }}</span>
<span>{{ $t('Back to login page') }}</span>
</router-link>
</v-col>
</v-row>
@@ -159,7 +159,7 @@ export default {
const self = this;
if (!self.email) {
self.$refs.snackbar.showMessage('Email address cannot be empty');
self.$refs.snackbar.showMessage('Email address cannot be blank');
return;
}
+4 -4
View File
@@ -265,12 +265,12 @@ export default {
const self = this;
if (!self.username) {
self.$refs.snackbar.showMessage('Username cannot be empty');
self.$refs.snackbar.showMessage('Username cannot be blank');
return;
}
if (!self.password) {
self.$refs.snackbar.showMessage('Password cannot be empty');
self.$refs.snackbar.showMessage('Password cannot be blank');
return;
}
@@ -337,10 +337,10 @@ export default {
}
if (self.twoFAVerifyType === 'passcode' && !self.passcode) {
self.$refs.snackbar.showMessage('Passcode cannot be empty');
self.$refs.snackbar.showMessage('Passcode cannot be blank');
return;
} else if (self.twoFAVerifyType === 'backupcode' && !self.backupCode) {
self.$refs.snackbar.showMessage('Backup code cannot be empty');
self.$refs.snackbar.showMessage('Backup code cannot be blank');
return;
}
+7 -7
View File
@@ -23,7 +23,7 @@
<v-card variant="flat" class="w-100 mt-0 px-4 pt-12" max-width="500">
<v-card-text>
<h4 class="text-h4 mb-2">{{ $t('Reset Password') }}</h4>
<p class="mb-0">{{ $t('Please input your email address again, and input the new password.') }}</p>
<p class="mb-0">{{ $t('Please enter your email address again, and input the new password.') }}</p>
</v-card-text>
<v-card-text class="pb-0 mb-6">
@@ -65,7 +65,7 @@
ref="confirmPasswordInput"
:type="isConfirmPasswordVisible ? 'text' : 'password'"
:disabled="updating"
:label="$t('Confirmation Password')"
:label="$t('Confirm Password')"
:placeholder="$t('Re-enter the password')"
:append-inner-icon="isConfirmPasswordVisible ? icons.eyeSlash : icons.eye"
v-model="confirmPassword"
@@ -85,7 +85,7 @@
<router-link class="d-flex align-center justify-center" to="/login"
:class="{ 'disabled': updating }">
<v-icon :icon="icons.left"/>
<span>{{ $t('Back to log in') }}</span>
<span>{{ $t('Back to login page') }}</span>
</router-link>
</v-col>
</v-row>
@@ -176,15 +176,15 @@ export default {
...mapStores(useRootStore, useSettingsStore),
inputProblemMessage() {
if (!this.email) {
return 'Email address cannot be empty';
return 'Email address cannot be blank';
} else if (!this.newPassword && !this.confirmPassword) {
return 'Nothing has been modified';
} else if (!this.newPassword && this.confirmPassword) {
return 'New password cannot be empty';
return 'New password cannot be blank';
} else if (this.newPassword && !this.confirmPassword) {
return 'Confirmation password cannot be empty';
return 'Password confirmation cannot be blank';
} else if (this.newPassword && this.confirmPassword && this.newPassword !== this.confirmPassword) {
return 'Password and confirmation password do not match';
return 'Password and password confirmation do not match';
} else {
return null;
}
+14 -14
View File
@@ -87,7 +87,7 @@
autocomplete="new-password"
clearable
:disabled="submitting || navigateToHomePage"
:label="$t('Confirmation Password')"
:label="$t('Confirm Password')"
:placeholder="$t('Re-enter the password')"
:type="isConfirmPasswordVisible ? 'text' : 'password'"
:append-inner-icon="isConfirmPasswordVisible ? icons.eyeSlash : icons.eye"
@@ -146,7 +146,7 @@
<v-window-item value="presetCategories" class="signup-preset-categories">
<h4 class="text-h4 mb-1">{{ $t('Preset Categories') }}</h4>
<p class="text-sm mt-2 mb-5">{{ $t('Set Whether You Use The Preset Transaction Categories') }}</p>
<p class="text-sm mt-2 mb-5">{{ $t('Set whether to use preset transaction categories') }}</p>
<v-row>
<v-col cols="12" sm="6">
@@ -207,7 +207,7 @@
</v-window-item>
<v-window-item value="finalResult" v-if="finalResultMessage">
<h4 class="text-h4 mb-1">{{ $t('Registration Complete') }}</h4>
<h4 class="text-h4 mb-1">{{ $t('Registration Completed') }}</h4>
<p class="my-5">{{ finalResultMessage }}</p>
</v-window-item>
</v-form>
@@ -357,7 +357,7 @@ export default {
allSteps.push({
name: 'finalResult',
title: this.$t('Complete'),
subTitle: this.$t('Registration Complete')
subTitle: this.$t('Registration Completed')
});
}
@@ -371,24 +371,24 @@ export default {
},
inputEmptyProblemMessage() {
if (!this.user.username) {
return 'Username cannot be empty';
return 'Username cannot be blank';
} else if (!this.user.nickname) {
return 'Nickname cannot be empty';
return 'Nickname cannot be blank';
} else if (!this.user.email) {
return 'Email address cannot be empty';
return 'Email address cannot be blank';
} else if (!this.user.password) {
return 'Password cannot be empty';
return 'Password cannot be blank';
} else if (!this.user.confirmPassword) {
return 'Confirmation password cannot be empty';
return 'Password confirmation cannot be blank';
} else if (!this.user.defaultCurrency) {
return 'Default currency cannot be empty';
return 'Default currency cannot be blank';
} else {
return null;
}
},
inputInvalidProblemMessage() {
if (this.user.password && this.user.confirmPassword && this.user.password !== this.user.confirmPassword) {
return 'Password and confirmation password do not match';
return 'Password and password confirmation do not match';
} else {
return null;
}
@@ -453,10 +453,10 @@ export default {
self.submitting = false;
if (self.usePresetCategories && !response.presetCategoriesSaved) {
self.finalResultMessage = self.$t('You have been successfully registered, but something wrong with adding preset categories. You can re-add preset categories in settings page anytime.');
self.finalResultMessage = self.$t('You have been successfully registered, but there was an failure when adding preset categories. You can re-add preset categories in settings page anytime.');
self.currentStep = 'finalResult';
} else if (response.needVerifyEmail) {
self.finalResultMessage = self.$t('You have been successfully registered. Account activation link has been sent to your email address, please activate your account first.');
self.finalResultMessage = self.$t('You have been successfully registered. An account activation link has been sent to your email address, please activate your account first.');
self.currentStep = 'finalResult';
} else {
self.$refs.snackbar.showMessage('You have been successfully registered');
@@ -478,7 +478,7 @@ export default {
self.submitting = false;
if (self.usePresetCategories && !response.presetCategoriesSaved) {
self.$refs.snackbar.showMessage('You have been successfully registered, but something wrong with adding preset categories. You can re-add preset categories in settings page anytime.');
self.$refs.snackbar.showMessage('You have been successfully registered, but there was an failure when adding preset categories. You can re-add preset categories in settings page anytime.');
} else {
self.$refs.snackbar.showMessage('You have been successfully registered');
self.$router.replace('/');
+10 -10
View File
@@ -23,8 +23,8 @@
<v-card variant="flat" class="w-100 mt-0 px-4 pt-12" max-width="500">
<v-card-text>
<h4 class="text-h4 mb-2">{{ $t('Unlock Application') }}</h4>
<p class="mb-0" v-if="isWebAuthnAvailable">{{ $t('Please input your PIN code or use WebAuthn to unlock application') }}</p>
<p class="mb-0" v-else-if="!isWebAuthnAvailable">{{ $t('Please input your PIN code to unlock application') }}</p>
<p class="mb-0" v-if="isWebAuthnAvailable">{{ $t('Please enter your PIN code or use WebAuthn to unlock application') }}</p>
<p class="mb-0" v-else-if="!isWebAuthnAvailable">{{ $t('Please enter your PIN code to unlock application') }}</p>
</v-card-text>
<v-card-text class="pb-0 mb-6">
@@ -39,14 +39,14 @@
<v-col cols="12">
<v-btn block :disabled="!isPinCodeValid(pinCode) || verifyingByWebAuthn"
@click="unlockByPin(pinCode)">
{{ $t('Unlock By PIN Code') }}
{{ $t('Unlock with PIN Code') }}
</v-btn>
</v-col>
<v-col cols="12" v-if="isWebAuthnAvailable">
<v-btn block variant="tonal" :disabled="verifyingByWebAuthn"
@click="unlockByWebAuthn">
{{ $t('Unlock By WebAuthn') }}
{{ $t('Unlock with WebAuthn') }}
<v-progress-circular indeterminate size="22" class="ml-2" v-if="verifyingByWebAuthn"></v-progress-circular>
</v-btn>
</v-col>
@@ -167,7 +167,7 @@ export default {
}
if (!webauthn.isSupported()) {
self.$refs.snackbar.showMessage('This device does not support WebAuthn');
self.$refs.snackbar.showMessage('WebAuth is not supported on this device');
return;
}
@@ -197,11 +197,11 @@ export default {
logger.error('failed to use webauthn to verify', error);
if (error.notSupported) {
self.$refs.snackbar.showMessage('This device does not support WebAuthn');
self.$refs.snackbar.showMessage('WebAuth is not supported on this device');
} else if (error.name === 'NotAllowedError') {
self.$refs.snackbar.showMessage('User has canceled authentication');
} else if (error.invalid) {
self.$refs.snackbar.showMessage('Failed to authenticate by WebAuthn');
self.$refs.snackbar.showMessage('Failed to authenticate with WebAuthn');
} else {
self.$refs.snackbar.showMessage('User has canceled or this device does not support WebAuthn');
}
@@ -217,7 +217,7 @@ export default {
const user = self.userStore.currentUserInfo;
if (!user || !user.username) {
self.$refs.snackbar.showMessage('An error has occurred');
self.$refs.snackbar.showMessage('An error occurred');
return;
}
@@ -236,8 +236,8 @@ export default {
self.$router.replace('/');
} catch (ex) {
logger.error('failed to unlock by pin code', ex);
self.$refs.snackbar.showMessage('PIN code is wrong');
logger.error('failed to unlock with pin code', ex);
self.$refs.snackbar.showMessage('Incorrect PIN code');
}
},
relogin() {
+4 -4
View File
@@ -24,7 +24,7 @@
<v-card-text>
<h4 class="text-h4 mb-2">{{ $t('Verify your email') }}</h4>
<p class="mb-0" v-if="token && loading">{{ $t('Verifying...') }}</p>
<p class="mb-0" v-if="token && verified">{{ $t('Email has been verified') }}</p>
<p class="mb-0" v-if="token && verified">{{ $t('Email address is verified') }}</p>
<p class="mb-0" v-if="token && !verified && errorMessage">{{ errorMessage }}</p>
<p class="mb-0" v-if="!token && !email">{{ $t('Parameter Invalid') }}</p>
<p class="mb-0" v-if="!token && email">{{ $t(hasValidEmailVerifyToken ? 'format.misc.accountActivationAndResendValidationEmailTip' : 'format.misc.resendValidationEmailTip', { email: email }) }}</p>
@@ -59,8 +59,8 @@
<router-link class="d-flex align-center justify-center" :to="verified ? '/' : '/login'"
:class="{ 'disabled': loading || resending }">
<v-icon :icon="icons.left"/>
<span v-if="!verified">{{ $t('Back to log in') }}</span>
<span v-else-if="verified">{{ $t('Back to home') }}</span>
<span v-if="!verified">{{ $t('Back to login page') }}</span>
<span v-else-if="verified">{{ $t('Back to home page') }}</span>
</router-link>
</v-col>
</v-row>
@@ -194,7 +194,7 @@ export default {
}).then(() => {
self.loading = false;
self.verified = true;
self.$refs.snackbar.showMessage('Email has been verified');
self.$refs.snackbar.showMessage('Email address is verified');
}).catch(error => {
self.loading = false;
self.verified = false;
+3 -3
View File
@@ -75,10 +75,10 @@
<v-menu activator="parent">
<v-list>
<v-list-item :prepend-icon="icons.show"
:title="$t('Show Hidden Account')"
:title="$t('Show Hidden Accounts')"
v-if="!showHidden" @click="showHidden = true"></v-list-item>
<v-list-item :prepend-icon="icons.hide"
:title="$t('Hide Hidden Account')"
:title="$t('Hide Hidden Accounts')"
v-if="showHidden" @click="showHidden = false"></v-list-item>
</v-list>
</v-menu>
@@ -165,7 +165,7 @@
<span class="align-self-center">
<v-icon :class="!loading && activeAccountCategoryVisibleAccountCount > 1 ? 'drag-handle' : 'disabled'"
:icon="icons.drag"/>
<v-tooltip activator="parent" v-if="!loading && activeAccountCategoryVisibleAccountCount > 1">{{ $t('Drag and Drop to Change Order') }}</v-tooltip>
<v-tooltip activator="parent" v-if="!loading && activeAccountCategoryVisibleAccountCount > 1">{{ $t('Drag to Reorder') }}</v-tooltip>
</span>
</div>
@@ -13,7 +13,7 @@
<v-menu activator="parent">
<v-list>
<v-list-item :prepend-icon="icons.add"
:title="$t('Add Sub Account')"
:title="$t('Add Sub-account')"
@click="addSubAccount"></v-list-item>
</v-list>
</v-menu>
@@ -90,22 +90,22 @@
clearable
persistent-placeholder
:disabled="loading || submitting"
:label="currentAccountIndex < 0 ? $t('Account Name') : $t('Sub Account Name')"
:placeholder="currentAccountIndex < 0 ? $t('Your account name') : $t('Your sub account name')"
:label="currentAccountIndex < 0 ? $t('Account Name') : $t('Sub-account Name')"
:placeholder="currentAccountIndex < 0 ? $t('Your account name') : $t('Your sub-account name')"
v-model="selectedAccount.name"
/>
</v-col>
<v-col cols="12" md="6">
<icon-select icon-type="account"
:all-icon-infos="allAccountIcons"
:label="currentAccountIndex < 0 ? $t('Account Icon') : $t('Sub Account Icon')"
:label="currentAccountIndex < 0 ? $t('Account Icon') : $t('Sub-account Icon')"
:color="selectedAccount.color"
:disabled="loading || submitting"
v-model="selectedAccount.icon" />
</v-col>
<v-col cols="12" md="6">
<color-select :all-color-infos="allAccountColors"
:label="currentAccountIndex < 0 ? $t('Account Color') : $t('Sub Account Color')"
:label="currentAccountIndex < 0 ? $t('Account Color') : $t('Sub-account Color')"
:disabled="loading || submitting"
v-model="selectedAccount.color" />
</v-col>
@@ -131,8 +131,8 @@
<amount-input :disabled="loading || submitting || !!editAccountId"
:persistent-placeholder="true"
:currency="selectedAccount.currency"
:label="currentAccountIndex < 0 ? $t('Account Balance') : $t('Sub Account Balance')"
:placeholder="currentAccountIndex < 0 ? $t('Account Balance') : $t('Sub Account Balance')"
:label="currentAccountIndex < 0 ? $t('Account Balance') : $t('Sub-account Balance')"
:placeholder="currentAccountIndex < 0 ? $t('Account Balance') : $t('Sub-account Balance')"
v-model="selectedAccount.balance"/>
</v-col>
<v-col cols="12" md="12">
@@ -142,7 +142,7 @@
rows="3"
:disabled="loading || submitting"
:label="$t('Description')"
:placeholder="currentAccountIndex < 0 ? $t('Your account description (optional)') : $t('Your sub account description (optional)')"
:placeholder="currentAccountIndex < 0 ? $t('Your account description (optional)') : $t('Your sub-account description (optional)')"
v-model="selectedAccount.comment"
/>
</v-col>
@@ -333,7 +333,7 @@ export default {
removeSubAccount(subAccount) {
const self = this;
self.$refs.confirmDialog.open('Are you sure you want to remove this sub account?').then(() => {
self.$refs.confirmDialog.open('Are you sure you want to remove this sub-account?').then(() => {
for (let i = 0; i < self.subAccounts.length; i++) {
if (self.subAccounts[i] === subAccount) {
self.subAccounts.splice(i, 1);
@@ -426,13 +426,13 @@ export default {
},
getInputEmptyProblemMessage(account, isSubAccount) {
if (!isSubAccount && !account.category) {
return 'Account category cannot be empty';
return 'Account category cannot be blank';
} else if (!isSubAccount && !account.type) {
return 'Account type cannot be empty';
return 'Account type cannot be blank';
} else if (!account.name) {
return 'Account name cannot be empty';
return 'Account name cannot be blank';
} else if (account.type === this.allAccountTypes.SingleAccount && !account.currency) {
return 'Account currency cannot be empty';
return 'Account currency cannot be blank';
} else {
return null;
}
@@ -13,19 +13,19 @@
<v-card-text v-if="isEnableApplicationLock">
<v-switch :disabled="true"
:label="$t('Unlock By PIN Code')"
:label="$t('Unlock with PIN Code')"
v-model="isEnableApplicationLock"/>
<v-switch class="mt-2" :label="$t('Unlock By WebAuthn')"
<v-switch class="mt-2" :label="$t('Unlock with WebAuthn')"
:loading="enablingWebAuthn"
v-model="isEnableApplicationLockWebAuthn"/>
</v-card-text>
<v-card-text class="pb-0">
<p class="text-body-1 font-weight-semibold" v-if="!isEnableApplicationLock">
{{ $t('Please input a new 6-digit PIN code. PIN code would encrypt your local data, so you need input this PIN code when you launch this app. If this PIN code is lost, you should re-login.') }}
{{ $t('Please enter a new 6-digit PIN code. The PIN code would encrypt your local data, so you need to enter it every time you open this app. If this PIN code is lost, you will need to log in again.') }}
</p>
<p class="text-body-1 font-weight-semibold" v-if="isEnableApplicationLock">
{{ $t('Please enter your current PIN code when disable application lock.') }}
{{ $t('Your current PIN code is required to disable application lock.') }}
</p>
</v-card-text>
@@ -120,7 +120,7 @@ export default {
self.enablingWebAuthn = false;
if (error.notSupported) {
self.$refs.snackbar.showMessage('This device does not support WebAuthn');
self.$refs.snackbar.showMessage('WebAuth is not supported on this device');
} else if (error.name === 'NotAllowedError') {
self.$refs.snackbar.showMessage('User has canceled authentication');
} else if (error.invalid) {
@@ -154,7 +154,7 @@ export default {
if (!this.pinCode || this.pinCode.length !== 6) {
this.pinCode = '';
this.$refs.snackbar.showMessage('PIN code is invalid');
this.$refs.snackbar.showMessage('Invalid PIN code');
return;
}
@@ -162,7 +162,7 @@ export default {
if (!user || !user.username) {
this.pinCode = '';
this.$refs.snackbar.showMessage('An error has occurred');
this.$refs.snackbar.showMessage('An error occurred');
return;
}
@@ -182,7 +182,7 @@ export default {
if (!this.$user.isCorrectPinCode(this.pinCode)) {
this.pinCode = '';
this.$refs.snackbar.showMessage('PIN code is wrong');
this.$refs.snackbar.showMessage('Incorrect PIN code');
return;
}
@@ -49,8 +49,8 @@
item-title="displayName"
item-value="type"
persistent-placeholder
:label="$t('Default Sort By')"
:placeholder="$t('Default Sort By')"
:label="$t('Default Sort Order')"
:placeholder="$t('Default Sort Order')"
:items="allSortingTypes"
v-model="defaultSortingType"
/>
+3 -3
View File
@@ -60,10 +60,10 @@
<v-menu activator="parent">
<v-list>
<v-list-item :prepend-icon="icons.show"
:title="$t('Show Hidden Transaction Category')"
:title="$t('Show Hidden Transaction Categories')"
v-if="!showHidden" @click="showHidden = true"></v-list-item>
<v-list-item :prepend-icon="icons.hide"
:title="$t('Hide Hidden Transaction Category')"
:title="$t('Hide Hidden Transaction Categories')"
v-if="showHidden" @click="showHidden = false"></v-list-item>
</v-list>
</v-menu>
@@ -160,7 +160,7 @@
<span class="ml-2">
<v-icon :class="!loading && !updating && availableCategoryCount > 1 ? 'drag-handle' : 'disabled'"
:icon="icons.drag"/>
<v-tooltip activator="parent" v-if="!loading && !updating && availableCategoryCount > 1">{{ $t('Drag and Drop to Change Order') }}</v-tooltip>
<v-tooltip activator="parent" v-if="!loading && !updating && availableCategoryCount > 1">{{ $t('Drag to Reorder') }}</v-tooltip>
</span>
</div>
</td>
@@ -131,7 +131,7 @@ export default {
},
inputEmptyProblemMessage() {
if (!this.category.name) {
return 'Category name cannot be empty';
return 'Category name cannot be blank';
} else {
return null;
}
@@ -1,7 +1,7 @@
<template>
<v-card :class="{ 'disabled': disabled }">
<template #title>
<span>{{ $t('Trend in Income and Expense') }}</span>
<span>{{ $t('Income and Expense Trends') }}</span>
</template>
<v-card-text class="overview-monthly-chart-container overview-monthly-chart-overlay" v-if="loading && !hasAnyData">
@@ -31,7 +31,7 @@
</v-select>
</div>
<div class="mx-6 mt-4" v-if="activeTab === 'categoricalAnalysis'">
<span class="text-subtitle-2">{{ $t('Sort By') }}</span>
<span class="text-subtitle-2">{{ $t('Sort Order') }}</span>
<v-select
item-title="name"
item-value="type"
+3 -3
View File
@@ -26,10 +26,10 @@
<v-menu activator="parent">
<v-list>
<v-list-item :prepend-icon="icons.show"
:title="$t('Show Hidden Transaction Tag')"
:title="$t('Show Hidden Transaction Tags')"
v-if="!showHidden" @click="showHidden = true"></v-list-item>
<v-list-item :prepend-icon="icons.hide"
:title="$t('Hide Hidden Transaction Tag')"
:title="$t('Hide Hidden Transaction Tags')"
v-if="showHidden" @click="showHidden = false"></v-list-item>
</v-list>
</v-menu>
@@ -154,7 +154,7 @@
<span class="ml-2">
<v-icon :class="!loading && !updating && availableTagCount > 1 ? 'drag-handle' : 'disabled'"
:icon="icons.drag"/>
<v-tooltip activator="parent" v-if="!loading && !updating && availableTagCount > 1">{{ $t('Drag and Drop to Change Order') }}</v-tooltip>
<v-tooltip activator="parent" v-if="!loading && !updating && availableTagCount > 1">{{ $t('Drag to Reorder') }}</v-tooltip>
</span>
</div>
</td>
@@ -185,7 +185,7 @@
persistent-placeholder
:readonly="mode === 'view'"
:disabled="loading || submitting"
:label="$t('Timezone')"
:label="$t('Transaction Timezone')"
:placeholder="!transaction.timeZone && transaction.timeZone !== '' ? `(${transactionDisplayTimezone}) ${transactionTimezoneTimeDifference}` : $t('Timezone')"
:items="allTimezones"
:no-data-text="$t('No results')"
@@ -280,7 +280,7 @@
</template>
<template #error-content>
<p class="text-body-1">
{{ $t('Please refresh the page and try again. If the error is still displayed, make sure that server map settings are set correctly.') }}
{{ $t('Please refresh the page and try again. If the error persists, ensure that the server\'s map settings are correctly configured.') }}
</p>
</template>
</map-view>
@@ -650,7 +650,7 @@ export default {
Promise.all(promises).then(function (responses) {
if (self.editTransactionId && !responses[3]) {
if (self.reject) {
self.reject('Unable to get transaction');
self.reject('Unable to retrieve transaction');
}
return;
@@ -723,7 +723,7 @@ export default {
};
if (self.transaction.sourceAmount === 0) {
self.$refs.confirmDialog.open('Are you sure you want to save this transaction whose amount is 0?').then(() => {
self.$refs.confirmDialog.open('Are you sure you want to save this transaction with a zero amount?').then(() => {
doSubmit();
});
} else {
@@ -785,7 +785,7 @@ export default {
logger.warn('this browser does not support geo location');
if (forceUpdate) {
self.$refs.snackbar.showMessage('Unable to get current position');
self.$refs.snackbar.showMessage('Unable to retrieve current position');
}
return;
}
@@ -796,7 +796,7 @@ export default {
self.geoLocationStatus = 'error';
if (forceUpdate) {
self.$refs.snackbar.showMessage('Unable to get current position');
self.$refs.snackbar.showMessage('Unable to retrieve current position');
}
return;
@@ -809,11 +809,11 @@ export default {
longitude: position.coords.longitude
};
}, function (err) {
logger.error('cannot get current position', err);
logger.error('cannot retrieve current position', err);
self.geoLocationStatus = 'error';
if (forceUpdate) {
self.$refs.snackbar.showMessage('Unable to get current position');
self.$refs.snackbar.showMessage('Unable to retrieve current position');
}
});
@@ -25,8 +25,8 @@
<span v-if="!loading">{{ oldProfile.username }}</span>
</div>
<div class="d-flex text-body-1 align-center" style="height: 40px;">
<span v-if="!loading && emailVerified">{{ $t('Email has been verified') }}</span>
<span v-if="!loading && !emailVerified">{{ $t('Email has not been verified') }}</span>
<span v-if="!loading && emailVerified">{{ $t('Email address is verified') }}</span>
<span v-if="!loading && !emailVerified">{{ $t('Email address is not verified') }}</span>
<v-btn class="ml-2 px-2" size="small" variant="text" :disabled="loading || resending"
@click="resendVerifyEmail" v-if="isUserVerifyEmailEnabled && !loading && !emailVerified">
{{ $t('Resend Validation Email') }}
@@ -81,7 +81,7 @@
:label="$t('Default Account')"
:placeholder="$t('Default Account')"
:items="allCategorizedAccounts"
:no-item-text="$t('Not Specified')"
:no-item-text="$t('Unspecified')"
v-model="newProfile.defaultAccountId">
</two-column-select>
</v-col>
@@ -92,8 +92,8 @@
item-value="type"
persistent-placeholder
:disabled="loading || saving"
:label="$t('Editable Transaction Scope')"
:placeholder="$t('Editable Transaction Scope')"
:label="$t('Editable Transaction Range')"
:placeholder="$t('Editable Transaction Range')"
:items="allTransactionEditScopeTypes"
v-model="newProfile.transactionEditScope"
/>
@@ -208,7 +208,7 @@
<v-card-text class="d-flex flex-wrap gap-4">
<v-btn :disabled="inputIsNotChanged || inputIsInvalid || saving" @click="save">
{{ $t('Save changes') }}
{{ $t('Save Changes') }}
<v-progress-circular indeterminate size="22" class="ml-2" v-if="saving"></v-progress-circular>
</v-btn>
@@ -354,11 +354,11 @@ export default {
},
inputInvalidProblemMessage() {
if (!this.newProfile.email) {
return 'Email address cannot be empty';
return 'Email address cannot be blank';
} else if (!this.newProfile.nickname) {
return 'Nickname cannot be empty';
return 'Nickname cannot be blank';
} else if (!this.newProfile.defaultCurrency) {
return 'Default currency cannot be empty';
return 'Default currency cannot be blank';
} else {
return null;
}
@@ -368,7 +368,7 @@ export default {
},
langAndRegionInputInvalidProblemMessage() {
if (!this.newProfile.defaultCurrency) {
return 'Default currency cannot be empty';
return 'Default currency cannot be blank';
} else {
return null;
}
@@ -121,7 +121,7 @@
<v-card-text class="py-0">
<span class="text-body-1 text-error">
<v-icon :icon="icons.alert"/>
{{ $t('You CANNOT undo this action. This will clear your accounts, categories, tags and transactions data. Please input your current password to confirm.') }}
{{ $t('You CANNOT undo this action. This will clear your accounts, categories, tags and transactions data. Please enter your current password to confirm.') }}
</span>
</v-card-text>
@@ -277,7 +277,7 @@ export default {
const self = this;
if (!self.currentPasswordForClearData) {
self.$refs.snackbar.showMessage('Current password cannot be empty');
self.$refs.snackbar.showMessage('Current password cannot be blank');
return;
}
@@ -4,7 +4,7 @@
<v-card :class="{ 'disabled': updatingPassword }" :title="$t('Modify Password')">
<v-form>
<v-card-text class="pt-0">
<span class="text-body-1">{{ $t('After the password is changed, other devices will be logged out, please log in again on other devices by using the new password.') }}</span>
<span class="text-body-1">{{ $t('After changing the password, other devices will be logged out. Please use the new password to log in on other devices.') }}</span>
</v-card-text>
<v-card-text>
@@ -51,7 +51,7 @@
clearable
:disabled="updatingPassword"
:type="isConfirmPasswordVisible ? 'text' : 'password'"
:label="$t('Confirmation Password')"
:label="$t('Confirm Password')"
:placeholder="$t('Re-enter the password')"
:append-inner-icon="isConfirmPasswordVisible ? icons.eyeSlash : icons.eye"
v-model="confirmPassword"
@@ -64,7 +64,7 @@
<v-card-text class="d-flex flex-wrap gap-4">
<v-btn :disabled="!currentPassword || !newPassword || !confirmPassword || updatingPassword" @click="updatePassword">
{{ $t('Save changes') }}
{{ $t('Save Changes') }}
<v-progress-circular indeterminate size="22" class="ml-2" v-if="updatingPassword"></v-progress-circular>
</v-btn>
</v-card-text>
@@ -181,15 +181,15 @@ export default {
...mapStores(useRootStore, useSettingsStore, useUserStore, useTokensStore),
inputProblemMessage() {
if (!this.currentPassword) {
return 'Current password cannot be empty';
return 'Current password cannot be blank';
} else if (!this.newPassword && !this.confirmPassword) {
return 'Nothing has been modified';
} else if (!this.newPassword && this.confirmPassword) {
return 'New password cannot be empty';
return 'New password cannot be blank';
} else if (this.newPassword && !this.confirmPassword) {
return 'Confirmation password cannot be empty';
return 'Password confirmation cannot be blank';
} else if (this.newPassword && this.confirmPassword && this.newPassword !== this.confirmPassword) {
return 'Password and confirmation password do not match';
return 'Password and password confirmation do not match';
} else {
return null;
}
@@ -10,13 +10,13 @@
<v-card-text class="pb-0">
<v-skeleton-loader class="skeleton-no-margin pt-2 pb-5" type="text" style="width: 150px" :loading="true" v-if="loading"></v-skeleton-loader>
<p class="text-body-1 font-weight-semibold" v-if="!loading && !new2FAQRCode">
{{ status === true ? $t('Two-factor authentication has been enabled.') : $t('Two-factor authentication is not enabled yet.') }}
{{ status === true ? $t('Two-factor authentication is already enabled.') : $t('Two-factor authentication is not enabled yet.') }}
</p>
<p class="text-body-1" v-if="!loading && new2FAQRCode">
{{ $t('Please use two factor authentication app scan the below qrcode and input current passcode') }}
{{ $t('Please use a two-factor authentication app to scan the qrcode below and enter the current passcode.') }}
</p>
<p class="text-body-1" v-if="!loading && status === true">
{{ $t('Please enter your current password when disable two factor authentication or regenerate two factor authentication backup codes. If you regenerate backup codes, the old codes will be invalidated.') }}
{{ $t('Your current password is required to disable two-factor authentication or regenerate backup codes for two-factor authentication. If you regenerate backup codes, the previous ones will become invalid.') }}
</p>
</v-card-text>
@@ -58,7 +58,7 @@
<v-row>
<v-col cols="12" class="d-flex flex-wrap gap-4">
<v-btn :disabled="!currentPassword || loading || disabling " v-if="status === true" @click="disable">
{{ $t('Disable two-factor authentication') }}
{{ $t('Disable Two-Factor Authentication') }}
<v-progress-circular indeterminate size="22" class="ml-2" v-if="disabling"></v-progress-circular>
</v-btn>
<v-btn :disabled="!currentPassword || loading || regenerating" v-if="status === true" @click="regenerateBackupCode()">
@@ -66,7 +66,7 @@
<v-progress-circular indeterminate size="22" class="ml-2" v-if="regenerating"></v-progress-circular>
</v-btn>
<v-btn :disabled="loading || enabling" v-if="status === false && !new2FAQRCode" @click="enable">
{{ $t('Enable two-factor authentication') }}
{{ $t('Enable Two-Factor Authentication') }}
<v-progress-circular indeterminate size="22" class="ml-2" v-if="enabling"></v-progress-circular>
</v-btn>
<v-btn :disabled="!currentPasscode || loading || enableConfirming" v-if="status === false && new2FAQRCode" @click="enableConfirm">
@@ -93,7 +93,7 @@
<v-card-text>
<p class="text-body-1" v-if="status === true">
{{ $t('Please copy these backup codes to safe place, the below codes can only be shown once. If these codes were lost, you can regenerate backup codes at any time.') }}
{{ $t('Please copy these backup codes to safe place, the following backup codes will be displayed only once. If these codes were lost, you can regenerate them at any time.') }}
</p>
<v-textarea class="backup-code" readonly="readonly" :rows="10" :value="currentBackupCode"/>
</v-card-text>
@@ -207,7 +207,7 @@ export default {
const self = this;
if (!self.currentPasscode) {
self.$refs.snackbar.showMessage('Passcode cannot be empty');
self.$refs.snackbar.showMessage('Passcode cannot be blank');
return;
}
@@ -252,7 +252,7 @@ export default {
const self = this;
if (!self.currentPassword) {
self.$refs.snackbar.showMessage('Current password cannot be empty');
self.$refs.snackbar.showMessage('Current password cannot be blank');
return;
}
@@ -273,7 +273,7 @@ export default {
self.disabling = false;
self.status = false;
self.$refs.snackbar.showMessage('Two factor authentication has been disabled');
self.$refs.snackbar.showMessage('Two-factor authentication has been disabled');
}).catch(error => {
self.disabling = false;
@@ -286,7 +286,7 @@ export default {
const self = this;
if (!self.currentPassword) {
self.$refs.snackbar.showMessage('Current password cannot be empty');
self.$refs.snackbar.showMessage('Current password cannot be blank');
return;
}