Merge upstream 2.0ish #165

This commit is contained in:
kibigo!
2017-10-11 10:43:10 -07:00
322 changed files with 8478 additions and 2587 deletions

View File

@@ -10,6 +10,7 @@ require_relative '../app/lib/exceptions'
require_relative '../lib/paperclip/gif_transcoder'
require_relative '../lib/paperclip/video_transcoder'
require_relative '../lib/paperclip/audio_transcoder'
require_relative '../lib/mastodon/snowflake'
require_relative '../lib/mastodon/version'
Dotenv::Railtie.load

View File

@@ -1,5 +1,81 @@
{
"ignored_warnings": [
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
"fingerprint": "0adbe361b91afff22ba51e5fc2275ec703cc13255a0cb3eecd8dab223ab9f61e",
"check_name": "LinkToHref",
"message": "Potentially unsafe model attribute in link_to href",
"file": "app/views/admin/accounts/show.html.haml",
"line": 122,
"link": "http://brakemanscanner.org/docs/warning_types/link_to_href",
"code": "link_to(Account.find(params[:id]).inbox_url, Account.find(params[:id]).inbox_url)",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":13,"file":"app/controllers/admin/accounts_controller.rb"}],
"location": {
"type": "template",
"template": "admin/accounts/show"
},
"user_input": "Account.find(params[:id]).inbox_url",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
"fingerprint": "1fc29c578d0c89bf13bd5476829d272d54cd06b92ccf6df18568fa1f2674926e",
"check_name": "LinkToHref",
"message": "Potentially unsafe model attribute in link_to href",
"file": "app/views/admin/accounts/show.html.haml",
"line": 128,
"link": "http://brakemanscanner.org/docs/warning_types/link_to_href",
"code": "link_to(Account.find(params[:id]).shared_inbox_url, Account.find(params[:id]).shared_inbox_url)",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":13,"file":"app/controllers/admin/accounts_controller.rb"}],
"location": {
"type": "template",
"template": "admin/accounts/show"
},
"user_input": "Account.find(params[:id]).shared_inbox_url",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
"fingerprint": "2129d4c1e63a351d28d8d2937ff0b50237809c3df6725c0c5ef82b881dbb2086",
"check_name": "LinkToHref",
"message": "Potentially unsafe model attribute in link_to href",
"file": "app/views/admin/accounts/show.html.haml",
"line": 35,
"link": "http://brakemanscanner.org/docs/warning_types/link_to_href",
"code": "link_to(Account.find(params[:id]).url, Account.find(params[:id]).url)",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":13,"file":"app/controllers/admin/accounts_controller.rb"}],
"location": {
"type": "template",
"template": "admin/accounts/show"
},
"user_input": "Account.find(params[:id]).url",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Dynamic Render Path",
"warning_code": 15,
"fingerprint": "3b0a20b08aef13cf8cf865384fae0cfd3324d8200a83262bf4abbc8091b5fec5",
"check_name": "Render",
"message": "Render path contains parameter value",
"file": "app/views/admin/custom_emojis/index.html.haml",
"line": 31,
"link": "http://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => filtered_custom_emojis.page(params[:page]), {})",
"render_path": [{"type":"controller","class":"Admin::CustomEmojisController","method":"index","line":9,"file":"app/controllers/admin/custom_emojis_controller.rb"}],
"location": {
"type": "template",
"template": "admin/custom_emojis/index"
},
"user_input": "params[:page]",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Dynamic Render Path",
"warning_code": 15,
@@ -10,7 +86,7 @@
"line": 3,
"link": "http://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => \"stream_entries/#{Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase}\", { Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase.to_sym => Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity, :centered => true })",
"render_path": [{"type":"controller","class":"StatusesController","method":"embed","line":35,"file":"app/controllers/statuses_controller.rb"}],
"render_path": [{"type":"controller","class":"StatusesController","method":"embed","line":41,"file":"app/controllers/statuses_controller.rb"}],
"location": {
"type": "template",
"template": "stream_entries/embed"
@@ -19,6 +95,64 @@
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
"fingerprint": "64b5b2a02ede9c2b3598881eb5a466d63f7d27fe0946aa00d570111ec7338d2e",
"check_name": "LinkToHref",
"message": "Potentially unsafe model attribute in link_to href",
"file": "app/views/admin/accounts/show.html.haml",
"line": 131,
"link": "http://brakemanscanner.org/docs/warning_types/link_to_href",
"code": "link_to(Account.find(params[:id]).followers_url, Account.find(params[:id]).followers_url)",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":13,"file":"app/controllers/admin/accounts_controller.rb"}],
"location": {
"type": "template",
"template": "admin/accounts/show"
},
"user_input": "Account.find(params[:id]).followers_url",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
"fingerprint": "82f7b0d09beb3ab68e0fa16be63cedf4e820f2490326e9a1cec05761d92446cd",
"check_name": "LinkToHref",
"message": "Potentially unsafe model attribute in link_to href",
"file": "app/views/admin/accounts/show.html.haml",
"line": 106,
"link": "http://brakemanscanner.org/docs/warning_types/link_to_href",
"code": "link_to(Account.find(params[:id]).salmon_url, Account.find(params[:id]).salmon_url)",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":13,"file":"app/controllers/admin/accounts_controller.rb"}],
"location": {
"type": "template",
"template": "admin/accounts/show"
},
"user_input": "Account.find(params[:id]).salmon_url",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "SQL Injection",
"warning_code": 0,
"fingerprint": "9ccb9ba6a6947400e187d515e0bf719d22993d37cfc123c824d7fafa6caa9ac3",
"check_name": "SQL",
"message": "Possible SQL injection",
"file": "lib/mastodon/snowflake.rb",
"line": 86,
"link": "http://brakemanscanner.org/docs/warning_types/sql_injection/",
"code": "connection.execute(\" CREATE OR REPLACE FUNCTION timestamp_id(table_name text)\\n RETURNS bigint AS\\n $$\\n DECLARE\\n time_part bigint;\\n sequence_base bigint;\\n tail bigint;\\n BEGIN\\n time_part := (\\n -- Get the time in milliseconds\\n ((date_part('epoch', now()) * 1000))::bigint\\n -- And shift it over two bytes\\n << 16);\\n\\n sequence_base := (\\n 'x' ||\\n -- Take the first two bytes (four hex characters)\\n substr(\\n -- Of the MD5 hash of the data we documented\\n md5(table_name ||\\n '#{SecureRandom.hex(16)}' ||\\n time_part::text\\n ),\\n 1, 4\\n )\\n -- And turn it into a bigint\\n )::bit(16)::bigint;\\n\\n -- Finally, add our sequence number to our base, and chop\\n -- it to the last two bytes\\n tail := (\\n (sequence_base + nextval(table_name || '_id_seq'))\\n & 65535);\\n\\n -- Return the time part and the sequence part. OR appears\\n -- faster here than addition, but they're equivalent:\\n -- time_part has no trailing two bytes, and tail is only\\n -- the last two bytes.\\n RETURN time_part | tail;\\n END\\n $$ LANGUAGE plpgsql VOLATILE;\\n\")",
"render_path": null,
"location": {
"type": "method",
"class": "Mastodon::Snowflake",
"method": "define_timestamp_id"
},
"user_input": "SecureRandom.hex(16)",
"confidence": "Medium",
"note": ""
},
{
"warning_type": "Dynamic Render Path",
"warning_code": 15,
@@ -26,7 +160,7 @@
"check_name": "Render",
"message": "Render path contains parameter value",
"file": "app/views/admin/accounts/index.html.haml",
"line": 63,
"line": 64,
"link": "http://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => filtered_accounts.page(params[:page]), {})",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"index","line":10,"file":"app/controllers/admin/accounts_controller.rb"}],
@@ -38,6 +172,25 @@
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
"fingerprint": "bb0ad5c4a42e06e3846c2089ff5269c17f65483a69414f6ce65eecf2bb11fab7",
"check_name": "LinkToHref",
"message": "Potentially unsafe model attribute in link_to href",
"file": "app/views/admin/accounts/show.html.haml",
"line": 95,
"link": "http://brakemanscanner.org/docs/warning_types/link_to_href",
"code": "link_to(Account.find(params[:id]).remote_url, Account.find(params[:id]).remote_url)",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":13,"file":"app/controllers/admin/accounts_controller.rb"}],
"location": {
"type": "template",
"template": "admin/accounts/show"
},
"user_input": "Account.find(params[:id]).remote_url",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Redirect",
"warning_code": 18,
@@ -65,7 +218,7 @@
"check_name": "Render",
"message": "Render path contains parameter value",
"file": "app/views/admin/reports/index.html.haml",
"line": 24,
"line": 25,
"link": "http://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => filtered_reports.page(params[:page]), {})",
"render_path": [{"type":"controller","class":"Admin::ReportsController","method":"index","line":9,"file":"app/controllers/admin/reports_controller.rb"}],
@@ -77,6 +230,25 @@
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
"fingerprint": "e04aafe1e06cf8317fb6ac0a7f35783e45aa1274272ee6eaf28d39adfdad489b",
"check_name": "LinkToHref",
"message": "Potentially unsafe model attribute in link_to href",
"file": "app/views/admin/accounts/show.html.haml",
"line": 125,
"link": "http://brakemanscanner.org/docs/warning_types/link_to_href",
"code": "link_to(Account.find(params[:id]).outbox_url, Account.find(params[:id]).outbox_url)",
"render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":13,"file":"app/controllers/admin/accounts_controller.rb"}],
"location": {
"type": "template",
"template": "admin/accounts/show"
},
"user_input": "Account.find(params[:id]).outbox_url",
"confidence": "Weak",
"note": ""
},
{
"warning_type": "Dynamic Render Path",
"warning_code": 15,
@@ -84,7 +256,7 @@
"check_name": "Render",
"message": "Render path contains parameter value",
"file": "app/views/stream_entries/show.html.haml",
"line": 23,
"line": 21,
"link": "http://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(partial => \"stream_entries/#{Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase}\", { :locals => ({ Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase.to_sym => Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity, :include_threads => true }) })",
"render_path": [{"type":"controller","class":"StatusesController","method":"show","line":20,"file":"app/controllers/statuses_controller.rb"}],
@@ -97,6 +269,6 @@
"note": ""
}
],
"updated": "2017-08-30 05:14:04 +0200",
"brakeman_version": "3.7.2"
"updated": "2017-10-07 19:24:02 +0200",
"brakeman_version": "4.0.1"
}

View File

@@ -90,11 +90,6 @@ Rails.application.configure do
config.action_mailer.delivery_method = ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp').to_sym
config.to_prepare do
StatsD.backend = StatsD::Instrument::Backends::NullBackend.new if ENV['STATSD_ADDR'].blank?
Sidekiq::Logging.logger.level = Logger::WARN
end
config.action_dispatch.default_headers = {
'Server' => 'Mastodon',
'X-Frame-Options' => 'DENY',

View File

@@ -3,6 +3,5 @@
Kaminari.configure do |config|
config.default_per_page = 40
config.window = 1
config.left = 3
config.right = 1
config.outer_window = 1
end

View File

@@ -7,6 +7,8 @@ Paperclip.interpolates :filename do |attachment, style|
[basename(attachment, style), extension(attachment, style)].delete_if(&:blank?).join('.')
end
Paperclip::Attachment.default_options[:use_timestamp] = false
if ENV['S3_ENABLED'] == 'true'
Aws.eager_autoload!(services: %w(S3))
@@ -18,7 +20,6 @@ if ENV['S3_ENABLED'] == 'true'
Paperclip::Attachment.default_options[:s3_headers] = { 'Cache-Control' => 'max-age=315576000' }
Paperclip::Attachment.default_options[:s3_permissions] = ENV.fetch('S3_PERMISSION') { 'public-read' }
Paperclip::Attachment.default_options[:s3_region] = ENV.fetch('S3_REGION') { 'us-east-1' }
Paperclip::Attachment.default_options[:use_timestamp] = false
Paperclip::Attachment.default_options[:s3_credentials] = {
bucket: ENV.fetch('S3_BUCKET'),
@@ -48,6 +49,7 @@ elsif ENV['SWIFT_ENABLED'] == 'true'
provider: 'OpenStack',
openstack_username: ENV.fetch('SWIFT_USERNAME'),
openstack_project_name: ENV.fetch('SWIFT_TENANT'),
openstack_tenant: ENV.fetch('SWIFT_TENANT'), # Some OpenStack-v2 ignores project_name but needs tenant
openstack_api_key: ENV.fetch('SWIFT_PASSWORD'),
openstack_auth_url: ENV.fetch('SWIFT_AUTH_URL'),
openstack_domain_name: ENV['SWIFT_DOMAIN_NAME'] || 'default',
@@ -55,7 +57,7 @@ elsif ENV['SWIFT_ENABLED'] == 'true'
openstack_cache_ttl: ENV['SWIFT_CACHE_TTL'] || 60,
},
fog_directory: ENV.fetch('SWIFT_CONTAINER'),
fog_host: ENV.fetch('SWIFT_OBJECT_URL'),
fog_host: ENV['SWIFT_OBJECT_URL'],
fog_public: true
)
else

