about summary refs log tree commit diff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/application.rb2
-rw-r--r--config/environments/production.rb7
-rw-r--r--config/i18n-tasks.yml3
-rw-r--r--config/initializers/neography.rb5
-rw-r--r--config/initializers/ostatus.rb16
-rw-r--r--config/initializers/paperclip.rb4
-rw-r--r--config/initializers/rack-attack.rb4
-rw-r--r--config/initializers/timeout.rb1
-rw-r--r--config/locales/devise.hu.yml61
-rw-r--r--config/locales/doorkeeper.fr.yml12
-rw-r--r--config/locales/doorkeeper.hu.yml112
-rw-r--r--config/locales/fr.yml32
-rw-r--r--config/locales/hu.yml59
-rw-r--r--config/locales/simple_form.de.yml3
-rw-r--r--config/locales/simple_form.en.yml3
-rw-r--r--config/locales/simple_form.fr.yml11
-rw-r--r--config/locales/simple_form.hu.yml28
-rw-r--r--config/routes.rb17
18 files changed, 327 insertions, 53 deletions
diff --git a/config/application.rb b/config/application.rb
index 7ba13bfbe..1e5fd9c7c 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -20,7 +20,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, :fr]
+    config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu]
     config.i18n.default_locale    = :en
 
     # config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 7f13fcf6b..9254d494c 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -13,7 +13,7 @@ Rails.application.configure do
   # Full error reports are disabled and caching is turned on.
   config.consider_all_requests_local       = false
   config.action_controller.perform_caching = true
-  config.action_controller.asset_host      = ENV['CDN_HOST']
+  config.action_controller.asset_host      = ENV['CDN_HOST'] if ENV.key?('CDN_HOST')
 
   # Disable serving static files from the `/public` folder by default since
   # Apache or NGINX already handles this.
@@ -30,7 +30,7 @@ Rails.application.configure do
 
   # Specifies the header that your server uses for sending files.
   # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
-  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
+  config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
 
   # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
   config.force_ssl = false
@@ -50,7 +50,8 @@ Rails.application.configure do
     host: ENV.fetch('REDIS_HOST') { 'localhost' },
     port: ENV.fetch('REDIS_PORT') { 6379 },
     db: 0,
-    namespace: 'cache'
+    namespace: 'cache',
+    expires_in: 20.minutes
   }
 
   # Enable serving of images, stylesheets, and JavaScripts from an asset server.
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
index d345ce6c0..4dc6985b7 100644
--- a/config/i18n-tasks.yml
+++ b/config/i18n-tasks.yml
@@ -30,9 +30,6 @@ search:
     - app/assets/fonts
     - app/assets/videos
 
-ignore_missing:
-  - '{devise,simple_form}.*'
-
 ignore_unused:
   - 'activerecord.attributes.*'
   - '{devise,will_paginate,doorkeeper}.*'
diff --git a/config/initializers/neography.rb b/config/initializers/neography.rb
deleted file mode 100644
index bd6ead3b0..000000000
--- a/config/initializers/neography.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-Neography.configure do |config|
-  config.protocol             = "http"
-  config.server               = ENV.fetch('NEO4J_HOST') { 'localhost' }
-  config.port                 = ENV.fetch('NEO4J_PORT') { 7474 }
-end
diff --git a/config/initializers/ostatus.rb b/config/initializers/ostatus.rb
index 3dd501b65..4ba432b6a 100644
--- a/config/initializers/ostatus.rb
+++ b/config/initializers/ostatus.rb
@@ -1,14 +1,16 @@
-port = ENV.fetch('PORT') { 3000 }
-
+port  = ENV.fetch('PORT') { 3000 }
+host  = ENV.fetch('LOCAL_DOMAIN') { "localhost:#{port}" }
+https = ENV['LOCAL_HTTPS'] == 'true'
+  
 Rails.application.configure do
-  config.x.local_domain = ENV.fetch('LOCAL_DOMAIN') { "localhost:#{port}" }
-  config.x.hub_url      = ENV.fetch('HUB_URL')      { 'https://pubsubhubbub.superfeedr.com' }
-  config.x.use_https    = ENV['LOCAL_HTTPS'] == 'true'
+  config.x.local_domain = host
+  config.x.hub_url      = ENV.fetch('HUB_URL') { 'https://pubsubhubbub.superfeedr.com' }
+  config.x.use_https    = https
   config.x.use_s3       = ENV['S3_ENABLED'] == 'true'
 
