-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/develop'
- Loading branch information
Showing
4 changed files
with
80 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<?php | ||
|
||
namespace App\Providers; | ||
|
||
use App\Services\SnipeTranslator; | ||
use Illuminate\Translation\TranslationServiceProvider; | ||
|
||
class SnipeTranslationServiceProvider extends TranslationServiceProvider | ||
{ | ||
/** | ||
* Register services. | ||
* | ||
* @return void | ||
*/ | ||
public function register() | ||
{ | ||
//This is almost an *EXACT* carbon-copy of the TranslationServiceProvider, except with a modified Translator | ||
$this->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; | ||
}); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<?php | ||
|
||
namespace App\Services; | ||
|
||
use Illuminate\Translation\Translator; | ||
|
||
/*************************************************************** | ||
* This is just a very, very light modification to the default Laravel Translator. | ||
* The only difference it has is that it modifies the $locale | ||
* value when the pluralizations are done so we can switch over from en-US to en_US (for example). | ||
* | ||
* This means our translation directories can stay where they are (en-US), but the | ||
* pluralization code can get executed against a locale of en_US | ||
* (Which is required by Symfony, for some inexplicable reason) | ||
* | ||
* This method is called by the trans_choice() helper, which we *do* use a lot. | ||
***************************************************************/ | ||
class SnipeTranslator extends Translator { | ||
|
||
//This is copied-and-pasted (almost) verbatim from Illuminate\Translation\Translator | ||
public function choice($key, $number, array $replace = [], $locale = null) | ||
{ | ||
$line = $this->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 | ||
); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters