Merge remote-tracking branch 'origin/v2' into oasis

# Conflicts:
#	app/Http/Controllers/User/AccountController.php
#	app/Http/helpers.php
#	public/mix-manifest.json
#	resources/js/components/FilesView/Icons/AlphabetIcon.vue
#	resources/js/components/FilesView/MobileActionButton.vue
#	resources/js/views/Admin/AppSettings/AppSettingsTabs/Appearance.vue
#	resources/js/views/Admin/Users/UserTabs/UserDetail.vue
#	resources/js/views/Upgrade/UpgradeBilling.vue
#	resources/views/index.blade.php
#	resources/views/vuefilemanager/invoice.blade.php
#	resources/views/vuefilemanager/others/color-template.blade.php
This commit is contained in:
Peter Papp
2021-04-01 10:45:10 +02:00
124 changed files with 3745 additions and 3576 deletions
+21 -10
View File
@@ -3,7 +3,7 @@
<Alert />
<ToastrWrapper />
<router-view />
<router-view v-if="isLoadedTranslations" />
<CookieDisclaimer />
<Vignette />
@@ -25,6 +25,11 @@ export default {
Vignette,
Alert
},
data() {
return {
isLoadedTranslations: false
}
},
methods: {
unClick() {
events.$emit('unClick')
@@ -32,15 +37,21 @@ export default {
},
beforeMount() {
// Store config to vuex
this.$store.commit('INIT', {
config: this.$root.$data.config,
rootDirectory: {
name: this.$t('locations.home'),
location: 'base',
id: undefined
}
})
// Get language translations
this.$store.dispatch('getLanguageTranslations', this.$root.$data.config.language)
.then(response => {
this.isLoadedTranslations = true
// Store config to vuex
this.$store.commit('INIT', {
config: this.$root.$data.config,
rootDirectory: {
name: this.$t('locations.home'),
location: 'base',
id: undefined
}
})
})
// Get installation state
let installation = this.$root.$data.config.installation
@@ -395,16 +395,5 @@ export default {
background: $dark_mode_foreground !important;
}
}
.preview-sorting {
/deep/ .label {
color: $text !important;
}
/deep/ .preview-sorting {
path, line, polyline, rect, circle {
stroke: $dark_mode_text_primary !important;
}
}
}
}
</style>
@@ -104,7 +104,7 @@
return option.value === this.fileInfoDetail[0].shared.permission
})
return title ? title.label : this.$t('shared.can_download')
return title ? this.$t(title.label) : this.$t('shared.can_download')
},
sharedIcon() {
switch (this.fileInfoDetail[0].shared.permission) {
@@ -363,9 +363,10 @@ export default {
.show-actions {
cursor: pointer;
padding: 12px 6px 12px;
padding: 12px 0 12px 6px;
.icon-action {
margin-top: 9px;
@include font-size(14);
circle {
@@ -1,5 +1,5 @@
<template>
<svg class="alphabet-icon" fill="none" stroke="currentColor" stroke-width="2" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" width="15px" height="15px" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg class="alphabet-icon" fill="none" stroke="currentColor" stroke-width="2" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" width="15px" height="15px" viewBox="0 0 15 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<polyline id="Path" points="11.1999993 13.1999991 5.59999967 0.199999094 0 13.1999991 5.59999967 0.199999094"></polyline>
<line x1="2.25" y1="8" x2="8.75" y2="8" id="Line-2"></line>
</svg>
@@ -1,20 +1,19 @@
<template>
<svg
width="15px" height="15px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="VueFileManager" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<g id="Storage-Alert-Copy" transform="translate(-1092.000000, -28.000000)" stroke="#000000" stroke-width="1.4">
<g id="Toolbar" transform="translate(331.000000, 19.000000)">
<g id="Tools" transform="translate(581.000000, 9.000000)">
<g id="sort-icon" transform="translate(181.000000, 1.000000)">
<rect id="Rectangle" x="9.77777778" y="0" width="6.22222222" height="6.22222222"></rect>
<rect id="Rectangle" x="9.77777778" y="9.77777778" width="6.22222222" height="6.22222222"></rect>
<line x1="0" y1="2" x2="6" y2="2" id="Path"></line>
<line x1="0" y1="8" x2="6" y2="8" id="Path"></line>
<line x1="0" y1="14" x2="6" y2="14" id="Path"></line>
</g>
</g>
</g>
</g>
</g>
<svg class="preview-list-icon" fill="none" stroke="currentColor" stroke-width="1.5" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" width="15px" height="15px" viewBox="0 0 20 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="9.77777778" y="0" width="6.22222222" height="6.22222222"></rect>
<rect x="9.77777778" y="9.77777778" width="6.22222222" height="6.22222222"></rect>
<line x1="0" y1="2" x2="6" y2="2"></line>
<line x1="0" y1="8" x2="6" y2="8"></line>
<line x1="0" y1="14" x2="6" y2="14"></line>
</svg>
</template>
</template>
<style lang="scss">
.preview-list-icon {
rect, line {
color: inherit;
}
}
</style>
@@ -12,7 +12,7 @@
<x-square-icon v-if="icon === 'x-square'" size="15" class="icon dark-text-theme" />
<check-icon v-if="icon === 'check'" size="15" class="icon dark-text-theme" />
<dollar-sign-icon v-if="icon === 'dollar-sign'" size="15" class="icon dark-text-theme" />
<sorting-and-preview-icon v-if="icon === 'preview-sorting'" size="15" class="icon preview-sorting" />
<sorting-and-preview-icon v-if="icon === 'preview-sorting'" size="15" class="icon dark-text-theme preview-sorting" />
<span class="label">
<slot></slot>
</span>
@@ -32,7 +32,6 @@
components: {
SortingAndPreviewIcon,
CheckSquareIcon,
DollarSignIcon,
CreditCardIcon,
FolderPlusIcon,
UserPlusIcon,
@@ -83,20 +82,6 @@
&:active {
@include transform(scale(0.95));
}
/*&:hover {
background: rgba($theme, 0.1);
.icon {
path, line, polyline, rect, circle {
stroke: $theme;
}
}
.label {
color: $theme;
}
}*/
}
@media (prefers-color-scheme: dark) {
@@ -1,7 +1,7 @@
<template>
<button class="mobile-action-button">
<div class="flex">
<upload-cloud-icon class="icon" size="15"></upload-cloud-icon>
<upload-cloud-icon class="icon dark-text-theme" size="15" />
<label label="file" class="label button file-input button-base">
<slot></slot>
<input
@@ -69,7 +69,7 @@
background: $dark_mode_foreground;
path, line, polyline, rect, circle {
stroke: $theme;
color: inherit;
}
.label {
@@ -6,9 +6,9 @@
<MobileActionButton @click.native="$store.dispatch('emptyTrash')" icon="trash">
{{ $t('context_menu.empty_trash') }}
</MobileActionButton>
<MobileMultiSelectButton @click.native="enableMultiSelectMode">
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
{{ $t('context_menu.select') }}
</MobileMultiSelectButton>
</MobileActionButton>
<MobileActionButton class="preview-sorting" @click.native="showViewOptions" icon="preview-sorting">
{{$t('preview_sorting.preview_sorting_button')}}
</MobileActionButton>
@@ -23,9 +23,9 @@
<MobileActionButtonUpload :class="{'is-inactive' : multiSelectMode}">
{{ $t('context_menu.upload') }}
</MobileActionButtonUpload>
<MobileMultiSelectButton @click.native="enableMultiSelectMode">
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
{{ $t('context_menu.select') }}
</MobileMultiSelectButton>
</MobileActionButton>
<MobileActionButton class="preview-sorting" @click.native="showViewOptions" icon="preview-sorting">
{{$t('preview_sorting.preview_sorting_button')}}
</MobileActionButton>
@@ -49,9 +49,9 @@
<!--ContextMenu for Base location with VISITOR permission-->
<div v-if="baseLocationVisitorMenu && ! multiSelectMode" class="mobile-actions">
<MobileMultiSelectButton @click.native="enableMultiSelectMode">
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
{{ $t('context_menu.select') }}
</MobileMultiSelectButton>
</MobileActionButton>
<MobileActionButton class="preview-sorting" @click.native="showViewOptions" icon="preview-sorting">
{{$t('preview_sorting.preview_sorting_button')}}
</MobileActionButton>
@@ -64,7 +64,6 @@
<script>
import MobileActionButtonUpload from '@/components/FilesView/MobileActionButtonUpload'
import MobileMultiSelectButton from '@/components/FilesView/MobileMultiSelectButton'
import MobileActionButton from '@/components/FilesView/MobileActionButton'
import UploadProgress from '@/components/FilesView/UploadProgress'
import {mapGetters} from 'vuex'
@@ -74,7 +73,6 @@
name: 'MobileActions',
components: {
MobileActionButtonUpload,
MobileMultiSelectButton,
MobileActionButton,
UploadProgress,
},
@@ -157,18 +155,6 @@
position: absolute;
}
.preview-sorting {
background: $light_background !important;
/deep/ .label {
color: $text !important;
}
/deep/ .preview-sorting {
path, line, polyline, rect, circle {
stroke: $text !important;
}
}
}
#mobile-actions-wrapper {
display: none;
background: white;
@@ -202,16 +188,5 @@
#mobile-actions-wrapper {
background: $dark_mode_background;
}
.preview-sorting {
background: $dark_mode_foreground !important;
/deep/ .label {
color: $dark_mode_text_primary !important;
}
/deep/ .preview-sorting {
path, line, polyline, rect, circle {
stroke: $theme !important;
}
}
}
}
</style>
@@ -1,100 +0,0 @@
<template>
<button class="mobile-action-button" :class="{'active' : mobileSelectingActive}">
<div class="flex" >
<CheckSquareIcon size="15" class="icon"></CheckSquareIcon>
<span class="label">
<slot></slot>
</span>
</div>
</button>
</template>
<script>
import {CheckSquareIcon} from "vue-feather-icons";
import {events} from '@/bus'
export default {
name: 'MobileActionButton',
props: [
'icon'
],
components: {
CheckSquareIcon
},
data () {
return {
mobileSelectingActive: false
}
},
mounted() {
events.$on('mobileSelecting:start' , () => {
this.mobileSelectingActive = true
})
events.$on('mobileSelecting:stop' , () => {
this.mobileSelectingActive = false
})
}
}
</script>
<style scoped lang="scss">
@import '@assets/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins';
.mobile-action-button {
background: $light_background;
margin-right: 15px;
border-radius: 8px;
padding: 7px 10px;
cursor: pointer;
border: none;
@include transition(150ms);
.flex {
display: flex;
align-items: center;
}
.icon {
margin-right: 10px;
@include font-size(14);
path, line, polyline, rect, circle {
@include transition(150ms);
}
}
.label {
@include transition(150ms);
@include font-size(14);
font-weight: 700;
color: $text;
}
}
.active {
.icon {
path, line, polyline, rect, circle {
stroke: $theme !important;
}
}
.label {
color: $theme !important;
}
}
@media (prefers-color-scheme: dark) {
.mobile-action-button {
background: $dark_mode_foreground;
path, line, polyline, rect, circle {
stroke: $theme;
}
.label {
color: $dark_mode_text_primary;
}
}
}
</style>
@@ -32,7 +32,7 @@
<ul v-if="config.isAuthenticated" class="navigation-links">
<li v-if="config.userRegistration">
<router-link class="cta-button text-theme bg-theme-100" :to="{name: 'Files'}">
Go to Files <!--todo: preklad-->
{{ $t('go_to_files') }}
</router-link>
</li>
</ul>
@@ -17,6 +17,7 @@
<cloud-icon v-if="link.icon === 'cloud'" size="17"></cloud-icon>
<monitor-icon v-if="link.icon === 'monitor'" size="17"></monitor-icon>
<box-icon v-if="link.icon === 'box'" size="17"></box-icon>
<globe-icon v-if="link.icon === 'language'" size="17"></globe-icon>
</div>
<b class="menu-link">
<span>{{ link.title }}</span>
@@ -39,6 +40,7 @@
Trash2Icon,
CloudIcon,
PowerIcon,
GlobeIcon,
ShareIcon,
UsersIcon,
UserIcon,
@@ -61,6 +63,7 @@
Trash2Icon,
CloudIcon,
PowerIcon,
GlobeIcon,
UsersIcon,
ShareIcon,
LockIcon,
@@ -11,7 +11,7 @@
<!--More Actions-->
<div @click="showMobileNavigation" class="mobile-menu">
<menu-icon size="17" class="icon"></menu-icon>
<menu-icon size="17" class="icon" />
</div>
</header>
</template>
@@ -72,7 +72,7 @@
a {
font-size: 12px;
color: $theme;
text-decoration: underline;
}
}
}
@@ -0,0 +1,864 @@
<template>
<PopupWrapper name="create-language">
<!--Title-->
<PopupHeader :title="$t('create_language')" icon="edit" />
<!--Content-->
<PopupContent>
<!--Form to set sharing-->
<ValidationObserver @submit.prevent="createLanguage" ref="createForm" v-slot="{ invalid }" tag="form" class="form-wrapper">
<ValidationProvider tag="div" mode="passive" class="input-wrapper password" name="Language Locale" rules="required" v-slot="{ errors }">
<label class="input-label">{{ $t('select_locale') }}:</label>
<SelectInput v-model="form.locale" :options="locales" :placeholder="$t('select_language_locale')" :isError="errors[0]" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" class="input-wrapper password" name="Language Name" rules="required" v-slot="{ errors }">
<label class="input-label">{{ $t('locale_name') }}:</label>
<input v-model="form.name" :class="{'is-error': errors[0]}" type="text" ref="input" class="focus-border-theme" :placeholder="$t('type_language_name')">
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</ValidationObserver>
</PopupContent>
<!--Actions-->
<PopupActions>
<ButtonBase
class="popup-button"
@click.native="$closePopup()"
button-style="secondary"
>
{{ $t('global.cancel') }}
</ButtonBase>
<ButtonBase
class="popup-button"
@click.native="createLanguage"
button-style="theme"
:loading="isLoading"
:disabled="isLoading"
>
{{ $t('create_language') }}
</ButtonBase>
</PopupActions>
</PopupWrapper>
</template>
<script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from '@/components/Others/Popup/PopupWrapper'
import PopupActions from '@/components/Others/Popup/PopupActions'
import PopupContent from '@/components/Others/Popup/PopupContent'
import PopupHeader from '@/components/Others/Popup/PopupHeader'
import SelectInput from '@/components/Others/Forms/SelectInput'
import ButtonBase from '@/components/FilesView/ButtonBase'
import {required} from 'vee-validate/dist/rules'
import {events} from '@/bus'
import axios from 'axios'
export default {
name: 'CreateLanguage',
components: {
ValidationProvider,
ValidationObserver,
PopupWrapper,
PopupActions,
PopupContent,
PopupHeader,
SelectInput,
ButtonBase,
required,
},
data() {
return {
form: {
name: undefined,
locale: undefined,
},
isLoading: false,
locales: [
{
value: "ab",
label: "Abkhaz"
},
{
value: "aa",
label: "Afar"
},
{
value: "af",
label: "Afrikaans"
},
{
value: "ak",
label: "Akan"
},
{
value: "sq",
label: "Albanian"
},
{
value: "am",
label: "Amharic"
},
{
value: "ar",
label: "Arabic"
},
{
value: "an",
label: "Aragonese"
},
{
value: "hy",
label: "Armenian"
},
{
value: "as",
label: "Assamese"
},
{
value: "av",
label: "Avaric"
},
{
value: "ae",
label: "Avestan"
},
{
value: "ay",
label: "Aymara"
},
{
value: "az",
label: "Azerbaijani"
},
{
value: "bm",
label: "Bambara"
},
{
value: "ba",
label: "Bashkir"
},
{
value: "eu",
label: "Basque"
},
{
value: "be",
label: "Belarusian"
},
{
value: "bn",
label: "Bengali; Bangla"
},
{
value: "bh",
label: "Bihari"
},
{
value: "bi",
label: "Bislama"
},
{
value: "bs",
label: "Bosnian"
},
{
value: "br",
label: "Breton"
},
{
value: "bg",
label: "Bulgarian"
},
{
value: "my",
label: "Burmese"
},
{
value: "ca",
label: "Catalan; Valencian"
},
{
value: "ch",
label: "Chamorro"
},
{
value: "ce",
label: "Chechen"
},
{
value: "ny",
label: "Chichewa; Chewa; Nyanja"
},
{
value: "zh",
label: "Chinese"
},
{
value: "cv",
label: "Chuvash"
},
{
value: "kw",
label: "Cornish"
},
{
value: "co",
label: "Corsican"
},
{
value: "cr",
label: "Cree"
},
{
value: "hr",
label: "Croatian"
},
{
value: "cs",
label: "Czech"
},
{
value: "da",
label: "Danish"
},
{
value: "dv",
label: "Divehi; Dhivehi; Maldivian;"
},
{
value: "nl",
label: "Dutch"
},
{
value: "dz",
label: "Dzongkha"
},
{
value: "en",
label: "English"
},
{
value: "eo",
label: "Esperanto"
},
{
value: "et",
label: "Estonian"
},
{
value: "ee",
label: "Ewe"
},
{
value: "fo",
label: "Faroese"
},
{
value: "fj",
label: "Fijian"
},
{
value: "fi",
label: "Finnish"
},
{
value: "fr",
label: "French"
},
{
value: "ff",
label: "Fula; Fulah; Pulaar; Pular"
},
{
value: "gl",
label: "Galician"
},
{
value: "lg",
label: "Ganda"
},
{
value: "ka",
label: "Georgian"
},
{
value: "de",
label: "German"
},
{
value: "el",
label: "Greek, Modern"
},
{
value: "gn",
label: "Guaraní"
},
{
value: "gu",
label: "Gujarati"
},
{
value: "ht",
label: "Haitian; Haitian Creole"
},
{
value: "ha",
label: "Hausa"
},
{
value: "he",
label: "Hebrew (modern)"
},
{
value: "hz",
label: "Herero"
},
{
value: "hi",
label: "Hindi"
},
{
value: "ho",
label: "Hiri Motu"
},
{
value: "hu",
label: "Hungarian"
},
{
value: "ia",
label: "Interlingua"
},
{
value: "id",
label: "Indonesian"
},
{
value: "ie",
label: "Interlingue"
},
{
value: "ga",
label: "Irish"
},
{
value: "ig",
label: "Igbo"
},
{
value: "ik",
label: "Inupiaq"
},
{
value: "io",
label: "Ido"
},
{
value: "is",
label: "Icelandic"
},
{
value: "it",
label: "Italian"
},
{
value: "iu",
label: "Inuktitut"
},
{
value: "ja",
label: "Japanese"
},
{
value: "jv",
label: "Javanese"
},
{
value: "kl",
label: "Kalaallisut, Greenlandic"
},
{
value: "kn",
label: "Kannada"
},
{
value: "kr",
label: "Kanuri"
},
{
value: "ks",
label: "Kashmiri"
},
{
value: "kk",
label: "Kazakh"
},
{
value: "km",
label: "Khmer"
},
{
value: "ki",
label: "Kikuyu, Gikuyu"
},
{
value: "rw",
label: "Kinyarwanda"
},
{
value: "rn",
label: "Kirundi"
},
{
value: "ky",
label: "Kyrgyz"
},
{
value: "kv",
label: "Komi"
},
{
value: "kg",
label: "Kongo"
},
{
value: "ko",
label: "Korean"
},
{
value: "ku",
label: "Kurdish"
},
{
value: "kj",
label: "Kwanyama, Kuanyama"
},
{
value: "la",
label: "Latin"
},
{
value: "lb",
label: "Luxembourgish, Letzeburgesch"
},
{
value: "li",
label: "Limburgish, Limburgan, Limburger"
},
{
value: "ln",
label: "Lingala"
},
{
value: "lo",
label: "Lao"
},
{
value: "lt",
label: "Lithuanian"
},
{
value: "lu",
label: "Luba-Katanga"
},
{
value: "lv",
label: "Latvian"
},
{
value: "gv",
label: "Manx"
},
{
value: "mk",
label: "Macedonian"
},
{
value: "mg",
label: "Malagasy"
},
{
value: "ms",
label: "Malay"
},
{
value: "ml",
label: "Malayalam"
},
{
value: "mt",
label: "Maltese"
},
{
value: "mi",
label: "MÄori"
},
{
value: "mr",
label: "Marathi"
},
{
value: "mh",
label: "Marshallese"
},
{
value: "mn",
label: "Mongolian"
},
{
value: "na",
label: "Nauru"
},
{
value: "nv",
label: "Navajo, Navaho"
},
{
value: "nb",
label: "Norwegian"
},
{
value: "nd",
label: "North Ndebele"
},
{
value: "ne",
label: "Nepali"
},
{
value: "ng",
label: "Ndonga"
},
{
value: "nn",
label: "Norwegian Nynorsk"
},
{
value: "no",
label: "Norwegian"
},
{
value: "ii",
label: "Nuosu"
},
{
value: "oc",
label: "Occitan"
},
{
value: "oj",
label: "Ojibwe, Ojibwa"
},
{
value: "cu",
label: "Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic"
},
{
value: "om",
label: "Oromo"
},
{
value: "or",
label: "Oriya"
},
{
value: "os",
label: "Ossetian, Ossetic"
},
{
value: "pa",
label: "Panjabi, Punjabi"
},
{
value: "pi",
label: "Pali"
},
{
value: "fa",
label: "Persian (Farsi)"
},
{
value: "pl",
label: "Polish"
},
{
value: "ps",
label: "Pashto, Pushto"
},
{
value: "pt",
label: "Portuguese"
},
{
value: "qu",
label: "Quechua"
},
{
value: "rm",
label: "Romansh"
},
{
value: "ro",
label: "Romanian"
},
{
value: "ru",
label: "Russian"
},
{
value: "sa",
label: "Sanskrit"
},
{
value: "sc",
label: "Sardinian"
},
{
value: "sd",
label: "Sindhi"
},
{
value: "se",
label: "Northern Sami"
},
{
value: "sm",
label: "Samoan"
},
{
value: "sg",
label: "Sango"
},
{
value: "sr",
label: "Serbian"
},
{
value: "gd",
label: "Scottish Gaelic"
},
{
value: "sn",
label: "Shona"
},
{
value: "si",
label: "Sinhala, Sinhalese"
},
{
value: "sk",
label: "Slovak"
},
{
value: "sl",
label: "Slovene"
},
{
value: "so",
label: "Somali"
},
{
value: "st",
label: "Southern Sotho"
},
{
value: "az",
label: "South Azerbaijani"
},
{
value: "nr",
label: "South Ndebele"
},
{
value: "es",
label: "Spanish; Castilian"
},
{
value: "su",
label: "Sundanese"
},
{
value: "sw",
label: "Swahili"
},
{
value: "ss",
label: "Swati"
},
{
value: "sv",
label: "Swedish"
},
{
value: "ta",
label: "Tamil"
},
{
value: "te",
label: "Telugu"
},
{
value: "tg",
label: "Tajik"
},
{
value: "th",
label: "Thai"
},
{
value: "ti",
label: "Tigrinya"
},
{
value: "bo",
label: "Tibetan Standard, Tibetan, Central"
},
{
value: "tk",
label: "Turkmen"
},
{
value: "tl",
label: "Tagalog"
},
{
value: "tn",
label: "Tswana"
},
{
value: "to",
label: "Tonga (Tonga Islands)"
},
{
value: "tr",
label: "Turkish"
},
{
value: "ts",
label: "Tsonga"
},
{
value: "tt",
label: "Tatar"
},
{
value: "tw",
label: "Twi"
},
{
value: "ty",
label: "Tahitian"
},
{
value: "ug",
label: "Uyghur, Uighur"
},
{
value: "uk",
label: "Ukrainian"
},
{
value: "ur",
label: "Urdu"
},
{
value: "uz",
label: "Uzbek"
},
{
value: "ve",
label: "Venda"
},
{
value: "vi",
label: "Vielabele"
},
{
value: "vo",
label: "Volapük"
},
{
value: "wa",
label: "Walloon"
},
{
value: "cy",
label: "Welsh"
},
{
value: "wo",
label: "Wolof"
},
{
value: "fy",
label: "Western Frisian"
},
{
value: "xh",
label: "Xhosa"
},
{
value: "yi",
label: "Yiddish"
},
{
value: "yo",
label: "Yoruba"
},
{
value: "za",
label: "Zhuang, Chuang"
},
{
value: "zu",
label: "Zulu"
}
]
}
},
methods: {
async createLanguage() {
// Validate fields
const isValid = await this.$refs.createForm.validate();
if (isValid) {
this.isLoading = true
axios.post('/api/admin/languages', this.form)
.then(response => {
events.$emit('reload:languages', response.data)
})
.catch(() => {
this.$isSomethingWrong()
})
.finally(() => {
this.form = {
name: undefined,
locale: undefined,
}
this.isLoading = false
this.$closePopup()
})
}
},
}
}
</script>
<style scoped lang="scss">
@import "@assets/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms';
.item-thumbnail {
margin-bottom: 20px;
}
</style>
@@ -1,6 +1,7 @@
<template>
<div class="form-label">
<edit-2-icon size="22" class="icon text-theme" />
<edit-2-icon v-if="!icon" size="22" class="icon text-theme" />
<settings-icon v-if="icon === 'settings'" size="22" class="icon text-theme" />
<b class="label">
<slot></slot>
</b>
@@ -8,12 +9,14 @@
</template>
<script>
import { Edit2Icon } from 'vue-feather-icons'
import { Edit2Icon, SettingsIcon } from 'vue-feather-icons'
export default {
name: 'FormLabel',
props: ['icon'],
components: {
Edit2Icon
Edit2Icon,
SettingsIcon
}
}
</script>
@@ -30,7 +33,7 @@
.icon {
margin-right: 10px;
path {
path, circle {
color: inherit;
}
}
@@ -0,0 +1,115 @@
<template>
<div class="search-bar">
<div v-if="!query" class="icon">
<search-icon size="19" />
</div>
<div @click="clearInput" v-if="query" class="icon">
<x-icon class="pointer" size="19"></x-icon>
</div>
<input
v-model="query"
@input="$emit('input', query)"
class="query focus-border-theme"
type="text"
name="searchInput"
:placeholder="$t('search_translations')"
/>
</div>
</template>
<script>
import {SearchIcon, XIcon} from 'vue-feather-icons'
export default {
name: 'SearchInput',
components: {
SearchIcon,
XIcon,
},
data() {
return {
query: undefined,
}
},
methods: {
clearInput() {
this.query = undefined
this.$emit('reset-query')
},
},
}
</script>
<style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins';
@import '@assets/vuefilemanager/_forms';
.search-bar {
padding: 7px 0px;
position: relative;
width: 100%;
border-radius: 8px;
input {
background: $light_background;
border-radius: 8px;
outline: 0;
padding: 9px 20px 9px 43px;
font-weight: 700;
@include font-size(16);
width: 100%;
height: 50px;
min-width: 175px;
transition: 0.15s all ease;
border: 1px solid transparent;
-webkit-appearance: none;
box-shadow: none;
&::placeholder {
color: $light_text;
@include font-size(14);
font-weight: 700;
}
&:focus {
border-width: 1px;
border-style: solid;
}
&:focus + .icon {
path {
color: inherit;
}
}
}
.icon {
height: 100%;
position: absolute;
top: 0;
left: 0;
padding: 11px 15px;
display: flex;
align-items: center;
circle,
line {
color: $light_text;
}
.pointer {
cursor: pointer;
}
}
}
@media (prefers-color-scheme: dark) {
.search-bar {
input {
background: $dark_mode_foreground;
}
}
}
</style>
@@ -34,7 +34,7 @@
<!--Permission Select-->
<ValidationProvider v-if="isFolder" tag="div" mode="passive" class="input-wrapper" name="Permission" rules="required" v-slot="{ errors }">
<label class="input-label">{{ $t('shared_form.label_permission') }}:</label>
<SelectInput v-model="shareOptions.permission" :options="permissionOptions" :placeholder="$t('shared_form.placeholder_permission')" :isError="errors[0]" />
<SelectInput v-model="shareOptions.permission" :options="$translateSelectOptions(permissionOptions)" :placeholder="$t('shared_form.placeholder_permission')" :isError="errors[0]" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -58,7 +58,7 @@
<!--Set expiration-->
<div class="input-wrapper">
<label class="input-label">{{ $t('shared_form.label_expiration') }}:</label>
<SelectBoxInput v-model="shareOptions.expiration" :data="expirationList" class="box" />
<SelectBoxInput v-model="shareOptions.expiration" :data="$translateSelectOptions(expirationList)" class="box" />
</div>
</div>
+2 -2
View File
@@ -33,7 +33,7 @@
<!--Permision Select-->
<ValidationProvider v-if="isFolder" tag="div" mode="passive" class="input-wrapper" name="Permission" rules="required" v-slot="{ errors }">
<label class="input-label">{{ $t('shared_form.label_permission') }}:</label>
<SelectInput v-model="shareOptions.permission" :options="permissionOptions" :default="shareOptions.permission" :placeholder="$t('shared_form.placeholder_permission')" :isError="errors[0]"/>
<SelectInput v-model="shareOptions.permission" :options="$translateSelectOptions(permissionOptions)" :default="shareOptions.permission" :placeholder="$t('shared_form.placeholder_permission')" :isError="errors[0]"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -60,7 +60,7 @@
<!--Set expiration-->
<div class="input-wrapper">
<label class="input-label">{{ $t('shared_form.label_expiration') }}:</label>
<SelectBoxInput v-model="shareOptions.expiration" :data="expirationList" :value="shareOptions.expiration" class="box"/>
<SelectBoxInput v-model="shareOptions.expiration" :data="$translateSelectOptions(expirationList)" :value="shareOptions.expiration" class="box"/>
</div>
</div>
+19 -1
View File
@@ -1,6 +1,6 @@
import i18n from '@/i18n/index'
import store from './store/index'
import {debounce, includes} from "lodash";
import {debounce, includes, isArray} from "lodash";
import {events} from './bus'
import axios from 'axios'
import router from '@/router'
@@ -54,6 +54,24 @@ const Helpers = {
}
}
Vue.prototype.$translateSelectOptions = function (options) {
return options.map(role => {
let key, values;
if (isArray(role.label)) {
[key, values] = role.label
}
return {
label: isArray(role.label)
? i18n.t(key, values)
: i18n.t(role.label),
value: role.value,
icon: role.icon ? role.icon : '',
}
})
}
Vue.prototype.$getImage = function (source) {
return source ? this.$store.getters.config.host + '/' + source : ''
}
+2 -8
View File
@@ -1,17 +1,11 @@
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import en from './lang/en.json'
import sk from './lang/sk.json'
import cn from './lang/cn.json'
Vue.use(VueI18n);
const i18n = new VueI18n({
locale: config.locale,
messages: Object.assign({
en
}),
locale: config.language,
silentTranslationWarn: true,
});
export default i18n;
-843
View File
@@ -1,843 +0,0 @@
{
"actions": {
"create_folder": "穿件文件夹",
"delete": "删除内容",
"move": "Move item",
"preview": "更改预览",
"share": "Share item",
"upload": "上传文件",
"close": "Close",
"sorting_view": "Sorting and View",
"info_panel": "Info panel"
},
"activation": {
"stripe": {
"button": "设置您的Stripe帐户",
"description": "To charge your users, please set up your Stripe account credentials.",
"title": "您的Stripe帐户尚未设置"
}
},
"admin_menu": {
"dashboard": "仪表板",
"invoices": "发票",
"pages": "网页",
"plans": "计划",
"settings": "设置",
"users": "Users"
},
"admin_page_dashboard": {
"backer_button": "Help Us Improve",
"license": "执照",
"version": "版",
"w_latest_users": {
"title": "最新注册"
},
"w_total_premium": {
"link": "显示所有计划",
"title": "高级用户总数"
},
"w_total_space": {
"link": "显示所有用户",
"title": "总使用空间"
},
"w_total_users": {
"link": "显示所有用户",
"title": "用户总数"
}
},
"admin_page_invoices": {
"empty": {
"description": "所有客户发票将在此处显示。",
"title": "您还没有发票"
},
"table": {
"number": "发票编号",
"payed": "祈祷,",
"plan": "计划",
"total": "总",
"user": "用户"
}
},
"admin_page_plans": {
"create_plan_button": "创建计划",
"delete_plan_button": "删除计划",
"disclaimer_delete_plan": "您可以删除计划,但是请注意!",
"disclaimer_edit_price": "由于Stripe服务设计,您的计划的价格更改不可用。如果您希望更改价格计划,请创建新计划。",
"empty": {
"button": "创建新计划",
"description": "要创建新计划,请单击下面的按钮。",
"title": "您还没有任何计划"
},
"form": {
"description": "说明(可选)",
"description_plac": "计划说明",
"name": "名称",
"name_delete_plac": "键入计划名称",
"name_plac": "计划名称",
"price": "价钱",
"price_plac": "计划价格",
"status": "状态",
"status_help": "您计划在网站上的可用性状态。",
"storage": "存储容量",
"storage_helper": "您只需要输入数字,例如值“ 5”表示用户将拥有5GB的存储容量。",
"storage_plac": "存储容量",
"title_delete": "删除计划",
"title_details": "计划详情",
"title_pricing": "计划定价"
},
"subscribers": {
"empty": "尚无任何订阅者。"
},
"table": {
"name": "计划名称",
"price": "价钱",
"status": "状态",
"storage_capacity": "存储容量",
"subscribers": "订户"
},
"tabs": {
"delete": "删除计划",
"settings": "设置",
"subscribers": "订户"
}
},
"admin_page_user": {
"change_capacity": "Change Capacity",
"create_user": {
"avatar": "阿凡达",
"group_details": "Account Details",
"group_settings": "Account Settings",
"label_conf_pass": "Confirm password",
"label_email": "Type E-mail",
"label_name": "Type full name",
"submit": "Create User"
},
"delete_user": "Delete User",
"invoices": {
"empty": "用户还没有任何发票。"
},
"label_change_capacity": "Type storage capacity in GB",
"label_delete_user": "Type with Case Sensitive user name {user}",
"label_person_info": "Personal Information",
"placeholder_delete_user": "Type here",
"save_role": "Save Role",
"select_role": "Select user role",
"send_password_link": "Send Password Reset Link",
"subscription": {
"empty": "用户还没有任何订阅。",
"interval_mo": "每月一次"
},
"table": {
"action": "Action",
"created_at": "Registered",
"name": "User",
"plan": "订阅计划",
"role": "Role",
"storage_capacity": "Storage Capacity",
"storage_used": "Storage Used"
},
"tabs": {
"delete": "Delete User",
"detail": "Detail",
"invoices": "发票",
"password": "Password",
"storage": "Storage Usage",
"subscription": "订阅"
}
},
"admin_pages": {
"form": {
"content": "内容",
"content_plac": "在这里输入您的内容...",
"slug": "金属块",
"title": "标题",
"title_plac": "标题名称",
"visibility": "能见度",
"visibility_help": "您的网页在网站上的可见性状态。"
},
"table": {
"page": "页",
"slug": "金属块",
"status": "状态"
}
},
"admin_settings": {
"appearance": {
"description": "应用说明",
"description_plac": "输入您的应用说明",
"favicon": "App Favicon(可选)",
"logo": "应用徽标(可选)",
"logo_horizontal": "应用徽标水平(可选)",
"section_appearance": "出现",
"section_general": "常规设置",
"title": "应用标题",
"title_plac": "输入您的应用标题"
},
"billings": {
"address": "帐单地址",
"address_plac": "输入您的帐单地址",
"city": "计费城市",
"city_plac": "输入您的帐单城市",
"company_name": "公司名",
"company_name_plac": "输入您的公司名称",
"country": "账单国家",
"country_plac": "选择您的帐单国家",
"phone_number": "帐单电话号码(可选)",
"phone_number_plac": "输入您的帐单电话号码",
"postal_code": "帐单邮递区号",
"postal_code_plac": "输入您的帐单邮递区号",
"section_billing": "账单信息",
"section_company": "公司信息",
"state": "账单状态",
"state_plac": "输入您的帐单状态",
"vat": "增值税号",
"vat_plac": "输入您的增值税号"
},
"email": {
"driver": "邮件驱动程序",
"driver_plac": "输入您的邮件驱动程序",
"email_disclaimer": "This form is not fully pre-filled for security reasons. Your email settings is available in your <b>.env</b> file. For apply new Email settings, please confirm your options by button at the end of formular.",
"encryption": "邮件加密",
"encryption_plac": "选择您的邮件加密",
"host": "邮件主机",
"host_plac": "输入您的邮件主机",
"password": "邮件密码",
"password_plac": "输入您的邮件密码",
"port": "邮件端口",
"port_plac": "输入您的邮件端口",
"save_button": "保存电子邮件设置",
"section_email": "电邮设定",
"username": "邮件用户名",
"username_plac": "输入您的邮件用户名"
},
"others": {
"upload_limit": "Upload Limit",
"upload_limit_plac": "Type your upload limit in MB",
"upload_limit_help": "If you want to set max file size limit on single upload, add size of your limit in MB. E.g. 100 means 100 MB and 2 000 means 2 000 MB limit.",
"mimetypes_blacklist": "Mimetypes Blacklist",
"mimetypes_blacklist_plac":"Add mimetypes to Blacklist" ,
"mimetypes_blacklist_help" :"If you want to prevent upload some type of files, just add them to blacklist like this: x-php,mp3,jpeg <br/> Use a comma between each mimetype. Don't use a dot before mimetypes." ,
"section_cache": "Application Cache",
"cache_disclaimer": "Did you change anything in your .env file or change your stripe credentials? Then clear your cache.",
"cache_clear": "Clear Cache",
"allow_registration": "允许用户注册",
"allow_registration_help": "您可以为新用户禁用公共注册。您仍然可以在管理面板中 <br/>创建新用户。",
"contact_email": "联系电子邮件",
"contact_email_plac": "输入您的联系电子邮件",
"default_storage": "用户帐户的默认存储空间",
"default_storage_plac": "设置默认存储空间(以GB为单位)",
"google_analytics": "Google Analytics(分析)代码(可选)",
"google_analytics_plac": "粘贴您的Google Analytics(分析)代码",
"section_others": "其他设定",
"section_user": "用户和存储",
"storage_limit": "储存限制",
"storage_limit_help": "如果禁用此值,则所有用户将具有无限存储容量,并且您将无法 <br/>向用户收取存储计划的费用。"
},
"payments": {
"allow_payments": "允许订阅付款",
"button_submit": "测试并保存条带",
"button_testing": "测试条连接",
"credentials_disclaimer": "不显示您的Stripe凭据,因为这些值是秘密的,陌生人不得透露。您可以在 <b>.env</b> 文件中更改Stripe凭据。",
"section_payments": "条纹付款",
"stripe_create_acc": "如果您没有带区帐户,请 <a href=\"https://dashboard.stripe.com/register\" target=\"_blank\">在</a> 这里注册并获取您的可发布密钥,秘密密钥并创建您的网络挂钩。",
"stripe_create_webhook": "",
"stripe_currency": "Stripe Currency",
"stripe_currency_plac": "Select your Stripe currency",
"stripe_pub_key": "Publishable Key",
"stripe_pub_key_plac": "Paste your publishable key",
"stripe_sec_key": "Secret Key",
"stripe_sec_key_plac": "Paste your secret key",
"stripe_setup": "Stripe Setup",
"stripe_webhook_key_plac": "Paste your stripe webhook secret",
"webhook_url": "Stripe webhook URL"
},
"tabs": {
"appearance": "出现",
"billings": "帐单",
"email": "电子邮件",
"others": "其他",
"payments": "支付"
}
},
"alerts": {
"error_confirm": "哦,出了个问题!",
"leave_to_sign_in": "Do you really want to leave?",
"success_confirm": "太棒了!"
},
"context_menu": {
"add_folder": "添加文件夹",
"add_to_favourites": "添加进收藏",
"create_folder": "创建文件夹",
"delete": "删除",
"detail": "详情",
"download": "下载",
"empty_trash": "清空垃圾箱",
"log_out": "注销",
"move": "移动",
"profile_settings": "个人信息编辑",
"remove_from_favourites": "移出收藏",
"rename": "重命名",
"restore": "恢复文件",
"share": "分享",
"share_cancel": "Cancel Sharing",
"share_edit": "编辑分享设定",
"upload": "上传",
"select": "Select",
"no_options": "No Options Available",
"zip_folder": "Zip and Download"
},
"mobile_selecting": {
"select_all": "Select All",
"deselect_all": "Deselect All",
"done": "Done"
},
"preview_sorting": {
"grid_view": "Grid View",
"list_view": "List View",
"sort_date": "Sort By Date",
"sort_alphabet": "Sort By Aplhabet",
"preview_sorting_button": "View"
},
"cookie_disclaimer": {
"button": "cookies policy",
"description": "By browsing this website you are agreeing to our {0}."
},
"datatable": {
"paginate_info": "Showing 1 - {visible} from {total} records"
},
"empty_page": {
"call_to_action": "文件上传",
"description": "拖动文件至此处,或使用上传按钮",
"title": "这里什么都还没有"
},
"errors": {
"capacity_digit": "存储容量必须小于10位数字。"
},
"file_detail": {
"author": "作者",
"author_participant": "公共参与者",
"created_at": "创建于",
"shared": "分享",
"size": "大小",
"where": "地址",
"selected_multiple": "Selected Multiple Items",
"items": "Items"
},
"file_detail_meta": {
"dimension": "Dimensions",
"resolution": "Resolution",
"color_space": "Color Space",
"aperture_value": "Aperture Value",
"meta_data": "Metadata",
"author": "Author",
"time_data": "Content Created",
"make": "Camera",
"model": "Model",
"camera_lens": "Camera Lens",
"aperature": "F Number",
"iso": "ISO",
"focal": "Focal Length",
"exposure": "Exposure Time",
"longitude": "Longitude",
"latitude": "Latitude"
},
"folder": {
"empty": "空的",
"item_counts": "{count} 个文件 | {count} 个文件"
},
"global": {
"incomplete": "Incomplete",
"active": "活性",
"admin": "管理员",
"cancel": "取消",
"canceled": "取消",
"confirm_action": "是,我确定",
"default": "默认",
"free": "自由",
"get_it": "莫",
"menu": "菜单",
"monthly_ac": "莫",
"or": "要么",
"premium": "额外费用",
"saas": "服务",
"subscription": "订阅",
"total": "总",
"upgrade_plan": "升级计划"
},
"input_image": {
"supported": "Supported formats are .png, .jpg, .jpeg.",
"title": "Upload Image"
},
"inputs": {
"placeholder_search_files": "搜索文件"
},
"item_thumbnail": {
"deleted_at": "删除时间: {time}",
"original_location": "原始位置"
},
"locations": {
"home": "首页",
"shared": "已分享",
"trash": "垃圾箱",
"profile": "Profile",
"settings": "Settings",
"logout": "Log Out"
},
"menu": {
"admin": "Admin",
"files": "Files",
"invoices": "发票",
"latest": "Recent Uploads",
"logout": "Log Out",
"password": "Password",
"payment_cards": "付款卡",
"profile": "Profile Settings",
"settings": "Settings",
"shared": "Shared Files",
"storage": "Storage",
"subscription": "订阅",
"trash": "Trash"
},
"messages": {
"nothing_from_participants": "You don't have any uploads from other users.",
"nothing_to_preview": "没有任何信息可以预览。",
"nothing_was_found": "没找到任何信息。"
},
"notice": {
"stripe_activation": "您的Stripe帐户尚未设置。要向您的用户收费,请 {0}。",
"stripe_activation_button": "设置您的Stripe帐户"
},
"page_contact_us": {
"description": "你有任何问题吗?请与我们联系。",
"error_message": "出问题了,请重试。",
"form": {
"email": "电子邮件",
"email_plac": "输入您的电子邮件",
"message": "信息",
"message_plac": "在这里输入你的消息...",
"submit_button": "发信息"
},
"success_message": "您的消息已成功发送。",
"title": "联系我们"
},
"page_create_password": {
"button_update": "更新密码",
"label_confirm_pass": "确认密码",
"label_email": "邮箱:",
"label_new_pass": "键入新密码",
"subtitle": "在此创建您的新密码",
"title": "只需一步进行登录"
},
"page_forgotten_password": {
"button_get_link": "获得链接",
"pass_reseted_signin": "登录",
"pass_reseted_subtitle": "您的密码被成功重置。",
"pass_reseted_title": "太棒了!",
"pass_sennded_subtitle": "我们为您发送了一封确认邮件!",
"pass_sennded_title": "感谢!",
"password_remember_button": "登录。",
"password_remember_text": "还记得住您的密码么?",
"subtitle": "通过邮箱获得重置链接:",
"title": "忘记密码?"
},
"page_index": {
"get_started_button": "立即注册",
"menu": {
"contact_us": "联系我们",
"log_in": "登录",
"pricing": "价钱",
"sign_in": "注册"
},
"sign_feature_1": "无需信用卡",
"sign_feature_2": "{defaultSpace} 可用存储空间",
"sign_up_button": "立即注册"
},
"page_login": {
"button_next": "下一步",
"placeholder_email": "键入您的邮箱",
"registration_button": "注册帐号",
"registration_text": "没有帐号?",
"subtitle": "请输入您的邮箱来登录。",
"title": "欢迎回来!"
},
"page_pricing_tables": {
"description": "选择计划巫婆完全适合您的需求。所有计划都会通过您的信用卡每月自动结算。",
"storage_capacity": "储存容量",
"vat_excluded": "Price displayed excludes VAT.",
"title": "选择您的计划"
},
"page_registration": {
"agreement": "通过单击“创建帐户”按钮,我同意 {0} 和 {1}。",
"button_create_account": "创建账户",
"have_an_account": "您之前有过账户了么?",
"label_confirm_pass": "确认密码:",
"label_email": "邮箱:",
"label_name": "全名:",
"label_pass": "创建密码:",
"placeholder_confirm_pass": "请重复输入一遍密码",
"placeholder_email": "键入您的邮箱地址",
"placeholder_name": "键入您的全名",
"placeholder_pass": "键入新密码",
"subtitle": "填写所有内容进行创建",
"title": "创建一个新用户"
},
"page_shared": {
"download_file": "下载文件",
"placeholder_pass": "输入密码",
"submit": "提交",
"subtitle": "请输入密码后得到分享链接",
"title": "您的分享链接已被保护"
},
"page_shared_404": {
"subtitle": "您要找的内容可能已经被删除了。",
"title": "没有找到文件"
},
"page_sign_in": {
"button_log_in": "登录",
"password_reset_button": "重置密码。",
"password_reset_text": "忘记密码?",
"placeholder_password": "键入密码",
"subtitle": "请用您的密码登录",
"title": "您是 {name}?"
},
"page_upgrade_account": {
"change_payment": {
"change_payment": "更改您的默认付款方式",
"pay_by_new_card": "用新信用卡付款",
"you_can": "你也可以"
},
"desription": "选择计划巫婆完全适合您的需求。所有计划都会通过您的信用卡每月自动结算。",
"errors": {
"pay_by_another_card": "请用另一张付款卡付款"
},
"section_billing": "账单信息",
"section_card": "支付卡",
"section_summary": "订购摘要",
"summary": {
"period": "每月计费",
"submit_button": "用信用卡付款",
"submit_disclaimer": "通过提交表单,您同意在您的{app}帐户中保存付款方式和帐单信息。",
"total_with_vat": "Total with VAT",
"vat": "VAT"
},
"title": "选择付款方式"
},
"popup_upload_limit": {
"title": "You exceed upload limit on single file",
"message": "Size of your uploaded file exceed the upload limit ({uploadLimit})."
},
"popup_mimetypes_blacklist": {
"title": "You are trying to upload unsupported file type",
"message": "File of this type ({mimetype}) is not allowed to upload."
},
"popup_zipping": {
"title": "Zipping Your Files...",
"message": "Please wait until your files start downloading."
},
"popup_create_folder": {
"folder_default_name": "New Folder",
"title": "Create Folder",
"label": "Type Name",
"placeholder": "Type your name"
},
"popup_delete_card": {
"message": "此事件不可逆转,您的付款卡将被永久删除",
"title": "你确定吗?"
},
"popup_deleted_plan": {
"message": "您的计划已成功删除。",
"title": "计划已删除"
},
"popup_deleted_user": {
"message": "Your user was deleted with all user data content.",
"title": "User was deleted"
},
"popup_deleted_user_aborted": {
"message": "You can't delete this account while user have active subscription.",
"title": "User wasn't deleted"
},
"popup_error": {
"message": "有什么东西坏掉了,请联系我们,引导我们修复。",
"title": "wow,好像有什么东西坏掉了!"
},
"popup_exceed_limit": {
"message": "请联系我们来增加您的存储空间。",
"title": "wow,您已经超过了存储上线。"
},
"popup_move_item": {
"cancel": "取消",
"submit": "移动文件/夹",
"title": "移动文件/夹"
},
"popup_pass_changed": {
"message": "现在,您拥有一个新的密码。",
"title": "您的密码已经改变!"
},
"popup_passport_error": {
"message": "Probably you didn't generated Passport Grant client or you didn't set up passport credentials in your .env file. Please follow install instructions.",
"title": "Invalid Passport Grand Client"
},
"popup_paylod_error": {
"message": "Sorry, your file is too large and can't be uploaded",
"title": "File is too large"
},
"popup_rename": {
"title": "Rename Your {item}",
"label": "Edit Name",
"placeholder": "Type your title",
"tab_emoji_title": "Emoji as an Icon",
"tab_color_title": "Folder Color",
"select_emoji_label": "Pick Your Emoji Icon",
"color_pick_label": "Pick Your Color",
"set_emoji_input_placeholder": "Emojis List...",
"search_emoji_input_placeholder": "Search your emoji...",
"emoji_list_not_found": "Not Found"
},
"popup_set_card": {
"message": "您的卡将被设置为默认卡,并且在以后的结算中始终会收取费用。",
"title": "设为默认卡?"
},
"popup_share_create": {
"title": "分享您的 {item}"
},
"popup_share_edit": {
"change_pass": "更改密码",
"confirm": "确认",
"save": "保存更改",
"stop": "停止风险",
"title": "更新分享设定",
"go_back": "Go Back",
"send_to_recipients": "Send to Recipients"
},
"popup_signup_error": {
"message": "Please check your database connection if everything works correctly.",
"title": "Server Error"
},
"popup_subscription_cancel": {
"button": "我受够了",
"message": "在结算周期结束之前,您将可以继续使用已付费的功能。",
"title": "订阅已恢复"
},
"popup_subscription_resumed": {
"button": "棒极了!",
"message": "您的订阅已重新激活,并且将按原始计费周期计费。",
"title": "订阅已取消"
},
"profile": {
"change_pass": "修改您的密码",
"profile_info": "用户信息",
"store_pass": "保存您的密码"
},
"pronouns": {
"of": "of"
},
"roles": {
"admin": "Admin",
"user": "User"
},
"routes": {
"create_new_password": "创建新密码"
},
"routes_title": {
"appearance": "出现",
"billings": "帐单",
"dashboard": "仪表板",
"email": "电子邮件",
"invoices": "发票",
"others": "其他",
"page_edit": "编辑页面",
"pages": "网页",
"payment_methods": "支付方式",
"payments": "支付",
"plan": "计划",
"plan_create": "创建计划",
"plan_delete": "计划删除",
"plan_settings": "计划设定",
"pricing_plans": "定价方案",
"profile": "My Profile",
"profile_settings": "档案设置",
"settings": "设置",
"settings_mobile": "Settings",
"settings_password": "Change Password",
"settings_storage": "Storage",
"subscribers": "订户",
"subscription": "订阅",
"upgrade_billing": "开票",
"upgrade_plan": "升级计划",
"user_create": "Create User",
"users_delete": "Delete User",
"users_detail": "Detail",
"users_list": "User Management",
"users_password": "Password",
"users_storage_usage": "Storage Usage",
"users_user": "User"
},
"rows": {
"card": {
"expiration": "截止日期",
"number": "卡号",
"status": "状态"
},
"invoice": {
"number": "发票编号",
"payed": "祈祷,",
"plan": "计划",
"total": "总"
}
},
"shared": {
"can_download": "仅可以下载",
"editor": "可以编辑和上传文件",
"empty_shared": "您还没有分享任何内容",
"visitor": "仅可以查看或下载文件"
},
"shared_form": {
"button_more_options": "More Options",
"button_close_options": "Close Options",
"button_done": "太好了!",
"button_generate": "生成分享链接",
"label_password_protection": "密码保护",
"label_permission": "权限",
"label_shared_url": "分享链接",
"label_share_vie_email": "Get your link",
"label_send_to_recipients": "Send to Recipients",
"label_expiration": "Link Expiration",
"expiration_hour": "{value}h.",
"expiration_day": "{value}d.",
"placeholder_permission": "请设置权限",
"email_successfully_send_message": "Your item was <b>successfully sended</b> to recipients emails.",
"share_by_link": "Share by Link",
"share_by_email": "Share by Email",
"recipients_label": "Recipients",
"email_placeholder": "Type your emails"
},
"sidebar": {
"favourites": "收藏",
"favourites_empty": "将您想要收藏的文件夹拖动至此",
"folders_empty": "Create some new folder.",
"home": "Home",
"latest": "Recent Uploads",
"locations_title": "Base",
"my_shared": "My Shared Items",
"navigator_title": "Navigator",
"participant_uploads": "Participant Uploads",
"tools_title": "Tools"
},
"storage": {
"audios": "Audios",
"documents": "Documents",
"images": "Images",
"others": "Others",
"sec_capacity": "Storage Capacity",
"sec_details": "Capacity Used Details",
"total_capacity": "Your storage capacity is {capacity}",
"total_used": "Total used {used}",
"videos": "Videos"
},
"toaster": {
"account_upgraded": "您的帐户已成功升级。",
"card_deleted": "您的卡已成功删除。",
"card_new_add": "Your card was successfully added",
"card_set": "您的卡已成功设置为默认值。",
"changed_capacity": "You successfully changed user's storage size!",
"changed_user": "You successfully changed user's role!",
"created_user": "User was created successfully!",
"email_set": "您的电子邮件设置已成功更新",
"plan_created": "您的计划已成功创建!",
"sended_password": "You successfully send user email for reset password!",
"stripe_set": "您的Stripe帐户已成功设置!"
},
"types": {
"file": "文件",
"folder": "文件夹"
},
"upgrade_banner": {
"button": "Upgrade",
"description": "You nearly reach your storage capacity.",
"title": "You reach your storage capacity. Please upgrade."
},
"incomplete_payment": {
"description": "Your latest payment is incomplete. {0}",
"href": "Please confirm your payment."
},
"uploading": {
"cancel": "Cancel Uploading",
"processing_file": "Processing File...",
"progress_single_upload": "上传文件 {progress}%",
"progress": "上传文件 {progress}% - {current}/{total}"
},
"user_add_card": {
"default_description": "",
"default_title": "Set as Default Payment Method"
},
"user_box_delete": {
"description": "You can delete your user, but, pay attention! This event is irreversible and all user data include user files will be deleted.",
"title": "Delete User"
},
"user_box_password": {
"description": "You can send password reset email via button bellow. User will be redirected to page where he can update password for his account.",
"title": "Change User Password"
},
"user_box_role": {
"description": "You can change role for current user. Admin role can edit or create new users, change storage capacity and any other application settings.",
"title": "Change User Role"
},
"user_box_storage": {
"description": "Change user storage capacity by input bellow. You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.",
"title": "Change User Storage Capacity"
},
"user_invoices": {
"empty": "您还没有发票。",
"title": "发票"
},
"user_password": {
"title": "更改您的密码"
},
"user_payments": {
"add_card": "Add Payment Card",
"card_field_title": "Credit Card",
"delete_card": "删除卡",
"empty": "您还没有任何付款卡。",
"field_loading": "Loading card field...",
"set_as_default": "设为默认卡",
"store_card": "Store Payment Card",
"title": "支付方式"
},
"user_settings": {
"address": "地址",
"address_plac": "输入您的帐单地址",
"city": "市",
"city_plac": "输入您的帐单城市",
"country": "国家",
"country_plac": "输入您的帐单国家",
"name": "名称",
"name_plac": "输入您的帐单名称",
"phone_number": "电话号码",
"phone_number_plac": "输入您的帐单电话号码",
"postal_code": "邮政编码",
"postal_code_plac": "输入您的帐单邮递区号",
"state": "州",
"state_plac": "输入您的帐单状态",
"title_account": "帐户信息",
"title_billing": "账单信息",
"timezone": "Timezone",
"timezone_plac" : "Select your timezone"
},
"user_subscription": {
"billed": "开票",
"cancel_plan": "取消计划",
"canceled_at": "取消于",
"created_at": "创建于",
"empty": "您还没有任何订阅。",
"ends_at": "结束于",
"plan": "计划",
"renews_at": "续约时间",
"resume_plan": "恢复计划",
"status": "状态",
"title": "订阅计划"
},
"validation_errors": {
"incorrect_password": "不好意思,您输入的密码可能有误!",
"wrong_image": "您可能上传了一个错误的文件!"
}
}
-846
View File
@@ -1,846 +0,0 @@
{
"actions": {
"create_folder": "Create folder",
"delete": "Delete item",
"move": "Move item",
"preview": "Change preview",
"share": "Share item",
"upload": "Upload file",
"download": "Download item",
"print": "Print item",
"close": "Close",
"sorting_view": "Sorting and View",
"info_panel": "Info panel"
},
"activation": {
"stripe": {
"button": "Set up your Stripe account",
"description": "To charge your users, please set up your Stripe account credentials.",
"title": "Your Stripe account is not set"
}
},
"admin_menu": {
"dashboard": "Dashboard",
"invoices": "Invoices",
"pages": "Pages",
"plans": "Plans",
"settings": "Settings",
"users": "Users"
},
"admin_page_dashboard": {
"backer_button": "Help Us Improve",
"license": "License",
"version": "Version",
"w_latest_users": {
"title": "Latest Registrations"
},
"w_total_premium": {
"link": "Show All Plans",
"title": "Total Premium Users"
},
"w_total_space": {
"link": "Show All Users",
"title": "Total Space Used"
},
"w_total_users": {
"link": "Show All Users",
"title": "Total Users"
}
},
"admin_page_invoices": {
"empty": {
"description": "All customers invoices will be showed here.",
"title": "You dont have any invoices yet"
},
"table": {
"number": "Invoice Number",
"payed": "Payed",
"plan": "Plan",
"total": "Total",
"user": "User"
}
},
"admin_page_plans": {
"create_plan_button": "Create Plan",
"delete_plan_button": "Delete Plan",
"disclaimer_delete_plan": "You can delete this plan, but, pay attention! Your plan will be deleted, but users who are subscribed with this plan, will be still charged unless they cancel subscription.",
"disclaimer_edit_price": "Price change for your plan is not available due to Stripe service design. If you wish change your price plan, please, create new plan.",
"empty": {
"button": "Create New Plan",
"description": "For create new plan, click on button below.",
"title": "You dont have any plan yet"
},
"form": {
"description": "Description (optional)",
"description_plac": "Plan description",
"name": "Name",
"name_delete_plac": "Type plan name",
"name_plac": "Plan name",
"price": "Price",
"price_plac": "Plan price",
"status": "Status",
"status_help": "Status of your plan availability on website.",
"storage": "Storage Capacity in GB",
"storage_helper": "You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.",
"storage_plac": "Storage capacity",
"title_delete": "Delete Plan",
"title_details": "Plan Details",
"title_pricing": "Plan Pricing"
},
"subscribers": {
"empty": "There is no any subscriber yet."
},
"table": {
"name": "Plan Name",
"price": "Price",
"status": "Status",
"storage_capacity": "Storage Capacity",
"subscribers": "Subscribers"
},
"tabs": {
"delete": "Delete Plan",
"settings": "Settings",
"subscribers": "Subscribers"
}
},
"admin_page_user": {
"change_capacity": "Change Capacity",
"create_user": {
"avatar": "Avatar",
"group_details": "Account Details",
"group_settings": "Account Settings",
"label_conf_pass": "Confirm password",
"label_email": "Type E-mail",
"label_name": "Type full name",
"submit": "Create User"
},
"delete_user": "Delete User",
"invoices": {
"empty": "User don't have any invoices yet."
},
"label_change_capacity": "Type storage capacity in GB",
"label_delete_user": "Type with Case Sensitive user name {user}",
"label_person_info": "Personal Information",
"placeholder_delete_user": "Type here",
"save_role": "Save Role",
"select_role": "Select user role",
"send_password_link": "Send Password Reset Link",
"subscription": {
"empty": "User don't have any subscription yet.",
"interval_mo": "Monthly"
},
"table": {
"action": "Action",
"created_at": "Registered",
"name": "User",
"plan": "Subscription Plan",
"role": "Role",
"storage_capacity": "Storage Capacity",
"storage_used": "Storage Used"
},
"tabs": {
"delete": "Delete User",
"detail": "Detail",
"invoices": "Invoices",
"password": "Password",
"storage": "Storage Usage",
"subscription": "Subscription"
}
},
"admin_pages": {
"form": {
"content": "Content",
"content_plac": "Type your content here...",
"slug": "Slug",
"title": "Title",
"title_plac": "Title name",
"visibility": "Visibility",
"visibility_help": "Status of your page visibility on website."
},
"table": {
"page": "Page",
"slug": "Slug",
"status": "Status"
}
},
"admin_settings": {
"appearance": {
"description": "App Description",
"description_plac": "Type your app description",
"favicon": "App Favicon (optional)",
"logo": "App Logo (optional)",
"logo_horizontal": "App Logo Horizontal (optional)",
"section_appearance": "Appearance",
"section_general": "General Settings",
"title": "App Title",
"title_plac": "Type your app title"
},
"billings": {
"address": "Billing Address",
"address_plac": "Type your billing address",
"city": "Billing City",
"city_plac": "Type your billing city",
"company_name": "Company Name",
"company_name_plac": "Type your company name",
"country": "Billing Country",
"country_plac": "Select your billing country",
"phone_number": "Billing Phone Number (optional)",
"phone_number_plac": "Type your billing phone number",
"postal_code": "Billing Postal Code",
"postal_code_plac": "Type your billing postal code",
"section_billing": "Billing Information",
"section_company": "Company Information",
"state": "Billing State",
"state_plac": "Type your billing state",
"vat": "VAT Number",
"vat_plac": "Type your VAT number"
},
"email": {
"driver": "Mail Driver",
"driver_plac": "Type your mail driver",
"email_disclaimer": "This form is not fully pre-filled for security reasons. Your email settings is available in your <b>.env</b> file. For apply new Email settings, please confirm your options by button at the end of formular.",
"encryption": "Mail Encryption",
"encryption_plac": "Select your mail encryption",
"host": "Mail Host",
"host_plac": "Type your mail host",
"password": "Mail Password",
"password_plac": "Type your mail password",
"port": "Mail Port",
"port_plac": "Type your mail port",
"save_button": "Save Email Settings",
"section_email": "Email Setup",
"username": "Mail Username",
"username_plac": "Type your mail username"
},
"others": {
"upload_limit": "Upload Limit",
"upload_limit_plac": "Type your upload limit in MB",
"upload_limit_help": "If you want to set max file size limit on single upload, add size of your limit in MB. E.g. 100 means 100 MB and 2 000 means 2 000 MB limit.",
"mimetypes_blacklist": "Mimetypes Blacklist",
"mimetypes_blacklist_plac":"Add mimetypes to Blacklist" ,
"mimetypes_blacklist_help" :"If you want to prevent upload some type of files, just add them to blacklist like this: x-php,mp3,jpeg <br/> Use a comma between each mimetype. Don't use a dot before mimetypes." ,
"section_cache": "Application Cache",
"cache_disclaimer": "Did you change anything in your .env file or change your Stripe credentials? Then clear your cache.",
"cache_clear": "Clear Cache",
"allow_registration": "Allow User Registration",
"allow_registration_help": "You can disable public registration for new users. You will still able to <br/>create new users in administration panel.",
"contact_email": "Contact Email",
"contact_email_plac": "Type your contact email",
"default_storage": "Default Storage Space for User Accounts",
"default_storage_plac": "Set default storage space in GB",
"google_analytics": "Google Analytics Code (optional)",
"google_analytics_plac": "Paste your Google Analytics Code",
"section_others": "Others Settings",
"section_user": "Users and Storage",
"storage_limit": "Storage Limitation",
"storage_limit_help": "If this value is off, all users will have infinity storage capacity and you won't be <br/>able to charge your users for storage plan."
},
"payments": {
"allow_payments": "Allow Subscription Payments",
"button_submit": "Test and Save Stripe",
"button_testing": "Testing Stripe Connection",
"credentials_disclaimer": "Your Stripe credentials is not showed because these values are secret and must not be revealed by stranger. You can change your Stripe credentials in your <b>.env</b> file.",
"section_payments": "Stripe Payments",
"stripe_create_acc": "If you dont have stripe account, please <a href=\"https://dashboard.stripe.com/register\" target=\"_blank\">register here</a> and get your Publishable Key, Secret Key and create your webhook.",
"stripe_create_webhook": "You have to create webhook endpoint in your Stripe Dashboard. You can find it in <b>Dashboard -> Developers -> Webhooks -> Add Endpoint</b>. In Endpoint URL please copy and paste url bellow. Make sure, this url is your public domain, not localhost. In events section, please click on <b>receive all events</b>. That's all.",
"stripe_currency": "Stripe Currency",
"stripe_currency_plac": "Select your Stripe currency",
"stripe_pub_key": "Publishable Key",
"stripe_pub_key_plac": "Paste your publishable key",
"stripe_sec_key": "Secret Key",
"stripe_sec_key_plac": "Paste your secret key",
"stripe_setup": "Stripe Setup",
"stripe_webhook_key_plac": "Paste your stripe webhook secret",
"webhook_url": "Stripe webhook URL"
},
"tabs": {
"appearance": "Appearance",
"billings": "Billings",
"email": "Email",
"others": "Application",
"payments": "Payments"
}
},
"alerts": {
"error_confirm": "Thats horrible!",
"leave_to_sign_in": "Do you really want to leave?",
"success_confirm": "Awesome!"
},
"context_menu": {
"add_folder": "Add Folder",
"add_to_favourites": "Add to Favourites",
"create_folder": "Create Folder",
"delete": "Delete",
"detail": "Detail",
"download": "Download",
"empty_trash": "Empty Trash",
"log_out": "Log Out",
"move": "Move",
"profile_settings": "Profile Settings",
"remove_from_favourites": "Remove Favourite",
"rename": "Rename",
"restore": "Restore",
"share": "Share",
"share_cancel": "Cancel Sharing",
"share_edit": "Edit Sharing",
"upload": "Upload",
"select": "Select",
"no_options": "No Options Available",
"zip_folder": "Zip and Download"
},
"mobile_selecting": {
"select_all": "Select All",
"deselect_all": "Deselect All",
"done": "Done"
},
"preview_sorting": {
"grid_view": "Grid View",
"list_view": "List View",
"sort_date": "Sort By Date",
"sort_alphabet": "Sort By Aplhabet",
"preview_sorting_button": "View"
},
"cookie_disclaimer": {
"button": "cookies policy",
"description": "By browsing this website you are agreeing to our {0}."
},
"datatable": {
"paginate_info": "Showing 1 - {visible} from {total} records"
},
"empty_page": {
"call_to_action": "Upload Files",
"description": "Upload some files here easily via upload button.",
"title": "Upload Your First File"
},
"errors": {
"capacity_digit": "The storage capacity must be lower than 10 digit number."
},
"file_detail": {
"author": "Author",
"author_participant": "Public Participant",
"created_at": "Created at",
"shared": "Shared",
"size": "Size",
"where": "Where",
"selected_multiple": "Selected Multiple Items",
"items": "Items"
},
"file_detail_meta": {
"dimension": "Dimensions",
"resolution": "Resolution",
"color_space": "Color Space",
"aperture_value": "Aperture Value",
"meta_data": "Metadata",
"author": "Author",
"time_data": "Content Created",
"make": "Camera",
"model": "Model",
"camera_lens": "Camera Lens",
"aperature": "F Number",
"iso": "ISO",
"focal": "Focal Length",
"exposure": "Exposure Time",
"longitude": "Longitude",
"latitude": "Latitude"
},
"folder": {
"empty": "Empty",
"item_counts": "{count} Item | {count} Items"
},
"global": {
"incomplete": "Incomplete",
"active": "Active",
"admin": "Admin",
"cancel": "Cancel",
"canceled": "Canceled",
"confirm_action": "Yes, I'm sure",
"default": "Default",
"free": "Free",
"get_it": "Get It",
"menu": "Menu",
"monthly_ac": "Mo.",
"or": "or",
"premium": "Premium",
"saas": "Services",
"subscription": "Subscription",
"total": "Total",
"upgrade_plan": "Upgrade Plan"
},
"input_image": {
"supported": "Supported formats are .png, .jpg, .jpeg.",
"title": "Upload Image"
},
"inputs": {
"placeholder_search_files": "Search files or folders..."
},
"item_thumbnail": {
"deleted_at": "Deleted {time}",
"original_location": "Original Location"
},
"locations": {
"home": "Files",
"shared": "Shared",
"trash": "Trash",
"profile": "Profile",
"settings": "Settings",
"logout": "Log Out"
},
"menu": {
"admin": "Administration",
"files": "Files",
"invoices": "Invoices",
"latest": "Recent Uploads",
"logout": "Log Out",
"password": "Password",
"payment_cards": "Payment Cards",
"profile": "Profile Settings",
"settings": "Settings",
"shared": "Shared Files",
"storage": "Storage",
"subscription": "Subscription",
"trash": "Trash"
},
"messages": {
"nothing_from_participants": "You don't have any uploads from other users.",
"nothing_to_preview": "There is nothing to preview.",
"nothing_was_found": "Nothing was found."
},
"notice": {
"stripe_activation": "Your Stripe account is not set. To charging your users please {0}.",
"stripe_activation_button": "set up your Stripe account"
},
"page_contact_us": {
"description": "Do you have any questions? Get in touch with us.",
"error_message": "Something went wrong, please try it again.",
"form": {
"email": "Email",
"email_plac": "Type your email",
"message": "Message",
"message_plac": "Type your message here...",
"submit_button": "Send Message"
},
"success_message": "Your message was send successfully.",
"title": "Contact Us"
},
"page_create_password": {
"button_update": "Update Password",
"label_confirm_pass": "Confirm password",
"label_email": "Email:",
"label_new_pass": "New password",
"subtitle": "Create your new password here:",
"title": "Only One Step to Log In"
},
"page_forgotten_password": {
"button_get_link": "Get Link",
"pass_reseted_signin": "Sign In",
"pass_reseted_subtitle": "Your password was reset successfully.",
"pass_reseted_title": "Awesome!",
"pass_sennded_subtitle": "We have e-mailed your password reset link!",
"pass_sennded_title": "Thank you!",
"password_remember_button": "Log In.",
"password_remember_text": "Remember your password?",
"subtitle": "Get reset link with your email:",
"title": "Forgotten Password?"
},
"page_index": {
"get_started_button": "Sign Up Now",
"menu": {
"contact_us": "Contact Us",
"log_in": "Log In",
"pricing": "Pricing",
"sign_in": "Sign Up"
},
"sign_feature_1": "No credit card required",
"sign_feature_2": "{defaultSpace} Free storage space",
"sign_up_button": "Sign Up Now"
},
"page_login": {
"button_next": "Next Step",
"placeholder_email": "Type your E-mail",
"registration_button": "Register account.",
"registration_text": "Dont have an account?",
"subtitle": "Please type your email to log in:",
"title": "Welcome Back!"
},
"page_pricing_tables": {
"description": "Choose plan witch perfect fit your needs. All plans is billed monthly automatically via your credit card.",
"storage_capacity": "Of Storage Capacity",
"vat_excluded": "Price displayed excludes VAT.",
"title": "Choose Your Plan"
},
"page_registration": {
"agreement": "By clicking on 'Create Account' button I agree to the {0} and {1}.",
"button_create_account": "Create Account",
"have_an_account": "Do you have an account?",
"label_confirm_pass": "Confirm password:",
"label_email": "Email:",
"label_name": "Full Name:",
"label_pass": "Create password:",
"placeholder_confirm_pass": "Confirm your new password",
"placeholder_email": "Type your E-mail",
"placeholder_name": "Type your full name",
"placeholder_pass": "New password",
"subtitle": "Please fill registration to create account:",
"title": "Create New Account"
},
"page_shared": {
"download_file": "Download File",
"placeholder_pass": "Type password",
"submit": "Submit",
"subtitle": "Please type the password to get shared content:",
"title": "Your Share Link is Protected"
},
"page_shared_404": {
"subtitle": "The content you are finding was probably deleted.",
"title": "Not Found :("
},
"page_sign_in": {
"button_log_in": "Log In",
"password_reset_button": "Reset Password.",
"password_reset_text": "Forgotten your password?",
"placeholder_password": "Type your password",
"subtitle": "Confirm you by your password:",
"title": "Are You {name}?"
},
"page_upgrade_account": {
"change_payment": {
"change_payment": "change your default payment method",
"pay_by_new_card": "pay by new credit card",
"you_can": "Also you can"
},
"desription": "Choose plan witch perfect fit your needs. All plans is billed monthly automatically via your credit card.",
"errors": {
"pay_by_another_card": "Please pay by another payment card"
},
"section_billing": "Billing Information",
"section_card": "Payment Card",
"section_summary": "Order Summary",
"summary": {
"total_with_vat": "Total with VAT",
"vat": "VAT",
"period": "Billed monthly",
"submit_button": "Pay with credit card",
"submit_disclaimer": "By submit form, you agree to save the payment method and billing information in your {app} account."
},
"title": "Choose Payment Method"
},
"popup_upload_limit": {
"title": "You exceed upload limit on single file",
"message": "Size of your uploaded file exceed the upload limit ({uploadLimit})."
},
"popup_mimetypes_blacklist": {
"title": "You are trying to upload unsupported file type",
"message": "File of this type ({mimetype}) is not allowed to upload."
},
"popup_delete_card": {
"message": "This event is irreversible and your payment card will be delete forever",
"title": "Are you sure?"
},
"popup_deleted_plan": {
"message": "Your plan was successfully deleted.",
"title": "Plan was deleted"
},
"popup_deleted_user": {
"message": "Your user was deleted with all user data content.",
"title": "User was deleted"
},
"popup_deleted_user_aborted": {
"message": "You can't delete this account while user have active subscription.",
"title": "User wasn't deleted"
},
"popup_error": {
"message": "Something went wrong and we can't continue. Please contact us.",
"title": "Whooops, something went wrong!"
},
"popup_exceed_limit": {
"message": "Please contact your administrator to change your limit.",
"title": "Whooops, you exceed storage limit :("
},
"popup_move_item": {
"cancel": "Cancel",
"submit": "Move Item",
"title": "Move Item"
},
"popup_pass_changed": {
"message": "So now, you have awesome new password.",
"title": "Your password was changed!"
},
"popup_passport_error": {
"message": "Probably you didn't generated Passport Grant client or you didn't set up passport credentials in your .env file. Please follow install instructions.",
"title": "Invalid Passport Grand Client"
},
"popup_paylod_error": {
"message": "Sorry, your file is too large and can't be uploaded",
"title": "File is too large"
},
"popup_zipping": {
"title": "Zipping Your Files...",
"message": "Please wait until your files start downloading."
},
"popup_rename": {
"title": "Rename Your {item}",
"label": "Edit Name",
"placeholder": "Type your title",
"tab_emoji_title": "Emoji as an Icon",
"tab_color_title": "Folder Color",
"select_emoji_label": "Pick Your Emoji Icon",
"color_pick_label": "Pick Your Color",
"set_emoji_input_placeholder": "Emojis List...",
"search_emoji_input_placeholder": "Search your emoji...",
"emoji_list_not_found": "Not Found"
},
"popup_create_folder": {
"folder_default_name": "New Folder",
"title": "Create Folder",
"label": "Type Name",
"placeholder": "Type your name"
},
"popup_set_card": {
"message": "Your card will be set as default and will be always charged for the next billings.",
"title": "Set as default card?"
},
"popup_share_create": {
"title": "Share Your {item}"
},
"popup_share_edit": {
"change_pass": "Change Password",
"confirm": "Confirm",
"save": "Save Changes",
"stop": "Cancel Sharing",
"title": "Update sharing options",
"go_back": "Go Back",
"send_to_recipients": "Send to Recipients"
},
"popup_signup_error": {
"message": "Please check your database connection if everything works correctly.",
"title": "Server Error"
},
"popup_subscription_cancel": {
"button": "I'm done",
"message": "You'll continue to have access to the features you've paid for until the end of your billing cycle.",
"title": "Subscription Was Canceled"
},
"popup_subscription_resumed": {
"button": "That's awesome!",
"message": "Your subscription was re-activated, and they will be billed on the original billing cycle.",
"title": "Subscription Was Resumed"
},
"profile": {
"change_pass": "Change Password",
"profile_info": "Profile Information",
"store_pass": "Store New Password"
},
"pronouns": {
"of": "of"
},
"roles": {
"admin": "Admin",
"user": "User"
},
"routes": {
"create_new_password": "create-new-password"
},
"routes_title": {
"appearance": "Appearance",
"billings": "Billings",
"dashboard": "Dashboard",
"email": "Email",
"invoices": "Invoices",
"others": "Others",
"page_edit": "Edit Page",
"pages": "Pages",
"payment_methods": "Payment Methods",
"payments": "Payments",
"plan": "Plan",
"plan_create": "Create Plan",
"plan_delete": "Plan Delete",
"plan_settings": "Plan Settings",
"pricing_plans": "Pricing Plans",
"profile": "My Profile",
"profile_settings": "Profile Settings",
"settings": "Settings",
"settings_mobile": "Settings",
"settings_password": "Change Password",
"settings_storage": "Storage",
"subscribers": "Subscribers",
"subscription": "Subscription",
"upgrade_billing": "Billing",
"upgrade_plan": "Upgrade Plan",
"user_create": "Create User",
"users_delete": "Delete User",
"users_detail": "Detail",
"users_list": "User Management",
"users_password": "Password",
"users_storage_usage": "Storage Usage",
"users_user": "User"
},
"rows": {
"card": {
"expiration": "Expiration Date",
"number": "Card Number",
"status": "Status"
},
"invoice": {
"number": "Invoice Number",
"payed": "Payed",
"plan": "Plan",
"total": "Total"
}
},
"shared": {
"can_download": "Can download file",
"editor": "Can edit and upload files",
"empty_shared": "You haven't shared anything yet.",
"visitor": "Can only view and download"
},
"shared_form": {
"button_more_options": "Set Expiration",
"button_close_options": "Close Options",
"button_folder_icon_open": "Customize Folder Icon",
"button_done": "Awesome, Im done!",
"button_generate": "Generate Link",
"label_password_protection": "Password Protected",
"label_permission": "Permission",
"label_shared_url": "Share url",
"label_share_vie_email": "Get your link",
"label_send_to_recipients": "Send to Recipients",
"label_expiration": "Link Expiration",
"expiration_hour": "{value}h.",
"expiration_day": "{value}d.",
"placeholder_permission": "Select your permission",
"email_successfully_send_message": "Your item was <b>successfully sended</b> to recipients emails.",
"share_by_link": "Share by Link",
"share_by_email": "Share by Email",
"recipients_label": "Recipients",
"email_placeholder": "Type your emails"
},
"sidebar": {
"favourites": "Favourites",
"favourites_empty": "Drag here your favourite folder.",
"folders_empty": "Create some new folder.",
"home": "Files",
"latest": "Recent Uploads",
"locations_title": "Base",
"my_shared": "My Shared Items",
"navigator_title": "Navigator",
"participant_uploads": "Participant Uploads",
"tools_title": "Tools"
},
"storage": {
"audios": "Audios",
"documents": "Documents",
"images": "Images",
"others": "Others",
"sec_capacity": "Your disk Usage",
"sec_details": "Capacity Usage Details",
"total_capacity": "Your storage capacity is {capacity}",
"total_used": "Total used {used}",
"videos": "Videos"
},
"toaster": {
"account_upgraded": "Your account was successfully upgraded.",
"card_deleted": "Your card was successfully deleted.",
"card_new_add": "Your card was successfully added",
"card_set": "Your card was successfully set as default.",
"changed_capacity": "You successfully changed user's storage size!",
"changed_user": "You successfully changed user's role!",
"created_user": "User was created successfully!",
"email_set": "Your email settings was updated successfully",
"plan_created": "Your plan was successfully created!",
"sended_password": "You successfully send user email for reset password!",
"stripe_set": "Your Stripe account was successfully set!"
},
"types": {
"file": "File",
"folder": "Folder"
},
"upgrade_banner": {
"button": "Upgrade",
"description": "You nearly reach your storage capacity.",
"title": "You reach your storage capacity. Please upgrade."
},
"incomplete_payment": {
"description": "Your latest payment is incomplete. {0}",
"href": "Please confirm your payment."
},
"uploading": {
"cancel": "Cancel Uploading",
"processing_file": "Processing File...",
"progress_single_upload": "Uploading File {progress}%",
"progress": "Uploading File {progress}% - {current}/{total}"
},
"user_add_card": {
"default_description": "Your card will be charged for billing plans as first.",
"default_title": "Set as Default Payment Method"
},
"user_box_delete": {
"description": "You can delete your user, but, pay attention! This event is irreversible and all user data include user files will be deleted.",
"title": "Delete User"
},
"user_box_password": {
"description": "You can send password reset email via button bellow. User will be redirected to page where he can update password for his account.",
"title": "Change User Password"
},
"user_box_role": {
"description": "You can change role for current user. Admin role can edit or create new users, change storage capacity and any other application settings.",
"title": "Change User Role"
},
"user_box_storage": {
"description": "Change user storage capacity by input bellow. You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.",
"title": "Change User Storage Capacity"
},
"user_invoices": {
"empty": "You don't have any invoices yet.",
"title": "Invoices"
},
"user_password": {
"title": "Change Your Password"
},
"user_payments": {
"add_card": "Add Payment Card",
"card_field_title": "Credit Card",
"delete_card": "Delete card",
"empty": "You don't have any payment cards yet.",
"field_loading": "Loading card field...",
"set_as_default": "Set as default card",
"store_card": "Store Payment Card",
"title": "Payment Methods"
},
"user_settings": {
"address": "Address",
"address_plac": "Type your billing address",
"city": "City",
"city_plac": "Type your billing city",
"country": "Country",
"country_plac": "Select your billing country",
"name": "Name",
"name_plac": "Type your billing name",
"phone_number": "Phone Number",
"phone_number_plac": "Type your billing phone number",
"postal_code": "Postal Code",
"postal_code_plac": "Type your billing postal code",
"state": "State",
"state_plac": "Type your billing state",
"title_account": "Account Information",
"title_billing": "Billing Information",
"timezone": "Timezone",
"timezone_plac" : "Select your timezone"
},
"user_subscription": {
"billed": "Billed",
"cancel_plan": "Cancel Plan",
"canceled_at": "Canceled At",
"created_at": "Created At",
"empty": "You don't have any subscription yet.",
"ends_at": "Ends At",
"plan": "Plan",
"renews_at": "Renews At",
"resume_plan": "Resume Plan",
"status": "Status",
"title": "Subscription Plan"
},
"validation_errors": {
"incorrect_password": "Sorry, you passed incorrect password :(",
"wrong_image": "You may have uploaded the wrong file, try again!"
}
}
-845
View File
@@ -1,845 +0,0 @@
{
"actions": {
"create_folder": "Vytvoriť priečinok",
"delete": "Vymazať položku",
"move": "Presunúť položku",
"preview": "Zmeniť náhľad",
"share": "Zdieľať položku",
"upload": "Nahrať súbory",
"download": "Stiahnuť položku",
"print": "Vytlačiť položku",
"close": "Zatvoriť",
"sorting_view" : "Zoradenie a zobrazenie ",
"info_panel" : "Informačný panel"
},
"activation": {
"stripe": {
"button": "Nastaviť účet Stripe",
"description": "Pre spoplatňovanie Vaších uživateľov, prosím nastavte poverenia služby Stripe",
"title": "Váš účet Stripe nie je nastavený"
}
},
"admin_menu": {
"dashboard": "Prehľad",
"invoices": "Faktúry",
"pages": "Stránky",
"plans": "Plány",
"settings": "Nastavenia",
"users": "Uživatelia"
},
"admin_page_dashboard": {
"backer_button": "Pomôžte nám zlepšiť sa",
"license": "Licencia",
"version": "Verzia",
"w_latest_users": {
"title": "Najnovšie registrácie"
},
"w_total_premium": {
"link": "Zobraziť všetky plány",
"title": "Celkový počet prémiových používateľov"
},
"w_total_space": {
"link": "Zobraziť všetkých používateľov",
"title": "Celkový využitý priestor"
},
"w_total_users": {
"link": "Zobraziť všetkých používateľov",
"title": "Celkový počet používateľov"
}
},
"admin_page_invoices": {
"empty": {
"description": "Tu sa zobrazia všetky faktúry zákazníkov.",
"title": "Zatiaľ nemáte žiadne faktúry"
},
"table": {
"number": "Číslo faktúry",
"payed": "Zaplatené",
"plan": "Plán",
"total": "Celkom",
"user": "Užívateľ"
}
},
"admin_page_plans": {
"create_plan_button": "Vytvoriť plán",
"delete_plan_button": "Odstrániť plán",
"disclaimer_delete_plan": "Môžete odstrániť plán, ale dávajte pozor!",
"disclaimer_edit_price": "Zmena ceny za váš plán nie je k dispozícii z dôvodu návrhu služby Stripe. Ak si želáte zmeniť cenový plán, vytvorte nový.",
"empty": {
"button": "Vytvoriť nový plán",
"description": "Ak chcete vytvoriť nový plán, kliknite na tlačidlo nižšie.",
"title": "Zatiaľ nemáte žiadny plán"
},
"form": {
"description": "Popis (nepovinné)",
"description_plac": "Popis plánu",
"name": "Názov",
"name_delete_plac": "Zadajte názov plánu",
"name_plac": "Názov plánu",
"price": "Cena",
"price_plac": "Cena plánu",
"status": "Stav",
"status_help": "Stav dostupnosti vášho plánu na webovej stránke.",
"storage": "Úložná kapacita v GB",
"storage_helper": "Musíte zadať iba číslo, napr. hodnota „5“ znamená, že používateľ bude mať 5 GB úložnej kapacity.",
"storage_plac": "Kapacita úložiska",
"title_delete": "Odstrániť plán",
"title_details": "Podrobnosti plánu",
"title_pricing": "Cena plánu"
},
"subscribers": {
"empty": "Zatiaľ nie je žiadny odberateľ."
},
"table": {
"name": "Názov plánu",
"price": "Cena",
"status": "Stav",
"storage_capacity": "Kapacita úložiska",
"subscribers": "Odberatelia"
},
"tabs": {
"delete": "Odstrániť plán",
"settings": "Nastavenia",
"subscribers": "Odberatelia"
}
},
"admin_page_user": {
"change_capacity": "Zmeniť kapacitu",
"create_user": {
"avatar": "Avatar",
"group_details": "Detail účtu",
"group_settings": "Nastavenia účtu",
"label_conf_pass": "Potvrďte heslo",
"label_email": "Napíšte E-mail",
"label_name": "Napíšte celé meno",
"submit": "Vytvoriť uživateľa"
},
"delete_user": "Vymazať uživateľa",
"invoices": {
"empty": "Užívateľ zatiaľ nemá žiadne faktúry."
},
"label_change_capacity": "Vpíšte kapacitu úložiska v GB",
"label_delete_user": "Napíšte uživateľovo meno {user}. Rozlišujte medzi malými a veľkými písmenami",
"label_person_info": "Osobné informácie",
"placeholder_delete_user": "Píšte sem",
"save_role": "Uložiť Rolu",
"select_role": "Vyberte uživateľskú rolu",
"send_password_link": "Odoslať email s resetom hesla",
"subscription": {
"empty": "Užívateľ zatiaľ nemá žiadne predplatné.",
"interval_mo": "Mesačne"
},
"table": {
"action": "Akcia",
"created_at": "Registrovaný",
"name": "Užívateľ",
"plan": "Plán",
"role": "Rola",
"storage_capacity": "Kapacita úložiska",
"storage_used": "Využitie úložiska"
},
"tabs": {
"delete": "Vymazať uživateľa",
"detail": "Detail",
"invoices": "Faktúry",
"password": "Heslo",
"storage": "Využitie úložiska",
"subscription": "Predplatné"
}
},
"admin_pages": {
"form": {
"content": "Obsah",
"content_plac": "Sem zadajte svoj obsah ...",
"slug": "Slug",
"title": "Nadpis",
"title_plac": "Názov titulky",
"visibility": "Viditeľnosť",
"visibility_help": "Stav viditeľnosti stránky na webe."
},
"table": {
"page": "Stránka",
"slug": "Slug",
"status": "Stav"
}
},
"admin_settings": {
"appearance": {
"description": "Popis aplikácie",
"description_plac": "Zadajte popis svojej aplikácie",
"favicon": "Favicon aplikácie (voliteľné)",
"logo": "Logo aplikácie (voliteľné)",
"logo_horizontal": "Horizontálne logo aplikácie (voliteľné)",
"section_appearance": "Vzhľad",
"section_general": "Všeobecné nastavenia",
"title": "Názov aplikácie",
"title_plac": "Zadajte názov aplikácie"
},
"billings": {
"address": "Fakturačná adresa",
"address_plac": "Zadajte svoju fakturačnú adresu",
"city": "Mesto fakturácie",
"city_plac": "Zadajte svoje fakturačné mesto",
"company_name": "Meno spoločnosti",
"company_name_plac": "Zadajte názov svojej spoločnosti",
"country": "Krajina fakturácie",
"country_plac": "Vyberte krajinu fakturácie",
"phone_number": "Telefónne číslo (voliteľné)",
"phone_number_plac": "Zadajte svoje telefónne číslo pre fakturáciu",
"postal_code": "Poštové smerovacie číslo",
"postal_code_plac": "Zadajte svoj fakturačný poštový kód",
"section_billing": "Fakturačné údaje",
"section_company": "informácie o spoločnosti",
"state": "Stav fakturácie",
"state_plac": "Zadajte stav fakturácie",
"vat": "identifikačné číslo DPH",
"vat_plac": "Zadajte svoje IČ DPH"
},
"email": {
"driver": "Mail Driver",
"driver_plac": "Zadajte mail driver",
"email_disclaimer": "Tento formulár nie je predvyplnený z bezpečnostných dôvodov. Vaše emailové nastavenia sú dostupné v <b>.env</b> súbore aplikácie. Pre aplikovanie nastavení, prosim potvdte tlačítkom na konci formulára.",
"encryption": "Šifrovanie pošty",
"encryption_plac": "Vyberte šifrovanie pošty",
"host": "Hostiteľ pošty",
"host_plac": "Zadajte svojho poštového hostiteľa",
"password": "Heslo k e-mailu",
"password_plac": "Zadajte svoje e-mailové heslo",
"port": "Port",
"port_plac": "Zadajte poštový port",
"save_button": "Uložte nastavenia e-mailu",
"section_email": "Nastavenie e-mailu",
"username": "Používateľské meno pre poštu",
"username_plac": "Zadajte svoje používateľské meno pre poštu"
},
"others": {
"upload_limit": "Limit nahrávania",
"upload_limit_plac": "Pridajte veľkosť limitu v MB",
"upload_limit_help": "Ak chcete nastaviť limit pre nahrávane jedneho súboru, pridajte veľkosť vášho limitu v MB.",
"mimetypes_blacklist": "Čierna listina mimetypov",
"mimetypes_blacklist_plac":"Pridajte mimetypy do Čiernej listiny",
"mimetypes_blacklist_help" :"Ak chcete zakázať nahrávanie niektorých typov súborov, jednoducho ich pridajte na čiernu listinu, príklad: x-php, mp3, jpeg <br/> Medzi mimetypmi použite čiarku. Nevkladajte bodku pred mimetyp." ,
"section_cache": "Aplikačná pamäť",
"cache_disclaimer": "Zmenili ste niečo v .env súbore alebo ste zmenili Stripe poverenia? Vymažte aplikačnú pamäť.",
"cache_clear": "Vymazať aplikačnú pamäť",
"allow_registration": "Povoliť registráciu používateľov",
"allow_registration_help": "Môžete zakázať verejnú registráciu nových používateľov. V administračnom paneli stále budete môcť <br/>vytvárať nových používateľov.",
"contact_email": "Kontaktný email",
"contact_email_plac": "Zadajte svoj kontaktný e-mail",
"default_storage": "Predvolený úložný priestor pre používateľské účty v GB",
"default_storage_plac": "Nastaviť predvolený úložný priestor v GB",
"google_analytics": "Kód Google Analytics (voliteľné)",
"google_analytics_plac": "Vložte svoj kód Google Analytics",
"section_others": "Ostatné nastavenia",
"section_user": "Používatelia a ukladací priestor",
"storage_limit": "Obmedzenie priestoru",
"storage_limit_help": "Ak je táto hodnota vypnutá, všetci používatelia budú mať nekonečnú kapacitu úložiska a vy nebudete môcť <br/>účtovať svojim používateľom poplatky za plán úložiska."
},
"payments": {
"allow_payments": "Povoliť platby za plány",
"button_submit": "Otestovať a uložiť Stripe",
"button_testing": "Testovanie Stripe pripojenia",
"credentials_disclaimer": "Vaše poverenia v službe Stripe sa nezobrazujú, pretože tieto hodnoty sú tajné a nesmie ich odhaliť cudzinec. Svoje poverenia v službe Stripe môžete zmeniť v súbore <b>.env</b> aplikácie.",
"section_payments": "Stripe platby",
"stripe_create_acc": "Ak nemáte účet Stripe, <a href=\"https://dashboard.stripe.com/register\" target=\"_blank\">zaregistrujte sa tu</a> a získajte svoj publikovateľný kľúč, tajný kľúč a vytvorte Stripe webhook.",
"stripe_create_webhook": "",
"stripe_currency": "Stripe Mena",
"stripe_currency_plac": "Vyberte Stripe menu",
"stripe_pub_key": "Verejný kľúč",
"stripe_pub_key_plac": "Vložte Váš verejný kľúč",
"stripe_sec_key": "Tajný kľúč",
"stripe_sec_key_plac": "Vložte Váš tajný kľúč",
"stripe_setup": "Stripe nastavenia",
"stripe_webhook_key_plac": "Vložte Váš Stripe webhook tajný kľúč",
"webhook_url": "Stripe webhook URL adresa"
},
"tabs": {
"appearance": "Vzhľad",
"billings": "Fakturácia",
"email": "E-mail",
"others": "Aplikácia",
"payments": "Platby"
}
},
"alerts": {
"error_confirm": "To je hrozné!",
"leave_to_sign_in": "Naozaj chcete odísť?",
"success_confirm": "Skvelé!"
},
"context_menu": {
"add_folder": "Nový priečinok",
"add_to_favourites": "Pridať do obľúbených",
"create_folder": "Vytvoriť priečinok",
"delete": "Vymazať",
"detail": "Detail",
"download": "Stiahnúť",
"empty_trash": "Vyprázdniť kôš",
"log_out": "Odhlásiť sa",
"move": "Presunúť",
"profile_settings": "Nastavenia profilu",
"remove_from_favourites": "Vymazať obľúbené",
"rename": "Premenovať",
"restore": "Obnoviť",
"share": "Zdieľať",
"share_cancel": "Zrušenie zdieľania",
"share_edit": "Upraviť zdieľanie",
"upload": "Nahrať",
"select": "Výber",
"no_options": "Nie sú k dispozícii žiadne možnosti",
"zip_folder": "Zazipovať priečinok"
},
"mobile_selecting": {
"select_all": "Vybrať všetko",
"deselect_all": "Odznačiť všetko",
"done": "Hotovo"
},
"preview_sorting": {
"grid_view": "Mriežka",
"list_view": "List",
"sort_date": "Zoradiť podľa dátumu",
"sort_alphabet": "Zoradiť podľa náyvu",
"preview_sorting_button": "Zobrazenie"
},
"cookie_disclaimer": {
"button": "politikou cookies",
"description": "Prehliadaním tejto stránky súhlasim s našou"
},
"datatable": {
"paginate_info": "Zobrazuje sa 1 - {visible} z {total} položiek"
},
"empty_page": {
"call_to_action": "Nahrať súbory",
"description": "Nahrajte súbory jednoducho cez tlačidlo nahrať",
"title": "Tu nie je nič"
},
"errors": {
"capacity_digit": "Kapacita úložiska musí byť nižšia ako 10 číslic."
},
"file_detail": {
"author": "Autor",
"author_participant": "Verejný účastník",
"created_at": "Vytvorené",
"shared": "Zdieľané",
"size": "Veľkosť",
"where": "Umiestnenie",
"selected_multiple": "Vybratých viac položiek",
"items": "{count} Položky | {count} Položiek"
},
"file_detail_meta": {
"dimension": "Dimenzie",
"resolution": "Rozlíšenie",
"color_space": "Farebný priestor",
"aperture_value": "Hodnota clony",
"meta_data": "Metadata",
"author": "Autor",
"time_data": "Obsah vytvorený",
"make": "Fotoaparát",
"model": "Model",
"camera_lens": "Objektív fotoaparátu",
"aperature": "Clona",
"iso": "ISO",
"focal": "Ohnisková vzdialenosť",
"exposure": "Doba expozície",
"longitude": "Zemepisná dĺžka",
"latitude": "Zemepisná šírka"
},
"folder": {
"empty": "Prázdne",
"item_counts": "{count} Položka | {count} Položky"
},
"global": {
"incomplete": "Incomplete",
"active": "Aktívny",
"admin": "Admin",
"cancel": "Zrušiť",
"canceled": "Zrušený",
"confirm_action": "Áno, som si istý",
"default": "Predvolený",
"free": "Zadarmo",
"get_it": "Získať",
"menu": "Ponuka",
"monthly_ac": "Mes.",
"or": "alebo",
"premium": "Premium",
"saas": "Služby",
"subscription": "Predplatné",
"total": "Celkom",
"upgrade_plan": "Navýšiť úložisko"
},
"input_image": {
"supported": "Podporované formáty sú .png, .jpg, .jpeg.",
"title": "Vložte obrázok"
},
"inputs": {
"placeholder_search_files": "Hľadajte súbory…"
},
"item_thumbnail": {
"deleted_at": "Vymazané {time}",
"original_location": "Pôvodné umiestnenie"
},
"locations": {
"home": "Domov",
"shared": "Zdieľané",
"trash": "Kôš",
"profile": "Profil",
"settings": "Nastavenia",
"logout": "Odhlásiť sa"
},
"menu": {
"admin": "Administrácia",
"files": "Súbory",
"invoices": "Faktúry",
"latest": "Posledne nahrané",
"logout": "Odhlásiť sa",
"password": "Heslo",
"payment_cards": "Platobné karty",
"profile": "Nastavenia profilu",
"settings": "Nastavenia",
"shared": "Zdieľané súbory",
"storage": "Úložisko",
"subscription": "Predplatné",
"trash": "Kôš"
},
"messages": {
"nothing_from_participants": "Zatiaľ nemáš žiadné súbory od ostatných uživateľov",
"nothing_to_preview": "Tu nie je nič pre zobrazenie.",
"nothing_was_found": "Nič sa nenašlo."
},
"notice": {
"stripe_activation": "Váš účet Stripe nie je nastavený. Pre spoplatňovanie používateľov prosím {0}.",
"stripe_activation_button": "nastavte účet Stripe"
},
"page_contact_us": {
"description": "Máte nejaké otázky? Spojte sa s nami.",
"error_message": "Niečo sa pokazilo, skúste to znova.",
"form": {
"email": "E-mail",
"email_plac": "Zadajte svoj e-mail",
"message": "Správa",
"message_plac": "Sem napíšte správu...",
"submit_button": "Odoslať správu"
},
"success_message": "Vaša správa bola úspešne odoslaná.",
"title": "Kontaktujte nás"
},
"page_create_password": {
"button_update": "Aktualizovať heslo",
"label_confirm_pass": "Potvrďte nové heslo",
"label_email": "Email:",
"label_new_pass": "Vaše nové heslo",
"subtitle": "Vytvorte si nové heslo tu:",
"title": "Iba jeden krok pre prihlásenie"
},
"page_forgotten_password": {
"button_get_link": "Získať link",
"pass_reseted_signin": "Prihlásiť sa",
"pass_reseted_subtitle": "Tvoje heslo bolo obnovené úspešne.",
"pass_reseted_title": "Skvelé!",
"pass_sennded_subtitle": "Práve sme Vám odoslali link na Váš email!",
"pass_sennded_title": "Ďakujeme!",
"password_remember_button": "Prihlásiť sa.",
"password_remember_text": "Pamätáte si heslo?",
"subtitle": "Získajte resetovací link pre Váš účet:",
"title": "Zabudnuté heslo?"
},
"page_index": {
"get_started_button": "Zaregistrovať sa teraz",
"menu": {
"contact_us": "Kontaktuj nás",
"log_in": "Prihlásiť sa",
"pricing": "Plány",
"sign_in": "Zaregistrovať sa"
},
"sign_feature_1": "Nevyžaduje sa žiadna kreditná karta",
"sign_feature_2": "{defaultSpace} Kapacita úložiska zadarmo",
"sign_up_button": "Zaregistrovať sa teraz"
},
"page_login": {
"button_next": "Ďalší krok",
"placeholder_email": "Napíšte svoj E-mail",
"registration_button": "Vytvoriť účet.",
"registration_text": "Ešte nemáte účet?",
"subtitle": "Prosím, vložte svoj email pre prihlásenie:",
"title": "Vitajte späť!"
},
"page_pricing_tables": {
"description": "Vyberte si plán, ktorý dokonale vyhovuje vašim potrebám. Všetky plány sa fakturujú mesačne automaticky prostredníctvom vašej kreditnej karty.",
"storage_capacity": "Kapacita úložiska",
"vat_excluded": "Ceny nezahrňajú DPH.",
"title": "Vyberte si svoj plán"
},
"page_registration": {
"agreement": "Kliknutím na tlačidlo Vytvoriť účet súhlasím s {0} a {1}.",
"button_create_account": "Vytvoriť účet",
"have_an_account": "Máš už účet?",
"label_confirm_pass": "Potvrďte heslo:",
"label_email": "Email:",
"label_name": "Celé meno:",
"label_pass": "Vytvorte heslo:",
"placeholder_confirm_pass": "Potvrďte nové heslo",
"placeholder_email": "Napíš svoj E-mail",
"placeholder_name": "Napíš svoje celé meno",
"placeholder_pass": "Vaše nové heslo",
"subtitle": "Prosím, vyplňte formulár pre vytvorenie nového účtu:",
"title": "Vytvorenie nového účtu"
},
"page_shared": {
"download_file": "Stiahnúť súbor",
"placeholder_pass": "Vložte heslo",
"submit": "Potvrdiť",
"subtitle": "Prosím vložte heslo pre získanie prístupu k obsahu:",
"title": "Zdieľaný odkaz je chránený"
},
"page_shared_404": {
"subtitle": "Obsah ktorý hľadáš bol pravdepodobne vymazaný.",
"title": "Obsah sa nenašiel :("
},
"page_sign_in": {
"button_log_in": "Prihlásiť sa",
"password_reset_button": "Resetovať heslo.",
"password_reset_text": "Zabudli ste heslo?",
"placeholder_password": "Napíšte svoje heslo",
"subtitle": "Potvrďte zadaním hesla:",
"title": "Voláte sa {name}?"
},
"page_upgrade_account": {
"change_payment": {
"change_payment": "zmeniť svoj predvolený spôsob platby",
"pay_by_new_card": "platiť novou kreditnou kartou",
"you_can": "Tiež môžete"
},
"desription": "Vyberte si plán, ktorý dokonale vyhovuje vašim potrebám. Všetky programy sa fakturujú mesačne automaticky prostredníctvom vašej kreditnej karty.",
"errors": {
"pay_by_another_card": "Zaplaťte inou platobnou kartou"
},
"section_billing": "Fakturačné údaje",
"section_card": "Platobná karta",
"section_summary": "Zhrnutie objednávky",
"summary": {
"total_with_vat": "Spolu s DPH",
"vat": "DPH",
"period": "Účtované mesačne",
"submit_button": "Zaplatiť kreditnou kartou",
"submit_disclaimer": "Odoslaním formulára súhlasíte s uložením spôsobu platby a fakturačných údajov vo svojom účte {app}."
},
"title": "Vyberte si metódu platby"
},
"popup_upload_limit": {
"title": "Je nám to ľúto",
"message": "Veľkosť nahravaného súboru prekročila limit pre nahraávane súbory ({uploadLimit})"
},
"popup_mimetypes_blacklist": {
"title": "Ospravedlňujeme sa",
"message": "Nieje povolené nahrávať tento typ súboru ({mimetype})."
},
"popup_zipping": {
"title": "Súbory sa zipujú...",
"message": "Čakajte prosím, kým súbory sa nezačnú sťahovať."
},
"popup_create_folder": {
"folder_default_name": "Nový priečinok",
"title": "Vytvoriť priečinok",
"label": "Napíš meno",
"placeholder": "Prosím, vložte názov nového priečinka"
},
"popup_delete_card": {
"message": "Táto udalosť je nezvratná a vaša platobná karta bude navždy odstránená",
"title": "Ste si istý?"
},
"popup_deleted_plan": {
"message": "Váš plán bol úspešne odstránený.",
"title": "Plán bol odstránený"
},
"popup_deleted_user": {
"message": "Uživateľ bol vymazaný so všetkými uživateľskými dátami.",
"title": "Uživateľ bol vymazaný"
},
"popup_deleted_user_aborted": {
"message": "Nemôžte vymazať účet kým uživateľ má aktívne predplatné.",
"title": "Uživateľ nebol vymazaný"
},
"popup_error": {
"message": "Niečo sa stalo a nemôžme pokračovať. Prosím kontaktuj nás.",
"title": "Ups, niekde nastala chyba!"
},
"popup_exceed_limit": {
"message": "Prosím, kontaktujte administrátora pre navyšenie limitu.",
"title": "Ups, presiahli ste limit úložiska"
},
"popup_move_item": {
"cancel": "Zrušiť",
"submit": "Presunúť položku",
"title": "Presuňte položku"
},
"popup_pass_changed": {
"message": "Od teraz máte nové heslo.",
"title": "Tvoje heslo bolo zmenené!"
},
"popup_passport_error": {
"message": "Pravdebodobne ste nespravne vygenerovali Passport Grant client alebo ste nenastavili udaje správne. Prosím následujte inštalačné inštrukcie.",
"title": "Nesprávny Passport Grand Client"
},
"popup_paylod_error": {
"message": "Prepáčte, súbor je príliš veľký a nemôže byť nahraný.",
"title": "Súbor je príliš veľký"
},
"popup_rename": {
"title": "Zmeňte názov {item}",
"label": "Zmeniť názov",
"placeholder": "Napíš názov...",
"tab_emoji_title": "Emodži ako ikona",
"tab_color_title": "Farba priečinka",
"select_emoji_label": "Vyberte emodži ikonu",
"color_pick_label": "Vyberte si farbu",
"set_emoji_input_placeholder": "Emodži zoznam ...",
"search_emoji_input_placeholder": "Vyhľadajte svoje emodži...",
"emoji_list_not_found": "Nenájdené"
},
"popup_set_card": {
"message": "Vaša karta bude nastavená ako predvolená a bude vám z nej vždy stiahnutá čiastka za nasledujúce obdobie fakturácie.",
"title": "Nastaviť ako predvolenú kartu?"
},
"popup_share_create": {
"title": "Zdieľaj {item}"
},
"popup_share_edit": {
"change_pass": "Zmeniť heslo",
"confirm": "Potvrdiť",
"save": "Uložiť zmeny",
"stop": "Zastaviť zdieľanie",
"title": "Upraviť nastavenia zdieľania",
"go_back": "Spať",
"send_to_recipients": "Odoslať príjemcom"
},
"popup_signup_error": {
"message": "Prosím skontrolujte databázove spojenie, či všetko funguje správne.",
"title": "Chyba serveru"
},
"popup_subscription_cancel": {
"button": "Som hotový",
"message": "Do konca fakturačného cyklu budete mať naďalej prístup k funkciám, za ktoré ste zaplatili.",
"title": "Predplatné bolo ukončené"
},
"popup_subscription_resumed": {
"button": "To je úžasné!",
"message": "Váš odber bol znova aktivovaný a budú vám účtované poplatky podľa pôvodného fakturačného cyklu.",
"title": "Predplatné bolo obnovené"
},
"profile": {
"change_pass": "Zmeniť heslo",
"profile_info": "Profil",
"store_pass": "Uložiť nové heslo"
},
"pronouns": {
"of": "z"
},
"roles": {
"admin": "Admin",
"user": "Užívateľ"
},
"routes": {
"create_new_password": "vytvorit-nove-heslo"
},
"routes_title": {
"appearance": "Vzhľad",
"billings": "Fakturácia",
"dashboard": "Prehľad",
"email": "E-mail",
"invoices": "Faktúry",
"others": "Ostatné",
"page_edit": "Upraviť stránku",
"pages": "Stránky",
"payment_methods": "Spôsob platby",
"payments": "Platby",
"plan": "Plán",
"plan_create": "Vytvoriť plán",
"plan_delete": "Odstránenie plánu",
"plan_settings": "Nastavenia plánu",
"pricing_plans": "Cenové plány",
"profile": "Môj profil",
"profile_settings": "Nastavenia profilu",
"settings": "Nastavenia",
"settings_mobile": "Nastavenia",
"settings_password": "Zmeniť heslo",
"settings_storage": "Úložisko",
"subscribers": "Odberatelia",
"subscription": "Predplatné",
"upgrade_billing": "Fakturácia",
"upgrade_plan": "Plán inovácie",
"user_create": "Vytvoriť uživateľa",
"users_delete": "Vymazať uživateľa",
"users_detail": "Detail",
"users_list": "Správca uživateľov",
"users_password": "Heslo",
"users_storage_usage": "Využitie úložiska",
"users_user": "Uživateľ"
},
"rows": {
"card": {
"expiration": "Dátum expirácie",
"number": "Číslo karty",
"status": "Stav"
},
"invoice": {
"number": "Číslo faktúry",
"payed": "Zaplatené",
"plan": "Plán",
"total": "Celkom"
}
},
"shared": {
"can_download": "Môže stiahnúť súbor",
"editor": "Môže upravovať a nahrávať súbory",
"empty_shared": "Zatiaľ ste nič nezdieľali",
"visitor": "Môže len vidieť a sťahovať súbory"
},
"shared_form": {
"button_more_options": "Viac nastavení",
"button_close_options": "Zavrieť viac možností",
"button_done": "Super, som hotový!",
"button_generate": "Vygenerovať link",
"label_password_protection": "Chrániť heslom",
"label_permission": "Oprávnenie",
"label_shared_url": "Zdieľací odkaz",
"label_share_vie_email": "Získajte odkaz",
"label_send_to_recipients": "Odoslať príjemcom",
"label_expiration": "Expirácia Linku",
"expiration_hour": "{value}h.",
"expiration_day": "{value}d.",
"placeholder_permission": "Zvoľte oprávnenia",
"email_successfully_send_message": "Vaša položka bola <b>úspešne odoslaná</b> na e-maily príjemcov.",
"share_by_link": "Zdieľať odkazom",
"share_by_email": "Zdieľať e-mailom",
"recipients_label": "Príjemcovia",
"email_placeholder": "Zadajte e-mailové adresy"
},
"sidebar": {
"favourites": "Obľúbené",
"favourites_empty": "Presuňte sem obľúbený priečinok",
"folders_empty": "Vytvorte svoj prvý priečinok",
"home": "Domov",
"latest": "Posledne nahraté",
"locations_title": "Menu",
"my_shared": "Moje zdieľané položky",
"navigator_title": "Navigátor",
"participant_uploads": "Nahrávania účastníkov",
"tools_title": "Nástroje"
},
"storage": {
"audios": "Audio",
"documents": "Dokumenty",
"images": "Obrázky",
"others": "Ostatné",
"sec_capacity": "Kapacita úložiska",
"sec_details": "Detail využitej kapacity",
"total_capacity": "Vaša kapacita disku je {capacity}",
"total_used": "Používané {used}",
"videos": "Videá"
},
"toaster": {
"account_upgraded": "Váš účet bol úspešne inovovaný.",
"card_deleted": "Vaša karta bola úspešne odstránená.",
"card_new_add": "Vaša karta bola úspešne pridaná",
"card_set": "Vaša karta bola úspešne nastavená ako predvolená.",
"changed_capacity": "Úspešne ste zmenili kapacitu úložiska uživateľa!",
"changed_user": "Úspešne ste zmenili rolu užívateľa",
"created_user": "Úspešne ste vytvorili uživateľa!",
"email_set": "Vaše nastavenia e-mailu boli úspešne aktualizované",
"plan_created": "Váš plán bol úspešne vytvorený!",
"sended_password": "Úspešne ste odoslali email uživateľovi pre reset hesla!",
"stripe_set": "Váš účet Stripe bol úspešne nastavený!"
},
"types": {
"file": "Súbor",
"folder": "Priečinok"
},
"upgrade_banner": {
"button": "Inovovať",
"description": "Takmer ste dosiahli kapacitu úložiska",
"title": "Dosiahli ste kapacitu úložiska. Prosím inovujte úložisko."
},
"incomplete_payment": {
"description": "Vaša posledná platba nie je dokončená. {0}",
"href": "Prosím potvrďte Vašu platbu."
},
"uploading": {
"cancel": "Zrušiť nahrávanie",
"processing_file": "Spracuvávam súbor...",
"progress_single_upload": "Nahrávam súbor {progress}%",
"progress": "Nahrávam súbory {progress}% - {current}/{total}"
},
"user_add_card": {
"default_description": "Vaša karta bude uložená a použitá pre platbu ako prvá.",
"default_title": "Nastaviť ako predvolenú platobnú kartu"
},
"user_box_delete": {
"description": "Môžete vymazať svojho uživateľa, avšak, dávajte pozor! Táto událosť je nezvratná a všetke uživateľské dáta vrátane uživateľových súborov budú vymazané!",
"title": "Vymazať uživateľa"
},
"user_box_password": {
"description": "Môžete zmeniť uživateľské heslo zaslaním resetovacieho emailu uživateľovi. Uživateľ bude presmerovaný na stránku, kde si môže zmeniť heslo na nové.",
"title": "Zmeňiť uživateľské heslo"
},
"user_box_role": {
"description": "Môžete zmeniť uživateľskú rolu pre aktuálneho uživateľa. Administrátorska rola môže editovať alebo vytvárať nových uživateľov, zmeniť kapacitu úložiska a mnoho dalších nastavení aplikácie.",
"title": "Zmeniť uživateľskú rolu"
},
"user_box_storage": {
"description": "Zmeňte kapacitu úložiska formulárom nižšie. Môžeš písať iba čiselné hodnoty, napríklad hodnota '5' znamená, že uživateľ bude mať 5GB kapacity úložiska.",
"title": "Zmeňiť kapacitu úložiska"
},
"user_invoices": {
"empty": "Zatiaľ nemáte žiadne faktúry.",
"title": "Faktúry"
},
"user_password": {
"title": "Zmeňte si heslo"
},
"user_payments": {
"add_card": "Pridať Platobnú Kartu",
"card_field_title": "Kreditná Karta",
"delete_card": "Odstrániť kartu",
"empty": "Zatiaľ nemáte žiadne platobné karty.",
"field_loading": "Načitávam kartové pole...",
"set_as_default": "Nastaviť ako predvolenú kartu",
"store_card": "Uložiť platobnú kartu",
"title": "Spôsob platby"
},
"user_settings": {
"address": "Adresa",
"address_plac": "Zadajte svoju fakturačnú adresu",
"city": "Mesto",
"city_plac": "Zadajte svoje fakturačné mesto",
"country": "Krajina",
"country_plac": "Vyberte svoju fakturačnú krajinu",
"name": "Meno",
"name_plac": "Zadajte svoje fakturačné meno",
"phone_number": "Telefónne číslo",
"phone_number_plac": "Zadajte svoje telefónne číslo pre fakturáciu",
"postal_code": "Poštové smerovacie číslo",
"postal_code_plac": "Zadajte svoj fakturačný poštový kód",
"state": "Štát",
"state_plac": "Zadajte Štát",
"title_account": "informácie o účte",
"title_billing": "Fakturačné údaje",
"timezone": "Časové pásmo",
"timezone_plac" : "Vyberte svoje časové pásmo"
},
"user_subscription": {
"billed": "Ůčtované",
"cancel_plan": "Zrušiť plán",
"canceled_at": "Zrušené",
"created_at": "Vytvorené",
"empty": "Zatiaľ nemáte žiadne predplatné.",
"ends_at": "Ukončenie",
"plan": "Plán",
"renews_at": "Obnovenie",
"resume_plan": "Obnoviť plán",
"status": "Stav",
"title": "Plán predplatného"
},
"validation_errors": {
"incorrect_password": "Prepáčte, vložili ste nesprávne heslo :(",
"wrong_image": "Zrejme ste vložili zlý obrázok, skúste to znova!"
}
}
+1 -1
View File
@@ -1,8 +1,8 @@
require("./bootstrap");
import Vue from "vue";
import i18n from "./i18n/index.js";
import VueRouter from "vue-router";
import router from "./router";
import i18n from "./i18n/index.js";
import App from "./App.vue";
import store from "./store";
import {events} from "./bus";
+44 -35
View File
@@ -119,7 +119,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/dashboard" */ './views/Admin/Dashboard'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.dashboard')
title: 'routes_title.dashboard'
},
},
{
@@ -129,7 +129,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/invoices" */ './views/Admin/Invoices'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.invoices')
title: 'routes_title.invoices'
},
},
{
@@ -139,7 +139,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/pages" */ './views/Admin/Pages'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.pages')
title: 'routes_title.pages'
},
},
{
@@ -149,7 +149,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/page-edit" */ './views/Admin/Pages/PageEdit'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.page_edit')
title: 'routes_title.page_edit'
},
},
{
@@ -159,7 +159,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/plans" */ './views/Admin/Plans'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.pricing_plans')
title: 'routes_title.pricing_plans'
},
},
{
@@ -169,7 +169,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/users" */ './views/Admin/Users'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.users_list')
title: 'routes_title.users_list'
},
},
{
@@ -179,7 +179,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user-create" */ './views/Admin/Users/UserCreate'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.user_create')
title: 'routes_title.user_create'
},
},
{
@@ -189,7 +189,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/plan-create" */ './views/Admin/Plans/PlanCreate'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.plan_create')
title: 'routes_title.plan_create'
},
},
{
@@ -199,7 +199,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user" */ './views/Admin/Users/User'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.users_user')
title: 'routes_title.users_user'
},
children: [
{
@@ -209,7 +209,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user-detail" */ './views/Admin/Users/UserTabs/UserDetail'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.users_detail')
title: 'routes_title.users_detail'
},
},
{
@@ -219,7 +219,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user-storage" */ './views/Admin/Users/UserTabs/UserStorage'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.users_storage_usage')
title: 'routes_title.users_storage_usage'
},
},
{
@@ -229,7 +229,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user-subscription" */ './views/Admin/Users/UserTabs/UserSubscription'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.subscription')
title: 'routes_title.subscription'
},
},
{
@@ -239,7 +239,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user-invoices" */ './views/Admin/Users/UserTabs/UserInvoices'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.invoices')
title: 'routes_title.invoices'
},
},
{
@@ -249,7 +249,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user-password" */ './views/Admin/Users/UserTabs/UserPassword'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.users_password')
title: 'routes_title.users_password'
},
},
{
@@ -259,7 +259,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/user-delete" */ './views/Admin/Users/UserTabs/UserDelete'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.users_delete')
title: 'routes_title.users_delete'
},
},
]
@@ -271,7 +271,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/plan" */ './views/Admin/Plans/Plan'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.plan')
title: 'routes_title.plan'
},
children: [
{
@@ -281,7 +281,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/plan-subscribers" */ './views/Admin/Plans/PlanTabs/PlanSubscribers'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.subscribers')
title: 'routes_title.subscribers'
},
},
{
@@ -291,7 +291,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/plan-settings" */ './views/Admin/Plans/PlanTabs/PlanSettings'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.plan_settings'),
title: 'routes_title.plan_settings',
},
},
{
@@ -301,7 +301,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/plan-delete" */ './views/Admin/Plans/PlanTabs/PlanDelete'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.plan_delete'),
title: 'routes_title.plan_delete',
},
},
]
@@ -313,7 +313,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/app-settings" */ './views/Admin/AppSettings/AppSettings'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.settings')
title: 'routes_title.settings'
},
children: [
{
@@ -323,7 +323,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/app-appearance" */ './views/Admin/AppSettings/AppSettingsTabs/Appearance'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.appearance')
title: 'routes_title.appearance'
},
},
{
@@ -343,7 +343,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/app-billings" */ './views/Admin/AppSettings/AppSettingsTabs/Billings'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.billings')
title: 'routes_title.billings'
},
},
{
@@ -353,7 +353,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/app-email" */ './views/Admin/AppSettings/AppSettingsTabs/Email'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.email')
title: 'routes_title.email'
},
},
{
@@ -363,7 +363,7 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/app-payments" */ './views/Admin/AppSettings/AppSettingsTabs/Payments'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.payments')
title: 'routes_title.payments'
},
},
{
@@ -373,11 +373,20 @@ const routesAdmin = [
import(/* webpackChunkName: "chunks/app-others" */ './views/Admin/AppSettings/AppSettingsTabs/Others'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.others')
title: 'routes_title.others'
},
},
]
},
{
name: 'Language',
path: '/admin/language',
component: () =>
import(/* webpackChunkName: "chunks/app-language" */ './views/Admin/Languages/Language'),
meta: {
requiresAuth: true,
},
}
]
},
{
@@ -386,7 +395,7 @@ const routesAdmin = [
component: AdminMobileMenu,
meta: {
requiresAuth: true,
title: i18n.t('routes_title.settings_mobile')
title: 'routes_title.settings_mobile'
},
},
{
@@ -395,7 +404,7 @@ const routesAdmin = [
component: UserProfileMobileMenu,
meta: {
requiresAuth: true,
title: i18n.t('routes_title.profile_settings')
title: 'routes_title.profile_settings'
},
},
]
@@ -518,7 +527,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/profile" */ './views/User/Settings'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.profile')
title: 'routes_title.profile'
},
},
{
@@ -528,7 +537,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/settings-password" */ './views/User/Password'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.settings_password')
title: 'routes_title.settings_password'
},
},
{
@@ -538,7 +547,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/settings-storage" */ './views/User/Storage'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.settings_storage')
title: 'routes_title.settings_storage'
},
},
{
@@ -548,7 +557,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/settings-invoices" */ './views/User/Invoices'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.invoices')
title: 'routes_title.invoices'
},
},
{
@@ -558,7 +567,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/settings-subscription" */ './views/User/Subscription'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.subscription')
title: 'routes_title.subscription'
},
},
{
@@ -568,7 +577,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/settings-payment-methods" */ './views/User/PaymentMethods'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.payment_methods')
title: 'routes_title.payment_methods'
},
},
{
@@ -590,7 +599,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/upgrade-plan" */ './views/Upgrade/UpgradePlan'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.upgrade_plan')
title: 'routes_title.upgrade_plan'
},
},
{
@@ -600,7 +609,7 @@ const routesUser = [
import(/* webpackChunkName: "chunks/upgrade-billing" */ './views/Upgrade/UpgradeBilling'),
meta: {
requiresAuth: true,
title: i18n.t('routes_title.upgrade_billing')
title: 'routes_title.upgrade_billing'
},
},
]
+24 -9
View File
@@ -1,4 +1,6 @@
import i18n from '@/i18n/index'
import axios from "axios";
import Vue from "vue";
const defaultState = {
fileInfoPanelVisible: localStorage.getItem('file_info_visibility') === 'true' || false,
@@ -14,11 +16,11 @@ const defaultState = {
},
roles: [
{
label: i18n.t('roles.admin'),
label: 'roles.admin',
value: 'admin',
},
{
label: i18n.t('roles.user'),
label: 'roles.user',
value: 'user',
},
],
@@ -269,31 +271,31 @@ const defaultState = {
],
expirationList: [
{
label: i18n.t('shared_form.expiration_hour', {value: 1}),
label: ['shared_form.expiration_hour', {value: 1}],
value: 1,
},
{
label: i18n.t('shared_form.expiration_hour', {value: 2}),
label: ['shared_form.expiration_hour', {value: 2}],
value: 2,
},
{
label: i18n.t('shared_form.expiration_hour', {value: 6}),
label: ['shared_form.expiration_hour', {value: 6}],
value: 6,
},
{
label: i18n.t('shared_form.expiration_hour', {value: 12}),
label: ['shared_form.expiration_hour', {value: 12}],
value: 12,
},
{
label: i18n.t('shared_form.expiration_day', {value: 1}),
label: ['shared_form.expiration_day', {value: 1}],
value: 24,
},
{
label: i18n.t('shared_form.expiration_day', {value: 2}),
label: ['shared_form.expiration_day', {value: 2}],
value: 48,
},
{
label: i18n.t('shared_form.expiration_day', {value: 7}),
label: ['shared_form.expiration_day', {value: 7}],
value: 168,
},
],
@@ -989,6 +991,19 @@ const actions = {
context.commit('FILE_INFO_TOGGLE', visibility)
}
},
getLanguageTranslations: ({commit, state}, lang) => {
return new Promise((resolve, reject) => {
axios.get(`/translations/${lang}`)
.then(response => {
i18n.setLocaleMessage(lang, response.data)
i18n.locale = lang
resolve(response)
})
})
},
}
const mutations = {
+2 -2
View File
@@ -7,12 +7,12 @@ import Vue from "vue";
const defaultState = {
permissionOptions: [
{
label: i18n.t('shared.editor'),
label: 'shared.editor',
value: 'editor',
icon: 'user-edit',
},
{
label: i18n.t('shared.visitor'),
label: 'shared.visitor',
value: 'visitor',
icon: 'user',
},
+26 -2
View File
@@ -1,8 +1,17 @@
<template>
<section id="viewport">
<!--Mobile Navigation-->
<MobileNavigation />
<!--Confirm Popup-->
<Confirm />
<!-- Create language popup -->
<CreateLanguage/>
<!--Navigation Sidebar-->
<MenuBar />
<MenuBar/>
<ContentSidebar>
@@ -41,6 +50,14 @@
{{ $t('admin_menu.pages') }}
</div>
</router-link>
<router-link :to="{name: 'Language'}" class="menu-list-item link">
<div class="icon text-theme">
<globe-icon size="17" />
</div>
<div class="label text-theme">
{{ $t('admin_menu.languages') }}
</div>
</router-link>
</div>
</ContentGroup>
@@ -72,9 +89,12 @@
</template>
<script>
import { UsersIcon, SettingsIcon, FileTextIcon, CreditCardIcon, DatabaseIcon, BoxIcon, MonitorIcon } from 'vue-feather-icons'
import { UsersIcon, SettingsIcon, FileTextIcon, CreditCardIcon, DatabaseIcon, BoxIcon, MonitorIcon, GlobeIcon } from 'vue-feather-icons'
import MobileNavigation from '@/components/Others/MobileNavigation'
import ContentSidebar from '@/components/Sidebar/ContentSidebar'
import CreateLanguage from '@/components/Others/CreateLanguage'
import ContentGroup from '@/components/Sidebar/ContentGroup'
import Confirm from '@/components/Others/Popup/Confirm'
import MenuBar from '@/components/Sidebar/MenuBar'
import { mapGetters } from 'vuex'
@@ -84,6 +104,8 @@
...mapGetters(['config']),
},
components: {
MobileNavigation,
CreateLanguage,
ContentSidebar,
CreditCardIcon,
FileTextIcon,
@@ -92,6 +114,8 @@
SettingsIcon,
MonitorIcon,
UsersIcon,
GlobeIcon,
Confirm,
MenuBar,
BoxIcon,
},
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :can-back="true" :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
@@ -26,13 +26,12 @@
<FormLabel class="mt-70">{{ $t('admin_settings.appearance.section_appearance') }}</FormLabel>
<!--TODO: add language-->
<div class="block-wrapper">
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Title" rules="required" v-slot="{ errors }">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Color Theme:</label>
<small class="input-help">Your color change will be visible after app refresh.</small>
<label class="input-label">{{ $t('color_theme') }}:</label>
<small class="input-help">{{ $t('color_theme_description') }}</small>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</div>
<input @input="$updateText('/admin/settings', 'app_color', app.color)" v-model="app.color" :placeholder="$t('admin_settings.appearance.title_plac')" type="color"
@@ -62,6 +61,22 @@
<ImageInput @input="$updateImage('/admin/settings', 'app_favicon', app.favicon)" :image="$getImage(app.favicon)" v-model="app.favicon" :error="errors[0]"/>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>{{ $t('og_image') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Favicon" v-slot="{ errors }">
<ImageInput @input="$updateImage('/admin/settings', 'app_og_image', app.og_image)" :image="$getImage(app.og_image)" v-model="app.og_image" :error="errors[0]"/>
<small class="input-help">{{ $t('og_image_description') }}</small>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>{{ $t('app_touch_icon') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Favicon" v-slot="{ errors }">
<ImageInput @input="$updateImage('/admin/settings', 'app_touch_icon', app.touch_icon)" :image="$getImage(app.touch_icon)" v-model="app.touch_icon" :error="errors[0]"/>
<small class="input-help">{{ $t('app_touch_icon_description') }}</small>
</ValidationProvider>
</div>
</div>
</PageTabGroup>
</PageTab>
@@ -106,7 +121,7 @@
mounted() {
axios.get('/api/admin/settings', {
params: {
column: 'app_title|app_description|app_logo|app_favicon|app_logo_horizontal|app_color'
column: 'app_title|app_description|app_logo|app_favicon|app_logo_horizontal|app_color|app_og_image|app_touch_icon'
}
})
.then(response => {
@@ -117,6 +132,8 @@
title: response.data.app_title,
color: response.data.app_color,
logo: response.data.app_logo,
og_image: response.data.app_og_image,
touch_icon: response.data.app_touch_icon,
}
})
.finally(() => {
+2 -2
View File
@@ -1,7 +1,7 @@
<template>
<div id="single-page">
<div id="page-content" v-if="! isLoading && data">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="dashboard-headline">
<div class="logo">
@@ -10,7 +10,7 @@
</a>
</div>
<div class="metadata">
<a href="https://vuefilemanager.com/changelog" target="_blank" class="meta">
<a href="https://gist.github.com/MakingCG/9c07f8af392081ae5d5290d920a79b5d" target="_blank" class="meta">
<span class="meta-title">{{ $t('admin_page_dashboard.version') }}:</span>
<ColorLabel color="purple">
{{ data.app_version }}
+2 -2
View File
@@ -3,8 +3,8 @@
<!--Page Content-->
<div id="page-content" v-show="! isLoading && config.stripe_public_key">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page" v-if="config.stripe_public_key">
<DatatableWrapper @data="invoices = $event" @init="isLoading = false" api="/api/admin/invoices" :paginator="false" :columns="columns" class="table">
@@ -0,0 +1,365 @@
<template>
<div id="single-page">
<div id="page-content">
<MobileHeader :title="$t('routes_title.language')" />
<PageHeader :title="$t('routes_title.language')" />
<div v-if="languages" class="content-page">
<!--Sidebar-->
<div class="side-content">
<div class="sticky top-65">
<div class="languages-wrapper page-tab from-fixed-width">
<div class="language-label-wrapper">
<label class="language-label">{{ $t('languages') }}</label>
</div>
<!-- Languages -->
<div class="all-language-wrapper">
<div @click="getLanguage(language)" v-for="language in languages" :key="language.data.id" class="language group">
<label class="name" :class="{'active': selectedLanguage && selectedLanguage.data.attributes.locale === language.data.attributes.locale}">
<span class="active-text-theme group-hover-text-theme">{{ language.data.attributes.name }}</span>
</label>
<x-icon
v-if="language.data.attributes.locale !== 'en'"
@click.stop="deleteLanguage(language)"
class="icon"
size="17"
/>
</div>
</div>
</div>
<MobileActionButton @click.native="createLanguage" icon="plus" class="button-add-language">
{{ $t('add_language') }}
</MobileActionButton>
</div>
</div>
<!--Content-->
<div class="form block-form content">
<Spinner v-if="! selectedLanguage" />
<div v-if="selectedLanguage">
<FormLabel icon="settings">
{{ $t('language_settings') }}
</FormLabel>
<!--Language name-->
<div class="block-wrapper">
<label>{{ $t('language_name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Description" rules="required" v-slot="{ errors }">
<input @input="$updateText(`/admin/languages/${selectedLanguage.data.id}`, 'name', selectedLanguage.data.attributes.name)" v-model="selectedLanguage.data.attributes.name"
:placeholder="$t('admin_settings.appearance.description_plac')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Set default language-->
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">
{{ $t('set_as_default_language') }}:
</label>
<small class="input-help">
If this language is set as default, app will appear in this language for all users.
</small>
</div>
<SwitchInput
@input="setDefaultLanguage"
class="switch"
:class="{'disable-switch': selectedLanguage.data.attributes.locale === this.defaultLanguageLocale }"
:state="selectedLanguage.data.attributes.locale === this.defaultLanguageLocale"
/>
</div>
</div>
</div>
<!--Translations-->
<FormLabel class="mt-70">
{{ $t('edit_translations') }}
</FormLabel>
<InfoBox class="info-box">
<p>Please preserve in your translations special string variables defined in format as <b class="text-theme">:variable</b> or <b class="text-theme">{variable}</b>.</p>
</InfoBox>
<!--Inline Search-->
<div class="block-wrapper sticky top-50 search-bar-wrapper">
<SearchInput v-model="query" @reset-query="query = ''" />
</div>
<!--Translation-->
<div class="block-wrapper" v-for="(translation, key) in translationList" :key="key">
<label> {{ referenceTranslations[key] }}:</label>
<ValidationProvider tag="div" class="input-wrapper" name="Language string" rules="required" v-slot="{ errors }">
<input type="text"
:class="{'is-error': errors[0]}"
class="focus-border-theme"
@input="$updateText(`/admin/languages/${selectedLanguage.data.id}/strings`, key, selectedLanguage.data.attributes.translations[key])"
v-model="selectedLanguage.data.attributes.translations[key]"
/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
</div>
</div>
</div>
<Spinner v-if="! languages" />
</div>
</div>
</template>
<script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import MobileActionButton from '@/components/FilesView/MobileActionButton'
import SwitchInput from '@/components/Others/Forms/SwitchInput'
import SearchInput from '@/components/Others/Forms/SearchInput'
import FormLabel from '@/components/Others/Forms/FormLabel'
import MobileHeader from '@/components/Mobile/MobileHeader'
import ButtonBase from '@/components/FilesView/ButtonBase'
import InfoBox from '@/components/Others/Forms/InfoBox'
import PageHeader from '@/components/Others/PageHeader'
import Spinner from '@/components/FilesView/Spinner'
import {PlusIcon, XIcon} from 'vue-feather-icons'
import {debounce, omitBy} from 'lodash'
import {events} from '@/bus'
export default {
name: 'Language',
components: {
ValidationProvider,
ValidationObserver,
MobileActionButton,
MobileHeader,
SearchInput,
SwitchInput,
ButtonBase,
PageHeader,
FormLabel,
PlusIcon,
InfoBox,
Spinner,
XIcon
},
data() {
return {
searchedTranslationResults: undefined,
referenceTranslations: undefined,
defaultLanguageLocale: undefined,
selectedLanguage: undefined,
languages: undefined,
query: '',
}
},
watch: {
query: debounce(function (val) {
this.searchedTranslationResults = omitBy(this.selectedLanguage.data.attributes.translations, string => {
return !string.toLowerCase().includes(val.toLowerCase())
})
}, 300),
},
computed: {
translationList() {
return this.searchedTranslationResults && this.query !== ''
? this.searchedTranslationResults
: this.selectedLanguage.data.attributes.translations
}
},
methods: {
setDefaultLanguage() {
this.$updateText('/admin/settings', 'language', this.selectedLanguage.data.attributes.locale)
this.defaultLanguageLocale = this.selectedLanguage.data.attributes.locale
},
getLanguages() {
axios
.get('/api/admin/languages')
.then(response => {
this.languages = response.data.data
this.referenceTranslations = response.data.meta.reference_translations
this.selectedLanguage = response.data.meta.current_language
this.defaultLanguageLocale = response.data.meta.current_language.data.attributes.locale
})
.catch(() => {
this.$isSomethingWrong()
})
},
getLanguage(language) {
this.selectedLanguage = undefined
axios
.get(`/api/admin/languages/${language.data.id}`)
.then(response => {
this.selectedLanguage = response.data
})
.catch(() => {
this.$isSomethingWrong()
})
},
deleteLanguage(language) {
events.$emit('confirm:open', {
title: `Delete "${language.data.attributes.name}" language?`,
message: 'Your language will be permanently deleted.',
buttonColor: 'danger-solid',
action: {
id: language.data.id,
operation: 'delete-language'
}
})
},
createLanguage() {
events.$emit('popup:open', {name: 'create-language'})
},
},
mounted() {
this.getLanguages()
events.$on('reload:languages', () => this.getLanguages())
events.$on('action:confirmed', data => {
if (data.operation === 'delete-language')
axios.delete(`/api/admin/languages/${data.id}`)
.then(() => this.getLanguages())
.catch(() => this.$isSomethingWrong())
})
},
destroyed() {
events.$off('action:confirmed')
},
}
</script>
<style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins';
@import '@assets/vuefilemanager/_forms';
@import '@assets/vuefilemanager/_vuewind';
.search-bar-wrapper {
background: white;
padding: 10px 10px 0 10px;
margin: 0 -10px;
}
.content-page {
display: flex;
max-width: 1000px;
margin: 20px auto 0;
.content {
width: 100%;
position: relative;
}
}
.disable-switch {
cursor: not-allowed;
/deep/ .text-right {
pointer-events: none;
}
}
.info-box {
margin-bottom: 12px;
}
.side-content {
flex: 0 0 225px;
.button-add-language {
margin-top: 30px;
}
.languages-wrapper {
.language-label-wrapper {
margin-bottom: 5px;
.language-label {
color: $light_text;
font-weight: 700;
@include font-size(12);
margin-top: 20px;
}
}
.all-language-wrapper {
.language {
display: flex;
align-items: center;
padding: 12px 25px 12px 0px;
cursor: pointer;
&:hover {
.icon {
display: block;
}
}
.name {
color: $text;
font-weight: 700;
@include font-size(13);
cursor: pointer;
}
.icon {
display: none;
margin-left: auto;
cursor: pointer;
}
}
}
}
}
@media only screen and (max-width: 1024px) {
.wrapper {
flex-direction: column;
.side-content {
margin-bottom: 70px;
}
.languages-wrapper {
margin-top: 0px;
}
}
}
@media only screen and (max-width: 690px) {
.side-content {
margin-bottom: 35px !important;
flex: none;
}
}
@media (prefers-color-scheme: dark) {
.search-bar-wrapper {
background: $dark_mode_background;
}
.language {
.name {
color: $dark_mode_text_primary !important;
}
}
.language-label {
color: $dark_mode_text_secondary !important;
}
}
</style>
+2 -2
View File
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content" v-show="! isLoading">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
<DatatableWrapper @init="isLoading = false" api="/api/admin/pages" :paginator="false" :columns="columns" class="table table-users">
+2 -2
View File
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content" v-if="! isLoading && page">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
<ValidationObserver ref="personalInformation" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
+2 -2
View File
@@ -3,8 +3,8 @@
<!--Stripe plans-->
<div id="page-content" v-show="stripeConfiguredWithPlans">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page" v-if="config.stripe_public_key">
<div class="table-tools">
+2 -2
View File
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content" v-if="! isLoading">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :can-back="true" :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content" class="small-width">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :can-back="true" :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
<ValidationObserver @submit.prevent="createPlan" ref="createPlan" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
+2 -2
View File
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
+2 -2
View File
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content" v-if="! isLoading">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :can-back="true" :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
<!--User thumbnail-->
@@ -1,8 +1,8 @@
<template>
<div id="single-page">
<div id="page-content" class="small-width">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :can-back="true" :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
<ValidationObserver @submit.prevent="createUser" ref="createUser" v-slot="{ invalid }" tag="form" class="form block-form">
@@ -20,7 +20,7 @@
<!--Email-->
<div class="block-wrapper">
<label>{{ $t('page_registration.label_email') }}</label>
<label>{{ $t('page_registration.label_email') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" rules="required" v-slot="{ errors }">
<input v-model="user.email" :placeholder="$t('admin_page_user.create_user.label_email')" type="email" class="focus-border-theme" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
@@ -29,7 +29,7 @@
<!--Name-->
<div class="block-wrapper">
<label>{{ $t('page_registration.label_name') }}</label>
<label>{{ $t('page_registration.label_name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="user name" rules="required" v-slot="{ errors }">
<input v-model="user.name" :placeholder="$t('admin_page_user.create_user.label_name')" type="text" class="focus-border-theme" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
@@ -39,7 +39,7 @@
<!--Password-->
<div class="wrapper-inline">
<div class="block-wrapper">
<label>{{ $t('page_registration.label_pass') }}</label>
<label>{{ $t('page_registration.label_pass') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="password" rules="required" v-slot="{ errors }">
<input v-model="user.password" :placeholder="$t('page_registration.placeholder_pass')" type="password" class="focus-border-theme" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
@@ -47,7 +47,7 @@
</div>
<div class="block-wrapper">
<label>{{ $t('page_registration.label_confirm_pass') }}</label>
<label>{{ $t('page_registration.label_confirm_pass') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="password confirm" rules="required" v-slot="{ errors }">
<input v-model="user.password_confirmation" :placeholder="$t('admin_page_user.create_user.label_conf_pass')" type="password" class="focus-border-theme" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
@@ -63,7 +63,7 @@
<div class="block-wrapper">
<label>{{ $t('admin_page_user.select_role') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="permission" rules="required" v-slot="{ errors }">
<SelectInput v-model="user.role" :options="roles" :placeholder="$t('admin_page_user.select_role')" :isError="errors[0]"/>
<SelectInput v-model="user.role" :options="$translateSelectOptions(roles)" :placeholder="$t('admin_page_user.select_role')" :isError="errors[0]"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
@@ -15,7 +15,7 @@
<ValidationProvider tag="div" class="block-wrapper" v-slot="{ errors }" mode="passive" name="Role" rules="required">
<label>{{ $t('admin_page_user.select_role') }}:</label>
<div class="single-line-form">
<SelectInput v-model="userRole" :options="roles"
<SelectInput v-model="userRole" :options="$translateSelectOptions(roles)"
:placeholder="$t('admin_page_user.select_role')" :isError="errors[0]" />
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit"
button-style="theme" class="submit-button">
@@ -34,7 +34,7 @@
<!--Email-->
<div class="block-wrapper">
<label>{{ $t('page_registration.label_email') }}</label>
<label>{{ $t('page_registration.label_email') }}:</label>
<div class="input-wrapper">
<input :value="user.data.attributes.email"
:placeholder="$t('page_registration.placeholder_email')"
@@ -46,7 +46,7 @@
<!--Name-->
<div class="block-wrapper">
<label>{{ $t('page_registration.label_name') }}</label>
<label>{{ $t('page_registration.label_name') }}:</label>
<div class="input-wrapper">
<input :value="user.data.relationships.settings.data.attributes.name"
:placeholder="$t('page_registration.placeholder_name')"
@@ -7,13 +7,13 @@
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_create_password.title') }}</h1>
<h2>{{ $t('page_create_password.subtitle') }}</h2>
<h2>{{ $t('page_create_password.subtitle') }}:</h2>
<ValidationObserver @submit.prevent="createNewPassword" ref="create_new_password" v-slot="{ invalid }"
tag="form" class="form block-form create-new-password">
<div class="block-wrapper">
<label>{{ $t('page_create_password.label_email') }}</label>
<label>{{ $t('page_create_password.label_email') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="E-Mail" rules="required"
v-slot="{ errors }">
<input v-model="recoverPassword.email" :placeholder="$t('page_login.placeholder_email')" type="email"
@@ -7,7 +7,7 @@
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_forgotten_password.title') }}</h1>
<h2>{{ $t('page_forgotten_password.subtitle') }}</h2>
<h2>{{ $t('page_forgotten_password.subtitle') }}:</h2>
<ValidationObserver @submit.prevent="forgottenPassword" ref="forgotten_password" v-slot="{ invalid }"
tag="form" class="form inline-form">
+2 -2
View File
@@ -7,7 +7,7 @@
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_login.title') }}</h1>
<h2>{{ $t('page_login.subtitle') }}</h2>
<h2>{{ $t('page_login.subtitle') }}:</h2>
<ValidationObserver @submit.prevent="logIn" ref="log_in" v-slot="{ invalid }" tag="form"
class="form inline-form">
@@ -37,7 +37,7 @@
<div class="user" v-if="checkedAccount">
<img class="user-avatar" :src="checkedAccount.avatar" :alt="checkedAccount.name">
<h1>{{ $t('page_sign_in.title', {name: checkedAccount.name}) }}</h1>
<h2>{{ $t('page_sign_in.subtitle') }}</h2>
<h2>{{ $t('page_sign_in.subtitle') }}:</h2>
</div>
<ValidationObserver @submit.prevent="singIn" ref="sign_in" v-slot="{ invalid }" tag="form"
+5 -5
View File
@@ -7,13 +7,13 @@
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_registration.title') }}</h1>
<h2>{{ $t('page_registration.subtitle') }}</h2>
<h2>{{ $t('page_registration.subtitle') }}:</h2>
<ValidationObserver @submit.prevent="signUp" ref="sign_up" v-slot="{ invalid }" tag="form"
class="form block-form">
<div class="block-wrapper">
<label>{{ $t('page_registration.label_email') }}</label>
<label>{{ $t('page_registration.label_email') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="E-Mail" rules="required"
v-slot="{ errors }">
<input v-model="register.email" :placeholder="$t('page_registration.placeholder_email')" type="email"
@@ -24,7 +24,7 @@
</div>
<div class="block-wrapper">
<label>{{ $t('page_registration.label_name') }}</label>
<label>{{ $t('page_registration.label_name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Full Name" rules="required"
v-slot="{ errors }">
<input v-model="register.name" :placeholder="$t('page_registration.placeholder_name')" type="text"
@@ -35,7 +35,7 @@
</div>
<div class="block-wrapper">
<label>{{ $t('page_registration.label_pass') }}</label>
<label>{{ $t('page_registration.label_pass') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Your New Password"
rules="required" v-slot="{ errors }">
<input v-model="register.password" :placeholder="$t('page_registration.placeholder_pass')" type="password"
@@ -46,7 +46,7 @@
</div>
<div class="block-wrapper">
<label>{{ $t('page_registration.label_confirm_pass') }}</label>
<label>{{ $t('page_registration.label_confirm_pass') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Confirm Your Password"
rules="required" v-slot="{ errors }">
<input v-model="register.password_confirmation" :placeholder="$t('page_registration.placeholder_confirm_pass')"
@@ -3,7 +3,7 @@
<div id="page-content">
<!--Header-->
<MobileHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<!--Content-->
<div class="content-page">
@@ -63,6 +63,13 @@
routeName: 'Pages',
isVisible: true,
},
{
icon: 'language',
title: this.$t('languages'),
routeName: 'Language',
isVisible: true,
}
],
SassNavigation: [
{
@@ -3,7 +3,7 @@
<div id="page-content">
<!--Header-->
<MobileHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<!--Content-->
<div class="content-page">
+1 -1
View File
@@ -45,7 +45,7 @@
<keep-alive :include="['Admin', 'Users']">
<router-view :class="{'is-scaled-down': isScaledDown}" />
</keep-alive>
</div>
</div>
</template>
<script>
+1 -1
View File
@@ -68,7 +68,7 @@
<div id="single-page" v-if="user">
<div id="page-content" class="medium-width" v-if="! isLoading">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
@@ -50,6 +50,22 @@
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>OG Image (optional):</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Favicon" v-slot="{ errors }">
<ImageInput v-model="app.og_image" :error="errors[0]"/>
<small class="input-help">Image that appear when someone shares the content to Facebook or any other social medium. Preferred size is 1200x627</small>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Touch Icon (optional):</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Favicon" v-slot="{ errors }">
<ImageInput v-model="app.touch_icon" :error="errors[0]"/>
<small class="input-help">If user store bookmark on his phone screen, this icon appear in app thumbnail. Preferred size is 156x156</small>
</ValidationProvider>
</div>
<FormLabel class="mt-70">Others Information</FormLabel>
<div class="block-wrapper">
@@ -158,6 +174,8 @@
logo: undefined,
logo_horizontal: undefined,
favicon: undefined,
og_image: undefined,
touch_icon: undefined,
contactMail: '',
googleAnalytics: '',
defaultStorage: '5',
@@ -199,6 +217,12 @@
if (this.app.logo_horizontal)
formData.append('logo_horizontal', this.app.logo_horizontal)
if (this.app.og_image)
formData.append('og_image', this.app.og_image)
if (this.app.touch_icon)
formData.append('touch_icon', this.app.touch_icon)
if (this.app.favicon)
formData.append('favicon', this.app.favicon)
@@ -1,7 +1,7 @@
<template>
<div id="single-page">
<div id="page-content" class="large-width center-page" v-show="! isLoading">
<MobileHeader :title="$router.currentRoute.meta.title" />
<MobileHeader :title="$t($router.currentRoute.meta.title)" />
<div class="content-page">
<div class="plan-title">
<credit-card-icon size="42" class="title-icon text-theme" />
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<div id="single-page">
<div id="page-content" class="large-width center-page" v-show="! isLoading">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<MobileHeader :title="$t($router.currentRoute.meta.title)"/>
<div class="content-page">
<!--Page Title-->
+2 -2
View File
@@ -4,7 +4,7 @@
<div class="form block-form">
<FormLabel>{{ $t('user_settings.title_account') }}</FormLabel>
<div class="block-wrapper">
<label>{{ $t('page_registration.label_email') }}</label>
<label>{{ $t('page_registration.label_email') }}:</label>
<div class="input-wrapper">
<input :value="userInfo.email"
:placeholder="$t('page_registration.placeholder_email')"
@@ -14,7 +14,7 @@
</div>
</div>
<div class="block-wrapper">
<label>{{ $t('page_registration.label_name') }}</label>
<label>{{ $t('page_registration.label_name') }}:</label>
<div class="input-wrapper">
<input @keyup="changeUserName"
v-model="userInfo.name"