diff --git a/app/assets/javascripts/components/containers/mastodon.jsx b/app/assets/javascripts/components/containers/mastodon.jsx
index 6dc08bb4cdd..cbb7b85bcb9 100644
--- a/app/assets/javascripts/components/containers/mastodon.jsx
+++ b/app/assets/javascripts/components/containers/mastodon.jsx
@@ -46,6 +46,7 @@ import fr from 'react-intl/locale-data/fr';
import pt from 'react-intl/locale-data/pt';
import hu from 'react-intl/locale-data/hu';
import uk from 'react-intl/locale-data/uk';
+import fi from 'react-intl/locale-data/fi';
import getMessagesForLocale from '../locales';
import { hydrateStore } from '../actions/store';
import createStream from '../stream';
@@ -58,7 +59,7 @@ const browserHistory = useRouterHistory(createBrowserHistory)({
basename: '/web'
});
-addLocaleData([...en, ...de, ...es, ...fr, ...pt, ...hu, ...uk]);
+addLocaleData([...en, ...de, ...es, ...fr, ...pt, ...hu, ...uk, ...fi]);
const Mastodon = React.createClass({
diff --git a/app/assets/javascripts/components/locales/fi.jsx b/app/assets/javascripts/components/locales/fi.jsx
new file mode 100644
index 00000000000..5bef999231f
--- /dev/null
+++ b/app/assets/javascripts/components/locales/fi.jsx
@@ -0,0 +1,68 @@
+const fi = {
+ "column_back_button.label": "Takaisin",
+ "lightbox.close": "Sulje",
+ "loading_indicator.label": "Ladataan...",
+ "status.mention": "Mainitse @{name}",
+ "status.delete": "Poista",
+ "status.reply": "Vastaa",
+ "status.reblog": "Boostaa",
+ "status.favourite": "Tykkää",
+ "status.reblogged_by": "{name} boostattu",
+ "status.sensitive_warning": "Arkaluontoista sisältöä",
+ "status.sensitive_toggle": "Klikkaa nähdäksesi",
+ "video_player.toggle_sound": "Äänet päälle/pois",
+ "account.mention": "Mainitse @{name}",
+ "account.edit_profile": "Muokkaa",
+ "account.unblock": "Salli @{name}",
+ "account.unfollow": "Lopeta seuraaminen",
+ "account.block": "Estä @{name}",
+ "account.follow": "Seuraa",
+ "account.posts": "Postit",
+ "account.follows": "Seuraa",
+ "account.followers": "Seuraajia",
+ "account.follows_you": "Seuraa sinua",
+ "account.requested": "Odottaa hyväksyntää",
+ "getting_started.heading": "Päästä alkuun",
+ "getting_started.about_addressing": "Voit seurata ihmisiä jos tiedät heidän käyttäjänimensä ja domainin missä he ovat syöttämällä e-mail-esque osoitteen Etsi kenttään.",
+ "getting_started.about_shortcuts": "Jos etsimäsi henkilö on samassa domainissa kuin sinä, pelkkä käyttäjänimi kelpaa. Sama pätee kun mainitset ihmisiä statuksessasi",
+ "getting_started.open_source_notice": "Mastodon Mastodon on avoimen lähdekoodin ohjelma. Voit avustaa tai raportoida ongelmia githubissa {github}. {apps}.",
+ "column.home": "Koti",
+ "column.community": "Paikallinen aikajana",
+ "column.public": "Yhdistetty aikajana",
+ "column.notifications": "Ilmoitukset",
+ "tabs_bar.compose": "Luo",
+ "tabs_bar.home": "Koti",
+ "tabs_bar.mentions": "Maininnat",
+ "tabs_bar.public": "Yleinen aikajana",
+ "tabs_bar.notifications": "Ilmoitukset",
+ "compose_form.placeholder": "Mitä sinulla on mielessä?",
+ "compose_form.publish": "Toot",
+ "compose_form.sensitive": "Merkitse media herkäksi",
+ "compose_form.spoiler": "Piiloita teksti varoituksen taakse",
+ "compose_form.private": "Merkitse yksityiseksi",
+ "compose_form.privacy_disclaimer": "Sinun yksityinen status toimitetaan mainitsemallesi käyttäjille domaineissa {domains}. Luotatko {domainsCount, plural, one {tähän palvelimeen} other {näihin palvelimiin}}? Postauksen yksityisyys toimii van Mastodon palvelimilla. Jos {domains} {domainsCount, plural, one {ei ole Mastodon palvelin} other {eivät ole Mastodon palvelin}}, viestiin ei tule Yksityinen-merkintää, ja sitä voidaan boostata tai muuten tehdä näkyväksi muille vastaanottajille.",
+ "compose_form.unlisted": "Älä näytä julkisilla aikajanoilla",
+ "navigation_bar.edit_profile": "Muokkaa profiilia",
+ "navigation_bar.preferences": "Ominaisuudet",
+ "navigation_bar.community_timeline": "Paikallinen aikajana",
+ "navigation_bar.public_timeline": "Yleinen aikajana",
+ "navigation_bar.logout": "Kirjaudu ulos",
+ "reply_indicator.cancel": "Peruuta",
+ "search.placeholder": "Hae",
+ "search.account": "Tili",
+ "search.hashtag": "Hashtag",
+ "upload_button.label": "Lisää mediaa",
+ "upload_form.undo": "Peru",
+ "notification.follow": "{name} seurasi sinua",
+ "notification.favourite": "{name} tykkäsi statuksestasi",
+ "notification.reblog": "{name} boostasi statustasi",
+ "notification.mention": "{name} mainitsi sinut",
+ "notifications.column_settings.alert": "Työpöytä ilmoitukset",
+ "notifications.column_settings.show": "Näytä sarakkeessa",
+ "notifications.column_settings.follow": "Uusia seuraajia:",
+ "notifications.column_settings.favourite": "Tykkäyksiä:",
+ "notifications.column_settings.mention": "Mainintoja:",
+ "notifications.column_settings.reblog": "Boosteja:",
+};
+
+export default fi;
diff --git a/app/assets/javascripts/components/locales/index.jsx b/app/assets/javascripts/components/locales/index.jsx
index 203929d66b5..72b8a5df5d3 100644
--- a/app/assets/javascripts/components/locales/index.jsx
+++ b/app/assets/javascripts/components/locales/index.jsx
@@ -5,6 +5,7 @@ import hu from './hu';
import fr from './fr';
import pt from './pt';
import uk from './uk';
+import fi from './fi';
const locales = {
en,
@@ -13,7 +14,8 @@ const locales = {
hu,
fr,
pt,
- uk
+ uk,
+ fi
};
export default function getMessagesForLocale (locale) {
diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb
index 74215e8df42..e01f7d0cc48 100644
--- a/app/helpers/settings_helper.rb
+++ b/app/helpers/settings_helper.rb
@@ -10,6 +10,7 @@ module SettingsHelper
hu: 'Magyar',
uk: 'Українська',
'zh-CN': '简体中文',
+ fi: 'Suomi',
}.freeze
def human_locale(locale)
diff --git a/config/application.rb b/config/application.rb
index 9d32f30cbb9..17b7a19cc96 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -24,7 +24,7 @@ module Mastodon
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
- config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu, :uk, 'zh-CN']
+ config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu, :uk, 'zh-CN', :fi]
config.i18n.default_locale = :en
# config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml
new file mode 100644
index 00000000000..79fe81230cf
--- /dev/null
+++ b/config/locales/devise.fi.yml
@@ -0,0 +1,61 @@
+---
+fi:
+ devise:
+ confirmations:
+ confirmed: Sähköpostisi on onnistuneesti vahvistettu.
+ send_instructions: Saat kohta sähköpostiisi ohjeet kuinka voit aktivoida tilisi.
+ send_paranoid_instructions: Jos sähköpostisi on meidän tietokannassa, saat pian ohjeet sen varmentamiseen.
+ failure:
+ already_authenticated: Olet jo kirjautunut sisään.
+ inactive: Tiliäsi ei ole viellä aktivoitu.
+ invalid: Virheellinen %{authentication_keys} tai salasana.
+ last_attempt: Sinulla on yksi yritys jäljellä tai tili lukitaan.
+ locked: Tili on lukittu.
+ not_found_in_database: Virheellinen %{authentication_keys} tai salasana.
+ timeout: Sessiosi on umpeutunut. Kirjaudu sisään jatkaaksesi.
+ unauthenticated: Sinun tarvitsee kirjautua sisään tai rekisteröityä jatkaaksesi.
+ unconfirmed: Sinun tarvitsee varmentaa sähköpostisi jatkaaksesi.
+ mailer:
+ confirmation_instructions:
+ subject: 'Mastodon: Varmistus ohjeet'
+ password_change:
+ subject: 'Mastodon: Salasana vaihdettu'
+ reset_password_instructions:
+ subject: 'Mastodon: Salasanan vaihto ohjeet'
+ unlock_instructions:
+ subject: 'Mastodon: Avauksen ohjeet'
+ omniauth_callbacks:
+ failure: Varmennus %{kind} epäonnistui koska "%{reason}".
+ success: Onnistuneesti varmennettu %{kind} tilillä.
+ passwords:
+ no_token: Et pääse tälle sivulle ilman salasanan vaihto sähköpostia. Jos tulet tämmöisestä postista, varmista että sinulla on täydellinen URL.
+ send_instructions: Saat sähköpostitse ohjeet salasanan palautukseen muutaman minuutin kuluessa.
+ send_paranoid_instructions: Jos sähköpostisi on meidän tietokannassa, saat pian ohjeet salasanan palautukseen.
+ updated: Salasanasi vaihdettu onnistuneesti. Olet nyt kirjautunut sisään.
+ updated_not_active: Salasanasi vaihdettu onnistuneesti.
+ registrations:
+ destroyed: Näkemiin! Tilisi on onnistuneesti peruttu. Toivottavasti näemme joskus uudestaan.
+ signed_up: Tervetuloa! Rekisteröitymisesi onnistu.
+ signed_up_but_inactive: Olet onnistuneesti rekisteröitynyt, mutta emme voi kirjata sinua sisään koska tiliäsi ei ole viellä aktivoitu.
+ signed_up_but_locked: Olet onnistuneesti rekisteröitynyt, mutta emme voi kirjata sinua sisään koska tilisi on lukittu.
+ signed_up_but_unconfirmed: Varmistuslinkki on lähetty sähköpostiisi. Seuraa sitä jotta tilisi voidaan aktivoida.
+ update_needs_confirmation: Tilisi on onnistuneesti päivitetty, mutta meidän tarvitsee vahvistaa sinun uusi sähköpostisi. Tarkista sähköpostisi ja seuraa viestissä tullutta linkkiä varmistaaksesi uuden osoitteen..
+ updated: Tilisi on onnistuneesti päivitetty.
+ sessions:
+ already_signed_out: Ulos kirjautuminen onnistui.
+ signed_in: Sisäänkirjautuminen onnistui.
+ signed_out: Ulos kirjautuminen onnistui.
+ unlocks:
+ send_instructions: Saat sähköpostiisi pian ohjeet, jolla voit avata tilisi uudestaan.
+ send_paranoid_instructions: Jos tilisi on olemassa, saat sähköpostiisi pian ohjeet tilisi avaamiseen.
+ unlocked: Tilisi on avattu onnistuneesti. Kirjaudu normaalisti sisään.
+ errors:
+ messages:
+ already_confirmed: on jo varmistettu. Yritä kirjautua sisään
+ confirmation_period_expired: pitää varmistaa %{period} sisällä, ole hyvä ja pyydä uusi
+ expired: on erääntynyt, ole hyvä ja pyydä uusi
+ not_found: ei löydy
+ not_locked: ei ollut lukittu
+ not_saved:
+ one: '1 virhe esti %{resource} tallennuksen:'
+ other: "%{count} virhettä esti %{resource} tallennuksen:"
diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml
new file mode 100644
index 00000000000..cd1a9d0584f
--- /dev/null
+++ b/config/locales/doorkeeper.fi.yml
@@ -0,0 +1,113 @@
+---
+fi:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Nimi
+ redirect_uri: Uudelleenohjaus URI
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: ei voi sisältää osia.
+ invalid_uri: pitää olla validi URI.
+ relative_uri: pitää olla täydellinen URI.
+ secured_uri: pitää olla HTTPS/SSL URI.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Valtuuta
+ cancel: Peruuta
+ destroy: Tuhoa
+ edit: Muokkaa
+ submit: Lähetä
+ confirmations:
+ destroy: Oletko varma?
+ edit:
+ title: Muokkaa applikaatiota
+ form:
+ error: Whoops! Tarkista lomakkeesi mahdollisten virheiden varalta
+ help:
+ native_redirect_uri: Käytä %{native_redirect_uri} paikallisiin testeihin
+ redirect_uri: Käytä yhtä riviä per URI
+ scopes: Erota scopet välilyönnein. Jätä tyhjäksi käyteksi oletus scopeja.
+ index:
+ callback_url: Callback URL
+ name: Nimi
+ new: Uusi applikaatio
+ title: Sinun applikaatiosi
+ new:
+ title: Uusi applikaatio
+ show:
+ actions: Toiminnot
+ application_id: Applikaation Id
+ callback_urls: Callback urls
+ scopes: Scopet
+ secret: Salainen avain
+ title: 'Applikaatio: %{name}'
+ authorizations:
+ buttons:
+ authorize: Valtuuta
+ deny: Evää
+ error:
+ title: Virhe on tapahtunut
+ new:
+ able_to: Se voi
+ prompt: Applikaatio %{client_name} pyytää lupaa tilillesi
+ title: Valtuutus vaaditaan
+ show:
+ title: Valtuutus koodi
+ authorized_applications:
+ buttons:
+ revoke: Evää
+ confirmations:
+ revoke: Oletko varma?
+ index:
+ application: Applikaatio
+ created_at: Valtuutettu
+ date_format: "%Y-%m-%d %H:%M:%S"
+ scopes: Scopet
+ title: Valtuuttamasi applikaatiot
+ errors:
+ messages:
+ access_denied: Resurssin omistaja tai valtuutus palvelin hylkäsi pyynnönr.
+ credential_flow_not_configured: Resurssin omistajan salasana epäonnistui koska Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu.
+ invalid_client: Asiakkaan valtuutus epäonnistui koska tuntematon asiakas, asiakas ei sisältänyt valtuutusta, tai tukematon valtuutus tapa
+ invalid_grant: Antamasi valtuutus lupa on joko väärä, erääntynyt, peruttu, ei vastaa uudelleenohjaus URI jota käytetään valtuutus pyynnössä, tai se myönnettin toiselle asiakkaalle.
+ invalid_redirect_uri: Uudelleenohjaus uri ei ole oikein.
+ invalid_request: Pyynnöstä puutti parametri, sisältää tukemattoman parametri arvonn, tai on korruptoitunut.
+ invalid_resource_owner: Annetut resurssin omistajan tunnnukset ovat väärät, tai resurssin omistajaa ei löydy
+ invalid_scope: Pyydetty scope on väärä, tuntemat, tai korruptoitunut.
+ invalid_token:
+ expired: Access token vanhentunut
+ revoked: Access token evätty
+ unknown: Access token väärä
+ resource_owner_authenticator_not_configured: Resurssin omistajan etsiminen epäonnistui koska Doorkeeper.configure.resource_owner_authenticator ei ole konfiguroitu.
+ server_error: Valtuutus palvelin kohtasi odottamattoman virheen joka esti sitä täyttämästä pyyntöä.
+ temporarily_unavailable: Valtuutus palvelin ei voi tällä hetkellä käsitellä pyyntöäsi joko väliaikaisen ruuhkan tai huollon takia.
+ unauthorized_client: Asiakas ei ole valtuutettu tekemään tätä pyyntöä käyttäen tätä metodia.
+ unsupported_grant_type: Valtuutus grant type ei ole tuettu valtuutus palvelimella.
+ unsupported_response_type: Valtuutus palvelin ei tue tätä vastaus tyyppiä.
+ flash:
+ applications:
+ create:
+ notice: Applikaatio luotu.
+ destroy:
+ notice: Applikaatio poistettu.
+ update:
+ notice: Applikaatio päivitetty.
+ authorized_applications:
+ destroy:
+ notice: Applikaatio tuhottu.
+ layouts:
+ admin:
+ nav:
+ applications: Applikaatiot
+ oauth2_provider: OAuth2 Provider
+ application:
+ title: OAuth valtuutus tarvitaan
+ scopes:
+ follow: seuraa, estä, peru esto ja lopeta tilien seuraaminen
+ read: lukea tilin dataa
+ write: julkaista puolestasi
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
new file mode 100644
index 00000000000..3bcfe5c205c
--- /dev/null
+++ b/config/locales/fi.yml
@@ -0,0 +1,164 @@
+---
+fi:
+ about:
+ about_mastodon: Mastodon on ilmainen, avoimeen lähdekoodiin perustuva sosiaalinen verkosto. Hajautettu vaihtoehto kaupallisille alustoille, se välttää eiskit yhden yrityksen monopolisoinnin sinun viestinnässäsi. Valitse palvelin mihin luotat — minkä tahansa valitset, voit vuorovaikuttaa muiden kanssa. Kuka tahansa voi luoda Mastodon palvelimen ja ottaa osaa sosiaaliseen verkkoon saumattomasti.
+ about_this: Tietoja tästä palvelimesta
+ apps: Ohjelmat
+ business_email: 'Business e-mail:'
+ contact: Ota yhteyttä
+ description_headline: Mikä on %{domain}?
+ domain_count_after: muut palvelimet
+ domain_count_before: Yhdistyneenä
+ features:
+ api: Avoin API ohjelmille ja palveluille
+ blocks: Rikkaat esto ja hiljennys työkalut
+ characters: 500 kirjainta per viesti
+ chronology: Aikajana on kronologisessa järjestyksessä
+ ethics: 'Eettinen suunnittelu: ei mainoksia, no seurantaa'
+ gifv: GIFV settejä ja lyhyitä videoita
+ privacy: Julkaisu kohtainen yksityisyys aseuts
+ public: Julkiset aikajanat
+ features_headline: Mikä erottaa Mastodonin muista
+ get_started: Aloita käyttö
+ links: Linkit
+ other_instances: Muut palvelimet
+ source_code: Lähdekoodi
+ status_count_after: statukset
+ status_count_before: Kuka loi
+ terms: Ehdot
+ user_count_after: käyttäjät
+ user_count_before: Koti käyttäjälle
+ accounts:
+ follow: Seuraa
+ followers: Seuraajat
+ following: Seuratut
+ nothing_here: Täällä ei ole mitään!
+ people_followed_by: Henkilöitä joita %{name} seuraa
+ people_who_follow: Henkilöt jotka seuraa %{name}
+ posts: Postaukset
+ remote_follow: Etäseuranta
+ unfollow: Lopeta seuraaminen
+ application_mailer:
+ settings: 'Muokkaa sähköposti asetuksia: %{link}'
+ signature: Mastodon ilmoituksia palvelimelta %{instance}
+ view: 'Katso:'
+ applications:
+ invalid_url: Annettu URL on väärä
+ auth:
+ change_password: Tunnukset
+ didnt_get_confirmation: Etkö saanut varmennus ohjeita?
+ forgot_password: Unohditko salasanasi?
+ login: Kirjaudu sisään
+ logout: Kirjaudu ulos
+ register: Rekisteröidy
+ resend_confirmation: Lähetä varmennus ohjeet uudestaan
+ reset_password: Palauta Salasana
+ set_new_password: Aseta uusi salasana
+ authorize_follow:
+ error: Valitettavasti tapahtui virhe etätilin haussa
+ follow: Seuraa
+ prompt_html: 'Sinä (%{self}) olet pyytänyt lupaa seurata:'
+ title: Seuraa %{acct}
+ datetime:
+ distance_in_words:
+ about_x_hours: "%{count}t"
+ about_x_months: "%{count}kk"
+ about_x_years: "%{count}v"
+ almost_x_years: "%{count}v"
+ half_a_minute: Juuri nyt
+ less_than_x_minutes: "%{count}m"
+ less_than_x_seconds: Juuri nyt
+ over_x_years: "%{count}v"
+ x_days: "%{count}pv"
+ x_minutes: "%{count}m"
+ x_months: "%{count}kk"
+ x_seconds: "%{count}s"
+ exports:
+ blocks: Estosi
+ csv: CSV
+ follows: Seurattavat
+ storage: Mediasi
+ generic:
+ changes_saved_msg: Muutokset onnistuneesti tallenettu!
+ powered_by: powered by %{link}
+ save_changes: Tallenna muutokset
+ validation_errors:
+ one: Jokin ei ole viellä oikein! Katso virhe alapuolelta
+ other: Jokin ei ole viellä oikein! Katso %{count} virhettä alapuolelta
+ imports:
+ preface: Voit tuoda tiettyä dataa kaikista ihmisistä joita seuraat tai estät tilillesi tälle palvelimelle tiedostoista, jotka on luotu toisella palvelimella
+ success: Datasi on onnistuneesti ladattu ja käsitellään pian
+ types:
+ blocking: Esto lista
+ following: Seuratut lista
+ upload: Lähetä
+ landing_strip_html: %{name} on käyttäjä domainilla %{domain}. Voit seurata tai vuorovaikuttaa heidän kanssaan jos sinulla on tili yleisessä verkossa. Jos sinulla ei ole tiliä, voit rekisteröityä täällä.
+ notification_mailer:
+ digest:
+ body: 'Tässä on pieni yhteenveto palvelimelta %{instance} viimeksi kun olit paikalla %{since}:'
+ mention: "%{name} mainitsi sinut:"
+ new_followers_summary:
+ one: Olet saanut yhden uuden seuraajan! Jee!
+ other: Olet saanut %{count} uutta seuraajaa! Loistavaa!
+ subject:
+ one: "1 uusi ilmoitus viimeisen käyntisi jälkeen \U0001F418"
+ other: "%{count} uutta ilmoitusta viimeisen käyntisi jälkeen \U0001F418"
+ favourite:
+ body: 'Statuksestasi tykkäsi %{name}:'
+ subject: "%{name} tykkäsi sinun statuksestasi"
+ follow:
+ body: "%{name} seuraa nyt sinua!"
+ subject: "%{name} seuraa nyt sinua"
+ follow_request:
+ body: "%{name} on pyytänyt seurata sinua"
+ subject: 'Odottava seuraus pyyntö: %{name}'
+ mention:
+ body: 'Sinut mainitsi %{name} postauksessa:'
+ subject: Sinut mainitsi %{name}
+ reblog:
+ body: 'Sinun statustasi boostasi %{name}:'
+ subject: "%{name} boostasi statustasi"
+ pagination:
+ next: Seuraava
+ prev: Edellinen
+ remote_follow:
+ acct: Syötä sinun käyttäjänimesi@domain jos haluat seurata palvelimelta
+ missing_resource: Ei löydetty tarvittavaa uudelleenohjaavaa URL-linkkiä tilillesi
+ proceed: Siirry seuraamiseen
+ prompt: 'Sinä aiot seurata:'
+ settings:
+ authorized_apps: Valtuutetut ohjelmat
+ back: Takaisin Mastodoniin
+ edit_profile: Muokkaa profiilia
+ export: Datan vienti
+ import: Datan tuonti
+ preferences: Mieltymykset
+ settings: Asetukset
+ two_factor_auth: Kaksivaiheinen tunnistus
+ statuses:
+ open_in_web: Avaa webissä
+ over_character_limit: sallittu kirjanmäärä %{max} ylitetty
+ show_more: Näytä lisää
+ visibilities:
+ private: Näytä vain seuraajille
+ public: Julkinen
+ unlisted: Julkinen, mutta älä näytä julkisella aikajanalla
+ stream_entries:
+ click_to_show: Klikkaa näyttääksesi
+ reblogged: boosted
+ sensitive_content: Herkkä materiaali
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ two_factor_auth:
+ description_html: Jos otat käyttöön kaksivaiheisen tunnistuksen, kirjautumiseen vaaditaan puhelin, joka voi generoida tokeneita kirjautumista varten.
+ disable: Poista käytöstä
+ enable: Ota käyttöön
+ instructions_html: "Skannaa tämä QR-koodi Google Authenticator tai samanlaiseen sovellukseen puhelimellasi. Tästä hetkestä lähtien, ohjelma generoi tokenit mikä sinun tarvitsee syöttää sisäänkirjautuessa."
+ plaintext_secret_html: 'Plain-text secret: %{secret}'
+ warning: Jos et juuri nyt voi konfiguroida authenticator-applikaatiota juuri nyt, sinun pitäisi klikata "Poista käytöstä" tai et voi kirjautua sisään.
+ users:
+ invalid_email: Virheellinen sähköposti
+ invalid_otp_token: Virheellinen kaksivaihe tunnistus koodi
+ will_paginate:
+ page_gap: "…"
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
new file mode 100644
index 00000000000..02c11752f90
--- /dev/null
+++ b/config/locales/simple_form.fi.yml
@@ -0,0 +1,46 @@
+---
+fi:
+ simple_form:
+ hints:
+ defaults:
+ avatar: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 120x120px
+ display_name: Korkeintaan 30 merkkiä
+ header: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 700x335px
+ locked: Vaatii sinun manuaalisesti hyväksymään seuraajat ja asettaa julkaisun yksityisyyden vain seuraajille
+ note: Korkeintaan 160 merkkiä
+ imports:
+ data: CSV tiedosto tuotu toiselta Mastodon palvelimelta
+ labels:
+ defaults:
+ avatar: Avatar
+ confirm_new_password: Varmista uusi salasana
+ confirm_password: Varmista salasana
+ current_password: Nykyinen salasana
+ data: Data
+ display_name: Näyttö nimi
+ email: Sähköpostiosoite
+ header: Header
+ locale: Kieli
+ locked: Tee tilistä yksityinen
+ new_password: Uusi salasana
+ note: Bio
+ otp_attempt: Kaksivaiheinen koodi
+ password: Salasana
+ setting_default_privacy: Julkaisun yksityisyys
+ type: Tuonti tyyppi
+ username: Käyttäjänimi
+ interactions:
+ must_be_follower: Estä ilmoitukset käyttäjiltä jotka eivät seuraa sinua
+ must_be_following: Estä ilmoitukset käyttäjiltä joita et seuraa
+ notification_emails:
+ digest: Send digest e-mails
+ favourite: Lähetä s-posti kun joku tykkää statuksestasi
+ follow: Lähetä s-posti kun joku seuraa sinua
+ follow_request: Lähetä s-posti kun joku pyytää seurata sinua
+ mention: Lähetä s-posti kun joku mainitsee sinut
+ reblog: Lähetä s-posti kun joku uudestaanblogaa julkaisusi
+ 'no': 'Ei'
+ required:
+ mark: "*"
+ text: vaaditaan
+ 'yes': 'Kyllä'