diff --git a/app/Http/Controllers/Admin/LanguageController.php b/app/Http/Controllers/Admin/LanguageController.php
index c6aa7a1e..650c4f7a 100644
--- a/app/Http/Controllers/Admin/LanguageController.php
+++ b/app/Http/Controllers/Admin/LanguageController.php
@@ -11,6 +11,7 @@ use App\Http\Tools\Demo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
+use Illuminate\Support\Facades\Cache;
use App\Http\Requests\Languages\UpdateStringRequest;
use App\Http\Requests\Languages\CreateLanguageRequest;
use App\Http\Requests\Languages\UpdateLanguageRequest;
@@ -19,33 +20,26 @@ class LanguageController extends Controller
{
/**
- * Get all languages
+ * Get all languages for admin translate
*
- * @return string
+ * @return Collection
*/
public function get_languages()
{
- return Language::all();
- }
-
- public function get_language_strings_i18n($language)
- {
- $lang = Language::whereLocale($language);
-
- return $lang->with('languageStrings')->first();
-
+ return [
+ 'languages' => Language::all(),
+ 'set_language' => Setting::whereName('language')->first()->value
+ ];
}
/**
- * Get all language strings
+ * Get all language strings for admin translate
*
* @param Language $language
* @return Collection
*/
public function get_language_strings(Language $language)
{
- $language_setting = Setting::whereName('language')->first()->value;
-
$lang = Language::whereId($language->id);
$strings = $lang->with('languageStrings')->first();
@@ -57,7 +51,6 @@ class LanguageController extends Controller
$default_strings = collect(config('language_strings.' . $license));
return [
- 'language_setting' => $language_setting,
'translated_strings' => $strings,
'default_strings' => $default_strings
];
@@ -108,7 +101,7 @@ class LanguageController extends Controller
}
/**
- * Update strings for language
+ * Update string for language
*
* @param UpdateStringRequest $request
* @param Language $language
@@ -128,6 +121,9 @@ class LanguageController extends Controller
'value' => $request->value
]);
+
+ Cache::forget('language_strings-' . $language->locale);
+
return response('Done', 204);
}
diff --git a/app/Http/Controllers/AppFunctionsController.php b/app/Http/Controllers/AppFunctionsController.php
index 8ad86dbf..ea8309c8 100644
--- a/app/Http/Controllers/AppFunctionsController.php
+++ b/app/Http/Controllers/AppFunctionsController.php
@@ -269,16 +269,16 @@ class AppFunctionsController extends Controller
public function get_translate($lang)
{
- $lang = Language::whereLocale($lang);
+ $language = Language::whereLocale($lang);
+
+ $key = 'language_strings-' . $lang;
- if (Cache::has('language_strings')) {
- return Cache::get('language_strings');
+ if (Cache::has($key)) {
+ return Cache::get($key);
}
- return Cache::rememberForever('language_strings', function () use ($lang) {
- return $lang->with('languageStrings')->first();
- });
-
+ return Cache::rememberForever($key, function () use ($language) {
+ return $language->with('languageStrings')->first();
+ });
}
-
}
diff --git a/app/Http/Helpers/helpers.php b/app/Http/Helpers/helpers.php
index d6b05819..a690b55c 100644
--- a/app/Http/Helpers/helpers.php
+++ b/app/Http/Helpers/helpers.php
@@ -807,26 +807,20 @@ function set_time_by_user_timezone($time)
function _t($key)
{
- if (Cache::has('language_strings')) {
+ $locale = get_setting('language');
+
+ //Check if cash has string
+ if (Cache::has('language_strings-' . $locale)) {
- //Check if cash has string
- $strings = Cache::get('language_strings')
- ->languageStrings
- ->toArray();
-
+ $strings = Cache::get('language_strings-' . $locale)
+ ->languageStrings;
+
// Find the string by key
- foreach($strings as $string) {
- if($string['key'] === $key) {
- return $string['value'];
- }
- }
- }
-
- $language = Language::whereLocale(get_setting('language'))
- ->first();
+ return $strings->firstWhere('key', $key)->value;
+ }
// If cash dont have string return string from database
- return LanguageString::whereLangAndKey($language->locale, $key)
+ return LanguageString::whereLangAndKey($locale, $key)
->first()
->value;
}
diff --git a/app/Language.php b/app/Language.php
index 0c93f8e2..c32114bf 100644
--- a/app/Language.php
+++ b/app/Language.php
@@ -33,10 +33,12 @@ class Language extends Model
DB::table('language_strings')
->where('lang', $language->locale)
->delete();
+
+ Cache::forget('language_strings-' . $language->locale );
});
- static::updated(function() {
- Cache::forget('language_strings');
+ static::updated(function($language) {
+ Cache::forget('language_strings-' . $language->locale );
});
static::created(function ($language) {
diff --git a/config/language_strings.php b/config/language_strings.php
index 81288548..a2e9f86c 100644
--- a/config/language_strings.php
+++ b/config/language_strings.php
@@ -414,6 +414,7 @@ return [
"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.select_emoji_label" => "Pick Your Emoji Icon",
"popup_rename.color_pick_label" => "Pick Your Color:",
"popup_rename.emoji_list_not_found" => "Not Found",
"popup_rename.label" => "Edit Name",
@@ -987,6 +988,7 @@ return [
"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.select_emoji_label" => "Pick Your Emoji Icon",
"popup_rename.color_pick_label" => "Pick Your Color:",
"popup_rename.emoji_list_not_found" => "Not Found",
"popup_rename.label" => "Edit Name",
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index f2d70b4b..761e2869 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=4179320e3c8fcf2d4ae9",
+ "/chunks/app-language.js": "/chunks/app-language.js?id=62fc50db4f9950730323",
"/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",
diff --git a/resources/js/App.vue b/resources/js/App.vue
index e713c11b..997992cb 100644
--- a/resources/js/App.vue
+++ b/resources/js/App.vue
@@ -4,7 +4,7 @@