mirror of
https://github.com/glitch-soc/mastodon.git
synced 2024-11-23 16:44:04 -05:00
Merge commit '611533cd12059d365ca0267342b750e615637bd4' into glitch-soc/merge-upstream
This commit is contained in:
commit
ac4002fe08
@ -69,7 +69,7 @@ services:
|
||||
hard: -1
|
||||
|
||||
libretranslate:
|
||||
image: libretranslate/libretranslate:v1.5.7
|
||||
image: libretranslate/libretranslate:v1.6.0
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- lt-data:/home/libretranslate/.local
|
||||
|
4
Gemfile
4
Gemfile
@ -149,7 +149,7 @@ group :test do
|
||||
gem 'rails-controller-testing', '~> 1.0'
|
||||
|
||||
# Validate schemas in specs
|
||||
gem 'json-schema', '~> 4.0'
|
||||
gem 'json-schema', '~> 5.0'
|
||||
|
||||
# Test harness fo rack components
|
||||
gem 'rack-test', '~> 2.1'
|
||||
@ -210,7 +210,7 @@ group :development, :test do
|
||||
gem 'test-prof'
|
||||
|
||||
# RSpec runner for rails
|
||||
gem 'rspec-rails', '~> 6.0'
|
||||
gem 'rspec-rails', '~> 7.0'
|
||||
end
|
||||
|
||||
group :production do
|
||||
|
20
Gemfile.lock
20
Gemfile.lock
@ -347,7 +347,7 @@ GEM
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
terminal-table (>= 1.5.1)
|
||||
idn-ruby (0.1.5)
|
||||
inline_svg (1.9.0)
|
||||
inline_svg (1.10.0)
|
||||
activesupport (>= 3.0)
|
||||
nokogiri (>= 1.6)
|
||||
io-console (0.7.2)
|
||||
@ -373,8 +373,8 @@ GEM
|
||||
json-ld-preloaded (3.3.0)
|
||||
json-ld (~> 3.3)
|
||||
rdf (~> 3.3)
|
||||
json-schema (4.3.1)
|
||||
addressable (>= 2.8)
|
||||
json-schema (5.0.0)
|
||||
addressable (~> 2.8)
|
||||
jsonapi-renderer (0.2.2)
|
||||
jwt (2.7.1)
|
||||
kaminari (1.2.2)
|
||||
@ -724,10 +724,10 @@ GEM
|
||||
rspec-mocks (3.13.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-rails (6.1.4)
|
||||
actionpack (>= 6.1)
|
||||
activesupport (>= 6.1)
|
||||
railties (>= 6.1)
|
||||
rspec-rails (7.0.0)
|
||||
actionpack (>= 7.0)
|
||||
activesupport (>= 7.0)
|
||||
railties (>= 7.0)
|
||||
rspec-core (~> 3.13)
|
||||
rspec-expectations (~> 3.13)
|
||||
rspec-mocks (~> 3.13)
|
||||
@ -906,7 +906,7 @@ GEM
|
||||
xorcist (1.1.3)
|
||||
xpath (3.2.0)
|
||||
nokogiri (~> 1.8)
|
||||
zeitwerk (2.6.17)
|
||||
zeitwerk (2.6.18)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
@ -965,7 +965,7 @@ DEPENDENCIES
|
||||
irb (~> 1.8)
|
||||
json-ld
|
||||
json-ld-preloaded (~> 3.2)
|
||||
json-schema (~> 4.0)
|
||||
json-schema (~> 5.0)
|
||||
kaminari (~> 1.2)
|
||||
kt-paperclip (~> 7.2)
|
||||
letter_opener (~> 1.8)
|
||||
@ -1024,7 +1024,7 @@ DEPENDENCIES
|
||||
redis-namespace (~> 1.10)
|
||||
rqrcode (~> 2.2)
|
||||
rspec-github (~> 2.4)
|
||||
rspec-rails (~> 6.0)
|
||||
rspec-rails (~> 7.0)
|
||||
rspec-sidekiq (~> 5.0)
|
||||
rubocop
|
||||
rubocop-capybara
|
||||
|
@ -200,14 +200,6 @@ module JsonLdHelper
|
||||
nil
|
||||
end
|
||||
|
||||
def merge_context(context, new_context)
|
||||
if context.is_a?(Array)
|
||||
context << new_context
|
||||
else
|
||||
[context, new_context]
|
||||
end
|
||||
end
|
||||
|
||||
def response_successful?(response)
|
||||
(200...300).cover?(response.code)
|
||||
end
|
||||
|
@ -11,6 +11,7 @@
|
||||
"about.not_available": "Dizze ynformaasje is troch dizze server net iepenbier makke.",
|
||||
"about.powered_by": "Desintralisearre sosjale media, mooglik makke troch {mastodon}",
|
||||
"about.rules": "Serverrigels",
|
||||
"account.account_note_header": "Persoanlike opmerking",
|
||||
"account.add_or_remove_from_list": "Tafoegje oan of fuortsmite út listen",
|
||||
"account.badges.bot": "Automatisearre",
|
||||
"account.badges.group": "Groep",
|
||||
@ -96,6 +97,8 @@
|
||||
"block_modal.title": "Brûker blokkearje?",
|
||||
"block_modal.you_wont_see_mentions": "Jo sjogge gjin berjochten mear dy’t dizze account fermelde.",
|
||||
"boost_modal.combo": "Jo kinne op {combo} drukke om dit de folgjende kear oer te slaan",
|
||||
"boost_modal.reblog": "Berjocht booste?",
|
||||
"boost_modal.undo_reblog": "Berjocht net langer booste?",
|
||||
"bundle_column_error.copy_stacktrace": "Flaterrapport kopiearje",
|
||||
"bundle_column_error.error.body": "De opfrege side koe net werjûn wurde. It kin wêze troch in flater yn ús koade, of in probleem mei browserkompatibiliteit.",
|
||||
"bundle_column_error.error.title": "Oh nee!",
|
||||
@ -169,21 +172,30 @@
|
||||
"confirmations.block.confirm": "Blokkearje",
|
||||
"confirmations.delete.confirm": "Fuortsmite",
|
||||
"confirmations.delete.message": "Binne jo wis dat jo dit berjocht fuortsmite wolle?",
|
||||
"confirmations.delete.title": "Berjocht fuortsmite?",
|
||||
"confirmations.delete_list.confirm": "Fuortsmite",
|
||||
"confirmations.delete_list.message": "Binne jo wis dat jo dizze list foar permanint fuortsmite wolle?",
|
||||
"confirmations.delete_list.title": "List fuortsmite?",
|
||||
"confirmations.discard_edit_media.confirm": "Fuortsmite",
|
||||
"confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?",
|
||||
"confirmations.edit.confirm": "Bewurkje",
|
||||
"confirmations.edit.message": "Troch no te bewurkjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
|
||||
"confirmations.edit.title": "Berjocht oerskriuwe?",
|
||||
"confirmations.logout.confirm": "Ofmelde",
|
||||
"confirmations.logout.message": "Binne jo wis dat jo ôfmelde wolle?",
|
||||
"confirmations.logout.title": "Ofmelde?",
|
||||
"confirmations.mute.confirm": "Negearje",
|
||||
"confirmations.redraft.confirm": "Fuortsmite en opnij opstelle",
|
||||
"confirmations.redraft.message": "Binne jo wis dat jo dit berjocht fuortsmite en opnij opstelle wolle? Favoriten en boosts geane dan ferlern en reaksjes op it oarspronklike berjocht reitsje jo kwyt.",
|
||||
"confirmations.redraft.title": "Berjocht fuortsmite en opnij opstelle?",
|
||||
"confirmations.reply.confirm": "Reagearje",
|
||||
"confirmations.reply.message": "Troch no te reagearjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
|
||||
"confirmations.reply.title": "Berjocht oerskriuwe?",
|
||||
"confirmations.unfollow.confirm": "Net mear folgje",
|
||||
"confirmations.unfollow.message": "Binne jo wis dat jo {name} net mear folgje wolle?",
|
||||
"confirmations.unfollow.title": "Brûker net mear folgje?",
|
||||
"content_warning.hide": "Berjocht ferstopje",
|
||||
"content_warning.show": "Dochs toane",
|
||||
"conversation.delete": "Petear fuortsmite",
|
||||
"conversation.mark_as_read": "As lêzen markearje",
|
||||
"conversation.open": "Petear toane",
|
||||
@ -220,7 +232,9 @@
|
||||
"domain_pill.username": "Brûkersnamme",
|
||||
"domain_pill.whats_in_a_handle": "Wat is in fediverse-adres?",
|
||||
"domain_pill.who_they_are": "Omdat jo oan in fediverse-adres sjen kinne hoe’t ien hjit en op hokker server dy sit, kinne jo mei minsken op it troch <button>ActivityPub oandreaune</button> sosjale web (fediverse) kommunisearje.",
|
||||
"domain_pill.who_you_are": "Omdat jo oan in fediverse-adres sjen kinne hoe’t jo hjitte en op hokker server jo sitte, kinne jo mei minsken op it troch <button>ActivityPub oandreaune</button> sosjale web (fediverse) kommunisearje.",
|
||||
"domain_pill.your_handle": "Jo fediverse-adres:",
|
||||
"domain_pill.your_server": "Jo digitale thús, wer't al jo berjochten stean. Is dizze server dochs net nei jo winsk? Dan kinne jo op elk momint nei in oare server ferhúzje en ek jo folgers oerbringe.",
|
||||
"domain_pill.your_username": "Jo unike identifikaasje-adres op dizze server. It is mooglik dat der brûkers mei deselde brûkersnamme op ferskate servers te finen binne.",
|
||||
"embed.instructions": "Embed this status on your website by copying the code below.",
|
||||
"embed.preview": "Sa komt it der út te sjen:",
|
||||
@ -258,6 +272,7 @@
|
||||
"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": "Jo hawwe noch gjin inkelde list. Wannear’t jo der ien oanmakke hawwe, falt dat hjir te sjen.",
|
||||
"empty_column.mutes": "Jo hawwe noch gjin brûkers negearre.",
|
||||
"empty_column.notification_requests": "Hielendal leech! Der is hjir neat. Wannear’t jo nije meldingen ûntfange, ferskine dizze hjir neffens jo ynstellingen.",
|
||||
"empty_column.notifications": "Jo hawwe noch gjin meldingen. Ynteraksjes mei oare minsken sjogge jo hjir.",
|
||||
"empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare servers om it hjir te foljen",
|
||||
"error.unexpected_crash.explanation": "Troch in bug in ús koade of in probleem mei de komptabiliteit fan jo browser, koe dizze side net toand wurde.",
|
||||
@ -288,6 +303,8 @@
|
||||
"filter_modal.select_filter.subtitle": "In besteande kategory brûke of in nije oanmeitsje",
|
||||
"filter_modal.select_filter.title": "Dit berjocht filterje",
|
||||
"filter_modal.title.status": "In berjocht filterje",
|
||||
"filter_warning.matches_filter": "Komt oerien mei filter ‘{title}’",
|
||||
"filtered_notifications_banner.pending_requests": "Fan {count, plural, =0 {net ien} one {ien persoan} other {# persoanen}} dy’t jo mooglik kinne",
|
||||
"filtered_notifications_banner.title": "Filtere meldingen",
|
||||
"firehose.all": "Alles",
|
||||
"firehose.local": "Dizze server",
|
||||
@ -336,6 +353,14 @@
|
||||
"hashtag.follow": "Hashtag folgje",
|
||||
"hashtag.unfollow": "Hashtag ûntfolgje",
|
||||
"hashtags.and_other": "…en {count, plural, one {}other {# mear}}",
|
||||
"hints.profiles.followers_may_be_missing": "Folgers foar dit profyl kinne ûntbrekke.",
|
||||
"hints.profiles.follows_may_be_missing": "De folgers foar dit profyl kinne ûntbrekke.",
|
||||
"hints.profiles.posts_may_be_missing": "Der ûntbrekke mooglik berjochten fan dit profyl.",
|
||||
"hints.profiles.see_more_followers": "Besjoch mear folgers op {domain}",
|
||||
"hints.profiles.see_more_follows": "Besjoch mear folge accounts op {domain}",
|
||||
"hints.profiles.see_more_posts": "Besjoch mear berjochten op {domain}",
|
||||
"hints.threads.replies_may_be_missing": "Antwurden fan oare servers kinne ûntbrekke.",
|
||||
"hints.threads.see_more": "Besjoch mear reaksjes op {domain}",
|
||||
"home.column_settings.show_reblogs": "Boosts toane",
|
||||
"home.column_settings.show_replies": "Reaksjes toane",
|
||||
"home.hide_announcements": "Meidielingen ferstopje",
|
||||
@ -343,6 +368,17 @@
|
||||
"home.pending_critical_update.link": "Fernijingen besjen",
|
||||
"home.pending_critical_update.title": "Kritike befeiligingsfernijing beskikber!",
|
||||
"home.show_announcements": "Meidielingen toane",
|
||||
"ignore_notifications_modal.disclaimer": "Mastodon kin brûkers net ynformearje dat jo harren meldingen negearre hawwe. Meldingen negearje sil net foarkomme dat de berjochten sels ferstjoerd wurde.",
|
||||
"ignore_notifications_modal.filter_instead": "Yn stee derfan filterje",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Jo binne noch hieltyd yn steat om folchfersiken goed- of ôf te karren en om brûkers te rapportearjen",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Filterjen foarkomt potinsjele betizing",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "Jo kinne filtere meldingen ôfsûnderlik beoardiele",
|
||||
"ignore_notifications_modal.ignore": "Meldingen negearje",
|
||||
"ignore_notifications_modal.limited_accounts_title": "Meldingen fan beheinde accounts negearje?",
|
||||
"ignore_notifications_modal.new_accounts_title": "Meldingen fan nije accounts negearje?",
|
||||
"ignore_notifications_modal.not_followers_title": "Meldingen negearje fan minsken dy’t jo net folgje?",
|
||||
"ignore_notifications_modal.not_following_title": "Meldingen negearje fan minsken dy’t josels net folgje?",
|
||||
"ignore_notifications_modal.private_mentions_title": "Meldingen negearje fan net frege priveeberjochten?",
|
||||
"interaction_modal.description.favourite": "Jo kinne mei in Mastodon-account dit berjocht as favoryt markearje, om dy brûker witte te litten dat jo it berjocht wurdearje en om it te bewarjen.",
|
||||
"interaction_modal.description.follow": "Jo kinne mei in Mastodon-account {name} folgje, om sa harren berjochten op jo starttiidline te ûntfangen.",
|
||||
"interaction_modal.description.reblog": "Jo kinne mei in Mastodon-account dit berjocht booste, om it sa mei jo folgers te dielen.",
|
||||
@ -433,6 +469,7 @@
|
||||
"mute_modal.you_wont_see_mentions": "Jo sjogge gjin berjochten mear dy’t dizze account fermelde.",
|
||||
"mute_modal.you_wont_see_posts": "De persoan kin jo berjochten noch hieltyd sjen, mar jo sjogge harren berjochten net mear.",
|
||||
"navigation_bar.about": "Oer",
|
||||
"navigation_bar.administration": "Behear",
|
||||
"navigation_bar.advanced_interface": "Yn avansearre webomjouwing iepenje",
|
||||
"navigation_bar.blocks": "Blokkearre brûkers",
|
||||
"navigation_bar.bookmarks": "Blêdwizers",
|
||||
@ -449,6 +486,7 @@
|
||||
"navigation_bar.follows_and_followers": "Folgers en folgjenden",
|
||||
"navigation_bar.lists": "Listen",
|
||||
"navigation_bar.logout": "Ofmelde",
|
||||
"navigation_bar.moderation": "Moderaasje",
|
||||
"navigation_bar.mutes": "Negearre brûkers",
|
||||
"navigation_bar.opened_in_classic_interface": "Berjochten, accounts en oare spesifike siden, wurde standert iepene yn de klassike webinterface.",
|
||||
"navigation_bar.personal": "Persoanlik",
|
||||
@ -464,9 +502,18 @@
|
||||
"notification.admin.report_statuses": "{name} rapportearre {target} foar {category}",
|
||||
"notification.admin.report_statuses_other": "{name} hat {target} rapportearre",
|
||||
"notification.admin.sign_up": "{name} hat harren registrearre",
|
||||
"notification.admin.sign_up.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe harren registrearre",
|
||||
"notification.favourite": "{name} hat jo berjocht as favoryt markearre",
|
||||
"notification.favourite.name_and_others_with_link": "{name} en <a>{count, plural, one {# oar} other {# oaren}}</a> hawwe jo berjocht as favoryt markearre",
|
||||
"notification.follow": "{name} folget dy",
|
||||
"notification.follow.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe jo folge",
|
||||
"notification.follow_request": "{name} hat dy in folchfersyk stjoerd",
|
||||
"notification.follow_request.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe frege om jo te folgjen",
|
||||
"notification.label.mention": "Fermelding",
|
||||
"notification.label.private_mention": "Priveeberjocht",
|
||||
"notification.label.private_reply": "Priveereaksje",
|
||||
"notification.label.reply": "Beäntwurdzje",
|
||||
"notification.mention": "Fermelding",
|
||||
"notification.moderation-warning.learn_more": "Mear ynfo",
|
||||
"notification.moderation_warning": "Jo hawwe in moderaasje-warskôging ûntfongen",
|
||||
"notification.moderation_warning.action_delete_statuses": "Guon fan jo berjochten binne fuortsmiten.",
|
||||
@ -479,23 +526,44 @@
|
||||
"notification.own_poll": "Jo poll is beëinige",
|
||||
"notification.poll": "In enkête dêr’t jo oan meidien hawwe is beëinige",
|
||||
"notification.reblog": "{name} hat jo berjocht boost",
|
||||
"notification.reblog.name_and_others_with_link": "{name} en <a>{count, plural, one {# oar} other {# oaren}}</a> hawwe jo berjocht boost",
|
||||
"notification.relationships_severance_event": "Ferlerne ferbiningen mei {name}",
|
||||
"notification.relationships_severance_event.account_suspension": "In behearder fan {from} hat {target} útsteld, wat betsjut dat jo gjin updates mear fan harren ûntfange kinne of mei harren kommunisearje kinne.",
|
||||
"notification.relationships_severance_event.domain_block": "In behearder fan {from} hat {target} blokkearre, ynklusyf {followersCount} fan jo folgers en {followingCount, plural, one {# account} other {# accounts}} dy’t jo folgje.",
|
||||
"notification.relationships_severance_event.learn_more": "Mear ynfo",
|
||||
"notification.relationships_severance_event.user_domain_block": "Jo hawwe {target} blokkearre, wêrmei’t jo {followersCount} fan jo folgers en {followingCount, plural, one {# account} other {# accounts}} dy’t jo folgje ferlern binne.",
|
||||
"notification.status": "{name} hat in berjocht pleatst",
|
||||
"notification.update": "{name} hat in berjocht bewurke",
|
||||
"notification_requests.accept": "Akseptearje",
|
||||
"notification_requests.accept_multiple": "{count, plural, one {# fersyk akseptearje…} other {# fersiken akseptearje…}}",
|
||||
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Fersyk akseptearje} other {Fersiken akseptearje}}",
|
||||
"notification_requests.confirm_accept_multiple.message": "Jo steane op it punt om {count, plural, one {ien meldingsfersyk} other {# meldingsfersiken}} te akseptearjen. Binne jo wis dat jo trochgean wolle?",
|
||||
"notification_requests.confirm_accept_multiple.title": "Meldingsfersiken akseptearje?",
|
||||
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Fersyk ôfwize} other {Fersiken ôfwize}}",
|
||||
"notification_requests.confirm_dismiss_multiple.message": "Jo steane op it punt om {count, plural, one {ien meldingsfersyk} other {# meldingsfersiken}} ôf te wizen. Jo sille net yn steat wêze om {count, plural, one {hier} other {hier}} wer maklik tagong ta te krijen. Wolle jo trochgean?",
|
||||
"notification_requests.confirm_dismiss_multiple.title": "Meldingsfersiken ôfwize?",
|
||||
"notification_requests.dismiss": "Ofwize",
|
||||
"notification_requests.dismiss_multiple": "{count, plural, one {# fersyk ôfwize…} other {# fersiken ôfwize…}}",
|
||||
"notification_requests.edit_selection": "Bewurkje",
|
||||
"notification_requests.exit_selection": "Klear",
|
||||
"notification_requests.explainer_for_limited_account": "Meldingen fan dizze account binne filtere, omdat dizze account troch in moderator beheind is.",
|
||||
"notification_requests.explainer_for_limited_remote_account": "Meldingen fan dizze account binne filtere, omdat dizze account of harren server troch in moderator beheind is.",
|
||||
"notification_requests.maximize": "Maksimalisearje",
|
||||
"notification_requests.minimize_banner": "Banner mei filtere meldingen minimalisearje",
|
||||
"notification_requests.notifications_from": "Meldingen fan {name}",
|
||||
"notification_requests.title": "Filtere meldingen",
|
||||
"notification_requests.view": "Meldingen besjen",
|
||||
"notifications.clear": "Meldingen wiskje",
|
||||
"notifications.clear_confirmation": "Binne jo wis dat jo al jo meldingen permanint fuortsmite wolle?",
|
||||
"notifications.clear_title": "Meldingen fuortsmite?",
|
||||
"notifications.column_settings.admin.report": "Nije rapportaazjes:",
|
||||
"notifications.column_settings.admin.sign_up": "Nije registraasjes:",
|
||||
"notifications.column_settings.alert": "Desktopmeldingen",
|
||||
"notifications.column_settings.beta.category": "Eksperimintele funksjes",
|
||||
"notifications.column_settings.beta.grouping": "Notifikaasjes groepearje",
|
||||
"notifications.column_settings.favourite": "Favoriten:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Alle kategoryen toane",
|
||||
"notifications.column_settings.filter_bar.category": "Flugge filterbalke",
|
||||
"notifications.column_settings.follow": "Nije folgers:",
|
||||
"notifications.column_settings.follow_request": "Nij folchfersyk:",
|
||||
"notifications.column_settings.mention": "Fermeldingen:",
|
||||
@ -521,6 +589,23 @@
|
||||
"notifications.permission_denied": "Desktopmeldingen binne net beskikber, omdat in eardere browsertastimming wegere waard",
|
||||
"notifications.permission_denied_alert": "Desktopmeldingen kinne net ynskeakele wurde, omdat in eardere browsertastimming wegere waard",
|
||||
"notifications.permission_required": "Desktopmeldingen binne net beskikber, omdat de nedige tastimming net ferliend is.",
|
||||
"notifications.policy.accept": "Akseptearje",
|
||||
"notifications.policy.accept_hint": "Yn meldingen toane",
|
||||
"notifications.policy.drop": "Negearje",
|
||||
"notifications.policy.drop_hint": "Permanint fuortsmite",
|
||||
"notifications.policy.filter": "Filter",
|
||||
"notifications.policy.filter_hint": "Nei filtere ynboks foar meldingen ferstjoere",
|
||||
"notifications.policy.filter_limited_accounts_hint": "Beheind troch servermoderatoren",
|
||||
"notifications.policy.filter_limited_accounts_title": "Moderearre accounts",
|
||||
"notifications.policy.filter_new_accounts.hint": "Yn de ôfrûne {days, plural, one {dei} other {# dagen}} registrearre",
|
||||
"notifications.policy.filter_new_accounts_title": "Nije accounts",
|
||||
"notifications.policy.filter_not_followers_hint": "Ynklusyf minsken dy’t jo koarter as {days, plural, one {dei} other {# dagen}} folgje",
|
||||
"notifications.policy.filter_not_followers_title": "Minsken dy’t jo net folgje",
|
||||
"notifications.policy.filter_not_following_hint": "Oant jo se hânmjittich goedkarre",
|
||||
"notifications.policy.filter_not_following_title": "Minsken dy’t josels net folgje",
|
||||
"notifications.policy.filter_private_mentions_hint": "Unsichtber útsein it in antwurd is op in priveeberjocht fan jo of wannear’t jo de ôfstjoerder folgje",
|
||||
"notifications.policy.filter_private_mentions_title": "Net frege priveeberjochten",
|
||||
"notifications.policy.title": "Meldingen beheare fan…",
|
||||
"notifications_permission_banner.enable": "Desktopmeldingen ynskeakelje",
|
||||
"notifications_permission_banner.how_to_control": "Om meldingen te ûntfangen wannear’t Mastodon net iepen stiet. Jo kinne krekt bepale hokker soarte fan ynteraksjes wol of gjin desktopmeldingen jouwe fia de boppesteande {icon} knop.",
|
||||
"notifications_permission_banner.title": "Mis neat",
|
||||
@ -647,6 +732,7 @@
|
||||
"report.unfollow_explanation": "Jo folgje dizze account. Om harren berjochten net mear op jo starttiidline te sjen, kinne jo dyjinge ûntfolgje.",
|
||||
"report_notification.attached_statuses": "{count, plural, one {{count} berjocht} other {{count} berjochten}} tafoege",
|
||||
"report_notification.categories.legal": "Juridysk",
|
||||
"report_notification.categories.legal_sentence": "yllegale ynhâld",
|
||||
"report_notification.categories.other": "Oars",
|
||||
"report_notification.categories.other_sentence": "oars",
|
||||
"report_notification.categories.spam": "Spam",
|
||||
@ -680,8 +766,11 @@
|
||||
"server_banner.about_active_users": "Oantal brûkers yn de ôfrûne 30 dagen (MAU)",
|
||||
"server_banner.active_users": "warbere brûkers",
|
||||
"server_banner.administered_by": "Beheard troch:",
|
||||
"server_banner.is_one_of_many": "{domain} is ien fan de protte ôfhinklike Mastodon-servers dy’t jo brûke kinne om diel te nimmen oan de fediverse.",
|
||||
"server_banner.server_stats": "Serverstatistiken:",
|
||||
"sign_in_banner.create_account": "Account registrearje",
|
||||
"sign_in_banner.follow_anyone": "Folgje elkenien yn de fediverse en sjoch it allegearre yn gronologyske folchoarder. Gjin algoritmen, advertinsjes of clickbaits.",
|
||||
"sign_in_banner.mastodon_is": "Mastodon is de beste manier om wat der bart by te hâlden.",
|
||||
"sign_in_banner.sign_in": "Oanmelde",
|
||||
"sign_in_banner.sso_redirect": "Oanmelde of Registrearje",
|
||||
"status.admin_account": "Moderaasje-omjouwing fan @{name} iepenje",
|
||||
|
@ -98,6 +98,7 @@
|
||||
"block_modal.you_wont_see_mentions": "Tu non videra le messages que mentiona iste persona.",
|
||||
"boost_modal.combo": "Tu pote premer {combo} pro saltar isto le proxime vice",
|
||||
"boost_modal.reblog": "Impulsar le message?",
|
||||
"boost_modal.undo_reblog": "Cessar de impulsar le message?",
|
||||
"bundle_column_error.copy_stacktrace": "Copiar reporto de error",
|
||||
"bundle_column_error.error.body": "Le pagina requestate non pote esser visualisate. Pote esser a causa de un defecto in nostre codice o de un problema de compatibilitate del navigator.",
|
||||
"bundle_column_error.error.title": "Oh, no!",
|
||||
|
@ -248,8 +248,9 @@ function processNewNotification(
|
||||
}
|
||||
|
||||
function trimNotifications(state: NotificationGroupsState) {
|
||||
if (state.scrolledToTop) {
|
||||
if (state.scrolledToTop && state.groups.length > NOTIFICATIONS_TRIM_LIMIT) {
|
||||
state.groups.splice(NOTIFICATIONS_TRIM_LIMIT);
|
||||
ensureTrailingGap(state.groups);
|
||||
}
|
||||
}
|
||||
|
||||
@ -400,6 +401,28 @@ function ensureLeadingGap(
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure the groups list ends with a gap suitable for loading more, mutating it to append one if needed
|
||||
function ensureTrailingGap(
|
||||
groups: NotificationGroupsState['groups'],
|
||||
): NotificationGap {
|
||||
const groupOrGap = groups.at(-1);
|
||||
|
||||
if (groupOrGap?.type === 'gap') {
|
||||
// We're expecting older notifications, so discard sinceId if it's set
|
||||
groupOrGap.sinceId = undefined;
|
||||
|
||||
return groupOrGap;
|
||||
} else {
|
||||
const gap: NotificationGap = {
|
||||
type: 'gap',
|
||||
maxId: groupOrGap?.page_min_id,
|
||||
};
|
||||
|
||||
groups.push(gap);
|
||||
return gap;
|
||||
}
|
||||
}
|
||||
|
||||
export const notificationGroupsReducer = createReducer<NotificationGroupsState>(
|
||||
initialState,
|
||||
(builder) => {
|
||||
|
@ -29,8 +29,4 @@ class Mention < ApplicationRecord
|
||||
to: :account,
|
||||
prefix: true
|
||||
)
|
||||
|
||||
def active?
|
||||
!silent?
|
||||
end
|
||||
end
|
||||
|
@ -246,10 +246,6 @@ class User < ApplicationRecord
|
||||
unconfirmed? || pending?
|
||||
end
|
||||
|
||||
def inactive_message
|
||||
approved? ? super : :pending
|
||||
end
|
||||
|
||||
def approve!
|
||||
return if approved?
|
||||
|
||||
|
@ -150,7 +150,7 @@ class PostStatusService < BaseService
|
||||
|
||||
@media = @account.media_attachments.where(status_id: nil).where(id: @options[:media_ids].take(Status::MEDIA_ATTACHMENTS_LIMIT).map(&:to_i))
|
||||
|
||||
not_found_ids = @options[:media_ids] - @media.map(&:id)
|
||||
not_found_ids = @options[:media_ids].map(&:to_i) - @media.map(&:id)
|
||||
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.not_found', ids: not_found_ids.join(', ')) if not_found_ids.any?
|
||||
|
||||
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:audio_or_video?)
|
||||
|
@ -74,7 +74,7 @@ class UpdateStatusService < BaseService
|
||||
|
||||
media_attachments = @status.account.media_attachments.where(status_id: [nil, @status.id]).where(scheduled_status_id: nil).where(id: @options[:media_ids].take(Status::MEDIA_ATTACHMENTS_LIMIT).map(&:to_i)).to_a
|
||||
|
||||
not_found_ids = @options[:media_ids] - media_attachments.map(&:id)
|
||||
not_found_ids = @options[:media_ids].map(&:to_i) - media_attachments.map(&:id)
|
||||
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.not_found', ids: not_found_ids.join(', ')) if not_found_ids.any?
|
||||
|
||||
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if media_attachments.size > 1 && media_attachments.find(&:audio_or_video?)
|
||||
|
@ -1412,6 +1412,7 @@ ca:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: No es pot adjuntar un vídeo a una publicació que ja contingui imatges
|
||||
not_found: No s'ha trobat el contingut multimèdia %{ids} o ja s'ha adjuntat a una altra publicació
|
||||
not_ready: No es poden adjuntar fitxers que no s'hagin acabat de processar. Torna-ho a provar en un moment!
|
||||
too_many: No es poden adjuntar més de 4 fitxers
|
||||
migrations:
|
||||
|
@ -1454,6 +1454,7 @@ da:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: En video kan ikke vedhæftes et indlæg med billedindhold
|
||||
not_found: Mediet %{ids} ikke fundet eller allerede vedhæftet andet indlæg
|
||||
not_ready: Filer under behandling kan ikke vedhæftes. Forsøg igen senere!
|
||||
too_many: Maks. 4 filer kan vedhæftes
|
||||
migrations:
|
||||
|
@ -1454,6 +1454,7 @@ de:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Es kann kein Video an einen Beitrag angehängt werden, der bereits Bilder enthält
|
||||
not_found: Medien %{ids} nicht verfügbar oder bereits an einen anderen Beitrag angehängt
|
||||
not_ready: Dateien, die noch nicht verarbeitet wurden, können nicht angehängt werden. Versuche es gleich noch einmal!
|
||||
too_many: Mehr als vier Dateien können nicht angehängt werden
|
||||
migrations:
|
||||
|
@ -83,6 +83,7 @@ fy:
|
||||
access_denied: De boarne-eigener of autorisaasjeserver hat it fersyk wegere.
|
||||
credential_flow_not_configured: De wachtwurdgegevens-flow fan de boarne-eigener is mislearre, omdat Doorkeeper.configure.resource_owner_from_credentials net ynsteld is.
|
||||
invalid_client: Clientferifikaasje is mislearre troch in ûnbekende client, ûntbrekkende client-autentikaasje of in net stipe autentikaasjemetoade.
|
||||
invalid_code_challenge_method: De koadechallengemetoade moat S256 wezen, plain wurdt net stipe.
|
||||
invalid_grant: De opjûne autorisaasje is ûnjildich, ferrûn, ynlutsen, komt net oerien mei de redirect-URI dy’t opjûn is of útjûn waard oan in oere client.
|
||||
invalid_redirect_uri: De opjûne redirect-URI is ûnjildich.
|
||||
invalid_request:
|
||||
|
@ -1454,6 +1454,7 @@ es-AR:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: No se puede adjuntar un video a un mensaje que ya contenga imágenes
|
||||
not_found: Medios %{ids} no encontrados o ya adjuntados a otro mensaje
|
||||
not_ready: No se pueden adjuntar archivos que no se han terminado de procesar. ¡Intentá de nuevo en un rato!
|
||||
too_many: No se pueden adjuntar más de 4 archivos
|
||||
migrations:
|
||||
|
@ -1454,6 +1454,7 @@ fi:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Videota ei voi liittää tilapäivitykseen, jossa on jo kuvia
|
||||
not_found: Mediaa %{ids} ei löytynyt, tai se on jo liitetty toiseen julkaisuun
|
||||
not_ready: Ei voi liittää tiedostoja, joiden käsittely on kesken. Yritä hetken kuluttua uudelleen!
|
||||
too_many: Tiedostoja voi liittää enintään 4
|
||||
migrations:
|
||||
|
@ -1454,6 +1454,7 @@ fo:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Kann ikki viðfesta sjónfílu til ein post, sum longu inniheldur myndir
|
||||
not_found: Miðilin %{ids} ikki funnin ella longu knýttur at øðrum posti
|
||||
not_ready: Kann ikki viðfesta fílur, sum ikki eru liðugt viðgjørdar. Roynd aftur um eina løtu!
|
||||
too_many: Kann ikki viðfest fleiri enn 4 fílur
|
||||
migrations:
|
||||
|
@ -31,6 +31,7 @@ fy:
|
||||
created_msg: Oanmeitsjen fan opmerking foar moderatoaren slagge!
|
||||
destroyed_msg: Fuortsmiten fan opmerking foar moderatoaren slagge!
|
||||
accounts:
|
||||
add_email_domain_block: E-maildomein blokkearje
|
||||
approve: Goedkarre
|
||||
approved_msg: It goedkarren fan de account fan %{username} is slagge
|
||||
are_you_sure: Binne jo wis?
|
||||
@ -57,6 +58,7 @@ fy:
|
||||
demote: Degradearje
|
||||
destroyed_msg: It fuortsmiten fan de gegevens fan %{username} stiet no yn de wachtrige
|
||||
disable: Befrieze
|
||||
disable_sign_in_token_auth: Ferifikaasje mei in tagongskoade fia e-mail útskeakelje
|
||||
disable_two_factor_authentication: 2FA útskeakelje
|
||||
disabled: Beferzen
|
||||
display_name: Werjeftenamme
|
||||
@ -65,6 +67,7 @@ fy:
|
||||
email: E-mailadres
|
||||
email_status: E-mailsteat
|
||||
enable: Untteie
|
||||
enable_sign_in_token_auth: Ferifikaasje mei in tagongskoade fia e-mail ynskeakelje
|
||||
enabled: Ynskeakele
|
||||
enabled_msg: It ûntteie fan de account fan %{username} is slagge
|
||||
followers: Folgers
|
||||
@ -129,6 +132,7 @@ fy:
|
||||
resubscribe: Opnij abonnearje
|
||||
role: Rol
|
||||
search: Sykje
|
||||
search_same_email_domain: Oare brûkers mei itselde e-maildomein
|
||||
search_same_ip: Oare brûkers mei itselde IP-adres
|
||||
security: Befeiliging
|
||||
security_measures:
|
||||
@ -169,21 +173,26 @@ fy:
|
||||
approve_appeal: Beswier goedkarre
|
||||
approve_user: Brûker goedkarre
|
||||
assigned_to_self_report: Rapportaazje tawize
|
||||
change_email_user: E-mailadres fan brûker wizigje
|
||||
change_role_user: Brûkersrol wizigje
|
||||
confirm_user: Brûker befêstigje
|
||||
create_account_warning: Warskôging oanmeitsje
|
||||
create_announcement: Meidieling oanmeitsje
|
||||
create_canonical_email_block: E-mailblokkade oanmeitsje
|
||||
create_custom_emoji: Lokale emoji oanmeitsje
|
||||
create_domain_allow: Domeingoedkarring oanmeitsje
|
||||
create_domain_block: Domeinblokkade oanmeitsje
|
||||
create_email_domain_block: E-maildomeinblokkade oanmeitsje
|
||||
create_ip_block: IP-rigel oanmeitsje
|
||||
create_unavailable_domain: Net beskikber domein oanmeitsje
|
||||
create_user_role: Rol oanmeitsje
|
||||
demote_user: Brûker degradearje
|
||||
destroy_announcement: Meidieling fuortsmite
|
||||
destroy_canonical_email_block: E-mailblokkade fuortsmite
|
||||
destroy_custom_emoji: Lokale emoji fuortsmite
|
||||
destroy_domain_allow: Domeingoedkarring fuortsmite
|
||||
destroy_domain_block: Domeinblokkade fuortsmite
|
||||
destroy_email_domain_block: E-maildomeinblokkade fuortsmite
|
||||
destroy_instance: Domein folslein fuortsmite
|
||||
destroy_ip_block: IP-rigel fuortsmite
|
||||
destroy_status: Toot fuortsmite
|
||||
@ -191,8 +200,10 @@ fy:
|
||||
destroy_user_role: Rol permanint fuortsmite
|
||||
disable_2fa_user: Twa-stapsferifikaasje útskeakelje
|
||||
disable_custom_emoji: Lokale emoji útskeakelje
|
||||
disable_sign_in_token_auth_user: Ferifikaasje mei in tagongskoade fia e-mail foar de brûker útskeakelje
|
||||
disable_user: Brûker útskeakelje
|
||||
enable_custom_emoji: Lokale emoji ynskeakelje
|
||||
enable_sign_in_token_auth_user: Ferifikaasje mei in tagongskoade fia e-mail foar de brûker ynskeakelje
|
||||
enable_user: Brûker ynskeakelje
|
||||
memorialize_account: De account yn in Yn memoriam wizigje
|
||||
promote_user: Brûker promovearje
|
||||
@ -222,20 +233,26 @@ fy:
|
||||
approve_appeal_html: "%{name} hat it beswier tsjin de moderaasjemaatregel fan %{target} goedkard"
|
||||
approve_user_html: "%{name} hat de registraasje fan %{target} goedkard"
|
||||
assigned_to_self_report_html: "%{name} hat rapportaazje %{target} oan harrensels tawiisd"
|
||||
change_email_user_html: "%{name} hat it e-mailadres fan brûker %{target} wizige"
|
||||
change_role_user_html: "%{name} hat de rol fan %{target} wizige"
|
||||
confirm_user_html: E-mailadres fan brûker %{target} is troch %{name} befêstige
|
||||
create_account_warning_html: "%{name} hat in warskôging nei %{target} ferstjoerd"
|
||||
create_announcement_html: "%{name} hat de nije meidieling %{target} oanmakke"
|
||||
create_canonical_email_block_html: "%{name} hat it e-mailberjocht mei de hash %{target} blokkearre"
|
||||
create_custom_emoji_html: Nije emoji %{target} is troch %{name} opladen
|
||||
create_domain_allow_html: "%{name} hat de federaasje mei it domein %{target} goedkard"
|
||||
create_domain_block_html: Domein %{target} is troch %{name} blokkearre
|
||||
create_email_domain_block_html: "%{name} hat it e-maildomein %{target} blokkearre"
|
||||
create_ip_block_html: "%{name} hat de rigel foar IP %{target} oanmakke"
|
||||
create_unavailable_domain_html: "%{name} hat de besoarging foar domein %{target} beëinige"
|
||||
create_user_role_html: "%{name} hat de rol %{target} oanmakke"
|
||||
demote_user_html: Brûker %{target} is troch %{name} degradearre
|
||||
destroy_announcement_html: "%{name} hat de meidieling %{target} fuortsmiten"
|
||||
destroy_canonical_email_block_html: "%{name} hat it e-mailberjocht mei de hash %{target} deblokkearre"
|
||||
destroy_custom_emoji_html: Emoji %{target} is troch %{name} fuortsmiten
|
||||
destroy_domain_allow_html: "%{name} hat de federaasje mei it domein %{target} ôfkard"
|
||||
destroy_domain_block_html: Domein %{target} is troch %{name} deblokkearre
|
||||
destroy_email_domain_block_html: "%{name} hat it e-maildomein %{target} deblokkearre"
|
||||
destroy_instance_html: "%{name} hat it domein %{target} folslein fuortsmiten"
|
||||
destroy_ip_block_html: "%{name} hat de rigel foar IP %{target} fuortsmiten"
|
||||
destroy_status_html: Berjocht fan %{target} is troch %{name} fuortsmiten
|
||||
@ -243,8 +260,10 @@ fy:
|
||||
destroy_user_role_html: "%{name} hat de rol %{target} fuortsmiten"
|
||||
disable_2fa_user_html: De fereaske twa-stapsferifikaasje foar %{target} is troch %{name} útskeakele
|
||||
disable_custom_emoji_html: Emoji %{target} is troch %{name} útskeakele
|
||||
disable_sign_in_token_auth_user_html: "%{name} hat ferifikaasje mei in tagongskoade fia e-mail útskeakele foar %{target}"
|
||||
disable_user_html: Oanmelden foar %{target} is troch %{name} útskeakele
|
||||
enable_custom_emoji_html: Emoji %{target} is troch %{name} ynskeakele
|
||||
enable_sign_in_token_auth_user_html: "%{name} hat ferifikaasje mei in tagongskoade fia e-mail ynskeakele foar %{target}"
|
||||
enable_user_html: Oanmelden foar %{target} is troch %{name} ynskeakele
|
||||
memorialize_account_html: De account %{target} is troch %{name} yn in Yn memoriam wizige
|
||||
promote_user_html: Brûker %{target} is troch %{name} promovearre
|
||||
@ -252,6 +271,7 @@ fy:
|
||||
reject_user_html: "%{name} hat de registraasje fan %{target} ôfwêzen"
|
||||
remove_avatar_user_html: "%{name} hat de profylfoto fan %{target} fuortsmiten"
|
||||
reopen_report_html: "%{name} hat rapportaazje %{target} opnij iepene"
|
||||
resend_user_html: "%{name} hat it befêstigings-e-mailberjocht foar %{target} opnij ferstjoerd"
|
||||
reset_password_user_html: Wachtwurd fan brûker %{target} is troch %{name} opnij ynsteld
|
||||
resolve_report_html: "%{name} hat rapportaazje %{target} oplost"
|
||||
sensitive_account_html: "%{name} markearre de media fan %{target} as gefoelich"
|
||||
@ -412,6 +432,7 @@ fy:
|
||||
attempts_over_week:
|
||||
one: "%{count} registraasjebesykjen yn de ôfrûne wike"
|
||||
other: "%{count} registraasjebesykjen yn de ôfrûne wike"
|
||||
created_msg: E-maildomein blokkearjen slagge
|
||||
delete: Fuortsmite
|
||||
dns:
|
||||
types:
|
||||
@ -420,8 +441,12 @@ fy:
|
||||
new:
|
||||
create: Domein tafoegje
|
||||
resolve: Domein opsykje
|
||||
title: Nije e-maildomein blokkearje
|
||||
no_email_domain_block_selected: Der binne gjin e-maildomeinblokkaden wizige, omdat der gjin ien selektearre waard
|
||||
not_permitted: Net tastien
|
||||
resolved_dns_records_hint_html: De domeinnamme slacht op de folgjende MX-domeinen dy’t úteinlik ferantwurdlik binne foar it akseptearjen fan e-mail. It blokkearjen fan in MX-domein blokkearret oanmeldingen fan elk e-mailadres dat itselde MX-domein brûkt, sels as de sichtbere domeinnamme oars is. <strong>Pas op dat jo gjin grutte e-mailproviders blokkearje.</strong>
|
||||
resolved_through_html: Blokkearre fia %{domain}
|
||||
title: Blokkearre e-maildomeinen
|
||||
export_domain_allows:
|
||||
new:
|
||||
title: Tastiene domeinen ymportearje
|
||||
@ -575,6 +600,7 @@ fy:
|
||||
resolve_description_html: Der wurdt tsjin it rapportearre account gjin maatregel nommen, gjin oertrêding registrearre en de rapportaazje wurdt markearre as oplost.
|
||||
silence_description_html: De account sil allinnich sichtber wêze foar dyjinge dy’t it al folgje of it hânmjittich opsykje, wêrtroch it berik earnstich beheind wurdt. Kin altyd weromdraaid wurde. Dit slút alle rapportaazjes oer dizze account.
|
||||
suspend_description_html: De account en alle ynhâld sil net tagonklik wêze en úteinlik fuortsmiten wurde, en ynteraksje hjirmei sil net mooglik wêze. Binnen 30 dagen werom te draaien. Dit slút alle rapportaazjes oer dizze account.
|
||||
actions_description_html: Beslis hokker maatregel nommen wurde moat om dizze rapportaazje op te lossen. Wannear’t jo in (straf)maatregel tsjin it rapportearre account nimme, kriget de account in e-mailmelding, behalve wannear’t de <strong>spam</strong>-kategory keazen is.
|
||||
actions_description_remote_html: Beslút hokker aksje nommen wurde moat om dizze rapportaazje ôf te hanneljen. Dit hat allinnich ynfloed op hoe’t <strong>jo</strong> server kommunisearret mei dizze eksterne account en omgiet mei de ynhâld.
|
||||
add_to_report: Mear oan de rapportaazje tafoegje
|
||||
already_suspended_badges:
|
||||
@ -639,6 +665,7 @@ fy:
|
||||
delete_data_html: It profyl en de ynhâld fan <strong>@%{acct}</strong> wurde nei 30 dagen fan no ôf fuortsmiten, útsein as de account yn de tuskentiid net mear blokkearre wurdt
|
||||
preview_preamble_html: "<strong>@%{acct}</strong> sil in warskôging ûntfange mei de folgjende ynhâld:"
|
||||
record_strike_html: In ban tsjin <strong>@%{acct}</strong> ynstelle, om jo te helpen by takomstige skeiningen fan dizze acount te eskalearjen
|
||||
send_email_html: Stjoer <strong>@%{acct}</strong> in warskôgings-e-mailberjocht
|
||||
warning_placeholder: Ekstra opsjonele reden foar de moderaasje-aksje.
|
||||
target_origin: Orizjineel fan rapportearre account
|
||||
title: Rapportaazjes
|
||||
@ -678,6 +705,7 @@ fy:
|
||||
manage_appeals: Beswieren beheare
|
||||
manage_appeals_description: Stiet brûkers ta om beswieren tsjin moderaasjemaatregelen te beoardielen
|
||||
manage_blocks: Blokkaden beheare
|
||||
manage_blocks_description: Stiet brûkers ta om e-mailproviders en IP-adressen te blokkearjen
|
||||
manage_custom_emojis: Lokale emoji’s beheare
|
||||
manage_custom_emojis_description: Stiet brûkers ta om lokale emoji’s op de server te behearen
|
||||
manage_federation: Federaasje beheare
|
||||
@ -695,6 +723,7 @@ fy:
|
||||
manage_taxonomies: Trends en hashtags beheare
|
||||
manage_taxonomies_description: Stiet brûkers ta om trending ynhâld te besjen en om hashtagynstellingen by te wurkjen
|
||||
manage_user_access: Brûkerstagong beheare
|
||||
manage_user_access_description: Stiet brûkers ta om twa-stapsferifikaasje fan oare brûkers út te skeakeljen, om harren e-mailadres te wizigjen en om harren wachtwurd opnij yn te stellen
|
||||
manage_users: Brûkers beheare
|
||||
manage_users_description: Stiet brûkers ta om brûkersdetails fan oaren te besjen en moderaasjemaatregelen tsjin harren te nimmen
|
||||
manage_webhooks: Webhooks beheare
|
||||
@ -769,6 +798,7 @@ fy:
|
||||
destroyed_msg: Fuortsmiten website-oplaad slagge!
|
||||
software_updates:
|
||||
critical_update: Krityk — fernij sa gau as mooglik
|
||||
description: It wurdt oanrekommandearre om jo Mastodon-ynstallaasje by-de-tiid te hâlden om gebrûk meitsje te kinnen fan de nijste oplossingen en funksjes. Boppe dat is it somtiden krúsjaal om Mastodon tidich by te wurkjen om feiligheidsproblemen foar te kommen. Om dizze redenen kontrolearret Mastodon elke 30 minuten fernijingen en bringt jo hjirfan op de hichte neffens jo foarkarren foar e-mailmeldingen.
|
||||
documentation_link: Mear ynfo
|
||||
release_notes: Utjefte-opmerkingen
|
||||
title: Beskikbere fernijingen
|
||||
@ -855,16 +885,39 @@ fy:
|
||||
action: Klik hjir foar mear ynformaasje
|
||||
message_html: "<strong>Jo objektûnthâld is ferkeard konfigurearre. De privacy fan jo brûkers is yn gefaar.</strong>"
|
||||
tags:
|
||||
moderation:
|
||||
not_trendable: Net trendber
|
||||
not_usable: Net brûkber
|
||||
pending_review: Moat noch beoardiele wurde
|
||||
review_requested: Beoardieling oanfrege
|
||||
reviewed: Beoardiele
|
||||
title: Status
|
||||
trendable: Trendber
|
||||
unreviewed: Net beoardiele
|
||||
usable: Brûkber
|
||||
name: Namme
|
||||
newest: Nijste
|
||||
oldest: Aldste
|
||||
open: Yn it iepenbier besjen
|
||||
reset: Opnij ynstelle
|
||||
review: Steat beoardiele
|
||||
search: Sykje
|
||||
title: Hashtags
|
||||
updated_msg: Hashtagynstellingen mei sukses bywurke
|
||||
title: Behear
|
||||
trends:
|
||||
allow: Tastean
|
||||
approved: Goedkarre
|
||||
confirm_allow: Binne jo wis dat jo de selektearre hashtags tastean wolle?
|
||||
confirm_disallow: Binne jo wis dat jo de selektearre hashtags ôfkarre wolle?
|
||||
disallow: Ofkarre
|
||||
links:
|
||||
allow: Keppeling goedkarre
|
||||
allow_provider: Auteur goedkarre
|
||||
confirm_allow: Binne jo wis dat jo de selektearre keppelingen tastean wolle?
|
||||
confirm_allow_provider: Binne jo wis dat jo de selektearre websites tastean wolle?
|
||||
confirm_disallow: Binne jo wis dat jo de selektearre keppelingen ôfkarre wolle?
|
||||
confirm_disallow_provider: Binne jo wis dat jo de selektearre providers ôfkarre wolle?
|
||||
description_html: Dit binne keppelingen dy’t op dit stuit in protte dield wurde troch accounts wêr’t jo server berjochten fan ûntfangt. Hjirtroch kinne jo brûkers sjen wat der yn de wrâld oan de hân is. Der wurde gjin keppelingen werjûn oant jo de website goedkard hawwe. Jo kinne ek yndividuele keppelingen goed- of ôfkarre.
|
||||
disallow: Keppeling ôfkarre
|
||||
disallow_provider: Website ôfkarre
|
||||
@ -888,6 +941,10 @@ fy:
|
||||
statuses:
|
||||
allow: Berjocht goedkarre
|
||||
allow_account: Account goedkarre
|
||||
confirm_allow: Binne jo wis dat jo de selektearre statussen ofkarre wolle?
|
||||
confirm_allow_account: Binne jo wis dat jo de selektearre accounts tastean wolle?
|
||||
confirm_disallow: Binne jo wis dat jo de selektearre statussen ôfkarre wolle?
|
||||
confirm_disallow_account: Binne jo wis dat jo de selektearre accounts ôfkarre wolle?
|
||||
description_html: Dit binne berjochten dy’t op jo server bekend binne en dy’t op dit stuit in protte dield wurde en as favoryt markearre wurde. Hjirmei kinne nije en weromkearende brûkers mear minsken fine om te folgjen. Der wurde gjin berjochten yn it iepenbier werjûn oant de account troch jo goedkard is en de brûker tastiet dat harren account oan oaren oanrekommandearre wurdt. Jo kinne ek yndividuele berjochten goed- of ôfkarre.
|
||||
disallow: Berjocht ôfkarre
|
||||
disallow_account: Account ôfkarre
|
||||
@ -920,6 +977,7 @@ fy:
|
||||
used_by_over_week:
|
||||
one: Dizze wike troch ien persoan brûkt
|
||||
other: Dizze wike troch %{count} persoanen brûkt
|
||||
title: Oanrekommandaasjes & trends
|
||||
trending: Trending
|
||||
warning_presets:
|
||||
add_new: Nije tafoegje
|
||||
@ -1004,7 +1062,9 @@ fy:
|
||||
guide_link_text: Elkenien kin bydrage.
|
||||
sensitive_content: Gefoelige ynhâld
|
||||
application_mailer:
|
||||
notification_preferences: E-mailynstellingen wizigje
|
||||
salutation: "%{name},"
|
||||
settings: 'E-mailfoarkarren wizigje: %{link}'
|
||||
unsubscribe: Ofmelde
|
||||
view: 'Besjoch:'
|
||||
view_profile: Profyl besjen
|
||||
@ -1024,6 +1084,7 @@ fy:
|
||||
hint_html: Noch ien ding! Jo moatte befêstigje dat jo in minske binne (dit is om de spam bûten de doar te hâlden!). Los de ûndersteande CAPTCHA op en klik op ‘Trochgean’.
|
||||
title: Befeiligingskontrôle
|
||||
confirmations:
|
||||
awaiting_review: Jo e-mailadres is befêstige! De %{domain}-meiwurkers binne no dwaande mei it besjen fan jo registraasje. Jo ûntfange in e-mailberjocht as de jo account goedkarre!
|
||||
awaiting_review_title: Jo registraasje wurdt beoardield
|
||||
clicking_this_link: klik op dizze keppeling
|
||||
login_link: oanmelde
|
||||
@ -1031,6 +1092,7 @@ fy:
|
||||
redirect_to_app_html: Jo soene omlaad wêze moatte nei de <strong>%{app_name}</strong> app. As dat net bard is, probearje dan %{clicking_this_link} of kear hânmjittich werom nei de app.
|
||||
registration_complete: Jo registraasje op %{domain} is no foltôge!
|
||||
welcome_title: Wolkom, %{name}!
|
||||
wrong_email_hint: As it e-mailadres net korrekt is, kinne jo dat wizigje yn de accountynstellingen.
|
||||
delete_account: Account fuortsmite
|
||||
delete_account_html: Wannear’t jo jo account graach fuortsmite wolle, kinne jo dat <a href="%{path}">hjir dwaan</a>. Wy freegje jo dêr om in befêstiging.
|
||||
description:
|
||||
@ -1051,6 +1113,7 @@ fy:
|
||||
or_log_in_with: Of oanmelde mei
|
||||
privacy_policy_agreement_html: Ik haw it <a href="%{privacy_policy_path}" target="_blank">privacybelied</a> lêzen en gean dêrmei akkoard
|
||||
progress:
|
||||
confirm: E-mailadres werhelje
|
||||
details: Jo gegevens
|
||||
review: Us beoardieling
|
||||
rules: Regels akseptearje
|
||||
@ -1072,8 +1135,10 @@ fy:
|
||||
security: Befeiliging
|
||||
set_new_password: Nij wachtwurd ynstelle
|
||||
setup:
|
||||
email_below_hint_html: Kontrolearje jo map Net-winske, of freegje in nije befêstigingskeppeling oan. Jo kinne jo e-mailadres wizigje as it ferkeard is.
|
||||
email_settings_hint_html: Klik op de keppeling dy’t wy jo stjoerd hawwe om %{email} te ferifiearjen. Wy wachtsje wol even.
|
||||
link_not_received: Gjin keppeling krigen?
|
||||
new_confirmation_instructions_sent: Jo ûntfange binnen inkelde minuten in nij e-mailberjocht mei de befêstigingskeppeling!
|
||||
title: Kontrolearje jo Postfek YN
|
||||
sign_in:
|
||||
preamble_html: Meld jo oan mei de oanmeldgegevens fan <strong>%{domain}</strong>. As jo account op in oare server stiet, kinne jo hjir net oanmelde.
|
||||
@ -1084,7 +1149,9 @@ fy:
|
||||
title: Litte wy jo account op %{domain} ynstelle.
|
||||
status:
|
||||
account_status: Accountsteat
|
||||
confirming: Oan it wachtsjen oant it e-mailadres befêstige is.
|
||||
functional: Jo account kin folslein brûkt wurde.
|
||||
pending: Jo oanfraach moat noch beoardiele wurde troch ien fan ús meiwurkers. Dit kin miskien efkes duorje. Jo ûntfangt in e-mailberjocht wannear’t jo oanfraach goedkard is.
|
||||
redirecting_to: Jo account is ynaktyf, omdat it op dit stuit trochferwezen wurdt nei %{acct}.
|
||||
self_destruct: Omdat %{domain} sluten sil, krije jo mar beheind tagong ta jo account.
|
||||
view_strikes: Besjoch de earder troch moderatoaren fêststelde skeiningen dy’t jo makke hawwe
|
||||
@ -1127,6 +1194,9 @@ fy:
|
||||
before: 'Lês dizze tekst soarchfâldich eardat jo troch gean:'
|
||||
caches: Berjochten en media dy’t op oare servers bewarre binne kinne dêr efterbliuwe
|
||||
data_removal: Jo berjochten en oare gegevens wurde permanint fuortmiten
|
||||
email_change_html: Jo kinne <a href="%{path}">jo e-mailadres wizigje</a> sûnder dat jo jo account fuort hoege te smiten
|
||||
email_contact_html: Wannear’t it noch hieltyd net oankomt, kinne jo foar help in e-mailberjocht stjoere nei <a href="mailto:%{email}">%{email}</a>
|
||||
email_reconfirmation_html: Wannear’t jo it befêstigings-e-mailberjocht net ûntfongen hawwe, kinne jo dizze <a href="%{path}">opnij oanfreegje</a>
|
||||
irreversible: Jo sille net yn steat wêze om jo account te werstellen of te de-aktivearjen
|
||||
more_details_html: Sjoch it <a href="%{terms_path}">privacybelied</a> foar mear ynformaasje.
|
||||
username_available: Jo brûkersnamme sil wer beskikber komme
|
||||
@ -1359,6 +1429,7 @@ fy:
|
||||
authentication_methods:
|
||||
otp: twa-stapsferifikaasje-app
|
||||
password: wachtwurd
|
||||
sign_in_token: befeiligingskoade fia e-mailberjocht
|
||||
webauthn: befeiligingskaaien
|
||||
description_html: Wannear’t jo aktiviteit sjogge dy’t jo net werkenne, tink dan nei om jo wachtwurd te wizigjen en twa-stapsferifikaasje yn te skeakeljen.
|
||||
empty: Gjin oanmeldskiednis beskikber
|
||||
@ -1369,6 +1440,16 @@ fy:
|
||||
unsubscribe:
|
||||
action: Ja, ôfmelde
|
||||
complete: Ofmelden
|
||||
confirmation_html: Binne jo wis dat jo jo ôfmelde wolle foar it ûntfangen fan %{type} fan Mastodon op %{domain} op jo e-mailadres %{email}? Jo kinne jo altyd opnij abonnearje yn jo <a href="%{settings_path}">ynstellingen foar e-mailmeldingen</a>.
|
||||
emails:
|
||||
notification_emails:
|
||||
favourite: e-mailmeldingen foar favoriten
|
||||
follow: e-mailmeldingen foar nije folgers
|
||||
follow_request: e-mailmeldingen foar folchfersiken
|
||||
mention: e-mailmeldingen foar fermeldingen
|
||||
reblog: e-mailmeldingen foar boosts
|
||||
resubscribe_html: As jo jo mei fersin ôfmeld hawwe, kinne jo jo opnij abonnearje yn jo <a href="%{settings_path}">ynstellingen foar e-mailmeldingen</a>.
|
||||
success_html: Jo ûntfange net langer %{type} fan Mastodon op %{domain} op jo e-mailadres %{email}.
|
||||
title: Ofmelde
|
||||
media_attachments:
|
||||
validations:
|
||||
@ -1449,6 +1530,8 @@ fy:
|
||||
update:
|
||||
subject: "%{name} hat in berjocht bewurke"
|
||||
notifications:
|
||||
administration_emails: E-mailmeldingen behearder
|
||||
email_events: E-mailmeldingen foar eveneminten
|
||||
email_events_hint: 'Selektearje eveneminten wêrfoar’t jo meldingen ûntfange wolle:'
|
||||
number:
|
||||
human:
|
||||
@ -1607,6 +1690,7 @@ fy:
|
||||
import: Ymportearje
|
||||
import_and_export: Ymportearje en eksportearje
|
||||
migrate: Accountmigraasje
|
||||
notifications: E-mailmeldingen
|
||||
preferences: Ynstellingen
|
||||
profile: Profyl
|
||||
relationships: Folgers en folgjenden
|
||||
@ -1853,6 +1937,7 @@ fy:
|
||||
invalid_otp_token: Unjildige twa-stapstagongskoade
|
||||
otp_lost_help_html: As jo tagong ta beide kwytrekke binne, nim dan kontakt op fia %{email}
|
||||
rate_limited: Te folle autentikaasjebesykjen, probearje it letter opnij.
|
||||
seamless_external_login: Jo binne oanmeld fia in eksterne tsjinst, dêrom binne wachtwurden en e-mailynstellingen net beskikber.
|
||||
signed_in_as: 'Oanmeld as:'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Tip:</strong> De keppeling op jo website kin ûnsichtber wêze. It wichtige part is <code>rel="me"</code> dat ympersonaasje op websites mei user-generated ynhâld foarkomt. Jo kinne sels in <code>link</code>-label brûke yn de header fan de side yn stee fan <code>a</code>, mar de HTML moat ek sûnder JavaScript tagonklik wêze.
|
||||
|
@ -1454,6 +1454,7 @@ gl:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Non podes anexar un vídeo a unha publicación que xa contén imaxes
|
||||
not_found: Non se atopou o multimedia %{ids} ou xa é adxunto noutra publicación
|
||||
not_ready: Non se poden anexar ficheiros que aínda se están a procesar. Agarda un intre!
|
||||
too_many: Non pode anexar máis de 4 ficheiros
|
||||
migrations:
|
||||
|
@ -661,6 +661,7 @@ ia:
|
||||
delete_data_html: Deler le profilo e contento de <strong>@%{acct}</strong> in 30 dies excepte si le suspension es disfacite intertanto
|
||||
preview_preamble_html: "<strong>@%{acct}</strong> recipera un advertimento con le sequente contento:"
|
||||
record_strike_html: Registra un sanction contra <strong>@%{acct}</strong> pro adjutar te a prender mesuras adequate in caso de futur violationes committite desde iste conto
|
||||
send_email_html: Inviar un e-mail de advertimento a <strong>@%{acct}</strong>
|
||||
warning_placeholder: Motivation supplementari facultative pro le action de moderation.
|
||||
target_origin: Origine del conto reportate
|
||||
title: Reportos
|
||||
@ -700,6 +701,7 @@ ia:
|
||||
manage_appeals: Gerer appellos
|
||||
manage_appeals_description: Permitte que usatores revide appellos contra actiones de moderation
|
||||
manage_blocks: Gerer blocadas
|
||||
manage_blocks_description: Permitter que usatores bloca le fornitores de e-mail e le adresses IP
|
||||
manage_custom_emojis: Gerer emojis personalisate
|
||||
manage_custom_emojis_description: Permitte que usatores gere emojis personalisate sur le servitor
|
||||
manage_federation: Gerer federation
|
||||
@ -717,6 +719,7 @@ ia:
|
||||
manage_taxonomies: Gerer taxonomias
|
||||
manage_taxonomies_description: Permitte que usatores revide contento in tendentias e actualisa le parametros de hashtag
|
||||
manage_user_access: Gerer le accesso de usatores
|
||||
manage_user_access_description: Permitte que usatores disactiva le authentication bifactorial de altere usatores, cambia lor adresses de e-mail, e reinitialisa lor contrasigno
|
||||
manage_users: Gerer usatores
|
||||
manage_users_description: Permitte que usatores vide le detalios de altere usatores e exeque actiones de moderation contra illes
|
||||
manage_webhooks: Gerer Webhooks
|
||||
@ -791,6 +794,7 @@ ia:
|
||||
destroyed_msg: Le file incargate al sito ha essite delite!
|
||||
software_updates:
|
||||
critical_update: Critic – per favor, actualisa rapidemente
|
||||
description: Il es recommendate mantener tu installation de Mastodon actualisate pro beneficiar del ultime reparationes e functiones. In ultra, de tempore a tempore, il es de importantia critic actualisar Mastodon in tempore utile pro evitar problemas de securitate. Pro iste rationes, Mastodon verifica le presentia de actualisationes cata 30 minutas, e te notificara secundo tu preferentias de notification in e-mail.
|
||||
documentation_link: Pro saper plus
|
||||
release_notes: Notas de version
|
||||
title: Actualisationes disponibile
|
||||
@ -878,6 +882,7 @@ ia:
|
||||
message_html: "<strong>Tu immagazinage de objectos es mal configurate. Le confidentialitate de tu usatores es in risco.</strong>"
|
||||
tags:
|
||||
moderation:
|
||||
not_trendable: Non pro tendentia
|
||||
pending_review: Attende revision
|
||||
title: Stato
|
||||
name: Nomine
|
||||
|
@ -1456,6 +1456,7 @@ it:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Impossibile allegare video a un post che contiene già immagini
|
||||
not_found: Media %{ids} non trovato o già collegato a un altro post
|
||||
not_ready: Impossibile allegare file per cui l'elaborazione non è finita. Riprova tra poco!
|
||||
too_many: Impossibile allegare più di 4 file
|
||||
migrations:
|
||||
|
@ -1430,6 +1430,7 @@ ko:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부할 수 없습니다.
|
||||
not_found: 미디어 %{ids}는 찾을 수 없거나 이미 다른 게시물에 첨부되었습니다
|
||||
not_ready: 처리가 끝나지 않은 파일은 첨부할 수 없습니다. 잠시 후에 다시 시도해 주세요!
|
||||
too_many: 최대 4개까지 첨부할 수 있습니다
|
||||
migrations:
|
||||
|
@ -941,6 +941,7 @@ lt:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką
|
||||
not_found: Medija %{ids} nerasta arba jau pridėta prie kito įrašo.
|
||||
too_many: Negalima pridėti daugiau nei 4 failų
|
||||
migrations:
|
||||
acct: Perkelta į
|
||||
|
@ -1454,6 +1454,7 @@ nl:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Een video kan niet aan een bericht met afbeeldingen worden gekoppeld
|
||||
not_found: Media %{ids} niet gevonden of al toegevoegd aan een ander bericht
|
||||
not_ready: Kan geen bestanden toevoegen die nog niet zijn verwerkt. Probeer het later opnieuw!
|
||||
too_many: Er kunnen niet meer dan 4 afbeeldingen toegevoegd worden
|
||||
migrations:
|
||||
|
@ -1506,6 +1506,7 @@ pl:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Nie możesz załączyć pliku wideo do wpisu, który zawiera już zdjęcia
|
||||
not_found: Nie znaleziono mediów %{ids}, lub są już dołączone do innego wpisu
|
||||
not_ready: Nie można załączyć plików których przetwarzanie nie zostało ukończone. Spróbuj ponownie za chwilę!
|
||||
too_many: Nie możesz załączyć więcej niż 4 plików
|
||||
migrations:
|
||||
|
@ -314,6 +314,7 @@ fy:
|
||||
listable: Tastean dat dizze hashtag yn sykopdrachten en oanrekommandaasjes te sjen is
|
||||
name: Hashtag
|
||||
trendable: Goedkarre dat dizze hashtag ûnder trends te sjen is
|
||||
usable: Berjochten tastean dizze hashtag lokaal te brûken
|
||||
user:
|
||||
role: Rol
|
||||
time_zone: Tiidsône
|
||||
|
@ -1446,6 +1446,7 @@ sq:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: S’mund të bashkëngjitet video te një gjendje që përmban figura tashmë
|
||||
not_found: S’u gjet media %{ids}, ose është bashkëngjitur tashmë një tjetër postimi
|
||||
not_ready: S’mund të bashkëngjiten kartela që s’kanë përfunduar së përpunuari. Riprovoni pas një çasti!
|
||||
too_many: S’mund të bashkëngjiten më shumë se 4 kartela
|
||||
migrations:
|
||||
|
@ -1506,6 +1506,7 @@ uk:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Не можна додати відео до допису з зображеннями
|
||||
not_found: Медіа %{ids} не знайдено або вже прикріплено до іншого допису
|
||||
not_ready: Не можна прикріпити файли, оброблення яких ще не закінчилося. Спробуйте ще раз через хвилину!
|
||||
too_many: Не можна додати більше 4 файлів
|
||||
migrations:
|
||||
|
@ -1428,6 +1428,7 @@ vi:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Không thể đính kèm video vào tút đã chứa hình ảnh
|
||||
not_found: Không tìm thấy %{ids} hoặc nó đã bị đính kèm với tút khác
|
||||
not_ready: Tập tin này vẫn chưa xử lý xong. Hãy thử lại sau!
|
||||
too_many: Không thể đính kèm hơn 4 tệp
|
||||
migrations:
|
||||
|
@ -1430,6 +1430,7 @@ zh-TW:
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: 無法於已有圖片之嘟文中加入影片
|
||||
not_found: 找不到多媒體 %{ids} 或已附加於另一嘟文中
|
||||
not_ready: 修但幾勒!不能附加未完成處理的檔案欸,咁按呢?
|
||||
too_many: 無法加入超過 4 個檔案
|
||||
migrations:
|
||||
|
@ -1,22 +0,0 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Your secret key is used for verifying the integrity of signed cookies.
|
||||
# If you change this key, all old signed cookies will become invalid!
|
||||
|
||||
# Make sure the secret is at least 30 characters and all random,
|
||||
# no regular words or you'll be exposed to dictionary attacks.
|
||||
# You can use `rails secret` to generate a secure secret key.
|
||||
|
||||
# Make sure the secrets in this file are kept private
|
||||
# if you're sharing your code publicly.
|
||||
|
||||
development:
|
||||
secret_key_base: d4398e4af52f1fc5be5c3c8764e9ecce7beac5462826cb8b649373b2aad5a0f133598ed817c4e9931e943041460d6b6eda40a854e825e1bbd510c4594b1538f2
|
||||
|
||||
test:
|
||||
secret_key_base: 5be187ddbd651211a906f9aa399f4a148edf6e06b971c7c0b5429b9483df6e21d262cc846447d0f89b89c32d56a99e151039df5dd874ede7f712afbe041a9269
|
||||
|
||||
# Do not keep production secrets in the repository,
|
||||
# instead read values from the environment.
|
||||
production:
|
||||
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
@ -21,6 +21,34 @@ describe JsonLdHelper do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#uri_from_bearcap' do
|
||||
subject { helper.uri_from_bearcap(string) }
|
||||
|
||||
context 'when a bear string has a u param' do
|
||||
let(:string) { 'bear:?t=TOKEN&u=https://example.com/foo' }
|
||||
|
||||
it 'returns the value from the u query param' do
|
||||
expect(subject).to eq('https://example.com/foo')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a bear string does not have a u param' do
|
||||
let(:string) { 'bear:?t=TOKEN&h=https://example.com/foo' }
|
||||
|
||||
it 'returns nil' do
|
||||
expect(subject).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a non-bear string' do
|
||||
let(:string) { 'http://example.com' }
|
||||
|
||||
it 'returns the string' do
|
||||
expect(subject).to eq('http://example.com')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#first_of_value' do
|
||||
context 'when value.is_a?(Array)' do
|
||||
it 'returns value.first' do
|
||||
|
@ -23,12 +23,6 @@ describe StatusesHelper do
|
||||
end
|
||||
end
|
||||
|
||||
def status_text_summary(status)
|
||||
return if status.spoiler_text.blank?
|
||||
|
||||
I18n.t('statuses.content_warning', warning: status.spoiler_text)
|
||||
end
|
||||
|
||||
describe 'fa_visibility_icon' do
|
||||
context 'with a status that is public' do
|
||||
let(:status) { Status.new(visibility: 'public') }
|
||||
|
16
spec/lib/annual_report_spec.rb
Normal file
16
spec/lib/annual_report_spec.rb
Normal file
@ -0,0 +1,16 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe AnnualReport do
|
||||
describe '#generate' do
|
||||
subject { described_class.new(account, Time.zone.now.year) }
|
||||
|
||||
let(:account) { Fabricate :account }
|
||||
|
||||
it 'builds a report for an account' do
|
||||
expect { subject.generate }
|
||||
.to change(GeneratedAnnualReport, :count).by(1)
|
||||
end
|
||||
end
|
||||
end
|
@ -114,10 +114,11 @@ describe '/api/v1/accounts' do
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
json = body_as_json
|
||||
|
||||
expect(json[:following]).to be true
|
||||
expect(json[:requested]).to be false
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
following: true,
|
||||
requested: false
|
||||
)
|
||||
|
||||
expect(user.account.following?(other_account)).to be true
|
||||
end
|
||||
@ -133,10 +134,11 @@ describe '/api/v1/accounts' do
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
json = body_as_json
|
||||
|
||||
expect(json[:following]).to be false
|
||||
expect(json[:requested]).to be true
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
following: false,
|
||||
requested: true
|
||||
)
|
||||
|
||||
expect(user.account.requested?(other_account)).to be true
|
||||
end
|
||||
|
@ -96,10 +96,11 @@ RSpec.describe 'Canonical Email Blocks' do
|
||||
subject
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
json = body_as_json
|
||||
|
||||
expect(json[:id]).to eq(canonical_email_block.id.to_s)
|
||||
expect(json[:canonical_email_hash]).to eq(canonical_email_block.canonical_email_hash)
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
id: eq(canonical_email_block.id.to_s),
|
||||
canonical_email_hash: eq(canonical_email_block.canonical_email_hash)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -133,10 +133,8 @@ RSpec.describe 'Domain Blocks' do
|
||||
it 'creates a domain block with the expected domain name and severity', :aggregate_failures do
|
||||
subject
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(body).to match a_hash_including(
|
||||
expect(body_as_json).to match a_hash_including(
|
||||
{
|
||||
domain: 'foo.bar.com',
|
||||
severity: 'silence',
|
||||
@ -156,10 +154,8 @@ RSpec.describe 'Domain Blocks' do
|
||||
it 'creates a domain block with the expected domain name and severity', :aggregate_failures do
|
||||
subject
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(body).to match a_hash_including(
|
||||
expect(body_as_json).to match a_hash_including(
|
||||
{
|
||||
domain: 'foo.bar.com',
|
||||
severity: 'suspend',
|
||||
|
@ -88,10 +88,12 @@ RSpec.describe 'IP Blocks' do
|
||||
subject
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
json = body_as_json
|
||||
|
||||
expect(json[:ip]).to eq("#{ip_block.ip}/#{ip_block.ip.prefix}")
|
||||
expect(json[:severity]).to eq(ip_block.severity.to_s)
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
ip: eq("#{ip_block.ip}/#{ip_block.ip.prefix}"),
|
||||
severity: eq(ip_block.severity.to_s)
|
||||
)
|
||||
end
|
||||
|
||||
context 'when ip block does not exist' do
|
||||
@ -118,11 +120,12 @@ RSpec.describe 'IP Blocks' do
|
||||
subject
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
json = body_as_json
|
||||
|
||||
expect(json[:ip]).to eq("#{params[:ip]}/32")
|
||||
expect(json[:severity]).to eq(params[:severity])
|
||||
expect(json[:comment]).to eq(params[:comment])
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
ip: eq("#{params[:ip]}/32"),
|
||||
severity: eq(params[:severity]),
|
||||
comment: eq(params[:comment])
|
||||
)
|
||||
end
|
||||
|
||||
context 'when the required ip param is not provided' do
|
||||
|
@ -61,9 +61,10 @@ RSpec.describe 'Apps' do
|
||||
expect(response).to have_http_status(200)
|
||||
expect(Doorkeeper::Application.find_by(name: client_name)).to be_present
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body[:scopes]).to eq Doorkeeper.config.default_scopes.to_a
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
scopes: Doorkeeper.config.default_scopes.to_a
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -81,9 +82,10 @@ RSpec.describe 'Apps' do
|
||||
expect(app).to be_present
|
||||
expect(app.scopes.to_s).to eq 'read'
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body[:scopes]).to eq ['read']
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
scopes: %w(read)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -163,10 +165,11 @@ RSpec.describe 'Apps' do
|
||||
expect(app.redirect_uri).to eq redirect_uris
|
||||
expect(app.redirect_uris).to eq redirect_uris.split
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body[:redirect_uri]).to eq redirect_uris
|
||||
expect(body[:redirect_uris]).to eq redirect_uris.split
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
redirect_uri: redirect_uris,
|
||||
redirect_uris: redirect_uris.split
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -184,10 +187,11 @@ RSpec.describe 'Apps' do
|
||||
expect(app.redirect_uri).to eq redirect_uris.join "\n"
|
||||
expect(app.redirect_uris).to eq redirect_uris
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body[:redirect_uri]).to eq redirect_uris.join "\n"
|
||||
expect(body[:redirect_uris]).to eq redirect_uris
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
redirect_uri: redirect_uris.join("\n"),
|
||||
redirect_uris: redirect_uris
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -55,10 +55,8 @@ RSpec.describe 'Blocks' do
|
||||
it 'queries the blocks in range according to max_id', :aggregate_failures do
|
||||
subject
|
||||
|
||||
response_body = body_as_json
|
||||
|
||||
expect(response_body.size).to be 1
|
||||
expect(response_body[0][:id]).to eq(blocks[0].target_account.id.to_s)
|
||||
expect(body_as_json)
|
||||
.to contain_exactly(include(id: blocks.first.target_account.id.to_s))
|
||||
end
|
||||
end
|
||||
|
||||
@ -68,10 +66,8 @@ RSpec.describe 'Blocks' do
|
||||
it 'queries the blocks in range according to since_id', :aggregate_failures do
|
||||
subject
|
||||
|
||||
response_body = body_as_json
|
||||
|
||||
expect(response_body.size).to be 1
|
||||
expect(response_body[0][:id]).to eq(blocks[2].target_account.id.to_s)
|
||||
expect(body_as_json)
|
||||
.to contain_exactly(include(id: blocks[2].target_account.id.to_s))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -37,9 +37,7 @@ RSpec.describe 'FeaturedTags' do
|
||||
it 'returns an empty body' do
|
||||
get '/api/v1/featured_tags', headers: headers
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body).to be_empty
|
||||
expect(body_as_json).to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
@ -49,10 +47,10 @@ RSpec.describe 'FeaturedTags' do
|
||||
it 'returns only the featured tags belonging to the requesting user' do
|
||||
get '/api/v1/featured_tags', headers: headers
|
||||
|
||||
body = body_as_json
|
||||
expected_ids = user_featured_tags.pluck(:id).map(&:to_s)
|
||||
|
||||
expect(body.pluck(:id)).to match_array(expected_ids)
|
||||
expect(body_as_json.pluck(:id))
|
||||
.to match_array(
|
||||
user_featured_tags.pluck(:id).map(&:to_s)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -69,9 +67,10 @@ RSpec.describe 'FeaturedTags' do
|
||||
it 'returns the correct tag name' do
|
||||
post '/api/v1/featured_tags', headers: headers, params: params
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body[:name]).to eq(params[:name])
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
name: params[:name]
|
||||
)
|
||||
end
|
||||
|
||||
it 'creates a new featured tag for the requesting user' do
|
||||
@ -142,9 +141,7 @@ RSpec.describe 'FeaturedTags' do
|
||||
it 'returns an empty body' do
|
||||
delete "/api/v1/featured_tags/#{id}", headers: headers
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body).to be_empty
|
||||
expect(body_as_json).to be_empty
|
||||
end
|
||||
|
||||
it 'deletes the featured tag', :inline_jobs do
|
||||
|
@ -17,13 +17,12 @@ RSpec.describe 'API Markers' do
|
||||
end
|
||||
|
||||
it 'returns markers', :aggregate_failures do
|
||||
json = body_as_json
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json.key?(:home)).to be true
|
||||
expect(json[:home][:last_read_id]).to eq '123'
|
||||
expect(json.key?(:notifications)).to be true
|
||||
expect(json[:notifications][:last_read_id]).to eq '456'
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
home: include(last_read_id: '123'),
|
||||
notifications: include(last_read_id: '456')
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -58,10 +58,8 @@ RSpec.describe 'Mutes' do
|
||||
it 'queries mutes in range according to max_id', :aggregate_failures do
|
||||
subject
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body.size).to eq 1
|
||||
expect(body[0][:id]).to eq mutes[0].target_account_id.to_s
|
||||
expect(body_as_json)
|
||||
.to contain_exactly(include(id: mutes.first.target_account_id.to_s))
|
||||
end
|
||||
end
|
||||
|
||||
@ -71,10 +69,8 @@ RSpec.describe 'Mutes' do
|
||||
it 'queries mutes in range according to since_id', :aggregate_failures do
|
||||
subject
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body.size).to eq 1
|
||||
expect(body[0][:id]).to eq mutes[1].target_account_id.to_s
|
||||
expect(body_as_json)
|
||||
.to contain_exactly(include(id: mutes[1].target_account_id.to_s))
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -24,11 +24,14 @@ describe 'API V1 Statuses Reblogs' do
|
||||
|
||||
expect(user.account.reblogged?(status)).to be true
|
||||
|
||||
hash_body = body_as_json
|
||||
|
||||
expect(hash_body[:reblog][:id]).to eq status.id.to_s
|
||||
expect(hash_body[:reblog][:reblogs_count]).to eq 1
|
||||
expect(hash_body[:reblog][:reblogged]).to be true
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
reblog: include(
|
||||
id: status.id.to_s,
|
||||
reblogs_count: 1,
|
||||
reblogged: true
|
||||
)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -57,11 +60,12 @@ describe 'API V1 Statuses Reblogs' do
|
||||
|
||||
expect(user.account.reblogged?(status)).to be false
|
||||
|
||||
hash_body = body_as_json
|
||||
|
||||
expect(hash_body[:id]).to eq status.id.to_s
|
||||
expect(hash_body[:reblogs_count]).to eq 0
|
||||
expect(hash_body[:reblogged]).to be false
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
id: status.id.to_s,
|
||||
reblogs_count: 0,
|
||||
reblogged: false
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -81,11 +85,12 @@ describe 'API V1 Statuses Reblogs' do
|
||||
|
||||
expect(user.account.reblogged?(status)).to be false
|
||||
|
||||
hash_body = body_as_json
|
||||
|
||||
expect(hash_body[:id]).to eq status.id.to_s
|
||||
expect(hash_body[:reblogs_count]).to eq 0
|
||||
expect(hash_body[:reblogged]).to be false
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
id: status.id.to_s,
|
||||
reblogs_count: 0,
|
||||
reblogged: false
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -32,10 +32,8 @@ RSpec.describe 'Suggestions' do
|
||||
it 'returns accounts' do
|
||||
subject
|
||||
|
||||
body = body_as_json
|
||||
|
||||
expect(body.size).to eq 2
|
||||
expect(body.pluck(:id)).to match_array([bob, jeff].map { |i| i.id.to_s })
|
||||
expect(body_as_json)
|
||||
.to contain_exactly(include(id: bob.id.to_s), include(id: jeff.id.to_s))
|
||||
end
|
||||
|
||||
context 'with limit param' do
|
||||
|
@ -42,9 +42,11 @@ RSpec.describe 'API V2 Filters Keywords' do
|
||||
it 'creates a filter', :aggregate_failures do
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
json = body_as_json
|
||||
expect(json[:keyword]).to eq 'magic'
|
||||
expect(json[:whole_word]).to be false
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
keyword: 'magic',
|
||||
whole_word: false
|
||||
)
|
||||
|
||||
filter = user.account.custom_filters.first
|
||||
expect(filter).to_not be_nil
|
||||
@ -71,9 +73,11 @@ RSpec.describe 'API V2 Filters Keywords' do
|
||||
it 'responds with the keyword', :aggregate_failures do
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
json = body_as_json
|
||||
expect(json[:keyword]).to eq 'foo'
|
||||
expect(json[:whole_word]).to be false
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
keyword: 'foo',
|
||||
whole_word: false
|
||||
)
|
||||
end
|
||||
|
||||
context "when trying to access another user's filter keyword" do
|
||||
|
@ -43,8 +43,10 @@ RSpec.describe 'API V2 Filters Statuses' do
|
||||
it 'creates a filter', :aggregate_failures do
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
json = body_as_json
|
||||
expect(json[:status_id]).to eq status.id.to_s
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
status_id: status.id.to_s
|
||||
)
|
||||
|
||||
filter = user.account.custom_filters.first
|
||||
expect(filter).to_not be_nil
|
||||
@ -71,8 +73,10 @@ RSpec.describe 'API V2 Filters Statuses' do
|
||||
it 'responds with the filter', :aggregate_failures do
|
||||
expect(response).to have_http_status(200)
|
||||
|
||||
json = body_as_json
|
||||
expect(json[:status_id]).to eq status_filter.status_id.to_s
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
status_id: status_filter.status.id.to_s
|
||||
)
|
||||
end
|
||||
|
||||
context "when trying to access another user's filter keyword" do
|
||||
|
@ -58,12 +58,15 @@ RSpec.describe 'Filters' do
|
||||
it 'returns a filter with keywords', :aggregate_failures do
|
||||
subject
|
||||
|
||||
json = body_as_json
|
||||
|
||||
expect(json[:title]).to eq 'magic'
|
||||
expect(json[:filter_action]).to eq 'hide'
|
||||
expect(json[:context]).to eq ['home']
|
||||
expect(json[:keywords].map { |keyword| keyword.slice(:keyword, :whole_word) }).to match [{ keyword: 'magic', whole_word: true }]
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
title: 'magic',
|
||||
filter_action: 'hide',
|
||||
context: %w(home),
|
||||
keywords: contain_exactly(
|
||||
include(keyword: 'magic', whole_word: true)
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
it 'creates a filter', :aggregate_failures do
|
||||
|
@ -129,9 +129,11 @@ describe 'The /.well-known/webfinger endpoint' do
|
||||
end
|
||||
|
||||
it 'returns links for the internal account' do
|
||||
json = body_as_json
|
||||
expect(json[:subject]).to eq 'acct:mastodon.internal@cb6e6126.ngrok.io'
|
||||
expect(json[:aliases]).to eq ['https://cb6e6126.ngrok.io/actor']
|
||||
expect(body_as_json)
|
||||
.to include(
|
||||
subject: 'acct:mastodon.internal@cb6e6126.ngrok.io',
|
||||
aliases: ['https://cb6e6126.ngrok.io/actor']
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -34,7 +34,7 @@ RSpec.describe PostStatusService do
|
||||
|
||||
it 'schedules a status for future creation and does not create one immediately' do
|
||||
media = Fabricate(:media_attachment, account: account)
|
||||
status = subject.call(account, text: 'Hi future!', media_ids: [media.id], scheduled_at: future)
|
||||
status = subject.call(account, text: 'Hi future!', media_ids: [media.id.to_s], scheduled_at: future)
|
||||
|
||||
expect(status)
|
||||
.to be_a(ScheduledStatus)
|
||||
@ -42,7 +42,7 @@ RSpec.describe PostStatusService do
|
||||
scheduled_at: eq(future),
|
||||
params: include(
|
||||
'text' => eq('Hi future!'),
|
||||
'media_ids' => contain_exactly(media.id)
|
||||
'media_ids' => contain_exactly(media.id.to_s)
|
||||
)
|
||||
)
|
||||
expect(media.reload.status).to be_nil
|
||||
@ -219,7 +219,7 @@ RSpec.describe PostStatusService do
|
||||
status = subject.call(
|
||||
account,
|
||||
text: 'test status update',
|
||||
media_ids: [media.id]
|
||||
media_ids: [media.id.to_s]
|
||||
)
|
||||
|
||||
expect(media.reload.status).to eq status
|
||||
@ -233,7 +233,7 @@ RSpec.describe PostStatusService do
|
||||
subject.call(
|
||||
account,
|
||||
text: 'test status update',
|
||||
media_ids: [media.id]
|
||||
media_ids: [media.id.to_s]
|
||||
)
|
||||
end.to raise_error(
|
||||
Mastodon::ValidationError,
|
||||
@ -249,7 +249,7 @@ RSpec.describe PostStatusService do
|
||||
subject.call(
|
||||
account,
|
||||
text: 'test status update',
|
||||
media_ids: Array.new(2) { Fabricate(:media_attachment, account: account) }.map(&:id)
|
||||
media_ids: Array.new(2) { Fabricate(:media_attachment, account: account) }.map { |m| m.id.to_s }
|
||||
)
|
||||
end.to raise_error(
|
||||
Mastodon::ValidationError,
|
||||
@ -271,7 +271,7 @@ RSpec.describe PostStatusService do
|
||||
media_ids: [
|
||||
video,
|
||||
image,
|
||||
].map(&:id)
|
||||
].map { |m| m.id.to_s }
|
||||
)
|
||||
end.to raise_error(
|
||||
Mastodon::ValidationError,
|
||||
|
@ -69,7 +69,7 @@ RSpec.describe UpdateStatusService do
|
||||
|
||||
before do
|
||||
status.media_attachments << detached_media_attachment
|
||||
subject.call(status, status.account_id, text: 'Foo', media_ids: [attached_media_attachment.id])
|
||||
subject.call(status, status.account_id, text: 'Foo', media_ids: [attached_media_attachment.id.to_s])
|
||||
end
|
||||
|
||||
it 'updates media attachments' do
|
||||
@ -95,7 +95,7 @@ RSpec.describe UpdateStatusService do
|
||||
|
||||
before do
|
||||
status.media_attachments << media_attachment
|
||||
subject.call(status, status.account_id, text: 'Foo', media_ids: [media_attachment.id], media_attributes: [{ id: media_attachment.id, description: 'New description' }])
|
||||
subject.call(status, status.account_id, text: 'Foo', media_ids: [media_attachment.id.to_s], media_attributes: [{ id: media_attachment.id, description: 'New description' }])
|
||||
end
|
||||
|
||||
it 'does not detach media attachment' do
|
||||
|
Loading…
Reference in New Issue
Block a user