add cache for languages, make function to laravel translate

This commit is contained in:
Milos Holba
2021-03-19 20:17:12 +01:00
parent ba7d6be249
commit c8dedd44c4
9 changed files with 119 additions and 580 deletions
@@ -279,8 +279,6 @@ class AppFunctionsController extends Controller
return $lang->with('languageStrings')->first();
});
// return $lang->with('languageStrings')->first();
}
}
+28
View File
@@ -5,6 +5,8 @@ use App\FileManagerFolder;
use App\User;
use App\Setting;
use App\Share;
use App\Language;
use App\LanguageString;
use ByteUnits\Metric;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
@@ -802,3 +804,29 @@ function set_time_by_user_timezone($time)
return Carbon::parse($time);
}
function _t($key)
{
if (Cache::has('language_strings')) {
//Check if cash has string
$strings = Cache::get('language_strings')
->languageStrings
->toArray();
// Find the string by key
foreach($strings as $string) {
if($string['key'] === $key) {
return $string['value'];
}
}
}
$language = Language::whereLocale(get_setting('language'))
->first();
// If cash dont have string return string from database
return LanguageString::whereLangAndKey($language->locale, $key)
->first()
->value;
}
+10 -2
View File
@@ -5,6 +5,7 @@ namespace App;
use App\LanguageString;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
use Illuminate\Database\Eloquent\Model;
class Language extends Model
@@ -29,7 +30,13 @@ class Language extends Model
});
static::deleting(function ($language) {
$language->languageStrings()->delete();
DB::table('language_strings')
->where('lang', $language->locale)
->delete();
});
static::updated(function() {
Cache::forget('language_strings');
});
static::created(function ($language) {
@@ -48,7 +55,8 @@ class Language extends Model
})->toArray();
DB::table('language_strings')->insert($strings);
DB::table('language_strings')
->insert($strings);
});
}
+10
View File
@@ -2,6 +2,7 @@
namespace App;
use Illuminate\Support\Facades\Cache;
use Illuminate\Database\Eloquent\Model;
class LanguageString extends Model
@@ -14,5 +15,14 @@ class LanguageString extends Model
protected $fillable = ['value' ,'key', 'lang'];
protected static function boot()
{
parent::boot();
static::updated(function() {
dd('test');
// Cache::forget('language_strings');
});
}
}