diff --git a/app/Helpers/Language/NinjaTranslator.php b/app/Helpers/Language/NinjaTranslator.php new file mode 100644 index 000000000000..50517f903dad --- /dev/null +++ b/app/Helpers/Language/NinjaTranslator.php @@ -0,0 +1,50 @@ +parseKey($key); + + if(null === $locale) + { + $locale = $this->locale; + } + + // Load given group defaults if exists + $this->load($namespace, $group, $locale); + + Arr::set($this->loaded[$namespace][$group][$locale], $item, $value); + } + + public function replace($items, $locale = null) + { + + if(null === $locale) + $locale = $this->locale; + + foreach($items as $key => $value) + { + + list($namespace, $group, $item) = $this->parseKey($key); + + $this->load($namespace, $group, $locale); + + Arr::set($this->loaded[$namespace][$group][$locale], $item, $value); + } + + } +} \ No newline at end of file diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 3bb397b03a54..154cb4b4559b 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -11,6 +11,7 @@ namespace App\Providers; +use App\Helpers\Language\DecoratedTranslator; use App\Models\Account; use App\Models\Client; use App\Models\Company; @@ -36,12 +37,12 @@ use App\Observers\QuoteObserver; use App\Observers\TaskObserver; use App\Observers\UserObserver; use Illuminate\Database\Eloquent\Relations\Relation; -use Illuminate\Support\Facades\Blade; -use Illuminate\Support\Facades\Schema; -use Illuminate\Support\ServiceProvider; -use Illuminate\Support\Facades\Queue; use Illuminate\Queue\Events\JobFailed; use Illuminate\Queue\Events\JobProcessing; +use Illuminate\Support\Facades\Blade; +use Illuminate\Support\Facades\Queue; +use Illuminate\Support\Facades\Schema; +use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 6f6909681ce5..fca6b60c28fa 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -97,20 +97,11 @@ class AuthServiceProvider extends ServiceProvider public function boot() { $this->registerPolicies(); - /* - Auth::provider('users', function ($app, array $config) { - return new MultiDatabaseUserProvider($this->app['hash'], $config['model']); - }); - Auth::provider('contacts', function ($app, array $config) { - return new MultiDatabaseUserProvider($this->app['hash'], $config['model']); - - }); - */ Gate::define('view-list', function ($user, $entity) { $entity = strtolower(class_basename($entity)); - return $user->hasPermission('view_' . $entity) || $user->isAdmin(); }); } + } diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index d94e889d73b6..29b981249f8c 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -287,10 +287,6 @@ class EventServiceProvider extends ServiceProvider * * @return void */ - // public function boot() - // { - // parent::boot(); - // } public function boot() { diff --git a/app/Providers/NinjaTranslationServiceProvider.php b/app/Providers/NinjaTranslationServiceProvider.php new file mode 100644 index 000000000000..df58fcabc6fd --- /dev/null +++ b/app/Providers/NinjaTranslationServiceProvider.php @@ -0,0 +1,50 @@ +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; + }); + + } +} + diff --git a/config/app.php b/config/app.php index 33ddaf7a8049..bbd643def594 100644 --- a/config/app.php +++ b/config/app.php @@ -180,6 +180,7 @@ return [ App\Providers\ComposerServiceProvider::class, App\Providers\MultiDBProvider::class, App\Providers\ClientPortalServiceProvider::class, + App\Providers\NinjaTranslationServiceProvider::class, ], /* diff --git a/tests/Unit/TranslationTest.php b/tests/Unit/TranslationTest.php new file mode 100644 index 000000000000..bda53eabcbb5 --- /dev/null +++ b/tests/Unit/TranslationTest.php @@ -0,0 +1,54 @@ +assertEquals('test', trans('texts.test_translation_string')); + + } + + + public function testReplaceTranslation() + { + + Lang::set('texts.invoice_number', 'test'); + + $this->assertEquals('test', trans('texts.invoice_number')); + + } + + + public function testReplaceArray() + { + $data = [ + 'texts.invoice_number' => 'test', + 'texts.custom_translation' => 'test2' + ]; + + Lang::replace($data); + + $this->assertEquals('test', trans('texts.invoice_number')); + $this->assertEquals('test2', trans('texts.custom_translation')); + + } + +}