diff --git a/app/Config/app.php b/app/Config/app.php index f2c90c5bb..0d06a9b21 100755 --- a/app/Config/app.php +++ b/app/Config/app.php @@ -96,7 +96,6 @@ return [ Illuminate\Redis\RedisServiceProvider::class, Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, Illuminate\Notifications\NotificationServiceProvider::class, @@ -107,9 +106,9 @@ return [ Barryvdh\DomPDF\ServiceProvider::class, Barryvdh\Snappy\ServiceProvider::class, - // BookStack replacement service providers (Extends Laravel) BookStack\Providers\PaginationServiceProvider::class, + BookStack\Providers\TranslationServiceProvider::class, // BookStack custom service providers BookStack\Providers\AuthServiceProvider::class, diff --git a/app/Providers/TranslationServiceProvider.php b/app/Providers/TranslationServiceProvider.php new file mode 100644 index 000000000..9ff607afe --- /dev/null +++ b/app/Providers/TranslationServiceProvider.php @@ -0,0 +1,21 @@ +app->singleton('translation.loader', function ($app) { + return new FileLoader($app['files'], $app['path.lang']); + }); + } + +} \ No newline at end of file diff --git a/app/Translation/FileLoader.php b/app/Translation/FileLoader.php new file mode 100644 index 000000000..f0f895da5 --- /dev/null +++ b/app/Translation/FileLoader.php @@ -0,0 +1,30 @@ +loadJsonPaths($locale); + } + + if (is_null($namespace) || $namespace === '*') { + $themeTranslations = $this->loadPath(theme_path('lang'), $locale, $group); + $originalTranslations = $this->loadPath($this->path, $locale, $group); + return array_merge($originalTranslations, $themeTranslations); + } + + return $this->loadNamespaced($locale, $group, $namespace); + } +} \ No newline at end of file