View File

@@ -1,18 +1,15 @@
# frozen_string_literal: true
RESERVED_CHARACTERS_REGEX = /[\:\|\@]/
StatsD.prefix = 'mastodon'
StatsD.default_sample_rate = 1
if ENV['STATSD_ADDR'].present?
host, port = ENV['STATSD_ADDR'].split(':')
def clean_name(str)
str.gsub('::', '.').gsub(RESERVED_CHARACTERS_REGEX, '_')
end
ActiveSupport::Notifications.subscribe(/performance/) do |name, _start, _finish, _id, payload|
action = payload[:action] || :increment
measurement = payload[:measurement]
value = payload[:value]
key_name = clean_name("#{name}.#{measurement}")
StatsD.send(action.to_s, key_name, (value || 1))
statsd = ::Statsd.new(host, port)
statsd.namespace = ['Mastodon', Rails.env].join('.')
::NSA.inform_statsd(statsd) do |informant|
informant.collect(:action_controller, :web)
informant.collect(:active_record, :db)
informant.collect(:cache, :cache)
informant.collect(:sidekiq, :sidekiq)
end
end

View File

@@ -1,3 +1,3 @@
# frozen_string_literal: true
StrongMigrations.start_after = 20170924022025 if Rails.env.development?
StrongMigrations.start_after = 20170924022025

View File

@@ -0,0 +1,13 @@
---
de:
activerecord:
errors:
models:
account:
attributes:
username:
invalid: nur Buchstaben, Ziffern und Unterstriche
status:
attributes:
reblog:
taken: of status already exists

View File

