mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-21 01:12:14 +00:00
language strings updates
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||
{{ row.data.attributes.role }}
|
||||
{{ $t(row.data.attributes.role) }}
|
||||
</ColorLabel>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
@@ -111,7 +111,7 @@
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||
{{ row.data.attributes.role }}
|
||||
{{ $t(row.data.attributes.role) }}
|
||||
</ColorLabel>
|
||||
</td>
|
||||
<td class="px-3 md:px-1" v-if="config.isSaaS">
|
||||
@@ -190,7 +190,7 @@
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||
{{ row.data.attributes.role }}
|
||||
{{ $t(row.data.attributes.role) }}
|
||||
</ColorLabel>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
@@ -274,11 +274,11 @@ export default {
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
label: this.$t('Billing Est.'),
|
||||
label: this.$t('billing_est.'),
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_user.table.created_at'),
|
||||
label: this.$t('created_at'),
|
||||
field: 'created_at',
|
||||
sortable: true,
|
||||
},
|
||||
@@ -303,12 +303,12 @@ export default {
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
label: this.$t('Max Storage'),
|
||||
label: this.$t('max_storage'),
|
||||
sortable: false,
|
||||
hidden: !this.config.storageLimit,
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_user.table.created_at'),
|
||||
label: this.$t('created_at'),
|
||||
field: 'created_at',
|
||||
sortable: true,
|
||||
},
|
||||
@@ -333,12 +333,12 @@ export default {
|
||||
sortable: false,
|
||||
},
|
||||
{
|
||||
label: this.$t('Max Storage'),
|
||||
label: this.$t('max_storage'),
|
||||
sortable: false,
|
||||
hidden: !this.config.storageLimit,
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_user.table.created_at'),
|
||||
label: this.$t('created_at'),
|
||||
field: 'created_at',
|
||||
sortable: true,
|
||||
},
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
||||
{{ $t('User was deleted') }}
|
||||
{{ $t('user_was_deleted') }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
@@ -31,13 +31,13 @@
|
||||
v-if="config.subscriptionType === 'fixed'"
|
||||
:color="$getTransactionStatusColor(row.data.attributes.status)"
|
||||
>
|
||||
{{ row.data.attributes.status }}
|
||||
{{ $t(row.data.attributes.status) }}
|
||||
</ColorLabel>
|
||||
<ColorLabel
|
||||
v-if="config.subscriptionType === 'metered'"
|
||||
:color="$getTransactionTypeColor(row.data.attributes.type)"
|
||||
>
|
||||
{{ row.data.attributes.type }}
|
||||
{{ $t(row.data.attributes.type) }}
|
||||
</ColorLabel>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
@@ -65,7 +65,7 @@
|
||||
<!--Empty page-->
|
||||
<template v-slot:empty-page>
|
||||
<InfoBox style="margin-bottom: 0">
|
||||
<p>{{ $t("There aren't any transactions.") }}</p>
|
||||
<p>{{ $t("not_any_transactions") }}</p>
|
||||
</InfoBox>
|
||||
</template>
|
||||
</DatatableWrapper>
|
||||
@@ -99,17 +99,17 @@ export default {
|
||||
return {
|
||||
columns: [
|
||||
{
|
||||
label: this.$t('Note'),
|
||||
label: this.$t('note'),
|
||||
field: 'note',
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
label: this.$t('User'),
|
||||
label: this.$t('user'),
|
||||
field: 'user_id',
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
label: this.$t('Status'),
|
||||
label: this.$t('status'),
|
||||
field: 'status',
|
||||
sortable: true,
|
||||
},
|
||||
@@ -119,12 +119,12 @@ export default {
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
label: this.$t('Payed At'),
|
||||
label: this.$t('payed_at'),
|
||||
field: 'created_at',
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
label: this.$t('Service'),
|
||||
label: this.$t('service'),
|
||||
field: 'driver',
|
||||
sortable: true,
|
||||
},
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
>
|
||||
<template slot="loading">
|
||||
<b>
|
||||
{{ $t('loading content...') }}
|
||||
{{ $t('loading_content') }}
|
||||
</b>
|
||||
</template>
|
||||
</pdf>
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
:action="$t('create_something')"
|
||||
/>
|
||||
<PopoverItem name="desktop-create" side="left">
|
||||
<OptionGroup :title="$t('Upload')">
|
||||
<OptionGroup :title="$t('upload')">
|
||||
<OptionUpload :title="$t('upload_files')" type="file" />
|
||||
<OptionUpload :title="$t('upload_folder')" type="folder" />
|
||||
</OptionGroup>
|
||||
<OptionGroup :title="$t('Create')">
|
||||
<OptionGroup :title="$t('create')">
|
||||
<Option
|
||||
@click.native="$createFolder"
|
||||
:title="$t('create_folder')"
|
||||
@@ -47,7 +47,7 @@
|
||||
'is-inactive': !canManipulate,
|
||||
}"
|
||||
source="trash"
|
||||
:action="$t('actions.delete')"
|
||||
:action="$t('delete')"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/>
|
||||
<PopoverItem name="desktop-create" side="left">
|
||||
<OptionGroup
|
||||
:title="$t('Frequently Used')"
|
||||
:title="$t('frequently_used')"
|
||||
>
|
||||
<OptionUpload
|
||||
:title="$t('upload_files')"
|
||||
@@ -31,7 +31,7 @@
|
||||
icon="folder-plus"
|
||||
/>
|
||||
</OptionGroup>
|
||||
<OptionGroup :title="$t('Others')">
|
||||
<OptionGroup :title="$t('others')">
|
||||
<OptionUpload
|
||||
:class="{
|
||||
'is-inactive': (isSharedWithMe && !canEdit) || canUploadFolderInView || isTeamFolderHomepage || isSharedWithMeHomepage,
|
||||
@@ -42,12 +42,12 @@
|
||||
<Option
|
||||
@click.stop.native="$createTeamFolder"
|
||||
:class="{ 'is-inactive': canCreateTeamFolder }"
|
||||
:title="$t('Create Team Folder')"
|
||||
:title="$t('create_team_folder')"
|
||||
icon="users"
|
||||
/>
|
||||
<Option
|
||||
@click.native="$createFileRequest"
|
||||
:title="$t('Create File Request')"
|
||||
:title="$t('create_file_request')"
|
||||
icon="upload-cloud"
|
||||
/>
|
||||
</OptionGroup>
|
||||
@@ -70,23 +70,23 @@
|
||||
<PopoverItem name="team-folder" side="left">
|
||||
<TeamFolderPreview />
|
||||
|
||||
<OptionGroup v-if="$isThisRoute($route, ['TeamFolders'])" :title="$t('Options')">
|
||||
<OptionGroup v-if="$isThisRoute($route, ['TeamFolders'])" :title="$t('options')">
|
||||
<Option
|
||||
@click.native="$updateTeamFolder(teamFolder)"
|
||||
:title="$t('Edit Members')"
|
||||
:title="$t('edit_members')"
|
||||
icon="rename"
|
||||
/>
|
||||
<Option
|
||||
@click.native="$dissolveTeamFolder(teamFolder)"
|
||||
:title="$t('Dissolve Team')"
|
||||
:title="$t('dissolve_team')"
|
||||
icon="trash"
|
||||
/>
|
||||
</OptionGroup>
|
||||
|
||||
<OptionGroup v-if="$isThisRoute($route, ['SharedWithMe'])" :title="$t('Options')">
|
||||
<OptionGroup v-if="$isThisRoute($route, ['SharedWithMe'])" :title="$t('options')">
|
||||
<Option
|
||||
@click.native="$detachMeFromTeamFolder(teamFolder)"
|
||||
:title="$t('Leave the Team Folder')"
|
||||
:title="$t('leave_team_folder')"
|
||||
icon="user-minus"
|
||||
/>
|
||||
</OptionGroup>
|
||||
@@ -102,7 +102,7 @@
|
||||
'is-inactive': !canCreateTeamFolder,
|
||||
}"
|
||||
source="user-plus"
|
||||
:action="$t('actions.convert_into_team_folder')"
|
||||
:action="$t('convert_into_team_folder')"
|
||||
/>
|
||||
<ToolbarButton
|
||||
v-if="!$isThisRoute($route, ['SharedWithMe', 'Public'])"
|
||||
@@ -127,7 +127,7 @@
|
||||
'is-inactive': canDeleteInView && !canEdit,
|
||||
}"
|
||||
source="trash"
|
||||
:action="$t('actions.delete')"
|
||||
:action="$t('delete')"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
:action="$t('create_something')"
|
||||
/>
|
||||
<PopoverItem name="desktop-create" side="left">
|
||||
<OptionGroup :title="$t('Upload')">
|
||||
<OptionGroup :title="$t('upload')">
|
||||
<OptionUpload :title="$t('upload_files')" type="file" />
|
||||
<OptionUpload :title="$t('upload_folder')" type="folder" />
|
||||
</OptionGroup>
|
||||
<OptionGroup :title="$t('Create')">
|
||||
<OptionGroup :title="$t('create')">
|
||||
<Option
|
||||
@click.native="$createFolder"
|
||||
:title="$t('create_folder')"
|
||||
@@ -54,7 +54,7 @@
|
||||
'is-inactive': !canManipulate,
|
||||
}"
|
||||
source="trash"
|
||||
:action="$t('actions.delete')"
|
||||
:action="$t('delete')"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ export default {
|
||||
// Subtitle for single folder
|
||||
if (this.draggedItem.data.type === 'folder') {
|
||||
return this.draggedItem.items == 0
|
||||
? this.$t('folder.empty')
|
||||
? this.$t('empty')
|
||||
: this.$tc('folder.item_counts', this.draggedItem.items)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<MenuMobile name="file-filter">
|
||||
<MenuMobileGroup>
|
||||
<OptionGroup :title="$t('Base')">
|
||||
<OptionGroup :title="$t('base')">
|
||||
<Option
|
||||
@click.native="goToFiles"
|
||||
:title="$t('sidebar.home')"
|
||||
@@ -31,17 +31,17 @@
|
||||
:is-hover-disabled="true"
|
||||
/>
|
||||
</OptionGroup>
|
||||
<OptionGroup :title="$t('Collaboration')">
|
||||
<OptionGroup :title="$t('collaboration')">
|
||||
<Option
|
||||
@click.native="goToTeamFolders"
|
||||
:title="$t('Team Folders')"
|
||||
:title="$t('team_folders')"
|
||||
icon="users"
|
||||
:is-active="$isThisRoute($route, 'TeamFolders')"
|
||||
:is-hover-disabled="true"
|
||||
/>
|
||||
<Option
|
||||
@click.native="goToSharedWithMe"
|
||||
:title="$t('Shared with Me')"
|
||||
:title="$t('shared_with_me')"
|
||||
icon="user-check"
|
||||
:is-active="$isThisRoute($route, 'SharedWithMe')"
|
||||
:is-hover-disabled="true"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<OptionGroup :title="$t('View')">
|
||||
<OptionGroup :title="$t('view')">
|
||||
<Option
|
||||
v-if="isList"
|
||||
@click.native="changePreview('grid')"
|
||||
@@ -14,7 +14,7 @@
|
||||
icon="list"
|
||||
/>
|
||||
</OptionGroup>
|
||||
<OptionGroup :title="$t('Sorting')">
|
||||
<OptionGroup :title="$t('sorting')">
|
||||
<Option
|
||||
@click.native.stop="sort('created_at')"
|
||||
:arrow="arrowForCreatedAtField"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="flex items-center justify-between pt-0.5 pb-2" v-if="clipboard.data.attributes.date_time_original">
|
||||
<b class="font-bold text-sm">{{ $t('file_detail_meta.time_data') }}</b>
|
||||
<b class="font-bold text-sm">{{ $t('time_data') }}</b>
|
||||
<b class="font-bold text-sm">{{ clipboard.data.attributes.date_time_original }}</b>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="text-center">
|
||||
<eye-off-icon size="22" class="vue-feather mb-3 inline-block text-gray-500" />
|
||||
<small class="block text-xs text-gray-500">
|
||||
{{ $t('messages.nothing_to_preview') }}
|
||||
{{ $t('nothing_to_preview') }}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
@@ -85,7 +85,7 @@
|
||||
</ListInfoItem>
|
||||
|
||||
<!--Author-->
|
||||
<ListInfoItem v-if="canShowAuthor" :title="$t('Author')">
|
||||
<ListInfoItem v-if="canShowAuthor" :title="$t('author')">
|
||||
<div class="mt-1.5 flex items-center">
|
||||
<MemberAvatar :size="32" :member="singleFile.data.relationships.owner" />
|
||||
<span class="ml-3 block text-sm font-bold">
|
||||
@@ -154,7 +154,7 @@ import { mapGetters } from 'vuex'
|
||||
return option.value === this.clipboard[0].data.relationships.shared.permission
|
||||
})
|
||||
|
||||
return title ? this.$t(title.label) : this.$t('shared.can_download')
|
||||
return title ? this.$t(title.label) : this.$t('can_download_file')
|
||||
},
|
||||
canShowAuthor() {
|
||||
return (
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="text-center">
|
||||
<eye-off-icon size="22" class="vue-feather mb-3 inline-block text-gray-500" />
|
||||
<small class="block text-xs text-gray-500">
|
||||
{{ $t('messages.nothing_to_preview') }}
|
||||
{{ $t('nothing_to_preview') }}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
<!--Folder sub line-->
|
||||
<small v-if="isFolder" class="block text-xs text-gray-500 dark:text-gray-500">
|
||||
{{ folderItems === 0 ? $t('folder.empty') : $tc('folder.item_counts', folderItems)
|
||||
{{ folderItems === 0 ? $t('empty') : $tc('folder.item_counts', folderItems)
|
||||
}}<span class="hidden text-xs text-gray-500 dark:text-gray-500 lg:inline-block"
|
||||
>, {{ timeStamp }}</span
|
||||
>
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
<!--Folder sub line-->
|
||||
<small v-if="isFolder" class="block text-xs text-gray-500 dark:text-gray-500">
|
||||
{{ folderItems === 0 ? $t('folder.empty') : $tc('folder.item_counts', folderItems) }},
|
||||
{{ folderItems === 0 ? $t('empty') : $tc('folder.item_counts', folderItems) }},
|
||||
{{ timeStamp }}
|
||||
</small>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
@click.native="closeSelecting"
|
||||
class="action-btn close-icon"
|
||||
source="close"
|
||||
:action="$t('actions.close')"
|
||||
:action="$t('close')"
|
||||
/>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
@@ -3,18 +3,6 @@
|
||||
class="sticky top-0 z-[19] block flex w-full items-center justify-between bg-white py-5 px-4 text-center dark:bg-dark-background lg:hidden"
|
||||
>
|
||||
<NavigationBar />
|
||||
|
||||
<!-- <div class="relative flex items-center">
|
||||
<!–More Actions–>
|
||||
<div class="relative">
|
||||
<div
|
||||
@click="showMobileNavigation"
|
||||
class="absolute right-0 -mr-2 -translate-y-2/4 transform p-4"
|
||||
>
|
||||
<menu-icon size="17" />
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="flex items-center">
|
||||
<search-icon size="18" class="vue-feather text-gray-400 dark:text-gray-600" />
|
||||
<span class="pl-2.5 text-xs font-bold text-gray-400 dark:text-gray-600">
|
||||
{{ $t('inputs.placeholder_search_files') }}
|
||||
{{ $t('search_anything') }}
|
||||
</span>
|
||||
</div>
|
||||
<span
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
>
|
||||
<check-icon size="16" class="vue-feather mr-2 text-green-600 dark:text-green-600" />
|
||||
<span class="text-sm font-bold text-green-600 dark:text-green-600">
|
||||
{{ $t('Accept') }}
|
||||
{{ $t('accept') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
>
|
||||
<x-icon size="16" class="vue-feather mr-2 text-rose-600 dark:text-rose-600" />
|
||||
<span class="text-sm font-bold text-rose-600 dark:text-rose-600">
|
||||
{{ $t('Decline') }}
|
||||
{{ $t('decline') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -121,7 +121,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('You successfully accepted invitation'),
|
||||
message: this.$t('you_accepted_invitation'),
|
||||
})
|
||||
})
|
||||
},
|
||||
@@ -132,7 +132,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('You successfully decline invitation'),
|
||||
message: this.$t('you_decline_invitation'),
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
@@ -11,27 +11,27 @@
|
||||
|
||||
<!--Title-->
|
||||
<b class="dark:text-gray-200 text-xl font-extrabold px-2.5 mb-2.5 block">
|
||||
{{ $t('Notification Center') }}
|
||||
{{ $t('notification_center') }}
|
||||
</b>
|
||||
|
||||
<div class="px-2.5">
|
||||
<MobileActionButton v-if="readNotifications.length || unreadNotifications.length" @click.native="$store.dispatch('deleteAllNotifications')" icon="check-square" class="mb-2 dark:!bg-4x-dark-foreground">
|
||||
{{ $t('Clear all') }}
|
||||
{{ $t('clear_all') }}
|
||||
</MobileActionButton>
|
||||
|
||||
<p v-if="!readNotifications.length && !unreadNotifications.length" class="text-sm mt-8">
|
||||
{{ $t("There aren't any notifications.") }}
|
||||
{{ $t("not_any_notifications") }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<b v-if="unreadNotifications.length" class="dark-text-theme mt-1.5 block px-2.5 mb-2.5 text-xs text-gray-400">
|
||||
{{ $t('Unread') }}
|
||||
{{ $t('unread') }}
|
||||
</b>
|
||||
|
||||
<Notification :notification="notification" v-for="notification in unreadNotifications" :key="notification.id" />
|
||||
|
||||
<b v-if="readNotifications.length" class="dark-text-theme mt-2.5 block px-2.5 mb-2.5 text-xs text-gray-400">
|
||||
{{ $t('Read') }}
|
||||
{{ $t('read') }}
|
||||
</b>
|
||||
|
||||
<Notification :notification="notification" v-for="notification in readNotifications" :key="notification.id" />
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<PopupWrapper name="select-payment-method">
|
||||
<PopupHeader :title="$t('Select Payment Method')" icon="credit-card" />
|
||||
<PopupHeader :title="$t('select_payment_method')" icon="credit-card" />
|
||||
|
||||
<PopupContent style="padding: 0 20px">
|
||||
<InfoBox v-if="!config.isPayPal && !config.isPaystack" class="!mb-0">
|
||||
<p>{{ $t("There isn't any payment method yet.") }}</p>
|
||||
<p>{{ $t("not_any_payment_method") }}</p>
|
||||
</InfoBox>
|
||||
|
||||
<!--PayPal implementation-->
|
||||
@@ -27,7 +27,7 @@
|
||||
:class="{ 'opacity-0': paypal.isMethodLoading }"
|
||||
class="text-theme cursor-pointer text-sm font-bold"
|
||||
>
|
||||
{{ $t('Select') }}
|
||||
{{ $t('select') }}
|
||||
</span>
|
||||
</PaymentMethod>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<PaymentMethod
|
||||
v-if="config.isPaystack"
|
||||
driver="paystack"
|
||||
:description="$t('Available Bank Account, USSD, Mobile Money, Apple Pay')"
|
||||
:description="$t(config.paystack_payment_description)"
|
||||
>
|
||||
<div v-if="paystack.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
||||
<Spinner />
|
||||
@@ -49,14 +49,14 @@
|
||||
:class="{ 'opacity-0': paystack.isGettingCheckoutLink }"
|
||||
class="text-theme cursor-pointer text-sm font-bold"
|
||||
>
|
||||
{{ $t('Select') }}
|
||||
{{ $t('select') }}
|
||||
</span>
|
||||
</PaymentMethod>
|
||||
</PopupContent>
|
||||
|
||||
<PopupActions>
|
||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
||||
{{ $t('Cancel Payment') }}
|
||||
{{ $t('cancel_payment') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</PopupWrapper>
|
||||
@@ -131,7 +131,7 @@ export default {
|
||||
} catch (error) {
|
||||
events.$emit('toaster', {
|
||||
type: 'danger',
|
||||
message: this.$t('Failed to load the PayPal service'),
|
||||
message: this.$t('failed_to_load_paypal'),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your payment was successfully received.'),
|
||||
message: this.$t('payment_was_successfully_received'),
|
||||
})
|
||||
|
||||
// todo: temporary reload function
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<PopupWrapper name="confirm-password">
|
||||
<PopupHeader :title="$t('Confirm Password')" icon="edit" />
|
||||
<PopupHeader :title="$t('confirm_password')" icon="edit" />
|
||||
|
||||
<PopupContent>
|
||||
<ValidationObserver @submit.prevent="confirmPassword" ref="passwordForm" v-slot="{ invalid }" tag="form">
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
</ValidationProvider>
|
||||
|
||||
<AppInputSwitch
|
||||
:title="$t('Emoji as an Icon')"
|
||||
:description="$t('Replace folder icon with an Emoji')"
|
||||
:title="$t('emoji_as_an_icon')"
|
||||
:description="$t('replace_icon_with_emoji')"
|
||||
:is-last="!isEmoji"
|
||||
>
|
||||
<SwitchInput v-model="isEmoji" :state="isEmoji" />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<PopupWrapper name="create-file-request">
|
||||
<!--Title-->
|
||||
<PopupHeader :title="$t('Create File Request')" icon="upload" />
|
||||
<PopupHeader :title="$t('create_file_request')" icon="upload" />
|
||||
|
||||
<!--Content-->
|
||||
<PopupContent>
|
||||
@@ -23,21 +23,21 @@
|
||||
name="Name"
|
||||
v-slot="{ errors }"
|
||||
>
|
||||
<AppInputText :title="$t('Folder Name (optional)')" :description="$t('Created folder with files will be named with your own name.')" :error="errors[0]">
|
||||
<AppInputText :title="$t('folder_name_optional')" :description="$t('folder_name_optional_description')" :error="errors[0]">
|
||||
<input
|
||||
v-model="form.name"
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
type="text"
|
||||
ref="input"
|
||||
class="focus-border-theme input-dark"
|
||||
:placeholder="$t('Type name...')"
|
||||
:placeholder="$t('type_name_')"
|
||||
/>
|
||||
</AppInputText>
|
||||
</ValidationProvider>
|
||||
|
||||
<!--Set note-->
|
||||
<ValidationProvider tag="div" mode="passive" name="Note" v-slot="{ errors }">
|
||||
<AppInputText :title="$t('Message (optional)')" :description="$t('This message will be showed for your email recipient or in the upload page.')" :error="errors[0]">
|
||||
<AppInputText :title="$t('message_optional')" :description="$t('message_optional_description')" :error="errors[0]">
|
||||
<textarea
|
||||
v-model="form.notes"
|
||||
rows="2"
|
||||
@@ -45,15 +45,15 @@
|
||||
type="text"
|
||||
ref="input"
|
||||
class="focus-border-theme input-dark"
|
||||
:placeholder="$t('Type message for recipient...')"
|
||||
:placeholder="$t('message_for_recipient')"
|
||||
></textarea>
|
||||
</AppInputText>
|
||||
</ValidationProvider>
|
||||
|
||||
<!--Send Request by Email-->
|
||||
<AppInputSwitch
|
||||
:title="$t('Send Request by Email')"
|
||||
:description="$t('Send your file request on recipients email')"
|
||||
:title="$t('send_request_by_email')"
|
||||
:description="$t('send_request_by_email_description')"
|
||||
:is-last="! shareViaEmail"
|
||||
>
|
||||
<SwitchInput v-model="shareViaEmail" :state="shareViaEmail" />
|
||||
@@ -75,14 +75,14 @@
|
||||
type="text"
|
||||
ref="input"
|
||||
class="focus-border-theme input-dark"
|
||||
:placeholder="$t('Type email...')"
|
||||
:placeholder="$t('type_email_')"
|
||||
/>
|
||||
</AppInputText>
|
||||
</ValidationProvider>
|
||||
</ValidationObserver>
|
||||
|
||||
<!--Copy generated link-->
|
||||
<AppInputText v-if="generatedUploadRequest" :title="$t('Copy your upload request link')" :is-last="true">
|
||||
<AppInputText v-if="generatedUploadRequest" :title="$t('copy_upload_request_link')" :is-last="true">
|
||||
<CopyInput :str="generatedUploadRequest.data.attributes.url" />
|
||||
</AppInputText>
|
||||
</PopupContent>
|
||||
@@ -93,7 +93,7 @@
|
||||
>{{ $t('cancel') }}
|
||||
</ButtonBase>
|
||||
<ButtonBase class="w-full" @click.native="createUploadRequest" :loading="isLoading" button-style="theme"
|
||||
>{{ $t('Create Request') }}
|
||||
>{{ $t('create_request') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
v-model="query"
|
||||
class="focus-border-theme input-dark"
|
||||
type="text"
|
||||
:placeholder="$t('Select or search emoji icon...')"
|
||||
:placeholder="$t('select_or_search_emoji')"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
<!-- Not found -->
|
||||
<span class="ml-2 text-sm font-bold" v-if="filteredEmojis.length === 0 && query !== undefined">
|
||||
{{ $t('There is nothing :(') }}
|
||||
{{ $t('there_is_nothing_smile') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -127,7 +127,7 @@ export default {
|
||||
this.filteredEmojis = this.emojis.list.filter((emoji) => emoji.name.includes(val.toLowerCase()))
|
||||
|
||||
if (this.filteredEmojis.length === 0) {
|
||||
console.log('empty')
|
||||
//
|
||||
}
|
||||
}, 200),
|
||||
},
|
||||
|
||||
@@ -52,7 +52,7 @@ export default {
|
||||
// Update user avatar
|
||||
this.$updateImage('/user/settings', 'avatar', event.target.files[0])
|
||||
} else {
|
||||
alert(this.$t('validation_errors.wrong_image'))
|
||||
alert(this.$t('wrong_image_error'))
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<camera-icon size="14" />
|
||||
</div>
|
||||
<span class="text-sm font-bold">
|
||||
{{ $t('Get QR Code') }}
|
||||
{{ $t('get_qr_code') }}
|
||||
</span>
|
||||
</li>
|
||||
<li
|
||||
@@ -126,7 +126,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your web insert code was copied'),
|
||||
message: this.$t('web_code_copied'),
|
||||
})
|
||||
|
||||
this.isOpenedMoreOptions = false
|
||||
|
||||
@@ -85,7 +85,7 @@ export default {
|
||||
// Update user avatar
|
||||
this.$emit('input', event.target.files[0])
|
||||
} else {
|
||||
alert(this.$t('validation_errors.wrong_image'))
|
||||
alert(this.$t('wrong_image_error'))
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -43,7 +43,9 @@
|
||||
<user-icon v-if="option.icon === 'user'" size="14" />
|
||||
<edit2-icon v-if="option.icon === 'user-edit'" size="14" />
|
||||
</div>
|
||||
<span class="option-value">{{ option.label }}</span>
|
||||
<span class="option-value">
|
||||
{{ $t(option.label) }}
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
>
|
||||
<div class="rounded-lg bg-light-background px-3 py-1.5 dark:bg-4x-dark-foreground">
|
||||
<span class="text-sm font-semibold">
|
||||
{{ $t('Your current estimated usage:') }}
|
||||
{{ $t('current_estimated_usage') }}
|
||||
</span>
|
||||
<span class="text-theme text-sm font-bold">
|
||||
{{ user.data.meta.usages.costEstimate }}
|
||||
@@ -53,7 +53,7 @@
|
||||
/>
|
||||
</OptionGroup>
|
||||
<OptionGroup v-if="!clickedSubmenu">
|
||||
<Option @click.native="logOut" :title="$t('menu.logout')" icon="power" :is-hover-disabled="true" />
|
||||
<Option @click.native="logOut" :title="$t('logout')" icon="power" :is-hover-disabled="true" />
|
||||
</OptionGroup>
|
||||
|
||||
<!--Submenu: User settings-->
|
||||
@@ -79,7 +79,7 @@
|
||||
<Option
|
||||
@click.native="goToRoute('Billing')"
|
||||
v-if="config.subscriptionType !== 'none'"
|
||||
:title="$t('Billing')"
|
||||
:title="$t('billing')"
|
||||
icon="cloud"
|
||||
:is-hover-disabled="true"
|
||||
/>
|
||||
@@ -127,14 +127,14 @@
|
||||
<OptionGroup v-if="clickedSubmenu === 'admin' && config.subscriptionType !== 'none'">
|
||||
<Option
|
||||
@click.native="goToRoute('AppPayments')"
|
||||
:title="$t('Payments')"
|
||||
:title="$t('payments')"
|
||||
icon="credit-card"
|
||||
:is-hover-disabled="true"
|
||||
/>
|
||||
<Option
|
||||
@click.native="goToRoute('Subscriptions')"
|
||||
v-if="config.subscriptionType === 'fixed'"
|
||||
:title="$t('Subscriptions')"
|
||||
:title="$t('subscriptions')"
|
||||
icon="credit-card"
|
||||
:is-hover-disabled="true"
|
||||
/>
|
||||
@@ -146,7 +146,7 @@
|
||||
/>
|
||||
<Option
|
||||
@click.native="goToRoute('Invoices')"
|
||||
:title="$t('Transactions')"
|
||||
:title="$t('transactions')"
|
||||
icon="file-text"
|
||||
:is-hover-disabled="true"
|
||||
/>
|
||||
@@ -185,7 +185,7 @@ export default {
|
||||
admin: this.$t('administration'),
|
||||
}
|
||||
|
||||
return 'Go back from ' + location[this.clickedSubmenu]
|
||||
return this.$t('go_back_from_x', {location: location[this.clickedSubmenu]})
|
||||
},
|
||||
},
|
||||
data() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<PopupWrapper name="notifications-mobile">
|
||||
<!--Title-->
|
||||
<PopupHeader :title="$t('Notifications')" icon="bell" />
|
||||
<PopupHeader :title="$t('notifications')" icon="bell" />
|
||||
|
||||
<!--Content-->
|
||||
<PopupContent>
|
||||
@@ -11,18 +11,18 @@
|
||||
icon="check-square"
|
||||
class="mb-2 dark:!bg-4x-dark-foreground"
|
||||
>
|
||||
{{ $t('Clear all') }}
|
||||
{{ $t('clear_all') }}
|
||||
</MobileActionButton>
|
||||
|
||||
<p v-if="!readNotifications.length && !unreadNotifications.length" class="text-sm text-gray-500">
|
||||
{{ $t("There aren't any notifications.") }}
|
||||
{{ $t("not_any_notifications") }}
|
||||
</p>
|
||||
|
||||
<b
|
||||
v-if="unreadNotifications.length"
|
||||
class="dark-text-theme mt-1.5 mb-2.5 block px-2.5 text-xs text-gray-400"
|
||||
>
|
||||
{{ $t('Unread') }}
|
||||
{{ $t('unread') }}
|
||||
</b>
|
||||
|
||||
<Notification
|
||||
@@ -32,7 +32,7 @@
|
||||
/>
|
||||
|
||||
<b v-if="readNotifications.length" class="dark-text-theme mt-2.5 mb-2.5 block px-2.5 text-xs text-gray-400">
|
||||
{{ $t('Read') }}
|
||||
{{ $t('read') }}
|
||||
</b>
|
||||
|
||||
<Notification
|
||||
@@ -45,7 +45,7 @@
|
||||
<!--Actions-->
|
||||
<PopupActions>
|
||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
||||
{{ $t('Close') }}
|
||||
{{ $t('close') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</PopupWrapper>
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
<!--Emoji-->
|
||||
<AppInputSwitch
|
||||
v-if="pickedItem.data.type === 'folder'"
|
||||
:title="$t('Emoji as an Icon')"
|
||||
:description="$t('Replace folder icon with an Emoji')"
|
||||
:title="$t('emoji_as_an_icon')"
|
||||
:description="$t('replace_icon_with_emoji')"
|
||||
:is-last="!isEmoji"
|
||||
>
|
||||
<SwitchInput v-model="isEmoji" :state="isEmoji" />
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<PopupActions>
|
||||
<ButtonBase class="w-full" @click.native="showSection(undefined)" button-style="secondary">
|
||||
{{ $t('Show Details') }}
|
||||
{{ $t('show_details') }}
|
||||
</ButtonBase>
|
||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="theme">
|
||||
{{ $t('awesome_iam_done') }}
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
<PopupActions>
|
||||
<ButtonBase class="w-full" @click.native="showSection(undefined)" button-style="secondary">
|
||||
{{ $t('Show Details') }}
|
||||
{{ $t('show_details') }}
|
||||
</ButtonBase>
|
||||
<ButtonBase
|
||||
class="w-full"
|
||||
@@ -53,7 +53,7 @@
|
||||
:loading="isLoading"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
{{ $t('Send') }}
|
||||
{{ $t('send') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</div>
|
||||
@@ -180,7 +180,7 @@
|
||||
:loading="isLoading"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
{{ $t('Store Changes') }}
|
||||
{{ $t('store_changes') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</div>
|
||||
@@ -236,8 +236,8 @@ export default {
|
||||
popupTitle() {
|
||||
return (
|
||||
{
|
||||
'qr-code': this.$t('Get your QR code'),
|
||||
'email-sharing': this.$t('Share on multiple emails'),
|
||||
'qr-code': this.$t('get_qr_code'),
|
||||
'email-sharing': this.$t('share_with_multiple_emails'),
|
||||
}[this.activeSection] || this.$t('popup_share_edit.title')
|
||||
)
|
||||
},
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
v-if="!column.hidden"
|
||||
>
|
||||
<span class="text-xs text-gray-400 dark:text-gray-500">
|
||||
{{ column.label }}
|
||||
{{ $t(column.label) }}
|
||||
</span>
|
||||
|
||||
<chevron-up-icon
|
||||
@@ -192,7 +192,7 @@
|
||||
</ul>
|
||||
|
||||
<span class="text-xs text-gray-600 dark:text-gray-500">
|
||||
Showing {{ data.meta.from }} - {{ data.meta.to }} from {{ data.meta.total }} records
|
||||
{{ $t('paginator', {from: data.meta.from, to: data.meta.to, total: data.meta.total}) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
<!--Folder sub line-->
|
||||
<small v-if="isFolder" class="block text-xs text-gray-500">
|
||||
{{ folderItems === 0 ? $t('folder.empty') : $tc('folder.item_counts', folderItems) }},
|
||||
{{ folderItems === 0 ? $t('empty') : $tc('folder.item_counts', folderItems) }},
|
||||
{{ timeStamp }}
|
||||
</small>
|
||||
</div>
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<div class="mt-auto text-center">
|
||||
<div
|
||||
@click="$store.dispatch('logOut')"
|
||||
:title="$t('locations.logout')"
|
||||
:title="$t('logout')"
|
||||
class="button-icon inline-block cursor-pointer rounded-xl p-3 hover:bg-light-300 dark:hover:bg-4x-dark-foreground"
|
||||
>
|
||||
<power-icon size="20" />
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<ArrowDownIcon size="12" class="vue-feather text-gray-400" />
|
||||
|
||||
<span class="ml-1.5 text-xs text-gray-400">
|
||||
{{ $t('Navigate') }}
|
||||
{{ $t('navigate') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<CornerDownLeftIcon size="12" class="vue-feather text-gray-400" />
|
||||
|
||||
<span class="ml-1.5 text-xs text-gray-400">
|
||||
{{ $t('Go') }}
|
||||
{{ $t('go') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
@keyup.down="onPageDown"
|
||||
@keyup.up="onPageUp"
|
||||
type="text"
|
||||
placeholder="Spotlight search..."
|
||||
:placeholder="$t('spotlight_search')"
|
||||
ref="searchInput"
|
||||
/>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
class="relative z-50 px-4 pb-4"
|
||||
>
|
||||
<CategoryName>
|
||||
{{ $t('Suggested Filters') }}
|
||||
{{ $t('suggested_filters') }}
|
||||
</CategoryName>
|
||||
|
||||
<FilterSuggestion
|
||||
@@ -82,7 +82,7 @@
|
||||
<div v-if="isNotEmptyQuery" class="relative z-50 px-4 pb-4">
|
||||
<!--Show actions-->
|
||||
<CategoryName v-if="actions.length !== 0">
|
||||
{{ $t('Actions') }}
|
||||
{{ $t('actions') }}
|
||||
</CategoryName>
|
||||
|
||||
<div v-if="actions.length !== 0" class="mb-2">
|
||||
@@ -236,7 +236,7 @@
|
||||
|
||||
<!--Show results-->
|
||||
<CategoryName v-if="!activeFilter && results.length !== 0">
|
||||
{{ $t('Files & Folders') }}
|
||||
{{ $t('files_and_folders') }}
|
||||
</CategoryName>
|
||||
|
||||
<div v-if="results.length !== 0" v-for="(result, i) in results" :key="result.data.id" class="relative">
|
||||
@@ -377,56 +377,56 @@ export default {
|
||||
actionList() {
|
||||
let adminLocations = [
|
||||
{
|
||||
title: this.$t('Go To Dashboard'),
|
||||
title: this.$t('go_to_dashboard'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Dashboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Settings'),
|
||||
title: this.$t('go_to_settings'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'AppOthers',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Payments'),
|
||||
title: this.$t('go_to_payments'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'AppPayments',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Pages'),
|
||||
title: this.$t('go_to_pages'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Pages',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Languages'),
|
||||
title: this.$t('go_to_languages'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Language',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Show all Users'),
|
||||
title: this.$t('show_all_users'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Users',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Show all Plans'),
|
||||
title: this.$t('show_all_plans'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Plans',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Show Transactions'),
|
||||
title: this.$t('show_transactions'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Invoices',
|
||||
@@ -436,42 +436,42 @@ export default {
|
||||
|
||||
let fileLocations = [
|
||||
{
|
||||
title: this.$t('Go Home'),
|
||||
title: this.$t('go_home_spotlight'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Files',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Recent Uploads'),
|
||||
title: this.$t('go_to_recent_uploads'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'RecentUploads',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Publicly Shared'),
|
||||
title: this.$t('go_to_publicly_shared'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'MySharedItems',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Trash'),
|
||||
title: this.$t('go_to_trash'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Trash',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Team Folders'),
|
||||
title: this.$t('go_to_team_folders'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'TeamFolders',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Go To Shared with Me'),
|
||||
title: this.$t('go_to_shared_with_me'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'SharedWithMe',
|
||||
@@ -481,7 +481,7 @@ export default {
|
||||
|
||||
let adminActions = [
|
||||
{
|
||||
title: this.$t('Create User'),
|
||||
title: this.$t('create_user'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'UserCreate',
|
||||
@@ -491,42 +491,42 @@ export default {
|
||||
|
||||
let userSettings = [
|
||||
{
|
||||
title: this.$t('Update Profile Settings'),
|
||||
title: this.$t('update_profile_settings'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Profile',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Update Security & API'),
|
||||
title: this.$t('update_security_api'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Password',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Show Storage Details'),
|
||||
title: this.$t('show_storage_details'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Storage',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Show Billing'),
|
||||
title: this.$t('show_billing'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Billing',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Empty Your Trash'),
|
||||
title: this.$t('empty_your_trash'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'empty-trash',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Log Out'),
|
||||
title: this.$t('logout'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'log-out',
|
||||
@@ -536,14 +536,14 @@ export default {
|
||||
|
||||
let createList = [
|
||||
{
|
||||
title: this.$t('Create Team Folder'),
|
||||
title: this.$t('create_team_folder'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'create-team-folder',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Create File Request'),
|
||||
title: this.$t('create_file_request'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'create-file-request',
|
||||
@@ -553,21 +553,21 @@ export default {
|
||||
|
||||
let functionList = [
|
||||
{
|
||||
title: this.$t('Toggle Grid/List View'),
|
||||
title: this.$t('toggle_grid_list_view'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'toggle-grid-list',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Toggle Dark/Light Mode'),
|
||||
title: this.$t('toggle_dark_light_mode'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'dark-mode',
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('Toggle Full-Screen Mode'),
|
||||
title: this.$t('toggle_full_screen_mode'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'full-screen-mode',
|
||||
@@ -578,7 +578,7 @@ export default {
|
||||
// Available only for apple users
|
||||
if (this.$isApple()) {
|
||||
functionList.push({
|
||||
title: this.$t('Toggle Emoji Type'),
|
||||
title: this.$t('toggle_emoji_type'),
|
||||
action: {
|
||||
type: 'function',
|
||||
value: 'toggle-emoji',
|
||||
@@ -596,7 +596,7 @@ export default {
|
||||
// Available only for fixed subscription
|
||||
if (this.config.subscriptionType === 'fixed') {
|
||||
adminLocations.push({
|
||||
title: this.$t('Show all Subscriptions'),
|
||||
title: this.$t('show_all_subscriptions'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: 'Subscriptions',
|
||||
@@ -610,7 +610,7 @@ export default {
|
||||
this.config.subscriptionType === 'fixed'
|
||||
) {
|
||||
adminActions.push({
|
||||
title: this.$t('Create Plan'),
|
||||
title: this.$t('create_plan'),
|
||||
action: {
|
||||
type: 'route',
|
||||
value: this.config.subscriptionType === 'fixed' ? 'CreateFixedPlan' : 'CreateMeteredPlan',
|
||||
@@ -657,7 +657,7 @@ export default {
|
||||
filters: [
|
||||
{
|
||||
keyword: 'u',
|
||||
description: this.$t('Search through your users...'),
|
||||
description: this.$t('search_your_users'),
|
||||
slug: 'users',
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<PopupWrapper name="change-plan-subscription">
|
||||
<PopupHeader :title="$t('Change Your Plan')" icon="credit-card" />
|
||||
<PopupHeader :title="$t('change_your_plan')" icon="credit-card" />
|
||||
|
||||
<!--Select Payment Plans-->
|
||||
<PopupContent v-if="plans">
|
||||
<InfoBox v-if="plans.data.length === 0" class="!mb-0">
|
||||
<p>{{ $t("There isn't any plan yet.") }}</p>
|
||||
<p>{{ $t("not_any_plan") }}</p>
|
||||
</InfoBox>
|
||||
|
||||
<!--Toggle yearly billing-->
|
||||
@@ -37,7 +37,7 @@
|
||||
:button-style="buttonStyle"
|
||||
:loading="isLoading"
|
||||
@click.native="proceedToPayment"
|
||||
>{{ $t('Change Plan') }}
|
||||
>{{ $t('change_plan') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</PopupWrapper>
|
||||
@@ -152,7 +152,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your subscription was successfully changed.'),
|
||||
message: this.$t('subscription_changed'),
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
||||
{{ $t('User was deleted') }}
|
||||
{{ $t('user_was_deleted') }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
|
||||
{{ row.data.attributes.status }}
|
||||
{{ $t(row.data.attributes.status) }}
|
||||
</ColorLabel>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
||||
{{ $t('User was deleted') }}
|
||||
{{ $t('user_was_deleted') }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
|
||||
{{ row.data.attributes.status }}
|
||||
{{ $t(row.data.attributes.status) }}
|
||||
</ColorLabel>
|
||||
</td>
|
||||
<td class="px-3 md:px-1">
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
{{ card.data.attributes.last4 }}
|
||||
</b>
|
||||
</div>
|
||||
<b class="text-sm font-bold leading-none"> {{ $t('Expires') }} {{ card.data.attributes.expiration }} </b>
|
||||
<b class="text-sm font-bold leading-none"> {{ $t('expires') }} {{ card.data.attributes.expiration }} </b>
|
||||
<Trash2Icon @click="deleteCreditCard(card.data.id)" size="15" class="cursor-pointer" />
|
||||
</div>
|
||||
</template>
|
||||
@@ -27,10 +27,8 @@ export default {
|
||||
methods: {
|
||||
deleteCreditCard(id) {
|
||||
events.$emit('confirm:open', {
|
||||
title: this.$t('Are you sure you want to delete your credit card?'),
|
||||
message: this.$t(
|
||||
'We will no longer settle your payments automatically and you will have to fund your account for the next payments.'
|
||||
),
|
||||
title: this.$t('want_to_delete_card_title'),
|
||||
message: this.$t('want_to_delete_card_description'),
|
||||
action: {
|
||||
id: id,
|
||||
operation: 'delete-credit-card',
|
||||
@@ -48,7 +46,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your credit card was deleted.'),
|
||||
message: this.$t('credit_card_deleted'),
|
||||
})
|
||||
})
|
||||
.catch(() => this.$isSomethingWrong())
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
:class="{ 'text-gray-400': !isSelectedYearlyPlans }"
|
||||
class="cursor-pointer text-xs font-bold"
|
||||
>
|
||||
{{ $t('Billed Annually') }}
|
||||
{{ $t('billed_annually') }}
|
||||
</label>
|
||||
<div class="relative inline-block w-12 select-none align-middle">
|
||||
<SwitchInput
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div v-if="$store.getters.isLimitedUser" class="bg-red-500 py-1 text-center">
|
||||
<router-link :to="{ name: 'Billing' }" class="text-xs font-bold text-white">
|
||||
{{ $t('Your functionality is restricted. Please review your billing settings.') }}
|
||||
{{ $t('restricted_account_warning') }}
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<PopupWrapper name="select-plan-subscription">
|
||||
<PopupHeader :title="$t('Upgrade Your Account')" icon="credit-card" />
|
||||
<PopupHeader :title="$t('upgrade_your_account')" icon="credit-card" />
|
||||
|
||||
<!--Payment Options-->
|
||||
<div v-if="isPaymentOptionPage">
|
||||
@@ -9,7 +9,7 @@
|
||||
<PaymentMethod
|
||||
v-if="config.isStripe"
|
||||
driver="stripe"
|
||||
:description="$t('Pay by your credit card or Apple Pay')"
|
||||
:description="$t(config.stripe_payment_description)"
|
||||
>
|
||||
<div v-if="stripe.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
||||
<Spinner />
|
||||
@@ -19,7 +19,7 @@
|
||||
:class="{ 'opacity-0': stripe.isGettingCheckoutLink }"
|
||||
class="text-theme cursor-pointer text-sm font-bold"
|
||||
>
|
||||
{{ $t('Select') }}
|
||||
{{ $t('select') }}
|
||||
</span>
|
||||
</PaymentMethod>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<PaymentMethod
|
||||
@click.native="payByPayPal"
|
||||
driver="paypal"
|
||||
:description="$t('Available PayPal Credit, Debit or Credit Card.')"
|
||||
:description="$t(config.paypal_payment_description)"
|
||||
>
|
||||
<div v-if="paypal.isMethodLoading" class="translate-y-3 scale-50 transform">
|
||||
<Spinner />
|
||||
@@ -43,7 +43,7 @@
|
||||
:class="{ 'opacity-0': paypal.isMethodLoading }"
|
||||
class="text-theme cursor-pointer text-sm font-bold"
|
||||
>
|
||||
{{ $t('Select') }}
|
||||
{{ $t('select') }}
|
||||
</span>
|
||||
</PaymentMethod>
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<PaymentMethod
|
||||
v-if="config.isPaystack"
|
||||
driver="paystack"
|
||||
:description="$t('Available Bank Account, USSD, Mobile Money, Apple Pay')"
|
||||
:description="$t(config.paystack_payment_description)"
|
||||
>
|
||||
<div v-if="paystack.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
||||
<Spinner />
|
||||
@@ -65,14 +65,14 @@
|
||||
:class="{ 'opacity-0': paystack.isGettingCheckoutLink }"
|
||||
class="text-theme cursor-pointer text-sm font-bold"
|
||||
>
|
||||
{{ $t('Select') }}
|
||||
{{ $t('select') }}
|
||||
</span>
|
||||
</PaymentMethod>
|
||||
</PopupContent>
|
||||
|
||||
<PopupActions>
|
||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
||||
{{ $t('Cancel Payment') }}
|
||||
{{ $t('cancel_payment') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</div>
|
||||
@@ -110,7 +110,7 @@
|
||||
v-if="plans && plans.data.length !== 0"
|
||||
:button-style="buttonStyle"
|
||||
@click.native="isPaymentOptionPage = true"
|
||||
>{{ $t('Upgrade Account') }}
|
||||
>{{ $t('upgrade_account') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</div>
|
||||
@@ -221,7 +221,7 @@ export default {
|
||||
} catch (error) {
|
||||
events.$emit('toaster', {
|
||||
type: 'danger',
|
||||
message: this.$t('Failed to load the PayPal service'),
|
||||
message: this.$t('failed_to_load_paypal'),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your payment was successfully received.'),
|
||||
message: this.$t('payment_was_successfully_received'),
|
||||
})
|
||||
|
||||
// todo: temporary reload function
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div v-if="!hasPaymentMethod" class="card shadow-card">
|
||||
<FormLabel icon="dollar">
|
||||
{{ $t('Balance') }}
|
||||
{{ $t('balance') }}
|
||||
</FormLabel>
|
||||
|
||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||
@@ -25,7 +25,7 @@
|
||||
>
|
||||
<AppInputText
|
||||
:description="
|
||||
$t('The amount will be increased as soon as we register your charge from payment gateway.')
|
||||
$t('amount_increase_description')
|
||||
"
|
||||
:error="errors[0]"
|
||||
:is-last="true"
|
||||
@@ -33,7 +33,7 @@
|
||||
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
||||
<input
|
||||
v-model="chargeAmount"
|
||||
:placeholder="$t('Fund Your Account Balance...')"
|
||||
:placeholder="$t('fund_account_balance')"
|
||||
type="number"
|
||||
min="1"
|
||||
max="999999999"
|
||||
@@ -41,7 +41,7 @@
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
/>
|
||||
<ButtonBase type="submit" button-style="theme" class="w-full sm:w-auto">
|
||||
{{ $t('Make a Payment') }}
|
||||
{{ $t('make_payment') }}
|
||||
</ButtonBase>
|
||||
</div>
|
||||
</AppInputText>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="card shadow-card">
|
||||
<FormLabel icon="bell">
|
||||
{{ $t('Billing Alert') }}
|
||||
{{ $t('billing_alert') }}
|
||||
</FormLabel>
|
||||
|
||||
<div v-if="user.data.relationships.alert">
|
||||
@@ -22,7 +22,7 @@
|
||||
</b>
|
||||
|
||||
<b class="block text-sm dark:text-gray-500 text-gray-400">
|
||||
{{ $t('Alert will be triggered after you reach the value above.') }}
|
||||
{{ $t('billing_alert_description') }}
|
||||
</b>
|
||||
</div>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<AppInputText
|
||||
:description="
|
||||
$t(
|
||||
'You will receive an email whenever your monthly balance reaches the specified amount above.'
|
||||
'billing_alert_notes'
|
||||
)
|
||||
"
|
||||
:error="errors[0]"
|
||||
@@ -47,7 +47,7 @@
|
||||
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
||||
<input
|
||||
v-model="billingAlertAmount"
|
||||
:placeholder="$t('Alert Amount...')"
|
||||
:placeholder="$t('alert_amount_')"
|
||||
type="number"
|
||||
min="1"
|
||||
max="999999999"
|
||||
@@ -61,7 +61,7 @@
|
||||
button-style="theme"
|
||||
class="w-full sm:w-auto"
|
||||
>
|
||||
{{ $t('Update Alert') }}
|
||||
{{ $t('update_alert') }}
|
||||
</ButtonBase>
|
||||
</div>
|
||||
</AppInputText>
|
||||
@@ -80,7 +80,7 @@
|
||||
<AppInputText
|
||||
:description="
|
||||
$t(
|
||||
'You will receive an email whenever your monthly balance reaches the specified amount above.'
|
||||
'billing_alert_notes'
|
||||
)
|
||||
"
|
||||
:error="errors[0]"
|
||||
@@ -89,7 +89,7 @@
|
||||
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
||||
<input
|
||||
v-model="billingAlertAmount"
|
||||
:placeholder="$t('Alert Amount...')"
|
||||
:placeholder="$t('alert_amount_')"
|
||||
type="number"
|
||||
min="1"
|
||||
max="999999999"
|
||||
@@ -103,7 +103,7 @@
|
||||
button-style="theme"
|
||||
class="w-full sm:w-auto"
|
||||
>
|
||||
{{ $t('Set Alert') }}
|
||||
{{ $t('set_alert') }}
|
||||
</ButtonBase>
|
||||
</div>
|
||||
</AppInputText>
|
||||
@@ -162,7 +162,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your billing alert was updated successfully'),
|
||||
message: this.$t('alert_updated'),
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -192,7 +192,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your billing alert was set successfully'),
|
||||
message: this.$t('alert_set_successfully'),
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -207,9 +207,9 @@ export default {
|
||||
},
|
||||
deleteBillingAlert() {
|
||||
events.$emit('confirm:open', {
|
||||
title: this.$t('Are you sure you want to delete your alert?'),
|
||||
title: this.$t('want_to_delete_alert'),
|
||||
message: this.$t(
|
||||
'You will no longer receive any notifications that your billing limit has been exceeded.'
|
||||
'want_to_delete_alert_description'
|
||||
),
|
||||
action: {
|
||||
id: this.user.data.relationships.alert.data.id,
|
||||
@@ -231,7 +231,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your billing alert was deleted.'),
|
||||
message: this.$t('deleted_alert'),
|
||||
})
|
||||
})
|
||||
.catch(() => this.$isSomethingWrong())
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<div v-if="hasSubscription" class="card shadow-card">
|
||||
<FormLabel>
|
||||
{{ $t('Edit your Subscription') }}
|
||||
{{ $t('edit_your_subscription') }}
|
||||
</FormLabel>
|
||||
|
||||
<AppInputButton
|
||||
v-if="subscription.attributes.status !== 'cancelled'"
|
||||
:title="$t('Cancel Subscription')"
|
||||
:title="$t('cancel_subscription')"
|
||||
:description="
|
||||
$t(
|
||||
'You can cancel your subscription now. You\'ll continue to have access to the features you\'ve paid for until the end of your billing cycle.'
|
||||
'cancel_subscription_description'
|
||||
)
|
||||
"
|
||||
>
|
||||
@@ -19,17 +19,17 @@
|
||||
class="w-full sm:w-auto"
|
||||
button-style="secondary"
|
||||
>
|
||||
{{ $t('Cancel Now') }}
|
||||
{{ $t('cancel_now') }}
|
||||
</ButtonBase>
|
||||
</AppInputButton>
|
||||
|
||||
<AppInputButton
|
||||
:title="$t('Upgrade or Downgrade Plan')"
|
||||
:description="$t('You can upgrade your plan at any time you want.')"
|
||||
:title="$t('upgrade_downgrade_plan')"
|
||||
:description="$t('upgrade_downgrade_plan_description')"
|
||||
:is-last="true"
|
||||
>
|
||||
<ButtonBase @click.native="$changeSubscriptionOptions" class="w-full sm:w-auto" button-style="secondary">
|
||||
{{ $t('Change Plan') }}
|
||||
{{ $t('change_plan') }}
|
||||
</ButtonBase>
|
||||
</AppInputButton>
|
||||
</div>
|
||||
@@ -69,7 +69,7 @@ export default {
|
||||
methods: {
|
||||
cancelSubscriptionConfirmation() {
|
||||
events.$emit('confirm:open', {
|
||||
title: this.$t('Are you sure you want to cancel subscription?'),
|
||||
title: this.$t('want_cancel_subscription'),
|
||||
message: this.$t(
|
||||
"popup_subscription_cancel.message"
|
||||
),
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<div v-if="!hasSubscription" class="card shadow-card">
|
||||
<FormLabel>
|
||||
{{ $t('Subscription') }}
|
||||
{{ $t('subscription') }}
|
||||
</FormLabel>
|
||||
|
||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||
{{ $t('Free Plan') }}
|
||||
{{ $t('free_plan') }}
|
||||
</b>
|
||||
|
||||
<b v-if="$store.getters.config.allowed_payments" class="mb-3 mb-8 block text-sm text-gray-400">
|
||||
{{ $t('Upgrade your account to get more.') }}
|
||||
{{ $t('upgrade_to_get_more') }}
|
||||
</b>
|
||||
|
||||
<ButtonBase
|
||||
@@ -19,7 +19,7 @@
|
||||
button-style="theme"
|
||||
class="mt-4 w-full"
|
||||
>
|
||||
{{ $t('Upgrade Your Account') }}
|
||||
{{ $t('upgrade_your_account') }}
|
||||
</ButtonBase>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
class="card shadow-card"
|
||||
>
|
||||
<FormLabel icon="frown">
|
||||
{{ $t('Failed Payments') }}
|
||||
{{ $t('failed_payments') }}
|
||||
</FormLabel>
|
||||
|
||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||
@@ -14,7 +14,7 @@
|
||||
<b class="mb-3 mb-5 block text-sm text-gray-400">
|
||||
{{
|
||||
$t(
|
||||
"We are unable to charge your usage. Please register new credit card or fund your account with sufficient amount and we'll give it another try!"
|
||||
"unable_to_charge"
|
||||
)
|
||||
}}
|
||||
</b>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div v-if="hasSubscription" class="card shadow-card">
|
||||
<FormLabel>
|
||||
{{ $t('Subscription') }}
|
||||
{{ $t('subscription') }}
|
||||
</FormLabel>
|
||||
|
||||
<b class="-mt-3 mb-0.5 block text-xl font-extrabold sm:text-3xl">
|
||||
@@ -50,12 +50,12 @@ export default {
|
||||
max_team_members: 'purple',
|
||||
},
|
||||
message: {
|
||||
max_storage_amount: `Total ${item.use} of ${item.total} Used`,
|
||||
max_team_members: `Total ${item.use} of ${item.total} Members`,
|
||||
max_storage_amount: this.$t('total_x_of_x_used', {use: item.use, total:item.total }),
|
||||
max_team_members: this.$t('total_x_of_x_members', {use: item.use, total:item.total }),
|
||||
},
|
||||
title: {
|
||||
max_storage_amount: `Storage`,
|
||||
max_team_members: `Team Members`,
|
||||
max_storage_amount: this.$t('storage'),
|
||||
max_team_members: this.$t('team_members'),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -75,14 +75,14 @@ export default {
|
||||
},
|
||||
status() {
|
||||
return {
|
||||
active: `Active until ${this.subscription.data.attributes.renews_at}`,
|
||||
cancelled: `Ends at ${this.subscription.data.attributes.ends_at}`,
|
||||
active: this.$t('active_until', {date: this.subscription.data.attributes.renews_at}),
|
||||
cancelled: this.$t('ends_at_date', {date: this.subscription.data.attributes.ends_at}),
|
||||
}[this.subscription.data.attributes.status]
|
||||
},
|
||||
price() {
|
||||
return {
|
||||
month: `${this.subscription.data.relationships.plan.data.attributes.price} Per Month`,
|
||||
year: `${this.subscription.data.relationships.plan.data.attributes.price} Per Year`,
|
||||
month: this.$t('price_per_month', {price: this.subscription.data.relationships.plan.data.attributes.price}),
|
||||
year: this.$t('price_per_year', {price: this.subscription.data.relationships.plan.data.attributes.price}),
|
||||
}[this.subscription.data.relationships.plan.data.attributes.interval]
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div v-if="canShowForMeteredBilling || canShowForFixedBilling" class="card shadow-card">
|
||||
<FormLabel icon="credit-card">
|
||||
{{ $t('Payment Method') }}
|
||||
{{ $t('payment_method') }}
|
||||
</FormLabel>
|
||||
|
||||
<!-- User has registered payment method -->
|
||||
@@ -23,7 +23,7 @@
|
||||
<PaymentCard v-for="card in user.data.relationships.creditCards.data" :key="card.data.id" :card="card" />
|
||||
|
||||
<small class="hidden pt-3 text-xs leading-none dark:text-gray-500 text-gray-500 sm:block">
|
||||
{{ $t('We are settling your payment automatically via your saved credit card.') }}
|
||||
{{ $t('auto_settled_credit_card') }}
|
||||
</small>
|
||||
</div>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
button-style="theme"
|
||||
class="mt-4 w-full"
|
||||
>
|
||||
{{ $t('Add Payment Method') }}
|
||||
{{ $t('add_payment_method') }}
|
||||
</ButtonBase>
|
||||
|
||||
<!-- Store credit card form -->
|
||||
@@ -59,7 +59,7 @@
|
||||
button-style="theme"
|
||||
class="mt-4 w-full"
|
||||
>
|
||||
{{ $t('Store My Credit Card') }}
|
||||
{{ $t('store_my_credit_card') }}
|
||||
</ButtonBase>
|
||||
<div id="error-message" class="pt-2 text-xs text-rose-600">
|
||||
<!-- Display error message to your customers here -->
|
||||
@@ -124,7 +124,7 @@ export default {
|
||||
if (this.config.isDemo && this.user.data.attributes.email === 'ho**@hi5ve.digital') {
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your credit card was stored successfully'),
|
||||
message: this.$t('credit_card_stored'),
|
||||
})
|
||||
|
||||
return
|
||||
@@ -153,7 +153,7 @@ export default {
|
||||
// site first to authorize the payment, then redirected to the `return_url`.
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your credit card was stored successfully'),
|
||||
message: this.$t('credit_card_stored'),
|
||||
})
|
||||
|
||||
// TODO: L9 - load credit card after was stored in database
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="card shadow-card">
|
||||
<FormLabel icon="file-text">
|
||||
{{ $t('Transactions') }}
|
||||
{{ $t('transactions') }}
|
||||
</FormLabel>
|
||||
|
||||
<DatatableWrapper
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="card shadow-card">
|
||||
<FormLabel icon="file-text">
|
||||
{{ $t('Transactions') }}
|
||||
{{ $t('transactions') }}
|
||||
</FormLabel>
|
||||
|
||||
<DatatableWrapper class="overflow-x-auto" api="/api/user/transactions" :paginator="true" :columns="columns">
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div v-if="canShowForSubscription" class="card shadow-card">
|
||||
<FormLabel>
|
||||
{{ $t('Update Payments') }}
|
||||
{{ $t('update_payments') }}
|
||||
</FormLabel>
|
||||
|
||||
<AppInputButton
|
||||
:title="$t('Update your Payment Method')"
|
||||
:description="$t('You will be redirected to your payment provider to edit your payment method.')"
|
||||
:title="$t('update_payment_method')"
|
||||
:description="$t('payment_method_update_redirect_description')"
|
||||
:is-last="true"
|
||||
>
|
||||
<ButtonBase
|
||||
@@ -15,7 +15,7 @@
|
||||
class="w-full sm:w-auto"
|
||||
button-style="theme"
|
||||
>
|
||||
{{ $t('Update Payments') }}
|
||||
{{ $t('update_payments') }}
|
||||
</ButtonBase>
|
||||
</AppInputButton>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="card shadow-card">
|
||||
<FormLabel icon="bar-chart">
|
||||
{{ $t('Usage Estimates') }}
|
||||
{{ $t('usage_estimates') }}
|
||||
</FormLabel>
|
||||
|
||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
||||
{{ user.data.relationships.subscription.data.attributes.updated_at }}
|
||||
{{ $t('till now') }}
|
||||
{{ $t('till_now') }}
|
||||
</b>
|
||||
|
||||
<div
|
||||
@@ -39,7 +39,7 @@
|
||||
</div>
|
||||
|
||||
<small class="mt-6 block font-bold">
|
||||
{{ $t('Records are updated on daily bases.') }}
|
||||
{{ $t('records_updated_daily_bases') }}
|
||||
</small>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div @click="togglePermission" class="permission-toggle">
|
||||
<b class="privilege">{{ teamPermissions[permission] }}</b>
|
||||
<b class="privilege">{{ $t(teamPermissions[permission]) }}</b>
|
||||
<refresh-cw-icon size="14" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{{ teamFolder.data.attributes.name }}
|
||||
</b>
|
||||
<span class="subtitle mb-2 block text-tiny text-gray-600 dark:text-gray-500">
|
||||
{{ $t('Created at') }} {{ teamFolder.data.attributes.created_at }}
|
||||
{{ $t('created_at') }} {{ teamFolder.data.attributes.created_at }}
|
||||
</span>
|
||||
<TeamMembersPreview :folder="teamFolder" :avatar-size="32" class="members" />
|
||||
</div>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
{{ entry.email }}
|
||||
</b>
|
||||
<span v-if="entry.id" class="block text-xs text-gray-600 dark:text-gray-500">
|
||||
{{ $t('Waiting for accept invitation...') }}
|
||||
{{ $t('waiting_for_accept_invitation') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="w-28">
|
||||
<div v-if="!teamFolder" class="text-right md:text-center">
|
||||
<span class="mr-3 align-middle text-tiny text-gray-600 dark:text-gray-500 md:mr-0.5">
|
||||
{{ $t('Not selected') }}
|
||||
{{ $t('not_selected') }}
|
||||
</span>
|
||||
</div>
|
||||
<TeamMembersPreview
|
||||
|
||||
@@ -33,14 +33,14 @@
|
||||
|
||||
<!--Add Member-->
|
||||
<ValidationProvider tag="div" mode="passive" name="Email" v-slot="{ errors }">
|
||||
<AppInputText :title="$t('Add Member')" :error="errors[0]">
|
||||
<AppInputText :title="$t('add_member')" :error="errors[0]">
|
||||
<div class="relative">
|
||||
<span
|
||||
v-if="email"
|
||||
@click="addMember"
|
||||
class="button-base theme absolute right-2 top-1/2 -translate-y-1/2 transform cursor-pointer rounded-lg px-3 py-2 text-sm font-bold"
|
||||
>
|
||||
Add
|
||||
{{ $t('add') }}
|
||||
</span>
|
||||
<input
|
||||
@keypress.enter.stop.prevent="addMember"
|
||||
@@ -49,7 +49,7 @@
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
type="email"
|
||||
class="focus-border-theme input-dark"
|
||||
:placeholder="$t('Type member email...')"
|
||||
:placeholder="$t('type_member_email_')"
|
||||
/>
|
||||
</div>
|
||||
</AppInputText>
|
||||
@@ -57,15 +57,15 @@
|
||||
|
||||
<!--Member list-->
|
||||
<ValidationProvider tag="div" mode="passive" name="Members" rules="required" v-slot="{ errors }">
|
||||
<AppInputText :title="$t('Your Members')" :error="errors[0]" :is-last="true">
|
||||
<AppInputText :title="$t('your_members')" :error="errors[0]" :is-last="true">
|
||||
<span v-if="errors[0]" class="error-message" style="margin-top: -5px">
|
||||
{{ $t('Please add at least one member.') }}
|
||||
{{ $t('add_at_least_one_member') }}
|
||||
</span>
|
||||
|
||||
<TeamList v-model="invitations" />
|
||||
|
||||
<p v-if="Object.values(invitations).length === 0" class="text-xs dark:text-gray-500">
|
||||
{{ $t('Please add at least one member into your Team Folders.') }}
|
||||
{{ $t('add_at_least_one_member_into_team_folder') }}
|
||||
</p>
|
||||
</AppInputText>
|
||||
</ValidationProvider>
|
||||
@@ -128,10 +128,10 @@ export default {
|
||||
computed: {
|
||||
...mapGetters(['user']),
|
||||
popupTitle() {
|
||||
return this.item ? this.$t('Convert as Team Folder') : this.$t('Create Team Folder')
|
||||
return this.item ? this.$t('convert_as_team_folder') : this.$t('create_team_folder')
|
||||
},
|
||||
popupSubmit() {
|
||||
return this.item ? this.$t('Move & Invite Members') : this.$t('Create Team Folder')
|
||||
return this.item ? this.$t('move_and_invite_members') : this.$t('create_team_folder')
|
||||
},
|
||||
isNewFolderTeamCreation() {
|
||||
return !this.item
|
||||
@@ -187,8 +187,8 @@ export default {
|
||||
}
|
||||
|
||||
let toasterMessage = this.isNewFolderTeamCreation
|
||||
? this.$t('Your Team was invited successfully.')
|
||||
: this.$t('Your Team was invited and folder was moved into Team Folders section.')
|
||||
? this.$t('team_was_invited')
|
||||
: this.$t('team_was_invited_and_folder_moved')
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
@@ -209,14 +209,14 @@ export default {
|
||||
addMember() {
|
||||
if (this.$isInvalidEmail(this.email)) {
|
||||
this.$refs.teamFolderForm.setErrors({
|
||||
Email: this.$t('You have to type valid email'),
|
||||
Email: this.$t('type_valid_email'),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if (this.$cantInviteMember(this.email, this.invitations)) {
|
||||
this.$refs.teamFolderForm.setErrors({
|
||||
Email: this.$t('You have to upgrade your account to add this new member.'),
|
||||
Email: this.$t('upgrade_to_invite_members'),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<PopupWrapper name="update-team-folder">
|
||||
<!--Title-->
|
||||
<PopupHeader :title="$t('Edit Team Folder')" icon="user-plus" />
|
||||
<PopupHeader :title="$t('edit_team_folder')" icon="user-plus" />
|
||||
|
||||
<!--Content-->
|
||||
<PopupContent>
|
||||
@@ -12,14 +12,14 @@
|
||||
<ValidationObserver @submit.prevent="updateTeamFolder" ref="teamFolderForm" v-slot="{ invalid }" tag="form">
|
||||
<!--Add Member-->
|
||||
<ValidationProvider tag="div" mode="passive" name="Email" v-slot="{ errors }">
|
||||
<AppInputText :title="$t('Add Member')" :error="errors[0]">
|
||||
<AppInputText :title="$t('add_member')" :error="errors[0]">
|
||||
<div class="relative">
|
||||
<span
|
||||
v-if="email"
|
||||
@click="addMember"
|
||||
class="button-base theme absolute right-2 top-1/2 -translate-y-1/2 transform cursor-pointer rounded-lg px-3 py-2 text-sm font-bold"
|
||||
>
|
||||
Add
|
||||
{{ $t('add') }}
|
||||
</span>
|
||||
|
||||
<!--TODO: Fix !pr-20 after JIT official release-->
|
||||
@@ -30,7 +30,7 @@
|
||||
:class="{ '!border-rose-600': errors[0] }"
|
||||
type="email"
|
||||
class="focus-border-theme input-dark !pr-20"
|
||||
:placeholder="$t('Type member email...')"
|
||||
:placeholder="$t('type_member_email_')"
|
||||
/>
|
||||
</div>
|
||||
</AppInputText>
|
||||
@@ -38,9 +38,9 @@
|
||||
|
||||
<!--Member list-->
|
||||
<ValidationProvider tag="div" mode="passive" name="Members" v-slot="{ errors }">
|
||||
<label class="input-label">{{ $t('Your Members') }}:</label>
|
||||
<label class="input-label">{{ $t('your_members') }}:</label>
|
||||
<span v-if="errors[0]" class="error-message" style="margin-top: -5px">{{
|
||||
$t('Please add at least one member.')
|
||||
$t('add_at_least_one_member')
|
||||
}}</span>
|
||||
<TeamList v-model="members" />
|
||||
<TeamList v-model="invitations" />
|
||||
@@ -49,7 +49,7 @@
|
||||
v-if="Object.values(members).length === 0 && Object.values(invitations).length === 0"
|
||||
class="text-xs dark:text-gray-500"
|
||||
>
|
||||
{{ $t('Please add at least one member into your Team Folder.') }}
|
||||
{{ $t('add_at_least_one_member_into_team_folder') }}
|
||||
</p>
|
||||
</ValidationProvider>
|
||||
</ValidationObserver>
|
||||
@@ -66,7 +66,7 @@
|
||||
:button-style="isDisabledSubmit ? 'secondary' : 'theme'"
|
||||
:loading="isLoading"
|
||||
:disabled="isLoading || isDisabledSubmit"
|
||||
>{{ $t('Update Team Folder') }}
|
||||
>{{ $t('update_team_folder') }}
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</PopupWrapper>
|
||||
@@ -139,7 +139,7 @@ export default {
|
||||
|
||||
events.$emit('toaster', {
|
||||
type: 'success',
|
||||
message: this.$t('Your team folder was updated'),
|
||||
message: this.$t('team_folder_updated'),
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -160,14 +160,14 @@ export default {
|
||||
addMember() {
|
||||
if (this.$isInvalidEmail(this.email)) {
|
||||
this.$refs.teamFolderForm.setErrors({
|
||||
Email: this.$t('You have to type valid email'),
|
||||
Email: this.$t('type_valid_email'),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if (this.$cantInviteMember(this.email, this.invitations)) {
|
||||
this.$refs.teamFolderForm.setErrors({
|
||||
Email: this.$t('You have to upgrade your account to add this new member.'),
|
||||
Email: this.$t('upgrade_to_invite_members'),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user