diff --git a/src/locales/fi.json b/src/locales/fi.json
new file mode 100644
index 000000000..3245a7510
--- /dev/null
+++ b/src/locales/fi.json
@@ -0,0 +1,175 @@
+{
+ "consent.action-accept": "Hyväksy",
+ "consent.action-reject": "Hylkää",
+ "consent.description": "Myönnä oikeudet vain, jos luotat tähän sivustoon tai sovellukseen. Sinun ei tarvitse hyväksyä kaikkia oikeuksia.",
+ "consent.privacy-policy-label": "Tietosuojakäytäntö",
+ "consent.remember-label": "Muista tämä päätös seuraavaa kertaa varten. Sovellus ei voi pyytää lisää oikeuksia ilman suostumustasi.",
+ "consent.remember-tooltip": "muista päätökseni",
+ "consent.requested-permissions-label": "Sovellus pyytää pääsyä seuraaviin oikeuksiin:",
+ "consent.terms-of-service-label": "Käyttöehdot",
+ "error.back-button": "Mene takaisin",
+ "error.description": "Tapahtui virhe. Lisätietoa virhetilanteesta:",
+ "error.support-email-link": "Ota yhteyttä, jos ongelma jatkuu: {contactSupportEmail}",
+ "error.title": "Tapahtui virhe",
+ "error.title-internal-server-error": "Sisäinen palvelinvirhe",
+ "error.title-not-found": "404 - Sivua ei löytynyt",
+ "identities.messages.1010001": "Kirjaudu sisään",
+ "identities.messages.1010002": "Kirjaudu sisään {provider} -tunnuksilla",
+ "identities.messages.1010003": "Vahvista tämä toiminto varmistamalla, että se olet sinä.",
+ "identities.messages.1010004": "Suorita tunnistautumisen toinen vaihe.",
+ "identities.messages.1010005": "Vahvista",
+ "identities.messages.1010006": "Todennuskoodi",
+ "identities.messages.1010007": "Varmuuskopion palautuskoodi",
+ "identities.messages.1010008": "Käytä suojausavainta",
+ "identities.messages.1010009": "Käytä Authenticator-sovellusta",
+ "identities.messages.1010010": "Käytä varmuuskopion palautuskoodia",
+ "identities.messages.1010011": "Jatka suojausavaimella",
+ "identities.messages.1010012": "Valmistele WebAuthn-laite (esim. suojausavain, biometrinen skanneri, ...) ja paina jatka.",
+ "identities.messages.1010013": "Jatka",
+ "identities.messages.1010014": "Sähköpostiisi on lähetetty koodi. Jos et ole saanut sähköpostia, tarkista osoitteen oikeinkirjoitus ja yritä kirjautumista uudelleen.",
+ "identities.messages.1010015": "Kirjaudu sisään koodilla",
+ "identities.messages.1040001": "Rekisteröidy",
+ "identities.messages.1040002": "Rekisteröidy {provider} -tunnuksilla",
+ "identities.messages.1040003": "Jatka",
+ "identities.messages.1040004": "Rekisteröidy suojausavaimella",
+ "identities.messages.1040005": "Sähköpostiisi on lähetetty koodi. Jos et ole saanut sähköpostia, tarkista osoitteen oikeinkirjoitus ja yritä rekisteröitymistä uudelleen.",
+ "identities.messages.1040006": "Rekisteröidy koodilla",
+ "identities.messages.1050001": "Muutoksesi on tallennettu!",
+ "identities.messages.1050002": "Linkitä {provider}",
+ "identities.messages.1050003": "Poista {provider}",
+ "identities.messages.1050004": "Poista TOTP-autentikointisovellus",
+ "identities.messages.1050005": "Autentikointisovelluksen QR-koodi",
+ "identities.messages.1050006": "{secret}",
+ "identities.messages.1050007": "Näytä varmuuskopion palautuskoodit",
+ "identities.messages.1050008": "Luo uudet varmuuskopion palautuskoodit",
+ "identities.messages.1050009": "{secret}",
+ "identities.messages.1050010": "Nämä ovat varmuuskopion palautuskoodisi. Säilytä ne turvallisessa paikassa!",
+ "identities.messages.1050011": "Vahvista varmuuskopion palautuskoodit",
+ "identities.messages.1050012": "Lisää suojausavain",
+ "identities.messages.1050013": "Suojausavaimen nimi",
+ "identities.messages.1050014": "Käytetty",
+ "identities.messages.1050015": "{secrets_list}",
+ "identities.messages.1050016": "Poista käytöstä",
+ "identities.messages.1050017": "Tämä on autentikointisovelluksesi salainen avain. Käytä sitä, jos et voi skannata QR-koodia.",
+ "identities.messages.1050018": "Poista suojausavain \"{display_name}\"",
+ "identities.messages.1060001": "Olet onnistuneesti palauttanut tilisi. Vaihda salasanasi tai aseta vaihtoehtoinen kirjautumistapa (esim. sosiaalinen kirjautuminen) seuraavan {privileged_session_expires_at_unix_until_minutes} minuutin kuluessa.",
+ "identities.messages.1060002": "Sähköposti, joka sisältää palautuslinkin, on lähetetty antamaasi sähköpostiosoitteeseen. Jos et ole saanut sähköpostia, tarkista osoitteen oikeinkirjoitus ja varmista, että käytät rekisteröityä sähköpostiosoitetta.",
+ "identities.messages.1060003": "Sähköposti, joka sisältää palautuskoodin, on lähetetty antamaasi sähköpostiosoitteeseen. Jos et ole saanut sähköpostia, tarkista osoitteen oikeinkirjoitus ja varmista, että käytät rekisteröityä sähköpostiosoitetta.",
+ "identities.messages.1070001": "Salasana",
+ "identities.messages.1070002": "{title}",
+ "identities.messages.1070003": "Tallenna",
+ "identities.messages.1070004": "ID",
+ "identities.messages.1070005": "Lähetä",
+ "identities.messages.1070006": "Vahvista koodi",
+ "identities.messages.1070007": "Sähköposti",
+ "identities.messages.1070008": "Lähetä koodi uudelleen",
+ "identities.messages.1070009": "Jatka",
+ "identities.messages.1070010": "Palautuskoodi",
+ "identities.messages.1070011": "Vahvistuskoodi",
+ "identities.messages.1070012": "Rekisteröintikoodi",
+ "identities.messages.1070013": "Kirjautumiskoodi",
+ "identities.messages.1080001": "Sähköposti, joka sisältää vahvistuslinkin, on lähetetty antamaasi sähköpostiosoitteeseen. Jos et ole saanut sähköpostia, tarkista osoitteen oikeinkirjoitus ja varmista, että käytät rekisteröityä sähköpostiosoitetta.",
+ "identities.messages.1080002": "Olet onnistuneesti vahvistanut sähköpostiosoitteesi.",
+ "identities.messages.1080003": "Sähköposti, joka sisältää vahvistuskoodin, on lähetetty antamaasi sähköpostiosoitteeseen. Jos et ole saanut sähköpostia, tarkista osoitteen oikeinkirjoitus ja varmista, että käytät rekisteröityä sähköpostiosoitetta.",
+ "identities.messages.4000001": "{reason}",
+ "identities.messages.4000002": "Ominaisuus {property} puuttuu.",
+ "identities.messages.4000003": "pituuden on oltava >= {min_length}, nyt se on {actual_length}",
+ "identities.messages.4000004": "ei vastaa vaatimusta \"{pattern}\"",
+ "identities.messages.4000005": "Salasanaa ei voi käyttää, koska {reason}.",
+ "identities.messages.4000006": "Annetut tunnistetiedot ovat virheellisiä. Tarkista mahdolliset kirjoitusvirheet salasanassa, käyttäjänimessä, sähköpostiosoitteessa tai puhelinnumerossa.",
+ "identities.messages.4000007": "Tili samalla tunnistetiedolla (sähköposti, puhelin, käyttäjänimi, jne.) on jo olemassa.",
+ "identities.messages.4000008": "Annettu todennuskoodi on virheellinen. Yritä uudelleen.",
+ "identities.messages.4000009": "Kirjautumistunnisteita ei löytynyt. Unohditko asettaa ne? Tämä voi myös johtua palvelimen väärästä määrityksestä.",
+ "identities.messages.4000010": "Tili ei ole vielä aktiivinen. Unohditko vahvistaa sähköpostiosoitteesi?",
+ "identities.messages.4000011": "Sinulla ei ole TOTP-laitetta määritettynä.",
+ "identities.messages.4000012": "Tämä varmuuskopion palautuskoodi on jo käytetty.",
+ "identities.messages.4000013": "Sinulla ei ole WebAuthn-laitetta määritettynä.",
+ "identities.messages.4000014": "Sinulla ei ole varmuuskopion palautuskoodeja määritettynä.",
+ "identities.messages.4000015": "Tiliä ei ole olemassa tai sille ei ole määritetty turvallisuusavainta.",
+ "identities.messages.4000016": "Varmuuskopion palautuskoodi ei ole kelvollinen.",
+ "identities.messages.4000017": "pituuden on oltava <= {max_length}, nyt se on {actual_length}",
+ "identities.messages.4000018": "täytyy olla >= {minimum}, nyt se on {actual}",
+ "identities.messages.4000019": "täytyy olla > {minimum}, nyt se on {actual}",
+ "identities.messages.4000020": "täytyy olla <= {maximum},nyt se on {actual}",
+ "identities.messages.4000021": "täytyy olla < {maximum}, nyt se on {actual}",
+ "identities.messages.4000022": "{actual} ei ole jaollinen {base}:lla",
+ "identities.messages.4000023": "sallittu enintään {max_items} kohdetta, nyt kohteita on {actual_items} kohdetta",
+ "identities.messages.4000024": "sallittu vähintään {min_items} kohdetta, nyt kohteita on {actual_items} kohdetta",
+ "identities.messages.4000025": "kohteet indekseissä {index_a} ja {index_b} ovat samat",
+ "identities.messages.4000026": "odotettiin {allowed_types_list}, mutta saatiin {actual_type}",
+ "identities.messages.4000027": "Tili samalla tunnistetiedolla (sähköposti, puhelin, käyttäjänimi, jne.) on jo olemassa. Kirjaudu sisään olemassa olevalla tililläsi ja linkitä sosiaalinen profiilisi asetussivulla.",
+ "identities.messages.4000028": "Yritit kirjautua sisään käyttäen {credential_identifier_hint}, joka on jo käytössä toisella tilillä. Voit kirjautua sisään käyttäen {available_credential_types_list}. Voit kirjautua sisään käyttäen yhtä seuraavista sosiaalisen kirjautumisen tarjoajista: {Available_oidc_providers_list}.",
+ "identities.messages.4000029": "täytyy olla yhtä suuri kuin vakio {expected}",
+ "identities.messages.4000030": "vakio epäonnistui",
+ "identities.messages.4000031": "Salasanaa ei voi käyttää, koska se on liian samanlainen tunnistetiedon kanssa.",
+ "identities.messages.4000032": "Salasanan on oltava vähintään {min_length} merkkiä pitkä, mutta saatiin {actual_length} merkkiä.",
+ "identities.messages.4000033": "Salasanan on oltava enintään {max_length} merkkiä pitkä, mutta saatiin {actual_length} merkkiä.",
+ "identities.messages.4000034": "Salasana on löydetty tietovuodoista ja sitä ei saa enää käyttää.",
+ "identities.messages.4000035": "Tiliä ei ole olemassa tai sitä ei ole määritetty kirjautumiseen koodilla.",
+ "identities.messages.4000036": "Annetut ominaisuudet eivät vastaa aiemmin tähän prosessiin liitettyjä ominaisuuksia.",
+ "identities.messages.4010001": "Kirjautumisprosessi vanheni {expired_at_unix_since_minutes} minuuttia sitten, yritä uudelleen.",
+ "identities.messages.4010002": "Kirjautumiseen sopivaa strategiaa ei löytynyt. Täytitkö lomakkeen oikein?",
+ "identities.messages.4010003": "Rekisteröitymiseen sopivaa strategiaa ei löytynyt. Täytitkö lomakkeen oikein?",
+ "identities.messages.4010004": "Asetusten päivittämiseen sopivaa strategiaa ei löytynyt. Täytitkö lomakkeen oikein?",
+ "identities.messages.4010005": "Tilin palauttamiseen sopivaa strategiaa ei löytynyt. Täytitkö lomakkeen oikein?",
+ "identities.messages.4010006": "Tilin vahvistamiseen sopivaa strategiaa ei löytynyt. Täytitkö lomakkeen oikein?",
+ "identities.messages.4010007": "Pyyntö on jo suoritettu onnistuneesti eikä sitä voi yrittää uudelleen.",
+ "identities.messages.4010008": "Kirjautumiskoodi on virheellinen tai sitä on jo käytetty. Yritä uudelleen.",
+ "identities.messages.4040001": "Rekisteröitymisprosessi vanheni {expired_at_unix_since_minutes} minuuttia sitten, yritä uudelleen.",
+ "identities.messages.4040002": "Pyyntö on jo suoritettu onnistuneesti eikä sitä voi yrittää uudelleen.",
+ "identities.messages.4040003": "Rekisteröitymiskoodi on virheellinen tai sitä on jo käytetty. Yritä uudelleen.",
+ "identities.messages.4050001": "Asetusprosessi vanheni {expired_at_unix_since_minutes} minuuttia sitten, yritä uudelleen.",
+ "identities.messages.4060001": "Pyyntö on jo suoritettu onnistuneesti eikä sitä voi yrittää uudelleen.",
+ "identities.messages.4060002": "Palautusprosessissa tapahtui virhe ja sitä on yritettävä uudelleen.",
+ "identities.messages.4060004": "Palautustoken on virheellinen tai sitä on jo käytetty. Yritä prosessia uudelleen.",
+ "identities.messages.4060005": "Palautusprosessi vanheni {expired_at_unix_since_minutes} minuuttia sitten, yritä uudelleen.",
+ "identities.messages.4060006": "Palautuskoodi on virheellinen tai sitä on jo käytetty. Yritä uudelleen.",
+ "identities.messages.4070001": "Vahvistustoken on virheellinen tai sitä on jo käytetty. Yritä prosessia uudelleen.",
+ "identities.messages.4070002": "Pyyntö on jo suoritettu onnistuneesti eikä sitä voi yrittää uudelleen.",
+ "identities.messages.4070003": "Vahvistusprosessi päätyi virhetilaan ja sitä on yritettävä uudelleen.",
+ "identities.messages.4070005": "Vahvistusprosessi vanheni {expired_at_unix_since_minutes} minuuttia sitten, yritä uudelleen.",
+ "identities.messages.4070006": "Vahvistuskoodi on virheellinen tai sitä on jo käytetty. Yritä uudelleen.",
+ "identities.messages.5000001": "{reason}",
+ "login.forgot-password": "Unohditko salasanasi?",
+ "login.logged-in-as-label": "Olet kirjautunut sisään nimellä:",
+ "login.logout-button": "Kirjaudu ulos",
+ "login.logout-label": "Eikö kaikki toimi?",
+ "login.registration-button": "Rekisteröidy",
+ "login.registration-label": "Eikö sinulla ole tiliä?",
+ "login.subtitle-oauth2": "Jotta voidaan tunnistaa {clientName}",
+ "login.title": "Kirjaudu sisään",
+ "login.title-aal2": "Kaksivaiheinen todennus",
+ "login.title-refresh": "Varmista, että se olet sinä",
+ "logout.accept-button": "Kyllä",
+ "logout.reject-button": "Ei",
+ "logout.title": "Haluatko kirjautua ulos?",
+ "recovery.login-button": "Kirjaudu sisään",
+ "recovery.login-label": "Muistatko tunnistetietosi?",
+ "recovery.title": "Palauta tilisi",
+ "registration.login-button": "Kirjaudu sisään",
+ "registration.login-label": "Onko sinulla jo tili?",
+ "registration.subtitle-oauth2": "Jotta voidaan tunnistaa {clientName}",
+ "registration.title": "Rekisteröi tili",
+ "settings.navigation-back-button": "Takaisin",
+ "settings.navigation-backup-codes": "2FA Varmuuskoodit",
+ "settings.navigation-logout": "Kirjaudu ulos",
+ "settings.navigation-oidc": "Sosiaalinen kirjautuminen",
+ "settings.navigation-password": "Salasana",
+ "settings.navigation-profile": "Profiili",
+ "settings.navigation-totp": "Autentikointisovellus",
+ "settings.navigation-webauthn": "Laitetunnisteet",
+ "settings.navigation-passkey": "Avainkoodit",
+ "settings.subtitle-instructions": "Täällä voit hallinnoida tilisi asetuksia. Huomioi, että tietyt toiminnot edellyttävät uudelleentunnistautumista.",
+ "settings.title": "Tilin asetukset",
+ "settings.title-lookup-secret": "Hallinnoi 2FA varmuuskoodit",
+ "settings.title-navigation": "Tilin asetukset",
+ "settings.title-oidc": "Sosiaalinen kirjautuminen",
+ "settings.title-password": "Vaihda salasana",
+ "settings.title-profile": "Profiilin asetukset",
+ "settings.title-totp": "Hallinnoi 2FA TOTP Autentikointisovellus",
+ "settings.title-webauthn": "Hallinnoi laitetunnisteita",
+ "settings.title-passkey": "Hallinnoi avainkoodeja",
+ "verification.registration-button": "Rekisteröidy",
+ "verification.registration-label": "Eikö sinulla ole tiliä?",
+ "verification.title": "Vahvista tilisi"
+}
diff --git a/src/locales/index.ts b/src/locales/index.ts
index c0f2e2340..39a5f2078 100644
--- a/src/locales/index.ts
+++ b/src/locales/index.ts
@@ -9,3 +9,4 @@ export { default as nl } from "./nl.json"
export { default as se } from "./se.json"
export { default as pt } from "./pt.json"
export { default as pl } from "./pl.json"
+export { default as fi } from "./fi.json"