Un tutoriel pour changer la langue de la librairie Carbon qui gère les dates dans un projet Laravel.
Sommaire
Carbon est une API PHP de gestion des dates qui hérite de la classe DateTime. Le framework Laravel l’intègre dans un projet pour caster (transtyper, transformer) par exemple les dates created_at et updated_at d'un modèle en objet Carbon. Ainsi, nous pouvons appeler les méthodes Carbon sur ces dates.
Au script ci-dessous, j'affiche la date created_at d'un "App\Post" $post de façon facilement lisible pour un être humain sur un template blade :
@php
$post_date = $post->created_at;
@endphp
<p>{{ $post_date->dayName }} - {{ $post_date->isoFormat("LL") }} - {{ $post->created_at->diffForHumans() }}</p>
J'obtiens "Monday - March 2, 2020 - 22 hours ago", tout est en anglais. Nous allons voir au point suivant comment traduire cette date en "lundi - 2 mars 2020 - il y a 23 heures" ou une autre langue de votre choix : anglais (en), Espagnol (es), Russe (ru), ...
Je vous recommande de parcourir la documentation de Carbon pour découvrir ses nombreuses fonctions.
Nous pouvons modifier la langue de la librairie Carbon dans un projet Laravel soit en modifiant la langue globale de l'application dans la fonction boot() du fichier app\Providers\AppServiceProvider.php :
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
// ...
public function boot()
{
// On défini le "français" comme langue globale de l'application
\App::setLocale('fr');
}
}
Ou en modifiant spécifiquement la langue de Carbon :
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
// ...
public function boot()
{
// On défini le "français" comme langue globale de Carbon
\Carbon\Carbon::setLocale('fr');
}
}
Il ne reste plus maintenant qu'à actualiser la page dans le navigateur pour voir la traduction.
Cette publication vous a plu ?
Partagez-la avec vos ami(e)s sur les réseaux sociaux.
Wilo Ahadi, l'auteur
Passionné de l'informatique, je suis spécialiste en techniques des systèmes et réseaux, développeur web et mobile, infographiste et designer, ... J'aime partager mon expérience en formant sur la plateforme Akili School
Voir profil
Commentaires