diff --git a/languages/fair-fi-1e0488bf27452c3c82c671ffb4af7e1e.json b/languages/fair-fi-1e0488bf27452c3c82c671ffb4af7e1e.json
new file mode 100644
index 0000000..b56d93e
--- /dev/null
+++ b/languages/fair-fi-1e0488bf27452c3c82c671ffb4af7e1e.json
@@ -0,0 +1 @@
+{"translation-revision-date":"2025-06-16 16:34+0000","generator":"Loco https:\/\/localise.biz\/","source":"assets\/js\/fair-avatars.js","domain":"fair","locale_data":{"fair":{"":{"domain":"","lang":"fi","plural-forms":"nplurals=2; plural=n != 1;"},"Choose Profile Picture":["Valitse profiilikuva"],"Profile Picture Assigned":["Porfiilikuva asetettu"],"Profile Picture Removed":["Profiilikuva poistettu"],"Use as Profile Picture":["K\u00e4yt\u00e4 profiilikuvana"]}}}
\ No newline at end of file
diff --git a/languages/fair-fi.l10n.php b/languages/fair-fi.l10n.php
new file mode 100644
index 0000000..34fb89c
--- /dev/null
+++ b/languages/fair-fi.l10n.php
@@ -0,0 +1,2 @@
+'FAIR - Federated and Independent Repositories','report-msgid-bugs-to'=>'','pot-creation-date'=>'2025-06-07 08:58+0000','po-revision-date'=>'2025-06-16 16:34+0000','last-translator'=>'','language-team'=>'Finnish','language'=>'fi','plural-forms'=>'nplurals=2; plural=n != 1;','mime-version'=>'1.0','content-type'=>'text/plain; charset=UTF-8','content-transfer-encoding'=>'8bit','x-generator'=>'Loco https://localise.biz/','x-loco-version'=>'2.8.0; wp-6.7.2; php-8.1.29','x-domain'=>'fair','messages'=>['%1$sAutomatic update is unavailable for this theme.%2$s'=>'%1$sAutomaattinen päivitys ei ole saatavilla tälle teemalle.%2$s','%s is not a valid version string.'=>'%s ei ole kelvollinen versio.','alt for unknown avatar userprofile picture for user'=>'profiilikuva käyttäjälle','Avatar Settings'=>'Avatarin asetukset','Avatar Source'=>'Avatarin lähde','Avatars will be loaded from the selected source.'=>'Avatarit ladataan valitusta lähteestä.','browser version checkyour browser'=>'selaimesi','browser version checkyour platform'=>'alustasi','Choose Profile Image'=>'Valitse profiilikuva','Choose Profile Picture'=>'Valitse profiilikuva','default event locationOnline'=>'Verkossa','Events (by The WP World)'=>'Tapahtumat (lähteenä The WP World)','Events and News dashboard widgethttps://fair.pm/'=>'https://fair.pm/','FAIR - Federated and Independent Repositories'=>'FAIR - Federated and Independent Repositories','FAIR Avatars'=>'FAIR-avatarit','FAIR Contributors'=>'FAIR-kontribuutiot','FAIR Settings'=>'FAIR-asetukset','Gravatar'=>'Gravatar','If you want to learn more, check out the %1$s and our %2$s.'=>'Jos haluat lisätietoa, tutustu %1$s ja %2$s.','Make your site more FAIR.'=>'Tee sivustostasi enemmän FAIR:n avulla.','No credits could be found.'=>'Tekijöitä ei löytynyt.','Profile Picture Assigned'=>'Porfiilikuva asetettu','profile picture for %s'=>'profiilikuva, %s','Profile Picture Removed'=>'Profiilikuva poistettu','Remove Profile Image'=>'Poista profiilikuva','Save Settings'=>'Tallenna asetukset','Settings saved successfully.'=>'Asetukset tallennettu onnistuneesti.','There is a new version of %s available.'=>'Uusi versio %s saatavilla.','Unable to fetch events (parse error).'=>'Tapahtumia ei voitu hakea (virhe datan käsittelyssä).','Update %s now'=>'Päivitä %s nyt','Updates served from the FAIR Package Manager and AspirePress'=>'Päivitykset toimitetaan FAIR-paketinhallinnasta ja AspirePressistä','Upload a custom profile picture for your account.'=>'Lataa tilillesi mukautettu profiilikuva.','Use as Profile Picture'=>'Käytä profiilikuvana','View version %1$s details%2$s or %3$supdate now%2$s.'=>'Katso version %1$s tiedot%2$s tai %3$späivitä nyt%2$s.','View version %1$s details%2$s.'=>'Näytä version %1$s tiedot%2$s.','You do not have sufficient permissions to access this page.'=>'Sinulla ei ole riittäviä oikeuksia käyttää tätä sivua.','Your site is now disconnected from WordPress.org managed servers and uses a dedicated mirror from %s. In the coming weeks and months, we\'ll be making the mirror configurable and add in the ability to add your own.'=>'Sivustosi on nyt irrotettu WordPress.org:in hallinnoimista palvelimista ja käyttää erillistä peilipalvelinta %s. Tulevien viikkojen ja kuukausien aikana teemme peilipalvelimesta konfiguroitavan ja lisäämme mahdollisuuden lisätä oman peilipalvelimen.']];
diff --git a/languages/fair-fi.mo b/languages/fair-fi.mo
new file mode 100644
index 0000000..0fef741
Binary files /dev/null and b/languages/fair-fi.mo differ
diff --git a/languages/fair-fi.po b/languages/fair-fi.po
new file mode 100644
index 0000000..feb8004
--- /dev/null
+++ b/languages/fair-fi.po
@@ -0,0 +1,205 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: FAIR - Federated and Independent Repositories\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-06-07 08:58+0000\n"
+"PO-Revision-Date: 2025-06-16 16:34+0000\n"
+"Last-Translator: \n"
+"Language-Team: Finnish\n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Loco https://localise.biz/\n"
+"X-Loco-Version: 2.8.0; wp-6.7.2; php-8.1.29\n"
+"X-Domain: fair"
+
+#. translators: %s: opening/closing paragraph and italic tags
+#: inc/updater/class-lite.php:420
+#, php-format
+msgid "%1$sAutomatic update is unavailable for this theme.%2$s"
+msgstr "%1$sAutomaattinen päivitys ei ole saatavilla tälle teemalle.%2$s"
+
+#. translators: %s: The version string.
+#: inc/credits/namespace.php:85
+#, php-format
+msgid "%s is not a valid version string."
+msgstr "%s ei ole kelvollinen versio."
+
+#: inc/avatars/namespace.php:256
+msgctxt "alt for unknown avatar user"
+msgid "profile picture for user"
+msgstr "profiilikuva käyttäjälle"
+
+#: inc/settings/namespace.php:107
+msgid "Avatar Settings"
+msgstr "Avatarin asetukset"
+
+#: inc/settings/namespace.php:112
+msgid "Avatar Source"
+msgstr "Avatarin lähde"
+
+#: inc/settings/namespace.php:124
+msgid "Avatars will be loaded from the selected source."
+msgstr "Avatarit ladataan valitusta lähteestä."
+
+#: inc/version-check/namespace.php:101
+msgctxt "browser version check"
+msgid "your browser"
+msgstr "selaimesi"
+
+#: inc/version-check/namespace.php:100
+msgctxt "browser version check"
+msgid "your platform"
+msgstr "alustasi"
+
+#: inc/avatars/namespace.php:93
+msgid "Choose Profile Image"
+msgstr "Valitse profiilikuva"
+
+#: assets/js/fair-avatars.js:20
+msgid "Choose Profile Picture"
+msgstr "Valitse profiilikuva"
+
+#: inc/dashboard-widgets/namespace.php:101
+msgctxt "default event location"
+msgid "Online"
+msgstr "Verkossa"
+
+#: inc/dashboard-widgets/namespace.php:186
+msgid "Events (by The WP World)"
+msgstr "Tapahtumat (lähteenä The WP World)"
+
+#. translators: If a Rosetta site exists (e.g. https://es.fair.pm/news/), then use that. Otherwise, leave untranslated.
+#: inc/dashboard-widgets/namespace.php:173
+msgctxt "Events and News dashboard widget"
+msgid "https://fair.pm/"
+msgstr "https://fair.pm/"
+
+#. Plugin Name of the plugin
+#: plugin.php
+msgid "FAIR - Federated and Independent Repositories"
+msgstr "FAIR - Federated and Independent Repositories"
+
+#: inc/settings/namespace.php:167
+msgid "FAIR Avatars"
+msgstr "FAIR-avatarit"
+
+#. Author of the plugin
+#: plugin.php
+msgid "FAIR Contributors"
+msgstr "FAIR-kontribuutiot"
+
+#: inc/settings/namespace.php:46 inc/settings/namespace.php:47
+#: inc/settings/namespace.php:71
+msgid "FAIR Settings"
+msgstr "FAIR-asetukset"
+
+#: inc/settings/namespace.php:168
+msgid "Gravatar"
+msgstr "Gravatar"
+
+#. translators: %1$s: FAIR GitHub URL, %2$s: FAQ URL
+#: inc/settings/namespace.php:79
+#, php-format
+msgid "If you want to learn more, check out the %1$s and our %2$s."
+msgstr "Jos haluat lisätietoa, tutustu %1$s ja %2$s."
+
+#. Description of the plugin
+#: plugin.php
+msgid "Make your site more FAIR."
+msgstr "Tee sivustostasi enemmän FAIR:n avulla."
+
+#: inc/credits/namespace.php:114
+msgid "No credits could be found."
+msgstr "Tekijöitä ei löytynyt."
+
+#: assets/js/fair-avatars.js:44
+msgid "Profile Picture Assigned"
+msgstr "Porfiilikuva asetettu"
+
+#. translators: %s: Name of person in profile picture
+#: inc/avatars/namespace.php:244 inc/avatars/namespace.php:260
+#, php-format
+msgid "profile picture for %s"
+msgstr "profiilikuva, %s"
+
+#: assets/js/fair-avatars.js:60
+msgid "Profile Picture Removed"
+msgstr "Profiilikuva poistettu"
+
+#: inc/avatars/namespace.php:94
+msgid "Remove Profile Image"
+msgstr "Poista profiilikuva"
+
+#: inc/settings/namespace.php:86
+msgid "Save Settings"
+msgstr "Tallenna asetukset"
+
+#: inc/settings/namespace.php:182
+msgid "Settings saved successfully."
+msgstr "Asetukset tallennettu onnistuneesti."
+
+#. translators: %s: theme name
+#: inc/updater/class-lite.php:391
+#, php-format
+msgid "There is a new version of %s available."
+msgstr "Uusi versio %s saatavilla."
+
+#: inc/dashboard-widgets/namespace.php:94
+msgid "Unable to fetch events (parse error)."
+msgstr "Tapahtumia ei voitu hakea (virhe datan käsittelyssä)."
+
+#. translators: %s: theme name
+#: inc/updater/class-lite.php:407
+#, php-format
+msgid "Update %s now"
+msgstr "Päivitä %s nyt"
+
+#. translators: 1) Fair PM URL, 2) AspirePress URL.
+#: inc/user-notification/namespace.php:27
+#, php-format
+msgid ""
+"Updates served from the FAIR Package Manager and AspirePress"
+msgstr ""
+"Päivitykset toimitetaan FAIR-paketinhallinnasta ja AspirePressistä"
+
+#: inc/avatars/namespace.php:97
+msgid "Upload a custom profile picture for your account."
+msgstr "Lataa tilillesi mukautettu profiilikuva."
+
+#: assets/js/fair-avatars.js:22
+msgid "Use as Profile Picture"
+msgstr "Käytä profiilikuvana"
+
+#. translators: 1: version number, 2: closing anchor tag, 3: update URL
+#: inc/updater/class-lite.php:402
+#, php-format
+msgid "View version %1$s details%2$s or %3$supdate now%2$s."
+msgstr "Katso version %1$s tiedot%2$s tai %3$späivitä nyt%2$s."
+
+#. translators: 1: version number, 2: closing anchor tag, 3: update URL
+#: inc/updater/class-lite.php:414
+#, php-format
+msgid "View version %1$s details%2$s."
+msgstr "Näytä version %1$s tiedot%2$s."
+
+#: inc/settings/namespace.php:60
+msgid "You do not have sufficient permissions to access this page."
+msgstr "Sinulla ei ole riittäviä oikeuksia käyttää tätä sivua."
+
+#. translators: %s: AspirePress website URL
+#: inc/settings/namespace.php:74
+#, php-format
+msgid ""
+"Your site is now disconnected from WordPress.org managed servers and uses a "
+"dedicated mirror from %s. In the coming weeks and months, we'll be making "
+"the mirror configurable and add in the ability to add your own."
+msgstr ""
+"Sivustosi on nyt irrotettu WordPress.org:in hallinnoimista palvelimista ja "
+"käyttää erillistä peilipalvelinta %s. Tulevien viikkojen ja kuukausien "
+"aikana teemme peilipalvelimesta konfiguroitavan ja lisäämme mahdollisuuden "
+"lisätä oman peilipalvelimen."