From d31e0ebc7e30ad6dbf081af762477009c7d106b8 Mon Sep 17 00:00:00 2001 From: printempw Date: Sun, 22 Jul 2018 09:42:46 +0800 Subject: [PATCH] Allow overriding translations --- app/Providers/TranslationServiceProvider.php | 16 ++++++++ app/Services/TranslationLoader.php | 41 ++++++++++++++++++++ config/app.php | 2 +- resources/lang/overrides/.gitignore | 2 + 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 app/Providers/TranslationServiceProvider.php create mode 100644 app/Services/TranslationLoader.php create mode 100644 resources/lang/overrides/.gitignore diff --git a/app/Providers/TranslationServiceProvider.php b/app/Providers/TranslationServiceProvider.php new file mode 100644 index 00000000..d41252d0 --- /dev/null +++ b/app/Providers/TranslationServiceProvider.php @@ -0,0 +1,16 @@ +app->singleton('translation.loader', function ($app) { + return new TranslationLoader($app['files'], $app['path.lang']); + }); + } +} diff --git a/app/Services/TranslationLoader.php b/app/Services/TranslationLoader.php new file mode 100644 index 00000000..f4f7a5cd --- /dev/null +++ b/app/Services/TranslationLoader.php @@ -0,0 +1,41 @@ +loadPath($this->path, $locale, $group), + $this->loadPathOverrides($locale, $group) + ); + } + + return $this->loadNamespaced($locale, $group, $namespace); + } + + /** + * Load custom messages from /resources/lang/overrides path. + * + * @param string $locale + * @param string $group + * @return array + */ + protected function loadPathOverrides($locale, $group) + { + return $this->loadPath("$this->path/overrides", $locale, $group); + } +} diff --git a/config/app.php b/config/app.php index 3905c251..9ef67dfe 100644 --- a/config/app.php +++ b/config/app.php @@ -159,7 +159,6 @@ return [ /** * Third-party libraries */ - Devitek\Core\Translation\TranslationServiceProvider::class, Swiggles\Memcache\MemcacheServiceProvider::class, Yajra\Datatables\DatatablesServiceProvider::class, @@ -173,6 +172,7 @@ return [ App\Providers\EventServiceProvider::class, App\Providers\MemoryServiceProvider::class, App\Providers\RouteServiceProvider::class, + App\Providers\TranslationServiceProvider::class, App\Providers\ResponseMacroServiceProvider::class, App\Providers\ValidatorExtendServiceProvider::class, diff --git a/resources/lang/overrides/.gitignore b/resources/lang/overrides/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/resources/lang/overrides/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore