J'essaie de définir la même locale globale de laravel qui est:
config('app.locale')
de travailler avec Carbon.
Il semble que vous pouvez le faire en utilisant soit:
Carbon::setLocale('fr')
ou
setlocale(LC_TIME, 'theLocale');
J'ai donc essayé d'utiliser un middleware ou des fournisseurs, mais sans succès.
(pourquoi n'est-ce pas une fonctionnalité par défaut de laravel?)
Donc c'est ma mauvaise, Carbon utilise en fait le php
setlocale();
les
Carbon::setLocale('fr')
est uniquement pour la
->diffForHumans()
méthode. Notez que la référence php setlocale () aux paramètres régionaux stockés sur votre système d'exploitation pour choisir l'une des utilisations installées
locale -a
sur votre console
deuxièmement, vous devez utiliser
->formatLocalized()
méthode au lieu de
->format()
méthode
et enfin toutes les méthodes utiles comme
->toDateString()
->toFormattedDateString()
->toTimeString()
->toDateTimeString()
->toDayDateTimeString()
ne sont pas localisés
et enfin vous devez utiliser ces lettres d'analyse
Je l'ai configuré dans AppServiceProvider.
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
// Localization Carbon
\Carbon\Carbon::setLocale(config('app.locale'));
}
}
dans AppServiceProvider
public function register()
{
// For example im gonna locale all dates to Indonesian (ID)
config(['app.locale' => 'id']);
\Carbon\Carbon::setLocale('id');
}
puis pour faire la sortie locale faire quelque chose comme ça
// Without locale, the output gonna be like this
Carbon\Carbon::parse('2019-03-01')->format('d F Y'); //Output: "01 March 2019"
// With locale
Carbon\Carbon::parse('2019-03-01')->translatedFormat('d F Y'); //Output: "01 Maret 2019"
Pour plus d'informations sur la conversion des dates de localisation, vous pouvez voir sur le lien ci-dessous https://carbon.nesbot.com/docs/#api-localization