mirror of
https://git.kescher.at/CatCatNya/catstodon.git
synced 2024-11-26 02:01:36 +01:00
Merge branch 'main' into glitch-soc/merge-upstream
This commit is contained in:
commit
edaaf6a5e9
156 changed files with 1768 additions and 156 deletions
4
Gemfile
4
Gemfile
|
@ -82,7 +82,7 @@ gem 'sidekiq', '~> 6.4'
|
|||
gem 'sidekiq-scheduler', '~> 4.0'
|
||||
gem 'sidekiq-unique-jobs', '~> 7.1'
|
||||
gem 'sidekiq-bulk', '~> 0.2.0'
|
||||
gem 'simple-navigation', '~> 4.3'
|
||||
gem 'simple-navigation', '~> 4.4'
|
||||
gem 'simple_form', '~> 5.1'
|
||||
gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie'
|
||||
gem 'stoplight', '~> 3.0.0'
|
||||
|
@ -134,7 +134,7 @@ group :development do
|
|||
gem 'letter_opener', '~> 1.8'
|
||||
gem 'letter_opener_web', '~> 2.0'
|
||||
gem 'memory_profiler'
|
||||
gem 'rubocop', '~> 1.29', require: false
|
||||
gem 'rubocop', '~> 1.30', require: false
|
||||
gem 'rubocop-rails', '~> 2.14', require: false
|
||||
gem 'brakeman', '~> 5.2', require: false
|
||||
gem 'bundler-audit', '~> 0.9', require: false
|
||||
|
|
12
Gemfile.lock
12
Gemfile.lock
|
@ -536,7 +536,7 @@ GEM
|
|||
redis (4.5.1)
|
||||
redis-namespace (1.8.2)
|
||||
redis (>= 3.0.4)
|
||||
regexp_parser (2.4.0)
|
||||
regexp_parser (2.5.0)
|
||||
request_store (1.5.1)
|
||||
rack (>= 1.4)
|
||||
responders (3.0.1)
|
||||
|
@ -571,13 +571,13 @@ GEM
|
|||
rspec-support (3.11.0)
|
||||
rspec_junit_formatter (0.5.1)
|
||||
rspec-core (>= 2, < 4, != 2.12.0)
|
||||
rubocop (1.29.1)
|
||||
rubocop (1.30.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.1.0.0)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.17.0, < 2.0)
|
||||
rubocop-ast (>= 1.18.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 1.4.0, < 3.0)
|
||||
rubocop-ast (1.18.0)
|
||||
|
@ -619,7 +619,7 @@ GEM
|
|||
concurrent-ruby (~> 1.0, >= 1.0.5)
|
||||
sidekiq (>= 5.0, < 8.0)
|
||||
thor (>= 0.20, < 3.0)
|
||||
simple-navigation (4.3.0)
|
||||
simple-navigation (4.4.0)
|
||||
activesupport (>= 2.3.2)
|
||||
simple_form (5.1.0)
|
||||
actionpack (>= 5.2)
|
||||
|
@ -825,7 +825,7 @@ DEPENDENCIES
|
|||
rspec-rails (~> 5.1)
|
||||
rspec-sidekiq (~> 3.1)
|
||||
rspec_junit_formatter (~> 0.5)
|
||||
rubocop (~> 1.29)
|
||||
rubocop (~> 1.30)
|
||||
rubocop-rails (~> 2.14)
|
||||
ruby-progressbar (~> 1.11)
|
||||
sanitize (~> 6.0)
|
||||
|
@ -834,7 +834,7 @@ DEPENDENCIES
|
|||
sidekiq-bulk (~> 0.2.0)
|
||||
sidekiq-scheduler (~> 4.0)
|
||||
sidekiq-unique-jobs (~> 7.1)
|
||||
simple-navigation (~> 4.3)
|
||||
simple-navigation (~> 4.4)
|
||||
simple_form (~> 5.1)
|
||||
simplecov (~> 0.21)
|
||||
sprockets (~> 3.7.2)
|
||||
|
|
19
app/controllers/admin/webhooks/secrets_controller.rb
Normal file
19
app/controllers/admin/webhooks/secrets_controller.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Admin
|
||||
class Webhooks::SecretsController < BaseController
|
||||
before_action :set_webhook
|
||||
|
||||
def rotate
|
||||
authorize @webhook, :rotate_secret?
|
||||
@webhook.rotate_secret!
|
||||
redirect_to admin_webhook_path(@webhook)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_webhook
|
||||
@webhook = Webhook.find(params[:webhook_id])
|
||||
end
|
||||
end
|
||||
end
|
77
app/controllers/admin/webhooks_controller.rb
Normal file
77
app/controllers/admin/webhooks_controller.rb
Normal file
|
@ -0,0 +1,77 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Admin
|
||||
class WebhooksController < BaseController
|
||||
before_action :set_webhook, except: [:index, :new, :create]
|
||||
|
||||
def index
|
||||
authorize :webhook, :index?
|
||||
|
||||
@webhooks = Webhook.page(params[:page])
|
||||
end
|
||||
|
||||
def new
|
||||
authorize :webhook, :create?
|
||||
|
||||
@webhook = Webhook.new
|
||||
end
|
||||
|
||||
def create
|
||||
authorize :webhook, :create?
|
||||
|
||||
@webhook = Webhook.new(resource_params)
|
||||
|
||||
if @webhook.save
|
||||
redirect_to admin_webhook_path(@webhook)
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
authorize @webhook, :show?
|
||||
end
|
||||
|
||||
def edit
|
||||
authorize @webhook, :update?
|
||||
end
|
||||
|
||||
def update
|
||||
authorize @webhook, :update?
|
||||
|
||||
if @webhook.update(resource_params)
|
||||
redirect_to admin_webhook_path(@webhook)
|
||||
else
|
||||
render :show
|
||||
end
|
||||
end
|
||||
|
||||
def enable
|
||||
authorize @webhook, :enable?
|
||||
@webhook.enable!
|
||||
redirect_to admin_webhook_path(@webhook)
|
||||
end
|
||||
|
||||
def disable
|
||||
authorize @webhook, :disable?
|
||||
@webhook.disable!
|
||||
redirect_to admin_webhook_path(@webhook)
|
||||
end
|
||||
|
||||
def destroy
|
||||
authorize @webhook, :destroy?
|
||||
@webhook.destroy!
|
||||
redirect_to admin_webhooks_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_webhook
|
||||
@webhook = Webhook.find(params[:id])
|
||||
end
|
||||
|
||||
def resource_params
|
||||
params.require(:webhook).permit(:url, events: [])
|
||||
end
|
||||
end
|
||||
end
|
|
@ -50,7 +50,7 @@ const componentMap = {
|
|||
};
|
||||
|
||||
const messages = defineMessages({
|
||||
publish: { id: 'compose_form.publish', defaultMessage: 'Toot' },
|
||||
publish: { id: 'compose_form.publish', defaultMessage: 'Publish' },
|
||||
});
|
||||
|
||||
const shouldHideFAB = path => path.match(/^\/statuses\/|^\/@[^/]+\/\d+|^\/publish|^\/explore|^\/getting-started|^\/start/);
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Verwyder hierdie keuse",
|
||||
"compose_form.poll.switch_to_multiple": "Verander die peiling na verskeie keuses",
|
||||
"compose_form.poll.switch_to_single": "Verander die peiling na 'n enkel keuse",
|
||||
"compose_form.publish": "Toet",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Stoor veranderinge",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "إزالة هذا الخيار",
|
||||
"compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
|
||||
"compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
|
||||
"compose_form.publish": "بوّق",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "احفظ التعديلات",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {الإشارة إلى الوَسط كمُحتوى حسّاس} two{الإشارة إلى الوسطان كمُحتويان حسّاسان} other {الإشارة إلى الوسائط كمُحتويات حسّاسة}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Desaniciar esta escoyeta",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Barritar",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Премахване на този избор",
|
||||
"compose_form.poll.switch_to_multiple": "Промяна на анкетата, за да се позволят множество възможни избора",
|
||||
"compose_form.poll.switch_to_single": "Промяна на анкетата, за да се позволи един възможен избор",
|
||||
"compose_form.publish": "Раздумай",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Маркиране на мултимедията като деликатна} other {Маркиране на мултимедиите като деликатни}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "এই বিকল্পটি মুছে ফেলুন",
|
||||
"compose_form.poll.switch_to_multiple": "একাধিক পছন্দ অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন",
|
||||
"compose_form.poll.switch_to_single": "একটি একক পছন্দের অনুমতি দেওয়ার জন্য পোল পরিবর্তন করুন",
|
||||
"compose_form.publish": "টুট",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করতে",
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
"account.statuses_counter": "{count, plural, one {{counter} Toud} other {{counter} Toud}}",
|
||||
"account.unblock": "Diverzañ @{name}",
|
||||
"account.unblock_domain": "Diverzañ an domani {domain}",
|
||||
"account.unblock_short": "Unblock",
|
||||
"account.unblock_short": "Distankañ",
|
||||
"account.unendorse": "Paouez da lakaat war-wel war ar profil",
|
||||
"account.unfollow": "Diheuliañ",
|
||||
"account.unmute": "Diguzhat @{name}",
|
||||
|
@ -92,7 +92,7 @@
|
|||
"community.column_settings.local_only": "Nemet lec'hel",
|
||||
"community.column_settings.media_only": "Nemet Mediaoù",
|
||||
"community.column_settings.remote_only": "Nemet a-bell",
|
||||
"compose.language.change": "Change language",
|
||||
"compose.language.change": "Cheñch yezh",
|
||||
"compose.language.search": "Search languages...",
|
||||
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
|
||||
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
|
||||
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Lemel an dibab-mañ",
|
||||
"compose_form.poll.switch_to_multiple": "Kemmañ ar sontadeg evit aotren meur a zibab",
|
||||
"compose_form.poll.switch_to_single": "Kemmañ ar sontadeg evit aotren un dibab hepken",
|
||||
"compose_form.publish": "Toudañ",
|
||||
"compose_form.publish": "Embann",
|
||||
"compose_form.publish_loud": "{publish} !",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Merkañ ar media evel kizidik",
|
||||
|
@ -191,9 +191,9 @@
|
|||
"errors.unexpected_crash.copy_stacktrace": "Eilañ ar roudoù diveugañ er golver",
|
||||
"errors.unexpected_crash.report_issue": "Danevellañ ur fazi",
|
||||
"explore.search_results": "Disoc'hoù an enklask",
|
||||
"explore.suggested_follows": "For you",
|
||||
"explore.suggested_follows": "Evidoc'h",
|
||||
"explore.title": "Ergerzhit",
|
||||
"explore.trending_links": "News",
|
||||
"explore.trending_links": "Keleier",
|
||||
"explore.trending_statuses": "Posts",
|
||||
"explore.trending_tags": "Gerioù-klik",
|
||||
"follow_recommendations.done": "Graet",
|
||||
|
@ -295,11 +295,11 @@
|
|||
"navigation_bar.bookmarks": "Sinedoù",
|
||||
"navigation_bar.community_timeline": "Red-amzer lec'hel",
|
||||
"navigation_bar.compose": "Skrivañ un toud nevez",
|
||||
"navigation_bar.direct": "Direct messages",
|
||||
"navigation_bar.direct": "Kemennadoù prevez",
|
||||
"navigation_bar.discover": "Dizoleiñ",
|
||||
"navigation_bar.domain_blocks": "Domanioù kuzhet",
|
||||
"navigation_bar.edit_profile": "Aozañ ar profil",
|
||||
"navigation_bar.explore": "Explore",
|
||||
"navigation_bar.explore": "Ergerzhit",
|
||||
"navigation_bar.favourites": "Ar re vuiañ-karet",
|
||||
"navigation_bar.filters": "Gerioù kuzhet",
|
||||
"navigation_bar.follow_requests": "Pedadoù heuliañ",
|
||||
|
@ -394,16 +394,16 @@
|
|||
"relative_time.seconds": "{number}eil",
|
||||
"relative_time.today": "hiziv",
|
||||
"reply_indicator.cancel": "Nullañ",
|
||||
"report.block": "Block",
|
||||
"report.block": "Stankañ",
|
||||
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
|
||||
"report.categories.other": "Other",
|
||||
"report.categories.spam": "Spam",
|
||||
"report.categories.violation": "Content violates one or more server rules",
|
||||
"report.category.subtitle": "Choose the best match",
|
||||
"report.category.title": "Tell us what's going on with this {type}",
|
||||
"report.category.title_account": "profile",
|
||||
"report.category.title_account": "profil",
|
||||
"report.category.title_status": "post",
|
||||
"report.close": "Done",
|
||||
"report.close": "Graet",
|
||||
"report.comment.title": "Is there anything else you think we should know?",
|
||||
"report.forward": "Treuzkas da: {target}",
|
||||
"report.forward_hint": "War ur servijer all emañ ar c'hont-se. Kas dezhañ un adskrid disanv eus an danevell ivez?",
|
||||
|
@ -455,7 +455,7 @@
|
|||
"status.delete": "Dilemel",
|
||||
"status.detailed_status": "Gwel kaozeadenn munudek",
|
||||
"status.direct": "Kas ur c'hemennad prevez da @{name}",
|
||||
"status.edit": "Edit",
|
||||
"status.edit": "Aozañ",
|
||||
"status.edited": "Edited {date}",
|
||||
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
|
||||
"status.embed": "Enframmañ",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Elimina aquesta opció",
|
||||
"compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions",
|
||||
"compose_form.poll.switch_to_single": "Canvia l’enquesta per permetre una única opció",
|
||||
"compose_form.publish": "Publicar",
|
||||
"compose_form.publish": "Publica-ho",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Desa els canvis",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Marca contingut com a sensible} other {Marca contingut com a sensible}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "لابردنی ئەم هەڵبژاردەیە",
|
||||
"compose_form.poll.switch_to_multiple": "ڕاپرسی بگۆڕە بۆ ڕێگەدان بە چەند هەڵبژاردنێک",
|
||||
"compose_form.poll.switch_to_single": "گۆڕینی ڕاپرسی بۆ ڕێگەدان بە تاکە هەڵبژاردنێک",
|
||||
"compose_form.publish": "توت",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "پاشکەوتی گۆڕانکاریەکان",
|
||||
"compose_form.sensitive.hide": "نیشانکردنی میدیا وەک هەستیار",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Toglie sta scelta",
|
||||
"compose_form.poll.switch_to_multiple": "Cambià u scandagliu per accittà parechje scelte",
|
||||
"compose_form.poll.switch_to_single": "Cambià u scandagliu per ùn accittà ch'una scelta",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Indicà u media cum'è sensibile} other {Indicà i media cum'è sensibili}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Odstranit tuto volbu",
|
||||
"compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více možností",
|
||||
"compose_form.poll.switch_to_single": "Povolit u ankety výběr jediné možnosti",
|
||||
"compose_form.publish": "Odeslat",
|
||||
"compose_form.publish": "Zveřejnit",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Uložit změny",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Označit média za citlivá} few {Označit média za citlivá} many {Označit média za citlivá} other {Označit média za citlivá}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Tynnu'r dewisiad",
|
||||
"compose_form.poll.switch_to_multiple": "Newid pleidlais i adael mwy nag un dewis",
|
||||
"compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
|
||||
"compose_form.publish": "Tŵt",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Cadw newidiadau",
|
||||
"compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Fjern denne valgmulighed",
|
||||
"compose_form.poll.switch_to_multiple": "Ændr afstemning til flervalgstype",
|
||||
"compose_form.poll.switch_to_single": "Ændr afstemning til enkeltvalgstype",
|
||||
"compose_form.publish": "Udgiv",
|
||||
"compose_form.publish": "Publicér",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Gem ændringer",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Markér medie som følsomt} other {Markér medier som følsomme}}",
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
|
||||
"account.following": "Folgt",
|
||||
"account.following_counter": "{count, plural, one {{counter} Folgt} other {{counter} Folgt}}",
|
||||
"account.follows.empty": "Dieses Profil folgt noch niemandem.",
|
||||
"account.follows.empty": "Diesem Profil folgt niemand",
|
||||
"account.follows_you": "Folgt dir",
|
||||
"account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
|
||||
"account.joined": "Beigetreten am {date}",
|
||||
"account.link_verified_on": "Besitz dieses Links wurde geprüft am {date}",
|
||||
"account.link_verified_on": "Diesem Profil folgt niemand",
|
||||
"account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.",
|
||||
"account.media": "Medien",
|
||||
"account.mention": "@{name} erwähnen",
|
||||
|
@ -95,7 +95,7 @@
|
|||
"compose.language.change": "Sprache ändern",
|
||||
"compose.language.search": "Sprachen durchsuchen...",
|
||||
"compose_form.direct_message_warning_learn_more": "Mehr erfahren",
|
||||
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
|
||||
"compose_form.encryption_warning": "Beiträge von Mastodon sind nicht Ende-zu-Ende verschlüsselt. Teile keine senible Infomartionen über Mastodon.",
|
||||
"compose_form.hashtag_warning": "Dieser Beitrag wird nicht durch Hashtags entdeckbar sein, weil er ungelistet ist. Nur öffentliche Beiträge tauchen in Hashtag-Zeitleisten auf.",
|
||||
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
|
||||
"compose_form.lock_disclaimer.lock": "gesperrt",
|
||||
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Wahl entfernen",
|
||||
"compose_form.poll.switch_to_multiple": "Umfrage ändern, um mehrere Optionen zu erlauben",
|
||||
"compose_form.poll.switch_to_single": "Umfrage ändern, um eine einzige Wahl zu erlauben",
|
||||
"compose_form.publish": "Tröt",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Änderungen speichern",
|
||||
"compose_form.sensitive.hide": "Medien als NSFW markieren",
|
||||
|
@ -171,7 +171,7 @@
|
|||
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
|
||||
"empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.",
|
||||
"empty_column.domain_blocks": "Es sind noch keine Domains versteckt.",
|
||||
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder!",
|
||||
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
|
||||
"empty_column.favourited_statuses": "Du hast noch keine favorisierten Tröts. Wenn du einen favorisierst, wird er hier erscheinen.",
|
||||
"empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.",
|
||||
"empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen nach Leuten zu suchen, die du vielleicht kennst oder du kannst angesagte Hashtags erkunden.",
|
||||
|
|
|
@ -3307,7 +3307,7 @@
|
|||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Toot",
|
||||
"defaultMessage": "Publish",
|
||||
"id": "compose_form.publish"
|
||||
}
|
||||
],
|
||||
|
@ -3724,4 +3724,4 @@
|
|||
],
|
||||
"path": "app/javascript/mastodon/features/video/index.json"
|
||||
}
|
||||
]
|
||||
]
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Αφαίρεση επιλογής",
|
||||
"compose_form.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές",
|
||||
"compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή",
|
||||
"compose_form.publish": "Τουτ",
|
||||
"compose_form.publish": "Δημοσίευση",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Αποθήκευση αλλαγών",
|
||||
"compose_form.sensitive.hide": "Σημείωσε τα πολυμέσα ως ευαίσθητα",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Forigi ĉi tiu elekteblon",
|
||||
"compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn",
|
||||
"compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton",
|
||||
"compose_form.publish": "Hup",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Konservi ŝanĝojn",
|
||||
"compose_form.sensitive.hide": "Marki la aŭdovidaĵojn kiel tiklaj",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Quitar esta opción",
|
||||
"compose_form.poll.switch_to_multiple": "Cambiar encuesta para permitir opciones múltiples",
|
||||
"compose_form.poll.switch_to_single": "Cambiar encuesta para permitir una sola opción",
|
||||
"compose_form.publish": "Enviar",
|
||||
"compose_form.publish": "Publicar",
|
||||
"compose_form.publish_loud": "¡{publish}!",
|
||||
"compose_form.save_changes": "Guardar cambios",
|
||||
"compose_form.sensitive.hide": "Marcar medio como sensible",
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
"compose.language.change": "Cambiar idioma",
|
||||
"compose.language.search": "Buscar idiomas...",
|
||||
"compose_form.direct_message_warning_learn_more": "Aprender mas",
|
||||
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
|
||||
"compose_form.encryption_warning": "Las publicaciones en Mastodon no están cifradas de extremo a extremo. No comparta ninguna información sensible en Mastodon.",
|
||||
"compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
|
||||
"compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
|
||||
"compose_form.lock_disclaimer.lock": "bloqueado",
|
||||
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Eliminar esta opción",
|
||||
"compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones",
|
||||
"compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción",
|
||||
"compose_form.publish": "Tootear",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "¡{publish}!",
|
||||
"compose_form.save_changes": "Guardar cambios",
|
||||
"compose_form.sensitive.hide": "Marcar multimedia como sensible",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Eliminar esta opción",
|
||||
"compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones",
|
||||
"compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción",
|
||||
"compose_form.publish": "Tootear",
|
||||
"compose_form.publish": "Publicar",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Guardar cambios",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Marcar material como sensible} other {Marcar material como sensible}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Eemalda see valik",
|
||||
"compose_form.poll.switch_to_multiple": "Muuda küsitlust lubamaks mitut valikut",
|
||||
"compose_form.poll.switch_to_single": "Muuda küsitlust lubamaks ainult ühte valikut",
|
||||
"compose_form.publish": "Tuut",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Märgista meedia tundlikuks",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Kendu aukera hau",
|
||||
"compose_form.poll.switch_to_multiple": "Aldatu inkesta hainbat aukera onartzeko",
|
||||
"compose_form.poll.switch_to_single": "Aldatu inkesta aukera bakarra onartzeko",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Gorde aldaketak",
|
||||
"compose_form.sensitive.hide": "Markatu multimedia hunkigarri gisa",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "برداشتن این گزینه",
|
||||
"compose_form.poll.switch_to_multiple": "تبدیل به نظرسنجی چندگزینهای",
|
||||
"compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تکگزینهای",
|
||||
"compose_form.publish": "بوق",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "ذخیرهٔ تغییرات",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {علامتگذاری رسانه به عنوان حساس} other {علامتگذاری رسانهها به عنوان حساس}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Poista tämä valinta",
|
||||
"compose_form.poll.switch_to_multiple": "Muuta kysely monivalinnaksi",
|
||||
"compose_form.poll.switch_to_single": "Muuta kysely sallimaan vain yksi valinta",
|
||||
"compose_form.publish": "Lähetä viesti",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Tallenna muutokset",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse media arkaluontoiseksi}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Supprimer ce choix",
|
||||
"compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix",
|
||||
"compose_form.poll.switch_to_single": "Changer le sondage pour autoriser qu'un seul choix",
|
||||
"compose_form.publish": "Pouet",
|
||||
"compose_form.publish": "Publier",
|
||||
"compose_form.publish_loud": "{publish} !",
|
||||
"compose_form.save_changes": "Enregistrer les modifications",
|
||||
"compose_form.sensitive.hide": "Marquer le média comme sensible",
|
||||
|
|
549
app/javascript/mastodon/locales/fy.json
Normal file
549
app/javascript/mastodon/locales/fy.json
Normal file
|
@ -0,0 +1,549 @@
|
|||
{
|
||||
"account.account_note_header": "Note",
|
||||
"account.add_or_remove_from_list": "Add or Remove from lists",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.badges.group": "Groep",
|
||||
"account.block": "Block @{name}",
|
||||
"account.block_domain": "Block domain {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.browse_more_on_origin_server": "Browse more on the original profile",
|
||||
"account.cancel_follow_request": "Cancel follow request",
|
||||
"account.direct": "Direct message @{name}",
|
||||
"account.disable_notifications": "Stop notifying me when @{name} posts",
|
||||
"account.domain_blocked": "Domein blokkearre",
|
||||
"account.edit_profile": "Profyl oanpasse",
|
||||
"account.enable_notifications": "Notify me when @{name} posts",
|
||||
"account.endorse": "Feature on profile",
|
||||
"account.follow": "Folgje",
|
||||
"account.followers": "Folgers",
|
||||
"account.followers.empty": "No one follows this user yet.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
|
||||
"account.following": "Folget",
|
||||
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
|
||||
"account.follows.empty": "This user doesn't follow anyone yet.",
|
||||
"account.follows_you": "Folget dy",
|
||||
"account.hide_reblogs": "Hide boosts from @{name}",
|
||||
"account.joined": "Registrearre op {date}",
|
||||
"account.link_verified_on": "Ownership of this link was checked on {date}",
|
||||
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
|
||||
"account.media": "Media",
|
||||
"account.mention": "Fermeld @{name}",
|
||||
"account.moved_to": "{name} has moved to:",
|
||||
"account.mute": "Mute @{name}",
|
||||
"account.mute_notifications": "Mute notifications from @{name}",
|
||||
"account.muted": "Muted",
|
||||
"account.posts": "Posts",
|
||||
"account.posts_with_replies": "Posts and replies",
|
||||
"account.report": "Report @{name}",
|
||||
"account.requested": "Awaiting approval. Click to cancel follow request",
|
||||
"account.share": "Share @{name}'s profile",
|
||||
"account.show_reblogs": "Show boosts from @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
|
||||
"account.unblock": "Unblock @{name}",
|
||||
"account.unblock_domain": "Unblock domain {domain}",
|
||||
"account.unblock_short": "Unblock",
|
||||
"account.unendorse": "Don't feature on profile",
|
||||
"account.unfollow": "Net mear folgje",
|
||||
"account.unmute": "Unmute @{name}",
|
||||
"account.unmute_notifications": "Unmute notifications from @{name}",
|
||||
"account.unmute_short": "Net mear negearre",
|
||||
"account_note.placeholder": "Click to add a note",
|
||||
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
|
||||
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
|
||||
"admin.dashboard.retention.average": "Gemiddelde",
|
||||
"admin.dashboard.retention.cohort": "Sign-up month",
|
||||
"admin.dashboard.retention.cohort_size": "Nije brûkers",
|
||||
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Rate limited",
|
||||
"alert.unexpected.message": "An unexpected error occurred.",
|
||||
"alert.unexpected.title": "Oops!",
|
||||
"announcement.announcement": "Announcement",
|
||||
"attachments_list.unprocessed": "(net ferwurke)",
|
||||
"autosuggest_hashtag.per_week": "{count} per week",
|
||||
"boost_modal.combo": "You can press {combo} to skip this next time",
|
||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
||||
"bundle_column_error.retry": "Try again",
|
||||
"bundle_column_error.title": "Network error",
|
||||
"bundle_modal_error.close": "Slute",
|
||||
"bundle_modal_error.message": "Something went wrong while loading this component.",
|
||||
"bundle_modal_error.retry": "Opnij probearje",
|
||||
"column.blocks": "Blokkearre brûkers",
|
||||
"column.bookmarks": "Blêdwizers",
|
||||
"column.community": "Local timeline",
|
||||
"column.direct": "Direct messages",
|
||||
"column.directory": "Browse profiles",
|
||||
"column.domain_blocks": "Blokkeare domeinen",
|
||||
"column.favourites": "Favoriten",
|
||||
"column.follow_requests": "Follow requests",
|
||||
"column.home": "Home",
|
||||
"column.lists": "Listen",
|
||||
"column.mutes": "Negearre brûkers",
|
||||
"column.notifications": "Notifikaasjes",
|
||||
"column.pins": "Fêstsette berjochten",
|
||||
"column.public": "Federated timeline",
|
||||
"column_back_button.label": "Werom",
|
||||
"column_header.hide_settings": "Ynstellings ferbergje",
|
||||
"column_header.moveLeft_settings": "Kolom nei links ferpleatse",
|
||||
"column_header.moveRight_settings": "Kolom nei rjochts ferpleatse",
|
||||
"column_header.pin": "Fêstsette",
|
||||
"column_header.show_settings": "Ynstellings sjen litte",
|
||||
"column_header.unpin": "Los helje",
|
||||
"column_subheading.settings": "Ynstellings",
|
||||
"community.column_settings.local_only": "Allinnich lokaal",
|
||||
"community.column_settings.media_only": "Allinnich media",
|
||||
"community.column_settings.remote_only": "Allinnich oare tsjinners",
|
||||
"compose.language.change": "Fan taal feroarje",
|
||||
"compose.language.search": "Talen sykje...",
|
||||
"compose_form.direct_message_warning_learn_more": "Lês mear",
|
||||
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
|
||||
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
|
||||
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
|
||||
"compose_form.lock_disclaimer.lock": "locked",
|
||||
"compose_form.placeholder": "Wat wolst kwyt?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Publisearje",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
"compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
|
||||
"compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
|
||||
"compose_form.spoiler.marked": "Ynhâldswarskôging fuortsmite",
|
||||
"compose_form.spoiler.unmarked": "Ynhâldswarskôging tafoegje",
|
||||
"compose_form.spoiler_placeholder": "Write your warning here",
|
||||
"confirmation_modal.cancel": "Ofbrekke",
|
||||
"confirmations.block.block_and_report": "Blokkearre & Oanjaan",
|
||||
"confirmations.block.confirm": "Blokkearre",
|
||||
"confirmations.block.message": "Wolle jo {name} werklik blokkearre?",
|
||||
"confirmations.delete.confirm": "Fuortsmite",
|
||||
"confirmations.delete.message": "Wolle jo dit berjocht werklik fuortsmite?",
|
||||
"confirmations.delete_list.confirm": "Fuortsmite",
|
||||
"confirmations.delete_list.message": "Wolle jo dizze list werklik foar ivich fuortsmite?",
|
||||
"confirmations.discard_edit_media.confirm": "Discard",
|
||||
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
|
||||
"confirmations.domain_block.confirm": "Hide entire domain",
|
||||
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
|
||||
"confirmations.logout.confirm": "Log out",
|
||||
"confirmations.logout.message": "Wolle jo werklik útlogge?",
|
||||
"confirmations.mute.confirm": "Negearre",
|
||||
"confirmations.mute.explanation": "Dit sil berjochten fan harren ûnsichtber meitsje en berjochen wêr se yn fermeld wurde, mar se sille jo berjochten noch immen sjen kinne en jo folgje kinne.",
|
||||
"confirmations.mute.message": "Wolle jo {name} werklik negearre?",
|
||||
"confirmations.redraft.confirm": "Delete & redraft",
|
||||
"confirmations.redraft.message": "Wolle jo dit berjocht werklik fuortsmite en opnij opstelle? Favoriten en boosts geane dan ferlern, en reaksjes op it oarspronklike berjocht reitsje jo kwyt.",
|
||||
"confirmations.reply.confirm": "Reagearre",
|
||||
"confirmations.reply.message": "Troch no te reagearjen sil it berjocht wat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo troch gean?",
|
||||
"confirmations.unfollow.confirm": "Net mear folgje",
|
||||
"confirmations.unfollow.message": "Wolle jo {name} werklik net mear folgje?",
|
||||
"conversation.delete": "Petear fuortsmite",
|
||||
"conversation.mark_as_read": "As lêzen oanmurkje",
|
||||
"conversation.open": "Petear besjen",
|
||||
"conversation.with": "Mei {names}",
|
||||
"directory.federated": "From known fediverse",
|
||||
"directory.local": "From {domain} only",
|
||||
"directory.new_arrivals": "New arrivals",
|
||||
"directory.recently_active": "Resintlik warber",
|
||||
"embed.instructions": "Embed this status on your website by copying the code below.",
|
||||
"embed.preview": "Here is what it will look like:",
|
||||
"emoji_button.activity": "Activity",
|
||||
"emoji_button.clear": "Clear",
|
||||
"emoji_button.custom": "Custom",
|
||||
"emoji_button.flags": "Flags",
|
||||
"emoji_button.food": "Food & Drink",
|
||||
"emoji_button.label": "Insert emoji",
|
||||
"emoji_button.nature": "Nature",
|
||||
"emoji_button.not_found": "No matching emojis found",
|
||||
"emoji_button.objects": "Objects",
|
||||
"emoji_button.people": "People",
|
||||
"emoji_button.recent": "Frequently used",
|
||||
"emoji_button.search": "Search...",
|
||||
"emoji_button.search_results": "Search results",
|
||||
"emoji_button.symbols": "Symbols",
|
||||
"emoji_button.travel": "Travel & Places",
|
||||
"empty_column.account_suspended": "Account suspended",
|
||||
"empty_column.account_timeline": "Gjin berjochten hjir!",
|
||||
"empty_column.account_unavailable": "Profyl net beskikber",
|
||||
"empty_column.blocks": "Jo hawwe noch gjin brûkers blokkearre.",
|
||||
"empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
|
||||
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
|
||||
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
|
||||
"empty_column.domain_blocks": "Der binne noch gjin blokkearre domeinen.",
|
||||
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
|
||||
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
|
||||
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
|
||||
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
|
||||
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
|
||||
"empty_column.hashtag": "There is nothing in this hashtag yet.",
|
||||
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
|
||||
"empty_column.home.suggestions": "Suggestjes besjen",
|
||||
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
|
||||
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
|
||||
"empty_column.mutes": "Jo hawwe noch gjin brûkers negearre.",
|
||||
"empty_column.notifications": "Jo hawwe noch gjin notifikaasjes. Ynteraksjes mei oare minsken sjogge jo hjir.",
|
||||
"empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare tsjinners om it hjir te foljen",
|
||||
"error.unexpected_crash.explanation": "Troch in bug in ús koade as in probleem mei de komptabiliteit fan jo browser, koe dizze side net sjen litten wurde.",
|
||||
"error.unexpected_crash.explanation_addons": "Dizze side kin net goed sjen litten wurde. Dit probleem komt faaks troch in browser útwreiding of ark foar automatysk oersetten.",
|
||||
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
|
||||
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
|
||||
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
|
||||
"errors.unexpected_crash.report_issue": "Technysk probleem oanjaan",
|
||||
"explore.search_results": "Search results",
|
||||
"explore.suggested_follows": "Foar jo",
|
||||
"explore.title": "Ferkenne",
|
||||
"explore.trending_links": "Nijs",
|
||||
"explore.trending_statuses": "Berjochten",
|
||||
"explore.trending_tags": "Hashtags",
|
||||
"follow_recommendations.done": "Klear",
|
||||
"follow_recommendations.heading": "Folgje minsken wer as jo graach berjochten fan sjen wolle! Hjir binne wat suggestjes.",
|
||||
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
|
||||
"follow_request.authorize": "Goedkarre",
|
||||
"follow_request.reject": "Ofkarre",
|
||||
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
||||
"generic.saved": "Bewarre",
|
||||
"getting_started.developers": "Untwikkelders",
|
||||
"getting_started.directory": "Profile directory",
|
||||
"getting_started.documentation": "Dokumintaasje",
|
||||
"getting_started.heading": "Utein sette",
|
||||
"getting_started.invite": "Minsken útnûgje",
|
||||
"getting_started.open_source_notice": "Mastodon is iepen boarne software. Jo kinne sels bydrage of problemen oanjaan troch GitHub op {github}.",
|
||||
"getting_started.security": "Account ynstellings",
|
||||
"getting_started.terms": "Terms of service",
|
||||
"hashtag.column_header.tag_mode.all": "en {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "of {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "sûnder {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.tag_mode.all": "All of these",
|
||||
"hashtag.column_settings.tag_mode.any": "Any of these",
|
||||
"hashtag.column_settings.tag_mode.none": "None of these",
|
||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
||||
"home.column_settings.basic": "Basic",
|
||||
"home.column_settings.show_reblogs": "Show boosts",
|
||||
"home.column_settings.show_replies": "Show replies",
|
||||
"home.hide_announcements": "Hide announcements",
|
||||
"home.show_announcements": "Show announcements",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"keyboard_shortcuts.back": "to navigate back",
|
||||
"keyboard_shortcuts.blocked": "to open blocked users list",
|
||||
"keyboard_shortcuts.boost": "to boost",
|
||||
"keyboard_shortcuts.column": "to focus a status in one of the columns",
|
||||
"keyboard_shortcuts.compose": "to focus the compose textarea",
|
||||
"keyboard_shortcuts.description": "Description",
|
||||
"keyboard_shortcuts.direct": "to open direct messages column",
|
||||
"keyboard_shortcuts.down": "to move down in the list",
|
||||
"keyboard_shortcuts.enter": "to open status",
|
||||
"keyboard_shortcuts.favourite": "to favourite",
|
||||
"keyboard_shortcuts.favourites": "to open favourites list",
|
||||
"keyboard_shortcuts.federated": "to open federated timeline",
|
||||
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
|
||||
"keyboard_shortcuts.home": "to open home timeline",
|
||||
"keyboard_shortcuts.hotkey": "Hotkey",
|
||||
"keyboard_shortcuts.legend": "to display this legend",
|
||||
"keyboard_shortcuts.local": "to open local timeline",
|
||||
"keyboard_shortcuts.mention": "Skriuwer beneame",
|
||||
"keyboard_shortcuts.muted": "to open muted users list",
|
||||
"keyboard_shortcuts.my_profile": "Jo profyl iepenje",
|
||||
"keyboard_shortcuts.notifications": "Notifikaasjes sjen litte",
|
||||
"keyboard_shortcuts.open_media": "Media iepenje",
|
||||
"keyboard_shortcuts.pinned": "Fêstsette berjochten sjen litte",
|
||||
"keyboard_shortcuts.profile": "Profyl fan skriuwer iepenje",
|
||||
"keyboard_shortcuts.reply": "Berjocht beäntwurdzje",
|
||||
"keyboard_shortcuts.requests": "Folgfersiken sjen litte",
|
||||
"keyboard_shortcuts.search": "to focus search",
|
||||
"keyboard_shortcuts.spoilers": "CW fjild ferstopje/sjen litte",
|
||||
"keyboard_shortcuts.start": "\"Útein sette\" iepenje",
|
||||
"keyboard_shortcuts.toggle_hidden": "Tekst efter CW fjild ferstopje/sjen litte",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "Media ferstopje/sjen litte",
|
||||
"keyboard_shortcuts.toot": "Nij berjocht skriuwe",
|
||||
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
|
||||
"keyboard_shortcuts.up": "Nei boppe yn list ferpleatse",
|
||||
"lightbox.close": "Slute",
|
||||
"lightbox.compress": "Compress image view box",
|
||||
"lightbox.expand": "Expand image view box",
|
||||
"lightbox.next": "Fierder",
|
||||
"lightbox.previous": "Werom",
|
||||
"limited_account_hint.action": "Profyl dochs besjen",
|
||||
"limited_account_hint.title": "Dit profyl is ferstoppe troch de behearders fan jo tsjinner.",
|
||||
"lists.account.add": "Oan list tafoegje",
|
||||
"lists.account.remove": "Ut list wei smite",
|
||||
"lists.delete": "List fuortsmite",
|
||||
"lists.edit": "Edit list",
|
||||
"lists.edit.submit": "Titel feroarje",
|
||||
"lists.new.create": "Add list",
|
||||
"lists.new.title_placeholder": "Nije list titel",
|
||||
"lists.replies_policy.followed": "Elke folge brûker",
|
||||
"lists.replies_policy.list": "Leden fan de list",
|
||||
"lists.replies_policy.none": "Net ien",
|
||||
"lists.replies_policy.title": "Reaksjes sjen litte oan:",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Jo listen",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Loading...",
|
||||
"media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
|
||||
"missing_indicator.label": "Net fûn",
|
||||
"missing_indicator.sublabel": "This resource could not be found",
|
||||
"mute_modal.duration": "Duration",
|
||||
"mute_modal.hide_notifications": "Notifikaasjes fan dizze brûker ferstopje?",
|
||||
"mute_modal.indefinite": "Indefinite",
|
||||
"navigation_bar.apps": "Mobile apps",
|
||||
"navigation_bar.blocks": "Blokkearre brûkers",
|
||||
"navigation_bar.bookmarks": "Blêdwiizers",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
"navigation_bar.compose": "Compose new post",
|
||||
"navigation_bar.direct": "Direct messages",
|
||||
"navigation_bar.discover": "Untdekke",
|
||||
"navigation_bar.domain_blocks": "Blokkearre domeinen",
|
||||
"navigation_bar.edit_profile": "Edit profile",
|
||||
"navigation_bar.explore": "Explore",
|
||||
"navigation_bar.favourites": "Favoriten",
|
||||
"navigation_bar.filters": "Negearre wurden",
|
||||
"navigation_bar.follow_requests": "Folgfersiken",
|
||||
"navigation_bar.follows_and_followers": "Folgers en folgjenden",
|
||||
"navigation_bar.info": "Oer dizze tsjinner",
|
||||
"navigation_bar.keyboard_shortcuts": "Fluchtoetsen",
|
||||
"navigation_bar.lists": "Listen",
|
||||
"navigation_bar.logout": "Utlogge",
|
||||
"navigation_bar.mutes": "Negearre brûkers",
|
||||
"navigation_bar.personal": "Persoanlik",
|
||||
"navigation_bar.pins": "Fêstsette berjochten",
|
||||
"navigation_bar.preferences": "Foarkarren",
|
||||
"navigation_bar.public_timeline": "Federated timeline",
|
||||
"navigation_bar.security": "Security",
|
||||
"notification.admin.sign_up": "{name} hat harren ynskreaun",
|
||||
"notification.favourite": "{name} hat jo berjocht as favoryt markearre",
|
||||
"notification.follow": "{name} folget jo",
|
||||
"notification.follow_request": "{name} hat jo in folgfersyk stjoerd",
|
||||
"notification.mention": "{name} hat jo fermeld",
|
||||
"notification.own_poll": "Jo poll is beëinige",
|
||||
"notification.poll": "In poll wêr jo yn stimt ha is beëinige",
|
||||
"notification.reblog": "{name} hat jo berjocht boost",
|
||||
"notification.status": "{name} hat in berjocht pleatst",
|
||||
"notification.update": "{name} hat in berjocht feroare",
|
||||
"notifications.clear": "Notifikaasjes leegje",
|
||||
"notifications.clear_confirmation": "Wolle jo al jo notifikaasjes werklik foar ivich fuortsmite?",
|
||||
"notifications.column_settings.admin.sign_up": "Nije ynskriuwingen:",
|
||||
"notifications.column_settings.alert": "Desktop notifikaasjes",
|
||||
"notifications.column_settings.favourite": "Favoriten:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Alle kategorien sjen litte",
|
||||
"notifications.column_settings.filter_bar.category": "Quick filter bar",
|
||||
"notifications.column_settings.filter_bar.show_bar": "Show filter bar",
|
||||
"notifications.column_settings.follow": "Nije folgers:",
|
||||
"notifications.column_settings.follow_request": "New follow requests:",
|
||||
"notifications.column_settings.mention": "Fermeldingen:",
|
||||
"notifications.column_settings.poll": "Poll results:",
|
||||
"notifications.column_settings.push": "Push notifications",
|
||||
"notifications.column_settings.reblog": "Boosts:",
|
||||
"notifications.column_settings.show": "Show in column",
|
||||
"notifications.column_settings.sound": "Play sound",
|
||||
"notifications.column_settings.status": "New posts:",
|
||||
"notifications.column_settings.unread_notifications.category": "Unread notifications",
|
||||
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
|
||||
"notifications.column_settings.update": "Edits:",
|
||||
"notifications.filter.all": "All",
|
||||
"notifications.filter.boosts": "Boosts",
|
||||
"notifications.filter.favourites": "Favourites",
|
||||
"notifications.filter.follows": "Follows",
|
||||
"notifications.filter.mentions": "Fermeldingen",
|
||||
"notifications.filter.polls": "Poll results",
|
||||
"notifications.filter.statuses": "Updates from people you follow",
|
||||
"notifications.grant_permission": "Grant permission.",
|
||||
"notifications.group": "{count} notifications",
|
||||
"notifications.mark_as_read": "Mark every notification as read",
|
||||
"notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
|
||||
"notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
|
||||
"notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
|
||||
"notifications_permission_banner.enable": "Enable desktop notifications",
|
||||
"notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
|
||||
"notifications_permission_banner.title": "Never miss a thing",
|
||||
"picture_in_picture.restore": "Put it back",
|
||||
"poll.closed": "Closed",
|
||||
"poll.refresh": "Refresh",
|
||||
"poll.total_people": "{count, plural, one {# persoan} other {# minsken}}",
|
||||
"poll.total_votes": "{count, plural, one {# stim} other {# stimmen}}",
|
||||
"poll.vote": "Stim",
|
||||
"poll.voted": "Jo hawwe hjir op stimt",
|
||||
"poll.votes": "{votes, plural, one {# stim} other {# stimmen}}",
|
||||
"poll_button.add_poll": "In poll tafoegje",
|
||||
"poll_button.remove_poll": "Poll fuortsmite",
|
||||
"privacy.change": "Adjust status privacy",
|
||||
"privacy.direct.long": "Allinnich sichtber foar fermelde brûkers",
|
||||
"privacy.direct.short": "Allinnich fermelde minsken",
|
||||
"privacy.private.long": "Allinnich sichtber foar folgers",
|
||||
"privacy.private.short": "Allinnich folgers",
|
||||
"privacy.public.long": "Sichtber foar elkenien",
|
||||
"privacy.public.short": "Iepenbier",
|
||||
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
|
||||
"privacy.unlisted.short": "Unlisted",
|
||||
"refresh": "Fernije",
|
||||
"regeneration_indicator.label": "Loading…",
|
||||
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.full.days": "{number, plural, one {# dei} other {# dagen}} lyn",
|
||||
"relative_time.full.hours": "{number, plural, one {# oere} other {# oeren}} lyn",
|
||||
"relative_time.full.just_now": "no krekt",
|
||||
"relative_time.full.minutes": "{number, plural, one {# minút} other {# minuten}} lyn",
|
||||
"relative_time.full.seconds": "{number, plural, one {# sekonde} other {# sekonden}} lyn",
|
||||
"relative_time.hours": "{number}o",
|
||||
"relative_time.just_now": "no",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.today": "hjoed",
|
||||
"reply_indicator.cancel": "Ofbrekke",
|
||||
"report.block": "Blokkearre",
|
||||
"report.block_explanation": "Jo sille harren berjochten net sjen kinne. Se sille jo berjochten net sjen kinne en jo net folgje kinne. Se sille wol sjen kinne dat se blokkearre binne.",
|
||||
"report.categories.other": "Other",
|
||||
"report.categories.spam": "Spam",
|
||||
"report.categories.violation": "Ynhâld ferbrekt ien of mear tsjinner regels",
|
||||
"report.category.subtitle": "Selektearje wat it bêst past",
|
||||
"report.category.title": "Fertel ús wat der mei dit {type} oan de hân is",
|
||||
"report.category.title_account": "profyl",
|
||||
"report.category.title_status": "berjocht",
|
||||
"report.close": "Klear",
|
||||
"report.comment.title": "Tinke jo dat wy noch mear witte moatte?",
|
||||
"report.forward": "Troch stjoere nei {target}",
|
||||
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
|
||||
"report.mute": "Negearre",
|
||||
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
|
||||
"report.next": "Fierder",
|
||||
"report.placeholder": "Type or paste additional comments",
|
||||
"report.reasons.dislike": "Ik fyn der neat oan",
|
||||
"report.reasons.dislike_description": "It is net eat wat jo sjen wolle",
|
||||
"report.reasons.other": "It is wat oars",
|
||||
"report.reasons.other_description": "It probleem stiet der net tusken",
|
||||
"report.reasons.spam": "It's spam",
|
||||
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
|
||||
"report.reasons.violation": "It violates server rules",
|
||||
"report.reasons.violation_description": "You are aware that it breaks specific rules",
|
||||
"report.rules.subtitle": "Select all that apply",
|
||||
"report.rules.title": "Which rules are being violated?",
|
||||
"report.statuses.subtitle": "Select all that apply",
|
||||
"report.statuses.title": "Are there any posts that back up this report?",
|
||||
"report.submit": "Submit report",
|
||||
"report.target": "Report {target}",
|
||||
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
|
||||
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
|
||||
"report.thanks.title": "Don't want to see this?",
|
||||
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
|
||||
"report.unfollow": "Unfollow @{name}",
|
||||
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
|
||||
"search.placeholder": "Search",
|
||||
"search_popout.search_format": "Advanced search format",
|
||||
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
|
||||
"search_popout.tips.hashtag": "hashtag",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
||||
"search_popout.tips.user": "user",
|
||||
"search_results.accounts": "People",
|
||||
"search_results.all": "All",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.nothing_found": "Could not find anything for these search terms",
|
||||
"search_results.statuses": "Posts",
|
||||
"search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
"status.bookmark": "Bookmark",
|
||||
"status.cancel_reblog_private": "Unboost",
|
||||
"status.cannot_reblog": "This post cannot be boosted",
|
||||
"status.copy": "Copy link to status",
|
||||
"status.delete": "Delete",
|
||||
"status.detailed_status": "Detaillearre oersjoch fan petear",
|
||||
"status.direct": "Direct message @{name}",
|
||||
"status.edit": "Edit",
|
||||
"status.edited": "Edited {date}",
|
||||
"status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke",
|
||||
"status.embed": "Ynslute",
|
||||
"status.favourite": "Favorite",
|
||||
"status.filtered": "Filtere",
|
||||
"status.history.created": "{name} makke dit {date}",
|
||||
"status.history.edited": "{name} feroare dit {date}",
|
||||
"status.load_more": "Load more",
|
||||
"status.media_hidden": "Media ferstoppe",
|
||||
"status.mention": "Fermeld @{name}",
|
||||
"status.more": "Mear",
|
||||
"status.mute": "Negearje @{name}",
|
||||
"status.mute_conversation": "Petear negearre",
|
||||
"status.open": "Dit berjocht útflappe",
|
||||
"status.pin": "Op profyl fêstsette",
|
||||
"status.pinned": "Fêstset berjocht",
|
||||
"status.read_more": "Lês mear",
|
||||
"status.reblog": "Boost",
|
||||
"status.reblog_private": "Boost with original visibility",
|
||||
"status.reblogged_by": "{name} hat boost",
|
||||
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
|
||||
"status.redraft": "Fuortsmite en opnij opstelle",
|
||||
"status.remove_bookmark": "Remove bookmark",
|
||||
"status.reply": "Reagearre",
|
||||
"status.replyAll": "Op elkenien reagearre",
|
||||
"status.report": "Jou @{name} oan",
|
||||
"status.sensitive_warning": "Sensitive content",
|
||||
"status.share": "Diele",
|
||||
"status.show_less": "Minder sjen litte",
|
||||
"status.show_less_all": "Foar alles minder sjen litte",
|
||||
"status.show_more": "Mear sjen litte",
|
||||
"status.show_more_all": "Foar alles mear sjen litte",
|
||||
"status.show_thread": "Petear sjen litte",
|
||||
"status.uncached_media_warning": "Net beskikber",
|
||||
"status.unmute_conversation": "Petear net mear negearre",
|
||||
"status.unpin": "Unpin from profile",
|
||||
"suggestions.dismiss": "Dismiss suggestion",
|
||||
"suggestions.header": "You might be interested in…",
|
||||
"tabs_bar.federated_timeline": "Federated",
|
||||
"tabs_bar.home": "Home",
|
||||
"tabs_bar.local_timeline": "Local",
|
||||
"tabs_bar.notifications": "Notifikaasjes",
|
||||
"tabs_bar.search": "Sykje",
|
||||
"time_remaining.days": "{number, plural, one {# dei} other {# dagen}} te gean",
|
||||
"time_remaining.hours": "{number, plural, one {# oere} other {# oeren}} te gean",
|
||||
"time_remaining.minutes": "{number, plural, one {# minút} other {# minuten}} te gean",
|
||||
"time_remaining.moments": "Noch krekt even te gean",
|
||||
"time_remaining.seconds": "{number, plural, one {# sekonde} other {# sekonden}} te gean",
|
||||
"timeline_hint.remote_resource_not_displayed": "{resource} fan oare tsjinners wurde net sjen litten.",
|
||||
"timeline_hint.resources.followers": "Folgers",
|
||||
"timeline_hint.resources.follows": "Follows",
|
||||
"timeline_hint.resources.statuses": "Aldere berjochten",
|
||||
"trends.counter_by_accounts": "{count, plural, one {{counter} persoan is} other {{counter} persoanen binne}} yn petear",
|
||||
"trends.trending_now": "Trending now",
|
||||
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
|
||||
"units.short.billion": "{count}B",
|
||||
"units.short.million": "{count}M",
|
||||
"units.short.thousand": "{count}K",
|
||||
"upload_area.title": "Drag & drop to upload",
|
||||
"upload_button.label": "Add images, a video or an audio file",
|
||||
"upload_error.limit": "File upload limit exceeded.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_form.audio_description": "Describe for people with hearing loss",
|
||||
"upload_form.description": "Describe for the visually impaired",
|
||||
"upload_form.description_missing": "No description added",
|
||||
"upload_form.edit": "Edit",
|
||||
"upload_form.thumbnail": "Change thumbnail",
|
||||
"upload_form.undo": "Delete",
|
||||
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
|
||||
"upload_modal.analyzing_picture": "Analyzing picture…",
|
||||
"upload_modal.apply": "Apply",
|
||||
"upload_modal.applying": "Applying…",
|
||||
"upload_modal.choose_image": "Choose image",
|
||||
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
|
||||
"upload_modal.detect_text": "Detect text from picture",
|
||||
"upload_modal.edit_media": "Edit media",
|
||||
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
|
||||
"upload_modal.preparing_ocr": "Preparing OCR…",
|
||||
"upload_modal.preview_label": "Preview ({ratio})",
|
||||
"upload_progress.label": "Uploading…",
|
||||
"video.close": "Close video",
|
||||
"video.download": "Download file",
|
||||
"video.exit_fullscreen": "Exit full screen",
|
||||
"video.expand": "Expand video",
|
||||
"video.fullscreen": "Full screen",
|
||||
"video.hide": "Hide video",
|
||||
"video.mute": "Mute sound",
|
||||
"video.pause": "Pause",
|
||||
"video.play": "Play",
|
||||
"video.unmute": "Unmute sound"
|
||||
}
|
|
@ -71,7 +71,7 @@
|
|||
"column.bookmarks": "Leabharmharcanna",
|
||||
"column.community": "Local timeline",
|
||||
"column.direct": "Direct messages",
|
||||
"column.directory": "Browse profiles",
|
||||
"column.directory": "Brabhsáil próifílí",
|
||||
"column.domain_blocks": "Blocked domains",
|
||||
"column.favourites": "Favourites",
|
||||
"column.follow_requests": "Follow requests",
|
||||
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
@ -165,7 +165,7 @@
|
|||
"emoji_button.travel": "Taisteal ⁊ Áiteanna",
|
||||
"empty_column.account_suspended": "Account suspended",
|
||||
"empty_column.account_timeline": "No posts found",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.account_unavailable": "Níl an phróifíl ar fáil",
|
||||
"empty_column.blocks": "You haven't blocked any users yet.",
|
||||
"empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
|
||||
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
|
||||
|
@ -204,7 +204,7 @@
|
|||
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
|
||||
"generic.saved": "Saved",
|
||||
"getting_started.developers": "Developers",
|
||||
"getting_started.directory": "Profile directory",
|
||||
"getting_started.directory": "Eolaire na próifíle",
|
||||
"getting_started.documentation": "Documentation",
|
||||
"getting_started.heading": "Getting started",
|
||||
"getting_started.invite": "Invite people",
|
||||
|
@ -247,11 +247,11 @@
|
|||
"keyboard_shortcuts.local": "to open local timeline",
|
||||
"keyboard_shortcuts.mention": "to mention author",
|
||||
"keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe",
|
||||
"keyboard_shortcuts.my_profile": "to open your profile",
|
||||
"keyboard_shortcuts.my_profile": "Oscail do phróifíl",
|
||||
"keyboard_shortcuts.notifications": "to open notifications column",
|
||||
"keyboard_shortcuts.open_media": "to open media",
|
||||
"keyboard_shortcuts.pinned": "to open pinned posts list",
|
||||
"keyboard_shortcuts.profile": "to open author's profile",
|
||||
"keyboard_shortcuts.profile": "Oscail próifíl an t-údar",
|
||||
"keyboard_shortcuts.reply": "to reply",
|
||||
"keyboard_shortcuts.requests": "to open follow requests list",
|
||||
"keyboard_shortcuts.search": "to focus search",
|
||||
|
@ -267,8 +267,8 @@
|
|||
"lightbox.expand": "Expand image view box",
|
||||
"lightbox.next": "Next",
|
||||
"lightbox.previous": "Previous",
|
||||
"limited_account_hint.action": "Show profile anyway",
|
||||
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
|
||||
"limited_account_hint.action": "Taispeáin an phróifíl ar aon nós",
|
||||
"limited_account_hint.title": "Tá an phróifíl seo curtha i bhfolach ag na modhnóra do fhreastalaí.",
|
||||
"lists.account.add": "Add to list",
|
||||
"lists.account.remove": "Remove from list",
|
||||
"lists.delete": "Delete list",
|
||||
|
@ -401,7 +401,7 @@
|
|||
"report.categories.violation": "Content violates one or more server rules",
|
||||
"report.category.subtitle": "Choose the best match",
|
||||
"report.category.title": "Tell us what's going on with this {type}",
|
||||
"report.category.title_account": "profile",
|
||||
"report.category.title_account": "próifíl",
|
||||
"report.category.title_status": "post",
|
||||
"report.close": "Déanta",
|
||||
"report.comment.title": "Is there anything else you think we should know?",
|
||||
|
@ -470,7 +470,7 @@
|
|||
"status.mute": "Balbhaigh @{name}",
|
||||
"status.mute_conversation": "Balbhaigh comhrá",
|
||||
"status.open": "Expand this status",
|
||||
"status.pin": "Pin on profile",
|
||||
"status.pin": "Pionnáil ar do phróifíl",
|
||||
"status.pinned": "Pinned post",
|
||||
"status.read_more": "Read more",
|
||||
"status.reblog": "Boost",
|
||||
|
@ -491,7 +491,7 @@
|
|||
"status.show_thread": "Show thread",
|
||||
"status.uncached_media_warning": "Not available",
|
||||
"status.unmute_conversation": "Díbhalbhaigh comhrá",
|
||||
"status.unpin": "Unpin from profile",
|
||||
"status.unpin": "Díphionnáil de do phróifíl",
|
||||
"suggestions.dismiss": "Dismiss suggestion",
|
||||
"suggestions.header": "You might be interested in…",
|
||||
"tabs_bar.federated_timeline": "Federated",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Thoir an roghainn seo air falbh",
|
||||
"compose_form.poll.switch_to_multiple": "Atharraich an cunntas-bheachd ach an gabh iomadh roghainn a thaghadh",
|
||||
"compose_form.poll.switch_to_single": "Atharraich an cunntas-bheachd gus nach gabh ach aon roghainn a thaghadh",
|
||||
"compose_form.publish": "Postaich",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Sàbhail na h-atharraichean",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Cuir comharra gu bheil am meadhan frionasach} two {Cuir comharra gu bheil na meadhanan frionasach} few {Cuir comharra gu bheil na meadhanan frionasach} other {Cuir comharra gu bheil na meadhanan frionasach}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Eliminar esta opción",
|
||||
"compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas",
|
||||
"compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa escolla",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publicar",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Gardar cambios",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Marca multimedia como sensible} other {Marca multimedia como sensibles}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "הסר בחירה זו",
|
||||
"compose_form.poll.switch_to_multiple": "אפשרו בחירה מרובה בסקר",
|
||||
"compose_form.poll.switch_to_single": "אפשרו בחירה בודדת בסקר",
|
||||
"compose_form.publish": "ללחוש",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "שמירת שינויים",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {סימון מידע כרגיש} other {סימון מידע כרגיש}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "इस विकल्प को हटाएँ",
|
||||
"compose_form.poll.switch_to_multiple": "कई विकल्पों की अनुमति देने के लिए पोल बदलें",
|
||||
"compose_form.poll.switch_to_single": "एक ही विकल्प के लिए अनुमति देने के लिए पोल बदलें",
|
||||
"compose_form.publish": "टूट्",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "परिवर्तनों को सहेजें",
|
||||
"compose_form.sensitive.hide": "मीडिया को संवेदनशील के रूप में चिह्नित करें",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Ukloni ovu opciju",
|
||||
"compose_form.poll.switch_to_multiple": "Omogući višestruki odabir opcija ankete",
|
||||
"compose_form.poll.switch_to_single": "Omogući odabir samo jedne opcije ankete",
|
||||
"compose_form.publish": "Tootni",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Označi medijski sadržaj kao osjetljiv",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Lehetőség törlése",
|
||||
"compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra",
|
||||
"compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra",
|
||||
"compose_form.publish": "Tülk",
|
||||
"compose_form.publish": "Közzététel",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Módosítások mentése",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Média kényesnek jelölése} other {Média kényesnek jelölése}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Հեռացնել այս տարբերակը",
|
||||
"compose_form.poll.switch_to_multiple": "Հարցումը դարձնել բազմակի ընտրութեամբ",
|
||||
"compose_form.poll.switch_to_single": "Հարցումը դարձնել եզակի ընտրութեամբ",
|
||||
"compose_form.publish": "Հրապարակել",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "Հրապարակե՜լ",
|
||||
"compose_form.save_changes": "Պահպանել փոփոխութիւնները",
|
||||
"compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Hapus opsi ini",
|
||||
"compose_form.poll.switch_to_multiple": "Ubah japat menjadi pilihan ganda",
|
||||
"compose_form.poll.switch_to_single": "Ubah japat menjadi pilihan tunggal",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Terbitkan",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Simpan perubahan",
|
||||
"compose_form.sensitive.hide": "{count, plural, other {Tandai media sebagai sensitif}}",
|
||||
|
|
|
@ -33,12 +33,12 @@
|
|||
"account.mute_notifications": "Silencigez avizi de @{name}",
|
||||
"account.muted": "Silencigata",
|
||||
"account.posts": "Mesaji",
|
||||
"account.posts_with_replies": "Toots with replies",
|
||||
"account.posts_with_replies": "Posti e respondi",
|
||||
"account.report": "Denuncar @{name}",
|
||||
"account.requested": "Vartante aprobo",
|
||||
"account.share": "Partigez profilo di @{name}",
|
||||
"account.show_reblogs": "Montrez busti de @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} Posto} other {{counter} Posti}}",
|
||||
"account.unblock": "Desblokusar @{name}",
|
||||
"account.unblock_domain": "Unhide {domain}",
|
||||
"account.unblock_short": "Derestriktez",
|
||||
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Efacez ca selektajo",
|
||||
"compose_form.poll.switch_to_multiple": "Chanjez votposto por permisar multiselektaji",
|
||||
"compose_form.poll.switch_to_single": "Chanjez votposto por permisar una selektajo",
|
||||
"compose_form.publish": "Siflar",
|
||||
"compose_form.publish": "Publikigez",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Sparez chanji",
|
||||
"compose_form.sensitive.hide": "{count, plural,one {Markizez medii quale privata} other {Markizez medii quale privata}}",
|
||||
|
@ -193,7 +193,7 @@
|
|||
"explore.search_results": "Trovuri",
|
||||
"explore.suggested_follows": "Por vu",
|
||||
"explore.title": "Explorez",
|
||||
"explore.trending_links": "Niuz",
|
||||
"explore.trending_links": "Niuzi",
|
||||
"explore.trending_statuses": "Posti",
|
||||
"explore.trending_tags": "Hashtagi",
|
||||
"follow_recommendations.done": "Fina",
|
||||
|
@ -350,7 +350,7 @@
|
|||
"notifications.filter.follows": "Sequati",
|
||||
"notifications.filter.mentions": "Mencioni",
|
||||
"notifications.filter.polls": "Votpostorezulti",
|
||||
"notifications.filter.statuses": "Niuz de personi quon vu sequas",
|
||||
"notifications.filter.statuses": "Novaji de personi quon vu sequas",
|
||||
"notifications.grant_permission": "Donez permiso.",
|
||||
"notifications.group": "{count} avizi",
|
||||
"notifications.mark_as_read": "Markizez singla avizi quale lektita",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Fjarlægja þennan valkost",
|
||||
"compose_form.poll.switch_to_multiple": "Breyta könnun svo hægt sé að hafa marga valkosti",
|
||||
"compose_form.poll.switch_to_single": "Breyta könnun svo hægt sé að hafa einn stakan valkost",
|
||||
"compose_form.publish": "Tíst",
|
||||
"compose_form.publish": "Birta",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Vista breytingar",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Merkja mynd sem viðkvæma} other {Merkja myndir sem viðkvæmar}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Rimuovi questa scelta",
|
||||
"compose_form.poll.switch_to_multiple": "Modifica sondaggio per consentire scelte multiple",
|
||||
"compose_form.poll.switch_to_single": "Modifica sondaggio per consentire una singola scelta",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Pubblica",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Salva modifiche",
|
||||
"compose_form.sensitive.hide": "Segna media come sensibile",
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
"compose.language.change": "言語を変更",
|
||||
"compose.language.search": "言語を検索...",
|
||||
"compose_form.direct_message_warning_learn_more": "もっと詳しく",
|
||||
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
|
||||
"compose_form.encryption_warning": "Mastodonの投稿はエンドツーエンド暗号化に対応していません。安全に送受信されるべき情報をMastodonで共有しないでください。",
|
||||
"compose_form.hashtag_warning": "この投稿は公開設定ではないのでハッシュタグの一覧に表示されません。公開投稿だけがハッシュタグで検索できます。",
|
||||
"compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。",
|
||||
"compose_form.lock_disclaimer.lock": "承認制",
|
||||
|
@ -110,7 +110,7 @@
|
|||
"compose_form.poll.remove_option": "この項目を削除",
|
||||
"compose_form.poll.switch_to_multiple": "複数選択に変更",
|
||||
"compose_form.poll.switch_to_single": "単一選択に変更",
|
||||
"compose_form.publish": "トゥート",
|
||||
"compose_form.publish": "投稿",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "変更を保存",
|
||||
"compose_form.sensitive.hide": "メディアを閲覧注意にする",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "ტუტი",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Sfeḍ afran-agi",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Jewweq",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Sekles ibeddilen",
|
||||
"compose_form.sensitive.hide": "Creḍ allal n teywalt d anafri",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Бұл жауапты өшір",
|
||||
"compose_form.poll.switch_to_multiple": "Бірнеше жауап таңдайтындай қылу",
|
||||
"compose_form.poll.switch_to_single": "Тек бір жауап таңдайтындай қылу",
|
||||
"compose_form.publish": "Түрт",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Сезімтал ретінде белгіле",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "이 항목 삭제",
|
||||
"compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경",
|
||||
"compose_form.poll.switch_to_single": "단일 선택 투표로 변경",
|
||||
"compose_form.publish": "뿌우",
|
||||
"compose_form.publish": "게시",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "변경사항 저장",
|
||||
"compose_form.sensitive.hide": "미디어를 민감함으로 설정하기",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Vê hilbijarê rake",
|
||||
"compose_form.poll.switch_to_multiple": "Rapirsî yê biguherînin da ku destûr bidin vebijarkên pirjimar",
|
||||
"compose_form.poll.switch_to_single": "Rapirsîyê biguherîne da ku mafê bidî tenê vebijêrkek",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Guhertinan tomar bike",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Medya wekî hestiyar nîşan bide} other {Medya wekî hestiyar nîşan bide}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Dilea'n dewis ma",
|
||||
"compose_form.poll.switch_to_multiple": "Chanjya sondyans dhe asa lies dewis",
|
||||
"compose_form.poll.switch_to_single": "Chanjya sondyans dhe asa unn dewis hepken",
|
||||
"compose_form.publish": "Tout",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Merkya myski vel tender} other {Merkya myski vel tender}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Noņemt šo izvēli",
|
||||
"compose_form.poll.switch_to_multiple": "Maini aptaujas veidu, lai atļautu vairākas izvēles",
|
||||
"compose_form.poll.switch_to_single": "Maini aptaujas veidu, lai atļautu vienu izvēli",
|
||||
"compose_form.publish": "Taurēt",
|
||||
"compose_form.publish": "Publicēt",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Saglabāt izmaiņas",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Atzīmēt mediju kā sensitīvu} other {Atzīmēt medijus kā sensitīvus}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Избриши избор",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Тутови",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Обележи медиа како сензитивна",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "ഈ ഡിവൈസ് മാറ്റുക",
|
||||
"compose_form.poll.switch_to_multiple": "വോട്ടെടുപ്പിൽ ഒന്നിലധികം ചോയ്സുകൾ ഉൾപ്പെടുതുക",
|
||||
"compose_form.poll.switch_to_single": "വോട്ടെടുപ്പിൽ ഒരൊറ്റ ചോയ്സ് മാത്രം ആക്കുക",
|
||||
"compose_form.publish": "ടൂട്ട്",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{പ്രസിദ്ധീകരിക്കുക}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "हा पर्याय काढा",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Buang pilihan ini",
|
||||
"compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian",
|
||||
"compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Tandakan media sbg sensitif} other {Tandakan media sbg sensitif}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Deze keuze verwijderen",
|
||||
"compose_form.poll.switch_to_multiple": "Poll wijzigen om meerdere keuzes toe te staan",
|
||||
"compose_form.poll.switch_to_single": "Poll wijzigen om een enkele keuze toe te staan",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Toot!",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Wijzigingen opslaan",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Media als gevoelig markeren} other {Media als gevoelig markeren}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Ta vekk dette valet",
|
||||
"compose_form.poll.switch_to_multiple": "Endre avstemninga til å tillate fleirval",
|
||||
"compose_form.poll.switch_to_single": "Endra avstemninga til tillate berre eitt val",
|
||||
"compose_form.publish": "Tut",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Merk medium som sensitivt",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Fjern dette valget",
|
||||
"compose_form.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg",
|
||||
"compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg",
|
||||
"compose_form.publish": "Tut",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Merk media som sensitivt",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Levar aquesta opcion",
|
||||
"compose_form.poll.switch_to_multiple": "Cambiar lo sondatge per permetre de causidas multiplas",
|
||||
"compose_form.poll.switch_to_single": "Cambiar lo sondatge per permetre una sola causida",
|
||||
"compose_form.publish": "Tut",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish} !",
|
||||
"compose_form.save_changes": "Salvar los cambiaments",
|
||||
"compose_form.sensitive.hide": "Marcar coma sensible",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
"compose_form.poll.remove_option": "Usuń tę opcję",
|
||||
"compose_form.poll.switch_to_multiple": "Pozwól na wybranie wielu opcji",
|
||||
"compose_form.poll.switch_to_single": "Pozwól na wybranie tylko jednej opcji",
|
||||
"compose_form.publish": "Wyślij",
|
||||
"compose_form.publish": "Opublikuj",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Zapisz zmiany",
|
||||
"compose_form.sensitive.hide": "Oznacz multimedia jako wrażliwe",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remover opção",
|
||||
"compose_form.poll.switch_to_multiple": "Permitir múltiplas escolhas",
|
||||
"compose_form.poll.switch_to_single": "Opção única",
|
||||
"compose_form.publish": "TOOT",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Salvar alterações",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Marcar mídia como sensível} other {Marcar mídias como sensível}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Eliminar esta opção",
|
||||
"compose_form.poll.switch_to_multiple": "Alterar a votação para permitir múltiplas escolhas",
|
||||
"compose_form.poll.switch_to_single": "Alterar a votação para permitir uma única escolha",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publicar",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Guardar alterações",
|
||||
"compose_form.sensitive.hide": "Marcar media como sensível",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Elimină acestă opțiune",
|
||||
"compose_form.poll.switch_to_multiple": "Modifică sondajul pentru a permite mai multe opțiuni",
|
||||
"compose_form.poll.switch_to_single": "Modifică sondajul pentru a permite o singură opțiune",
|
||||
"compose_form.publish": "Postează",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Marchează conținutul media ca fiind sensibil} few {Marchează conținuturile media ca fiind sensibile} other {Marchează conținuturile media ca fiind sensibile}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Убрать этот вариант",
|
||||
"compose_form.poll.switch_to_multiple": "Разрешить выбор нескольких вариантов",
|
||||
"compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа",
|
||||
"compose_form.publish": "Запостить",
|
||||
"compose_form.publish": "Опубликовать",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Сохранить",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Отметить медифайл как деликатный} other {Отметить медифайлы как деликатные}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "मतमेतन्नश्यताम्",
|
||||
"compose_form.poll.switch_to_multiple": "मतदानं परिवर्तयित्वा बहुवैकल्पिकमतदानं क्रियताम्",
|
||||
"compose_form.poll.switch_to_single": "मतदानं परिवर्तयित्वा निर्विकल्पमतदानं क्रियताम्",
|
||||
"compose_form.publish": "दौत्यम्",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "संवेदनशीलसामग्रीत्यङ्यताम्",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Boga custa optzione",
|
||||
"compose_form.poll.switch_to_multiple": "Muda su sondàgiu pro permìtere multi-optziones",
|
||||
"compose_form.poll.switch_to_single": "Muda su sondàgiu pro permìtere un'optzione isceti",
|
||||
"compose_form.publish": "Tut",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Marca elementu multimediale comente a sensìbile} other {Marca elementos multimediales comente sensìbiles}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "මෙම තේරීම ඉවත් කරන්න",
|
||||
"compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයකට ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න",
|
||||
"compose_form.poll.switch_to_single": "තනි තේරීමකට ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න",
|
||||
"compose_form.publish": "පිඹින්න",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න} other {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Odstráň túto voľbu",
|
||||
"compose_form.poll.switch_to_multiple": "Zmeň anketu pre povolenie viacerých možností",
|
||||
"compose_form.poll.switch_to_single": "Zmeň anketu na takú s jedinou voľbou",
|
||||
"compose_form.publish": "Pošli",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Ulož zmeny",
|
||||
"compose_form.sensitive.hide": "Označ médiá ako chúlostivé",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Hiqe këtë zgjedhje",
|
||||
"compose_form.poll.switch_to_multiple": "Ndrysho votimin për të lejuar shumë zgjedhje",
|
||||
"compose_form.poll.switch_to_single": "Ndrysho votimin për të lejuar vetëm një zgjedhje",
|
||||
"compose_form.publish": "Mesazh",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Ruaji ndryshimet",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Vëri shenjë medias si rezervat} other {Vëru shenjë mediave si rezervat}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Tutni",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Одстрани овај избор",
|
||||
"compose_form.poll.switch_to_multiple": "Промените анкету да бисте омогућили више избора",
|
||||
"compose_form.poll.switch_to_single": "Промените анкету да бисте омогућили један избор",
|
||||
"compose_form.publish": "Труби",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "Означи мултимедију као осетљиву",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Ta bort detta val",
|
||||
"compose_form.poll.switch_to_multiple": "Ändra enkät för att tillåta flera val",
|
||||
"compose_form.poll.switch_to_single": "Ändra enkät för att tillåta ett enda val",
|
||||
"compose_form.publish": "Tut",
|
||||
"compose_form.publish": "Publicera",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Spara ändringar",
|
||||
"compose_form.sensitive.hide": "Markera media som känsligt",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "இந்தத் தேர்வை அகற்று",
|
||||
"compose_form.poll.switch_to_multiple": "பல தேர்வுகளை அனுமதிக்குமாறு மாற்று",
|
||||
"compose_form.poll.switch_to_single": "ஒரே ஒரு தேர்வை மட்டும் அனுமதிக்குமாறு மாற்று",
|
||||
"compose_form.publish": "டூட்",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "அனைவருக்கும் ஏற்றப் படம் இல்லை எனக் குறியிடு",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "ఈ ఎంపికను తొలగించు",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "టూట్",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "เอาตัวเลือกนี้ออก",
|
||||
"compose_form.poll.switch_to_multiple": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตหลายตัวเลือก",
|
||||
"compose_form.poll.switch_to_single": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตตัวเลือกเดี่ยว",
|
||||
"compose_form.publish": "โพสต์",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "บันทึกการเปลี่ยนแปลง",
|
||||
"compose_form.sensitive.hide": "{count, plural, other {ทำเครื่องหมายสื่อว่าละเอียดอ่อน}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Bu seçeneği kaldır",
|
||||
"compose_form.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir",
|
||||
"compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir",
|
||||
"compose_form.publish": "Tootla",
|
||||
"compose_form.publish": "Yayınla",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Değişiklikleri kaydet",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Medyayı hassas olarak işaretle} other {Medyayı hassas olarak işaretle}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Видалити цей варіант",
|
||||
"compose_form.poll.switch_to_multiple": "Дозволити вибір декількох відповідей",
|
||||
"compose_form.poll.switch_to_single": "Перемкнути у режим вибору однієї відповіді",
|
||||
"compose_form.publish": "Надіслати",
|
||||
"compose_form.publish": "Опублікувати",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Зберегти зміни",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Позначити медіа делікатним} other {Позначити медіа делікатними}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "یہ انتخاب ہٹا دیں",
|
||||
"compose_form.poll.switch_to_multiple": "متعدد انتخاب کی اجازت دینے کے لیے پول تبدیل کریں",
|
||||
"compose_form.poll.switch_to_single": "کسی ایک انتخاب کے لیے پول تبدیل کریں",
|
||||
"compose_form.publish": "ٹوٹ",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "وسائل کو حساس نشاندہ کریں",
|
||||
|
|
2
app/javascript/mastodon/locales/whitelist_fy.json
Normal file
2
app/javascript/mastodon/locales/whitelist_fy.json
Normal file
|
@ -0,0 +1,2 @@
|
|||
[
|
||||
]
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
|
||||
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "移除此选项",
|
||||
"compose_form.poll.switch_to_multiple": "将投票改为多选",
|
||||
"compose_form.poll.switch_to_single": "将投票改为单选",
|
||||
"compose_form.publish": "Toot!",
|
||||
"compose_form.publish": "发布",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "保存更改",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {将媒体标记为敏感内容} other {将媒体标记为敏感内容}}",
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
"compose_form.poll.remove_option": "移除此選擇",
|
||||
"compose_form.poll.switch_to_multiple": "變更投票為允許多個選項",
|
||||
"compose_form.poll.switch_to_single": "變更投票為限定單一選項",
|
||||
"compose_form.publish": "發文",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Save changes",
|
||||
"compose_form.sensitive.hide": "標記媒體為敏感內容",
|
||||
|
|
|
@ -203,6 +203,14 @@ $content-width: 840px;
|
|||
}
|
||||
}
|
||||
|
||||
h2 small {
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
font-weight: 500;
|
||||
color: $darker-text-color;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $no-columns-breakpoint) {
|
||||
border-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: admin_action_logs
|
||||
|
|
|
@ -55,6 +55,8 @@ class Report < ApplicationRecord
|
|||
|
||||
before_validation :set_uri, only: :create
|
||||
|
||||
after_create_commit :trigger_webhooks
|
||||
|
||||
def object_type
|
||||
:flag
|
||||
end
|
||||
|
@ -143,4 +145,8 @@ class Report < ApplicationRecord
|
|||
|
||||
errors.add(:rule_ids, I18n.t('reports.errors.invalid_rules')) unless rules.size == rule_ids&.size
|
||||
end
|
||||
|
||||
def trigger_webhooks
|
||||
TriggerWebhookWorker.perform_async('report.created', 'Report', id)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
# sign_in_token_sent_at :datetime
|
||||
# webauthn_id :string
|
||||
# sign_up_ip :inet
|
||||
# skip_sign_in_token :boolean
|
||||
#
|
||||
|
||||
class User < ApplicationRecord
|
||||
|
@ -120,6 +119,7 @@ class User < ApplicationRecord
|
|||
before_validation :sanitize_languages
|
||||
before_create :set_approved
|
||||
after_commit :send_pending_devise_notifications
|
||||
after_create_commit :trigger_webhooks
|
||||
|
||||
# This avoids a deprecation warning from Rails 5.1
|
||||
# It seems possible that a future release of devise-two-factor will
|
||||
|
@ -182,7 +182,9 @@ class User < ApplicationRecord
|
|||
end
|
||||
|
||||
def update_sign_in!(new_sign_in: false)
|
||||
old_current, new_current = current_sign_in_at, Time.now.utc
|
||||
old_current = current_sign_in_at
|
||||
new_current = Time.now.utc
|
||||
|
||||
self.last_sign_in_at = old_current || new_current
|
||||
self.current_sign_in_at = new_current
|
||||
|
||||
|
@ -480,4 +482,8 @@ class User < ApplicationRecord
|
|||
def invite_text_required?
|
||||
Setting.require_invite_text && !invited? && !external? && !bypass_invite_request_check?
|
||||
end
|
||||
|
||||
def trigger_webhooks
|
||||
TriggerWebhookWorker.perform_async('account.created', 'Account', account_id)
|
||||
end
|
||||
end
|
||||
|
|
58
app/models/webhook.rb
Normal file
58
app/models/webhook.rb
Normal file
|
@ -0,0 +1,58 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: webhooks
|
||||
#
|
||||
# id :bigint(8) not null, primary key
|
||||
# url :string not null
|
||||
# events :string default([]), not null, is an Array
|
||||
# secret :string default(""), not null
|
||||
# enabled :boolean default(TRUE), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
|
||||
class Webhook < ApplicationRecord
|
||||
EVENTS = %w(
|
||||
account.created
|
||||
report.created
|
||||
).freeze
|
||||
|
||||
scope :enabled, -> { where(enabled: true) }
|
||||
|
||||
validates :url, presence: true, url: true
|
||||
validates :secret, presence: true, length: { minimum: 12 }
|
||||
validates :events, presence: true
|
||||
|
||||
validate :validate_events
|
||||
|
||||
before_validation :strip_events
|
||||
before_validation :generate_secret
|
||||
|
||||
def rotate_secret!
|
||||
update!(secret: SecureRandom.hex(20))
|
||||
end
|
||||
|
||||
def enable!
|
||||
update!(enabled: true)
|
||||
end
|
||||
|
||||
def disable!
|
||||
update!(enabled: false)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def validate_events
|
||||
errors.add(:events, :invalid) if events.any? { |e| !EVENTS.include?(e) }
|
||||
end
|
||||
|
||||
def strip_events
|
||||
self.events = events.map { |str| str.strip.presence }.compact if events.present?
|
||||
end
|
||||
|
||||
def generate_secret
|
||||
self.secret = SecureRandom.hex(20) if secret.blank?
|
||||
end
|
||||
end
|
35
app/policies/webhook_policy.rb
Normal file
35
app/policies/webhook_policy.rb
Normal file
|
@ -0,0 +1,35 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class WebhookPolicy < ApplicationPolicy
|
||||
def index?
|
||||
admin?
|
||||
end
|
||||
|
||||
def create?
|
||||
admin?
|
||||
end
|
||||
|
||||
def show?
|
||||
admin?
|
||||
end
|
||||
|
||||
def update?
|
||||
admin?
|
||||
end
|
||||
|
||||
def enable?
|
||||
admin?
|
||||
end
|
||||
|
||||
def disable?
|
||||
admin?
|
||||
end
|
||||
|
||||
def rotate_secret?
|
||||
admin?
|
||||
end
|
||||
|
||||
def destroy?
|
||||
admin?
|
||||
end
|
||||
end
|
13
app/presenters/webhooks/event_presenter.rb
Normal file
13
app/presenters/webhooks/event_presenter.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Webhooks::EventPresenter < ActiveModelSerializers::Model
|
||||
attributes :type, :created_at, :object
|
||||
|
||||
def initialize(type, object)
|
||||
super()
|
||||
|
||||
@type = type
|
||||
@created_at = Time.now.utc
|
||||
@object = object
|
||||
end
|
||||
end
|
|
@ -1,7 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class REST::Admin::ReportSerializer < ActiveModel::Serializer
|
||||
attributes :id, :action_taken, :category, :comment, :created_at, :updated_at
|
||||
attributes :id, :action_taken, :action_taken_at, :category, :comment,
|
||||
:created_at, :updated_at
|
||||
|
||||
has_one :account, serializer: REST::Admin::AccountSerializer
|
||||
has_one :target_account, serializer: REST::Admin::AccountSerializer
|
||||
|
|
26
app/serializers/rest/admin/webhook_event_serializer.rb
Normal file
26
app/serializers/rest/admin/webhook_event_serializer.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class REST::Admin::WebhookEventSerializer < ActiveModel::Serializer
|
||||
def self.serializer_for(model, options)
|
||||
case model.class.name
|
||||
when 'Account'
|
||||
REST::Admin::AccountSerializer
|
||||
when 'Report'
|
||||
REST::Admin::ReportSerializer
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
attributes :event, :created_at
|
||||
|
||||
has_one :virtual_object, key: :object
|
||||
|
||||
def virtual_object
|
||||
object.object
|
||||
end
|
||||
|
||||
def event
|
||||
object.type
|
||||
end
|
||||
end
|
|
@ -5,4 +5,8 @@ class BaseService
|
|||
include ActionView::Helpers::SanitizeHelper
|
||||
|
||||
include RoutingHelper
|
||||
|
||||
def call(*)
|
||||
raise NotImplementedError
|
||||
end
|
||||
end
|
||||
|
|
22
app/services/webhook_service.rb
Normal file
22
app/services/webhook_service.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class WebhookService < BaseService
|
||||
def call(event, object)
|
||||
@event = Webhooks::EventPresenter.new(event, object)
|
||||
@body = serialize_event
|
||||
|
||||
webhooks_for_event.each do |webhook_id|
|
||||
Webhooks::DeliveryWorker.perform_async(webhook_id, @body)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def webhooks_for_event
|
||||
Webhook.enabled.where('? = ANY(events)', @event.type).pluck(:id)
|
||||
end
|
||||
|
||||
def serialize_event
|
||||
Oj.dump(ActiveModelSerializers::SerializableResource.new(@event, serializer: REST::Admin::WebhookEventSerializer, scope: nil, scope_name: :current_user).as_json)
|
||||
end
|
||||
end
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue