mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-06 02:33:48 +00:00
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:
@@ -5,7 +5,6 @@ namespace App\Actions\Fortify;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use App\Models\UserSettings;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Laravel\Fortify\Contracts\CreatesNewUsers;
|
||||
@@ -44,7 +43,7 @@ class CreateNewUser implements CreatesNewUsers
|
||||
|
||||
$user = User::create([
|
||||
'email' => $input['email'],
|
||||
'password' => Hash::make($input['password']),
|
||||
'password' => bcrypt($input['password']),
|
||||
]);
|
||||
|
||||
UserSettings::unguard();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Actions\Fortify;
|
||||
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Laravel\Fortify\Contracts\ResetsUserPasswords;
|
||||
|
||||
@@ -24,7 +23,7 @@ class ResetUserPassword implements ResetsUserPasswords
|
||||
])->validate();
|
||||
|
||||
$user->forceFill([
|
||||
'password' => Hash::make($input['password']),
|
||||
'password' => bcrypt($input['password']),
|
||||
])->save();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class UpdateUserPassword implements UpdatesUserPasswords
|
||||
})->validateWithBag('updatePassword');
|
||||
|
||||
$user->forceFill([
|
||||
'password' => Hash::make($input['password']),
|
||||
'password' => bcrypt($input['password']),
|
||||
])->save();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,15 +4,12 @@ namespace App\Console\Commands;
|
||||
|
||||
use App\Models\File;
|
||||
use App\Models\Folder;
|
||||
use App\Models\Page;
|
||||
use App\Models\Share;
|
||||
use App\Services\HelperService;
|
||||
use App\Services\SetupService;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Faker;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
@@ -24,6 +21,7 @@ class SetupDevEnvironment extends Command
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'setup:dev';
|
||||
protected $license = 'Extended';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -66,7 +64,8 @@ class SetupDevEnvironment extends Command
|
||||
$this->info('Storing default settings and content...');
|
||||
$this->store_default_settings();
|
||||
$this->setup->seed_default_pages();
|
||||
$this->setup->seed_default_settings('Extended');
|
||||
$this->setup->seed_default_settings($this->license);
|
||||
$this->setup->seed_default_language();
|
||||
|
||||
$this->info('Creating default admin...');
|
||||
$this->create_admin();
|
||||
@@ -97,7 +96,7 @@ class SetupDevEnvironment extends Command
|
||||
$user = User::forceCreate([
|
||||
'role' => 'admin',
|
||||
'email' => 'howdy@hi5ve.digital',
|
||||
'password' => Hash::make('vuefilemanager'),
|
||||
'password' => bcrypt('vuefilemanager'),
|
||||
]);
|
||||
|
||||
$user
|
||||
@@ -138,7 +137,7 @@ class SetupDevEnvironment extends Command
|
||||
$newbie = User::forceCreate([
|
||||
'role' => 'user',
|
||||
'email' => $this->faker->email,
|
||||
'password' => Hash::make('vuefilemanager'),
|
||||
'password' => bcrypt('vuefilemanager'),
|
||||
]);
|
||||
|
||||
$newbie
|
||||
@@ -184,7 +183,7 @@ class SetupDevEnvironment extends Command
|
||||
"group" => "Travel & Places",
|
||||
"subgroup" => "transport-air"
|
||||
],
|
||||
'created_at' => Carbon::now(),
|
||||
'created_at' => now(),
|
||||
]);
|
||||
|
||||
Share::factory(Share::class)
|
||||
@@ -220,7 +219,7 @@ class SetupDevEnvironment extends Command
|
||||
'group' => 'Objects',
|
||||
'subgroup' => 'light & video',
|
||||
],
|
||||
'created_at' => Carbon::now()->subMinutes(1),
|
||||
'created_at' => now()->subMinutes(1),
|
||||
]);
|
||||
|
||||
$nature = Folder::factory(Folder::class)
|
||||
@@ -261,7 +260,7 @@ class SetupDevEnvironment extends Command
|
||||
'user_id' => $user->id,
|
||||
'author' => 'user',
|
||||
'name' => 'Playable Media',
|
||||
'created_at' => Carbon::now()->subMinutes(2),
|
||||
'created_at' => now()->subMinutes(2),
|
||||
]);
|
||||
|
||||
$video = Folder::factory(Folder::class)
|
||||
@@ -286,7 +285,7 @@ class SetupDevEnvironment extends Command
|
||||
'user_id' => $user->id,
|
||||
'author' => 'user',
|
||||
'name' => 'Multi Level Folder',
|
||||
'created_at' => Carbon::now()->subMinutes(3),
|
||||
'created_at' => now()->subMinutes(3),
|
||||
]);
|
||||
|
||||
$first_level = Folder::factory(Folder::class)
|
||||
@@ -319,7 +318,7 @@ class SetupDevEnvironment extends Command
|
||||
'user_id' => $user->id,
|
||||
'author' => 'user',
|
||||
'name' => 'Documents',
|
||||
'created_at' => Carbon::now()->subMinutes(4),
|
||||
'created_at' => now()->subMinutes(4),
|
||||
]);
|
||||
|
||||
Share::factory(Share::class)
|
||||
@@ -339,7 +338,7 @@ class SetupDevEnvironment extends Command
|
||||
'user_id' => $user->id,
|
||||
'author' => 'user',
|
||||
'name' => 'Videohive by MakingCG',
|
||||
'created_at' => Carbon::now()->subMinutes(5),
|
||||
'created_at' => now()->subMinutes(5),
|
||||
]);
|
||||
|
||||
$user
|
||||
@@ -391,7 +390,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => $file['mimetype'],
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -435,7 +434,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => $file['mimetype'],
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -469,7 +468,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => $file['mimetype'],
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -528,7 +527,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'visitor',
|
||||
'mimetype' => $file['mimetype'],
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -556,7 +555,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => 'mp4',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -581,7 +580,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => 'mp4',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -606,7 +605,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => 'mp3',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -645,7 +644,7 @@ class SetupDevEnvironment extends Command
|
||||
'mimetype' => 'jpg',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -679,7 +678,7 @@ class SetupDevEnvironment extends Command
|
||||
'mimetype' => 'jpg',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -717,7 +716,7 @@ class SetupDevEnvironment extends Command
|
||||
'mimetype' => 'jpg',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
|
||||
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
}
|
||||
@@ -793,6 +792,14 @@ class SetupDevEnvironment extends Command
|
||||
'name' => 'app_favicon',
|
||||
'value' => 'system/favicon.png',
|
||||
],
|
||||
[
|
||||
'name' => 'app_og_image',
|
||||
'value' => 'system/og-image.jpg',
|
||||
],
|
||||
[
|
||||
'name' => 'app_touch_icon',
|
||||
'value' => 'system/touch-icon.png',
|
||||
],
|
||||
[
|
||||
'name' => 'google_analytics',
|
||||
'value' => '',
|
||||
@@ -823,7 +830,7 @@ class SetupDevEnvironment extends Command
|
||||
],
|
||||
[
|
||||
'name' => 'license',
|
||||
'value' => 'Extended',
|
||||
'value' => $this->license,
|
||||
],
|
||||
[
|
||||
'name' => 'purchase_code',
|
||||
@@ -869,7 +876,7 @@ class SetupDevEnvironment extends Command
|
||||
});
|
||||
|
||||
// Get system images
|
||||
collect(['logo.svg', 'logo-horizontal.svg', 'favicon.png'])
|
||||
collect(['logo.svg', 'logo-horizontal.svg', 'favicon.png', 'og-image.jpg', 'touch-icon.png'])
|
||||
->each(function ($file) {
|
||||
\File::copy(storage_path("demo/app/$file"), storage_path("app/system/$file"));
|
||||
});
|
||||
|
||||
136
app/Http/Controllers/Admin/LanguageController.php
Normal file
136
app/Http/Controllers/Admin/LanguageController.php
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Resources\LanguageCollection;
|
||||
use App\Http\Resources\LanguageResource;
|
||||
use App\Models\Language;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Setting;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Requests\Languages\UpdateStringRequest;
|
||||
use App\Http\Requests\Languages\CreateLanguageRequest;
|
||||
use App\Http\Requests\Languages\UpdateLanguageRequest;
|
||||
|
||||
class LanguageController extends Controller
|
||||
{
|
||||
/**
|
||||
* Get all languages for admin translate
|
||||
*
|
||||
* @return array|Application|ResponseFactory|Response
|
||||
*/
|
||||
public function get_languages()
|
||||
{
|
||||
return response(
|
||||
new LanguageCollection(Language::sortable(['created_at', 'DESC'])->get()), 200
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all language strings for admin translate
|
||||
*
|
||||
* @param Language $language
|
||||
*/
|
||||
public function get_language(Language $language)
|
||||
{
|
||||
return response(
|
||||
new LanguageResource($language), 200
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new language
|
||||
*
|
||||
* @param CreateLanguageRequest $request
|
||||
* @return string
|
||||
*/
|
||||
public function create_language(CreateLanguageRequest $request)
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
$language = Language::create([
|
||||
'name' => $request->input('name'),
|
||||
'locale' => $request->input('locale')
|
||||
]);
|
||||
|
||||
return response(
|
||||
new LanguageResource($language), 201
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update language
|
||||
*
|
||||
* @param UpdateLanguageRequest $request
|
||||
* @param Language $language
|
||||
*/
|
||||
public function update_language(UpdateLanguageRequest $request, Language $language)
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
$language->update(make_single_input($request));
|
||||
|
||||
return response(
|
||||
new LanguageResource($language), 201
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update string for language
|
||||
*
|
||||
* @param UpdateStringRequest $request
|
||||
* @param Language $language
|
||||
* @return Application|ResponseFactory|Response
|
||||
*/
|
||||
public function update_string(UpdateStringRequest $request, Language $language)
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
$language
|
||||
->languageTranslations()
|
||||
->where('key', $request->name)
|
||||
->update([
|
||||
'value' => $request->value
|
||||
]);
|
||||
|
||||
cache()->forget("language-translations-{$language->locale}");
|
||||
|
||||
return response(
|
||||
'Done', 204
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the language with all children strings
|
||||
*
|
||||
* @param Language $language
|
||||
* @return ResponseFactory|Response
|
||||
*/
|
||||
public function delete_language(Language $language)
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
if ($language->locale === 'en') {
|
||||
abort(401, "Sorry, you can't delete default language.");
|
||||
}
|
||||
|
||||
// If user try to delete language used as default,
|
||||
// then set en language as default
|
||||
if ($language->locale === get_setting('language')) {
|
||||
Setting::whereName('language')->first()
|
||||
->update(['value' => 'en']);
|
||||
}
|
||||
|
||||
$language->delete();
|
||||
|
||||
return response(
|
||||
'Done', 204
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -51,9 +51,8 @@ class PagesController extends Controller
|
||||
*/
|
||||
public function update(Request $request, Page $page)
|
||||
{
|
||||
if (is_demo()) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
$page->update(
|
||||
make_single_input($request)
|
||||
|
||||
@@ -110,9 +110,8 @@ class PlanController extends Controller
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
if (is_demo()) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
// Update plan
|
||||
$this->stripe->updatePlan($request, $id);
|
||||
@@ -131,9 +130,8 @@ class PlanController extends Controller
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
if (is_demo()) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
// Delete plan
|
||||
$this->stripe->deletePlan($id);
|
||||
|
||||
@@ -49,9 +49,8 @@ class SettingController extends Controller
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
if (is_demo()) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
// Store image if exist
|
||||
if ($request->hasFile($request->name)) {
|
||||
@@ -84,9 +83,8 @@ class SettingController extends Controller
|
||||
public function set_email(Request $request)
|
||||
{
|
||||
// TODO: pridat validator do requestu
|
||||
if (is_demo()) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
if (!app()->runningUnitTests()) {
|
||||
|
||||
@@ -178,9 +176,8 @@ class SettingController extends Controller
|
||||
*/
|
||||
public function flush_cache()
|
||||
{
|
||||
if (is_demo()) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
if (!app()->runningUnitTests()) {
|
||||
Artisan::call('cache:clear');
|
||||
|
||||
@@ -22,7 +22,6 @@ use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
use Storage;
|
||||
|
||||
@@ -182,7 +181,7 @@ class UserController extends Controller
|
||||
$user = User::forceCreate([
|
||||
'role' => $request->role,
|
||||
'email' => $request->email,
|
||||
'password' => Hash::make($request->password),
|
||||
'password' => bcrypt($request->password),
|
||||
]);
|
||||
|
||||
UserSettings::unguard();
|
||||
|
||||
@@ -7,6 +7,7 @@ use App\Http\Mail\SendContactMessage;
|
||||
use App\Http\Resources\PricingCollection;
|
||||
use App\Http\Requests\PublicPages\SendContactMessageRequest;
|
||||
use App\Http\Resources\PageResource;
|
||||
use App\Models\Language;
|
||||
use App\Models\Setting;
|
||||
use App\Models\Page;
|
||||
use App\Models\Share;
|
||||
@@ -163,17 +164,10 @@ class AppFunctionsController extends Controller
|
||||
*/
|
||||
public function get_storage_plans()
|
||||
{
|
||||
if (Cache::has('pricing')) {
|
||||
|
||||
// Get pricing from cache
|
||||
$pricing = Cache::get('pricing');
|
||||
} else {
|
||||
|
||||
// Store pricing to cache
|
||||
$pricing = Cache::rememberForever('pricing', function () {
|
||||
return $this->stripe->getActivePlans();
|
||||
});
|
||||
}
|
||||
// Get pricing from cache
|
||||
$pricing = Cache::rememberForever('pricing', function () {
|
||||
return $this->stripe->getActivePlans();
|
||||
});
|
||||
|
||||
// Format pricing to collection
|
||||
$collection = new PricingCollection($pricing);
|
||||
@@ -184,4 +178,21 @@ class AppFunctionsController extends Controller
|
||||
->values()
|
||||
->all();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get language translations for frontend app
|
||||
*
|
||||
* @param $lang
|
||||
* @return array
|
||||
*/
|
||||
public function get_translations($lang)
|
||||
{
|
||||
$translations = Cache::rememberForever("language-translations-$lang", function () use ($lang) {
|
||||
return Language::whereLocale($lang)
|
||||
->firstOrFail()
|
||||
->languageTranslations;
|
||||
});
|
||||
|
||||
return map_language_translations($translations);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Str;
|
||||
use Schema;
|
||||
@@ -346,6 +345,14 @@ class SetupWizardController extends Controller
|
||||
'name' => 'app_favicon',
|
||||
'value' => store_system_image($request, 'favicon'),
|
||||
],
|
||||
[
|
||||
'name' => 'app_og_image',
|
||||
'value' => store_system_image($request, 'og_image'),
|
||||
],
|
||||
[
|
||||
'name' => 'app_touch_icon',
|
||||
'value' => store_system_image($request, 'touch_icon'),
|
||||
],
|
||||
[
|
||||
'name' => 'google_analytics',
|
||||
'value' => $request->googleAnalytics,
|
||||
@@ -405,7 +412,7 @@ class SetupWizardController extends Controller
|
||||
$user = User::forceCreate([
|
||||
'role' => 'admin',
|
||||
'email' => $request->email,
|
||||
'password' => Hash::make($request->password),
|
||||
'password' => bcrypt($request->password),
|
||||
]);
|
||||
|
||||
$user
|
||||
@@ -439,6 +446,7 @@ class SetupWizardController extends Controller
|
||||
// Set up application
|
||||
$this->setup->seed_default_pages();
|
||||
$this->setup->seed_default_settings($request->license);
|
||||
$this->setup->seed_default_language();
|
||||
|
||||
// Login account
|
||||
if (Auth::attempt($request->only(['email', 'password']))) {
|
||||
|
||||
@@ -3,14 +3,8 @@
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Requests\Auth\CheckAccountRequest;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use App\Models\UserSettings;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
@@ -28,7 +22,7 @@ class AuthController extends Controller
|
||||
->first();
|
||||
|
||||
if (! $user) {
|
||||
return response(__('vuefilemanager.user_not_fount'), 404);
|
||||
return response(__t('user_not_fount'), 404);
|
||||
}
|
||||
|
||||
return [
|
||||
|
||||
@@ -182,7 +182,7 @@ class BrowseController extends Controller
|
||||
|
||||
return [
|
||||
[
|
||||
'name' => __('vuefilemanager.home'),
|
||||
'name' => __t('home'),
|
||||
'location' => 'base',
|
||||
'folders' => $folders,
|
||||
]
|
||||
|
||||
@@ -82,9 +82,7 @@ class EditItemsController extends Controller
|
||||
*/
|
||||
public function delete_item(DeleteItemRequest $request)
|
||||
{
|
||||
if (is_demo_account('howdy@hi5ve.digital')) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
foreach ($request->input('items') as $item) {
|
||||
$this->filemanager->delete_item($item, $item['id']);
|
||||
@@ -117,9 +115,7 @@ class EditItemsController extends Controller
|
||||
*/
|
||||
public function move(MoveItemRequest $request)
|
||||
{
|
||||
if (is_demo_account('howdy@hi5ve.digital')) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
$this->filemanager->move($request, $request->to_id);
|
||||
|
||||
|
||||
@@ -12,10 +12,7 @@ use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use Illuminate\Support\Str;
|
||||
use Validator;
|
||||
|
||||
class ShareController extends Controller
|
||||
@@ -44,7 +41,7 @@ class ShareController extends Controller
|
||||
{
|
||||
// Create shared options
|
||||
$shared = Share::create([
|
||||
'password' => $request->has('password') ? Hash::make($request->password) : null,
|
||||
'password' => $request->has('password') ? bcrypt($request->password) : null,
|
||||
'type' => $request->type === 'folder' ? 'folder' : 'file',
|
||||
'is_protected' => $request->isPassword,
|
||||
'permission' => $request->permission ?? null,
|
||||
@@ -87,7 +84,7 @@ class ShareController extends Controller
|
||||
'permission' => $request->permission,
|
||||
'is_protected' => $request->protected,
|
||||
'expire_in' => $request->expiration,
|
||||
'password' => $request->password ? Hash::make($request->password) : $shared->password,
|
||||
'password' => $request->password ? bcrypt($request->password) : $shared->password,
|
||||
]);
|
||||
|
||||
// Return shared record
|
||||
|
||||
@@ -43,9 +43,7 @@ class TrashController extends Controller
|
||||
// Get user id
|
||||
$user_id = Auth::id();
|
||||
|
||||
if (is_demo($user_id)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
foreach ($request->input('items') as $restore) {
|
||||
|
||||
@@ -96,9 +94,7 @@ class TrashController extends Controller
|
||||
// Get user id
|
||||
$user_id = Auth::id();
|
||||
|
||||
if (is_demo($user_id)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
// Get files and folders
|
||||
$folders = Folder::onlyTrashed()->where('user_id', $user_id)->get();
|
||||
|
||||
@@ -81,7 +81,7 @@ class BrowseShareController extends Controller
|
||||
->cookie('share_session', $cookie, 43200);
|
||||
}
|
||||
|
||||
abort(401, __('vuefilemanager.incorrect_password'));
|
||||
abort(401, __t('incorrect_password'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -191,7 +191,7 @@ class BrowseShareController extends Controller
|
||||
return [
|
||||
[
|
||||
'id' => $shared->item_id,
|
||||
'name' => __('vuefilemanager.home'),
|
||||
'name' => __t('home'),
|
||||
'location' => 'public',
|
||||
'folders' => $folders,
|
||||
]
|
||||
|
||||
@@ -121,9 +121,8 @@ class ManipulateShareItemsController extends Controller
|
||||
*/
|
||||
public function delete_item(DeleteItemRequest $request, Share $shared)
|
||||
{
|
||||
if (is_demo_account($shared->user->email)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account($shared->user->email), 204, 'Done.');
|
||||
|
||||
|
||||
// Check ability to access protected share record
|
||||
$this->helper->check_protected_share_record($shared);
|
||||
@@ -195,9 +194,7 @@ class ManipulateShareItemsController extends Controller
|
||||
*/
|
||||
public function move(MoveItemRequest $request, Share $shared)
|
||||
{
|
||||
if (is_demo_account($shared->user->email)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account($shared->user->email), 204, 'Done.');
|
||||
|
||||
// Check ability to access protected share record
|
||||
$this->helper->check_protected_share_record($shared);
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
namespace App\Http\Controllers\User;
|
||||
|
||||
use App\Http\Requests\User\UpdateUserPasswordRequest;
|
||||
use App\Models\File;
|
||||
use App\Models\Folder;
|
||||
use App\Http\Resources\InvoiceCollection;
|
||||
use App\Http\Resources\StorageDetailResource;
|
||||
use App\Http\Resources\UserResource;
|
||||
@@ -14,10 +12,7 @@ use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Http\Request;
|
||||
use ByteUnits\Metric;
|
||||
use App\Models\User;
|
||||
|
||||
class AccountController extends Controller
|
||||
{
|
||||
@@ -88,9 +83,7 @@ class AccountController extends Controller
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if is demo
|
||||
if (is_demo($user->id)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
// Update avatar
|
||||
if ($request->hasFile('avatar')) {
|
||||
@@ -123,12 +116,11 @@ class AccountController extends Controller
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
|
||||
if (is_demo($user->id)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
// Check if is demo
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
// Change and store new password
|
||||
$user->password = Hash::make($request->input('password'));
|
||||
$user->password = bcrypt($request->input('password'));
|
||||
$user->save();
|
||||
|
||||
return response('Changed!', 204);
|
||||
|
||||
@@ -97,9 +97,7 @@ class PaymentMethodsController extends Controller
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if is demo
|
||||
if (is_demo($user->id)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
// Update DefaultPayment Method
|
||||
$user->updateDefaultPaymentMethod($id);
|
||||
@@ -147,9 +145,7 @@ class PaymentMethodsController extends Controller
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if is demo
|
||||
if (is_demo($user->id)) {
|
||||
return $this->demo->response_with_no_content();
|
||||
}
|
||||
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
|
||||
|
||||
// Get payment method
|
||||
$paymentMethod = $user->findPaymentMethod($id);
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
|
||||
class AdminCheck
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
// Check if user have access to administration settings
|
||||
if ( ! Gate::allows('admin-settings')) {
|
||||
abort(403, 'You don\'t have access for this operation!');
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class CookieAuth
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if (!$request->bearerToken()) {
|
||||
if ($request->hasCookie('access_token')) {
|
||||
|
||||
$access_token = $request->cookie('access_token');
|
||||
|
||||
$request->headers->add(['Authorization' => 'Bearer ' . $access_token]);
|
||||
|
||||
}
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
31
app/Http/Requests/Languages/CreateLanguageRequest.php
Normal file
31
app/Http/Requests/Languages/CreateLanguageRequest.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Languages;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CreateLanguageRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'locale' => 'required|string'
|
||||
];
|
||||
}
|
||||
}
|
||||
31
app/Http/Requests/Languages/UpdateLanguageRequest.php
Normal file
31
app/Http/Requests/Languages/UpdateLanguageRequest.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Languages;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateLanguageRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'value' => 'required|string'
|
||||
];
|
||||
}
|
||||
}
|
||||
31
app/Http/Requests/Languages/UpdateStringRequest.php
Normal file
31
app/Http/Requests/Languages/UpdateStringRequest.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Languages;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateStringRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'value' => 'required|string'
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Resources/LanguageCollection.php
Normal file
32
app/Http/Resources/LanguageCollection.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use App\Models\Language;
|
||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||
|
||||
class LanguageCollection extends ResourceCollection
|
||||
{
|
||||
public $collects = LanguageResource::class;
|
||||
|
||||
/**
|
||||
* Transform the resource collection into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$current_language = Language::with('languageTranslations')
|
||||
->whereLocale(get_setting('language') ?? 'en')
|
||||
->first();
|
||||
|
||||
return [
|
||||
'data' => $this->collection,
|
||||
'meta' => [
|
||||
'current_language' => new LanguageResource($current_language),
|
||||
'reference_translations' => get_default_language_translations()
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
31
app/Http/Resources/LanguageResource.php
Normal file
31
app/Http/Resources/LanguageResource.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class LanguageResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'data' => [
|
||||
'id' => $this->id,
|
||||
'type' => 'languages',
|
||||
'attributes' => [
|
||||
'name' => $this->name,
|
||||
'locale' => $this->locale,
|
||||
'translations' => map_language_translations($this->languageTranslations),
|
||||
'updated_at' => $this->updated_at,
|
||||
'created_at' => $this->created_at,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -5,9 +5,12 @@ use App\Models\Folder;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use App\Models\Share;
|
||||
use App\Models\Language;
|
||||
use App\Models\LanguageTranslation;
|
||||
use ByteUnits\Metric;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
use Intervention\Image\ImageManagerStatic as Image;
|
||||
@@ -148,7 +151,7 @@ function get_invoice_number()
|
||||
$invoices = \App\Invoice::all();
|
||||
|
||||
if ($invoices->isEmpty()) {
|
||||
return Carbon::now()->year . '001';
|
||||
return now()->year . '001';
|
||||
} else {
|
||||
return (int)$invoices->last()->order + 1;
|
||||
}
|
||||
@@ -277,7 +280,7 @@ function is_visitor($shared)
|
||||
*/
|
||||
function store_avatar($request, $name)
|
||||
{
|
||||
if (! $request->hasFile($name)) {
|
||||
if (!$request->hasFile($name)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -308,7 +311,7 @@ function store_avatar($request, $name)
|
||||
*/
|
||||
function store_system_image($request, $name)
|
||||
{
|
||||
if (! $request->hasFile($name)) {
|
||||
if (!$request->hasFile($name)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -523,6 +526,18 @@ function get_file_type($file_mimetype)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* It map language translations as language key and language value
|
||||
*
|
||||
* @param $translations
|
||||
* @return mixed
|
||||
*/
|
||||
function map_language_translations($translations)
|
||||
{
|
||||
return $translations->map(function ($string) {
|
||||
return [$string->key => $string->value];
|
||||
})->collapse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get file type from mimetype
|
||||
@@ -571,16 +586,28 @@ function get_image_meta_data($file)
|
||||
try {
|
||||
|
||||
// Try to get the exif data
|
||||
return mb_convert_encoding(Image::make($file->getRealPath())->exif(),'UTF8', 'UTF8');
|
||||
return mb_convert_encoding(Image::make($file->getRealPath())->exif(), 'UTF8', 'UTF8');
|
||||
|
||||
} catch ( \Exception $e) {
|
||||
|
||||
return null;
|
||||
} catch (\Exception $e) {
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection
|
||||
*/
|
||||
function get_default_language_translations()
|
||||
{
|
||||
return collect([
|
||||
config("language-translations.extended"),
|
||||
config("language-translations.regular"),
|
||||
config("custom-language-translations")
|
||||
])->collapse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if app is in dev mode
|
||||
*
|
||||
@@ -588,7 +615,7 @@ function get_image_meta_data($file)
|
||||
*/
|
||||
function is_dev()
|
||||
{
|
||||
return env('APP_ENV') === 'local' ? 1 : 0;
|
||||
return env('APP_ENV') === 'local';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -598,16 +625,16 @@ function is_dev()
|
||||
function seems_utf8($str)
|
||||
{
|
||||
$length = strlen($str);
|
||||
for ($i=0; $i < $length; $i++) {
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
$c = ord($str[$i]);
|
||||
if ($c < 0x80) $n = 0; # 0bbbbbbb
|
||||
elseif (($c & 0xE0) == 0xC0) $n=1; # 110bbbbb
|
||||
elseif (($c & 0xF0) == 0xE0) $n=2; # 1110bbbb
|
||||
elseif (($c & 0xF8) == 0xF0) $n=3; # 11110bbb
|
||||
elseif (($c & 0xFC) == 0xF8) $n=4; # 111110bb
|
||||
elseif (($c & 0xFE) == 0xFC) $n=5; # 1111110b
|
||||
elseif (($c & 0xE0) == 0xC0) $n = 1; # 110bbbbb
|
||||
elseif (($c & 0xF0) == 0xE0) $n = 2; # 1110bbbb
|
||||
elseif (($c & 0xF8) == 0xF0) $n = 3; # 11110bbb
|
||||
elseif (($c & 0xFC) == 0xF8) $n = 4; # 111110bb
|
||||
elseif (($c & 0xFE) == 0xFC) $n = 5; # 1111110b
|
||||
else return false; # Does not match any model
|
||||
for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
|
||||
for ($j = 0; $j < $n; $j++) { # n bytes matching 10bbbbbb follow ?
|
||||
if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80))
|
||||
return false;
|
||||
}
|
||||
@@ -623,124 +650,125 @@ function seems_utf8($str)
|
||||
* @param string $string Text that might have accent characters
|
||||
* @return string Filtered string with replaced "nice" characters.
|
||||
*/
|
||||
function remove_accents($string) {
|
||||
if ( !preg_match('/[\x80-\xff]/', $string) )
|
||||
function remove_accents($string)
|
||||
{
|
||||
if (!preg_match('/[\x80-\xff]/', $string))
|
||||
return $string;
|
||||
|
||||
if (seems_utf8($string)) {
|
||||
$chars = array(
|
||||
// Decompositions for Latin-1 Supplement
|
||||
chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
|
||||
chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
|
||||
chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
|
||||
chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
|
||||
chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
|
||||
chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
|
||||
chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
|
||||
chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
|
||||
chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
|
||||
chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
|
||||
chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
|
||||
chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
|
||||
chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
|
||||
chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
|
||||
chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
|
||||
chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
|
||||
chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
|
||||
chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
|
||||
chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
|
||||
chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
|
||||
chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
|
||||
chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
|
||||
chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
|
||||
chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
|
||||
chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
|
||||
chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
|
||||
chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
|
||||
chr(195).chr(191) => 'y',
|
||||
chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A',
|
||||
chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A',
|
||||
chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A',
|
||||
chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E',
|
||||
chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E',
|
||||
chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I',
|
||||
chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I',
|
||||
chr(195) . chr(143) => 'I', chr(195) . chr(145) => 'N',
|
||||
chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O',
|
||||
chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O',
|
||||
chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U',
|
||||
chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U',
|
||||
chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y',
|
||||
chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a',
|
||||
chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a',
|
||||
chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a',
|
||||
chr(195) . chr(165) => 'a', chr(195) . chr(167) => 'c',
|
||||
chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e',
|
||||
chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e',
|
||||
chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i',
|
||||
chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i',
|
||||
chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o',
|
||||
chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o',
|
||||
chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o',
|
||||
chr(195) . chr(182) => 'o', chr(195) . chr(185) => 'u',
|
||||
chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u',
|
||||
chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y',
|
||||
chr(195) . chr(191) => 'y',
|
||||
// Decompositions for Latin Extended-A
|
||||
chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
|
||||
chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
|
||||
chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
|
||||
chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
|
||||
chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
|
||||
chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
|
||||
chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
|
||||
chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
|
||||
chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
|
||||
chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
|
||||
chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
|
||||
chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
|
||||
chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
|
||||
chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
|
||||
chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
|
||||
chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
|
||||
chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
|
||||
chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
|
||||
chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
|
||||
chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
|
||||
chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
|
||||
chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
|
||||
chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
|
||||
chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
|
||||
chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
|
||||
chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
|
||||
chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
|
||||
chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
|
||||
chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
|
||||
chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
|
||||
chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
|
||||
chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
|
||||
chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
|
||||
chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
|
||||
chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
|
||||
chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
|
||||
chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
|
||||
chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
|
||||
chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
|
||||
chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
|
||||
chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
|
||||
chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
|
||||
chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
|
||||
chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
|
||||
chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
|
||||
chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
|
||||
chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
|
||||
chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
|
||||
chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
|
||||
chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
|
||||
chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
|
||||
chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
|
||||
chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
|
||||
chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
|
||||
chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
|
||||
chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
|
||||
chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
|
||||
chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
|
||||
chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
|
||||
chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
|
||||
chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
|
||||
chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
|
||||
chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
|
||||
chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
|
||||
chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a',
|
||||
chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a',
|
||||
chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a',
|
||||
chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c',
|
||||
chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c',
|
||||
chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c',
|
||||
chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c',
|
||||
chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd',
|
||||
chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd',
|
||||
chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e',
|
||||
chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e',
|
||||
chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e',
|
||||
chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e',
|
||||
chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e',
|
||||
chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g',
|
||||
chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g',
|
||||
chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g',
|
||||
chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g',
|
||||
chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h',
|
||||
chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h',
|
||||
chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i',
|
||||
chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i',
|
||||
chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i',
|
||||
chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i',
|
||||
chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i',
|
||||
chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij',
|
||||
chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j',
|
||||
chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k',
|
||||
chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L',
|
||||
chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L',
|
||||
chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L',
|
||||
chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L',
|
||||
chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L',
|
||||
chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N',
|
||||
chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N',
|
||||
chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N',
|
||||
chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N',
|
||||
chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N',
|
||||
chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o',
|
||||
chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o',
|
||||
chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o',
|
||||
chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe',
|
||||
chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r',
|
||||
chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r',
|
||||
chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r',
|
||||
chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's',
|
||||
chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's',
|
||||
chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's',
|
||||
chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's',
|
||||
chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't',
|
||||
chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't',
|
||||
chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't',
|
||||
chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u',
|
||||
chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u',
|
||||
chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u',
|
||||
chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u',
|
||||
chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u',
|
||||
chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u',
|
||||
chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w',
|
||||
chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y',
|
||||
chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z',
|
||||
chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z',
|
||||
chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z',
|
||||
chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's',
|
||||
// Euro Sign
|
||||
chr(226).chr(130).chr(172) => 'E',
|
||||
chr(226) . chr(130) . chr(172) => 'E',
|
||||
// GBP (Pound) Sign
|
||||
chr(194).chr(163) => '');
|
||||
chr(194) . chr(163) => '');
|
||||
|
||||
$string = strtr($string, $chars);
|
||||
} else {
|
||||
// Assume ISO-8859-1 if not UTF-8
|
||||
$chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
|
||||
.chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
|
||||
.chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
|
||||
.chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
|
||||
.chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
|
||||
.chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
|
||||
.chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
|
||||
.chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
|
||||
.chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
|
||||
.chr(252).chr(253).chr(255);
|
||||
$chars['in'] = chr(128) . chr(131) . chr(138) . chr(142) . chr(154) . chr(158)
|
||||
. chr(159) . chr(162) . chr(165) . chr(181) . chr(192) . chr(193) . chr(194)
|
||||
. chr(195) . chr(196) . chr(197) . chr(199) . chr(200) . chr(201) . chr(202)
|
||||
. chr(203) . chr(204) . chr(205) . chr(206) . chr(207) . chr(209) . chr(210)
|
||||
. chr(211) . chr(212) . chr(213) . chr(214) . chr(216) . chr(217) . chr(218)
|
||||
. chr(219) . chr(220) . chr(221) . chr(224) . chr(225) . chr(226) . chr(227)
|
||||
. chr(228) . chr(229) . chr(231) . chr(232) . chr(233) . chr(234) . chr(235)
|
||||
. chr(236) . chr(237) . chr(238) . chr(239) . chr(241) . chr(242) . chr(243)
|
||||
. chr(244) . chr(245) . chr(246) . chr(248) . chr(249) . chr(250) . chr(251)
|
||||
. chr(252) . chr(253) . chr(255);
|
||||
|
||||
$chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
|
||||
|
||||
@@ -752,6 +780,7 @@ function remove_accents($string) {
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all files from folder and get their folder location in VueFileManager directories
|
||||
*
|
||||
@@ -791,16 +820,16 @@ function get_files_for_zip($folders, $files, $path = [])
|
||||
}
|
||||
|
||||
/**
|
||||
* Set time by user timezone GMT
|
||||
* Set time by user timezone GMT
|
||||
*
|
||||
* @param $time
|
||||
* @return int
|
||||
* @return Carbon
|
||||
*/
|
||||
function set_time_by_user_timezone($time)
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
if($user) {
|
||||
if ($user) {
|
||||
|
||||
// Get the value of timezone if user have some
|
||||
$time_zone = intval($user->settings->timezone * 60 ?? null);
|
||||
@@ -809,5 +838,55 @@ function set_time_by_user_timezone($time)
|
||||
}
|
||||
|
||||
return Carbon::parse($time);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate the given message.
|
||||
*
|
||||
* @param $key
|
||||
* @param null $values
|
||||
* @return string|string[]
|
||||
*/
|
||||
function __t($key, $values = null)
|
||||
{
|
||||
// Get current locale
|
||||
$locale = cache()->rememberForever('language', function () {
|
||||
return get_setting('language') ?? 'en';
|
||||
});
|
||||
|
||||
$strings = cache()->rememberForever("language-translations-$locale", function () use ($locale) {
|
||||
return Language::whereLocale($locale)->first()->languageTranslations ?? get_default_language_translations();
|
||||
});
|
||||
|
||||
// Find the string by key
|
||||
$string = $strings->get($key)
|
||||
? $strings->get($key)
|
||||
: $strings->firstWhere('key', $key)->value;
|
||||
|
||||
if ($values) {
|
||||
return replace_occurrence($string, collect($values));
|
||||
}
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace string occurrence in __t() by their values
|
||||
*
|
||||
* @param $string
|
||||
* @param $values
|
||||
* @return string|string[]
|
||||
*/
|
||||
function replace_occurrence($string, $values)
|
||||
{
|
||||
$occurrences = $values->map(function ($message, $key) {
|
||||
return [
|
||||
'key' => ":$key",
|
||||
'message' => $message,
|
||||
];
|
||||
});
|
||||
|
||||
return str_ireplace(
|
||||
$occurrences->pluck('key')->toArray(), $occurrences->pluck('message')->toArray(), $string
|
||||
);
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ class File extends Model
|
||||
*/
|
||||
public function getCreatedAtAttribute()
|
||||
{
|
||||
return format_date(set_time_by_user_timezone($this->attributes['created_at']), __('vuefilemanager.time'));
|
||||
return format_date(set_time_by_user_timezone($this->attributes['created_at']), __t('time'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,7 +81,7 @@ class File extends Model
|
||||
{
|
||||
if (!$this->attributes['deleted_at']) return null;
|
||||
|
||||
return format_date(set_time_by_user_timezone($this->attributes['deleted_at']), __('vuefilemanager.time'));
|
||||
return format_date(set_time_by_user_timezone($this->attributes['deleted_at']), __t('time'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -104,7 +104,7 @@ class Folder extends Model
|
||||
*/
|
||||
public function getCreatedAtAttribute()
|
||||
{
|
||||
return format_date(set_time_by_user_timezone($this->attributes['created_at']), __('vuefilemanager.time'));
|
||||
return format_date(set_time_by_user_timezone($this->attributes['created_at']), __t('time'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,7 +116,7 @@ class Folder extends Model
|
||||
{
|
||||
if (!$this->attributes['deleted_at']) return null;
|
||||
|
||||
return format_date(set_time_by_user_timezone($this->attributes['deleted_at']), __('vuefilemanager.time'));
|
||||
return format_date(set_time_by_user_timezone($this->attributes['deleted_at']), __t('time'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
62
app/Models/Language.php
Normal file
62
app/Models/Language.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Services\HelperService;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Kyslik\ColumnSortable\Sortable;
|
||||
|
||||
/**
|
||||
* @method static whereLocale(string $param)
|
||||
*/
|
||||
class Language extends Model
|
||||
{
|
||||
use Sortable;
|
||||
|
||||
public $sortable = [
|
||||
'created_at',
|
||||
];
|
||||
|
||||
protected $guarded = [
|
||||
'id'
|
||||
];
|
||||
|
||||
protected $keyType = 'string';
|
||||
|
||||
protected $primaryKey = 'id';
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
public function languageTranslations()
|
||||
{
|
||||
return $this->hasMany(LanguageTranslation::class, 'lang', 'locale');
|
||||
}
|
||||
|
||||
protected static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::creating(function ($language) {
|
||||
$language->id = Str::uuid();
|
||||
|
||||
resolve(HelperService::class)
|
||||
->create_default_language_translations(
|
||||
get_setting('license') ?? 'extended', $language->locale
|
||||
);
|
||||
});
|
||||
|
||||
static::updating(function ($language) {
|
||||
cache()->forget("language-translations-$language->locale");
|
||||
});
|
||||
|
||||
static::deleting(function ($language) {
|
||||
DB::table('language_translations')
|
||||
->whereLang($language->locale)
|
||||
->delete();
|
||||
|
||||
cache()->forget("language-translations-$language->locale");
|
||||
});
|
||||
}
|
||||
}
|
||||
18
app/Models/LanguageTranslation.php
Normal file
18
app/Models/LanguageTranslation.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class LanguageTranslation extends Model
|
||||
{
|
||||
public $timestamps = false;
|
||||
|
||||
public $primaryKey = null;
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
protected $fillable = [
|
||||
'value'
|
||||
];
|
||||
}
|
||||
@@ -5,6 +5,9 @@ namespace App\Models;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* @method static whereName(string $string)
|
||||
*/
|
||||
class Setting extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
@@ -171,7 +171,7 @@ class User extends Authenticatable
|
||||
*/
|
||||
public function record_upload($file_size)
|
||||
{
|
||||
$now = Carbon::now();
|
||||
$now = now();
|
||||
|
||||
$record = Traffic::whereYear('created_at', '=', $now->year)
|
||||
->whereMonth('created_at', '=', $now->month)
|
||||
@@ -191,7 +191,7 @@ class User extends Authenticatable
|
||||
*/
|
||||
public function record_download($file_size)
|
||||
{
|
||||
$now = Carbon::now();
|
||||
$now = now();
|
||||
|
||||
$record = Traffic::whereYear('created_at', '=', $now->year)
|
||||
->whereMonth('created_at', '=', $now->month)
|
||||
|
||||
@@ -44,12 +44,12 @@ class ResetPassword extends Notification
|
||||
$app_name = get_setting('app_title') ?? 'VueFileManager';
|
||||
|
||||
return (new MailMessage)
|
||||
->subject(__('vuefilemanager.reset_password_subject') . $app_name)
|
||||
->greeting(__('vuefilemanager.reset_password_greeting'))
|
||||
->line(__('vuefilemanager.reset_password_line_1'))
|
||||
->action(__('vuefilemanager.reset_password_action'), $reset_url)
|
||||
->line(__('vuefilemanager.reset_password_line_2'))
|
||||
->salutation(__('vuefilemanager.salutation') . ', ' . $app_name);
|
||||
->subject(__t('reset_password_subject') . $app_name)
|
||||
->greeting(__t('reset_password_greeting'))
|
||||
->line(__t('reset_password_line_1'))
|
||||
->action(__t('reset_password_action'), $reset_url)
|
||||
->line(__t('reset_password_line_2'))
|
||||
->salutation(__t('salutation') . ', ' . $app_name);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -43,11 +43,11 @@ class SharedSendViaEmail extends Notification
|
||||
public function toMail($notifiable)
|
||||
{
|
||||
return (new MailMessage)
|
||||
->subject(__('vuefilemanager.shared_link_email_subject' , ['user' => $this->user->name]))
|
||||
->greeting(__('vuefilemanager.shared_link_email_greeting'))
|
||||
->line(__('vuefilemanager.shared_link_email_user', ['user' => $this->user->name, 'email' => $this->user->email]))
|
||||
->action(__('vuefilemanager.shared_link_email_link'), url('/shared', ['token' => $this->token]))
|
||||
->salutation(__('vuefilemanager.shared_link_email_salutation', ['app_name' => get_setting('app_title') ?? 'VueFileManager']));
|
||||
->subject(__t('shared_link_email_subject', ['user' => $this->user->name]))
|
||||
->greeting(__t('shared_link_email_greeting'))
|
||||
->line(__t('shared_link_email_user', ['user' => $this->user->name, 'email' => $this->user->email]))
|
||||
->action(__t('shared_link_email_link'), url('/shared', ['token' => $this->token]))
|
||||
->salutation(__t('shared_link_email_salutation', ['app_name' => get_setting('app_title') ?? 'VueFileManager']));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -39,8 +39,8 @@ class DemoService
|
||||
'items' => '0',
|
||||
'color' => isset($request->icon['color']) ? $request->icon['color'] : null,
|
||||
'emoji' => isset($request->icon['emoji']) ? $request->icon['emoji'] : null,
|
||||
'updated_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||
'created_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||
'updated_at' => now()->format('j M Y \a\t H:i'),
|
||||
'created_at' => now()->format('j M Y \a\t H:i'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -111,24 +111,15 @@ class DemoService
|
||||
'type' => $filetype,
|
||||
'file_url' => 'https://vuefilemanager.hi5ve.digital/assets/vue-file-manager-preview.jpg',
|
||||
'author' => $request->user() ? 'user' : 'visitor',
|
||||
'created_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||
'updated_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||
'created_at' => now()->format('j M Y \a\t H:i'),
|
||||
'updated_at' => now()->format('j M Y \a\t H:i'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Return 204 status
|
||||
*
|
||||
* @return ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
function response_with_no_content()
|
||||
{
|
||||
return response('Done!', 204);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return 204 status
|
||||
*
|
||||
* @param $user
|
||||
* @return ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
function favourites($user)
|
||||
|
||||
@@ -59,15 +59,15 @@ class HelperService
|
||||
$accessible_folder_ids = Arr::flatten([filter_folders_ids($foldersIds), $shared->item_id]);
|
||||
|
||||
// Check user access
|
||||
if ( is_array($requested_id) ) {
|
||||
if (is_array($requested_id)) {
|
||||
foreach ($requested_id as $id) {
|
||||
if (!in_array($id, $accessible_folder_ids))
|
||||
abort(403);
|
||||
}
|
||||
}
|
||||
|
||||
if (! is_array($requested_id)) {
|
||||
if (! in_array($requested_id, $accessible_folder_ids))
|
||||
if (!is_array($requested_id)) {
|
||||
if (!in_array($requested_id, $accessible_folder_ids))
|
||||
abort(403);
|
||||
}
|
||||
}
|
||||
@@ -323,4 +323,35 @@ class HelperService
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $license
|
||||
* @param $locale
|
||||
*/
|
||||
function create_default_language_translations($license, $locale)
|
||||
{
|
||||
$translations = [
|
||||
'extended' => collect([
|
||||
config("language-translations.extended"),
|
||||
config("language-translations.regular"),
|
||||
config("custom-language-translations")
|
||||
])->collapse(),
|
||||
'regular' => collect([
|
||||
config("language-translations.regular"),
|
||||
config("custom-language-translations")
|
||||
])->collapse(),
|
||||
];
|
||||
|
||||
$translations = $translations[strtolower($license)]
|
||||
->map(function ($value, $key) use ($locale) {
|
||||
return [
|
||||
'lang' => $locale,
|
||||
'value' => $value,
|
||||
'key' => $key,
|
||||
];
|
||||
})->toArray();
|
||||
|
||||
DB::table('language_translations')
|
||||
->insert($translations);
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@ class SchedulerService
|
||||
*/
|
||||
public function delete_old_zips(): void
|
||||
{
|
||||
Zip::where('created_at', '<=', Carbon::now()->subDay()->toDateTimeString())
|
||||
Zip::where('created_at', '<=', now()->subDay()->toDateTimeString())
|
||||
->get()
|
||||
->each(function ($zip) {
|
||||
|
||||
@@ -42,7 +42,7 @@ class SchedulerService
|
||||
$created_at = Carbon::parse($share->created_at);
|
||||
|
||||
// If time was over, then delete share record
|
||||
if ($created_at->diffInHours(Carbon::now()) >= $share->expire_in) {
|
||||
if ($created_at->diffInHours(now()) >= $share->expire_in) {
|
||||
$share->delete();
|
||||
}
|
||||
});
|
||||
@@ -69,7 +69,7 @@ class SchedulerService
|
||||
|
||||
// Get diffInHours
|
||||
$diff = Carbon::parse($last_modified)
|
||||
->diffInHours(Carbon::now());
|
||||
->diffInHours(now());
|
||||
|
||||
// Delete if file is in local storage more than 24 hours
|
||||
if ($diff >= 24) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Language;
|
||||
use App\Models\Page;
|
||||
use App\Models\Setting;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
@@ -48,4 +49,22 @@ class SetupService
|
||||
Setting::forceCreate($content);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Store default VueFileManager settings into database
|
||||
*
|
||||
* @param $license
|
||||
*/
|
||||
public function seed_default_language()
|
||||
{
|
||||
Language::create([
|
||||
'name' => 'English',
|
||||
'locale' => 'en'
|
||||
]);
|
||||
|
||||
Setting::create([
|
||||
'name' => 'language',
|
||||
'value' => 'en',
|
||||
]);
|
||||
}
|
||||
}
|
||||
11
config/custom-language-translations.php
Normal file
11
config/custom-language-translations.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Place here your custom translations for your project.
|
||||
* These translation will be automatically seeded after you
|
||||
* run setup:dev script or installing app via Setup Wizard Tool
|
||||
*/
|
||||
|
||||
return [
|
||||
'custom' => 'translation'
|
||||
];
|
||||
680
config/language-translations.php
Normal file
680
config/language-translations.php
Normal file
@@ -0,0 +1,680 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'extended' => [
|
||||
"activation.stripe.button" => "Set up your Stripe account",
|
||||
"activation.stripe.description" => "To charge your users, please set up your Stripe account credentials.",
|
||||
"activation.stripe.title" => "Your Stripe account is not set",
|
||||
"admin_menu.invoices" => "Invoices",
|
||||
"admin_menu.plans" => "Plans",
|
||||
"admin_page_dashboard.w_total_premium.link" => "Show All Plans",
|
||||
"admin_page_dashboard.w_total_premium.title" => "Total Premium Users",
|
||||
"admin_page_invoices.empty.description" => "All customers invoices will be showed here.",
|
||||
"admin_page_invoices.empty.title" => "You don’t have any invoices yet",
|
||||
"admin_page_invoices.table.number" => "Invoice Number",
|
||||
"admin_page_invoices.table.payed" => "Payed",
|
||||
"admin_page_invoices.table.plan" => "Plan",
|
||||
"admin_page_invoices.table.total" => "Total",
|
||||
"admin_page_invoices.table.user" => "User",
|
||||
"admin_page_plans.create_plan_button" => "Create Plan",
|
||||
"admin_page_plans.delete_plan_button" => "Delete Plan",
|
||||
"admin_page_plans.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.",
|
||||
"admin_page_plans.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.",
|
||||
"admin_page_plans.empty.button" => "Create New Plan",
|
||||
"admin_page_plans.empty.description" => "For create new plan, click on button below.",
|
||||
"admin_page_plans.empty.title" => "You don’t have any plan yet",
|
||||
"admin_page_plans.form.description" => "Description (optional)",
|
||||
"admin_page_plans.form.description_plac" => "Plan description",
|
||||
"admin_page_plans.form.name" => "Name",
|
||||
"admin_page_plans.form.name_delete_plac" => "Type plan name",
|
||||
"admin_page_plans.form.name_plac" => "Plan name",
|
||||
"admin_page_plans.form.price" => "Price",
|
||||
"admin_page_plans.form.price_plac" => "Plan price",
|
||||
"admin_page_plans.form.status" => "Status",
|
||||
"admin_page_plans.form.status_help" => "Status of your plan availability on website.",
|
||||
"admin_page_plans.form.storage" => "Storage Capacity in GB",
|
||||
"admin_page_plans.form.storage_helper" => "You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.",
|
||||
"admin_page_plans.form.storage_plac" => "Storage capacity",
|
||||
"admin_page_plans.form.title_delete" => "Delete Plan",
|
||||
"admin_page_plans.form.title_details" => "Plan Details",
|
||||
"admin_page_plans.form.title_pricing" => "Plan Pricing",
|
||||
"admin_page_plans.subscribers.empty" => "There is no any subscriber yet.",
|
||||
"admin_page_plans.table.name" => "Plan Name",
|
||||
"admin_page_plans.table.price" => "Price",
|
||||
"admin_page_plans.table.status" => "Status",
|
||||
"admin_page_plans.table.storage_capacity" => "Storage Capacity",
|
||||
"admin_page_plans.table.subscribers" => "Subscribers",
|
||||
"admin_page_plans.tabs.delete" => "Delete Plan",
|
||||
"admin_page_plans.tabs.settings" => "Settings",
|
||||
"admin_page_plans.tabs.subscribers" => "Subscribers",
|
||||
"admin_page_user.subscription.empty" => "User don't have any subscription yet.",
|
||||
"admin_page_user.subscription.interval_mo" => "Monthly",
|
||||
"admin_page_user.table.plan" => "Subscription Plan",
|
||||
"admin_page_user.tabs.invoices" => "Invoices",
|
||||
"admin_page_user.tabs.subscription" => "Subscription",
|
||||
"admin_settings.billings.address" => "Billing Address",
|
||||
"admin_settings.billings.address_plac" => "Type your billing address",
|
||||
"admin_settings.billings.city" => "Billing City",
|
||||
"admin_settings.billings.city_plac" => "Type your billing city",
|
||||
"admin_settings.billings.company_name" => "Company Name",
|
||||
"admin_settings.billings.company_name_plac" => "Type your company name",
|
||||
"admin_settings.billings.country" => "Billing Country",
|
||||
"admin_settings.billings.country_plac" => "Select your billing country",
|
||||
"admin_settings.billings.phone_number" => "Billing Phone Number (optional)",
|
||||
"admin_settings.billings.phone_number_plac" => "Type your billing phone number",
|
||||
"admin_settings.billings.postal_code" => "Billing Postal Code",
|
||||
"admin_settings.billings.postal_code_plac" => "Type your billing postal code",
|
||||
"admin_settings.billings.section_billing" => "Billing Information",
|
||||
"admin_settings.billings.section_company" => "Company Information",
|
||||
"admin_settings.billings.state" => "Billing State",
|
||||
"admin_settings.billings.state_plac" => "Type your billing state",
|
||||
"admin_settings.billings.vat" => "VAT Number",
|
||||
"admin_settings.billings.vat_plac" => "Type your VAT number",
|
||||
"admin_settings.payments.allow_payments" => "Allow Subscription Payments",
|
||||
"admin_settings.payments.button_submit" => "Test and Save Stripe",
|
||||
"admin_settings.payments.button_testing" => "Testing Stripe Connection",
|
||||
"admin_settings.payments.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 class='text-theme'>.env</b> file.",
|
||||
"admin_settings.payments.section_payments" => "Stripe Payments",
|
||||
"admin_settings.payments.stripe_create_acc" => "If you don’t 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.",
|
||||
"admin_settings.payments.stripe_create_webhook" => "You have to create webhook endpoint in your Stripe Dashboard. You can find it in <b class='text-theme'>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 class='text-theme'>receive all events</b>. That's all.",
|
||||
"admin_settings.payments.stripe_currency" => "Stripe Currency",
|
||||
"admin_settings.payments.stripe_currency_plac" => "Select your Stripe currency",
|
||||
"admin_settings.payments.stripe_pub_key" => "Publishable Key",
|
||||
"admin_settings.payments.stripe_pub_key_plac" => "Paste your publishable key",
|
||||
"admin_settings.payments.stripe_sec_key" => "Secret Key",
|
||||
"admin_settings.payments.stripe_sec_key_plac" => "Paste your secret key",
|
||||
"admin_settings.payments.stripe_setup" => "Stripe Setup",
|
||||
"admin_settings.payments.stripe_webhook_key_plac" => "Paste your stripe webhook secret",
|
||||
"admin_settings.payments.webhook_url" => "Stripe webhook URL",
|
||||
"admin_settings.tabs.billings" => "Billings",
|
||||
"admin_settings.tabs.payments" => "Payments",
|
||||
"global.monthly_ac" => "Mo.",
|
||||
"global.premium" => "Premium",
|
||||
"global.saas" => "Services",
|
||||
"global.subscription" => "Subscription",
|
||||
"global.upgrade_plan" => "Upgrade Plan",
|
||||
"incomplete_payment.description" => "Your latest payment is incomplete. {0}",
|
||||
"incomplete_payment.href" => "Please confirm your payment.",
|
||||
"menu.invoices" => "Invoices",
|
||||
"menu.payment_cards" => "Payment Cards",
|
||||
"menu.subscription" => "Subscription",
|
||||
"notice.stripe_activation" => "Your Stripe account is not set. To charging your users please {0}.",
|
||||
"notice.stripe_activation_button" => "set up your Stripe account",
|
||||
"page_pricing_tables.description" => "Choose plan witch perfect fit your needs. All plans is billed monthly automatically via your credit card.",
|
||||
"page_pricing_tables.storage_capacity" => "Of Storage Capacity",
|
||||
"page_pricing_tables.title" => "Choose Your Plan",
|
||||
"page_pricing_tables.vat_excluded" => "Price displayed excludes VAT.",
|
||||
"page_upgrade_account.change_payment.change_payment" => "change your default payment method",
|
||||
"page_upgrade_account.change_payment.pay_by_new_card" => "pay by new credit card",
|
||||
"page_upgrade_account.change_payment.you_can" => "Also you can",
|
||||
"page_upgrade_account.desription" => "Choose plan witch perfect fit your needs. All plans is billed monthly automatically via your credit card.",
|
||||
"page_upgrade_account.errors.pay_by_another_card" => "Please pay by another payment card",
|
||||
"page_upgrade_account.section_billing" => "Billing Information",
|
||||
"page_upgrade_account.section_card" => "Payment Card",
|
||||
"page_upgrade_account.section_summary" => "Order Summary",
|
||||
"page_upgrade_account.summary.period" => "Billed monthly",
|
||||
"page_upgrade_account.summary.submit_button" => "Pay with credit card",
|
||||
"page_upgrade_account.summary.submit_disclaimer" => "By submit form, you agree to save the payment method and billing information in your {app} account.",
|
||||
"page_upgrade_account.summary.total_with_vat" => "Total with VAT",
|
||||
"page_upgrade_account.summary.vat" => "VAT",
|
||||
"page_upgrade_account.title" => "Choose Payment Method",
|
||||
"popup_delete_card.message" => "This event is irreversible and your payment card will be delete forever",
|
||||
"popup_delete_card.title" => "Are you sure?",
|
||||
"popup_deleted_plan.message" => "Your plan was successfully deleted.",
|
||||
"popup_deleted_plan.title" => "Plan was deleted",
|
||||
"popup_set_card.message" => "Your card will be set as default and will be always charged for the next billings.",
|
||||
"popup_set_card.title" => "Set as default card?",
|
||||
"popup_subscription_cancel.button" => "I'm done",
|
||||
"popup_subscription_cancel.message" => "You'll continue to have access to the features you've paid for until the end of your billing cycle.",
|
||||
"popup_subscription_cancel.title" => "Subscription Was Canceled",
|
||||
"popup_subscription_resumed.button" => "That's awesome!",
|
||||
"popup_subscription_resumed.message" => "Your subscription was re-activated, and they will be billed on the original billing cycle.",
|
||||
"popup_subscription_resumed.title" => "Subscription Was Resumed",
|
||||
"routes_title.billings" => "Billings",
|
||||
"routes_title.invoices" => "Invoices",
|
||||
"routes_title.payment_methods" => "Payment Methods",
|
||||
"routes_title.payments" => "Payments",
|
||||
"routes_title.plan" => "Plan",
|
||||
"routes_title.plan_create" => "Create Plan",
|
||||
"routes_title.plan_delete" => "Plan Delete",
|
||||
"routes_title.plan_settings" => "Plan Settings",
|
||||
"routes_title.pricing_plans" => "Pricing Plans",
|
||||
"routes_title.subscribers" => "Subscribers",
|
||||
"routes_title.subscription" => "Subscription",
|
||||
"routes_title.upgrade_billing" => "Billing",
|
||||
"routes_title.upgrade_plan" => "Upgrade Plan",
|
||||
"rows.card.expiration" => "Expiration Date",
|
||||
"rows.card.number" => "Card Number",
|
||||
"rows.card.status" => "Status",
|
||||
"rows.invoice.number" => "Invoice Number",
|
||||
"rows.invoice.payed" => "Payed",
|
||||
"rows.invoice.plan" => "Plan",
|
||||
"rows.invoice.total" => "Total",
|
||||
"toaster.account_upgraded" => "Your account was successfully upgraded.",
|
||||
"toaster.card_deleted" => "Your card was successfully deleted.",
|
||||
"toaster.card_new_add" => "Your card was successfully added",
|
||||
"toaster.card_set" => "Your card was successfully set as default.",
|
||||
"toaster.plan_created" => "Your plan was successfully created!",
|
||||
"toaster.stripe_set" => "Your Stripe account was successfully set!",
|
||||
"user_invoices.empty" => "You don't have any invoices yet.",
|
||||
"user_invoices.title" => "Invoices",
|
||||
"user_payments.add_card" => "Add Payment Card",
|
||||
"user_payments.card_field_title" => "Credit Card",
|
||||
"user_payments.delete_card" => "Delete card",
|
||||
"user_payments.empty" => "You don't have any payment cards yet.",
|
||||
"user_payments.field_loading" => "Loading card field...",
|
||||
"user_payments.set_as_default" => "Set as default card",
|
||||
"user_payments.store_card" => "Store Payment Card",
|
||||
"user_payments.title" => "Payment Methods",
|
||||
"user_subscription.billed" => "Billed",
|
||||
"user_subscription.cancel_plan" => "Cancel Plan",
|
||||
"user_subscription.canceled_at" => "Canceled At",
|
||||
"user_subscription.created_at" => "Created At",
|
||||
"user_subscription.empty" => "You don't have any subscription yet.",
|
||||
"user_subscription.ends_at" => "Ends At",
|
||||
"user_subscription.plan" => "Plan",
|
||||
"user_subscription.renews_at" => "Renews At",
|
||||
"user_subscription.resume_plan" => "Resume Plan",
|
||||
"user_subscription.status" => "Status",
|
||||
'print_button' => 'Print Document',
|
||||
'vat' => 'VAT',
|
||||
'vat_included' => 'incl.',
|
||||
'subtotal' => 'Subtotal',
|
||||
'tax_exempted' => 'Tax is exempted',
|
||||
'tax_be_paid_reverse' => 'Tax to be paid on reverse charge basis',
|
||||
'invoice_title' => 'Invoice',
|
||||
'date' => 'Date',
|
||||
'product' => 'Product',
|
||||
'subscription' => 'Subscription',
|
||||
'invoice_number' => 'Invoice Number',
|
||||
'seller' => 'Seller',
|
||||
'client' => 'Client',
|
||||
'seller_vat' => 'VAT number',
|
||||
'seller_name' => 'Name',
|
||||
'seller_phone' => 'Phone',
|
||||
'name' => 'Name',
|
||||
'phone' => 'Phone',
|
||||
'address' => 'Address',
|
||||
'city' => 'City',
|
||||
'state' => 'State',
|
||||
'postal_code' => 'Postal code',
|
||||
'country' => 'Country',
|
||||
'col_description' => 'Description',
|
||||
'col_date' => 'Date',
|
||||
'col_amount' => 'Amount',
|
||||
'total' => 'Total',
|
||||
],
|
||||
'regular' => [
|
||||
"actions.close" => "Close",
|
||||
"actions.create_folder" => "Create folder",
|
||||
"actions.delete" => "Delete item",
|
||||
"actions.download" => "Download item",
|
||||
"actions.info_panel" => "Info panel",
|
||||
"actions.move" => "Move item",
|
||||
"actions.preview" => "Change preview",
|
||||
"actions.print" => "Print item",
|
||||
"actions.share" => "Share item",
|
||||
"actions.sorting_view" => "Sorting and View",
|
||||
"actions.upload" => "Upload file",
|
||||
"admin_menu.dashboard" => "Dashboard",
|
||||
"admin_menu.pages" => "Pages",
|
||||
"admin_menu.settings" => "Settings",
|
||||
"admin_menu.users" => "Users",
|
||||
"admin_menu.languages" => "Languages",
|
||||
"admin_page_dashboard.backer_button" => "Help Us Improve",
|
||||
"admin_page_dashboard.license" => "License",
|
||||
"admin_page_dashboard.version" => "Version",
|
||||
"admin_page_dashboard.w_latest_users.title" => "Latest Registrations",
|
||||
"admin_page_dashboard.w_total_space.link" => "Show All Users",
|
||||
"admin_page_dashboard.w_total_space.title" => "Total Space Used",
|
||||
"admin_page_dashboard.w_total_users.link" => "Show All Users",
|
||||
"admin_page_dashboard.w_total_users.title" => "Total Users",
|
||||
"admin_page_user.change_capacity" => "Change Capacity",
|
||||
"admin_page_user.create_user.avatar" => "Avatar",
|
||||
"admin_page_user.create_user.group_details" => "Account Details",
|
||||
"admin_page_user.create_user.group_settings" => "Account Settings",
|
||||
"admin_page_user.create_user.label_conf_pass" => "Confirm password",
|
||||
"admin_page_user.create_user.label_email" => "Type E-mail",
|
||||
"admin_page_user.create_user.label_name" => "Type full name",
|
||||
"admin_page_user.create_user.submit" => "Create User",
|
||||
"admin_page_user.delete_user" => "Delete User",
|
||||
"admin_page_user.invoices.empty" => "User don't have any invoices yet.",
|
||||
"admin_page_user.label_change_capacity" => "Type storage capacity in GB",
|
||||
"admin_page_user.label_delete_user" => "Type with Case Sensitive user name ‘{user}‘",
|
||||
"admin_page_user.label_person_info" => "Personal Information",
|
||||
"admin_page_user.placeholder_delete_user" => "Type here",
|
||||
"admin_page_user.save_role" => "Save Role",
|
||||
"admin_page_user.select_role" => "Select user role",
|
||||
"admin_page_user.send_password_link" => "Send Password Reset Link",
|
||||
"admin_page_user.table.action" => "Action",
|
||||
"admin_page_user.table.created_at" => "Registered",
|
||||
"admin_page_user.table.name" => "User",
|
||||
"admin_page_user.table.role" => "Role",
|
||||
"admin_page_user.table.storage_capacity" => "Storage Capacity",
|
||||
"admin_page_user.table.storage_used" => "Storage Used",
|
||||
"admin_page_user.tabs.delete" => "Delete User",
|
||||
"admin_page_user.tabs.detail" => "Detail",
|
||||
"admin_page_user.tabs.password" => "Password",
|
||||
"admin_page_user.tabs.storage" => "Storage Usage",
|
||||
"admin_pages.form.content" => "Content",
|
||||
"admin_pages.form.content_plac" => "Type your content here...",
|
||||
"admin_pages.form.slug" => "Slug",
|
||||
"admin_pages.form.title" => "Title",
|
||||
"admin_pages.form.title_plac" => "Title name",
|
||||
"admin_pages.form.visibility" => "Visibility",
|
||||
"admin_pages.form.visibility_help" => "Status of your page visibility on website.",
|
||||
"admin_pages.table.page" => "Page",
|
||||
"admin_pages.table.slug" => "Slug",
|
||||
"admin_pages.table.status" => "Status",
|
||||
"admin_settings.appearance.description" => "App Description",
|
||||
"admin_settings.appearance.description_plac" => "Type your app description",
|
||||
"admin_settings.appearance.favicon" => "App Favicon (optional)",
|
||||
"admin_settings.appearance.logo" => "App Logo (optional)",
|
||||
"admin_settings.appearance.logo_horizontal" => "App Logo Horizontal (optional)",
|
||||
"admin_settings.appearance.section_appearance" => "Appearance",
|
||||
"admin_settings.appearance.section_general" => "General Settings",
|
||||
"admin_settings.appearance.title" => "App Title",
|
||||
"admin_settings.appearance.title_plac" => "Type your app title",
|
||||
"admin_settings.email.driver" => "Mail Driver",
|
||||
"admin_settings.email.driver_plac" => "Type your mail driver",
|
||||
"admin_settings.email.email_disclaimer" => "This form is not fully pre-filled for security reasons. Your email settings is available in your <b class='text-theme'>.env</b> file. For apply new Email settings, please confirm your options by button at the end of formular.",
|
||||
"admin_settings.email.encryption" => "Mail Encryption",
|
||||
"admin_settings.email.encryption_plac" => "Select your mail encryption",
|
||||
"admin_settings.email.host" => "Mail Host",
|
||||
"admin_settings.email.host_plac" => "Type your mail host",
|
||||
"admin_settings.email.password" => "Mail Password",
|
||||
"admin_settings.email.password_plac" => "Type your mail password",
|
||||
"admin_settings.email.port" => "Mail Port",
|
||||
"admin_settings.email.port_plac" => "Type your mail port",
|
||||
"admin_settings.email.save_button" => "Save Email Settings",
|
||||
"admin_settings.email.section_email" => "Email Setup",
|
||||
"admin_settings.email.username" => "Mail Username",
|
||||
"admin_settings.email.username_plac" => "Type your mail username",
|
||||
"admin_settings.others.allow_registration" => "Allow User Registration",
|
||||
"admin_settings.others.allow_registration_help" => "You can disable public registration for new users. You will still able to <br/>create new users in administration panel.",
|
||||
"admin_settings.others.cache_clear" => "Clear Cache",
|
||||
"admin_settings.others.cache_disclaimer" => "Did you change anything in your .env file or change your Stripe credentials? Then clear your cache.",
|
||||
"admin_settings.others.contact_email" => "Contact Email",
|
||||
"admin_settings.others.contact_email_plac" => "Type your contact email",
|
||||
"admin_settings.others.default_storage" => "Default Storage Space for User Accounts",
|
||||
"admin_settings.others.default_storage_plac" => "Set default storage space in GB",
|
||||
"admin_settings.others.google_analytics" => "Google Analytics Code (optional)",
|
||||
"admin_settings.others.google_analytics_plac" => "Paste your Google Analytics Code",
|
||||
"admin_settings.others.mimetypes_blacklist" => "Mimetypes Blacklist",
|
||||
"admin_settings.others.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.",
|
||||
"admin_settings.others.mimetypes_blacklist_plac" => "Add mimetypes to Blacklist",
|
||||
"admin_settings.others.section_cache" => "Application Cache",
|
||||
"admin_settings.others.section_others" => "Others Settings",
|
||||
"admin_settings.others.section_user" => "Users and Storage",
|
||||
"admin_settings.others.storage_limit" => "Storage Limitation",
|
||||
"admin_settings.others.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.",
|
||||
"admin_settings.others.upload_limit" => "Upload Limit",
|
||||
"admin_settings.others.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.",
|
||||
"admin_settings.others.upload_limit_plac" => "Type your upload limit in MB",
|
||||
"admin_settings.tabs.appearance" => "Appearance",
|
||||
"admin_settings.tabs.email" => "Email",
|
||||
"admin_settings.tabs.others" => "Application",
|
||||
"alerts.error_confirm" => "That’s horrible!",
|
||||
"alerts.leave_to_sign_in" => "Do you really want to leave?",
|
||||
"alerts.success_confirm" => "Awesome!",
|
||||
"context_menu.add_folder" => "Add Folder",
|
||||
"context_menu.add_to_favourites" => "Add to Favourites",
|
||||
"context_menu.create_folder" => "Create Folder",
|
||||
"context_menu.delete" => "Delete",
|
||||
"context_menu.detail" => "Detail",
|
||||
"context_menu.download" => "Download",
|
||||
"context_menu.empty_trash" => "Empty Trash",
|
||||
"context_menu.log_out" => "Log Out",
|
||||
"context_menu.move" => "Move",
|
||||
"context_menu.no_options" => "No Options Available",
|
||||
"context_menu.profile_settings" => "Profile Settings",
|
||||
"context_menu.remove_from_favourites" => "Remove Favourite",
|
||||
"context_menu.rename" => "Rename",
|
||||
"context_menu.restore" => "Restore",
|
||||
"context_menu.select" => "Select",
|
||||
"context_menu.share" => "Share",
|
||||
"context_menu.share_cancel" => "Cancel Sharing",
|
||||
"context_menu.share_edit" => "Edit Sharing",
|
||||
"context_menu.upload" => "Upload",
|
||||
"context_menu.zip_folder" => "Zip and Download",
|
||||
"cookie_disclaimer.button" => "cookies policy",
|
||||
"cookie_disclaimer.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",
|
||||
"empty_page.description" => "Upload some files here easily via upload button.",
|
||||
"empty_page.title" => "Upload Your First File",
|
||||
"errors.capacity_digit" => "The storage capacity must be lower than 10 digit number.",
|
||||
"file_detail.author" => "Author",
|
||||
"file_detail.author_participant" => "Public Participant",
|
||||
"file_detail.created_at" => "Created at",
|
||||
"file_detail.items" => "Items",
|
||||
"file_detail.selected_multiple" => "Selected Multiple Items",
|
||||
"file_detail.shared" => "Shared",
|
||||
"file_detail.size" => "Size",
|
||||
"file_detail.where" => "Where",
|
||||
"file_detail_meta.aperature" => "F Number",
|
||||
"file_detail_meta.aperture_value" => "Aperture Value",
|
||||
"file_detail_meta.author" => "Author",
|
||||
"file_detail_meta.camera_lens" => "Camera Lens",
|
||||
"file_detail_meta.color_space" => "Color Space",
|
||||
"file_detail_meta.dimension" => "Dimensions",
|
||||
"file_detail_meta.exposure" => "Exposure Time",
|
||||
"file_detail_meta.focal" => "Focal Length",
|
||||
"file_detail_meta.iso" => "ISO",
|
||||
"file_detail_meta.latitude" => "Latitude",
|
||||
"file_detail_meta.longitude" => "Longitude",
|
||||
"file_detail_meta.make" => "Camera",
|
||||
"file_detail_meta.meta_data" => "Metadata",
|
||||
"file_detail_meta.model" => "Model",
|
||||
"file_detail_meta.resolution" => "Resolution",
|
||||
"file_detail_meta.time_data" => "Content Created",
|
||||
"folder.empty" => "Empty",
|
||||
"folder.item_counts" => "{count} Item | {count} Items",
|
||||
"global.active" => "Active",
|
||||
"global.admin" => "Admin",
|
||||
"global.cancel" => "Cancel",
|
||||
"global.canceled" => "Canceled",
|
||||
"global.confirm_action" => "Yes, I'm sure",
|
||||
"global.default" => "Default",
|
||||
"global.free" => "Free",
|
||||
"global.get_it" => "Get It",
|
||||
"global.incomplete" => "Incomplete",
|
||||
"global.menu" => "Menu",
|
||||
"global.or" => "or",
|
||||
"global.total" => "Total",
|
||||
"input_image.supported" => "Supported formats are .png, .jpg, .jpeg.",
|
||||
"input_image.title" => "Upload Image",
|
||||
"inputs.placeholder_search_files" => "Search files or folders...",
|
||||
"item_thumbnail.deleted_at" => "Deleted {time}",
|
||||
"item_thumbnail.original_location" => "Original Location",
|
||||
"locations.home" => "Files",
|
||||
"locations.logout" => "Log Out",
|
||||
"locations.profile" => "Profile",
|
||||
"locations.settings" => "Settings",
|
||||
"locations.shared" => "Shared",
|
||||
"locations.trash" => "Trash",
|
||||
"menu.admin" => "Administration",
|
||||
"menu.files" => "Files",
|
||||
"menu.latest" => "Recent Uploads",
|
||||
"menu.logout" => "Log Out",
|
||||
"menu.password" => "Password",
|
||||
"menu.profile" => "Profile Settings",
|
||||
"menu.settings" => "Settings",
|
||||
"menu.shared" => "Shared Files",
|
||||
"menu.storage" => "Storage",
|
||||
"menu.trash" => "Trash",
|
||||
"messages.nothing_from_participants" => "You don't have any uploads from other users.",
|
||||
"messages.nothing_to_preview" => "There is nothing to preview.",
|
||||
"messages.nothing_was_found" => "Nothing was found.",
|
||||
"mobile_selecting.deselect_all" => "Deselect All",
|
||||
"mobile_selecting.done" => "Done",
|
||||
"mobile_selecting.select_all" => "Select All",
|
||||
"page_contact_us.description" => "Do you have any questions? Get in touch with us.",
|
||||
"page_contact_us.error_message" => "Something went wrong, please try it again.",
|
||||
"page_contact_us.form.email" => "Email",
|
||||
"page_contact_us.form.email_plac" => "Type your email",
|
||||
"page_contact_us.form.message" => "Message",
|
||||
"page_contact_us.form.message_plac" => "Type your message here...",
|
||||
"page_contact_us.form.submit_button" => "Send Message",
|
||||
"page_contact_us.success_message" => "Your message was send successfully.",
|
||||
"page_contact_us.title" => "Contact Us",
|
||||
"page_create_password.button_update" => "Update Password",
|
||||
"page_create_password.label_confirm_pass" => "Confirm password",
|
||||
"page_create_password.label_email" => "Email",
|
||||
"page_create_password.label_new_pass" => "New password",
|
||||
"page_create_password.subtitle" => "Create your new password here",
|
||||
"page_create_password.title" => "Only One Step to Log In",
|
||||
"page_forgotten_password.button_get_link" => "Get Link",
|
||||
"page_forgotten_password.pass_reseted_signin" => "Sign In",
|
||||
"page_forgotten_password.pass_reseted_subtitle" => "Your password was reset successfully.",
|
||||
"page_forgotten_password.pass_reseted_title" => "Awesome!",
|
||||
"page_forgotten_password.pass_sennded_subtitle" => "We have e-mailed your password reset link!",
|
||||
"page_forgotten_password.pass_sennded_title" => "Thank you!",
|
||||
"page_forgotten_password.password_remember_button" => "Log In.",
|
||||
"page_forgotten_password.password_remember_text" => "Remember your password?",
|
||||
"page_forgotten_password.subtitle" => "Get reset link with your email",
|
||||
"page_forgotten_password.title" => "Forgotten Password?",
|
||||
"page_index.get_started_button" => "Sign Up Now",
|
||||
"page_index.menu.contact_us" => "Contact Us",
|
||||
"page_index.menu.log_in" => "Log In",
|
||||
"page_index.menu.pricing" => "Pricing",
|
||||
"page_index.menu.sign_in" => "Sign Up",
|
||||
"page_index.sign_feature_1" => "No credit card required",
|
||||
"page_index.sign_feature_2" => "{defaultSpace} Free storage space",
|
||||
"page_index.sign_up_button" => "Sign Up Now",
|
||||
"page_login.button_next" => "Next Step",
|
||||
"page_login.placeholder_email" => "Type your E-mail",
|
||||
"page_login.registration_button" => "Register account.",
|
||||
"page_login.registration_text" => "Don’t have an account?",
|
||||
"page_login.subtitle" => "Please type your email to log in",
|
||||
"page_login.title" => "Welcome Back!",
|
||||
"page_registration.agreement" => "By clicking on 'Create Account' button I agree to the {0} and {1}.",
|
||||
"page_registration.button_create_account" => "Create Account",
|
||||
"page_registration.have_an_account" => "Do you have an account?",
|
||||
"page_registration.label_confirm_pass" => "Confirm password",
|
||||
"page_registration.label_email" => "Email",
|
||||
"page_registration.label_name" => "Full Name",
|
||||
"page_registration.label_pass" => "Create password",
|
||||
"page_registration.placeholder_confirm_pass" => "Confirm your new password",
|
||||
"page_registration.placeholder_email" => "Type your E-mail",
|
||||
"page_registration.placeholder_name" => "Type your full name",
|
||||
"page_registration.placeholder_pass" => "New password",
|
||||
"page_registration.subtitle" => "Please fill registration to create account",
|
||||
"page_registration.title" => "Create New Account",
|
||||
"page_shared.download_file" => "Download File",
|
||||
"page_shared.placeholder_pass" => "Type password",
|
||||
"page_shared.submit" => "Submit",
|
||||
"page_shared.subtitle" => "Please type the password to get shared content",
|
||||
"page_shared.title" => "Your Share Link is Protected",
|
||||
"page_shared_404.subtitle" => "The content you are finding was probably deleted.",
|
||||
"page_shared_404.title" => "Not Found :(",
|
||||
"page_sign_in.button_log_in" => "Log In",
|
||||
"page_sign_in.password_reset_button" => "Reset Password.",
|
||||
"page_sign_in.password_reset_text" => "Forgotten your password?",
|
||||
"page_sign_in.placeholder_password" => "Type your password",
|
||||
"page_sign_in.subtitle" => "Confirm you by your password",
|
||||
"page_sign_in.title" => "Are You {name}?",
|
||||
"popup_create_folder.folder_default_name" => "New Folder",
|
||||
"popup_create_folder.label" => "Type Name",
|
||||
"popup_create_folder.placeholder" => "Type your name",
|
||||
"popup_create_folder.title" => "Create Folder",
|
||||
"popup_deleted_user.message" => "Your user was deleted with all user data content.",
|
||||
"popup_deleted_user.title" => "User was deleted",
|
||||
"popup_deleted_user_aborted.message" => "You can't delete this account while user have active subscription.",
|
||||
"popup_deleted_user_aborted.title" => "User wasn't deleted",
|
||||
"popup_error.message" => "Something went wrong and we can't continue. Please contact us.",
|
||||
"popup_error.title" => "Whooops, something went wrong!",
|
||||
"popup_exceed_limit.message" => "Please contact your administrator to change your limit.",
|
||||
"popup_exceed_limit.title" => "Whooops, you exceed storage limit :(",
|
||||
"popup_mimetypes_blacklist.message" => "File of this type ({mimetype}) is not allowed to upload.",
|
||||
"popup_mimetypes_blacklist.title" => "You are trying to upload unsupported file type",
|
||||
"popup_move_item.cancel" => "Cancel",
|
||||
"popup_move_item.submit" => "Move Item",
|
||||
"popup_move_item.title" => "Move Item",
|
||||
"popup_pass_changed.message" => "So now, you have awesome new password.",
|
||||
"popup_pass_changed.title" => "Your password was changed!",
|
||||
"popup_paylod_error.message" => "Sorry, your file is too large and can't be uploaded",
|
||||
"popup_paylod_error.title" => "File is too large",
|
||||
"popup_rename.select_emoji_label" => "Pick Your Emoji Icon",
|
||||
"popup_rename.color_pick_label" => "Pick Your Color",
|
||||
"popup_rename.emoji_list_not_found" => "Not Found",
|
||||
"popup_rename.label" => "Edit Name",
|
||||
"popup_rename.placeholder" => "Type your title",
|
||||
"popup_rename.search_emoji_input_placeholder" => "Search your emoji...",
|
||||
"popup_rename.set_emoji_input_placeholder" => "Emojis List...",
|
||||
"popup_rename.tab_color_title" => "Folder Color",
|
||||
"popup_rename.tab_emoji_title" => "Emoji as an Icon",
|
||||
"popup_rename.title" => "Rename Your {item}",
|
||||
"popup_share_create.title" => "Share Your {item}",
|
||||
"popup_share_edit.change_pass" => "Change Password",
|
||||
"popup_share_edit.confirm" => "Confirm",
|
||||
"popup_share_edit.go_back" => "Go Back",
|
||||
"popup_share_edit.save" => "Save Changes",
|
||||
"popup_share_edit.send_to_recipients" => "Send to Recipients",
|
||||
"popup_share_edit.stop" => "Cancel Sharing",
|
||||
"popup_share_edit.title" => "Update sharing options",
|
||||
"popup_signup_error.message" => "Please check your database connection if everything works correctly.",
|
||||
"popup_signup_error.title" => "Server Error",
|
||||
"popup_upload_limit.message" => "Size of your uploaded file exceed the upload limit ({uploadLimit}).",
|
||||
"popup_upload_limit.title" => "You exceed upload limit on single file",
|
||||
"popup_zipping.message" => "Please wait until your files start downloading.",
|
||||
"popup_zipping.title" => "Zipping Your Files...",
|
||||
"preview_sorting.grid_view" => "Grid View",
|
||||
"preview_sorting.list_view" => "List View",
|
||||
"preview_sorting.preview_sorting_button" => "View",
|
||||
"preview_sorting.sort_alphabet" => "Sort By Aplhabet",
|
||||
"preview_sorting.sort_date" => "Sort By Date",
|
||||
"profile.change_pass" => "Change Password",
|
||||
"profile.profile_info" => "Profile Information",
|
||||
"profile.store_pass" => "Store New Password",
|
||||
"pronouns.of" => "of",
|
||||
"roles.admin" => "Admin",
|
||||
"roles.user" => "User",
|
||||
"routes.create_new_password" => "create-new-password",
|
||||
"routes_title.appearance" => "Appearance",
|
||||
"routes_title.dashboard" => "Dashboard",
|
||||
"routes_title.email" => "Email",
|
||||
"routes_title.languages" => "Languages",
|
||||
"routes_title.others" => "Others",
|
||||
"routes_title.page_edit" => "Edit Page",
|
||||
"routes_title.pages" => "Pages",
|
||||
"routes_title.profile" => "My Profile",
|
||||
"routes_title.profile_settings" => "Profile Settings",
|
||||
"routes_title.settings" => "Settings",
|
||||
"routes_title.settings_mobile" => "Settings",
|
||||
"routes_title.settings_password" => "Change Password",
|
||||
"routes_title.settings_storage" => "Storage",
|
||||
"routes_title.user_create" => "Create User",
|
||||
"routes_title.users_delete" => "Delete User",
|
||||
"routes_title.users_detail" => "Detail",
|
||||
"routes_title.users_list" => "User Management",
|
||||
"routes_title.users_password" => "Password",
|
||||
"routes_title.users_storage_usage" => "Storage Usage",
|
||||
"routes_title.users_user" => "User",
|
||||
"shared.can_download" => "Can download file",
|
||||
"shared.editor" => "Can edit and upload files",
|
||||
"shared.empty_shared" => "You haven't shared anything yet.",
|
||||
"shared.visitor" => "Can only view and download",
|
||||
"shared_form.button_close_options" => "Close Options",
|
||||
"shared_form.button_done" => "Awesome, I’m done!",
|
||||
"shared_form.button_folder_icon_open" => "Customize Folder Icon",
|
||||
"shared_form.button_generate" => "Generate Link",
|
||||
"shared_form.button_more_options" => "Set Expiration",
|
||||
"shared_form.email_placeholder" => "Type your emails",
|
||||
"shared_form.email_successfully_send_message" => "Your item was <b class='text-theme'>successfully sended</b> to recipients emails.",
|
||||
"shared_form.expiration_day" => "{value}d.",
|
||||
"shared_form.expiration_hour" => "{value}h.",
|
||||
"shared_form.label_expiration" => "Link Expiration",
|
||||
"shared_form.label_password_protection" => "Password Protected",
|
||||
"shared_form.label_permission" => "Permission",
|
||||
"shared_form.label_send_to_recipients" => "Send to Recipients",
|
||||
"shared_form.label_share_vie_email" => "Get your link",
|
||||
"shared_form.label_shared_url" => "Share url",
|
||||
"shared_form.placeholder_permission" => "Select your permission",
|
||||
"shared_form.recipients_label" => "Recipients",
|
||||
"shared_form.share_by_email" => "Share by Email",
|
||||
"shared_form.share_by_link" => "Share by Link",
|
||||
"sidebar.favourites" => "Favourites",
|
||||
"sidebar.favourites_empty" => "Drag here your favourite folder.",
|
||||
"sidebar.folders_empty" => "Create some new folder.",
|
||||
"sidebar.home" => "Files",
|
||||
"sidebar.latest" => "Recent Uploads",
|
||||
"sidebar.locations_title" => "Base",
|
||||
"sidebar.my_shared" => "My Shared Items",
|
||||
"sidebar.navigator_title" => "Navigator",
|
||||
"sidebar.participant_uploads" => "Participant Uploads",
|
||||
"sidebar.tools_title" => "Tools",
|
||||
"storage.audios" => "Audios",
|
||||
"storage.documents" => "Documents",
|
||||
"storage.images" => "Images",
|
||||
"storage.others" => "Others",
|
||||
"storage.sec_capacity" => "Your disk Usage",
|
||||
"storage.sec_details" => "Capacity Usage Details",
|
||||
"storage.total_capacity" => "Your storage capacity is {capacity}",
|
||||
"storage.total_used" => "Total used {used}",
|
||||
"storage.videos" => "Videos",
|
||||
"toaster.changed_capacity" => "You successfully changed user's storage size!",
|
||||
"toaster.changed_user" => "You successfully changed user's role!",
|
||||
"toaster.created_user" => "User was created successfully!",
|
||||
"toaster.email_set" => "Your email settings was updated successfully",
|
||||
"toaster.sended_password" => "You successfully send user email for reset password!",
|
||||
"types.file" => "File",
|
||||
"types.folder" => "Folder",
|
||||
"upgrade_banner.button" => "Upgrade",
|
||||
"upgrade_banner.description" => "You nearly reach your storage capacity.",
|
||||
"upgrade_banner.title" => "You reach your storage capacity. Please upgrade.",
|
||||
"uploading.cancel" => "Cancel Uploading",
|
||||
"uploading.processing_file" => "Processing File...",
|
||||
"uploading.progress" => "Uploading File {progress}% - {current}/{total}",
|
||||
"uploading.progress_single_upload" => "Uploading File {progress}%",
|
||||
"user_add_card.default_description" => "Your card will be charged for billing plans as first.",
|
||||
"user_add_card.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.",
|
||||
"user_box_delete.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.",
|
||||
"user_box_password.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.",
|
||||
"user_box_role.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.",
|
||||
"user_box_storage.title" => "Change User Storage Capacity",
|
||||
"user_password.title" => "Change Your Password",
|
||||
"user_settings.address" => "Address",
|
||||
"user_settings.address_plac" => "Type your billing address",
|
||||
"user_settings.city" => "City",
|
||||
"user_settings.city_plac" => "Type your billing city",
|
||||
"user_settings.country" => "Country",
|
||||
"user_settings.country_plac" => "Select your billing country",
|
||||
"user_settings.name" => "Name",
|
||||
"user_settings.name_plac" => "Type your billing name",
|
||||
"user_settings.phone_number" => "Phone Number",
|
||||
"user_settings.phone_number_plac" => "Type your billing phone number",
|
||||
"user_settings.postal_code" => "Postal Code",
|
||||
"user_settings.postal_code_plac" => "Type your billing postal code",
|
||||
"user_settings.state" => "State",
|
||||
"user_settings.state_plac" => "Type your billing state",
|
||||
"user_settings.timezone" => "Timezone",
|
||||
"user_settings.timezone_plac" => "Select your timezone",
|
||||
"user_settings.title_account" => "Account Information",
|
||||
"user_settings.title_billing" => "Billing Information",
|
||||
"validation_errors.incorrect_password" => "Sorry, you passed incorrect password :(",
|
||||
"validation_errors.wrong_image" => "You may have uploaded the wrong file, try again!",
|
||||
'app_description' => 'Your self-hosted storage cloud software powered by Laravel and Vue',
|
||||
'user_not_fount' => 'We can\'t find a user with that e-mail address.',
|
||||
'incorrect_password' => 'Sorry, your password is incorrect.',
|
||||
'time' => '%d. %B. %Y at %H:%M',
|
||||
'home' => 'Home',
|
||||
'shared_link_email_subject' => '🙋 :user share some files with you. Look at it!',
|
||||
'shared_link_email_greeting' => 'Hello!',
|
||||
'shared_link_email_user' => ':user (:email) send you a link to shared files.',
|
||||
'shared_link_email_link' => 'Open your files',
|
||||
'shared_link_email_salutation' => 'Regards, :app_name',
|
||||
'reset_password_greeting' => 'Hello!',
|
||||
'reset_password_subject' => 'Reset password for your account on ',
|
||||
'reset_password_line_1' => 'You are receiving this email because we received a password reset request for your account.',
|
||||
'reset_password_line_2' => 'If you did not request a password reset, no further action is required.',
|
||||
'reset_password_action' => 'Reset Password',
|
||||
'salutation' => 'Regards',
|
||||
'user_sending' => ':name is sending you this file',
|
||||
'protected_file' => 'This link is protected by password',
|
||||
'routes_title.language' => 'Languages',
|
||||
'languages' => 'Languages',
|
||||
'add_language' => 'Add Language',
|
||||
'create_language' => 'Create Language',
|
||||
'edit_translations' => 'Edit Translations',
|
||||
'language_name' => 'Language Name',
|
||||
'set_as_default_language' => 'Set as Default Language',
|
||||
'language_settings' => 'Language Settings',
|
||||
'search_translations' => 'Search Language Translations...',
|
||||
'select_locale' => 'Select Locale',
|
||||
'locale_name' => 'Language Name',
|
||||
'select_language_locale' => 'Select Language Locale',
|
||||
'type_language_name' => 'Type Language Name',
|
||||
'go_to_files' => 'Go to Files',
|
||||
'color_theme' => 'Color Theme',
|
||||
'color_theme_description' => 'Your color change will be visible after app refresh.',
|
||||
'og_image' => 'OG Image',
|
||||
'og_image_description' => 'Image that appear when someone shares the content to Facebook or any other social medium. Preferred size is 1200x627',
|
||||
'app_touch_icon' => 'App Touch Icon',
|
||||
'app_touch_icon_description' => 'If user store bookmark on his phone screen, this icon appear in app thumbnail. Preferred size is 156x156',
|
||||
]
|
||||
];
|
||||
@@ -30,7 +30,7 @@ class ShareFactory extends Factory
|
||||
'type' => $this->faker->randomElement(['file', 'folder']),
|
||||
'permission' => $this->faker->randomElement(['visitor', 'editor']),
|
||||
'is_protected' => $this->faker->boolean(20),
|
||||
'password' => \Hash::make('secret'),
|
||||
'password' => bcrypt('secret'),
|
||||
'expire_in' => $this->faker->randomElement([1, 6, 12, 24]),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace Database\Factories;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class UserFactory extends Factory
|
||||
@@ -29,7 +28,7 @@ class UserFactory extends Factory
|
||||
),
|
||||
'email' => $this->faker->unique()->safeEmail,
|
||||
'email_verified_at' => now(),
|
||||
'password' => Hash::make('secret'),
|
||||
'password' => bcrypt('secret'),
|
||||
'remember_token' => Str::random(10),
|
||||
'created_at' => $this->faker->dateTimeBetween(
|
||||
$startDate = '-36 months', $endDate = 'now', $timezone = null
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateLanguagesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('languages', function (Blueprint $table) {
|
||||
$table->uuid('id')->primary()->index();
|
||||
$table->string('name');
|
||||
$table->string('locale')->unique();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('languages');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateLanguageStrings extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('language_translations', function (Blueprint $table) {
|
||||
$table->string('key');
|
||||
$table->longText('value');
|
||||
$table->string('lang');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('language_translations');
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -1,78 +1,135 @@
|
||||
{
|
||||
"/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~8394cf85.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~8394cf85.js?id=7fb9a8f957bc5a63ebbe",
|
||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cc6e748e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cc6e748e.js?id=d85e8bc2bb4fc4b9cd7e",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=812f194ac13a302d647a",
|
||||
"/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plans~chunks/user-invoices.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plans~chunks/user-invoices.js?id=15177b797675ca0d719f",
|
||||
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=3b0d689728d8e9e89814",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=7021bd7e7a4482f0adad",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=ccff85e59956642794fa",
|
||||
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=d2a11ecea5f79cf0d2e5",
|
||||
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=83118778098d9cccc7d7",
|
||||
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=0e6d6979c32214f01a99",
|
||||
"/js/main.js": "/js/main.js?id=0a7412f36f4a08c502ec",
|
||||
"/css/app.css": "/css/app.css?id=5ef36155a311dd4539c1",
|
||||
"/chunks/admin.js": "/chunks/admin.js?id=e899c4e340a7ee17bfc7",
|
||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=28cdfca8ae4209e8e37b",
|
||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=59095f58ca3113b15626",
|
||||
"/chunks/app-billings.js": "/chunks/app-billings.js?id=2cd6830fae983681a8b4",
|
||||
"/chunks/app-email.js": "/chunks/app-email.js?id=44d64098857ce4aca4f4",
|
||||
"/chunks/app-index.js": "/chunks/app-index.js?id=92924d419cf9db2b7d69",
|
||||
"/chunks/app-others.js": "/chunks/app-others.js?id=f1ea6bd2c8ce1ed2b3ea",
|
||||
"/chunks/app-payments.js": "/chunks/app-payments.js?id=27c10ba667bff44a339a",
|
||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=228b731d4a4a624e9ac8",
|
||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=e114d23eb116de7daaca",
|
||||
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=effde3612acf63127b61",
|
||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=5ecf2fabc15b38a862a5",
|
||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=0299a64609dbeac8c498",
|
||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=f74d247e861d7afcfaf5",
|
||||
"/chunks/database.js": "/chunks/database.js?id=f381821cf381731465d3",
|
||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=8a9239571e1ccdcf7ec4",
|
||||
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=f7548828b76e2beebd70",
|
||||
"/chunks/files.js": "/chunks/files.js?id=81ecddbb7f76b87c9fd7",
|
||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=67d2aa40c40b247ca626",
|
||||
"/chunks/homepage.js": "/chunks/homepage.js?id=5903876b5ba8dd238f40",
|
||||
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=ef514625e3fc96cdccb4",
|
||||
"/chunks/invoices.js": "/chunks/invoices.js?id=5efc1b78ac26647e0b1b",
|
||||
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=f11f6be7530258b866a5",
|
||||
"/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=762cbacf500f9f6a10fd",
|
||||
"/chunks/page-edit.js": "/chunks/page-edit.js?id=1319a4618c4320afe926",
|
||||
"/chunks/pages.js": "/chunks/pages.js?id=acf091c54db696620ca3",
|
||||
"/chunks/plan.js": "/chunks/plan.js?id=4900048a346826a4a3b0",
|
||||
"/chunks/plan-create.js": "/chunks/plan-create.js?id=08a7524a711895e478e7",
|
||||
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=50baf5cf629ee3903fd0",
|
||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=c1aeda79dfc6121c7ae9",
|
||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=c84ed9463bd01817fe58",
|
||||
"/chunks/plans.js": "/chunks/plans.js?id=4834dcb4c44a2917db31",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=bd0c441badaa95260cc2",
|
||||
"/chunks/profile.js": "/chunks/profile.js?id=77b8482753875eaac232",
|
||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=02ca506cbe8955104f40",
|
||||
"/chunks/settings.js": "/chunks/settings.js?id=8c29356a0e05ecf2ae14",
|
||||
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=ca18577ff4ee126d9e67",
|
||||
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=027ca7690d1d63ed2170",
|
||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=3ea6a0af21525b1e71d5",
|
||||
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=199a86fbabc691dddee9",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=10be14da6b77a0953553",
|
||||
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=51a492d6b267ed10d1e2",
|
||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=105acf51fb151cabf487",
|
||||
"/chunks/shared.js": "/chunks/shared.js?id=5497376628e7d35fbf69",
|
||||
"/chunks/shared-files.js": "/chunks/shared-files.js?id=267127380722f1952000",
|
||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b1dda61a10d9cea61781",
|
||||
"/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=9dd413e63d2c425a2104",
|
||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=7ab003bd006e1bd72980",
|
||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=aef6904df93f6a1f75a2",
|
||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=be4aede8e58da006e976",
|
||||
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=1e95c1f7d0f2403d8ff4",
|
||||
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=c2a9d01814982344f330",
|
||||
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=39a8f7be01f07749cc5a",
|
||||
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=5332d86219c3a0724557",
|
||||
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=93f1a120f20814afee9f",
|
||||
"/chunks/user.js": "/chunks/user.js?id=1997c8c2c5ce12d6a813",
|
||||
"/chunks/user-create.js": "/chunks/user-create.js?id=afbb81b0e5ac7cfa03c4",
|
||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=93f3915b2f23f42fdf65",
|
||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=3ed0e00627ff77891f7d",
|
||||
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=30f659c7c2b525ebf5c4",
|
||||
"/chunks/user-password.js": "/chunks/user-password.js?id=0fdaeab06a9ed470f998",
|
||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=4ce314558da246390d99",
|
||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=71fae0228ed9d37b9302",
|
||||
"/chunks/users.js": "/chunks/users.js?id=22ef617ebef15c9b897f"
|
||||
"/js/main.js": "/js/main.js",
|
||||
"/css/app.css": "/css/app.css",
|
||||
"/chunks/admin.js": "/chunks/admin.js?id=f3df96ed0302c713ab20",
|
||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=3036df3e72596fabc42e",
|
||||
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=62b552a0492fe95b2223",
|
||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a001bb84.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a001bb84.js?id=0cad8279d29d79cd0e82",
|
||||
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=99dbb760d4e3dd0acdbf",
|
||||
"/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js?id=9b66c2dab4c6103bb53c",
|
||||
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=3d9f93a03cb1ffa61d01",
|
||||
"/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=12f0aaeb615c37d0515d",
|
||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=b4e2d99a172f06a1d312",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=45c8f27411287c7bbf73",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=7702f37f277478ad66c6",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=04f0cd9719723459b685",
|
||||
"/chunks/app-billings.js": "/chunks/app-billings.js?id=82133cc16f55222bbbe6",
|
||||
"/chunks/app-email.js": "/chunks/app-email.js?id=c578a85112c6a4b1ed0e",
|
||||
"/chunks/app-index.js": "/chunks/app-index.js?id=7f07dceace5c9c8255bb",
|
||||
"/chunks/app-language.js": "/chunks/app-language.js?id=e97b8b4e0a0f5ac93c97",
|
||||
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js?id=91d6a4649c9277a7bb29",
|
||||
"/chunks/app-others.js": "/chunks/app-others.js?id=9156adba3b1697a8bf3e",
|
||||
"/chunks/app-payments.js": "/chunks/app-payments.js?id=7e1a982c90174f568fb2",
|
||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=bbf2a2e436d939f7fc07",
|
||||
"/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=e71bb0286189734a8aec",
|
||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=d0e3e046e147ca928f34",
|
||||
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=d0ade32264f71dd7a2af",
|
||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=f5276b101b2e0c97d6d1",
|
||||
"/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=22bd5db44c72e8de5f5b",
|
||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=48dc53ccbd502c2739ec",
|
||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=74bd69ac9feddf058188",
|
||||
"/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=7540af768b1cfda01a13",
|
||||
"/chunks/database.js": "/chunks/database.js?id=7374830dc3cbddf41abb",
|
||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=6dccc2158cc6278f683d",
|
||||
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=208de84df68177288a2a",
|
||||
"/chunks/files.js": "/chunks/files.js?id=40b4464ce393cb112111",
|
||||
"/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js?id=39233d603662ca3738e8",
|
||||
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=da7fad654568667d799f",
|
||||
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js?id=b4ccb4a816e5c72a0b85",
|
||||
"/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js?id=31a17ad1d2536342abbe",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=8912841f29b16a3ecbf9",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=9b875b7ea10b575524e6",
|
||||
"/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=a67929ed0c257f501268",
|
||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=877a9289b77ac3885042",
|
||||
"/chunks/homepage.js": "/chunks/homepage.js?id=14154b40ea69f91fef31",
|
||||
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=fa49cb6f6c1027d24d57",
|
||||
"/chunks/invoices.js": "/chunks/invoices.js?id=81df0d453a53fd224e13",
|
||||
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=7fc7f9b6f10bdfac770e",
|
||||
"/chunks/page-edit.js": "/chunks/page-edit.js?id=dbb7e8cb377a08c8adc2",
|
||||
"/chunks/pages.js": "/chunks/pages.js?id=9c31ba518ce43a3595ef",
|
||||
"/chunks/plan.js": "/chunks/plan.js?id=396a1053f0c7089de936",
|
||||
"/chunks/plan-create.js": "/chunks/plan-create.js?id=92ca81965dc17b3ec7a3",
|
||||
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=f193816778245ea66d02",
|
||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=66123f72696b47a986a2",
|
||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=08e2056bc3744b2ea8f9",
|
||||
"/chunks/plans.js": "/chunks/plans.js?id=608bdbd5c041b728691a",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=559a62d18ff169793e54",
|
||||
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=3d5804463c897995e9d1",
|
||||
"/chunks/profile.js": "/chunks/profile.js?id=fb4a46afdd09cdcdc7da",
|
||||
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=d448806bfefc6cc43f0d",
|
||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=e00ee12cde704060e15b",
|
||||
"/chunks/settings.js": "/chunks/settings.js?id=2637c005a9c8b01cfc9b",
|
||||
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=c12436dc2933527ce1f5",
|
||||
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=444b9bbc310647ddd297",
|
||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d24053a92c2594439d04",
|
||||
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=3bc709a228c0849a6f62",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ced13fc6a34233fb53aa",
|
||||
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=22e5c49d5b0a154e1a28",
|
||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=c6b88005b133268ed88f",
|
||||
"/chunks/shared.js": "/chunks/shared.js?id=2c38f535d52e0e448846",
|
||||
"/chunks/shared-files.js": "/chunks/shared-files.js?id=cde3c7a58d2da0015555",
|
||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=3d5c7754d438830a4204",
|
||||
"/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=3127fab4cfd3d5f00a72",
|
||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=e8aedb75df7fe227d693",
|
||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=61e5b97e8273aec430ad",
|
||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=ce15b1156cf37c0a9703",
|
||||
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=1acdec3a157c8943a88d",
|
||||
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=a843f8cf90ff1e3168e8",
|
||||
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=90c1aa9431689a89eb3d",
|
||||
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=d76e4522f424ce996e8f",
|
||||
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=e1658ebec711765f67fc",
|
||||
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=35179531a8241da128e9",
|
||||
"/chunks/user.js": "/chunks/user.js?id=6e9af0d22327a4cc82e9",
|
||||
"/chunks/user-create.js": "/chunks/user-create.js?id=0ede0db725f2c822c336",
|
||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=5af2fc09b4b639452756",
|
||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=b9b70e43cf551a574443",
|
||||
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=6c4d0e9e058be11dc1f7",
|
||||
"/chunks/user-password.js": "/chunks/user-password.js?id=a4b4ab4f4af11533eb4d",
|
||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=4aec2d7b60ec0bc35fb9",
|
||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=99efdd410910267db66e",
|
||||
"/chunks/users.js": "/chunks/users.js?id=f1057be5cf73ebc32c14",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~0d496e20.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~0d496e20.js?id=a9facd8e57a0dd054f8c",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~7afe9e20.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~7afe9e20.js?id=6d6e7e4191c9e2705c8a",
|
||||
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3",
|
||||
"/chunks/app-language.5e86b6c8aedb968aabd1.hot-update.js": "/chunks/app-language.5e86b6c8aedb968aabd1.hot-update.js",
|
||||
"/chunks/app-language.3e137679fcd212ecdb43.hot-update.js": "/chunks/app-language.3e137679fcd212ecdb43.hot-update.js",
|
||||
"/chunks/app-language.8069ae5a36cc4868d1d3.hot-update.js": "/chunks/app-language.8069ae5a36cc4868d1d3.hot-update.js",
|
||||
"/chunks/app-language.d4c9d87012f92cbb3694.hot-update.js": "/chunks/app-language.d4c9d87012f92cbb3694.hot-update.js",
|
||||
"/chunks/app-language.c0acc236afe078713927.hot-update.js": "/chunks/app-language.c0acc236afe078713927.hot-update.js",
|
||||
"/chunks/app-language.42b3b09042f97ffb073a.hot-update.js": "/chunks/app-language.42b3b09042f97ffb073a.hot-update.js",
|
||||
"/chunks/app-language.7478a2ac686bc8208aac.hot-update.js": "/chunks/app-language.7478a2ac686bc8208aac.hot-update.js",
|
||||
"/chunks/app-language.695a92293d8dc92d833b.hot-update.js": "/chunks/app-language.695a92293d8dc92d833b.hot-update.js",
|
||||
"/chunks/app-language.25fa944544b002f36615.hot-update.js": "/chunks/app-language.25fa944544b002f36615.hot-update.js",
|
||||
"/chunks/app-language.aee54dee7bdbae4a4dad.hot-update.js": "/chunks/app-language.aee54dee7bdbae4a4dad.hot-update.js",
|
||||
"/chunks/app-language.62fa61e8408e9fd42b23.hot-update.js": "/chunks/app-language.62fa61e8408e9fd42b23.hot-update.js",
|
||||
"/js/main.21d047cff85c2cc93f65.hot-update.js": "/js/main.21d047cff85c2cc93f65.hot-update.js",
|
||||
"/chunks/app-language.13a02b269488a9ed8054.hot-update.js": "/chunks/app-language.13a02b269488a9ed8054.hot-update.js",
|
||||
"/chunks/app-language.ff6a3c1bce44294e69aa.hot-update.js": "/chunks/app-language.ff6a3c1bce44294e69aa.hot-update.js",
|
||||
"/chunks/app-language.0aff16e91050419f056f.hot-update.js": "/chunks/app-language.0aff16e91050419f056f.hot-update.js",
|
||||
"/chunks/admin.00d9afd473b8b4521765.hot-update.js": "/chunks/admin.00d9afd473b8b4521765.hot-update.js",
|
||||
"/chunks/admin.b85158f2cba3bfbbf404.hot-update.js": "/chunks/admin.b85158f2cba3bfbbf404.hot-update.js",
|
||||
"/chunks/admin.bf53021a67ae75f1b0ee.hot-update.js": "/chunks/admin.bf53021a67ae75f1b0ee.hot-update.js",
|
||||
"/chunks/admin.bda5e8845d2e437ffe7c.hot-update.js": "/chunks/admin.bda5e8845d2e437ffe7c.hot-update.js",
|
||||
"/chunks/admin.a97d84e1d8754867cef5.hot-update.js": "/chunks/admin.a97d84e1d8754867cef5.hot-update.js",
|
||||
"/chunks/app-language.8ca3efeede3cedbd37e0.hot-update.js": "/chunks/app-language.8ca3efeede3cedbd37e0.hot-update.js",
|
||||
"/chunks/app-language.23f838b7be45ce10476b.hot-update.js": "/chunks/app-language.23f838b7be45ce10476b.hot-update.js",
|
||||
"/chunks/app-language.fd910667c3258a91322b.hot-update.js": "/chunks/app-language.fd910667c3258a91322b.hot-update.js",
|
||||
"/chunks/app-language.6a163294803727b4d501.hot-update.js": "/chunks/app-language.6a163294803727b4d501.hot-update.js",
|
||||
"/chunks/platform.085176bd0065608cb370.hot-update.js": "/chunks/platform.085176bd0065608cb370.hot-update.js",
|
||||
"/chunks/dashboard.f475c4f86956a8e5419b.hot-update.js": "/chunks/dashboard.f475c4f86956a8e5419b.hot-update.js",
|
||||
"/chunks/app-language.1dd1423a8af00cb8c9bd.hot-update.js": "/chunks/app-language.1dd1423a8af00cb8c9bd.hot-update.js",
|
||||
"/chunks/app-language.040639168a8e73d40dec.hot-update.js": "/chunks/app-language.040639168a8e73d40dec.hot-update.js",
|
||||
"/chunks/app-language.72377b182d4f8ae86208.hot-update.js": "/chunks/app-language.72377b182d4f8ae86208.hot-update.js",
|
||||
"/chunks/app-language.d82931f09bfdd6dbc955.hot-update.js": "/chunks/app-language.d82931f09bfdd6dbc955.hot-update.js",
|
||||
"/chunks/app-language.2193825771658065f586.hot-update.js": "/chunks/app-language.2193825771658065f586.hot-update.js",
|
||||
"/chunks/app-language.cab91ceba0b383f64680.hot-update.js": "/chunks/app-language.cab91ceba0b383f64680.hot-update.js",
|
||||
"/chunks/app-language.a42ea53577d7e0f0a5fb.hot-update.js": "/chunks/app-language.a42ea53577d7e0f0a5fb.hot-update.js",
|
||||
"/chunks/app-language.09d631da1a2172e96bce.hot-update.js": "/chunks/app-language.09d631da1a2172e96bce.hot-update.js",
|
||||
"/chunks/app-appearance.690e1a1f6d721bca8cdf.hot-update.js": "/chunks/app-appearance.690e1a1f6d721bca8cdf.hot-update.js",
|
||||
"/chunks/contact-us~chunks/dynamic-page~chunks/homepage.51e62febff164672078a.hot-update.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.51e62febff164672078a.hot-update.js",
|
||||
"/chunks/app-language.439fa6fafc54298cdf2b.hot-update.js": "/chunks/app-language.439fa6fafc54298cdf2b.hot-update.js",
|
||||
"/chunks/app-language.9ee4a795d26a6e44820c.hot-update.js": "/chunks/app-language.9ee4a795d26a6e44820c.hot-update.js",
|
||||
"/js/main.8517a680822ffe9748c9.hot-update.js": "/js/main.8517a680822ffe9748c9.hot-update.js",
|
||||
"/chunks/admin.9396f79fef53ad7070fe.hot-update.js": "/chunks/admin.9396f79fef53ad7070fe.hot-update.js",
|
||||
"/chunks/platform.9396f79fef53ad7070fe.hot-update.js": "/chunks/platform.9396f79fef53ad7070fe.hot-update.js"
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
864
resources/js/components/Others/CreateLanguage.vue
Normal file
864
resources/js/components/Others/CreateLanguage.vue
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
115
resources/js/components/Others/Forms/SearchInput.vue
Normal file
115
resources/js/components/Others/Forms/SearchInput.vue
Normal file
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
20
resources/js/helpers.js
vendored
20
resources/js/helpers.js
vendored
@@ -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 : ''
|
||||
}
|
||||
|
||||
10
resources/js/i18n/index.js
vendored
10
resources/js/i18n/index.js
vendored
@@ -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;
|
||||
|
||||
@@ -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": "您可能上传了一个错误的文件!"
|
||||
}
|
||||
}
|
||||
@@ -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 don’t 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 don’t 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 don’t 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": "That’s 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": "Don’t 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, I’m 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!"
|
||||
}
|
||||
}
|
||||
@@ -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!"
|
||||
}
|
||||
}
|
||||
2
resources/js/main.js
vendored
2
resources/js/main.js
vendored
@@ -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";
|
||||
|
||||
79
resources/js/router.js
vendored
79
resources/js/router.js
vendored
@@ -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'
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
33
resources/js/store/modules/app.js
vendored
33
resources/js/store/modules/app.js
vendored
@@ -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 = {
|
||||
|
||||
4
resources/js/store/modules/sharing.js
vendored
4
resources/js/store/modules/sharing.js
vendored
@@ -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',
|
||||
},
|
||||
|
||||
@@ -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(() => {
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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">
|
||||
|
||||
365
resources/js/views/Admin/Languages/Language.vue
Normal file
365
resources/js/views/Admin/Languages/Language.vue
Normal file
@@ -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>
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<keep-alive :include="['Admin', 'Users']">
|
||||
<router-view :class="{'is-scaled-down': isScaledDown}" />
|
||||
</keep-alive>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user