laravel-lang/http-statuses
Localized HTTP status texts for Laravel apps. Adds translation resources for common status codes, making API errors and responses readable in multiple languages. Install via Composer (dev) and integrate with Laravel’s localization system.
Installation:
composer require laravel-lang/http-statuses
Publish translations (if needed):
php artisan vendor:publish --provider="LaravelLang\HttpStatuses\ServiceProvider"
First Use Case: Display a translated HTTP status message in a controller or Blade template:
use LaravelLang\HttpStatuses\Facades\HttpStatuses;
$status = HttpStatuses::get(404); // Returns "Not Found" in the current locale
return response()->json(['error' => $status], 404);
Where to Look First:
LaravelLang\HttpStatuses\Facades\HttpStatusesresources/lang/{locale}/http-statuses.jsonDynamic Status Messages:
// In a controller or service
$message = HttpStatuses::get($httpStatusCode);
return response()->json(['message' => $message], $httpStatusCode);
Blade Integration:
@php
$status = LaravelLang\HttpStatuses\Facades\HttpStatuses::get($responseStatus);
@endphp
<p>{{ $status }}</p>
API Responses:
return response()->json([
'success' => false,
'message' => HttpStatuses::get(429),
'retry_after' => now()->addMinutes(5)
], 429);
Custom Error Pages:
// app/Exceptions/Handler.php
public function render($request, Throwable $exception)
{
if ($exception instanceof HttpResponseException) {
$status = HttpStatuses::get($exception->getStatusCode());
return response()->view('errors.custom', [
'status' => $status,
'exception' => $exception
], $exception->getStatusCode());
}
return parent::render($request, $exception);
}
AppServiceProvider).en) translations.$this->assertEquals('Not Found', HttpStatuses::get(404));
Locale Mismatches:
HttpStatuses::get().app()->setLocale('es'); // Force locale for testing
Missing Translations:
Caching:
php artisan cache:clear
php artisan view:clear
// Dump all available translations for a locale
dd(HttpStatuses::all('es'));
resources/lang/{locale}/http-statuses.json:
php artisan vendor:publish --tag=http-statuses --force
Add Custom Status Codes: Extend the package by publishing and modifying the JSON files, or create a custom service:
use Illuminate\Support\Facades\File;
class CustomHttpStatuses extends \LaravelLang\HttpStatuses\Facades\HttpStatuses
{
public static function get($code)
{
$customStatuses = [
999 => 'Custom Status Message',
];
return $customStatuses[$code] ?? parent::get($code);
}
}
Dynamic Context: Use Laravel’s translation system to pass context:
__('http-statuses::403', [], 'es'); // Directly use the JSON key
Performance: For high-traffic APIs, preload translations in a service provider:
public function boot()
{
app()->singleton('http-statuses', function () {
return collect(HttpStatuses::all())->mapWithKeys(fn ($messages, $locale) => [
$locale => collect($messages)->map(fn ($msg, $code) => [
'code' => $code,
'message' => $msg,
]),
]);
});
}
How can I help you explore Laravel packages today?