3 namespace BookStack\Providers;
5 use BookStack\Translation\FileLoader;
6 use BookStack\Translation\MessageSelector;
7 use Illuminate\Translation\TranslationServiceProvider as BaseProvider;
8 use Illuminate\Translation\Translator;
10 class TranslationServiceProvider extends BaseProvider
13 * Register the service provider.
17 public function register()
19 $this->registerLoader();
21 // This is a tweak upon Laravel's based translation service registration to allow
22 // usage of a custom MessageSelector class
23 $this->app->singleton('translator', function ($app) {
24 $loader = $app['translation.loader'];
26 // When registering the translator component, we'll need to set the default
27 // locale as well as the fallback locale. So, we'll grab the application
28 // configuration so we can easily get both of these values from there.
29 $locale = $app['config']['app.locale'];
31 $trans = new Translator($loader, $locale);
32 $trans->setFallback($app['config']['app.fallback_locale']);
33 $trans->setSelector(new MessageSelector());
42 * Register the translation line loader.
43 * Overrides the default register action from Laravel so a custom loader can be used.
47 protected function registerLoader()
49 $this->app->singleton('translation.loader', function ($app) {
50 return new FileLoader($app['files'], $app['path.lang']);