@@ -1,39 +1,70 @@
---
de:
about:
about_mastodon_html: Mastodon ist ein <em>freier, quelloffener</em> sozialer Netzwerkserver. Als <em>dezentralisierte</em> Alternative zu kommerziellen Plattformen verhindert es die Risiken, die entstehen, wenn eine einzelne Firma deine Kommunikation monopolisiert. Jeder kann Mastodon verwenden und ganz einfach am <em>sozialen Netzwerk</em> teilnehmen.
about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!).
about_hashtag_html: Dies sind öffentliche Beiträge, die mit <strong>#%{hashtag}</strong> getaggt wurden. Wenn du ein Konto irgendwo im Fediversum besitzt, kannst du mit ihnen interagieren.
about_this: Über diese Instanz
closed_registrations: Die Registrierung ist auf dieser Instanz momentan geschlossen.
closed_registrations: Die Registrierung auf dieser Instanz ist momentan geschlossen. Aber du kannst dein Konto auch auf einer anderen Instanz erstellen! Von dort hast du genauso Zugriff auf das Mastodon-Netzwerk.
contact: Kontakt
contact_missing: Nicht angegeben
contact_unavailable: N/A
description_headline: Was ist %{domain}?
domain_count_after: andere Instanzen
domain_count_before: Verbunden mit
domain_count_after: anderen Instanzen
domain_count_before: Vernetzt mit
extended_description_html: |
<h3>Ein guter Platz für Regeln</h3>
<p>Die erweiterte Beschreibung wurde noch nicht aufgesetzt.</p>
features:
humane_approach_body: Mastodon hat von den Fehlern anderer Netzwerke gelernt und wurde mit dem Augenmerk darauf entwickelt, den Missbrauch sozialer Medien zu bekämpfen.
humane_approach_title: Ein menschlicherer Ansatz
not_a_product_body: Mastodon ist kein kommerzielles Netzwerk. Keine Werbung, kein Abgraben deiner Daten, keine geschlossene Plattform. Es gibt keine Zentrale.
not_a_product_title: Du bist ein Mensch und keine Ware
real_conversation_body: Mit 500 Zeichen pro Beitrag und der Ermöglichung präziser Inhalts- und Bilderwarnungen kannst du dich so ausdrücken, wie du es möchtest.
real_conversation_title: Für das echte Gespräch gemacht
within_reach_body: Verschiedene Apps für iOS, Android und andere Plattformen erlauben dir dank unserem blühenden API-Ökosystem, dich von überall auf dem Laufenden zu halten.
within_reach_title: Immer für dich da
find_another_instance: Eine andere Instanz finden
generic_description: "%{domain} ist ein Server im Netzwerk"
hosted_on: Mastodon, beherbergt auf %{domain}
learn_more: Mehr erfahren
other_instances: Andere Instanzen
source_code: Quellcode
status_count_after: Beiträge verfassten
status_count_before: die
user_count_after: Profile
user_count_before: Heimat für
user_count_after: Wesen
user_count_before: Zuhause für
what_is_mastodon: Was ist Mastodon?
accounts:
follow: Folgen
followers: Folgende
following: Folgt
media: Medien
nothing_here: Hier gibt es nichts!
people_followed_by: Profile, denen %{name} folgt
people_who_follow: Profile, die %{name} folgen
posts: Beiträge
posts_with_replies: Beiträge mit Antworten
remote_follow: Folgen
reserved_username: Dieser Profilname ist belegt
roles:
admin: Admin
unfollow: Entfolgen
admin:
accounts:
are_you_sure: Bist du sicher?
confirm: Bestätigen
confirmed: Bestätigt
disable_two_factor_authentication: 2FA abschalten
display_name: Anzeigename
domain: Domain
edit: Bearbeiten
email: E-Mail
feed_url: Feed-URL
followers: Folgende
followers_url: Followers URL
follows: Folgt
inbox_url: Inbox URL
ip: IP-Adresse
location:
all: Alle
local: Lokal
@@ -45,30 +76,66 @@ de:
silenced: Stummgeschaltet
suspended: Gesperrt
title: Moderation
moderation_notes: Moderationsnotizen
most_recent_activity: Letzte Aktivität
most_recent_ip: Letzte IP-Adresse
not_subscribed: Nicht abonniert
order:
alphabetic: Alphabetisch
most_recent: Neueste
title: Reihenfolge
perform_full_suspension: Führe vollständige Sperre durch
title: Sortierung
outbox_url: Outbox URL
perform_full_suspension: Vollständige Sperre durchführen
profile_url: Profil-URL
protocol: Protokoll
public: Öffentlich
push_subscription_expires: PuSH-Abonnement läuft aus
redownload: Avatar neu laden
reset: Zurücksetzen
reset_password: Passwort zurücksetzen
resubscribe: Wieder abonnieren
salmon_url: Salmon-URL
search: Suche
shared_inbox_url: Shared Inbox URL
show:
created_reports: Meldungen durch dieses Konto
report: Meldung
targeted_reports: Meldungen über dieses Konto
silence: Stummschalten
statuses: Beiträge
subscribe: Abonnieren
title: Konten
undo_silenced: Stummschaltung zurücknehmen
undo_suspension: Sperre zurücknehmen
unsubscribe: Abbestellen
username: Profilname
web: Web
account_moderation_notes:
account: Moderator*in
created_at: Datum
create: Erstellen
created_msg: Moderationsnotiz erfolgreich erstellt!
delete: Löschen
destroyed_msg: Moderationsnotiz erfolgreich gelöscht!
custom_emojis:
copied_msg: Eine lokale Kopie des Emojis wurde erstellt
copy: Kopieren
copy_failed_msg: Es konnte keine lokale Kopie des Emojis erstellt werden
created_msg: Emoji erstellt!
delete: Löschen
destroyed_msg: Emoji gelöscht!
disable: Deaktivieren
disabled_msg: Das Emoji wurde deaktiviert
emoji: Emoji
enable: Aktivieren
enabled_msg: Das Emoji wurde aktiviert
image_hint: PNG bis 50 kB
new:
title: Eigenes Emoji hinzufügen
shortcode: Shortcode
shortcode_hint: Mindestens 2 Zeichen, nur Buchstaben, Ziffern und Unterstriche
title: Eigene Emojis
upload: Hochladen
domain_blocks:
add_new: Neu hinzufügen
created_msg: Die Domain-Blockade wird nun durchgeführt
@@ -76,18 +143,20 @@ de:
domain: Domain
new:
create: Blockade einrichten
hint: Die Domain-Blockade wird nicht die Erstellung von Konteneinträgen in der Datenbank verhindern, aber rückwirkend und automatisch alle Moderationsmethoden auf diese Accounts anwenden.
hint: Die Domain-Blockade wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden. Aber es werden rückwirkend und automatisch alle Moderationsmethoden auf diese Konten angewendet.
severity:
desc_html: "<strong>Stummschaltung</strong> wird die Beiträge dieses Accounts für alle, die ihm nicht folgen, unsichtbar machen. Eine <strong>Sperre</strong> wird alle Beiträge, Medien und Profildaten dieses Accounts entfernen."
desc_html: "<strong>Stummschaltung</strong> wird die Beiträge dieses Kontos für alle, die ihm nicht folgen, unsichtbar machen. Eine <strong>Sperre</strong> wird alle Beiträge, Medien und Profildaten dieses Kontos entfernen. Verwende <strong>Kein,</strong> um nur Mediendateien abzulehnen."
noop: Kein
silence: Stummschaltung
suspend: Sperre
title: Neue Domain-Blockade
reject_media: Mediendateien ablehnen
reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verweigert künftig deren Herunterladen. Irrelevant für Sperren
reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verhindert deren künftiges Herunterladen. Für Sperren irrelevant
severities:
noop: Kein
silence: Stummschaltung
suspend: Sperren
severity: Gewichtung
severity: Schweregrad
show:
affected_accounts:
one: Ein Konto in der Datenbank betroffen
@@ -99,46 +168,95 @@ de:
undo: Zurücknehmen
title: Domain-Blockaden
undo: Zurücknehmen
email_domain_blocks:
add_new: Neue hinzufügen
created_msg: E-Mail-Domain-Blockade erfolgreich erstellt
delete: Löschen
destroyed_msg: E-Mail-Domain-Blockade erfolgreich gelöscht
domain: Domain
new:
create: Blockade erstellen
title: Neue E-Mail-Domain-Blockade
title: E-Mail-Domain-Blockade
instances:
account_count: Bekannte Konten
domain_name: Domain
reset: Zurücksetzen
search: Suchen
title: Bekannte Instanzen
reports:
action_taken_by: Maßnahme ergriffen durch
are_you_sure: Bist du dir sicher?
comment:
label: Kommentar
none: Kein
delete: Löschen
id: ID
mark_as_resolved: Als gelöst markieren
report: "#%{id} melden"
nsfw:
'false': Medienanhänge wieder anzeigen
'true': Medienanhänge verbergen
report: 'Meldung #%{id}'
report_contents: Inhalt
reported_account: Gemeldetes Konto
reported_by: Gemeldet von
resolved: Gelöst
silence_account: Account stummschalten
silence_account: Konto stummschalten
status: Status
suspend_account: Account sperren
suspend_account: Konto sperren
target: Ziel
title: Meldungen
unresolved: Ungelöst
view: Ansehen
settings:
bootstrap_timeline_accounts:
desc_html: Mehrere Profilnamen durch Kommata trennen. Funktioniert nur mit lokalen und nicht gesperrten Konten. Standardwert bei freigelassenem Feld sind alle lokalen Admins.
title: Konten, denen Neu-Angemeldete automatisch folgen
contact_information:
email: Eine öffentliche E-Mail-Adresse angeben
username: Einen Profilnamen angeben
email: Öffentliche E-Mail-Adresse
username: Profilname für die Kontaktaufnahme
registrations:
closed_message:
desc_html: Wird auf der Frontseite angezeigt, wenn die Registrierung geschlossen ist<br>Du kannst HTML-Tags benutzen
desc_html: Wird auf der Frontseite angezeigt, wenn die Registrierung geschlossen ist. Du kannst HTML-Tags benutzen
title: Nachricht über geschlossene Registrierung
deletion:
desc_html: Allen erlauben, ihr Konto eigenmächtig zu löschen
title: Kontolöschung erlauben
open:
title: Offene Registrierung
desc_html: Allen erlauben, ein Konto zu erstellen
title: Registrierung öffnen
site_description:
desc_html: Wird als Absatz auf der Frontseite angezeigt und als Meta-Tag benutzt.<br>Du kannst HTML-Tags benutzen, insbesondere <code>&lt;a&gt;</code> und <code>&lt;em&gt;</code>.
title: Seitenbeschreibung
desc_html: Wird als Absatz auf der Frontseite angezeigt und als Meta-Tag benutzt. Du kannst HTML-Tags benutzen, insbesondere <code>&lt;a&gt;</code> und <code>&lt;em&gt;</code>.
title: Beschreibung der Instanz
site_description_extended:
desc_html: Wird auf der erweiterten Informationsseite angezeigt<br>Du kannst HTML-Tags benutzen
title: Erweiterte Seitenbeschreibung
site_title: Seitentitel
title: Seiteneinstellungen
desc_html: Bietet sich für Verhaltenskodizes, Regeln, Richtlinien und weiteres an, was deine Instanz auszeichnet. Du kannst HTML-Tags benutzen
title: Erweiterte Beschreibung der Instanz
site_terms:
desc_html: Hier kannst du deine eigenen Geschäftsbedingungen, Datenschutzerklärung und anderes rechtlich Relevante eintragen. Du kannst HTML-Tags benutzen
title: Eigene Geschäftsbedingungen
site_title: Name der Instanz
thumbnail:
desc_html: Wird für die Vorschau via OpenGraph und API verwendet. 1200×630 px wird empfohlen
title: Instanz-Thumbnail
timeline_preview:
desc_html: Auf der Frontseite die öffentliche Zeitleiste anzeigen
title: Zeitleisten-Vorschau
title: Instanz-Einstellungen
statuses:
back_to_account: Zurück zum Konto
batch:
delete: Löschen
nsfw_off: NSFW aus
nsfw_on: NSFW ein
execute: Ausführen
failed_to_execute: Ausführen fehlgeschlagen
media:
hide: Medien verbergen
show: Medien anzeigen
title: Medien
no_media: Keine Medien
title: Beiträge des Kontos
with_media: Mit Medien
subscriptions:
callback_url: Callback-URL
confirmed: Bestätigt
@@ -147,25 +265,46 @@ de:
title: WebSub
topic: Thema
title: Administration
admin_mailer:
new_report:
body: "%{reporter} hat %{target} gemeldet"
subject: Neue Meldung auf %{instance} (#%{id})
application_mailer:
salutation: "%{name},"
settings: 'E-Mail-Einstellungen ändern: %{link}'
signature: Mastodon-Benachrichtigungen von %{instance}
view: 'Darstellung:'
view: 'Ansehen:'
applications:
created: Anwendung erstellt
destroyed: Anwendung gelöscht
invalid_url: Die angegebene URL ist ungültig
regenerate_token: Zugangs-Token neu erstellen
token_regenerated: Zugangs-Token neu erstellt
warning: Sei mit diesen Daten sehr vorsichtig! Teile sie niemandem mit.
your_token: Dein Zugangs-Token
auth:
change_password: Passwort ändern
didnt_get_confirmation: Keine Bestätigung bekommen?
agreement_html: Indem du dich registrierst, erklärst du dich mit unseren <a href="%{rules_path}">Geschäftsbedingungen</a> und der <a href="%{terms_path}">Datenschutzerklärung</a> einverstanden.
change_password: Sicherheit
delete_account: Konto löschen
delete_account_html: Falls du dein Konto löschen willst, kannst du <a href="%{path}">hier damit fortfahren</a>. Du wirst um Bestätigung gebeten werden.
didnt_get_confirmation: Keine Bestätigungs-Mail erhalten?
forgot_password: Passwort vergessen?
invalid_reset_password_token: Das Token zum Zurücksetzen des Passworts ist ungültig oder abgelaufen. Bitte fordere ein neues an.
login: Anmelden
logout: Abmelden
register: Registrieren
resend_confirmation: Bestätigung nochmal versenden
resend_confirmation: Bestätigungs-Mail erneut versenden
reset_password: Passwort zurücksetzen
set_new_password: Neues Passwort setzen
authorize_follow:
error: Das Profil konnte nicht geladen werden
follow: Folgen
follow_request: 'Du hast eine Folgeanfrage gesendet an:'
following: 'Erfolg! Du folgst nun:'
post_follow:
close: Oder du schließt einfach dieses Fenster.
return: Zurück zum Profil dieses Wesens
web: Das Web öffnen
title: "%{acct} folgen"
datetime:
distance_in_words:
@@ -181,18 +320,44 @@ de:
x_minutes: "%{count}m"
x_months: "%{count}mo"
x_seconds: "%{count}s"
deletes:
bad_password_msg: Falsches Passwort
confirm_password: Gib dein derzeitiges Passwort ein, um deine Identität zu bestätigen
description_html: Hiermit wird <strong>dauerhaft und unwiederbringlich</strong> der Inhalt deines Kontos gelöscht und dein Konto deaktiviert. Dein Profilname wird reserviert, um künftige Imitationen zu verhindern.
proceed: Konto löschen
success_msg: Dein Konto wurde erfolgreich gelöscht
warning_html: Wir können nur dafür garantieren, dass die Inhalte auf dieser einen Instanz gelöscht werden. Bei Inhalten, die weit verbreitet wurden, ist es wahrscheinlich, dass Spuren bleiben werden. Server, die offline sind oder keine Benachrichtigungen von deinem Konto mehr empfangen, werden ihre Datenbanken nicht bereinigen.
warning_title: Verfügbarkeit verstreuter Inhalte
errors:
'404': Die Seite, die du gesucht hast, existiert nicht.
'410': Die Seite, die du gesucht hast, existiert nicht mehr.
'403': Dir fehlt die Befugnis, diese Seite sehen zu können.
'404': Diese Seite existiert nicht.
'410': Diese Seite existiert nicht mehr.
'422':
content: Sicherheitsüberprüfung fehlgeschlagen. Blockierst du Cookies?
title: Sicherheitsüberprüfung fehlgeschlagen
'429': Du wurdest gedrosselt
'500':
content: Bitte verzeih, etwas ist bei uns schief gegangen.
title: Diese Seite ist kaputt
noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">nativen Mastodon-Anwendungen</a> für deine Plattform probieren.
exports:
blocks: Du blockierst
blocks: Du hast blockiert
csv: CSV
follows: Du folgst
mutes: Du schaltest stumm
mutes: Du hast stummgeschaltet
storage: Medienspeicher
followers:
domain: Instanz
explanation_html: Wenn du sicherstellen willst, dass deine Beiträge privat sind, musst du wissen, wer dir folgt. <strong>Deine privaten Beiträge werden an alle Instanzen weitergegeben, auf denen Menschen registriert sind, die dir folgen.</strong> Wenn du den Betreibenden einer Instanz misstraust und du befürchtest, dass sie deine Privatsphäre missachten könnten, kannst du sie hier entfernen.
followers_count: Zahl der Folgenden
lock_link: dein Konto sperrst
purge: Von der Liste deiner Folgenden löschen
success:
one: Folgende von einer Domain werden soft-geblockt …
other: Folgende von %{count} Domains werden soft-geblockt …
true_privacy_html: Bitte beachte, dass <strong>wirklicher Schutz deiner Privatsphäre nur durch Ende-zu-Ende-Verschlüsselung erreicht werden kann.</strong>.
unlocked_warning_html: Wer dir folgen will, kann dies jederzeit ohne deine vorige Einverständnis tun und erhält damit automatisch Zugriff auf deine privaten Beiträge. Wenn du %{lock_link}, kannst du vorab entscheiden, wer dir folgen darf und wer nicht.
unlocked_warning_title: Dein Konto ist nicht gesperrt
generic:
changes_saved_msg: Änderungen gespeichert!
powered_by: angetrieben von %{link}
@@ -201,8 +366,8 @@ de:
one: Etwas ist noch nicht ganz richtig! Bitte korrigiere den Fehler
other: Etwas ist noch nicht ganz richtig! Bitte korrigiere %{count} Fehler
imports:
preface: Du kannst bestimmte Daten wie die Leute, denen du folgst oder die du blockierst, in dein Konto auf dieser Instanz aus einem Export von einer anderen importieren.
success: Deine Daten wurden erfolgreich hochgeladen und werden in Kürze verabeitet
preface: Daten, die du aus einer anderen Instanz exportiert hast, kannst du hier importieren. Beispielsweise die Liste derjenigen, denen du folgst oder die du blockiert hast.
success: Deine Daten wurden erfolgreich hochgeladen und werden in Kürze verarbeitet
types:
blocking: Blockierliste
following: Folgeliste
@@ -219,26 +384,26 @@ de:
body: 'Hier ist eine kurze Zusammenfasung dessen, was du auf %{instance} seit deinem letzten Besuch am %{since} verpasst hast:'
mention: "%{name} hat dich erwähnt:"
new_followers_summary:
one: Du hast einen neuen Folgenden bekommen! Juhu!
other: Du hast %{count} neue Folgende bekommen! Großartig!
one: Ein weiteres Wesen folgt dir nun! Juhu!
other: "%{count} weitere Wesen folgen dir nun! Großartig!"
subject:
one: "1 neue Mitteilung seit deinem letzten Besuch \U0001F418"
other: "%{count} neue Mitteilungen seit deinem letzten Besuch \U0001F418"
favourite:
body: 'Dein Beitrag wurde von %{name} favorisiert:'
subject: "%{name} hat deinen Beitrag favorisiert."
subject: "%{name} hat deinen Beitrag favorisiert"
follow:
body: "%{name} folgt dir jetzt!"
subject: "%{name} folgt dir jetzt."
subject: "%{name} folgt dir jetzt"
follow_request:
body: "%{name} möchte dir folgen:"
subject: "%{name} möchte dir folgen."
subject: "%{name} möchte dir folgen"
mention:
body: "%{name} hat dich erwähnt:"
subject: "%{name} hat dich erwähnt."
subject: "%{name} hat dich erwähnt"
reblog:
body: 'Dein Beitrag wurde von %{name} geteilt:'
subject: "%{name} teilte deinen Beitrag."
body: "%{name} hat deinen Beitrag geteilt:"
subject: "%{name} hat deinen Beitrag geteilt"
number:
human:
decimal_units:
@@ -254,49 +419,126 @@ de:
next: Vorwärts
prev: Zurück
truncate: "&hellip;"
preferences:
languages: Sprachen
other: Weiteres
publishing: Beiträge
web: Web
push_notifications:
favourite:
title: "%{name} hat deinen Beitrag favorisiert"
follow:
title: "%{name} folgt dir nun"
group:
title: "%{count} Benachrichtigungen"
mention:
action_boost: Teilen
action_expand: Mehr anzeigen
action_favourite: Favorisieren
title: "%{name} hat dich erwähnt"
reblog:
title: "%{name} hat deinen Beitrag geteilt"
remote_follow:
acct: Dein Profilname@Domain, von dem aus du dieser Person folgen möchtest.
missing_resource: Die erforderliche Weiterleitungs-URL konnte leider in deinem Profil nicht gefunden werden.
acct: Profilname@Domain, von wo aus du dieser Person folgen möchtest
missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden
proceed: Weiter
prompt: 'Du wirst dieser Person folgen:'
sessions:
activity: Letzte Aktivität
browser: Browser
browsers:
alipay: Alipay
blackberry: Blackberry
chrome: Chrome
edge: Microsoft Edge
firefox: Firefox
generic: Unbekannter Browser
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
opera: Opera
phantom_js: PhantomJS
qq: QQ Browser
safari: Safari
uc_browser: UCBrowser
weibo: Weibo
current_session: Aktuelle Sitzung
description: "%{browser} auf %{platform}"
explanation: Dies sind die Webbrowser, die derzeit in dein Mastodon-Konto eingeloggt sind.
ip: IP-Adresse
platforms:
adobe_air: Adobe Air
android: Android
blackberry: Blackberry
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
linux: Linux
mac: Mac
other: unbekannter Plattform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
revoke: Schließen
revoke_success: Sitzung erfolgreich geschlossen
title: Sitzungen
settings:
authorized_apps: Autorisierte Anwendungen
back: Zurück zu Mastodon
delete: Konto löschen
development: Entwicklung
edit_profile: Profil bearbeiten
export: Datenexport
followers: Autorisierte Folgende
import: Datenimport
notifications: Benachrichtigungen
preferences: Einstellungen
settings: Einstellungen
two_factor_authentication: Zwei-Faktor-Authentisierung
your_apps: Deine Anwendungen
statuses:
open_in_web: Im Web öffnen
over_character_limit: Zeichenlimit von %{max} überschritten
pin_errors:
limit: Du kannst nicht noch mehr Beiträge anheften
ownership: Du kannst nur eigene Beiträge anheften
private: Du kannst nur öffentliche Beiträge anheften
reblog: Du kannst keine geteilten Beiträge anheften
show_more: Mehr anzeigen
visibilities:
private: Nur Folgenden zeigen
private: Nur Folgende
private_long: Nur für Folgende sichtbar
public: Öffentlich
unlisted: Öffentlich, aber nicht auf der öffentlichen Zeitleiste anzeigen
public_long: Für alle sichtbar
unlisted: Nicht gelistet
unlisted_long: Für alle sichtbar, aber nicht in öffentlichen Zeitleisten aufgelistet
stream_entries:
click_to_show: Klicken um zu zeigen
click_to_show: Klicken, um zu zeigen
pinned: Angehefteter Beitrag
reblogged: teilte
sensitive_content: Sensible Inhalte
sensitive_content: Heikle Inhalte
themes:
default: Mastodon
time:
formats:
default: "%d.%m.%Y %H:%M"
two_factor_authentication:
code_hint: Gib den Code, den deine Authenticator-App generiert hat, zur Bestätigung an
description_html: Wenn du <strong>Zwei-Faktor-Authentisierung</strong> aktivierst, wirst du dein Telefon zum Anmelden benötigen, welches Tokens für dich generiert, die du eingeben musst.
code_hint: Gib zur Bestätigung den Code ein, den deine Authenticator-App generiert hat
description_html: Wenn du <strong>Zwei-Faktor-Authentisierung (2FA)</strong> aktivierst, wirst du dein Telefon zum Anmelden benötigen. Darauf werden Tokens erzeugt, die du bei der Anmeldung eingeben musst.
disable: Deaktivieren
enable: Aktivieren
enabled: Zwei-Faktor-Authentisierung ist aktiviert
enabled_success: Zwei-Faktor-Authentisierung erfolgreich aktiviert
generate_recovery_codes: Wiederherstellungscodes generieren
instructions_html: "<strong>Lese diesen QR-Code mit Google Authenticator oder einer ähnlichen TOTP-App auf deinem Telefon ein</strong>. Von nun an wird diese App Tokens generieren, die du beim Anmelden eingeben musst."
lost_recovery_codes: Wiederherstellungscodes erlauben dir, wieder den Zugang zu deinem Konto zu erlangen, falls du dein Telefon verlierst. Wenn du deine Wiederherstellungscodes verloren hast, kannst du sie hier regenerieren. Deine alten Wiederherstellungscodes werden damit ungültig gemacht.
instructions_html: "<strong>Lies diesen QR-Code mit Google Authenticator oder einer ähnlichen TOTP-App auf deinem Telefon ein.</strong> Von nun an wird diese App Tokens generieren, die du beim Anmelden eingeben musst."
lost_recovery_codes: Wiederherstellungscodes erlauben dir, wieder den Zugang zu deinem Konto zu erlangen, falls du dein Telefon verlieren solltest. Wenn du deine Wiederherstellungscodes verloren hast, kannst du sie hier neu generieren. Deine alten Wiederherstellungscodes werden damit ungültig gemacht.
manual_instructions: 'Wenn du den QR-Code nicht einlesen kannst und ihn manuell eingeben musst, ist hier das Klartext-Geheimnis:'
recovery_codes_regenerated: Wiederherstellungscodes erfolgreich regeneriert
recovery_instructions_html: Wenn du jemals den Zugang zu deinem Telefon verlierst, kannst du einen der Wiederherstellungscodes unten benutzen, um wieder auf dein Konto zugreifen zu können. Bewahre die Wiederherstellungscodes sicher auf, indem du sie beispielsweise ausdruckst und sie zusammen mit anderen wichtigen Dokumenten lagerst.
recovery_codes: Wiederherstellungs-Codes sichern
recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu generiert
recovery_instructions_html: Wenn du den Zugang zu deinem Telefon verlieren solltest, kannst du einen untenstehenden Wiederherstellungscodes benutzen, um wieder auf dein Konto zugreifen zu können. <strong>Bewahre die Wiederherstellungscodes gut auf.</strong> Du könntest sie beispielsweise ausdrucken und bei deinen restlichen wichtigen Dokumenten aufbewahren.
setup: Einrichten
wrong_code: Der eingegebene Code war ungültig! Sind die Server- und die Gerätezeit korrekt?
wrong_code: Der eingegebene Code war ungültig! Stimmen Serverzeit und Gerätezeit?
users:
invalid_email: Ungültige E-Mail-Addresse
invalid_email: Ungültige E-Mail-Adresse
invalid_otp_token: Ungültiger Zwei-Faktor-Authentisierungs-Code
signed_in_as: 'Angemeldet als:'

View File

@@ -2,53 +2,53 @@
de:
devise:
confirmations:
confirmed: Vielen Dank für deine Registrierung. Bitte melde dich jetzt an.
send_instructions: Du erhältst in wenigen Minuten eine E-Mail, mit der du deine Registrierung bestätigen kannst.
send_paranoid_instructions: Falls Deine E-Mail-Adresse in unserer Datenbank existiert, erhältst Du in wenigen Minuten eine E-Mail mit der du deine Registrierung bestätigen kannst.
confirmed: Deine E-Mail-Adresse wurde bestätigt.
send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinen Spam-Ordner!
send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinen Spam-Ordner!
failure:
already_authenticated: Du bist bereits angemeldet.
inactive: Dein Account ist nicht aktiv.
invalid: Ungültige Anmeldedaten.
last_attempt: Du hast noch einen Versuch bevor dein Account gesperrt wird.
locked: Dein Account ist gesperrt.
not_found_in_database: E-Mail-Adresse oder Passwort ungültig.
timeout: Deine Sitzung ist abgelaufen, bitte melde dich erneut an.
unauthenticated: Du musst Dich anmelden oder registrieren, bevor du fortfahren kannst.
unconfirmed: Du musst deinen Account bestätigen, bevor du fortfahren kannst.
inactive: Dein Konto wurde noch nicht aktiviert.
invalid: "%{authentication_keys} oder Passwort ungültig."
last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird.
locked: Dein Konto ist gesperrt.
not_found_in_database: "%{authentication_keys} oder Passwort ungültig."
timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an.
unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst.
unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst.
mailer:
confirmation_instructions:
subject: 'Mastodon: Anleitung zur Bestätigung deines Accounts'
subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
password_change:
subject: 'Mastodon: Passwort wurde geändert'
subject: 'Mastodon: Passwort geändert'
reset_password_instructions:
subject: 'Mastodon: Anleitung um dein Passwort zurückzusetzen'
subject: 'Mastodon: Passwort zurücksetzen'
unlock_instructions:
subject: 'Mastodon: Anleitung um deinen Account freizuschalten'
subject: 'Mastodon: Konto entsperren'
omniauth_callbacks:
failure: Du konntest nicht mit deinem %{kind}-Account angemeldet werden, weil '%{reason}'.
success: Du hast dich erfolgreich mit Deinem %{kind}-Account angemeldet.
failure: Du konntest nicht mit deinem %{kind}-Konto angemeldet werden, weil »%{reason}«.
success: Du hast dich erfolgreich mit deinem %{kind}-Konto angemeldet.
passwords:
no_token: Du kannst diese Seite nur über den Link aus der E-Mail zum Passwort-Zurücksetzen aufrufen. Wenn du einen solchen Link aufgerufen hast, stelle bitte sicher, dass du die vollständige Adresse aufrufst.
send_instructions: Du erhältst in wenigen Minuten eine E-Mail mit der Anleitung, wie du dein Passwort zurücksetzen kannst.
send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank existiert erhältst du in wenigen Minuten eine E-Mail mit der Anleitung, wie du dein Passwort zurücksetzen kannst.
send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Passwort zurücksetzen kannst.
send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Passwort zurücksetzen kannst.
updated: Dein Passwort wurde geändert. Du bist jetzt angemeldet.
updated_not_active: Dein Passwort wurde geändert.
registrations:
destroyed: Dein Account wurde gelöscht.
destroyed: Dein Konto wurde gelöscht.
signed_up: Du hast dich erfolgreich registriert.
signed_up_but_inactive: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account inaktiv ist.
signed_up_but_locked: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account gesperrt ist.
signed_up_but_unconfirmed: Du hast Dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Account noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail mit der Anleitung, wie Du Deinen Account freischalten kannst.
update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhälst in wenigen Minuten eine E-Mail, mit der du die Änderung deiner E-Mail-Adresse abschließen kannst.
signed_up_but_inactive: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto inaktiv ist.
signed_up_but_locked: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto gesperrt ist.
signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin ist erklärt, wie du dein Konto freischalten kannst.
update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhältst in wenigen Minuten eine E-Mail. Darin ist erklärt, wie du die Änderung deiner E-Mail-Adresse abschließen kannst.
updated: Deine Daten wurden aktualisiert.
sessions:
already_signed_out: Erfolgreich abgemeldet.
signed_in: Erfolgreich angemeldet.
signed_out: Erfolgreich abgemeldet.
unlocks:
send_instructions: Du erhältst in wenigen Minuten eine E-Mail mit der Anleitung, wie du deinen Account entsperren können.
send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank existiert erhältst du in wenigen Minuten eine E-Mail mit der Anleitung, wie du deinen Account entsperren kannst.
unlocked: Dein Account wurde entsperrt. Du bist jetzt angemeldet.
send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst.
send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst.
unlocked: Dein Konto wurde entsperrt. Du bist jetzt angemeldet.
errors:
messages:
already_confirmed: wurde bereits bestätigt.

View File

@@ -3,17 +3,19 @@ de:
activerecord:
attributes:
doorkeeper/application:
name: Name
redirect_uri: Redirect-URI
name: Name der Anwendung
redirect_uri: Weiterleitungs-URI
scopes: Befugnisse
website: Website der Anwendung
errors:
models:
doorkeeper/application:
attributes:
redirect_uri:
fragment_present: darf kein Fragment enthalten.
invalid_uri: muss ein valider URI (Identifier) sein.
relative_uri: muss ein absoluter URI (Identifier) sein.
secured_uri: muss ein HTTPS/SSL-URI (Identifier) sein.
invalid_uri: muss ein valider URI sein.
relative_uri: muss ein absoluter URI sein.
secured_uri: muss ein HTTPS/SSL-URI sein.
doorkeeper:
applications:
buttons:
@@ -25,27 +27,31 @@ de:
confirmations:
destroy: Bist du sicher?
edit:
title: Applikation bearbeiten
title: Anwendung bearbeiten
form:
error: Hoppla! Bitte überprüfe das Formular auf Fehler!
help:
native_redirect_uri: "%{native_redirect_uri} für lokale Tests benutzen"
redirect_uri: Bitte benutze eine Zeile pro URI
scopes: Bitte die "Scopes" mit Leerzeichen trennen. Bitte frei lassen für die Verwendung der Default-Werte.
scopes: Bitte die Befugnisse mit Leerzeichen trennen. Zur Verwendung der Standardwerte freilassen.
index:
application: Anwendung
callback_url: Callback-URL
delete: Löschen
name: Name
new: Neue Applikation
title: Deine Applikationen
new: Neue Anwendung
scopes: Befugnisse
show: Zeigen
title: Deine Anwendungen
new:
title: Neue Applikation
title: Neue Anwendung
show:
actions: Aktionen
application_id: Applikations-ID
application_id: Client-Schlüssel
callback_urls: Callback-URLs
scopes: Scopes
secret: Secret
title: 'Applikation: %{name}'
scopes: Befugnisse
secret: Client-Secret
title: 'Anwendung: %{name}'
authorizations:
buttons:
authorize: Autorisieren
@@ -53,61 +59,61 @@ de:
error:
title: Ein Fehler ist aufgetreten
new:
able_to: 'Diese Anwendung wird folgende Rechte haben:'
prompt: Soll %{client_name} für die Benutzung dieses Accounts autorisiert werden?
able_to: 'Sie wird folgende Befugnisse haben:'
prompt: Die Anwendung %{client_name} verlangt Zugriff auf dein Konto
title: Autorisierung erforderlich
show:
title: Copy this authorization code and paste it to the application.
title: Kopiere diesen Autorisierungs-Code und füge ihn in die Anwendung ein.
authorized_applications:
buttons:
revoke: Ungültig machen
revoke: Widerrufen
confirmations:
revoke: Bist du sicher?
index:
application: Applikation
created_at: erstellt am
date_format: "%Y-%m-%d %H:%M:%S"
scopes: Scopes
title: Deine autorisierten Applikationen
application: Anwendung
created_at: autorisiert am
date_format: "%d.%m.%Y %H:%M:%S"
scopes: Befugnisse
title: Deine autorisierten Anwendungen
errors:
messages:
access_denied: Der Ressourcenbesitzer oder der Autorisierungs-Server hat die Anfrage verweigert.
credential_flow_not_configured: 'Die Prozedur "Resource Owner Password Credentials" ist fehlgeschlagen: Doorkeeper.configure.resource_owner_from_credentials ist nicht konfiguriert.'
invalid_client: 'Client-Autorisierung MKIM ist fehlgeschlagen: Unbekannter Client, keine Autorisierung mitgeliefert oder Autorisierungsmethode nicht unterstützt.'
invalid_grant: Die bereitgestellte Autorisierung ist inkorrekt, abgelaufen, widerrufen, ist mit einem anderen Client verknüpft oder der Redirection URI stimmt nicht mit der Autorisierungs-Anfrage überein.
invalid_redirect_uri: Der Redirect-URI in der Anfrage ist ungültig.
invalid_request: Die Anfrage enthält einen nicht-unterstützten Parameter, ein Parameter fehlt oder sie ist anderweitig fehlerhaft.
invalid_resource_owner: Die angegebenen Zugangsdaten für den "Resource Owner" sind inkorrekt oder dieses Profil existiert nicht.
invalid_scope: Der angeforderte Scope ist inkorrekt, unbekannt oder fehlerhaft.
access_denied: Der »resource owner« oder der Autorisierungs-Server hat die Anfrage verweigert.
credential_flow_not_configured: Die Prozedur »Resource Owner Password Credentials« schlug fehl, da Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist.
invalid_client: 'Client-Authentifizierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.'
invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen, einem anderen Client ausgestellt oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein.
invalid_redirect_uri: Der beigefügte Weiterleitungs-URI ist ungültig.
invalid_request: Die Anfrage enthält ein nicht-unterstütztes Argument, ein Parameter fehlt, oder sie ist anderweitig fehlerhaft.
invalid_resource_owner: Die angegebenen Zugangsdaten für den »resource owner« sind ungültig, oder dieses Profil existiert nicht.
invalid_scope: Die angeforderte Befugnis ist ungültig, unbekannt oder fehlerhaft.
invalid_token:
expired: Der Zugriffstoken ist abgelaufen
revoked: Der Zugriffsoken wurde annuliert
unknown: Der Zugriffsoken ist ungültig
resource_owner_authenticator_not_configured: 'Die Prozedur "Resource Owner find" ist fehlgeschlagen: Doorkeeper.configure.resource_owner_authenticator ist nicht konfiguriert.'
server_error: Der Autorisierungs-Server hat ein unerwartetes Problem festgestellt und konnte die Anfrage nicht beenden.
temporarily_unavailable: Der Autorisierungs-Server ist derzeit auf Grund von temporärer Überlastung oder Wartungsarbeiten am Server nicht in der Lage, die Anfrage zu bearbeiten .
unauthorized_client: Der Client ist nicht autorisiert, diese Anfrage mit dieser Methode auszuführen.
expired: Der Zugriffs-Token ist abgelaufen
revoked: Der Zugriffs-Token wurde widerrufen
unknown: Der Zugriffs-Token ist ungültig
resource_owner_authenticator_not_configured: Die Prozedur »Resource Owner find« ist fehlgeschlagen, da Doorkeeper.configure.resource_owner_authenticator nicht konfiguriert ist.
server_error: Der Autorisierungs-Server hat ein unerwartetes Problem festgestellt und konnte die Anfrage nicht bearbeiten.
temporarily_unavailable: Der Autorisierungs-Server ist aufgrund von zwischenzeitlicher Überlastung oder Wartungsarbeiten derzeit nicht in der Lage, die Anfrage zu bearbeiten.
unauthorized_client: Der Client ist nicht dazu autorisiert, diese Anfrage mit dieser Methode auszuführen.
unsupported_grant_type: Der Autorisierungs-Typ wird nicht vom Autorisierungs-Server unterstützt.
unsupported_response_type: Der Autorisierungs-Server unterstützt diesen Antwort-Typ nicht.
flash:
applications:
create:
notice: Applikation erstellt.
notice: Anwendung erstellt.
destroy:
notice: Applikation gelöscht.
notice: Anwendung gelöscht.
update:
notice: Applikation aktualisiert.
notice: Anwendung aktualisiert.
authorized_applications:
destroy:
notice: Applikation widerrufen.
notice: Anwendung widerrufen.
layouts:
admin:
nav:
applications: Applikationen
applications: Anwendungen
oauth2_provider: OAuth2-Anbieter
application:
title: OAuth-Autorisierung nötig
scopes:
follow: Profil folgen, blocken, entblocken und entfolgen
read: deine Daten lesen
write: Beiträge von deinem Konto aus veröffentlichen
follow: Konten folgen, blocken, entblocken und entfolgen
read: deine Daten auslesen
write: Beiträge in deinem Namen veröffentlichen

View File

@@ -59,7 +59,7 @@ fr:
prompt: Autoriser %{client_name} à utiliser votre compte?
title: Autorisation requise
show:
title: Copy this authorization code and paste it to the application.
title: Copiez ce code d'autorisation et collez-le dans l'application.
authorized_applications:
buttons:
revoke: Annuler
@@ -112,4 +112,4 @@ fr:
scopes:
follow: sabonner, se désabonner, bloquer et débloquer des comptes
read: lire les données de votre compte
write: poster en tant que vous
write: poster en votre nom

View File

@@ -2,6 +2,7 @@
en:
about:
about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
about_hashtag_html: These are public toots tagged with <strong>#%{hashtag}</strong>. You can interact with them if you have an account anywhere in the fediverse.
about_this: About
closed_registrations: Registrations are currently closed on this instance. However! You can find a different instance to make an account on and get access to the very same network from there.
contact: Contact
@@ -75,6 +76,7 @@ en:
silenced: Silenced
suspended: Suspended
title: Moderation
moderation_notes: Moderation notes
most_recent_activity: Most recent activity
most_recent_ip: Most recent IP
not_subscribed: Not subscribed
@@ -108,11 +110,27 @@ en:
unsubscribe: Unsubscribe
username: Username
web: Web
account_moderation_notes:
account: Moderator
created_at: Date
create: Create
created_msg: Moderation note successfully created!
delete: Delete
destroyed_msg: Moderation note successfully destroyed!
custom_emojis:
copied_msg: Successfully created local copy of the emoji
copy: Copy
copy_failed_msg: Could not make a local copy of that emoji
created_msg: Emoji successfully created!
delete: Delete
destroyed_msg: Emojo successfully destroyed!
disable: Disable
disabled_msg: Successfully disabled that emoji
emoji: Emoji
enable: Enable
enabled_msg: Successfully enabled that emoji
image_hint: PNG up to 50KB
new:
title: Add new custom emoji
@@ -152,6 +170,16 @@ en:
undo: Undo
title: Domain Blocks
undo: Undo
email_domain_blocks:
add_new: Add new
created_msg: Email domain block successfully created
delete: Delete
destroyed_msg: Email domain block successfully deleted
domain: Domain
new:
create: Create block
title: New email domain block
title: Email Domain Block
instances:
account_count: Known accounts
domain_name: Domain
@@ -393,6 +421,11 @@ en:
next: Next
prev: Prev
truncate: "&hellip;"
preferences:
languages: Languages
other: Other
publishing: Publishing
web: Web
push_notifications:
favourite:
title: "%{name} favourited your status"
@@ -460,6 +493,7 @@ en:
export: Data export
followers: Authorized followers
import: Import
notifications: Notifications
preferences: Preferences
settings: Settings
two_factor_authentication: Two-factor Authentication

View File

@@ -7,30 +7,248 @@ eo:
description_headline: Kio estas %{domain}?
domain_count_after: aliaj aperaĵoj
domain_count_before: Konektita al
hosted_on: Mastodon gastigita sur %{domain}
learn_more: Lernu pli
other_instances: Aliaj aperaĵoj
source_code: Fontkodo
status_count_after: mesaĝoj
status_count_before: Kiu publikigis
user_count_after: uzantoj
user_count_before: Hejmo de
what_is_mastodon: Kio estas Mastodon?
accounts:
follow: Sekvi
followers: Sekvantoj
following: Sekvatoj
media: Kumunikiloj
nothing_here: Estas nenio ĉi tie!
people_followed_by: Sekvatoj de %{name}
people_who_follow: Sekvantoj de %{name}
posts: Mesaĝoj
posts_with_replies: Tootoj kun respondaj
remote_follow: Fore sekvi
reserved_username: La usantnomo estas reservis
roles:
admin: Administranto
unfollow: Malsekvi
admin:
accounts:
are_you_sure: Ĉu vi certe?
confirm: Confirmi
confirmed: Confirmis
disable_two_factor_authentication: Malebligi 2FA
display_name: Montri nomo
domain: Domajno
edit: Redakti
email: Retpoŝto
followers: Sekvantoj
followers_url: Sekvantoj URL
follows: Sekvatoj
ip: IP
location:
all: Ĉio
local: Loka
remote: Fora
title: Loko
media_attachments: Komunkiloj kunsendaĵo
moderation:
all: Ĉio
silenced: Silentis
suspended: Suspendis
title: Moderulo
most_recent_activity: Ple freŝa aktiveco
most_recent_ip: Ple freŝa IP
not_subscribed: Ne abonis
order:
alphabetic: Alfabetiko
most_recent: Ple freŝa
title: Ordono
perform_full_suspension: Fari kompleta suspendi
profile_url: Profilo URL
protocol: Protokolo
public: Publika
push_subscription_expires: PuSH subscription expires
redownload: Refreŝigi avataro
reset: Restarigi
reset_password: Restarigi pasvorto
resubscribe: Reaboni
salmon_url: Salmon URL
search: Serĉi
shared_inbox_url: Shared Inbox URL
show:
created_reports: Raportoj kreita de ĉi tiu konto
report: raporto
targeted_reports: Raportoj kreita al ĉi tiu konton
silence: Silenti
statuses: Statusoj
subscribe: Aboni
title: Kontoj
undo_silenced: Malfari silenti
undo_suspension: Malfari suspendi
unsubscribe: Malaboni
username: Uzantnomo
web: Ret
custom_emojis:
copied_msg: Sukcese kreis loka kopio de la emojio
copy: Kopi
copy_failed_msg: Could not make a local copy of that emoji
created_msg: Emojio estas kreita sukcesa!
delete: Forigi
destroyed_msg: Emojio estas forigis sukcesa!
disable: Malebligi
disabled_msg: Emojio estas malebligis sukcesa
emoji: Emojio
enable: Ebligi
enabled_msg: Emojio estas ebligis sukcesa
image_hint: PNG ĝis 50KB
new:
title: Aldoni nova kutimo emojio
shortcode: Malongakodo
shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
title: Kutimoj emojioj
upload: Alŝuti
domain_blocks:
add_new: Aldoni novo
created_msg: Domajno bloko nun estas procesita
destroyed_msg: Domajno bloko estas malfaris
domain: Domajno
new:
create: Krei bloko
severity:
noop: Nenio
silence: Silenti
suspend: Suspendi
title: Nova domajno bloko
reject_media: Reject media files
severities:
noop: Nenio
silence: Silenti
suspend: Suspendi
severity: Severeco
show:
affected_accounts:
one: Unu konto en la datumbazo esta afekta
other: "%{count} kontoj en la datumbazo esta afekta"
retroactive:
silence: Malfari silenti ĉio konton de ĉi tiu domajno
suspend: Malfari suspendi ĉio konton de ĉi tiu domajno
title: Malfari domajno bloko por %{domain}
undo: Malfari
title: Domajnoj blokoj
undo: Malfari
email_domain_blocks:
add_new: Aldoni novo
created_msg: Retpoŝto domajno bloko estas kreita sukcesa
delete: Forigi
destroyed_msg: Retpoŝto domajno bloko estas foriga sukcesa
domain: Domajno
new:
create: Aldoni bloko
title: Nova retpoŝto domajno bloko
title: Retpoŝto domajno bloko
instances:
account_count: Konataj kontoj
domain_name: Domajno
reset: Restarigi
search: Serĉi
title: Konataj petskriboj
reports:
action_taken_by: Action taken by
are_you_sure: Ĉu vi certe?
comment:
label: komento
none: Nenio
delete: Forigi
id: ID
mark_as_resolved: Marki kiel solvita
nsfw:
'false': Ne kaŝi kumunikiloj kunsendaĵoj
'true': Kaŝi kumunikiloj kunsendaĵoj
report: 'Raporto #%{id}'
report_contents: Enhavo
reported_account: Raportis konto
reported_by: Raporta de
resolved: Solvita
silence_account: Silenti konton
status: Statusoj
suspend_account: Suspendi konton
target: Celo
title: Raportoj
unresolved: Ne solvita
view: Vidi
settings:
bootstrap_timeline_accounts:
desc_html: Disigi multaj uzantnomoj per komo. Nur lokaj kaj malsloŝi kontoj estus operaci. Defaŭlo Defaŭlo kiam malplena estas ĉio lokaj administristoj.
title: Defaŭltoj sakvatoj al novoj uzantoj
contact_information:
email: Afero retpoŝto
username: kontakto uzantnomo
registrations:
closed_message:
desc_html: Vidigis sur antaŭpaĝo kian registrado estas fermis. Vi povas uzi HTML
title: Fermis registrado mesaĝo
deletion:
desc_html: Permesi ĉiuj forigi ilian konton
title: Malfermi konto forigo
open:
desc_html: Permesi ĉiuj krei konto
title: Malfermi registrado
site_description:
title: Priskribo de petskribo
site_description_extended:
title: Kutimo etendis informaĵo
site_terms:
desc_html: Vi povas skribi via politika pri privateco reguloj de servo aŭ aliaj senpagaj. Vi povas uzi HTML
title: Kutimoj reguloj de servo
site_title: Petskribo nomo
thumbnail:
desc_html: Uzis por antaŭvido vojo OpenGraph kaj API. 1200x630px rekomendis
title: Bildeto de petskribo
timeline_preview:
desc_html: Vidigi publika tempolinio sur surteriĝo paĝo
title: Antaŭvido de tempolinio
title: Retparaĝoj preferoj
statuses:
back_to_account: Irienigi al konton paĝon
batch:
delete: Forigi
nsfw_off: Malŝalti NSFW
nsfw_on: Ŝalti NSFW
execute: Execute
failed_to_execute: Failed to execute
media:
hide: Kaŝi kumunikiloj
show: Vidigi kumunikiloj
title: Kumunikiloj
no_media: Neniu Kumunikilo
title: Kontoj statusoj
with_media: Kun kumunikiloj
subscriptions:
callback_url: Callback URL
confirmed: Confirmis
expires_in: Finiĝus en
last_delivery: plej freŝa transdono
title: WebSub
topic: Topic
title: Administri
admin_mailer:
new_report:
body: "%{reporter} raportis %{target}"
subject: Nova raporto por %{instance} (#%{id})
application_mailer:
settings: 'Ŝanĝi la retpoŝt-mesaĝajn preferojn: %{link}'
signature: Sciigoj de Mastodon el %{instance}
view: 'Vidi:'
applications:
created: Aplikaĵo sukcesa kreis
destroyed: Aplikaĵo sukcesa forigis
invalid_url: La URL donita ne estas valida
regenerate_token: Regeneri aliron signon
token_regenerated: Aliro signo regeneris sukcese
your_token: Via aliro signo
auth:
change_password: Ŝanĝi pasvorton
delete_account: Forigi konton
didnt_get_confirmation: Ĉu vi ne ricevis la instrukciojn por konfirmi?
forgot_password: Pasvorto forgesita?
login: Ensaluti
@@ -42,6 +260,12 @@ eo:
authorize_follow:
error: Bedaŭrinde, okazis eraro provante konsulti la foran konton
follow: Sekvi
follow_request: 'Vi sendis sekvatin peton al:'
following: 'Sukceso! Vi nun sekvi:'
post_follow:
close: Aŭ, Vi justa povas fermi ĉi tion.
return: Ilienigi al la uzantoan profilon
web: Iri al reto
title: Sekvi %{acct}
datetime:
distance_in_words:
@@ -58,10 +282,16 @@ eo:
x_months: "%{count}mo"
x_seconds: "%{count}s"
exports:
blocks: Vi blokas
blocks: Via blokoj
csv: CSV
follows: Vi sekvas
follows: Via sekvatoj
mutes: Via silentoj
storage: Mediaĵa konservado
followers:
domain: Domajno
followers_count: Nombro de sekvatoj
lock_link: Ŝlosi via konton
purge: Forigi de sakvantoj
generic:
changes_saved_msg: Ŝanĝoj senprobleme konservitaj!
powered_by: povigita de %{link}
@@ -75,9 +305,14 @@ eo:
types:
blocking: Listo de blokitoj
following: Listo de sekvatoj
muting: Listo de silentoj
upload: Alporti
landing_strip_html: "<strong>%{name}</strong> estas uzanto en %{link_to_root_path}. Vi povas sekvi tiun aŭ interagi kun tiu, se vi havas konton ie ajn en la Fediverse."
landing_strip_signup_html: Se vi ne havas, vi povas <a href="%{sign_up_path}">membriĝi ĉi tie.</a>.
media_attachments:
validations:
images_and_video: Vi ne povas alligi video al statuson kiu jam havas bilojn
too_many: Vi ne povas alligi pli ol 4 dosieroj
notification_mailer:
digest:
body: 'Jen eta resumo de tio, kio okazis en %{instance}, ekde kiam vi laste vizitis en %{since}:'
@@ -117,32 +352,79 @@ eo:
pagination:
next: Sekva
prev: Malsekva
preferences:
languages: Lingvoj
other: Aliaj
publishing: Publikigi
web: Ret
push_notifications:
favourite:
title: "%{name} preferitis via statuso"
follow:
title: "%{name} estas sekvantas vin"
group:
title: "%{count} sciigoj"
mention:
action_boost: Akceli
action_expand: Pli
action_favourite: Preferi
title: "%{name} menciitis vin"
reblog:
title: "%{name} akcelis via statuson"
remote_follow:
acct: Enmetu vian uzantnomo@aperaĵo de kie vi volas sekvi tiun uzanton
missing_resource: La URL de plusendado ne povis esti trovita
proceed: Daŭrigi por plusendi
prompt: 'Vi eksekvos:'
sessions:
activity: Lasta Aktiveco
browser: Retumilo
current_session: Aktuala sesio
description: "%{browser} sur %{platform}"
explanation: Ĉi tiuj estas la retumiloj nun ensalutinda en via Mastodon konton.
ip: IP
revoke: Revoki
revoke_success: La sesio estas revokis
title: Sesioj
settings:
authorized_apps: Rajtigitaj aplikaĵoj
back: Reveni al Mastodon
delete: Konto forigo
development: Evoluno
edit_profile: Redakti la profilon
export: Elporti datumojn
followers: Rajtigis sekvantoj
import: Alporti
notifications: Avizoj
preferences: Preferoj
settings: Agordoj
two_factor_authentication: Dufaktora aŭtentigo
your_apps: Via aplikaĵoj
statuses:
open_in_web: Malfermi retumile
over_character_limit: limo de %{max} signoj trapasita
pin_errors:
limit: Tro multaj tootoj fiksis
ownership: Aliaja tooto ne povas esti fiksis
private: Nepublika tooto ne povas esti fixis
reblog: Diskonigo ne povas esti fiksis
show_more: Montri pli
visibilities:
private: Montri nur al sekvantoj
private_long: Montri nur al sekvantoj
public: Publika
public_long: Ĉiuj povas vidi
unlisted: Publika, sed ne aperos en publikaj tempolinioj
unlisted_long: Publika, sed ne aperos en publikaj tempolinioj
stream_entries:
click_to_show: Alklaki por montri
pinned: Fiksis
reblogged: diskonigis
sensitive_content: Tikla enhavo
terms:
title: "%{instance} Reguloj de servo kaj Politikaj pri privatecoj"
themes:
default: Mastodon
time:
formats:
default: "%b %d, %Y, %H:%M"

View File

@@ -1,7 +1,7 @@
---
fi:
about:
about_mastodon_html: 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_mastodon_html: Mastodon on <em>vapaa, 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
contact: Ota yhteyttä
description_headline: Mikä on %{domain}?

View File

@@ -152,6 +152,16 @@ ja:
undo: 元に戻す
title: ドメインブロック
undo: 元に戻す
email_domain_blocks:
add_new: 新規追加
created_msg: 処理を完了しました
delete: 消去
destroyed_msg: 消去しました
domain: ドメイン
new:
create: ブロックを作成
title: 新規メールドメインブロック
title: メールドメインブロック
instances:
account_count: 既知のアカウント数
domain_name: ドメイン名
@@ -244,9 +254,10 @@ ja:
body: "%{reporter} が %{target} を通報しました"
subject: "%{instance} の新しい通報 (#%{id})"
application_mailer:
salutation: "%{name} さん"
settings: 'メール設定の変更: %{link}'
signature: Mastodon %{instance} インスタンスからの通知
view: 'View:'
view: リンク
applications:
created: アプリが作成されました
destroyed: アプリが削除されました
@@ -309,6 +320,9 @@ ja:
content: セキュリティ認証に失敗しました。Cookieをブロックしていませんか
title: セキュリティ認証に失敗
'429': リクエストの制限に達しました。
'500':
content: もうしわけありませんが、なにかが間違っています。
title: このページは正しくありません
noscript_html: Mastodonのウェブアプリケーションを利用する場合はJavaScriptを有効にしてください。またはあなたのプラットフォーム向けの<a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">Mastodonネイティブアプリ</a>を探すことができます。
exports:
blocks: ブロック
@@ -389,6 +403,11 @@ ja:
next:
prev:
truncate: "&hellip;"
preferences:
languages: 言語
other: その他
publishing: 投稿
web: ウェブ
push_notifications:
favourite:
title: あなたのトゥートが %{name} さんにお気に入り登録されました
@@ -456,6 +475,7 @@ ja:
export: データのエクスポート
followers: 信頼済みのインスタンス
import: データのインポート
notifications: 通知
preferences: ユーザー設定
settings: 設定
two_factor_authentication: 二段階認証

View File

@@ -28,8 +28,8 @@ ko:
learn_more: 자세히
other_instances: 다른 인스턴스
source_code: 소스 코드
status_count_after: Toot
status_count_before: Toot
status_count_after:
status_count_before:
user_count_after:
user_count_before: 사용자 수
what_is_mastodon: Mastodon이란?
@@ -41,8 +41,8 @@ ko:
nothing_here: 아무 것도 없습니다.
people_followed_by: "%{name} 님이 팔로우 중인 계정"
people_who_follow: "%{name} 님을 팔로우 중인 계정"
posts: Toot
posts_with_replies: Toot와 답장
posts:
posts_with_replies: 툿과 답장
remote_follow: 리모트 팔로우
reserved_username: 이 아이디는 예약되어 있습니다.
roles:
@@ -60,6 +60,7 @@ ko:
email: E-mail
feed_url: 피드 URL
followers: 팔로워 수
followers_url: 팔로워 URL
follows: 팔로잉 수
inbox_url: Inbox URL
ip: IP
@@ -93,12 +94,13 @@ ko:
resubscribe: 다시 구독
salmon_url: Salmon URL
search: 검색
shared_inbox_url: 공유된 inbox URL
show:
created_reports: 이 계정에서 제출된 신고
report: 신고
targeted_reports: 이 계정에 대한 신고
silence: 침묵
statuses: Toot
statuses:
subscribe: 구독하기
title: 계정
undo_silenced: 침묵 해제
@@ -106,6 +108,25 @@ ko:
unsubscribe: 구독 해제
username: 아이디
web: Web
custom_emojis:
copied_msg: 성공적으로 emoji의 로컬 복사본을 생성했습니다
copy: 복사
copy_failed_msg: Emoji의 로컬 복사본을 만드는 데 실패하였습니다
created_msg: 에모지가 성공적으로 생성되었습니다!
delete: 삭제
destroyed_msg: 에모지가 성공적으로 삭제되었습니다!
disable: Disable
disabled_msg: 성공적으로 비활성화하였습니다
emoji: 에모지
enable: 활성화
enabled_msg: 성공적으로 활성화하였습니다
image_hint: 50KB 이하의 PNG
new:
title: 새 커스텀 에모지 추가
shortcode: 짧은 코드
shortcode_hint: 최소 2글자, 영문자, 숫자, _만 사용 가능
title: 커스텀 에모지
upload: 업로드
domain_blocks:
add_new: 추가하기
created_msg: 도메인 차단 처리를 완료했습니다.
@@ -115,7 +136,7 @@ ko:
create: 차단 추가
hint: 도메인 차단은 내부 데이터베이스에 계정이 생성되는 것까지는 막을 수 없지만, 그 도메인에서 생성된 계정에 자동적으로 특정한 모더레이션을 적용하게 할 수 있습니다.
severity:
desc_html: "<strong>침묵</strong>은 계정을 팔로우 하지 않고 있는 사람들에겐 계정의 Toot을 보이지 않게 합니다. <strong>정지</strong>는 계정의 컨텐츠, 미디어, 프로필 데이터를 삭제합니다."
desc_html: "<strong>침묵</strong>은 계정을 팔로우 하지 않고 있는 사람들에겐 계정의 을 보이지 않게 합니다. <strong>정지</strong>는 계정의 컨텐츠, 미디어, 프로필 데이터를 삭제합니다."
noop: 없음
silence: 침묵
suspend: 정지
@@ -138,9 +159,21 @@ ko:
undo: 실행 취소
title: 도메인 차단
undo: 실행 취소
email_domain_blocks:
add_new: 새로 추가
created_msg: Email 도메인 차단 규칙을 생성했습니다
delete: 삭제
destroyed_msg: Email 도메인 차단 규칙을 삭제했습니다
domain: 도메인
new:
create: 차단 규칙 생성
title: 새 Email 도메인 차단
title: Email 도메인 차단
instances:
account_count: 알려진 계정의 수
domain_name: 도메인 이름
reset: 리셋
search: 검색
title: 알려진 인스턴스들
reports:
action_taken_by: 신고 처리자
@@ -167,6 +200,9 @@ ko:
unresolved: 미해결
view: 표시
settings:
bootstrap_timeline_accounts:
desc_html: 콤마로 여러 유저명을 구분. 로컬의 잠기지 않은 계정만 가능합니다. 비워 둘 경우 모든 로컬 관리자가 기본으로 사용 됩니다.
title: 새 유저가 팔로우 할 계정들
contact_information:
email: 공개할 메일 주소를 입력
username: 아이디를 입력
@@ -190,6 +226,9 @@ ko:
desc_html: 당신은 독자적인 개인정보 취급 방침이나 이용약관, 그 외의 법적 근거를 작성할 수 있습니다. 또한 HTML태그를 사용할 수 있습니다.
title: 커스텀 서비스 이용 약관
site_title: 사이트 이름
thumbnail:
desc_html: OpenGraph와 API의 미리보기로 사용 됩니다. 1200x630px을 권장합니다
title: 인스턴스 썸네일
timeline_preview:
desc_html: Landing page에 공개 타임라인을 표시합니다.
title: 타임라인 프리뷰
@@ -207,7 +246,7 @@ ko:
show: 미디어 보여주기
title: 미디어
no_media: 미디어 없음
title: 계정 Toot
title: 계정
with_media: 미디어 있음
subscriptions:
callback_url: 콜백 URL
@@ -287,6 +326,9 @@ ko:
content: 보안 인증에 실패했습니다. Cookie를 차단하고 있진 않습니까?
title: 보안 인증 실패
'429': 요청 횟수 제한에 도달했습니다.
'500':
content: 죄송합니다, 뭔가 잘못 되었습니다.
title: 이 페이지는 잘못되었습니다.
noscript_html: Mastodon을 사용하기 위해서는 JavaScript를 켜 주십시오.
exports:
blocks: 차단
@@ -338,8 +380,8 @@ ko:
one: "1건의 새로운 알림 \U0001F418"
other: "%{count}건의 새로운 알림 \U0001F418"
favourite:
body: "%{name} 님이 내 Toot를 즐겨찾기에 등록했습니다."
subject: "%{name} 님이 내 Toot를 즐겨찾기에 등록했습니다"
body: "%{name} 님이 내 툿을 즐겨찾기에 등록했습니다."
subject: "%{name} 님이 내 툿을 즐겨찾기에 등록했습니다"
follow:
body: "%{name} 님이 나를 팔로우 했습니다"
subject: "%{name} 님이 나를 팔로우 했습니다"
@@ -350,8 +392,8 @@ ko:
body: "%{name} 님이 답장을 보냈습니다:"
subject: "%{name} 님이 답장을 보냈습니다"
reblog:
body: "%{name} 님이 내 Toot을 부스트 했습니다:"
subject: "%{name} 님이 내 Toot을 부스트 했습니다"
body: "%{name} 님이 내 을 부스트 했습니다:"
subject: "%{name} 님이 내 을 부스트 했습니다"
number:
human:
decimal_units:
@@ -367,9 +409,14 @@ ko:
next: 다음
prev: 이전
truncate: "&hellip;"
preferences:
languages: 언어
other: 기타
publishing: 퍼블리싱
web:
push_notifications:
favourite:
title: "%{name} 님이 당신의 Toot를 즐겨찾기에 등록했습니다."
title: "%{name} 님이 당신의 를 즐겨찾기에 등록했습니다."
follow:
title: "%{name} 님이 나를 팔로우 하고 있습니다."
group:
@@ -380,7 +427,7 @@ ko:
action_favourite: 즐겨찾기
title: "%{name} 님이 답장을 보냈습니다"
reblog:
title: "%{name} 님이 당신의 Toot를 부스트 했습니다."
title: "%{name} 님이 당신의 툿을 부스트 했습니다."
remote_follow:
acct: 아이디@도메인을 입력해 주십시오
missing_resource: 리디렉션 대상을 찾을 수 없습니다
@@ -434,6 +481,7 @@ ko:
export: 데이터 내보내기
followers: 신뢰 중인 인스턴스
import: 데이터 가져오기
notifications: 알림
preferences: 사용자 설정
settings: 설정
two_factor_authentication: 2단계 인증
@@ -442,24 +490,27 @@ ko:
open_in_web: Web으로 열기
over_character_limit: 최대 %{max}자까지 입력할 수 있습니다
pin_errors:
ownership: 다른 사람의 Toot는 고정될 수 없습니다.
private: 비공개 Toot는 고정될 수 없습니다.
limit: 너무 많은 툿을 고정했습니다.
ownership: 다른 사람의 툿은 고정될 수 없습니다.
private: 비공개 툿은 고정될 수 없습니다.
reblog: 부스트는 고정될 수 없습니다.
show_more: 더 보기
visibilities:
private: 비공개
private_long: 팔로워에게만 표시됩니다
private_long: 팔로워에게만 공개됩니다
public: 공개
public_long: 누구나 볼 수 있으며, 공개 타임라인에 표시됩니다
unlisted: Unlisted
unlisted_long: 누구나 볼 수 있지만, 공개 타임라인에는 표시되지 않습니다
stream_entries:
click_to_show: 클릭해서 표시
pinned: 고정된 Toot
pinned: 고정된
reblogged: 님이 부스트 했습니다
sensitive_content: 민감한 컨텐츠
terms:
title: "%{instance} 이용약관과 개인정보 취급 방침"
themes:
default: Mastodon
time:
formats:
default: "%Y년 %m월 %d일 %H:%M"

View File

@@ -2,6 +2,7 @@
oc:
about:
about_mastodon_html: Mastodon es un malhum social bastit amb de protocòls liures e gratuits. Es descentralizat coma los corrièls.
about_hashtag_html: Vaquí los estatuts publics ligats a <strong>#%{hashtag}</strong>. Podètz interagir amb eles savètz un compte ont que siasque sul fediverse.
about_this: A prepaus daquesta instància
closed_registrations: Las inscripcions son clavadas pel moment sus aquesta instància.
contact: Contacte
@@ -93,8 +94,8 @@ oc:
reset_password: Reïnicializar lo senhal
resubscribe: Se tornar abonar
salmon_url: URL Salmon
shared_inbox_url: URL de recepcion partejada
search: Cercar
shared_inbox_url: URL de recepcion partejada
show:
created_reports: Rapòrts creat per aqueste compte
report: rapòrt
@@ -109,10 +110,17 @@ oc:
username: Nom dutilizaire
web: Web
custom_emojis:
copied_msg: Còpia locale de lemoji ben creada
copy: Copiar
copy_failed_msg: Fracàs de la còpia locale de lemoji
created_msg: Emoji ben creat!
delete: Suprimir
destroyed_msg: Emojo ben suprimit!
disable: Desactivar
disabled_msg: Aqueste emoji es ben desactivat
emoji: Emoji
enable: Activar
enabled_msg: Aqueste emoji es ben activat
image_hint: PNG cap a 50Ko
new:
title: Ajustar un nòu emoji personal
@@ -152,6 +160,16 @@ oc:
undo: Restablir
title: Blòc de domeni
undo: Restablir
email_domain_blocks:
add_new: Ajustar
created_msg: Blocatge del domeni de corrièl ben plaçat
delete: Suprimir
destroyed_msg: Blocatge del domeni de corrièl ben levat
domain: Domeni
new:
create: Crear un blocatge
title: Nòu blocatge de domeni de corrièl
title: Blocatge de domeni de corrièl
instances:
account_count: Comptes coneguts
domain_name: Domeni
@@ -388,6 +406,9 @@ oc:
content: Verificacion de seguretat fracassada. Blocatz los cookies?
title: Verificacion de seguretat fracassada
'429': Lo servidor mòla (subrecargada)
'500':
content: Un quicomet a pas foncionat coma caliá.
title: Aquesta pagina es incorrècta
noscript_html: Per utilizar laplicacion web de Mastodon, mercés dactivar JavaScript. O podètz utilizar <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">una aplicacion</a> per vòstra plataforma coma alernativa.
exports:
blocks: Personas que blocatz
@@ -468,6 +489,11 @@ oc:
next: Seguent
prev: Precedent
truncate: "&hellip;"
preferences:
languages: Lengas
other: Autre
publishing: Publicar
web: Interfàcia Web
push_notifications:
favourite:
title: "%{name} a mes vòstre estatut en favorit"
@@ -535,6 +561,7 @@ oc:
export: Export donadas
followers: Seguidors autorizats
import: Importar
notifications: Notificacions
preferences: Preferéncias
settings: Paramètres
two_factor_authentication: Autentificacion en dos temps

View File

@@ -2,6 +2,7 @@
pl:
about:
about_mastodon_html: Mastodon jest wolną i otwartą siecią społecznościową, zdecentralizowaną alternatywą dla zamkniętych, komercyjnych platform.
about_hashtag_html: Znajdują się tu publiczne wpisy oznaczone hashtagiem <strong>#%{hashtag}</strong>. Możesz dołączyć do dyskusji, jeżeli posiadasz konto gdziekolwiek w Fediwersum.
about_this: O tej instancji
closed_registrations: Rejestracja na tej instancji jest obecnie zamknięta. Możesz jednak zarejestrować się na innej instancji, uzyskując dostęp do tej samej sieci.
contact: Kontakt
@@ -62,7 +63,7 @@ pl:
followers: Śledzący
followers_url: Adres śledzących
follows: Śledzeni
inbox: Adres skrzynki
inbox_url: Adres skrzynki
ip: Adres IP
location:
all: Wszystkie
@@ -75,6 +76,7 @@ pl:
silenced: Wyciszone
suspended: Zawieszone
title: Moderacja
moderation_notes: Notatki moderacyjne
most_recent_activity: Najnowsza aktywność
most_recent_ip: Ostatnie IP
not_subscribed: Nie zasubskrybowano
@@ -106,11 +108,25 @@ pl:
unsubscribe: Przestań subskrybować
username: Nazwa użytkownika
web: Sieć
account_moderation_notes:
account: Autor
created_at: Data
create: Dodaj
created_msg: Pomyślnie dodano notatkę moderacyjną!
delete: Usuń
destroyed_msg: Pomyślnie usunięto notatkę moderacyjną!
custom_emojis:
copied_msg: Pomyślnie utworzono lokalną kopię emoji
copy: Kopiuj
copy_failed_msg: Nie udało się utworzyć lokalnej kopii emoji
created_msg: Pomyślnie utworzono emoji!
delete: Usuń
destroyed_msg: Pomyślnie usunięto emoji!
disable: Wyłącz
disabled_msg: Pomyślnie wyłączono emoji
emoji: Emoji
enable: Włącz
enabled_msg: Pomyślnie przywrócono emoji
image_hint: Plik PNG ważący do 50KB
new:
title: Dodaj nowe niestandardowe emoji
@@ -151,12 +167,22 @@ pl:
undo: Cofnij
title: Zablokowane domeny
undo: Cofnij
email_domain_blocks:
add_new: Dodaj nową
created_msg: Pomyślnie utworzono blokadę domeny e-mail
delete: Usuń
destroyed_msg: Pomyślnie usunięto blokadę domeny e-mail
domain: Domena
new:
create: Utwórz blokadę
title: Nowa blokada domeny e-mail
title: Blokowanie domen e-mail
instances:
account_count: Znane konta
domain_name: Domena
title: Znane instancje
reports:
action_taken_by: Akcja podjęta przez
action_taken_by: Działanie podjęte przez
are_you_sure: Czy na pewno?
comment:
label: Komentarz
@@ -394,6 +420,11 @@ pl:
next: Następna
prev: Poprzednia
truncate: "&hellip;"
preferences:
languages: Języki
other: Pozostałe
publishing: Publikowanie
web: Sieć
push_notifications:
favourite:
title: "%{name} dodał Twój status do ulubionych"
@@ -461,6 +492,7 @@ pl:
export: Eksportowanie danych
followers: Autoryzowani śledzący
import: Importowanie danych
notifications: Powiadomienia
preferences: Preferencje
settings: Ustawienia
two_factor_authentication: Uwierzytelnianie dwuetapowe

View File

@@ -3,15 +3,24 @@ de:
simple_form:
hints:
defaults:
avatar: PNG, GIF oder JPG. Maximal 2MB. Wird auf 120x120px herunterskaliert
display_name: <span class="name-counter">%{count}</span> Zeichen verbleiben
header: PNG, GIF oder JPG. Maximal 2MB. Wird auf 700x335px herunterskaliert
locked: Erlaubt dir, Profile zu überprüfen, bevor sie dir folgen können
note: <span class="note-counter">%{count}</span> Zeichen verbleiben
avatar: PNG, GIF oder JPG. Maximal 2 MB. Wird auf 120×120 px herunterskaliert
digest: Wenn du lange Zeit inaktiv bist, wird dir eine Zusammenfassung von Erwähnungen in deiner Abwesenheit zugeschickt
display_name:
one: <span class="name-counter">1</span> Zeichen verbleibt
other: <span class="name-counter">%{count}</span> Zeichen verbleiben
header: PNG, GIF oder JPG. Maximal 2 MB. Wird auf 700×335 px herunterskaliert
locked: Wer dir folgen möchte, muss um deine Erlaubnis bitten
note:
one: <span class="note-counter">1</span> Zeichen verbleibt
other: <span class="note-counter">%{count}</span> Zeichen verbleiben
setting_noindex: Betrifft dein öffentliches Profil und deine Beiträge
setting_theme: Wirkt sich darauf aus, wie Mastodon aussieht, egal auf welchem Gerät du eingeloggt bist.
imports:
data: CSV-Datei, die von einer anderen Mastodon-Instanz exportiert wurde
data: CSV-Datei, die aus einer anderen Mastodon-Instanz exportiert wurde
sessions:
otp: Gib den Zwei-Faktor-Authentisierungs-Code von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes.
user:
filtered_languages: Ausgewählte Sprachen werden aus deinen öffentlichen Zeitleisten gefiltert
labels:
defaults:
avatar: Profilbild
@@ -20,7 +29,8 @@ de:
current_password: Derzeitiges Passwort
data: Daten
display_name: Anzeigename
email: E-Mail-Addresse
email: E-Mail-Adresse
filtered_languages: Gefilterte Sprachen
header: Kopfbild
locale: Sprache
locked: Gesperrtes Profil
@@ -29,13 +39,19 @@ de:
otp_attempt: Zwei-Faktor-Authentisierungs-Code
password: Passwort
setting_auto_play_gif: Animierte GIFs automatisch abspielen
setting_boost_modal: Zeige einen Bestätigungsdialog vor dem Teilen
setting_default_privacy: Beitragsprivatspäre
setting_boost_modal: Bestätigungsdialog anzeigen, bevor ein Beitrag geteilt wird
setting_default_privacy: Beitragssichtbarkeit
setting_default_sensitive: Medien immer als heikel markieren
setting_delete_modal: Bestätigungsdialog anzeigen, bevor ein Beitrag gelöscht wird
setting_noindex: Suchmaschinen-Indexierung verhindern
setting_system_font_ui: Standardschriftart des Systems verwenden
setting_theme: Theme der Website
setting_unfollow_modal: Bestätigungsdialog anzeigen, bevor jemand entfolgt wird
severity: Gewichtung
type: Importtyp
username: Profilname
interactions:
must_be_follower: Benachrichtigungen von Nicht-Folgern blockieren
must_be_follower: Benachrichtigungen von Nicht-Folgenden blockieren
must_be_following: Benachrichtigungen von Profilen blockieren, denen ich nicht folge
notification_emails:
digest: Schicke Übersichts-E-Mails

View File

@@ -4,6 +4,7 @@ en:
hints:
defaults:
avatar: PNG, GIF or JPG. At most 2MB. Will be downscaled to 120x120px
digest: Sent after a long period of inactivity with a summary of mentions you've received in your absence
display_name:
one: <span class="name-counter">1</span> character left
other: <span class="name-counter">%{count}</span> characters left
@@ -19,7 +20,7 @@ en:
sessions:
otp: Enter the Two-factor code from your phone or use one of your recovery codes.
user:
filtered_languages: Selected languages will be removed from your public timelines.
filtered_languages: Checked languages will be filtered from public timelines for you
labels:
defaults:
avatar: Avatar
@@ -44,8 +45,8 @@ en:
setting_delete_modal: Show confirmation dialog before deleting a toot
setting_noindex: Opt-out of search engine indexing
setting_system_font_ui: Use system's default font
setting_unfollow_modal: Show confirmation dialog before unfollowing someone
setting_theme: Site theme
setting_unfollow_modal: Show confirmation dialog before unfollowing someone
severity: Severity
type: Import type
username: Username

View File

@@ -4,6 +4,7 @@ pl:
hints:
defaults:
avatar: PNG, GIF lub JPG. Maksymalnie 2MB. Zostanie zmniejszony do 120x120px
digest: Wysyłane po długiej nieaktywności, zawiera podsumowanie wspomnień o Twoich profilu
display_name:
few: Pozostały <span class="name-counter">%{count}</span> znaki.
many: Pozostało <span class="name-counter">%{count}</span> znaków
@@ -23,7 +24,7 @@ pl:
sessions:
otp: Wprowadź kod weryfikacji dwuetapowej z telefonu lub wykorzystaj jeden z kodów zapasowych
user:
filtered_languages: Wpisy w wybranych językach nie będą pojawiać się na publicznych osiach czasu.
filtered_languages: Wpisy w wybranych językach nie będą wyświetlać się na publicznych osiach czasu.
labels:
defaults:
avatar: Awatar

View File

@@ -7,6 +7,7 @@ SimpleNavigation::Configuration.run do |navigation|
primary.item :settings, safe_join([fa_icon('cog fw'), t('settings.settings')]), settings_profile_url do |settings|
settings.item :profile, safe_join([fa_icon('user fw'), t('settings.edit_profile')]), settings_profile_url
settings.item :preferences, safe_join([fa_icon('sliders fw'), t('settings.preferences')]), settings_preferences_url
settings.item :notifications, safe_join([fa_icon('bell fw'), t('settings.notifications')]), settings_notifications_url
settings.item :password, safe_join([fa_icon('lock fw'), t('auth.change_password')]), edit_user_registration_url, highlights_on: %r{/auth/edit|/settings/delete}
settings.item :two_factor_authentication, safe_join([fa_icon('mobile fw'), t('settings.two_factor_authentication')]), settings_two_factor_authentication_url, highlights_on: %r{/settings/two_factor_authentication}
settings.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url
@@ -25,6 +26,7 @@ SimpleNavigation::Configuration.run do |navigation|
admin.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_url, highlights_on: %r{/admin/instances}
admin.item :subscriptions, safe_join([fa_icon('paper-plane-o fw'), t('admin.subscriptions.title')]), admin_subscriptions_url
admin.item :domain_blocks, safe_join([fa_icon('lock fw'), t('admin.domain_blocks.title')]), admin_domain_blocks_url, highlights_on: %r{/admin/domain_blocks}
admin.item :email_domain_blocks, safe_join([fa_icon('envelope fw'), t('admin.email_domain_blocks.title')]), admin_email_domain_blocks_url, highlights_on: %r{/admin/email_domain_blocks}
admin.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }
admin.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }
admin.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url

