From aa149f4f3e35ab696966ff5027d46776b4a10c4e Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Sun, 22 Jul 2018 11:06:16 +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 e415d83c..e39b285e 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, Mews\Captcha\CaptchaServiceProvider::class, @@ -174,6 +173,7 @@ return [ App\Providers\MemoryServiceProvider::class, App\Providers\RouteServiceProvider::class, App\Providers\ResponseMacroServiceProvider::class, + App\Providers\TranslationServiceProvider::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