Files
core/app/Providers/LaravelLocalizationServiceProvider.php
T

54 lines
1.7 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()
{
// localization is not important in running in CLI
if (App::runningInConsole()) {
return;
}
$languages = DB::table('languages')
->get();
$supportedLocales = [];
if (empty($languages)) {
$supportedLocales[config('app.locale')] = (object)[
'native' => env('LOCALE_NATIVE_NAME'),
'script' => env('LOCALE_SCRIPT'),
'name' => env('LOCALE_TRANSLATED_NAME'),
'code' => config('app.locale'),
];
// create default language
Language::create((array)$supportedLocales[config('app.locale')]);
}
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());
}
}