View File

@@ -67,6 +67,7 @@ Rails.application.routes.draw do
namespace :settings do
resource :profile, only: [:show, :update]
resource :preferences, only: [:show, :update]
resource :notifications, only: [:show, :update]
resource :import, only: [:show, :create]
resource :export, only: [:show]
@@ -95,8 +96,9 @@ Rails.application.routes.draw do
resources :sessions, only: [:destroy]
end
resources :media, only: [:show]
resources :tags, only: [:show]
resources :media, only: [:show]
resources :tags, only: [:show]
resources :emojis, only: [:show]
get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy
@@ -107,6 +109,7 @@ Rails.application.routes.draw do
namespace :admin do
resources :subscriptions, only: [:index]
resources :domain_blocks, only: [:index, :new, :create, :show, :destroy]
resources :email_domain_blocks, only: [:index, :new, :create, :destroy]
resource :settings, only: [:edit, :update]
resources :instances, only: [:index] do
@@ -137,7 +140,15 @@ Rails.application.routes.draw do
resource :two_factor_authentication, only: [:destroy]
end
resources :custom_emojis, only: [:index, :new, :create, :destroy]
resources :custom_emojis, only: [:index, :new, :create, :destroy] do
member do
post :copy
post :enable
post :disable
end
end
resources :account_moderation_notes, only: [:create, :destroy]
end
get '/admin', to: redirect('/admin/settings/edit', status: 302)
@@ -193,8 +204,7 @@ Rails.application.routes.draw do
get '/search', to: 'search#index', as: :search
resources :follows, only: [:create]
resources :media, only: [:create]
resources :apps, only: [:create]
resources :media, only: [:create, :update]
resources :blocks, only: [:index]
resources :mutes, only: [:index] do
collection do
@@ -204,6 +214,12 @@ Rails.application.routes.draw do
resources :favourites, only: [:index]
resources :reports, only: [:index, :create]
namespace :apps do
get :verify_credentials, to: 'credentials#show'
end
resources :apps, only: [:create]
resource :instance, only: [:show]
resource :domain_blocks, only: [:show, :create, :destroy]

