web-dev-qa-db-fra.com

Laravel 5 Carbon global Locale

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?)

11
Mathieu Urstein

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

http://php.net/manual/en/function.strftime.php

18
Mathieu Urstein

Je l'ai configuré dans AppServiceProvider.

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        // Localization Carbon

        \Carbon\Carbon::setLocale(config('app.locale'));
    }
}
17
glembo

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