Browse Source

Merge branch 'main' into glitch-soc/merge-upstream

main
Claire 2 months ago
parent
commit
edaaf6a5e9
  1. 4
      Gemfile
  2. 12
      Gemfile.lock
  3. 19
      app/controllers/admin/webhooks/secrets_controller.rb
  4. 77
      app/controllers/admin/webhooks_controller.rb
  5. 2
      app/javascript/mastodon/features/ui/components/columns_area.js
  6. 2
      app/javascript/mastodon/locales/af.json
  7. 2
      app/javascript/mastodon/locales/ar.json
  8. 2
      app/javascript/mastodon/locales/ast.json
  9. 2
      app/javascript/mastodon/locales/bg.json
  10. 2
      app/javascript/mastodon/locales/bn.json
  11. 22
      app/javascript/mastodon/locales/br.json
  12. 2
      app/javascript/mastodon/locales/ca.json
  13. 2
      app/javascript/mastodon/locales/ckb.json
  14. 2
      app/javascript/mastodon/locales/co.json
  15. 2
      app/javascript/mastodon/locales/cs.json
  16. 2
      app/javascript/mastodon/locales/cy.json
  17. 2
      app/javascript/mastodon/locales/da.json
  18. 10
      app/javascript/mastodon/locales/de.json
  19. 4
      app/javascript/mastodon/locales/defaultMessages.json
  20. 2
      app/javascript/mastodon/locales/el.json
  21. 2
      app/javascript/mastodon/locales/en-GB.json
  22. 2
      app/javascript/mastodon/locales/eo.json
  23. 2
      app/javascript/mastodon/locales/es-AR.json
  24. 4
      app/javascript/mastodon/locales/es-MX.json
  25. 2
      app/javascript/mastodon/locales/es.json
  26. 2
      app/javascript/mastodon/locales/et.json
  27. 2
      app/javascript/mastodon/locales/eu.json
  28. 2
      app/javascript/mastodon/locales/fa.json
  29. 2
      app/javascript/mastodon/locales/fi.json
  30. 2
      app/javascript/mastodon/locales/fr.json
  31. 549
      app/javascript/mastodon/locales/fy.json
  32. 22
      app/javascript/mastodon/locales/ga.json
  33. 2
      app/javascript/mastodon/locales/gd.json
  34. 2
      app/javascript/mastodon/locales/gl.json
  35. 2
      app/javascript/mastodon/locales/he.json
  36. 2
      app/javascript/mastodon/locales/hi.json
  37. 2
      app/javascript/mastodon/locales/hr.json
  38. 2
      app/javascript/mastodon/locales/hu.json
  39. 2
      app/javascript/mastodon/locales/hy.json
  40. 2
      app/javascript/mastodon/locales/id.json
  41. 10
      app/javascript/mastodon/locales/io.json
  42. 2
      app/javascript/mastodon/locales/is.json
  43. 2
      app/javascript/mastodon/locales/it.json
  44. 4
      app/javascript/mastodon/locales/ja.json
  45. 2
      app/javascript/mastodon/locales/ka.json
  46. 2
      app/javascript/mastodon/locales/kab.json
  47. 2
      app/javascript/mastodon/locales/kk.json
  48. 2
      app/javascript/mastodon/locales/kn.json
  49. 2
      app/javascript/mastodon/locales/ko.json
  50. 2
      app/javascript/mastodon/locales/ku.json
  51. 2
      app/javascript/mastodon/locales/kw.json
  52. 2
      app/javascript/mastodon/locales/lt.json
  53. 2
      app/javascript/mastodon/locales/lv.json
  54. 2
      app/javascript/mastodon/locales/mk.json
  55. 2
      app/javascript/mastodon/locales/ml.json
  56. 2
      app/javascript/mastodon/locales/mr.json
  57. 2
      app/javascript/mastodon/locales/ms.json
  58. 2
      app/javascript/mastodon/locales/nl.json
  59. 2
      app/javascript/mastodon/locales/nn.json
  60. 2
      app/javascript/mastodon/locales/no.json
  61. 2
      app/javascript/mastodon/locales/oc.json
  62. 2
      app/javascript/mastodon/locales/pa.json
  63. 2
      app/javascript/mastodon/locales/pl.json
  64. 2
      app/javascript/mastodon/locales/pt-BR.json
  65. 2
      app/javascript/mastodon/locales/pt-PT.json
  66. 2
      app/javascript/mastodon/locales/ro.json
  67. 2
      app/javascript/mastodon/locales/ru.json
  68. 2
      app/javascript/mastodon/locales/sa.json
  69. 2
      app/javascript/mastodon/locales/sc.json
  70. 2
      app/javascript/mastodon/locales/si.json
  71. 2
      app/javascript/mastodon/locales/sk.json
  72. 2
      app/javascript/mastodon/locales/sq.json
  73. 2
      app/javascript/mastodon/locales/sr-Latn.json
  74. 2
      app/javascript/mastodon/locales/sr.json
  75. 2
      app/javascript/mastodon/locales/sv.json
  76. 2
      app/javascript/mastodon/locales/szl.json
  77. 2
      app/javascript/mastodon/locales/ta.json
  78. 2
      app/javascript/mastodon/locales/tai.json
  79. 2
      app/javascript/mastodon/locales/te.json
  80. 2
      app/javascript/mastodon/locales/th.json
  81. 2
      app/javascript/mastodon/locales/tr.json
  82. 2
      app/javascript/mastodon/locales/tt.json
  83. 2
      app/javascript/mastodon/locales/ug.json
  84. 2
      app/javascript/mastodon/locales/uk.json
  85. 2
      app/javascript/mastodon/locales/ur.json
  86. 2
      app/javascript/mastodon/locales/whitelist_fy.json
  87. 2
      app/javascript/mastodon/locales/zgh.json
  88. 2
      app/javascript/mastodon/locales/zh-CN.json
  89. 2
      app/javascript/mastodon/locales/zh-HK.json
  90. 8
      app/javascript/styles/mastodon/admin.scss
  91. 1
      app/models/admin/action_log.rb
  92. 6
      app/models/report.rb
  93. 10
      app/models/user.rb
  94. 58
      app/models/webhook.rb
  95. 35
      app/policies/webhook_policy.rb
  96. 13
      app/presenters/webhooks/event_presenter.rb
  97. 3
      app/serializers/rest/admin/report_serializer.rb
  98. 26
      app/serializers/rest/admin/webhook_event_serializer.rb
  99. 4
      app/services/base_service.rb
  100. 22
      app/services/webhook_service.rb
  101. Some files were not shown because too many files have changed in this diff Show More

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

