2020-08-11 02:48:05 +02:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Invoice Ninja (https://invoiceninja.com)
|
|
|
|
*
|
|
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
|
|
*
|
|
|
|
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
|
|
|
*
|
|
|
|
* @license https://opensource.org/licenses/AAL
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace App\Providers;
|
|
|
|
|
|
|
|
use App\Helpers\Language\NinjaTranslator;
|
|
|
|
use Illuminate\Translation\TranslationServiceProvider;
|
|
|
|
|
|
|
|
class NinjaTranslationServiceProvider extends TranslationServiceProvider
|
|
|
|
{
|
|
|
|
public function boot()
|
|
|
|
{
|
|
|
|
|
2020-08-11 03:13:49 +02:00
|
|
|
/**
|
|
|
|
* To reset the translator instance we call
|
|
|
|
*
|
|
|
|
* App::forgetInstance('translator');
|
|
|
|
*
|
|
|
|
* Why? As the translator is a singleton it persists for its
|
|
|
|
* lifecycle
|
|
|
|
*
|
|
|
|
* We _must_ reset the singleton when shifting between
|
|
|
|
* clients/companies otherwise translations will
|
|
|
|
* persist.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2020-08-11 02:48:05 +02:00
|
|
|
$this->app->singleton('translator', function($app)
|
|
|
|
{
|
|
|
|
$loader = $app['translation.loader'];
|
|
|
|
$locale = $app['config']['app.locale'];
|
|
|
|
|
|
|
|
$trans = new NinjaTranslator($loader, $locale);
|
|
|
|
|
|
|
|
$trans->setFallback($app['config']['app.fallback_locale']);
|
|
|
|
|
|
|
|
return $trans;
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|