How to set Locale using Carbon – Laravel

Laravel Localization allows us to switch languages within a Laravel application. Therefore, it allows a user to switch entire application language to a new and different language, as we define them in the locales. We can set Locale using Carbon for a Laravel application. Let us go through the steps for this.

The solution below shows how to use the Carbon API to set an application’s locale.

/** how to localize carbon date time in laravel
go to app/Providers/AppServiceProvider.php

add this code
**/
//do not forget to use Carbon\Carbon;
public function boot(){
  Carbon::setLocale('es');
}

You can specify the application’s language (or locale) in the AppServiceProvider.php file. Here, in the boot() method, use the Carbon API and a corresponding setLocale() helper function as shown above to pass the language your Laravel application should work with. We can pass any string literal to define the application’s locale.

The Carbon API helps localize dates. It helps us to invent a new or own locale with specific rules for date and time localization.

To display the current date in the current application locale, you may use the example below.

<?php
Route::get('/', function () {
    $today = \Carbon\Carbon::now()
        ->settings(
            [
                'locale' => app()->getLocale(),
            ]
        );
    // LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
    $dateMessage = $today->isoFormat('dddd, LL');
    return view('hello dev', [
        'date_message' => $dateMessage
    ]);
});

Add this in the web.php file inside the routes directory. It formats the current date stored in $today variable and formats it as specified in the format function. The formatted date is then passed to a view.

The code below displays the formatted date with a specified locale using Carbon library.

{{ __('Hello Devs, welcome to scratchcoding, :Name', ['name' => 'Alice']) }}
<br>
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
<br>
{{ $date_message }}