-  config.action_mailer.default_url_options = { host: config.x.local_domain, protocol: config.x.use_https ? 'https://' : 'http://', trailing_slash: false }
+  config.action_mailer.default_url_options = { host: host, protocol: https ? 'https://' : 'http://', trailing_slash: false }
 
   if Rails.env.production?
-    config.action_cable.allowed_request_origins = ["http#{config.x.use_https ? 's' : ''}://#{config.x.local_domain}"]
+    config.action_cable.allowed_request_origins = ["http#{https ? 's' : ''}://#{host}"]
   end
 end
diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb
index 643c5d384..80effc05e 100644
--- a/config/initializers/paperclip.rb
+++ b/config/initializers/paperclip.rb
@@ -1,4 +1,6 @@
 if ENV['S3_ENABLED'] == 'true'
+  Aws.eager_autoload!(services: %w(S3))
+
   Paperclip::Attachment.default_options[:storage]      = :s3
   Paperclip::Attachment.default_options[:s3_protocol]  = 'https'
   Paperclip::Attachment.default_options[:url]          = ':s3_domain_url'
@@ -9,6 +11,6 @@ if ENV['S3_ENABLED'] == 'true'
     bucket: ENV.fetch('S3_BUCKET'),
     access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
     secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
-    s3_region: ENV.fetch('S3_REGION')
+    s3_region: ENV.fetch('S3_REGION'),
   }
 end
diff --git a/config/initializers/rack-attack.rb b/config/initializers/rack-attack.rb
index 6d9286e66..3f0ee1d7a 100644
--- a/config/initializers/rack-attack.rb
+++ b/config/initializers/rack-attack.rb
@@ -1,7 +1,7 @@
 class Rack::Attack
   # Rate limits for the API
   throttle('api', limit: 150, period: 5.minutes) do |req|
