Laravel Tutorials

Accessing Locale and Currency Defaults in Laravel

Published
Accessing Locale and Currency Defaults in Laravel image

Laravel's Number facade has been enhanced with convenient methods for retrieving default locale and currency settings, simplifying internationalization in your applications. These additions streamline the process of handling regional settings and currency formatting, particularly useful when building applications that serve users across different regions.

use Illuminate\Support\Number;
// Quick access to defaults
$locale = Number::defaultLocale();
$currency = Number::defaultCurrency();

Let's explore a practical example of an international order processing system:

<?php
 
namespace App\Services;
 
use App\Models\Order;
use Illuminate\Support\Number;
use App\Events\OrderProcessed;
 
class OrderProcessor
{
public function formatOrderSummary(Order $order, ?string $userLocale = null)
{
$locale = $userLocale ?? Number::defaultLocale();
$currency = $order->currency ?? Number::defaultCurrency();
return [
'order_number' => $order->reference,
'subtotal' => Number::currency($order->subtotal, in: $currency),
'tax' => Number::currency($order->tax, in: $currency),
'total' => Number::currency($order->total, in: $currency),
'formatted_date' => $order->created_at->locale($locale)->isoFormat('LLLL'),
'meta' => [
'display_locale' => $locale,
'currency' => $currency,
'exchange_rate' => $this->getExchangeRate(
from: Number::defaultCurrency(),
to: $currency
)
]
];
}
 
protected function getExchangeRate(string $from, string $to): float
{
// Exchange rate calculation logic
return 1.0;
}
}

These new helper methods simplify access to your application's default regional settings, making it easier to handle international formatting and currency display.

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Look What You Helped Me Build image

Look What You Helped Me Build

Read article
BashBox: A Sandboxed Bash Interpreter for AI Agents in PHP image

BashBox: A Sandboxed Bash Interpreter for AI Agents in PHP

Read article
Running Laravel's Scheduler on Multiple Servers image

Running Laravel's Scheduler on Multiple Servers

Read article
Laravel Fake Assertions Now Accept Property Arrays image

Laravel Fake Assertions Now Accept Property Arrays

Read article
Route::query() and Model defaults() in Laravel 13.35 image

Route::query() and Model defaults() in Laravel 13.35

Read article
Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat image

Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat

Read article