diff --git a/app/Providers/SnipeTranslationServiceProvider.php b/app/Providers/SnipeTranslationServiceProvider.php new file mode 100644 index 0000000000..f0ff334484 --- /dev/null +++ b/app/Providers/SnipeTranslationServiceProvider.php @@ -0,0 +1,35 @@ +registerLoader(); + + $this->app->singleton('translator', function ($app) { + $loader = $app['translation.loader']; + + // When registering the translator component, we'll need to set the default + // locale as well as the fallback locale. So, we'll grab the application + // configuration so we can easily get both of these values from there. + $locale = $app['config']['app.locale']; + + $trans = new SnipeTranslator($loader, $locale); //the ONLY changed line + + $trans->setFallback($app['config']['app.fallback_locale']); + + return $trans; + }); + } +} diff --git a/app/Services/SnipeTranslator.php b/app/Services/SnipeTranslator.php new file mode 100644 index 0000000000..00107ede9e --- /dev/null +++ b/app/Services/SnipeTranslator.php @@ -0,0 +1,42 @@ +get( + $key, $replace, $locale = $this->localeForChoice($locale) + ); + + // If the given "number" is actually an array or countable we will simply count the + // number of elements in an instance. This allows developers to pass an array of + // items without having to count it on their end first which gives bad syntax. + if (is_array($number) || $number instanceof Countable) { + $number = count($number); + } + + $replace['count'] = $number; + + $underscored_locale = str_replace("-","_",$locale); // OUR CHANGE. + return $this->makeReplacements( // BELOW - that $underscored_locale is the *ONLY* modified part + $this->getSelector()->choose($line, $number, $underscored_locale), $replace + ); + } + +} \ No newline at end of file diff --git a/config/app.php b/config/app.php index 1b4f45e45b..b2f14f3787 100755 --- a/config/app.php +++ b/config/app.php @@ -277,7 +277,8 @@ return [ Illuminate\Redis\RedisServiceProvider::class, Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, +// Illuminate\Translation\TranslationServiceProvider::class, //replaced on next line + App\Providers\SnipeTranslationServiceProvider::class, //we REPLACE the default Laravel translator with our own Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, Barryvdh\DomPDF\ServiceProvider::class,