phplaravel

What's the best way to localise a date on Laravel?


Take this example:

{{ $article->created_at->format('M') }}

It returns Nov. I need to localise this to my language, so the output should be Kas

Thought about doing the following:

{{ trans("language.{$article->created_at->format('M')}") }}

app/lang/tr/language.php -> 'nov' => 'kas'

This looks like reinventing the wheel and programmatically pretty terrible. I'm sure there are some localisation standards. Something like:

{{ $article->created_at->format('M')->localiseTo('tr_TR') }}

What's the best way to achieve this?


Solution

  • Using a library as Laravel-Date you will just need to set the language of the app in the Laravel app config file and use its functions to format the date as you want.

    Set the language in /app/config/app.php

    'locale' => 'es',
    

    I've found this library pretty useful and clean. To use it, you can write something like the example in the library readme file. I leave the results in spanish.

    echo Date::now()->format('l j F Y H:i:s'); // domingo 28 abril 2013 21:58:16
    
    echo Date::parse('-1 day')->diffForHumans(); // 1 día atrás
    

    This is the link to the repository:

    https://github.com/jenssegers/laravel-date

    To install this library you can follow the instructions detailed in the following link:

    https://github.com/jenssegers/laravel-date#installation