diff --git a/client/strings/fi.json b/client/strings/fi.json
index 600db265..dde7009e 100644
--- a/client/strings/fi.json
+++ b/client/strings/fi.json
@@ -275,7 +275,7 @@
"LabelBonus": "Bonus",
"LabelBooks": "Kirjat",
"LabelButtonText": "Painikkeen teksti",
- "LabelByAuthor": "tekijältä {0}",
+ "LabelByAuthor": "Tekijältä: {0}",
"LabelChangePassword": "Vaihda salasana",
"LabelChannels": "Kanavat",
"LabelChapterCount": "{0} lukua",
@@ -790,6 +790,7 @@
"MessageConfirmRemoveAuthor": "Oletko varma, että haluat poistaa tekijän \"{0}\"?",
"MessageConfirmRemoveCollection": "Oletko varma, että haluat poistaa kokoelman \"{0}\"?",
"MessageConfirmRemoveEpisode": "Oletko varma, että haluat poistaa jakson \"{0}\"?",
+ "MessageConfirmRemoveEpisodeNote": "Huomioi: Tämä ei poista äänitiedostoa, ellei \"Poista tiedosto pysyvästi\" -asetusta ole valittuna",
"MessageConfirmRemoveEpisodes": "Oletko varma, että haluat poistaa {0} jaksoa?",
"MessageConfirmRemoveListeningSessions": "Oletko varma, että haluat poistaa {0} kuuntelukertaa?",
"MessageConfirmRemoveMetadataFiles": "Oletko varma, että haluat poistaa kaikki metadata.{0}-tiedostot kirjaston kohdekansioista?",
@@ -816,6 +817,7 @@
"MessageFetching": "Haetaan...",
"MessageForceReScanDescription": "skannaa kaikki tiedostot uudelleen kuten uusi tarkistus. Äänitiedoston ID3-tunnisteet, OPF-tiedostot ja tekstitiedostot skannataan uusina.",
"MessageHeatmapListeningTimeTooltip": "{0} kuunnellaan on {1}",
+ "MessageHeatmapNoListeningSessions": "Ei kuuntelujaksoja {0}",
"MessageImportantNotice": "Tärkeä huomautus!",
"MessageInsertChapterBelow": "Syötä luku alle",
"MessageInvalidAsin": "Virheellinen ASIN",
@@ -886,10 +888,11 @@
"MessageResetChaptersConfirm": "Oletko varma, että haluat nollata luvut ja kumota tekemäsi muutokset?",
"MessageRestoreBackupConfirm": "Oletko varma, että haluat palauttaa varmuuskopion, joka on luotu",
"MessageRestoreBackupWarning": "Varmuuskopion palauttaminen korvaa koko /config:ssa sijaitsevan tietokannan, ja kansikuvat /metadata/items & /metadata/authors:ssa.
Varmuuskopiot eivät muuta kirjastokansioissasi olevia tiedostoja. Jos olet ottanut käyttöön palvelinasetuksissa kansikuvien ja metatietojen tallentamisen kirjaston kansioihin, niitä ei varmuuskopioida tai korvata.
Kaikki palvelintasi käyttävät asiakkaat virkistetään automaattisesti.",
- "MessageScheduleLibraryScanNote": "Suurimmalle osaa käyttäjistä on suositeltavaa jättää tämä ominaisuus pois päältä ja \"Tarkkaile kirjaston muutoksia automaattisesti\" -asetus pidetään käytössä - se havaitsee muutokset kirjastokansioissasi automaattisesti. Ota tämä ominaisuus käyttöön, jos \"Tarkkaile kirjaston muutoksia automaattisesti\" ei toimi tiedostojärjestelmässäsi (kuten NFS).\"",
+ "MessageScheduleLibraryScanNote": "Suurimmalle osaa käyttäjistä on suositeltavaa jättää tämä ominaisuus pois päältä ja \"Tarkkaile kirjaston muutoksia automaattisesti\" -asetus pidetään käytössä - se havaitsee muutokset kirjastokansioissasi automaattisesti. Ota tämä ominaisuus käyttöön, jos \"Tarkkaile kirjaston muutoksia automaattisesti\" ei toimi tiedostojärjestelmässäsi (kuten NFS).",
"MessageScheduleRunEveryWeekdayAtTime": "Suorita joka {0} klo {1}",
"MessageSearchResultsFor": "Hakutulokset haulle",
"MessageSelected": "{0} valittuna",
+ "MessageSeriesSequenceCannotContainSpaces": "Sarjan sekvenssi ei voi sisältää välilyöntejä",
"MessageServerCouldNotBeReached": "Palvelimelle ei saatu yhteyttä",
"MessageSetChaptersFromTracksDescription": "Aseta luvut käyttämällä kutakin äänitiedostoa lukuna ja luvun otsikkoa äänitiedoston nimenä",
"MessageShareExpirationWillBe": "Umpeutuminen on {0}",
@@ -951,7 +954,10 @@
"NotificationOnBackupCompletedDescription": "Laukaistu, kun varmuuskopiointi on valmis",
"NotificationOnBackupFailedDescription": "Laukaistu, kun varmuuskopiointi epäonnistuu",
"NotificationOnEpisodeDownloadedDescription": "Laukaistu, kun podcast-jakso ladataan automaattisesti",
+ "NotificationOnRSSFeedDisabledDescription": "Laukaistaan, kun automaattiset jaksolataukset poistetaan käytöstä liian monen epäonnistuneen yrityksen vuoksi",
+ "NotificationOnRSSFeedFailedDescription": "Laukaistaan, kun RRS-syötteen pyyntö epäonnistuu automaattisessa jaksolatauksessa",
"NotificationOnTestDescription": "Tapahtuma ilmoitusjärjestelmän testaamista varten",
+ "PlaceholderBulkChapterInput": "Syötä luvun otsikko tai käytä numerointia (esim. 'Episodi 1', 'Luku 10', '1.')",
"PlaceholderNewCollection": "Uusi kokoelman nimi",
"PlaceholderNewFolderPath": "Uusi kansion polku",
"PlaceholderNewPlaylist": "Uusi soittolistan nimi",
@@ -1005,15 +1011,23 @@
"ToastBookmarkCreateFailed": "Kirjanmerkin luominen epäonnistui",
"ToastBookmarkCreateSuccess": "Kirjanmerkki lisätty",
"ToastBookmarkRemoveSuccess": "Kirjanmerkki poistettu",
+ "ToastBulkChapterInvalidCount": "Syötä numero 1 ja 150 välillä",
"ToastCachePurgeFailed": "Välimuistin tyhjentäminen epäonnistui",
"ToastCachePurgeSuccess": "Välimuisti tyhjennetty onnistuneesti",
+ "ToastChapterLocked": "Luku on lukittu.",
+ "ToastChapterStartTimeAdjusted": "Luvun aloitusaikaa on säädetty {0} sekunnilla",
+ "ToastChaptersAllLocked": "Kaikki luvut ovat lukittuina. Avaa lukuja vaihtaaksesi niiden aikoja.",
"ToastChaptersHaveErrors": "Luvuissa on virheitä",
+ "ToastChaptersInvalidShiftAmountLast": "Virheellinen siirtomäärä. Viimeisen luvun aloitusaika ylittäisi tämän äänikirjan keston.",
+ "ToastChaptersInvalidShiftAmountStart": "Virheellinen siirtomäärä. Ensimmäisen luvun pituudeksi tulisi nolla tai negatiivinen arvo, ja toinen luku kirjoittaisi sen päälle. Kasvata toisen luvun aloitusaikaa.",
"ToastChaptersMustHaveTitles": "Lukuilla on oltava otsikot",
"ToastChaptersRemoved": "Luvut poistettu",
"ToastChaptersUpdated": "Luvut päivitetty",
"ToastCollectionItemsAddFailed": "Kohteen/kohteiden lisääminen kokoelmaan epäonnistui",
"ToastCollectionRemoveSuccess": "Kokoelma poistettu",
"ToastCollectionUpdateSuccess": "Kokoelma päivitetty",
+ "ToastConnectionNotAvailable": "Verkkoyhteyttä ei saatavilla. Yritä hetken päästä uudelleen",
+ "ToastCoverSearchFailed": "Kansikuvan haku epäonnistui",
"ToastCoverUpdateFailed": "Kansikuvan päivitys epäonnistui",
"ToastDateTimeInvalidOrIncomplete": "Päivämäärä ja aika ovat epäkelvolliset tai puutteelliset",
"ToastDeleteFileFailed": "Tiedoston poistaminen epäonnistui",
@@ -1029,6 +1043,8 @@
"ToastEpisodeDownloadQueueClearSuccess": "Jakson latausjono tyhjennetty",
"ToastEpisodeUpdateSuccess": "{0} jaksoa päivitetty",
"ToastErrorCannotShare": "Ei voi jakaa alkuperäisesti tällä laitteella",
+ "ToastFailedToCreate": "Luonti epäonnistui",
+ "ToastFailedToDelete": "Poisto epäonnistui",
"ToastFailedToLoadData": "Tietojen lataaminen epäonnistui",
"ToastFailedToMatch": "Vastaaminen epäonnistui",
"ToastFailedToShare": "Jakaminen epäonnistui",
@@ -1036,6 +1052,7 @@
"ToastInvalidImageUrl": "Epäkelvollinen kuvan URL-osoite",
"ToastInvalidMaxEpisodesToDownload": "Ladattavien jaksojen enimmäismäärä on epäkelvollinen",
"ToastInvalidUrl": "Epäkelvollinen URL-osoite",
+ "ToastInvalidUrls": "Yksi tai useampi URL on virheellinen",
"ToastItemCoverUpdateSuccess": "Kohteen kansikuva päivitetty",
"ToastItemDeletedFailed": "Kohteen poistaminen epäonnistui",
"ToastItemDeletedSuccess": "Poistettu kohde",
@@ -1060,6 +1077,7 @@
"ToastMustHaveAtLeastOnePath": "On oltava vähintään yksi polku",
"ToastNameEmailRequired": "Nimi ja sähköpostiosoite vaaditaan",
"ToastNameRequired": "Nimi vaaditaan",
+ "ToastNewApiKeyUserError": "Täytyy valita käyttäjä",
"ToastNewEpisodesFound": "{0} uutta jaksoa löydetty",
"ToastNewUserCreatedFailed": "Tilin \"{0}\" luominen epäonnistui",
"ToastNewUserCreatedSuccess": "Uusi tili luotu",
@@ -1084,6 +1102,7 @@
"ToastPlaylistUpdateSuccess": "Soittolista päivitetty",
"ToastPodcastCreateFailed": "Podcastin luominen epäonnistui",
"ToastPodcastCreateSuccess": "Podcastin luominen onnistui",
+ "ToastPodcastEpisodeUpdated": "Episodi päivitetty",
"ToastPodcastGetFeedFailed": "Podcast-syötteen saaminen epäonnistui",
"ToastPodcastNoEpisodesInFeed": "RSS-syötteestä ei löytynyt jaksoja",
"ToastPodcastNoRssFeed": "Podcastilla ei ole RSS-syötettä",
@@ -1134,5 +1153,13 @@
"ToastUserPasswordChangeSuccess": "Salasana vaihdettu onnistuneesti",
"ToastUserPasswordMismatch": "Salasanat eivät täsmää",
"ToastUserPasswordMustChange": "Uusi salasana ei voi olla sama kuin vanha salasana",
- "ToastUserRootRequireName": "Pääkäyttäjän nimi on pakollinen"
+ "ToastUserRootRequireName": "Pääkäyttäjän nimi on pakollinen",
+ "TooltipAddChapters": "Lisää luku tai lukuja",
+ "TooltipAddOneSecond": "Lisää 1 sekunti",
+ "TooltipAdjustChapterStart": "Napauta säätääksesi aloitusaikaa",
+ "TooltipLockAllChapters": "Lukitse kaikki luvut",
+ "TooltipLockChapter": "Lukitse luku (Shift+napauta valitaksesi alueen)",
+ "TooltipSubtractOneSecond": "Vähennä 1 sekunti",
+ "TooltipUnlockAllChapters": "Avaa kaikki luvut",
+ "TooltipUnlockChapter": "Avaa luku (Shift+napauta valitaksesi alueen)"
}