57 lines
1.8 KiB
PHP
57 lines
1.8 KiB
PHP
<?php namespace App\Providers;
|
|
|
|
use App\Models\Language;
|
|
use Illuminate\Support\Facades\App;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
|
use Symfony\Component\Translation\Translator;
|
|
|
|
class LaravelLocalizationServiceProvider extends ServiceProvider
|
|
{
|
|
public function register()
|
|
{
|
|
try {
|
|
$languages = DB::table('languages')
|
|
->get();
|
|
} catch (\Exception $e) {
|
|
$languages = [];
|
|
}
|
|
|
|
$supportedLocales = [];
|
|
if (empty($languages)) {
|
|
$supportedLocales[config('app.locale')] = [
|
|
'native' => env('LOCALE_NATIVE_NAME'),
|
|
'script' => env('LOCALE_SCRIPT'),
|
|
'name' => env('LOCALE_TRANSLATED_NAME'),
|
|
'code' => config('app.locale'),
|
|
];
|
|
|
|
// create default language
|
|
try {
|
|
Language::create($supportedLocales[config('app.locale')]);
|
|
} catch (\Exception $e) {
|
|
// ignore, table languages probably does not exist.
|
|
}
|
|
}
|
|
|
|
foreach ($languages as $language) {
|
|
$supportedLocales[$language->code] = [
|
|
'native' => $language->native,
|
|
'name' => $language->name,
|
|
'script' => $language->script
|
|
];
|
|
}
|
|
|
|
config([
|
|
'laravellocalization.supportedLocales' => $supportedLocales,
|
|
'laravellocalization.useAcceptLanguageHeader' => true,
|
|
'laravellocalization.hideDefaultLocaleInURL' => true
|
|
]);
|
|
}
|
|
|
|
public function boot()
|
|
{
|
|
\App::setLocale(LaravelLocalization::getCurrentLocale());
|
|
}
|
|
} |