Laravel : Modifier la langue de la librairie Carbon

Mis à jour il y a 3 ans

Un tutoriel pour changer la langue de la librairie Carbon qui gère les dates dans un projet Laravel.

Wilo Ahadi

Auteur

Wilo A.

Technologies

Laravel, PHP
Voir aussi Un tutoriel d'utilisation du package Laravel Breeze pour mettre en place l'authentification (login, register, password reset, ...) des utilisateurs dans un projet Laravel. En savoir plus

Introduction

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.

Modifier la langue

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

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