From a8457cf261d486a83405250437324369fb42ef43 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Mon, 11 Jan 2021 15:36:41 +0100 Subject: [PATCH 01/40] first commit --- .../Language/LanguageController.php | 46 ++++++ app/Language.php | 18 +++ app/LanguageString.php | 12 ++ ...21_01_09_130434_create_languages_table.php | 32 ++++ ...1_01_09_152048_create_language_strings.php | 34 +++++ public/mix-manifest.json | 141 ++++++++++-------- routes/api.php | 5 + 7 files changed, 225 insertions(+), 63 deletions(-) create mode 100644 app/Http/Controllers/Language/LanguageController.php create mode 100644 app/Language.php create mode 100644 app/LanguageString.php create mode 100644 database/migrations/2021_01_09_130434_create_languages_table.php create mode 100644 database/migrations/2021_01_09_152048_create_language_strings.php diff --git a/app/Http/Controllers/Language/LanguageController.php b/app/Http/Controllers/Language/LanguageController.php new file mode 100644 index 00000000..00f53fd5 --- /dev/null +++ b/app/Http/Controllers/Language/LanguageController.php @@ -0,0 +1,46 @@ +with('languegeStrings')->first(); + } + + public function update(Request $request) + { + // Check if is demo + if (env('APP_DEMO')) { + return Demo::response_204(); + } + + $lang = Language::where('locale', $request->input('locale'))->first(); + + foreach($request->input('language') as $language) + { + + // If key with lang already exist update, if no crate + LanguageString::updateOrCreate(['key' => $language['key'], + 'lang' =>$lang->locale + ], [ + 'language_id' => $lang->id, + 'value' =>$language['value'] + ]); + } + + return response('Done', 204); + } + + public function all_languages () + { + return Language::all(); + } +} diff --git a/app/Language.php b/app/Language.php new file mode 100644 index 00000000..efb9e595 --- /dev/null +++ b/app/Language.php @@ -0,0 +1,18 @@ +hasMany('App\LanguageString', 'language_id', 'id'); + } +} diff --git a/app/LanguageString.php b/app/LanguageString.php new file mode 100644 index 00000000..1e18c0a5 --- /dev/null +++ b/app/LanguageString.php @@ -0,0 +1,12 @@ +bigIncrements('id'); + $table->string('name'); + $table->string('locale')->unique(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('languages'); + } +} diff --git a/database/migrations/2021_01_09_152048_create_language_strings.php b/database/migrations/2021_01_09_152048_create_language_strings.php new file mode 100644 index 00000000..e8b156a7 --- /dev/null +++ b/database/migrations/2021_01_09_152048_create_language_strings.php @@ -0,0 +1,34 @@ +bigIncrements('id'); + $table->bigInteger('language_id'); + $table->string('key'); + $table->longText('value'); + $table->string('lang'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('language_strings'); + } +} diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 01f6edbc..6a90e327 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,65 +1,80 @@ { - "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=28609ddbecc1f1fa2c9f", - "/js/main.js": "/js/main.js?id=baa9e433dc272dec4b2a", - "/css/app.css": "/css/app.css?id=8f6d5dcb7110a726e142", - "/chunks/admin.js": "/chunks/admin.js?id=60df31e17e9a453717dc", - "/chunks/admin-account.js": "/chunks/admin-account.js?id=ab97f01586b286e0bba2", - "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=cbcbdb5159db1fdef0fe", - "/chunks/app-billings.js": "/chunks/app-billings.js?id=2a85f4c8ad09b50f4358", - "/chunks/app-email.js": "/chunks/app-email.js?id=49806a5c914ca1a14bff", - "/chunks/app-index.js": "/chunks/app-index.js?id=ff6fb3cb1780d6ea76f2", - "/chunks/app-others.js": "/chunks/app-others.js?id=6eb162d433e0b9b8b7b2", - "/chunks/app-payments.js": "/chunks/app-payments.js?id=ad822a37d1d7c6e99a08", - "/chunks/app-settings.js": "/chunks/app-settings.js?id=e23a68dba034c047ff44", - "/chunks/app-setup.js": "/chunks/app-setup.js?id=c1c6fcc091a248b10060", - "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=0e1d52490ae1b9e56c74", - "/chunks/contact-us.js": "/chunks/contact-us.js?id=a5150dcf81c8e1ab23a4", - "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=58c543c4f92b5ca9a284", - "/chunks/dashboard.js": "/chunks/dashboard.js?id=256a9fc56ca1e81507cf", - "/chunks/database.js": "/chunks/database.js?id=45630822140f0f9d8fb5", - "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=08a0c2de8f93e0222600", - "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=be1c6cf5bbedf5c987da", - "/chunks/files.js": "/chunks/files.js?id=e182df6a47e8764f428a", - "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=7ff98232e7b4cc5d2c2a", - "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=d6ff4604fd61fd8a081d", - "/chunks/invoices.js": "/chunks/invoices.js?id=656daf3bc5b893a94a3c", - "/chunks/landing-page.js": "/chunks/landing-page.js?id=9b500c8f5f2de6ae01b3", - "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=53d4f9c58bdac1e568c7", - "/chunks/page-edit.js": "/chunks/page-edit.js?id=682b2836ee0726d72409", - "/chunks/pages.js": "/chunks/pages.js?id=057a23ae05c1272fbc4a", - "/chunks/plan.js": "/chunks/plan.js?id=d679b2c4e3dafe7cb4de", - "/chunks/plan-create.js": "/chunks/plan-create.js?id=921149e0082c663f0ce8", - "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=daff73302efdfacc542a", - "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=3047e82dffef9a9a5f36", - "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=d46857048beab30edb45", - "/chunks/plans.js": "/chunks/plans.js?id=59e044f4c96b8b23146c", - "/chunks/profile.js": "/chunks/profile.js?id=a71f52eb082c5173b37e", - "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=7ef575dcdf8d8cce1781", - "/chunks/settings.js": "/chunks/settings.js?id=e92a372ac6714092f999", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=8e425a5fcac0dfed8979", - "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=124785707d6d7eefc088", - "/chunks/settings-password.js": "/chunks/settings-password.js?id=f7b86ce4daef5d65b9c7", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=e470dc96089d86689f74", - "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=d74048cf27bfd83ecacb", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=754550f7d1abe0678d00", - "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=47090233afc7b0cdf855", - "/chunks/shared-files.js": "/chunks/shared-files.js?id=adbeabe4eee0cdaefbf4", - "/chunks/shared-page.js": "/chunks/shared-page.js?id=691e43731207990aeef3", - "/chunks/sign-in.js": "/chunks/sign-in.js?id=ec080714b24154cf1081", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=0d8b571bcf5a54f073fd", - "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=1855b3385d413077987b", - "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=8f7dd3b0a9efd8b23cb6", - "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=5d6baf6541a2045e07d4", - "/chunks/upgrade.js": "/chunks/upgrade.js?id=5b8044541a28db10a800", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=a7aac734e0697c974314", - "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=b5d285ace19d55d6caba", - "/chunks/user.js": "/chunks/user.js?id=a22678762221f8ece00f", - "/chunks/user-create.js": "/chunks/user-create.js?id=d2c5a7a23e892ea0b74f", - "/chunks/user-delete.js": "/chunks/user-delete.js?id=97382205d44cc82a7362", - "/chunks/user-detail.js": "/chunks/user-detail.js?id=368fa9dff628423894ea", - "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=25a90c334e0edcf8497a", - "/chunks/user-password.js": "/chunks/user-password.js?id=66ca2fe7b5f27aea03b4", - "/chunks/user-storage.js": "/chunks/user-storage.js?id=1197c179b53abd596800", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=df85e3892af3ff39a586", - "/chunks/users.js": "/chunks/users.js?id=1dd3a0e5ea6717816879" + "/js/main.js": "/js/main.js", + "/css/app.css": "/css/app.css", + "/chunks/admin.js": "/chunks/admin.js?id=d9ef79cabf24df304657", + "/chunks/admin-account.js": "/chunks/admin-account.js?id=63c04ed6eb66b99be097", + "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=07b0ad73181498d46930", + "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js?id=6cb8c3f7a9aed769ec61", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js?id=7480293537e480966ae0", + "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=b99a5c881b7f15a7e8c5", + "/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=9e50edacd8630aa6fc22", + "/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=b6dbd27dc777d0878f4b", + "/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=d066e2c40f4c0ca68bf1", + "/chunks/app-billings.js": "/chunks/app-billings.js?id=aac5bd51067578358164", + "/chunks/app-email.js": "/chunks/app-email.js?id=9d1631b19f6492b8cae4", + "/chunks/app-index.js": "/chunks/app-index.js?id=ec7605e0fcf922be3dbc", + "/chunks/app-others.js": "/chunks/app-others.js?id=44efcfb317747ff3b508", + "/chunks/app-payments.js": "/chunks/app-payments.js?id=187ecc16f9f7fbc4ccac", + "/chunks/app-settings.js": "/chunks/app-settings.js?id=033223b2f39c72c71a73", + "/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=52e8a931f975c4e03a3c", + "/chunks/app-setup.js": "/chunks/app-setup.js?id=8038cc956f309a321a7c", + "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=bbfc290b50cebb202228", + "/chunks/contact-us.js": "/chunks/contact-us.js?id=4dc0385ff5abe06d164e", + "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=a4b8a7017c82de28296b", + "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=108dcc4b5af4c973be56", + "/chunks/dashboard.js": "/chunks/dashboard.js?id=0feeb46fa2549c8d4be4", + "/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=cc1b4cbd4aa7f70151f7", + "/chunks/database.js": "/chunks/database.js?id=ce57f3e69798319aab7b", + "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=f7ff36abf37571173944", + "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=48efd0b887fbc804ac90", + "/chunks/files.js": "/chunks/files.js?id=6a283c2c9f8a02500bc6", + "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=b646ec02fb9d6a497e74", + "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=b5bb396ab8a7b0dd3483", + "/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=47ade53389e84dd64310", + "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=d5e39543eeb619cb5513", + "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=f037ea11689d01ea489e", + "/chunks/invoices.js": "/chunks/invoices.js?id=0dddc007dba47ac5785e", + "/chunks/landing-page.js": "/chunks/landing-page.js?id=963140915655ff33f611", + "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=8c8ee101f3445e086040", + "/chunks/page-edit.js": "/chunks/page-edit.js?id=0952cc3fb3aa4797a679", + "/chunks/pages.js": "/chunks/pages.js?id=313adabcad5dafb0f932", + "/chunks/plan.js": "/chunks/plan.js?id=41d7a74e57ac07ce3619", + "/chunks/plan-create.js": "/chunks/plan-create.js?id=8d1c89c91afa65224225", + "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=4da54a76628aef67ea3e", + "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=e608674e1719be65fe6f", + "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=8655313c7b71b1019c8f", + "/chunks/plans.js": "/chunks/plans.js?id=d6d92de642403caa999b", + "/chunks/profile.js": "/chunks/profile.js?id=1e629aa55540ed106ce7", + "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=f9e2ea1515204b5c63b6", + "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=91a470e84a34587f3944", + "/chunks/settings.js": "/chunks/settings.js?id=87d29c7fd4e0e6f1a3bd", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=8bc4707d554ffca037a1", + "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=f5c1b720a5b12060b83b", + "/chunks/settings-password.js": "/chunks/settings-password.js?id=0229d51aca95ffc75902", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=6645f6fa891ede787f43", + "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=0ec77e47b2622ee5e253", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=00c6bca64820c4fd3a89", + "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=b671f4f3198119b48449", + "/chunks/shared-files.js": "/chunks/shared-files.js?id=b13068f12911fbf79f74", + "/chunks/shared-page.js": "/chunks/shared-page.js?id=b22b072500c256e062e5", + "/chunks/sign-in.js": "/chunks/sign-in.js?id=0212907c9bf1cdbd99ed", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=91001c0d2c2522eb0d03", + "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=0e90002c41282e286785", + "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=6ceb34852ec8a0280aef", + "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=7176521fbf0047110ae1", + "/chunks/upgrade.js": "/chunks/upgrade.js?id=84fa2517046334070313", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=816be29562b9052cabb1", + "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=a589c99d29f03bc71487", + "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=8bf12e8b93c7eaee4171", + "/chunks/user.js": "/chunks/user.js?id=bdb8a51693952859f5e1", + "/chunks/user-create.js": "/chunks/user-create.js?id=d0056a5db2089bc05508", + "/chunks/user-delete.js": "/chunks/user-delete.js?id=91d17d44835dd32ec36f", + "/chunks/user-detail.js": "/chunks/user-detail.js?id=b5b474dd8fea7b99c766", + "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=68ea653f6d345e469307", + "/chunks/user-password.js": "/chunks/user-password.js?id=ac51d17a4aa7ae50bc88", + "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=34603496ceacb8bd2da3", + "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", + "/js/main.1b85a59ba9d22abe3c14.hot-update.js": "/js/main.1b85a59ba9d22abe3c14.hot-update.js", + "/js/main.f447a679da701dd9acd7.hot-update.js": "/js/main.f447a679da701dd9acd7.hot-update.js" } diff --git a/routes/api.php b/routes/api.php index b42b1cbd..191f7654 100644 --- a/routes/api.php +++ b/routes/api.php @@ -168,6 +168,11 @@ Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:m Route::patch('/settings', 'SettingController@update'); Route::get('/settings', 'SettingController@show'); Route::get('/flush-cache', 'AppFunctionsController@flush_cache'); + + // Language + Route::patch('/language/update', 'Language\LanguageController@update'); + Route::get('/language/{language}/strings', 'Language\LanguageController@show_strings'); + Route::get('/language/get-all', 'Language\LanguageController@all_languages'); }); // Protected sharing routes for authenticated user From 29fce75d35d87c784d9bcdf32032a3c036210247 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Tue, 9 Feb 2021 16:22:06 +0100 Subject: [PATCH 02/40] change language id to uuid --- .../Language/LanguageController.php | 65 +++++++++++++++---- app/Language.php | 15 ++++- app/LanguageString.php | 4 +- ...21_01_09_130434_create_languages_table.php | 2 +- ...1_01_09_152048_create_language_strings.php | 2 +- public/mix-manifest.json | 46 ++++++++++++- routes/api.php | 7 +- 7 files changed, 121 insertions(+), 20 deletions(-) diff --git a/app/Http/Controllers/Language/LanguageController.php b/app/Http/Controllers/Language/LanguageController.php index 00f53fd5..12791bb6 100644 --- a/app/Http/Controllers/Language/LanguageController.php +++ b/app/Http/Controllers/Language/LanguageController.php @@ -10,12 +10,47 @@ use App\Http\Controllers\Controller; class LanguageController extends Controller { - public function show_strings($language) + /** + * Create new language + * + * @param Request $request + * @return string + */ + public function create(Request $request) + { + // Check if is demo + if (env('APP_DEMO')) { + return Demo::response_204(); + } + + // Create new language + $language = Language::create([ + 'name' => $request->name, + 'locale' => $request->locale + ]); + + // Return created language + return $language; + } + + /** + * Get all language strings + * + * @param $language + * @return string + */ + public function get_language_strings($language) { return Language::where('locale', $language)->with('languegeStrings')->first(); } - - public function update(Request $request) + + /** + * Update strings for language + * + * @param Request $request + * @return ResponseFactory|\Illuminate\Http\Response + */ + public function update_string(Request $request) { // Check if is demo if (env('APP_DEMO')) { @@ -24,22 +59,30 @@ class LanguageController extends Controller $lang = Language::where('locale', $request->input('locale'))->first(); - foreach($request->input('language') as $language) + // dd($lang->id); + + foreach($request->input('language') as $language) { // If key with lang already exist update, if no crate - LanguageString::updateOrCreate(['key' => $language['key'], - 'lang' =>$lang->locale - ], [ - 'language_id' => $lang->id, - 'value' =>$language['value'] - ]); + LanguageString::updateOrCreate([ + 'language_id' => $lang->id, + 'key' => $language['key'], + 'lang' => $lang->locale, + ],[ + 'value' => $language['value'] + ]); } return response('Done', 204); } - public function all_languages () + /** + * Get all languages + * + * @return string + */ + public function get_languages () { return Language::all(); } diff --git a/app/Language.php b/app/Language.php index efb9e595..580c7c31 100644 --- a/app/Language.php +++ b/app/Language.php @@ -3,14 +3,27 @@ namespace App; use App\LanguageString; +use Illuminate\Support\Str; use Illuminate\Database\Eloquent\Model; class Language extends Model { - public $timestamps = false; protected $guarded = ['id']; + protected $keyType = 'string'; + + public $incrementing = false ; + + public $timestamps = false; + + protected static function booted() + { + static::creating(function($model) { + $model->id = Str::uuid(); + }); + } + public function languegeStrings() { return $this->hasMany('App\LanguageString', 'language_id', 'id'); diff --git a/app/LanguageString.php b/app/LanguageString.php index 1e18c0a5..e0af90eb 100644 --- a/app/LanguageString.php +++ b/app/LanguageString.php @@ -8,5 +8,7 @@ class LanguageString extends Model { public $timestamps = false; - protected $guarded = ['id']; + protected $fillable = ['value', 'language_id' ,'key', 'lang']; + + } diff --git a/database/migrations/2021_01_09_130434_create_languages_table.php b/database/migrations/2021_01_09_130434_create_languages_table.php index 4a2b2ef3..e19a0c7d 100644 --- a/database/migrations/2021_01_09_130434_create_languages_table.php +++ b/database/migrations/2021_01_09_130434_create_languages_table.php @@ -14,7 +14,7 @@ class CreateLanguagesTable extends Migration public function up() { Schema::create('languages', function (Blueprint $table) { - $table->bigIncrements('id'); + $table->uuid('id')->primary(); $table->string('name'); $table->string('locale')->unique(); }); diff --git a/database/migrations/2021_01_09_152048_create_language_strings.php b/database/migrations/2021_01_09_152048_create_language_strings.php index e8b156a7..768fc0dd 100644 --- a/database/migrations/2021_01_09_152048_create_language_strings.php +++ b/database/migrations/2021_01_09_152048_create_language_strings.php @@ -15,7 +15,7 @@ class CreateLanguageStrings extends Migration { Schema::create('language_strings', function (Blueprint $table) { $table->bigIncrements('id'); - $table->bigInteger('language_id'); + $table->uuid('language_id'); $table->string('key'); $table->longText('value'); $table->string('lang'); diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 6a90e327..b5291290 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -75,6 +75,48 @@ "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=34603496ceacb8bd2da3", "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", - "/js/main.1b85a59ba9d22abe3c14.hot-update.js": "/js/main.1b85a59ba9d22abe3c14.hot-update.js", - "/js/main.f447a679da701dd9acd7.hot-update.js": "/js/main.f447a679da701dd9acd7.hot-update.js" + "/chunks/files~chunks/shared-files~chunks/shared-page.9c00a577ed3bec474797.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9c00a577ed3bec474797.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.9f3e82e178713f15df4d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9f3e82e178713f15df4d.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.ad4c905a2ac6b1145710.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.ad4c905a2ac6b1145710.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.c8a6e4c3d77f2866a449.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c8a6e4c3d77f2866a449.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.9cc2c53635c9285c9bf4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9cc2c53635c9285c9bf4.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.91e84fcc65331ffb8a9d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.91e84fcc65331ffb8a9d.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.446e9414658ffa0b595c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.446e9414658ffa0b595c.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.c90898a702ee307a1072.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c90898a702ee307a1072.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.3bcd1a35fc099de2db3b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.3bcd1a35fc099de2db3b.hot-update.js", + "/js/main.6471eb760893f2ccd583.hot-update.js": "/js/main.6471eb760893f2ccd583.hot-update.js", + "/chunks/admin.6471eb760893f2ccd583.hot-update.js": "/chunks/admin.6471eb760893f2ccd583.hot-update.js", + "/chunks/admin-account.6471eb760893f2ccd583.hot-update.js": "/chunks/admin-account.6471eb760893f2ccd583.hot-update.js", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6471eb760893f2ccd583.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-index.6471eb760893f2ccd583.hot-update.js": "/chunks/app-index.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-settings.6471eb760893f2ccd583.hot-update.js": "/chunks/app-settings.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-setup.6471eb760893f2ccd583.hot-update.js": "/chunks/app-setup.6471eb760893f2ccd583.hot-update.js", + "/chunks/billings-detail.6471eb760893f2ccd583.hot-update.js": "/chunks/billings-detail.6471eb760893f2ccd583.hot-update.js", + "/chunks/contact-us.6471eb760893f2ccd583.hot-update.js": "/chunks/contact-us.6471eb760893f2ccd583.hot-update.js", + "/chunks/dashboard.6471eb760893f2ccd583.hot-update.js": "/chunks/dashboard.6471eb760893f2ccd583.hot-update.js", + "/chunks/database.6471eb760893f2ccd583.hot-update.js": "/chunks/database.6471eb760893f2ccd583.hot-update.js", + "/chunks/environment-setup.6471eb760893f2ccd583.hot-update.js": "/chunks/environment-setup.6471eb760893f2ccd583.hot-update.js", + "/chunks/files.6471eb760893f2ccd583.hot-update.js": "/chunks/files.6471eb760893f2ccd583.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/installation-disclaimer.6471eb760893f2ccd583.hot-update.js": "/chunks/installation-disclaimer.6471eb760893f2ccd583.hot-update.js", + "/chunks/landing-page.6471eb760893f2ccd583.hot-update.js": "/chunks/landing-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/plan-create.6471eb760893f2ccd583.hot-update.js": "/chunks/plan-create.6471eb760893f2ccd583.hot-update.js", + "/chunks/plan-subscribers.6471eb760893f2ccd583.hot-update.js": "/chunks/plan-subscribers.6471eb760893f2ccd583.hot-update.js", + "/chunks/profile.6471eb760893f2ccd583.hot-update.js": "/chunks/profile.6471eb760893f2ccd583.hot-update.js", + "/chunks/purchase-code.6471eb760893f2ccd583.hot-update.js": "/chunks/purchase-code.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings.6471eb760893f2ccd583.hot-update.js": "/chunks/settings.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-create-payment-methods.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-create-payment-methods.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-invoices.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-invoices.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-payment-methods.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-payment-methods.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-subscription.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-subscription.6471eb760893f2ccd583.hot-update.js", + "/chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/shared-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/sign-in.6471eb760893f2ccd583.hot-update.js": "/chunks/sign-in.6471eb760893f2ccd583.hot-update.js", + "/chunks/sign-up.6471eb760893f2ccd583.hot-update.js": "/chunks/sign-up.6471eb760893f2ccd583.hot-update.js", + "/chunks/stripe-credentials.6471eb760893f2ccd583.hot-update.js": "/chunks/stripe-credentials.6471eb760893f2ccd583.hot-update.js", + "/chunks/subscription-plans.6471eb760893f2ccd583.hot-update.js": "/chunks/subscription-plans.6471eb760893f2ccd583.hot-update.js", + "/chunks/upgrade.6471eb760893f2ccd583.hot-update.js": "/chunks/upgrade.6471eb760893f2ccd583.hot-update.js", + "/chunks/upgrade-billing.6471eb760893f2ccd583.hot-update.js": "/chunks/upgrade-billing.6471eb760893f2ccd583.hot-update.js", + "/chunks/user-invoices.6471eb760893f2ccd583.hot-update.js": "/chunks/user-invoices.6471eb760893f2ccd583.hot-update.js", + "/chunks/user-subscription.6471eb760893f2ccd583.hot-update.js": "/chunks/user-subscription.6471eb760893f2ccd583.hot-update.js" } diff --git a/routes/api.php b/routes/api.php index 191f7654..6bd9183f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -170,9 +170,10 @@ Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:m Route::get('/flush-cache', 'AppFunctionsController@flush_cache'); // Language - Route::patch('/language/update', 'Language\LanguageController@update'); - Route::get('/language/{language}/strings', 'Language\LanguageController@show_strings'); - Route::get('/language/get-all', 'Language\LanguageController@all_languages'); + Route::post('/language/create', 'Language\LanguageController@create'); + Route::patch('/language/update', 'Language\LanguageController@update_string'); + Route::get('/language/{language}/strings', 'Language\LanguageController@get_language_strings'); + Route::get('/language/get', 'Language\LanguageController@get_languages'); }); // Protected sharing routes for authenticated user From 67cf7a6ced2600dacf470825a572369b1b106447 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Thu, 11 Feb 2021 17:11:59 +0100 Subject: [PATCH 03/40] change names of routes --- .../Language/LanguageController.php | 51 ++++++------ app/Language.php | 4 +- public/mix-manifest.json | 79 ++++++++----------- routes/api.php | 6 +- 4 files changed, 65 insertions(+), 75 deletions(-) diff --git a/app/Http/Controllers/Language/LanguageController.php b/app/Http/Controllers/Language/LanguageController.php index 12791bb6..d7553b96 100644 --- a/app/Http/Controllers/Language/LanguageController.php +++ b/app/Http/Controllers/Language/LanguageController.php @@ -10,13 +10,34 @@ use App\Http\Controllers\Controller; class LanguageController extends Controller { + /** + * Get all languages + * + * @return string + */ + public function get_languages () + { + return Language::all(); + } + + /** + * Get all language strings + * + * @param $language + * @return string + */ + public function get_language_strings($language) + { + return Language::where('locale', $language)->with('languegeStrings')->first(); + } + /** * Create new language * * @param Request $request * @return string */ - public function create(Request $request) + public function create_language(Request $request) { // Check if is demo if (env('APP_DEMO')) { @@ -33,17 +54,6 @@ class LanguageController extends Controller return $language; } - /** - * Get all language strings - * - * @param $language - * @return string - */ - public function get_language_strings($language) - { - return Language::where('locale', $language)->with('languegeStrings')->first(); - } - /** * Update strings for language * @@ -57,18 +67,17 @@ class LanguageController extends Controller return Demo::response_204(); } + // Get language $lang = Language::where('locale', $request->input('locale'))->first(); - // dd($lang->id); - foreach($request->input('language') as $language) { // If key with lang already exist update, if no crate LanguageString::updateOrCreate([ 'language_id' => $lang->id, - 'key' => $language['key'], - 'lang' => $lang->locale, + 'key' => $language['key'], + 'lang' => $lang->locale, ],[ 'value' => $language['value'] ]); @@ -76,14 +85,4 @@ class LanguageController extends Controller return response('Done', 204); } - - /** - * Get all languages - * - * @return string - */ - public function get_languages () - { - return Language::all(); - } } diff --git a/app/Language.php b/app/Language.php index 580c7c31..564afce2 100644 --- a/app/Language.php +++ b/app/Language.php @@ -19,8 +19,8 @@ class Language extends Model protected static function booted() { - static::creating(function($model) { - $model->id = Str::uuid(); + static::creating(function($language) { + $language->id = Str::uuid(); }); } diff --git a/public/mix-manifest.json b/public/mix-manifest.json index b5291290..3138b4ad 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -75,48 +75,39 @@ "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=34603496ceacb8bd2da3", "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", - "/chunks/files~chunks/shared-files~chunks/shared-page.9c00a577ed3bec474797.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9c00a577ed3bec474797.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.9f3e82e178713f15df4d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9f3e82e178713f15df4d.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.ad4c905a2ac6b1145710.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.ad4c905a2ac6b1145710.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.c8a6e4c3d77f2866a449.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c8a6e4c3d77f2866a449.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.9cc2c53635c9285c9bf4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9cc2c53635c9285c9bf4.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.91e84fcc65331ffb8a9d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.91e84fcc65331ffb8a9d.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.446e9414658ffa0b595c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.446e9414658ffa0b595c.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.c90898a702ee307a1072.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c90898a702ee307a1072.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.3bcd1a35fc099de2db3b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.3bcd1a35fc099de2db3b.hot-update.js", - "/js/main.6471eb760893f2ccd583.hot-update.js": "/js/main.6471eb760893f2ccd583.hot-update.js", - "/chunks/admin.6471eb760893f2ccd583.hot-update.js": "/chunks/admin.6471eb760893f2ccd583.hot-update.js", - "/chunks/admin-account.6471eb760893f2ccd583.hot-update.js": "/chunks/admin-account.6471eb760893f2ccd583.hot-update.js", - "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js", - "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6471eb760893f2ccd583.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6471eb760893f2ccd583.hot-update.js", - "/chunks/app-index.6471eb760893f2ccd583.hot-update.js": "/chunks/app-index.6471eb760893f2ccd583.hot-update.js", - "/chunks/app-settings.6471eb760893f2ccd583.hot-update.js": "/chunks/app-settings.6471eb760893f2ccd583.hot-update.js", - "/chunks/app-setup.6471eb760893f2ccd583.hot-update.js": "/chunks/app-setup.6471eb760893f2ccd583.hot-update.js", - "/chunks/billings-detail.6471eb760893f2ccd583.hot-update.js": "/chunks/billings-detail.6471eb760893f2ccd583.hot-update.js", - "/chunks/contact-us.6471eb760893f2ccd583.hot-update.js": "/chunks/contact-us.6471eb760893f2ccd583.hot-update.js", - "/chunks/dashboard.6471eb760893f2ccd583.hot-update.js": "/chunks/dashboard.6471eb760893f2ccd583.hot-update.js", - "/chunks/database.6471eb760893f2ccd583.hot-update.js": "/chunks/database.6471eb760893f2ccd583.hot-update.js", - "/chunks/environment-setup.6471eb760893f2ccd583.hot-update.js": "/chunks/environment-setup.6471eb760893f2ccd583.hot-update.js", - "/chunks/files.6471eb760893f2ccd583.hot-update.js": "/chunks/files.6471eb760893f2ccd583.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js", - "/chunks/installation-disclaimer.6471eb760893f2ccd583.hot-update.js": "/chunks/installation-disclaimer.6471eb760893f2ccd583.hot-update.js", - "/chunks/landing-page.6471eb760893f2ccd583.hot-update.js": "/chunks/landing-page.6471eb760893f2ccd583.hot-update.js", - "/chunks/plan-create.6471eb760893f2ccd583.hot-update.js": "/chunks/plan-create.6471eb760893f2ccd583.hot-update.js", - "/chunks/plan-subscribers.6471eb760893f2ccd583.hot-update.js": "/chunks/plan-subscribers.6471eb760893f2ccd583.hot-update.js", - "/chunks/profile.6471eb760893f2ccd583.hot-update.js": "/chunks/profile.6471eb760893f2ccd583.hot-update.js", - "/chunks/purchase-code.6471eb760893f2ccd583.hot-update.js": "/chunks/purchase-code.6471eb760893f2ccd583.hot-update.js", - "/chunks/settings.6471eb760893f2ccd583.hot-update.js": "/chunks/settings.6471eb760893f2ccd583.hot-update.js", - "/chunks/settings-create-payment-methods.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-create-payment-methods.6471eb760893f2ccd583.hot-update.js", - "/chunks/settings-invoices.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-invoices.6471eb760893f2ccd583.hot-update.js", - "/chunks/settings-payment-methods.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-payment-methods.6471eb760893f2ccd583.hot-update.js", - "/chunks/settings-subscription.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-subscription.6471eb760893f2ccd583.hot-update.js", - "/chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/shared-page.6471eb760893f2ccd583.hot-update.js", - "/chunks/sign-in.6471eb760893f2ccd583.hot-update.js": "/chunks/sign-in.6471eb760893f2ccd583.hot-update.js", - "/chunks/sign-up.6471eb760893f2ccd583.hot-update.js": "/chunks/sign-up.6471eb760893f2ccd583.hot-update.js", - "/chunks/stripe-credentials.6471eb760893f2ccd583.hot-update.js": "/chunks/stripe-credentials.6471eb760893f2ccd583.hot-update.js", - "/chunks/subscription-plans.6471eb760893f2ccd583.hot-update.js": "/chunks/subscription-plans.6471eb760893f2ccd583.hot-update.js", - "/chunks/upgrade.6471eb760893f2ccd583.hot-update.js": "/chunks/upgrade.6471eb760893f2ccd583.hot-update.js", - "/chunks/upgrade-billing.6471eb760893f2ccd583.hot-update.js": "/chunks/upgrade-billing.6471eb760893f2ccd583.hot-update.js", - "/chunks/user-invoices.6471eb760893f2ccd583.hot-update.js": "/chunks/user-invoices.6471eb760893f2ccd583.hot-update.js", - "/chunks/user-subscription.6471eb760893f2ccd583.hot-update.js": "/chunks/user-subscription.6471eb760893f2ccd583.hot-update.js" + "/js/main.e9267f5855b7b9bf8a61.hot-update.js": "/js/main.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/admin.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/admin.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/admin-account.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/admin-account.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/app-index.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-index.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/app-settings.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-settings.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/app-setup.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-setup.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/billings-detail.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/billings-detail.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/contact-us.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/contact-us.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/dashboard.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/dashboard.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/database.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/database.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/environment-setup.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/environment-setup.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/files.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/files.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/installation-disclaimer.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/installation-disclaimer.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/landing-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/landing-page.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/plan-create.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/plan-create.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/plan-subscribers.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/plan-subscribers.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/profile.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/profile.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/purchase-code.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/purchase-code.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/settings.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/settings-create-payment-methods.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-create-payment-methods.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/settings-invoices.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-invoices.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/settings-payment-methods.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-payment-methods.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/settings-subscription.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-subscription.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/sign-in.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/sign-in.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/sign-up.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/sign-up.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/stripe-credentials.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/stripe-credentials.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/subscription-plans.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/subscription-plans.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/upgrade.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/upgrade.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/upgrade-billing.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/upgrade-billing.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/user-invoices.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/user-invoices.e9267f5855b7b9bf8a61.hot-update.js", + "/chunks/user-subscription.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/user-subscription.e9267f5855b7b9bf8a61.hot-update.js" } diff --git a/routes/api.php b/routes/api.php index 6bd9183f..480db933 100644 --- a/routes/api.php +++ b/routes/api.php @@ -170,10 +170,10 @@ Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:m Route::get('/flush-cache', 'AppFunctionsController@flush_cache'); // Language - Route::post('/language/create', 'Language\LanguageController@create'); - Route::patch('/language/update', 'Language\LanguageController@update_string'); - Route::get('/language/{language}/strings', 'Language\LanguageController@get_language_strings'); + Route::post('/language/create', 'Language\LanguageController@create_language'); + Route::patch('/language/update-string', 'Language\LanguageController@update_string'); Route::get('/language/get', 'Language\LanguageController@get_languages'); + Route::get('/language/{language}/strings', 'Language\LanguageController@get_language_strings'); }); // Protected sharing routes for authenticated user From 9a1a9ee2066f460b483de4a6776fda7141f091f0 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Sun, 21 Feb 2021 12:09:24 +0100 Subject: [PATCH 04/40] add Language component --- .../Language/LanguageController.php | 28 +- app/Language.php | 2 +- config/language_strings.php | 614 ++++++++++++++++++ public/mix-manifest.json | 82 +-- .../js/components/Others/Forms/FormLabel.vue | 12 +- resources/js/i18n/lang/en.json | 6 +- resources/js/router.js | 11 + resources/js/store/modules/app.js | 41 ++ resources/js/views/Admin.vue | 11 +- .../js/views/Admin/Languages/Language.vue | 100 +++ .../views/Admin/Languages/LanguageStrings.vue | 230 +++++++ resources/views/index.blade.php | 2 + routes/api.php | 3 +- 13 files changed, 1073 insertions(+), 69 deletions(-) create mode 100644 config/language_strings.php create mode 100644 resources/js/views/Admin/Languages/Language.vue create mode 100644 resources/js/views/Admin/Languages/LanguageStrings.vue diff --git a/app/Http/Controllers/Language/LanguageController.php b/app/Http/Controllers/Language/LanguageController.php index d7553b96..985a0f49 100644 --- a/app/Http/Controllers/Language/LanguageController.php +++ b/app/Http/Controllers/Language/LanguageController.php @@ -26,9 +26,9 @@ class LanguageController extends Controller * @param $language * @return string */ - public function get_language_strings($language) + public function get_language_strings($locale) { - return Language::where('locale', $language)->with('languegeStrings')->first(); + return Language::where('locale', $locale)->with('languageStrings')->first(); } /** @@ -54,6 +54,30 @@ class LanguageController extends Controller return $language; } + /** + * Update language + * + * @param Request $request + * @param $id + * @return $language + */ + public function update_language(Request $request, $id) + { + // Check if is demo + if (env('APP_DEMO')) { + return Demo::response_204(); + } + + // Get language + $language = Language::findOrFail($id); + + // Update language + $language->update([$request->input('name') => $request->input('value')]); + + // Return updated language + return $language; + } + /** * Update strings for language * diff --git a/app/Language.php b/app/Language.php index 564afce2..35800b99 100644 --- a/app/Language.php +++ b/app/Language.php @@ -24,7 +24,7 @@ class Language extends Model }); } - public function languegeStrings() + public function languageStrings() { return $this->hasMany('App\LanguageString', 'language_id', 'id'); } diff --git a/config/language_strings.php b/config/language_strings.php new file mode 100644 index 00000000..8286ca6b --- /dev/null +++ b/config/language_strings.php @@ -0,0 +1,614 @@ + [ + "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", + "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.dashboard" => "Dashboard", + "admin_menu.invoices" => "Invoices", + "admin_menu.pages" => "Pages", + "admin_menu.plans" => "Plans", + "admin_menu.settings" => "Settings", + "admin_menu.users" => "Users", + "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_premium.link" => "Show All Plans", + "admin_page_dashboard.w_total_premium.title" => "Total Premium Users", + "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_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.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.subscription.empty" => "User don't have any subscription yet.", + "admin_page_user.subscription.interval_mo" => "Monthly", + "admin_page_user.table.action" => "Action", + "admin_page_user.table.created_at" => "Registered", + "admin_page_user.table.name" => "User", + "admin_page_user.table.plan" => "Subscription Plan", + "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.invoices" => "Invoices", + "admin_page_user.tabs.password" => "Password", + "admin_page_user.tabs.storage" => "Storage Usage", + "admin_page_user.tabs.subscription" => "Subscription", + "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.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.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 .env 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
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
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
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.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 .env file.", + "admin_settings.payments.section_payments" => "Stripe Payments", + "admin_settings.payments.stripe_create_acc" => "If you don’t have stripe account, please //dashboard.stripe.com/register\" target=\"_blank\">register here 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 Dashboard -> Developers -> Webhooks -> Add Endpoint. 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 receive all events. 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.appearance" => "Appearance", + "admin_settings.tabs.billings" => "Billings", + "admin_settings.tabs.email" => "Email", + "admin_settings.tabs.others" => "Application", + "admin_settings.tabs.payments" => "Payments", + "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.monthly_ac" => "Mo.", + "global.or" => "or", + "global.premium" => "Premium", + "global.saas" => "Services", + "global.subscription" => "Subscription", + "global.total" => "Total", + "global.upgrade_plan" => "Upgrade Plan", + "incomplete_payment.description" => "Your latest payment is incomplete. {0}", + "incomplete_payment.href" => "Please confirm your payment.", + "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.invoices" => "Invoices", + "menu.latest" => "Recent Uploads", + "menu.logout" => "Log Out", + "menu.password" => "Password", + "menu.payment_cards" => "Payment Cards", + "menu.profile" => "Profile Settings", + "menu.settings" => "Settings", + "menu.shared" => "Shared Files", + "menu.storage" => "Storage", + "menu.subscription" => "Subscription", + "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", + "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_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_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_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}?", + "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_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_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_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_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.", + "popup_passport_error.title" => "Invalid Passport Grand Client", + "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.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_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_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_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", + "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.billings" => "Billings", + "routes_title.dashboard" => "Dashboard", + "routes_title.email" => "Email", + "routes_title.invoices" => "Invoices", + "routes_title.others" => "Others", + "routes_title.page_edit" => "Edit Page", + "routes_title.pages" => "Pages", + "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.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.subscribers" => "Subscribers", + "routes_title.subscription" => "Subscription", + "routes_title.upgrade_billing" => "Billing", + "routes_title.upgrade_plan" => "Upgrade Plan", + "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", + "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", + "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 successfully sended 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.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.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.plan_created" => "Your plan was successfully created!", + "toaster.sended_password" => "You successfully send user email for reset password!", + "toaster.stripe_set" => "Your Stripe account was successfully set!", + "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_invoices.empty" => "You don't have any invoices yet.", + "user_invoices.title" => "Invoices", + "user_password.title" => "Change Your Password", + "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_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", + "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", + "user_subscription.title" => "Subscription Plan", + "validation_errors.incorrect_password" => "Sorry, you passed incorrect password =>(", + "validation_errors.wrong_image" => "You may have uploaded the wrong file, try again!" + + ] +]; \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 3138b4ad..526a9e32 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,113 +1,79 @@ { "/js/main.js": "/js/main.js", "/css/app.css": "/css/app.css", - "/chunks/admin.js": "/chunks/admin.js?id=d9ef79cabf24df304657", - "/chunks/admin-account.js": "/chunks/admin-account.js?id=63c04ed6eb66b99be097", + "/chunks/admin.js": "/chunks/admin.js?id=d0e96f9d43262195f434", + "/chunks/admin-account.js": "/chunks/admin-account.js?id=e086db78de4de0f46ad7", "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=07b0ad73181498d46930", "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js?id=6cb8c3f7a9aed769ec61", "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js?id=7480293537e480966ae0", "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=b99a5c881b7f15a7e8c5", "/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=9e50edacd8630aa6fc22", - "/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=b6dbd27dc777d0878f4b", + "/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=d951063a67002cd00366", "/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=d066e2c40f4c0ca68bf1", "/chunks/app-billings.js": "/chunks/app-billings.js?id=aac5bd51067578358164", "/chunks/app-email.js": "/chunks/app-email.js?id=9d1631b19f6492b8cae4", "/chunks/app-index.js": "/chunks/app-index.js?id=ec7605e0fcf922be3dbc", + "/chunks/app-language.js": "/chunks/app-language.js?id=6df87ae1329a978b8f75", "/chunks/app-others.js": "/chunks/app-others.js?id=44efcfb317747ff3b508", "/chunks/app-payments.js": "/chunks/app-payments.js?id=187ecc16f9f7fbc4ccac", "/chunks/app-settings.js": "/chunks/app-settings.js?id=033223b2f39c72c71a73", "/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=52e8a931f975c4e03a3c", - "/chunks/app-setup.js": "/chunks/app-setup.js?id=8038cc956f309a321a7c", - "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=bbfc290b50cebb202228", + "/chunks/app-setup.js": "/chunks/app-setup.js?id=4effad41e0f915276c1b", + "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=29d4992070355267f2c7", "/chunks/contact-us.js": "/chunks/contact-us.js?id=4dc0385ff5abe06d164e", "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=a4b8a7017c82de28296b", "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=108dcc4b5af4c973be56", "/chunks/dashboard.js": "/chunks/dashboard.js?id=0feeb46fa2549c8d4be4", "/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=cc1b4cbd4aa7f70151f7", - "/chunks/database.js": "/chunks/database.js?id=ce57f3e69798319aab7b", + "/chunks/database.js": "/chunks/database.js?id=d88dd27e1e9ef785c137", "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=f7ff36abf37571173944", - "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=48efd0b887fbc804ac90", + "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=bafe938bed9cc13ed444", "/chunks/files.js": "/chunks/files.js?id=6a283c2c9f8a02500bc6", "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=b646ec02fb9d6a497e74", "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=b5bb396ab8a7b0dd3483", "/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=47ade53389e84dd64310", "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=d5e39543eeb619cb5513", - "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=f037ea11689d01ea489e", + "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=764e5f0462c23f0a793c", "/chunks/invoices.js": "/chunks/invoices.js?id=0dddc007dba47ac5785e", "/chunks/landing-page.js": "/chunks/landing-page.js?id=963140915655ff33f611", "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=8c8ee101f3445e086040", - "/chunks/page-edit.js": "/chunks/page-edit.js?id=0952cc3fb3aa4797a679", + "/chunks/page-edit.js": "/chunks/page-edit.js?id=716d7430723b38f08cd6", "/chunks/pages.js": "/chunks/pages.js?id=313adabcad5dafb0f932", "/chunks/plan.js": "/chunks/plan.js?id=41d7a74e57ac07ce3619", - "/chunks/plan-create.js": "/chunks/plan-create.js?id=8d1c89c91afa65224225", + "/chunks/plan-create.js": "/chunks/plan-create.js?id=b22c88619acc8d699c2e", "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=4da54a76628aef67ea3e", "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=e608674e1719be65fe6f", "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=8655313c7b71b1019c8f", "/chunks/plans.js": "/chunks/plans.js?id=d6d92de642403caa999b", "/chunks/profile.js": "/chunks/profile.js?id=1e629aa55540ed106ce7", - "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=f9e2ea1515204b5c63b6", + "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=555e6cf8a4b64b2bf130", "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=91a470e84a34587f3944", "/chunks/settings.js": "/chunks/settings.js?id=87d29c7fd4e0e6f1a3bd", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=8bc4707d554ffca037a1", - "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=f5c1b720a5b12060b83b", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=01e53a56780af8a64842", + "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=11e08fa4faa935635246", "/chunks/settings-password.js": "/chunks/settings-password.js?id=0229d51aca95ffc75902", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=6645f6fa891ede787f43", - "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=0ec77e47b2622ee5e253", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=00c6bca64820c4fd3a89", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=3bce5589787fcb1049d6", + "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=c597872e1ac17c09700d", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=1f07938bfda50c1d9ab2", "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=b671f4f3198119b48449", "/chunks/shared-files.js": "/chunks/shared-files.js?id=b13068f12911fbf79f74", "/chunks/shared-page.js": "/chunks/shared-page.js?id=b22b072500c256e062e5", "/chunks/sign-in.js": "/chunks/sign-in.js?id=0212907c9bf1cdbd99ed", "/chunks/sign-up.js": "/chunks/sign-up.js?id=91001c0d2c2522eb0d03", - "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=0e90002c41282e286785", - "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=6ceb34852ec8a0280aef", + "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=6272837c1fa4cebc7d6b", + "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=298abbbbe8c02e2caa20", "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=7176521fbf0047110ae1", - "/chunks/upgrade.js": "/chunks/upgrade.js?id=84fa2517046334070313", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=816be29562b9052cabb1", + "/chunks/upgrade.js": "/chunks/upgrade.js?id=723700a8762b54314668", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=715b17e9c6a1f6aff708", "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=a589c99d29f03bc71487", "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=8bf12e8b93c7eaee4171", "/chunks/user.js": "/chunks/user.js?id=bdb8a51693952859f5e1", - "/chunks/user-create.js": "/chunks/user-create.js?id=d0056a5db2089bc05508", + "/chunks/user-create.js": "/chunks/user-create.js?id=499fa0f0dca50c9e4e51", "/chunks/user-delete.js": "/chunks/user-delete.js?id=91d17d44835dd32ec36f", "/chunks/user-detail.js": "/chunks/user-detail.js?id=b5b474dd8fea7b99c766", "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=68ea653f6d345e469307", "/chunks/user-password.js": "/chunks/user-password.js?id=ac51d17a4aa7ae50bc88", "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=34603496ceacb8bd2da3", - "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", - "/js/main.e9267f5855b7b9bf8a61.hot-update.js": "/js/main.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/admin.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/admin.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/admin-account.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/admin-account.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/app-index.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-index.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/app-settings.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-settings.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/app-setup.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/app-setup.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/billings-detail.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/billings-detail.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/contact-us.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/contact-us.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/dashboard.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/dashboard.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/database.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/database.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/environment-setup.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/environment-setup.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/files.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/files.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/installation-disclaimer.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/installation-disclaimer.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/landing-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/landing-page.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/plan-create.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/plan-create.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/plan-subscribers.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/plan-subscribers.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/profile.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/profile.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/purchase-code.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/purchase-code.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/settings.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/settings-create-payment-methods.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-create-payment-methods.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/settings-invoices.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-invoices.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/settings-payment-methods.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-payment-methods.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/settings-subscription.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/settings-subscription.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/shared-page.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/sign-in.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/sign-in.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/sign-up.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/sign-up.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/stripe-credentials.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/stripe-credentials.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/subscription-plans.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/subscription-plans.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/upgrade.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/upgrade.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/upgrade-billing.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/upgrade-billing.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/user-invoices.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/user-invoices.e9267f5855b7b9bf8a61.hot-update.js", - "/chunks/user-subscription.e9267f5855b7b9bf8a61.hot-update.js": "/chunks/user-subscription.e9267f5855b7b9bf8a61.hot-update.js" + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=bc0934de44055596bba6", + "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c" } diff --git a/resources/js/components/Others/Forms/FormLabel.vue b/resources/js/components/Others/Forms/FormLabel.vue index ce1c3980..da9f454e 100644 --- a/resources/js/components/Others/Forms/FormLabel.vue +++ b/resources/js/components/Others/Forms/FormLabel.vue @@ -1,6 +1,7 @@ @@ -30,7 +33,8 @@ .icon { margin-right: 10px; - path { + path, + circle { stroke: $theme; } } diff --git a/resources/js/i18n/lang/en.json b/resources/js/i18n/lang/en.json index 83c8e385..30ed361a 100644 --- a/resources/js/i18n/lang/en.json +++ b/resources/js/i18n/lang/en.json @@ -25,7 +25,8 @@ "pages": "Pages", "plans": "Plans", "settings": "Settings", - "users": "Users" + "users": "Users", + "language": "Language" }, "admin_page_dashboard": { "backer_button": "Become a Backer", @@ -662,7 +663,8 @@ "users_list": "User Management", "users_password": "Password", "users_storage_usage": "Storage Usage", - "users_user": "User" + "users_user": "User", + "language": "Language" }, "rows": { "card": { diff --git a/resources/js/router.js b/resources/js/router.js index e9f282f8..ccca7125 100644 --- a/resources/js/router.js +++ b/resources/js/router.js @@ -284,6 +284,17 @@ const routesAdmin = [ }, ] }, + + { + name: 'Language', + path: '/admin/language', + component: () => + import(/* webpackChunkName: "chunks/app-language" */ './views/Admin/Languages/Language'), + meta: { + requiresAuth: true, + title: i18n.t('routes_title.language') + }, + } ] }, { diff --git a/resources/js/store/modules/app.js b/resources/js/store/modules/app.js index 53f58fe4..d6372c63 100644 --- a/resources/js/store/modules/app.js +++ b/resources/js/store/modules/app.js @@ -1,4 +1,5 @@ import i18n from '@/i18n/index' +import Axios from 'axios' const defaultState = { fileInfoPanelVisible: localStorage.getItem('file_info_visibility') == 'true' || false, @@ -8,6 +9,10 @@ const defaultState = { authorized: undefined, homeDirectory: undefined, requestedPlan: undefined, + languages: { + allLanguages: undefined, + strings: undefined, + }, sorting: { sort: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).sort : 'DESC', field: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).field : 'created_at', @@ -841,6 +846,35 @@ const defaultState = { ], } const actions = { + getLanguages: ({commit, state}) => { + + return new Promise((resolve, reject) => { + + axios + .get('/api/language/get') + .then((response) => { + commit('LOAD_LANGUAGES', response.data) + }) + .catch(() => Vue.prototype.$isSomethingWrong()) + .finally(() => { + resolve(true) + }) + }) + }, + getLanguageStrings: ({ commit }, language) => { + return new Promise((resolve, reject) => { + + axios + .get(`/api/language/${language.locale}/strings`) + .then(response => { + commit('LOAD_LANGUAGE_STRINGS', response.data) + }) + .catch(() => Vue.prototype.$isSomethingWrong()) + .finally(() => { + resolve(true) + }) + }) + }, changePreviewType: ({commit, state}, preview) => { // Get preview type @@ -865,6 +899,12 @@ const actions = { }, } const mutations = { + LOAD_LANGUAGE_STRINGS (state, data) { + state.languages.strings = data + }, + LOAD_LANGUAGES(state, data) { + state.languages.allLanguages = data + }, UPDATE_SORTING(state) { state.sorting.field = JSON.parse(localStorage.getItem('sorting')).field state.sorting.sort = JSON.parse(localStorage.getItem('sorting')).sort @@ -906,6 +946,7 @@ const getters = { requestedPlan: state => state.requestedPlan, currencyList: state => state.currencyList, countries: state => state.countries, + languages: state => state.languages, api: state => state.config.api, config: state => state.config, index: state => state.index, diff --git a/resources/js/views/Admin.vue b/resources/js/views/Admin.vue index 12ef9d51..f72d0d9d 100644 --- a/resources/js/views/Admin.vue +++ b/resources/js/views/Admin.vue @@ -30,6 +30,14 @@ {{ $t('admin_menu.settings') }} + +
+ +
+
+ {{ $t('admin_menu.language') }} +
+
@@ -69,7 +77,7 @@ diff --git a/resources/js/views/Admin/Languages/Language.vue b/resources/js/views/Admin/Languages/Language.vue new file mode 100644 index 00000000..6eec3ad0 --- /dev/null +++ b/resources/js/views/Admin/Languages/Language.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/resources/js/views/Admin/Languages/LanguageStrings.vue b/resources/js/views/Admin/Languages/LanguageStrings.vue new file mode 100644 index 00000000..d639849b --- /dev/null +++ b/resources/js/views/Admin/Languages/LanguageStrings.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index ce6ee48f..58f8b784 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -69,6 +69,8 @@ latest_upgrade: '{{ isset($settings->latest_upgrade) && $settings->latest_upgrade ? $settings->latest_upgrade : null }}', chunkSize: {{ format_bytes(config('vuefilemanager.chunk_size')) }}, + + // language_strings: '{{ config('language_strings[test]') }}', } diff --git a/routes/api.php b/routes/api.php index 480db933..bd43873b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -171,9 +171,10 @@ Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:m // Language Route::post('/language/create', 'Language\LanguageController@create_language'); + Route::patch('/language/{id}/update', 'Language\LanguageController@update_language'); Route::patch('/language/update-string', 'Language\LanguageController@update_string'); Route::get('/language/get', 'Language\LanguageController@get_languages'); - Route::get('/language/{language}/strings', 'Language\LanguageController@get_language_strings'); + Route::get('/language/{locale}/strings', 'Language\LanguageController@get_language_strings'); }); // Protected sharing routes for authenticated user From 1536af7a5b0e555c521aa5549ad76ed2e0dbbbe7 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Tue, 2 Mar 2021 16:58:38 +0100 Subject: [PATCH 05/40] remove id from language_strings table --- app/Language.php | 4 ++-- app/LanguageString.php | 4 +++- .../migrations/2021_01_09_152048_create_language_strings.php | 1 - 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/Language.php b/app/Language.php index 35800b99..388691f8 100644 --- a/app/Language.php +++ b/app/Language.php @@ -19,8 +19,8 @@ class Language extends Model protected static function booted() { - static::creating(function($language) { - $language->id = Str::uuid(); + static::creating(function($model) { + $model->id = Str::uuid(); }); } diff --git a/app/LanguageString.php b/app/LanguageString.php index 345e4541..0c00e0d4 100644 --- a/app/LanguageString.php +++ b/app/LanguageString.php @@ -8,7 +8,9 @@ class LanguageString extends Model { public $timestamps = false; - // public $incrementing = false; + public $primaryKey = null; + + public $incrementing = false; protected $fillable = ['value', 'language_id' ,'key', 'lang']; diff --git a/database/migrations/2021_01_09_152048_create_language_strings.php b/database/migrations/2021_01_09_152048_create_language_strings.php index 768fc0dd..55c4d18f 100644 --- a/database/migrations/2021_01_09_152048_create_language_strings.php +++ b/database/migrations/2021_01_09_152048_create_language_strings.php @@ -14,7 +14,6 @@ class CreateLanguageStrings extends Migration public function up() { Schema::create('language_strings', function (Blueprint $table) { - $table->bigIncrements('id'); $table->uuid('language_id'); $table->string('key'); $table->longText('value'); From 33fa77cd73ef49f1e5232481b1dc5c67d69433b0 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Mon, 8 Mar 2021 12:55:17 +0100 Subject: [PATCH 06/40] create Createlanguage popup, changes in LanguageController --- .../General/SetupWizardController.php | 24 + .../Language/LanguageController.php | 79 +- .../Languages/UpdateStringRequest.php | 6 +- app/Language.php | 37 +- config/language_strings.php | 1231 +++++++++-------- public/mix-manifest.json | 15 +- resources/js/App.vue | 5 + .../js/components/Others/CreateLanguage.vue | 867 ++++++++++++ resources/js/store/modules/app.js | 45 +- .../js/views/Admin/Languages/Language.vue | 194 ++- .../views/Admin/Languages/LanguageStrings.vue | 175 ++- routes/api.php | 15 +- 12 files changed, 1916 insertions(+), 777 deletions(-) create mode 100644 resources/js/components/Others/CreateLanguage.vue diff --git a/app/Http/Controllers/General/SetupWizardController.php b/app/Http/Controllers/General/SetupWizardController.php index 497acc9b..e1f62e79 100644 --- a/app/Http/Controllers/General/SetupWizardController.php +++ b/app/Http/Controllers/General/SetupWizardController.php @@ -15,6 +15,7 @@ use App\Services\StripeService; use App\Setting; use App\User; use App\UserSettings; +use App\Language; use Artisan; use Cartalyst\Stripe\Exception\UnauthorizedException; use Doctrine\DBAL\Driver\PDOException; @@ -477,6 +478,29 @@ class SetupWizardController extends Controller Page::updateOrCreate($page); }); + // Create languages & strings + $language = Language::updateOrCreate([ + 'name' => 'English', + 'locale' => 'en' + ]); + + $license = get_setting('license') === 'Extended' ? 'extended' : 'regular'; + + $language_strings = collect(config('language_strings.' . $license)); + + $strings = $language_strings->map(function ($value , $key) use($language) { + + return [ + 'language_id' => $language->id, + 'key' => $key, + 'lang' => $language->locale, + 'value' => $value + ]; + + })->toArray(); + + DB::table('language_strings')->insert($strings); + // Retrieve access token $response = Route::dispatch(self::make_login_request($request)); diff --git a/app/Http/Controllers/Language/LanguageController.php b/app/Http/Controllers/Language/LanguageController.php index 01b77c29..74b56412 100644 --- a/app/Http/Controllers/Language/LanguageController.php +++ b/app/Http/Controllers/Language/LanguageController.php @@ -2,22 +2,24 @@ namespace App\Http\Controllers\Language; -use App\Http\Requests\Languages\UpdateLanguageRequest; -use App\Http\Requests\Languages\UpdateStringRequest; -use App\Http\Requests\Languages\CreateLanguageRequest; - - use App\Language; use App\LanguageString; use App\Http\Tools\Demo; + + use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; use App\Http\Controllers\Controller; +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 - * + * * @return string */ public function get_languages () @@ -28,12 +30,23 @@ class LanguageController extends Controller /** * Get all language strings * - * @param $language + * @param Language $language * @return string */ - public function get_language_strings($locale) + public function get_language_strings(Language $language) { - return Language::where('locale', $locale)->with('languageStrings')->first(); + + // $lang = Language::whereId($language->id); + + $strings = $language->with('languageStrings')->first(); + + // dd($strings); + + $license = get_setting('license') === 'Extended' ? 'extended' : 'regular'; + + $default_strings = collect(config('language_strings.' . $license)); + + return collect(['translated_strings' => $strings, 'default_strings' => $default_strings]); } /** @@ -49,7 +62,7 @@ class LanguageController extends Controller return Demo::response_204(); } - // Create new language + // Create languages & strings $language = Language::create([ 'name' => $request->name, 'locale' => $request->locale @@ -63,18 +76,15 @@ class LanguageController extends Controller * Update language * * @param UpdateLanguageRequest $request - * @param $id + * @param Language $language * @return $language */ - public function update_language(UpdateLanguageRequest $request, $id) + public function update_language(UpdateLanguageRequest $request, Language $language) { // Check if is demo if (env('APP_DEMO')) { return Demo::response_204(); } - - // Get language - $language = Language::findOrFail($id); // Update language $language->update(make_single_input($request)); @@ -87,30 +97,41 @@ class LanguageController extends Controller * Update strings for language * * @param UpdateStringRequest $request + * @param Language $language * @return ResponseFactory|\Illuminate\Http\Response */ - public function update_string(UpdateStringRequest $request) + public function update_string(UpdateStringRequest $request,Language $language) { // Check if is demo if (env('APP_DEMO')) { return Demo::response_204(); } - // Get language - $lang = Language::where('locale', $request->input('locale'))->first(); - - foreach($request->input('language') as $language) - { - - // If key with lang already exist update, if no crate - LanguageString::updateOrCreate([ - 'language_id' => $lang->id, - 'key' => $language['key'], - 'lang' => $lang->locale, - ],[ - 'value' => $language['value'] + LanguageString::whereLanguageIdAndKey($language->id, $request->name) + ->update([ + 'language_id' => $language->id, + 'key' => $request->name, + 'lang' => $language->locale, + 'value' => $request->value ]); + + return response('Done', 204); + } + + /** + * Delete the language with all children strings + * + * @param Language $language + * @return ResponseFactory|\Illuminate\Http\Response + */ + public function delete_language(Language $language) + { + // Check if is demo + if (env('APP_DEMO')) { + return Demo::response_204(); } + + $language->delete(); return response('Done', 204); } diff --git a/app/Http/Requests/Languages/UpdateStringRequest.php b/app/Http/Requests/Languages/UpdateStringRequest.php index da8e2e39..3e4c61e0 100644 --- a/app/Http/Requests/Languages/UpdateStringRequest.php +++ b/app/Http/Requests/Languages/UpdateStringRequest.php @@ -24,10 +24,8 @@ class UpdateStringRequest extends FormRequest public function rules() { return [ - 'locale' => 'required|string', - 'language' => 'required|array', - 'language.*.key' => 'required|string', - 'language.*.value' => 'required|string' + 'name' => 'required|string', + 'value' => 'required|string' ]; } } diff --git a/app/Language.php b/app/Language.php index 388691f8..817a4d6e 100644 --- a/app/Language.php +++ b/app/Language.php @@ -4,6 +4,7 @@ namespace App; use App\LanguageString; use Illuminate\Support\Str; +use Illuminate\Support\Facades\DB; use Illuminate\Database\Eloquent\Model; class Language extends Model @@ -13,14 +14,44 @@ class Language extends Model protected $keyType = 'string'; + protected $primaryKey = 'id'; + public $incrementing = false ; public $timestamps = false; - protected static function booted() + protected static function boot() { - static::creating(function($model) { - $model->id = Str::uuid(); + parent::boot(); + + static::creating(function ($language) { + $language->id = Str::uuid(); + }); + + static::deleting(function ($language) { + $language->languageStrings()->delete(); + }); + + static::created(function ($language) { + + $license = get_setting('license') === 'Extended' ? 'extended' : 'regular'; + + $language_strings = collect(config('language_strings.' . $license)); + + + $strings = $language_strings->map(function ($value , $key) use($language) { + + return [ + 'language_id' => $language->id, + 'key' => $key, + 'lang' => $language->locale, + 'value' => $value + ]; + + })->toArray(); + + DB::table('language_strings')->insert($strings); + }); } diff --git a/config/language_strings.php b/config/language_strings.php index 40e9d5fe..6ba936dc 100644 --- a/config/language_strings.php +++ b/config/language_strings.php @@ -1,611 +1,628 @@ "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", - "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.dashboard" => "Dashboard", - "admin_menu.invoices" => "Invoices", - "admin_menu.pages" => "Pages", - "admin_menu.plans" => "Plans", - "admin_menu.settings" => "Settings", - "admin_menu.users" => "Users", - "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_premium.link" => "Show All Plans", - "admin_page_dashboard.w_total_premium.title" => "Total Premium Users", - "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_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.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.subscription.empty" => "User don't have any subscription yet.", - "admin_page_user.subscription.interval_mo" => "Monthly", - "admin_page_user.table.action" => "Action", - "admin_page_user.table.created_at" => "Registered", - "admin_page_user.table.name" => "User", - "admin_page_user.table.plan" => "Subscription Plan", - "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.invoices" => "Invoices", - "admin_page_user.tabs.password" => "Password", - "admin_page_user.tabs.storage" => "Storage Usage", - "admin_page_user.tabs.subscription" => "Subscription", - "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.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.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 .env 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
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
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
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.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 .env file.", - "admin_settings.payments.section_payments" => "Stripe Payments", - "admin_settings.payments.stripe_create_acc" => "If you don’t have stripe account, please //dashboard.stripe.com/register\" target=\"_blank\">register here 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 Dashboard -> Developers -> Webhooks -> Add Endpoint. 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 receive all events. 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.appearance" => "Appearance", - "admin_settings.tabs.billings" => "Billings", - "admin_settings.tabs.email" => "Email", - "admin_settings.tabs.others" => "Application", - "admin_settings.tabs.payments" => "Payments", - "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.monthly_ac" => "Mo.", - "global.or" => "or", - "global.premium" => "Premium", - "global.saas" => "Services", - "global.subscription" => "Subscription", - "global.total" => "Total", - "global.upgrade_plan" => "Upgrade Plan", - "incomplete_payment.description" => "Your latest payment is incomplete. {0}", - "incomplete_payment.href" => "Please confirm your payment.", - "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.invoices" => "Invoices", - "menu.latest" => "Recent Uploads", - "menu.logout" => "Log Out", - "menu.password" => "Password", - "menu.payment_cards" => "Payment Cards", - "menu.profile" => "Profile Settings", - "menu.settings" => "Settings", - "menu.shared" => "Shared Files", - "menu.storage" => "Storage", - "menu.subscription" => "Subscription", - "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", - "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_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_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_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}?", - "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_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_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_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_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.", - "popup_passport_error.title" => "Invalid Passport Grand Client", - "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.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_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_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_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", - "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.billings" => "Billings", - "routes_title.dashboard" => "Dashboard", - "routes_title.email" => "Email", - "routes_title.invoices" => "Invoices", - "routes_title.others" => "Others", - "routes_title.page_edit" => "Edit Page", - "routes_title.pages" => "Pages", - "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.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.subscribers" => "Subscribers", - "routes_title.subscription" => "Subscription", - "routes_title.upgrade_billing" => "Billing", - "routes_title.upgrade_plan" => "Upgrade Plan", - "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", - "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", - "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 successfully sended 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.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.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.plan_created" => "Your plan was successfully created!", - "toaster.sended_password" => "You successfully send user email for reset password!", - "toaster.stripe_set" => "Your Stripe account was successfully set!", - "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_invoices.empty" => "You don't have any invoices yet.", - "user_invoices.title" => "Invoices", - "user_password.title" => "Change Your Password", - "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_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", - "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", - "user_subscription.title" => "Subscription Plan", - "validation_errors.incorrect_password" => "Sorry, you passed incorrect password =>(", - "validation_errors.wrong_image" => "You may have uploaded the wrong file, try again!" + 'extended' => [ + "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", + "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.dashboard" => "Dashboard", + "admin_menu.invoices" => "Invoices", + "admin_menu.pages" => "Pages", + "admin_menu.plans" => "Plans", + "admin_menu.settings" => "Settings", + "admin_menu.users" => "Users", + "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_premium.link" => "Show All Plans", + "admin_page_dashboard.w_total_premium.title" => "Total Premium Users", + "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_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.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.subscription.empty" => "User don't have any subscription yet.", + "admin_page_user.subscription.interval_mo" => "Monthly", + "admin_page_user.table.action" => "Action", + "admin_page_user.table.created_at" => "Registered", + "admin_page_user.table.name" => "User", + "admin_page_user.table.plan" => "Subscription Plan", + "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.invoices" => "Invoices", + "admin_page_user.tabs.password" => "Password", + "admin_page_user.tabs.storage" => "Storage Usage", + "admin_page_user.tabs.subscription" => "Subscription", + "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.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.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 .env 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
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
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
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.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 .env file.", + "admin_settings.payments.section_payments" => "Stripe Payments", + "admin_settings.payments.stripe_create_acc" => "If you don’t have stripe account, please //dashboard.stripe.com/register\" target=\"_blank\">register here 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 Dashboard -> Developers -> Webhooks -> Add Endpoint. 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 receive all events. 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.appearance" => "Appearance", + "admin_settings.tabs.billings" => "Billings", + "admin_settings.tabs.email" => "Email", + "admin_settings.tabs.others" => "Application", + "admin_settings.tabs.payments" => "Payments", + "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.monthly_ac" => "Mo.", + "global.or" => "or", + "global.premium" => "Premium", + "global.saas" => "Services", + "global.subscription" => "Subscription", + "global.total" => "Total", + "global.upgrade_plan" => "Upgrade Plan", + "incomplete_payment.description" => "Your latest payment is incomplete. {0}", + "incomplete_payment.href" => "Please confirm your payment.", + "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.invoices" => "Invoices", + "menu.latest" => "Recent Uploads", + "menu.logout" => "Log Out", + "menu.password" => "Password", + "menu.payment_cards" => "Payment Cards", + "menu.profile" => "Profile Settings", + "menu.settings" => "Settings", + "menu.shared" => "Shared Files", + "menu.storage" => "Storage", + "menu.subscription" => "Subscription", + "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", + "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_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_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_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}?", + "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_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_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_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_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.", + "popup_passport_error.title" => "Invalid Passport Grand Client", + "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.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_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_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_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", + "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.billings" => "Billings", + "routes_title.dashboard" => "Dashboard", + "routes_title.email" => "Email", + "routes_title.invoices" => "Invoices", + "routes_title.others" => "Others", + "routes_title.page_edit" => "Edit Page", + "routes_title.pages" => "Pages", + "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.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.subscribers" => "Subscribers", + "routes_title.subscription" => "Subscription", + "routes_title.upgrade_billing" => "Billing", + "routes_title.upgrade_plan" => "Upgrade Plan", + "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", + "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", + "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 successfully sended 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.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.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.plan_created" => "Your plan was successfully created!", + "toaster.sended_password" => "You successfully send user email for reset password!", + "toaster.stripe_set" => "Your Stripe account was successfully set!", + "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_invoices.empty" => "You don't have any invoices yet.", + "user_invoices.title" => "Invoices", + "user_password.title" => "Change Your Password", + "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_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", + "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", + "user_subscription.title" => "Subscription Plan", + "validation_errors.incorrect_password" => "Sorry, you passed incorrect password =>(", + "validation_errors.wrong_image" => "You may have uploaded the wrong file, try again!" + ], + + 'regular' => [ + "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", + ] ]; \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json index bc95493a..69edc4c7 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -13,7 +13,7 @@ "/chunks/app-billings.js": "/chunks/app-billings.js?id=aac5bd51067578358164", "/chunks/app-email.js": "/chunks/app-email.js?id=9d1631b19f6492b8cae4", "/chunks/app-index.js": "/chunks/app-index.js?id=2dcbe307133d780b6472", - "/chunks/app-language.js": "/chunks/app-language.js?id=6a19e4970a78281f045f", + "/chunks/app-language.js": "/chunks/app-language.js?id=9203f328c3fc4f8bf0f4", "/chunks/app-others.js": "/chunks/app-others.js?id=44efcfb317747ff3b508", "/chunks/app-payments.js": "/chunks/app-payments.js?id=187ecc16f9f7fbc4ccac", "/chunks/app-settings.js": "/chunks/app-settings.js?id=b6b0eba13665133c0a19", @@ -75,5 +75,16 @@ "/chunks/user-password.js": "/chunks/user-password.js?id=ac51d17a4aa7ae50bc88", "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=10b3a108059d62d206c8", - "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c" + "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", + "/chunks/app-language.75a8d0f493b84cc978b0.hot-update.js": "/chunks/app-language.75a8d0f493b84cc978b0.hot-update.js", + "/chunks/app-language.11f2328701d7d1eca870.hot-update.js": "/chunks/app-language.11f2328701d7d1eca870.hot-update.js", + "/chunks/app-language.777221bd2497f08011d9.hot-update.js": "/chunks/app-language.777221bd2497f08011d9.hot-update.js", + "/chunks/app-language.bc81b9e7ca698d87c551.hot-update.js": "/chunks/app-language.bc81b9e7ca698d87c551.hot-update.js", + "/chunks/app-language.a4ed495733086633616b.hot-update.js": "/chunks/app-language.a4ed495733086633616b.hot-update.js", + "/chunks/app-language.621d2d3bfd5b566ca6fd.hot-update.js": "/chunks/app-language.621d2d3bfd5b566ca6fd.hot-update.js", + "/chunks/app-language.d798bdfce2bf9e140bac.hot-update.js": "/chunks/app-language.d798bdfce2bf9e140bac.hot-update.js", + "/chunks/app-language.24a27e086d82daca8ee6.hot-update.js": "/chunks/app-language.24a27e086d82daca8ee6.hot-update.js", + "/chunks/app-language.51bb5abc36798fbf4971.hot-update.js": "/chunks/app-language.51bb5abc36798fbf4971.hot-update.js", + "/chunks/app-language.c1e9e509fd5d55e2364a.hot-update.js": "/chunks/app-language.c1e9e509fd5d55e2364a.hot-update.js", + "/chunks/app-language.089db7aa0e313057463e.hot-update.js": "/chunks/app-language.089db7aa0e313057463e.hot-update.js" } diff --git a/resources/js/App.vue b/resources/js/App.vue index 2d9f9233..2bdc6597 100644 --- a/resources/js/App.vue +++ b/resources/js/App.vue @@ -28,6 +28,9 @@ + + + @@ -71,6 +74,7 @@ import ProcessingPopup from '@/components/FilesView/ProcessingPopup' import FileFullPreview from '@/components/FilesView/FileFullPreview' import MobileNavigation from '@/components/Others/MobileNavigation' import CookieDisclaimer from '@/components/Others/CookieDisclaimer' +import CreateLanguage from '@/components/Others/CreateLanguage' import CreateFolder from '@/components/Others/CreateFolder' import MobileMenu from '@/components/FilesView/MobileMenu' import ShareCreate from '@/components/Others/ShareCreate' @@ -95,6 +99,7 @@ export default { CookieDisclaimer, FileFullPreview, ProcessingPopup, + CreateLanguage, ToastrWrapper, CreateFolder, ShareCreate, diff --git a/resources/js/components/Others/CreateLanguage.vue b/resources/js/components/Others/CreateLanguage.vue new file mode 100644 index 00000000..e5c551b9 --- /dev/null +++ b/resources/js/components/Others/CreateLanguage.vue @@ -0,0 +1,867 @@ + + + + + diff --git a/resources/js/store/modules/app.js b/resources/js/store/modules/app.js index 43a5a1d5..433fd97d 100644 --- a/resources/js/store/modules/app.js +++ b/resources/js/store/modules/app.js @@ -10,10 +10,6 @@ const defaultState = { homeDirectory: undefined, requestedPlan: undefined, emojis: undefined, - languages: { - allLanguages: undefined, - strings: undefined, - }, sorting: { sort: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).sort : 'DESC', field: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).field : 'created_at', @@ -970,7 +966,7 @@ const defaultState = { value: "12.0", label: "(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka" } - ] + ], } const actions = { getEmojisList: ({commit}) => { @@ -988,36 +984,6 @@ const actions = { }) }, - - getLanguages: ({commit, state}) => { - - return new Promise((resolve, reject) => { - - axios - .get('/api/language/get') - .then((response) => { - commit('LOAD_LANGUAGES', response.data) - }) - .catch(() => Vue.prototype.$isSomethingWrong()) - .finally(() => { - resolve(true) - }) - }) - }, - getLanguageStrings: ({ commit }, language) => { - return new Promise((resolve, reject) => { - - axios - .get(`/api/language/${language.locale}/strings`) - .then(response => { - commit('LOAD_LANGUAGE_STRINGS', response.data) - }) - .catch(() => Vue.prototype.$isSomethingWrong()) - .finally(() => { - resolve(true) - }) - }) - }, changePreviewType: ({commit, state}, preview) => { // Get preview type @@ -1045,12 +1011,6 @@ const mutations = { LOAD_EMOJIS_LIST(state, data) { state.emojis = data }, - LOAD_LANGUAGE_STRINGS (state, data) { - state.languages.strings = data - }, - LOAD_LANGUAGES(state, data) { - state.languages.allLanguages = data - }, UPDATE_SORTING(state) { state.sorting.field = JSON.parse(localStorage.getItem('sorting')).field state.sorting.sort = JSON.parse(localStorage.getItem('sorting')).sort @@ -1092,8 +1052,7 @@ const getters = { requestedPlan: state => state.requestedPlan, currencyList: state => state.currencyList, countries: state => state.countries, - timezones: state=> state.timezones, - languages: state => state.languages, + timezones: state => state.timezones, api: state => state.config.api, config: state => state.config, emojis: state => state.emojis, diff --git a/resources/js/views/Admin/Languages/Language.vue b/resources/js/views/Admin/Languages/Language.vue index 09f00b56..06112993 100644 --- a/resources/js/views/Admin/Languages/Language.vue +++ b/resources/js/views/Admin/Languages/Language.vue @@ -9,17 +9,29 @@
- +
+ +
-
- {{language.name}} +
+
+ + +
+ + + + Add Language +
- + @@ -28,45 +40,103 @@ @@ -74,33 +144,99 @@ export default { @import '@assets/vue-file-manager/_variables'; @import '@assets/vue-file-manager/_mixins'; +#single-page { + height: 100%; + + #page-content { + height: 100%; + } +} + .wrapper { display: flex; + height: 100%; } .side-content{ - width: 225px; + flex: 0 0 225px; + + .button-add-language { + margin-top: 30px; + + + /deep/.content { + display: flex; + align-items: center; + @include font-size(14); + font-weight: 700; + + .icon { + margin-right: 10px; + } + } + } .languages-wrapper { margin-top: 70px; - .language-label { - color: $text-muted; - font-weight: 700; - @include font-size(12); + .language-label-wrapper { + margin-bottom: 5px; + + .language-label { + color: $text-muted; + font-weight: 700; + @include font-size(12); + margin-top: 20px; + } } + .all-language-wrapper { .language { - color: $text; - font-weight: 700; - @include font-size(13); - margin-top: 20px; - } - .active { - color: $theme; + display: flex; + align-items: center; + padding: 12px 25px 12px 0px; + cursor: pointer; + + &:hover { + .icon { + display: block; + } + + .name { + color: $theme; + } + } + + .name { + color: $text; + font-weight: 700; + @include font-size(13); + } + .icon { + display: none; + margin-left: auto; + cursor: pointer; + } + .active { + color: $theme !important; + } + } + } } } + + @media only screen and (max-width: 1024px) { + .side-content { + flex: 0 0 205px; + } + } + + @media only screen and (max-width: 690px) { + .side-content { + display: none; + } + } diff --git a/resources/js/views/Admin/Languages/LanguageStrings.vue b/resources/js/views/Admin/Languages/LanguageStrings.vue index d639849b..a9dca273 100644 --- a/resources/js/views/Admin/Languages/LanguageStrings.vue +++ b/resources/js/views/Admin/Languages/LanguageStrings.vue @@ -1,5 +1,5 @@ diff --git a/resources/js/components/FilesView/ProgressBar.vue b/resources/js/components/FilesView/ProgressBar.vue index e90303e7..2fc63711 100644 --- a/resources/js/components/FilesView/ProgressBar.vue +++ b/resources/js/components/FilesView/ProgressBar.vue @@ -1,6 +1,6 @@ @@ -23,7 +23,6 @@ export default { border-radius: 10px; span { - background: $theme; display: block; height: 100%; border-radius: 10px; diff --git a/resources/js/components/FilesView/SortingAndPreviewMenu.vue b/resources/js/components/FilesView/SortingAndPreviewMenu.vue index 65637b49..630fae99 100644 --- a/resources/js/components/FilesView/SortingAndPreviewMenu.vue +++ b/resources/js/components/FilesView/SortingAndPreviewMenu.vue @@ -1,56 +1,17 @@ @@ -129,7 +90,6 @@ export default { this.filter.sort = sorting ? sorting.sort : 'DESC' this.filter.field = sorting ? sorting.field : 'created_at' } - } @@ -152,14 +112,6 @@ export default { .icon { margin-right: 20px; line-height: 0; - - .alphabet-icon { - /deep/ line, - /deep/ polyline { - stroke: $text; - } - } - } .text-label { @@ -222,15 +174,6 @@ export default { .menu-option { color: $dark_mode_text_primary; - - .icon { - .alphabet-icon { - /deep/ line, - /deep/ polyline { - stroke: $dark_mode_text_primary; - } - } - } } } } diff --git a/resources/js/components/FilesView/UploadProgress.vue b/resources/js/components/FilesView/UploadProgress.vue index b51962a9..5f031b17 100644 --- a/resources/js/components/FilesView/UploadProgress.vue +++ b/resources/js/components/FilesView/UploadProgress.vue @@ -5,7 +5,7 @@ - + {{ $t('uploading.processing_file') }} @@ -17,7 +17,7 @@
- +
@@ -63,7 +63,7 @@ margin-right: 5px; polyline, path { - stroke: $theme; + color: inherit; } } @@ -103,7 +103,7 @@ &:hover { line { - stroke: $theme; + color: inherit; } } } diff --git a/resources/js/components/Index/Components/PricingTables.vue b/resources/js/components/Index/Components/PricingTables.vue index 0b7ae0cf..ec33f79d 100644 --- a/resources/js/components/Index/Components/PricingTables.vue +++ b/resources/js/components/Index/Components/PricingTables.vue @@ -4,7 +4,7 @@
- +