View File

@@ -4,6 +4,17 @@ const merge = require('webpack-merge');
const sharedConfig = require('./shared.js');
const { settings, output } = require('./configuration.js');
const watchOptions = {
ignored: /node_modules/,
};
if (process.env.VAGRANT) {
// If we are in Vagrant, we can't rely on inotify to update us with changed
// files, so we must poll instead. Here, we poll every second to see if
// anything has changed.
watchOptions.poll = 1000;
}
module.exports = merge(sharedConfig, {
devtool: 'cheap-module-eval-source-map',
@@ -26,8 +37,6 @@ module.exports = merge(sharedConfig, {
headers: { 'Access-Control-Allow-Origin': '*' },
historyApiFallback: true,
disableHostCheck: true,
watchOptions: {
ignored: /node_modules/,
},
watchOptions: watchOptions,
},
});

View File

@@ -4,11 +4,7 @@ const env = process.env.NODE_ENV || 'development';
module.exports = {
test: /\.js$/,
// include react-intl because transform-react-remove-prop-types needs to apply to it
exclude: {
test: /node_modules/,
exclude: /react-intl[\/\\](?!locale-data)/,
},
exclude: /node_modules/,
loader: 'babel-loader',
options: {
forceEnv: process.env.NODE_ENV || 'development',

View File

@@ -0,0 +1,21 @@
const { resolve } = require('path');
const env = process.env.NODE_ENV || 'development';
if (env === 'development') {
module.exports = {};
} else {
// babel options to apply only to external libraries, e.g. remove-prop-types
module.exports = {
test: /\.js$/,
include: /node_modules/,
loader: 'babel-loader',
options: {
babelrc: false,
plugins: [
'transform-react-remove-prop-types',
],
cacheDirectory: env === 'development' ? false : resolve(__dirname, '..', '..', '..', 'tmp', 'cache', 'babel-loader-external'),
},
};
}

View File

@@ -50,6 +50,13 @@ module.exports = {
plugins: [
new webpack.EnvironmentPlugin(JSON.parse(JSON.stringify(env))),
new webpack.NormalModuleReplacementPlugin(
/^history\//, (resource) => {
// temporary fix for https://github.com/ReactTraining/react-router/issues/5576
// to reduce bundle size
resource.request = resource.request.replace(/^history/, 'history/es');
}
),
new ExtractTextPlugin({
filename: env.NODE_ENV === 'production' ? '[name]-[hash].css' : '[name].css',
allChunks: true,