@ -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

@ -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

@ -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

2
app/javascript/mastodon/features/ui/components/columns_area.js

@ -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/);

2
app/javascript/mastodon/locales/af.json

@ -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}}",

2
app/javascript/mastodon/locales/ar.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": "Publish",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "احفظ التعديلات",
"compose_form.sensitive.hide": "{count, plural, one {الإشارة إلى الوَسط كمُحتوى حسّاس} two{الإشارة إلى الوسطان كمُحتويان حسّاسان} other {الإشارة إلى الوسائط كمُحتويات حسّاسة}}",

2
app/javascript/mastodon/locales/ast.json

@ -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}}",

2
app/javascript/mastodon/locales/bg.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": "Publish",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.sensitive.hide": "{count, plural, one {Маркиране на мултимедията като деликатна} other {Маркиране на мултимедиите като деликатни}}",

2
app/javascript/mastodon/locales/bn.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": "Publish",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.sensitive.hide": "এই ছবিিিওটিদনশল হিিিত করত",

22
app/javascript/mastodon/locales/br.json

@ -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ñ",

2
app/javascript/mastodon/locales/ca.json

@ -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}}",

2
app/javascript/mastodon/locales/ckb.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": "Publish",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "پاشکەوتی گۆڕانکاریەکان",
"compose_form.sensitive.hide": "نیشانکردنی میدیا وەک هەستیار",

2
app/javascript/mastodon/locales/co.json

@ -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}}",

2
app/javascript/mastodon/locales/cs.json

@ -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á}}",

2
app/javascript/mastodon/locales/cy.json

@ -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",

2
app/javascript/mastodon/locales/da.json

@ -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}}",

10
app/javascript/mastodon/locales/de.json

@ -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.",

4
app/javascript/mastodon/locales/defaultMessages.json

@ -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"
}
]
]

2
app/javascript/mastodon/locales/el.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": "Σημείωσε τα πολυμέσα ως ευαίσθητα",

2
app/javascript/mastodon/locales/en-GB.json

@ -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}}",

2
app/javascript/mastodon/locales/eo.json

@ -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",

2
app/javascript/mastodon/locales/es-AR.json

@ -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",

4
app/javascript/mastodon/locales/es-MX.json

@ -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",

2
app/javascript/mastodon/locales/es.json

@ -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}}",

2
app/javascript/mastodon/locales/et.json

@ -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",

2
app/javascript/mastodon/locales/eu.json

@ -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",

2
app/javascript/mastodon/locales/fa.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": "Publish",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "ذخیرهٔ تغییرات",
"compose_form.sensitive.hide": "{count, plural, one {علامتگذاری رسانه به عنوان حساس} other {علامتگذاری رسانهها به عنوان حساس}}",

2
app/javascript/mastodon/locales/fi.json

@ -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}}",

2
app/javascript/mastodon/locales/fr.json

@ -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

@ -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"
}

22
app/javascript/mastodon/locales/ga.json

@ -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",