Laravel localization in Finnish Suomi
Everything you need to ship Finnish 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
fi
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,
Finnish commonly uses:
fi_FI
// config/app.php
'locale' => 'fi',
'fallback_locale' => 'en',
// Or switch at runtime
App::setLocale('fi');
Plural rules: what Finnish actually needs
CLDR defines 2 cardinal categories for Finnish. The sample numbers below were computed by ICU for this exact locale:
| CLDR category | Numbers that select it |
|---|---|
| one | 1 |
| other | 0, 2–130, 200, 1000, 1000000, 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/fi/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 Finnish (fi locale),
generated by Carbon for March 21, 2026:
$date = now()->locale('fi');
$date->translatedFormat('l, j F Y');
// "lauantai, 21 maaliskuu 2026"
$date->isoFormat('LLLL');
// "21. maaliskuuta 2026 14.30"
$date->isoFormat('L');
// "21.3.2026"
$date->subDays(3)->diffForHumans();
// "3 kuukautta sitten"
What to watch out for in Finnish
- Agglutinative with roughly 15 grammatical cases; suffixes replace prepositions, so concatenated placeholders often break grammar.
- Vowel harmony determines suffix vowels (a/ä, o/ö, u/y), so endings cannot be appended blindly.
- No grammatical gender and no articles; informal sinä is standard in modern UI copy.
- Decimal comma with space as thousands separator (1 234,56); dates are written d.m.yyyy.
Fifteen cases, expressed as suffixes
Finnish is agglutinative and has around fifteen grammatical cases, all expressed by suffixes attached to the noun. There are almost no prepositions: where English says in the file, from the file, to the file, Finnish says tiedostossa, tiedostosta, tiedostoon.
| Case | Meaning | "file" (tiedosto) |
|---|---|---|
| Nominative | the file | tiedosto |
| Genitive | of the file | tiedoston |
| Partitive | some of the file | tiedostoa |
| Inessive | in the file | tiedostossa |
| Elative | out of the file | tiedostosta |
| Illative | into the file | tiedostoon |
| Adessive | on the file | tiedostolla |
This means a placeholder holding a noun is unusable in most sentences. The word that must appear is not the base form but an inflected one whose ending depends on the grammatical role, and there is no way for a template to supply it.
A template that cannot be corrected
// English reuses one word:
// 'Saved in :folder'
// 'Deleted from :folder'
//
// Finnish needs different endings:
// Tallennettu kansioon (illative)
// Poistettu kansiosta (elative)
//
// The suffix belongs to the variable, not the template.
Vowel harmony compounds it. Finnish suffixes come in front and back variants — -ssa or -ssä, -lla or -llä — chosen by the vowels in the stem. So even if you knew which case was required, the written form of that case still depends on the word it attaches to.
The workable pattern is the same as in Hungarian: quote the variable in its base form and attach grammar to a fixed noun you control. Tallennettu kansioon ”Kuvat” puts the case ending on kansio (folder) and leaves the variable untouched.
Consonant gradation changes the stem
Finnish does not merely append suffixes; adding one often alters the stem itself. Consonant gradation makes k, p and t weaken or disappear in certain inflected forms, so the recognisable root changes shape.
| Nominative | Genitive | Change |
|---|---|---|
| katu (street) | kadun | t → d |
| kauppa (shop) | kaupan | pp → p |
| pankki (bank) | pankin | kk → k |
| tiedosto (file) | tiedoston | no change |
For software this rules out any attempt at programmatic inflection, and it also affects search. A user typing kadun is looking for katu, and a substring match will not connect them because the stem itself differs. Meaningful Finnish search needs stemming or a morphological analyser rather than prefix matching.
It also means autocomplete and fuzzy matching tuned for English behave poorly. Two forms of the same word can differ by more edit distance than two genuinely unrelated words, so edit-distance thresholds calibrated on English produce noticeably worse results.
Practically, that means Finnish search benefits more than most languages from a proper analyser. Elasticsearch, Meilisearch and PostgreSQL full-text search all ship Finnish stemmers, and enabling the right one is usually the difference between search that works and search users abandon. A LIKE '%term%' query is workable in English and close to useless in Finnish.
The longest words you will have to lay out
Finnish compounds like German and stacks suffixes on top, which produces the longest ordinary words of any language likely to appear in your interface. Käyttäjätilin asetukset (user account settings) is comparatively restrained; real compounds run considerably longer and contain no spaces to break at.
| English | Finnish | Growth |
|---|---|---|
| Save | Tallenna | +100% |
| Settings | Asetukset | +13% |
| Cancel | Peruuta | +17% |
| Sign in | Kirjaudu sisään | +114% |
| User account settings | Käyttäjätilin asetukset | compound |
Finnish expands roughly thirty to forty per cent over English despite having no articles, because case endings and compounding more than compensate. Treat it as the worst case for layout alongside German, and test with a genuinely long compound rather than with short labels.
Allow long compounds to break
<span class="hyphens-auto break-words" lang="fi">
Käyttäjätilinasetukset
</span>
<!-- lang="fi" is required for hyphenation:
without it the browser has no dictionary
and hyphens:auto does nothing. -->
The double vowels and double consonants that Finnish uses contrastively — tuli (fire), tuuli (wind), tulli (customs) are three different words — mean spelling correction and fuzzy matching must not treat repeated letters as noise. A deduplication routine that collapses doubled characters, which is a reasonable heuristic for English typos, will merge genuinely distinct Finnish words.
No gender, no articles, no future tense
Finnish has no grammatical gender and no gendered pronouns: hän covers he and she. As in Hungarian, this removes an entire category of translation difficulty and makes gender-neutral copy the default rather than something to engineer.
There are also no articles. Definiteness is conveyed by word order and case rather than by a word, which is one reason Finnish text is less inflated by function words than the case system alone would suggest — and why a translator will not produce a direct equivalent for every the in your source.
Finnish has no grammatical future tense either; the present is used with context supplying the time. A source string relying on tense to distinguish two states — "your subscription renews" against "your subscription will renew" — may translate identically into Finnish, so distinctions that matter should be made explicit with a date or a qualifier rather than left to tense.
Plurals use two CLDR categories, so trans_choice() takes a two-part string. There is a wrinkle: after a number greater than one, Finnish uses the partitive singular rather than the plural — kaksi tiedostoa, not kaksi tiedostot. The form is singular in shape while meaning several, which translators handle naturally and which looks wrong to anyone checking mechanically against an English plural.
Formality, sorting and formatting
Finnish has a formal plural address (te) but it is used far less than in most European languages. Finnish culture is markedly informal, and essentially all consumer and business software uses the informal sinä. Formal address appears mainly in official correspondence and can read as stiff or distancing in an interface. This makes the register decision unusually easy compared with German or French: choose the informal form and it will be right for almost every product.
Sorting has a Finnish-specific rule: å, ä and ö are distinct letters that sort at the end of the alphabet, after z, rather than beside a and o. A collator configured for German would place ä with a, which is wrong for Finnish, so the locale matters and a generic Unicode collation is not sufficient.
Finnish collation places ä and ö after z
<?php
$collator = new Collator('fi_FI');
$collator->sort($words);
// Correct Finnish order: ... y, z, å, ä, ö
// A byte sort or a German collator gets this wrong.
| Finnish convention | |
|---|---|
| Thousands | 1 234 567 (non-breaking space) |
| Decimal | 1234,56 |
| Currency | 1 234,56 € |
| Short date | 21.3.2026 |
| Long date | 21. maaliskuuta 2026 |
| First day of week | Monday |
| Time | 24-hour (14.30, with a full stop) |
Times use a full stop rather than a colon as the separator, which is unusual and easy to miss. Long dates put the month in the partitive — maaliskuuta rather than maaliskuu — and month names are lowercase. Both are handled correctly by Carbon with the locale set and incorrectly by any hand-built formatter.
Finland is a two-language market
Swedish is an official language of Finland alongside Finnish, and this has consequences that go beyond offering a second translation. Around five per cent of the population speaks Swedish as a first language, concentrated on the coast and in the Åland Islands, and Finnish public-sector procurement generally requires both.
The Swedish used in Finland is not identical to the Swedish used in Sweden. Finland Swedish has its own vocabulary for administrative and everyday concepts, and shipping Sweden Swedish into Finland reads as foreign in the same way that shipping France French into Quebec does. If Finland matters commercially, treat Finland Swedish as its own locale rather than aliasing it.
This also shapes how names and addresses behave. Finnish and Swedish place names often have two official forms — Helsinki and Helsingfors, Turku and Åbo — both correct and both in active use. Address validation that accepts only one form will reject legitimate input, and search should match either.
Practically, that means Finnish deployments frequently need three locales rather than one: Finnish, Finland Swedish and English. Plan the locale model for that from the beginning, because retrofitting a regional variant after building on a bare language code means auditing every string rather than adding a file.
Set the full locale for formatting in all cases. Finnish and Finland Swedish share the space thousands separator, the decimal comma and the full stop in times, but they differ in month names, date wording and sorting rules, and a bare language code will get at least one of them wrong.
What ships broken most often
- Nouns interpolated into sentences. The case ending belongs to the variable, so no template can be correct.
- Truncated compounds. Very long unbreakable words overflowing buttons and table headers.
- Sorting that places ä beside a. A German or generic collator applied to Finnish.
- Search that cannot match inflected forms. Prefix matching defeated by consonant gradation.
- Plural forms after numbers. Kaksi tiedostot instead of the partitive kaksi tiedostoa.
- Colons in times. 14:30 rather than the Finnish 14.30.
- Decimal comma truncating numeric input. The usual silent data loss.
Finnish is, with Hungarian, the strongest argument for writing complete messages rather than assembling them. If your string architecture holds up here it will hold up almost anywhere, and teams that add Finnish late generally find it forces a restructuring that would have benefited every other locale from the start.
Install the Laravel-Lang Finnish files for framework strings. Validation messages involve case endings and partitive forms across dozens of rules, and the community translations already apply them consistently.
Finnish users, like Dutch and Scandinavian ones, read English comfortably, so a missing translation produces no complaint and stays in production indefinitely. Verify coverage with a key-parity check in CI rather than waiting for reports that will never arrive.
Framework strings already translated
Laravel's own validation, auth and pagination strings are maintained in Finnish 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 fi
php artisan lang:update
Translate your app into Finnish today
Import your lang files, translate every key into Finnish with one AI click, and publish changes live — no deploy. Set up in 5 minutes.