Files
core/app/Providers/LaravelLocalizationServiceProvider.php
T

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());
}
}