{{ plan.data.attributes.name }}

{{ plan.data.attributes.description }}

diff --git a/resources/js/components/Others/ColorPicker.vue b/resources/js/components/Others/ColorPicker.vue index b604dfff..1c671eed 100644 --- a/resources/js/components/Others/ColorPicker.vue +++ b/resources/js/components/Others/ColorPicker.vue @@ -12,16 +12,21 @@ diff --git a/resources/js/components/Others/Forms/CopyInput.vue b/resources/js/components/Others/Forms/CopyInput.vue index e6e912d2..bf0ffb00 100644 --- a/resources/js/components/Others/Forms/CopyInput.vue +++ b/resources/js/components/Others/Forms/CopyInput.vue @@ -2,12 +2,12 @@
-
- - +
+ +
-
- +
+
@@ -78,7 +78,7 @@ export default { line, path, polygon { - stroke: $text !important; + color: $text; } .icon-item { @@ -89,13 +89,12 @@ export default { cursor: pointer; &:hover { - background: $text; line, polyline, path, polygon { - stroke: white !important; + color: inherit; } } diff --git a/resources/js/components/Others/Forms/InfoBox.vue b/resources/js/components/Others/Forms/InfoBox.vue index deaf7a97..09bfda86 100644 --- a/resources/js/components/Others/Forms/InfoBox.vue +++ b/resources/js/components/Others/Forms/InfoBox.vue @@ -42,23 +42,19 @@ /deep/ a { font-size: 15px; - color: $theme; } /deep/ b { font-size: 15px; font-weight: 700; - color: $theme; } } b { font-weight: 700; - color: $theme; } a { - color: $theme; font-weight: 700; @include font-size(15); line-height: 1.6; diff --git a/resources/js/components/Others/PlanPricingTables.vue b/resources/js/components/Others/PlanPricingTables.vue index 20b29612..fbfa6cf6 100644 --- a/resources/js/components/Others/PlanPricingTables.vue +++ b/resources/js/components/Others/PlanPricingTables.vue @@ -4,7 +4,7 @@
- +

{{ plan.data.attributes.name }}

{{ plan.data.attributes.description }}

@@ -14,7 +14,7 @@ {{ $t('page_pricing_tables.storage_capacity') }}