-    req.ip if req.path.match(/\A\/api\//)
+    req.ip if req.path.match(/\A\/api\/v/)
   end
 
   self.throttled_response = lambda do |env|
@@ -11,7 +11,7 @@ class Rack::Attack
     headers = {
       'X-RateLimit-Limit'     => match_data[:limit].to_s,
       'X-RateLimit-Remaining' => '0',
-      'X-RateLimit-Reset'     => (now + (match_data[:period] - now.to_i % match_data[:period])).to_s
+      'X-RateLimit-Reset'     => (now + (match_data[:period] - now.to_i % match_data[:period])).iso8601(6)
     }
 
     [429, headers, [{ error: 'Throttled' }.to_json]]
diff --git a/config/initializers/timeout.rb b/config/initializers/timeout.rb
new file mode 100644
index 000000000..8b7311e39
--- /dev/null
+++ b/config/initializers/timeout.rb
@@ -0,0 +1 @@
+Rack::Timeout.timeout = 30
\ No newline at end of file
diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml
new file mode 100644
index 000000000..2eb7da45c
--- /dev/null
+++ b/config/locales/devise.hu.yml
@@ -0,0 +1,61 @@
+---
+hu:
+  devise:
+    confirmations:
+      confirmed: Az e-mail címed sikeresen meg lett erősítve.
+      send_instructions: Pár percen belül kapni fogsz egy e-mailt az e-mail címed megerősítéséhez szükséges lépésekről.
+      send_paranoid_instructions: Ha az e-mail címed létezik az adatbázisunkban, pár percen belül kapni fogsz egy e-mailt az e-mail címed megerősítéséhez szükséges lépésekről.
+    failure:
+      already_authenticated: Már bejelentkeztél
+      inactive: Fiókod még nem lett aktiválva.
+      invalid: Helytelen %{authentication_keys} vagy jelszó.
+      last_attempt: Már csak egy próbálkozásod maradt mielőtt a fiókod lezárásra kerül.
+      locked: Fiókod le van zárva.
+      not_found_in_database: Helytelen %{authentication_keys} vagy jelszó.
+      timeout: A munkamenet lejárt. Jelentkezz be újra a folytatáshoz.
+      unauthenticated: A folytatás előtt be kell jelentkezned.
+      unconfirmed: A folytatás előtt meg kell erősítened az e-mail címed.
+    mailer:
+      confirmation_instructions:
+        subject: 'Mastodon: Megerősítési lépések'
+      password_change:
+        subject: 'Mastodon: Jelszó megváltoztatva'
+      reset_password_instructions:
+        subject: 'Mastodon: Jelszó visszaállítási lépések'
+      unlock_instructions:
+        subject: 'Mastodon: Feloldási lépések'
+    omniauth_callbacks:
+      failure: "%{kind} nem hitelesíthető, mert %{reason}."
+      success: Sikeres hitelesítés %{kind} fiókról.
+    passwords:
+      no_token: Nem férhetsz hozzá az oldalhoz jelszó visszaállító e-mail nélkül. Ha egy jelszó visszaállító e-mail hozott ide, ellenőrizd, hogy a megadott teljes URL-t használd. 
+      send_instructions: Pár percen belül kapni fogsz egy e-mailt arról, hogy hogyan tudod visszaállítani a jelszavadat.
+      send_paranoid_instructions: Ha létezik az e-mail cím, pár percen belül kapni fogsz egy e-mailt arról, hogy hogyan tudod visszaállítani a jelszavadat.
+      updated: Jelszavad sikeresen frissült. Bejelentkeztél.
+      updated_not_active: Jelszavad sikeresen meg lett változtatva.
+    registrations:
+      destroyed: Viszlát! A fiókod sikeresen törölve. Reméljük hamarosan viszontláthatunk.
+      signed_up: Üdvözlünk! Sikeresen regisztráltál.
+      signed_up_but_inactive: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod még nem lett aktiválva. 
+      signed_up_but_locked: Sikeresen regisztráltál. Ennek ellenére nem tudunk beléptetni, ugyanis a fiókod le lett zárva.
+      signed_up_but_unconfirmed: Egy üzenet a megerősítési linkkel kiküldésre került az e-mail címedre. Kérjük használd a linket a fiókod aktiválásához.
+      update_needs_confirmation: Sikeresen frissítetted a fiókodat, de szükségünk van az e-mail címed megerősítésére. Kérlek ellenőrizd az e-mailedet és kövesd a levélben szereplő megerősítési linket az e-mail címed megerősítéséhez.
+      updated: Fiókod frissítése sikeres.
+    sessions:
+      already_signed_out: Sikeres kijelenkezés.
+      signed_in: Sikeres bejelentkezés.
+      signed_out: Sikeres kijelentkezés.
+    unlocks:
+      send_instructions: Pár percen belül egy e-mailt fogsz kapni a feloldáshoz szükséges lépésekkel.
+      send_paranoid_instructions: Ha a fiókod létezik, pár percen belül egy e-mailt fogsz kapni a feloldáshoz szükséges lépésekkel.
+      unlocked: A fiókod sikeresen fel lett oldva. Jelentkezz be a folytatáshoz.
+  errors:
+    messages:
+      already_confirmed: már meg lett erősítve, kérjük jelentkezz be
+      confirmation_period_expired: "%{period} belül kellett megerősíteni, kérjük igényelj újat"
+      expired: lejárt, kérjük igényelj újat
+      not_found: nem található
+      not_locked: nincs lezárva
+      not_saved:
+        one: '1 hiba megakadályozta %{resource} mentését:'
+        other: "%{count} számú hiba megakadályozta %{resource} mentését:"
diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml
index c04e378b6..6f3c0864a 100644
--- a/config/locales/doorkeeper.fr.yml
+++ b/config/locales/doorkeeper.fr.yml
@@ -31,7 +31,7 @@ fr:
       help:
         native_redirect_uri: Utiliser %{native_redirect_uri} pour les tests locaux
         redirect_uri: Utiliser une ligne par URL
-        scopes:
+        scopes: Séparer les portées avec des espaces. Laisser vide pour utiliser les portées par défaut.
       index:
         callback_url: URL de retour d'appel
         name: Nom
@@ -43,7 +43,7 @@ fr:
         actions: Actions
         application_id: ID de l'application
         callback_urls: URL du retour d'appel
-        scopes:
+        scopes: Portées
         secret: Secret
         title: 'Application : %{name}'
     authorizations:
@@ -77,7 +77,7 @@ fr:
         invalid_redirect_uri: L'URL de redirection n'est pas valide.
         invalid_request: La demande manque un paramètre requis, inclut une valeur de paramètre non prise en charge, ou est autrement mal formée.
         invalid_resource_owner: Les identifiants fournis du propriétaire de la ressource ne sont pas valides, ou le propriétaire de la ressource ne peut être trouvé
-        invalid_scope: Le scope demandé n'est pas valide, est inconnu, ou est mal formé.
+        invalid_scope: La portée demandée n'est pas valide, est inconnue, ou est mal formée.
         invalid_token:
           expired: Le jeton d'accès a expiré
           revoked: Le jeton d'accès a été annulé
@@ -107,6 +107,6 @@ fr:
       application:
         title: Autorisation OAuth requise
     scopes:
-      follow:
-      read:
-      write:
+      follow: s’abonner, se désabonner, bloquer, et débloquer des comptes
+      read: lire les données de votre compte  
+      write: poster en tant que vous
diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml
new file mode 100644
index 000000000..b1c6dd6c9
--- /dev/null
+++ b/config/locales/doorkeeper.hu.yml
@@ -0,0 +1,112 @@
+---
+hu:
+  activerecord:
+    attributes:
+      doorkeeper/application:
+        name: Név
+        redirect_uri: Visszairányító URI
+    errors:
+      models:
+        doorkeeper/application:
+          attributes:
+            redirect_uri:
+              fragment_present: nem tartalmazhat töredéket.
+              invalid_uri: érvényes URI-nak kell lennie.
+              relative_uri: abszolút URI-nak kell lennie.
+              secured_uri: HTTPS/SSL URI-nak kell lennie.
+  doorkeeper:
+    applications:
+      buttons:
+        authorize: Engedélyezés
+        cancel: Mégsem
+        destroy: Törlés
+        edit: Szerkesztés
+        submit: Elküldés
+      confirmations:
+        destroy: Biztos vagy benne?
+      edit:
+        title: Alkalmazás szerkesztése
+      form:
+        error: Hoppá! Ellenőrizd az űrlapot az esetleges hibák miatt
+      help:
+        native_redirect_uri: Használj %{native_redirect_uri} a helyi tesztekhez
+        redirect_uri: Egy sor URI-nként
+        scopes: A nézeteket szóközzel válaszd el. Hagyd üresen az alapértelmezett nézetekhez.
+      index:
+        callback_url: Callback URL
+        name: Név
+        new: Új alkalmazás
+        title: Alkalmazásod
+      new:
+        title: Új alkalmazás
+      show:
+        actions: Műveletek
+        application_id: Alkalmazás azonosító
+        callback_urls: Callback urlek
+        scopes: Nézetek
+        secret: Titok
+        title: 'Alkalmazás: %{name}'
+    authorizations:
+      buttons:
+        authorize: Engedélyezés
+        deny: Tiltás
+      error:
+        title: Hiba történt
+      new:
+        able_to: Képes lesz
+        prompt: "%{client_name} nevű alkalmazás engedélyt kér a fiókodhoz való hozzáféréshez."
+        title: Engedély szükséges
+      show:
+        title: Engedély kódja
+    authorized_applications:
+      buttons:
+        revoke: Visszavonás
+      confirmations:
+        revoke: Biztos vagy benne?
+      index:
+        application: Alkalmazás
+        created_at: Készítve
+        date_format: "%Y-%m-%d %H:%M:%S"
+        title: Engedélyezett alkalmazásaid
+    errors:
+      messages:
+        access_denied: Az erőforrás tulajdonosa vagy hitelesítő kiszolgálója megtakadta a kérést.
+        credential_flow_not_configured: Az erőforrás tulajdonos jelszóadatainak átadása megszakadt, mert a Doorkeeper.configure.resource_owner_from_credentials beállítatlan.
+        invalid_client: A kliens hitelesítése megszakadt, mert a ismeretlen a kliens, kliens nem küldött hitelesítést, vagy ismeretlen a kliens
+        invalid_grant: A biztosított hitelesítés érvénytelen, lejárt, visszavont, vagy nem egyezik a hitelesítéi kérésben használt URIval, vagy más kliensnek lett címezve.
+        invalid_redirect_uri: A redirect uri nem valós.
+        invalid_request: A kérésből hiányzik egy szükséges paraméter, nem támogatott paramétert tartalmaz, vagy egyéb módon hibás.
+        invalid_resource_owner: A biztosított erőforrás tulajdonosának hitelesítő adatai nem valósak, vagy az erőforrás tulajdonosa nem található.
+        invalid_scope: A kért nézet érvénytelen, ismeretlen, vagy hibás.
+        invalid_token:
+          expired: Hozzáférési kulcs lejárt
+          revoked: Hozzáférési kulcs vissza lett vonva
+          unknown: Hozzáférési kulcs érvénytelen
+        resource_owner_authenticator_not_configured: Erőforrás tulajdonos keresés megszakadt, ugyanis a Doorkeeper.configure.resource_owner_authenticator beállítatlan.
+        server_error: Hitelesítő szervert váratlan esemény érte, mely meggátolta a kérés teljesítését.
+        temporarily_unavailable: A hitelesítő szerver jelenleg nem tudja teljesíteni a kérést egy átmeneti túlterheltség vagy a kiszolgáló karbantartása miatt. 
+        unauthorized_client: A kliens nincs feljogosítva a kérés teljesítésére.
+        unsupported_grant_type: A hitelesítés módja nem támogatott a hitelesítő kiszolgálón.
+        unsupported_response_type: A hitelesítő kiszolgáló nem támogatja ezt a választ.
+    flash:
+      applications:
+        create:
+          notice: Alkalmazás létrehozva.
+        destroy:
+          notice: Alkalmazás törölve.
+        update:
+          notice: Alkalmazás frissítve.
+      authorized_applications:
+        destroy:
+          notice: Alkalmazás visszavonva.
+    layouts:
+      admin:
+        nav:
+          applications: Alkalmazások
+          oauth2_provider: OAuth2 szolgáltató
+      application:
+        title: OAuth engedély szükséges
+    scopes:
+      follow: fiókok követése, blokkoláse, blokkolás feloldása és követés abbahagyása
+      read: fiókod adatainak olvasása
+      write: bejegyzés írása a nevedben
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index c9258381c..f78cd0de5 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -7,44 +7,44 @@ fr:
     source_code: "Code source"
     terms: "Conditions d’utilisation"
   accounts:
-    follow: "S’abonner"
+    follow: "Suivre"
     followers: "Abonnés"
     following: "Abonnements"
-    nothing_here: "Rien à voir ici !"
-    people_followed_by: "Personnes auxquelles %{name} est abonné⋅e"
-    people_who_follow: "Personnes abonnées à %{name}"
+    nothing_here: "Rien à voir ici !"
+    people_followed_by: "Personnes suivies par %{name}"
+    people_who_follow: "Personnes qui suivent %{name}"
     posts: "Statuts"
-    unfollow: "Se désabonner"
+    unfollow: "Ne plus suivre"
   application_mailer:
     signature: "Notifications de Mastodon depuis %{instance}"
   auth:
     change_password: "Changer de mot de passe"
-    didnt_get_confirmation: "Vous n’avez pas reçu les consignes de confirmation ?"
-    forgot_password: "Mode passe oublié ?"
+    didnt_get_confirmation: "Vous n’avez pas reçu les consignes de confirmation ?"
+    forgot_password: "Mode passe oublié ?"
     login: "Se connecter"
     register: "S’inscrire"
     resend_confirmation: "Envoyer à nouveau les consignes de confirmation"
     reset_password: "Réinitialiser le mot de passe"
     set_new_password: "Établir le nouveau mot de passe"
   generic:
-    changes_saved_msg: "Les modifications ont été enregistrées avec succès !"
+    changes_saved_msg: "Les modifications ont été enregistrées avec succès !"
     powered_by: "propulsé par %{link}"
     save_changes: "Enregistrer les modifications"
     validation_errors:
-      one: "Quelque chose ne va pas ! Vérifiez l’erreur ci-dessous."
-      other: "Quelques choses ne vont pas ! Vérifiez les erreurs ci-dessous."
+      one: "Quelque chose ne va pas ! Vérifiez l’erreur ci-dessous."
+      other: "Quelques choses ne vont pas ! Vérifiez les erreurs ci-dessous."
   notification_mailer:
     favourite:
-      body: "%{name} a ajouté votre statut à ses favoris :"
+      body: "%{name} a ajouté votre statut à ses favoris :"
       subject: "%{name} a ajouté votre statut à ses favoris"
     follow:
-      body: "%{name} s’est abonné⋅e à vos statuts !"
-      subject: "%{name} s’est abonné⋅e à vos statuts"
+      body: "%{name} vous suit !"
+      subject: "%{name} vous suit"
     mention:
-      body: "%{name} vous a mentionné⋅e dans :"
+      body: "%{name} vous a mentionné⋅e dans :"
       subject: "%{name} vous a mentionné⋅e"
     reblog:
-      body: "%{name} a partagé votre statut :"
+      body: "%{name} a partagé votre statut :"
       subject: "%{name} a partagé votre statut"
   pagination:
     next: "Suivant"
@@ -54,6 +54,6 @@ fr:
     preferences: "Préférences"
   stream_entries:
     favourited: "a ajouté à ses favoris un statut de"
-    is_now_following: "s’est abonné⋅e à"
+    is_now_following: "suit désormais"
   will_paginate:
     page_gap: "…"
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
new file mode 100644
index 000000000..d891b2b28
--- /dev/null
+++ b/config/locales/hu.yml
@@ -0,0 +1,59 @@
+---
+hu:
+  about:
+    about_instance: "<em>%{instance}</em> egy Mastodon másolat."
+    about_mastodon: Mastodon egy <em>szabad, nyílt forráskódú</em> szociális hálózati kiszolgálo. Egy <em>központosítatlan</em> alternatíva a kereskedelmi platformokra, elkerüli a kommunikációd monopolizációját veszélyét. Bárki futtathatja a Mastodon-t és részt vehet a <em>szociális hálózatban</em>.
+    get_started: Első lépések
+    source_code: Forráskód
+    terms: Feltételek
+  accounts:
+    follow: Követés
+    followers: Követők
+    following: Követed őket
+    nothing_here: Nincs itt semmi!
+    people_followed_by: "%{name} követett személyei"
+    people_who_follow: "%{name} követői"
+    posts: Bejegyzések
+    unfollow: Követés abbahagyása
+  application_mailer:
+    signature: "%{instance} Mastodon értesítései"
+  auth:
+    change_password: Jelszó változtatása
+    didnt_get_confirmation: Nem kaptad meg a megerősítési lépéseket?
+    forgot_password: Elfelejtetted a jelszavad?
+    login: Belépés
+    register: Regisztráció
+    resend_confirmation: Megerősítési lépések újraküldése
+    reset_password: Jelszó visszaállítása
+    set_new_password: Új jelszó beállítása
+  generic:
+    changes_saved_msg: Változások sikeresen elmentve!
+    powered_by: powered by %{link}
+    save_changes: Változások mentése
+    validation_errors:
+      one: Valami nincs rendjén! Kérlek tekintsd meg a hibát alant
+      other: Valami nincs rendjén! Kérlek tekintsd meg a %{count} darab hibát alant.
+  notification_mailer:
+    favourite:
+      body: 'Az állapotodat kedvencnek jelölte %{name}:'
+      subject: "%{name} kedvencnek jelölte az állapotod"
+    follow:
+      body: "%{name} mostantól követ téged!"
+      subject: "%{name} mostantól követ téged"
+    mention:
+      body: '%{name} megemlített téged:'
+      subject: "%{name} megemlített téged"
+    reblog:
+      body: 'Az állapotod reblogolta %{name}:'
+      subject: "%{name} reblogolta az állapotod"
+  pagination:
+    next: Következő
+    prev: Előző
+  settings:
+    edit_profile: Profil szerkesztése
+    preferences: Beállítások
+  stream_entries:
+    favourited: kedvencnek jelölték a bejegyzésedet 
+    is_now_following: mostantól követ
+  will_paginate:
+    page_gap: "&hellip;"
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 36c5141a2..47e30ccb4 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -16,6 +16,9 @@ de:
         password: Passwort
         silenced: Öffentliche Beiträge nicht auflisten
         username: Nutzername
+      interactions:
+        must_be_follower: Benachrichtigungen von nicht-Folgern blockieren
+        must_be_following: Benachrichtigungen von Nutzern blockieren, denen ich nicht folge
       notification_emails:
         favourite: E-mail senden, wenn jemand meinen Beitrag favorisiert
         follow: E-mail senden, wenn mir jemand folgt
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index a7d958c06..1e975af14 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -16,6 +16,9 @@ en:
         password: Password
         silenced: Unlisted mode
         username: Username
+      interactions:
+        must_be_follower: Block notifications from non-followers
+        must_be_following: Block notifications from people you don't follow
       notification_emails:
         favourite: Send e-mail when someone favourites your status
         follow: Send e-mail when someone follows you
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index 7333c9e11..73905a7b3 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -15,12 +15,15 @@ fr:
         note: Présentation
         password: Mot de passe
         silenced: Ne pas apparaître dans le fil public
-        username: Nom d’utilisateur
+        username: Identifiant
       notification_emails:
-        favourite: Envoyer un courriel lorsque quelqu’un ajoute un de mes statuts à ses favoris
-        follow: Envoyer un courriel lorsque quelqu’un s’abonne à mes statuts
+        favourite: Envoyer un courriel lorsque quelqu’un ajoute mes statut à ses favoris
+        follow: Envoyer un courriel lorsque quelqu’un me suit
         mention: Envoyer un courriel lorsque quelqu’un me mentionne
-        reblog: Envoyer un courriel lorsque quelqu’un partage un de mes statuts
+        reblog: Envoyer un courriel lorsque quelqu’un partage mes statuts
+      interactions:
+        must_be_follower: Masquer les notifications des personnes qui ne vous suivent pas
+        must_be_following: Masquer les notifications des personnes que vous ne suivez pas
     'no': Non
     required:
       mark: "*"
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
new file mode 100644
index 000000000..39c450087
--- /dev/null
+++ b/config/locales/simple_form.hu.yml
@@ -0,0 +1,28 @@
+---
+hu:
+  simple_form:
+    labels:
+      defaults:
+        avatar: Profilkép
+        confirm_new_password: Új jelszó megerősítése
+        confirm_password: Jelszó megerősítése
+        current_password: Jelenlegi jelszó
+        display_name: Megjelenített név
+        email: E-mail cím
+        header: Fejléc
+        locale: Nyelv
+        new_password: Új jelszó
+        note: Önéletrajz
+        password: Jelszó
+        silenced: Listázatlan mód
+        username: Felhasználónév
+      notification_emails:
+        favourite: E-mail küldése amikor valaki kedvencnek jelöli az állapotod
+        follow: E-mail küldése amikor valaki követni kezd téged
+        mention: E-mail küldése amikor valaki megemlít téged
+        reblog: E-mail küldése amikor valaki reblogolja az állapotod
+    'no': 'Nem'
+    required:
+      mark: "*"
+      text: kötelező
+    'yes': 'Igen'
diff --git a/config/routes.rb b/config/routes.rb
index 00185c5e8..cd544a62b 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,7 +1,9 @@
+# frozen_string_literal: true
+
 require 'sidekiq/web'
 
 Rails.application.routes.draw do
-  mount ActionCable.server => '/cable'
+  mount ActionCable.server, at: 'cable'
 
   authenticate :user, lambda { |u| u.admin? } do
     mount Sidekiq::Web, at: 'sidekiq'
@@ -19,7 +21,7 @@ Rails.application.routes.draw do
     sessions:           'auth/sessions',
     registrations:      'auth/registrations',
     passwords:          'auth/passwords',
-    confirmations:      'auth/confirmations'
+    confirmations:      'auth/confirmations',
   }
 
   resources :accounts, path: 'users', only: [:show], param: :username do
@@ -42,11 +44,18 @@ Rails.application.routes.draw do
   resources :media, only: [:show]
   resources :tags,  only: [:show]
 
+  namespace :admin do
+    resources :pubsubhubbub, only: [:index]
+  end
+
   namespace :api do
-    # PubSubHubbub
+    # PubSubHubbub outgoing subscriptions
     resources :subscriptions, only: [:show]
     post '/subscriptions/:id', to: 'subscriptions#update'
 
+    # PubSubHubbub incoming subscriptions
+    post '/push', to: 'push#update', as: :push
+
     # Salmon
     post '/salmon/:id', to: 'salmon#update', as: :salmon
 
@@ -80,7 +89,6 @@ Rails.application.routes.draw do
         collection do
           get :relationships
           get :verify_credentials
-          get :suggestions
           get :search
         end
 
@@ -88,7 +96,6 @@ Rails.application.routes.draw do
           get :statuses
           get :followers
           get :following
-          get :common_followers
 
           post :follow
           post :unfollow