Laravel localization in Catalan Català
Everything you need to ship Catalan in a Laravel app: the right locale codes,
the exact plural forms trans_choice() expects,
real localized Carbon output and Latin-script considerations.
Every value on this page was generated by running ICU, CLDR and Carbon — not copied from another article.
ISO 639-1
ca
Script / Direction
Latin · LTR
Plural forms (Laravel)
2
Text vs English
Expands
Locale codes
Set the base locale in config/app.php. For regional variants,
Catalan commonly uses:
ca_ES, ca_AD, ca_FR, ca_IT
// config/app.php
'locale' => 'ca',
'fallback_locale' => 'en',
// Or switch at runtime
App::setLocale('ca');
Plural rules: what Catalan actually needs
CLDR defines 3 cardinal categories for Catalan. The sample numbers below were computed by ICU for this exact locale:
| CLDR category | Numbers that select it |
|---|---|
| one | 1 |
| many | 1000000 |
| other | 0, 2–130, 200, 1000, 1.5 |
Laravel's trans_choice() maps numbers to
2 pipe-separated
forms for this locale:
| Form index | Numbers that select it |
|---|---|
| 0 | 1 |
| 1 | 0, 2–130, 200, 1000 |
// lang/ca/messages.php
'items' => ':count item|:count items'
// Usage
trans_choice('messages.items', $count, ['count' => $count]);
Try any number live in the pluralization tester.
Localized dates with Carbon
Real output for Catalan (ca locale),
generated by Carbon for March 21, 2026:
$date = now()->locale('ca');
$date->translatedFormat('l, j F Y');
// "dissabte, 21 de març 2026"
$date->isoFormat('LLLL');
// "dissabte 21 de març de 2026 a les 14:30"
$date->isoFormat('L');
// "21/03/2026"
$date->subDays(3)->diffForHumans();
// "fa 3 mesos"
What to watch out for in Catalan
- Uses tu/vostè formal-informal distinction; agree on register before translating UI copy.
- Articles elide before vowels (l'usuari, l'hora), so avoid gluing raw articles to placeholders.
- Nouns are gendered (masculine/feminine) and adjectives agree in gender and number.
- Decimal comma with dot as thousands separator (1.234,56).
Framework strings already translated
Laravel's own validation, auth and pagination strings are maintained in Catalan by the open-source Laravel-Lang project (MIT). Install them, then manage your app's own strings live:
composer require laravel-lang/common --dev
php artisan lang:add ca
php artisan lang:update
Translate your app into Catalan today
Import your lang files, translate every key into Catalan with one AI click, and publish changes live — no deploy. Set up in 5 minutes.