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

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

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.

We use cookies to improve your experience and analyze site traffic. Cookie Policy

Cookie Preferences

Essential

Required for the site to work

Analytics

Help us improve the site

Marketing

Personalized ads and content