about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/components/containers/mastodon.jsx3
-rw-r--r--app/assets/javascripts/components/locales/fi.jsx68
-rw-r--r--app/assets/javascripts/components/locales/index.jsx2
-rw-r--r--app/helpers/settings_helper.rb1
-rw-r--r--config/application.rb2
-rw-r--r--config/locales/fi.yml164
-rw-r--r--config/locales/simple_form.fi.yml46
7 files changed, 284 insertions, 2 deletions
diff --git a/app/assets/javascripts/components/containers/mastodon.jsx b/app/assets/javascripts/components/containers/mastodon.jsx
index 6dc08bb4c..cbb7b85bc 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 000000000..5bef99923
--- /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 203929d66..fef317887 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,
@@ -14,6 +15,7 @@ const locales = {
   fr,
   pt,
   uk
+  fi
 };
 
 export default function getMessagesForLocale (locale) {
diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb
index 74215e8df..e01f7d0cc 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 9d32f30cb..17b7a19cc 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/fi.yml b/config/locales/fi.yml
new file mode 100644
index 000000000..3bcfe5c20
--- /dev/null
+++ b/config/locales/fi.yml
@@ -0,0 +1,164 @@
+---
+fi:
+  about:
+    about_mastodon: Mastodon on <em>ilmainen, avoimeen lähdekoodiin perustuva</em> sosiaalinen verkosto. <em>Hajautettu</em> vaihtoehto kaupallisille alustoille, se välttää eiskit yhden yrityksen monopolisoinnin sinun viestinnässäsi. Valitse palvelin mihin luotat &mdash; minkä tahansa valitset, voit vuorovaikuttaa muiden kanssa. Kuka tahansa voi luoda Mastodon palvelimen ja ottaa osaa <em>sosiaaliseen verkkoon</em> 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ä (<strong>%{self}</strong>) 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: <strong>%{name}</strong> on käyttäjä domainilla <strong>%{domain}</strong>. Voit seurata tai vuorovaikuttaa heidän kanssaan jos sinulla on tili yleisessä verkossa. Jos sinulla ei ole tiliä, voit <a href="%{sign_up_path}">rekisteröityä täällä</a>.
+  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 <strong>kaksivaiheisen tunnistuksen</stron>, kirjautumiseen vaaditaan puhelin, joka voi generoida tokeneita kirjautumista varten.
+    disable: Poista käytöstä
+    enable: Ota käyttöön
+    instructions_html: "<strong>Skannaa tämä QR-koodi Google Authenticator tai samanlaiseen sovellukseen puhelimellasi</strong>. Tästä hetkestä lähtien, ohjelma generoi tokenit mikä sinun tarvitsee syöttää sisäänkirjautuessa."
+    plaintext_secret_html: 'Plain-text secret: <samp>%{secret}</samp>'
+    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: "&hellip;"
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
new file mode 100644
index 000000000..02c11752f
--- /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ä'