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