Followers-only post federation (#2111)
* Make private toots get PuSHed to subscription URLs that belong to domains where you have approved followers * Authorized followers controller, stub for bulk action * Soft block in the background * Add simple test for new controller * Rename Settings::FollowersController to Settings::FollowerDomainsController, paginate results, rename "private" post setting to "followers-only", fix pagination style, improve post privacy preferences style, improve warning style * Extract compose form warnings into own container, show warning when posting to followers-only with unlocked account
This commit is contained in:
@ -41,14 +41,14 @@ en:
|
||||
remote_follow: Remote follow
|
||||
unfollow: Unfollow
|
||||
activitypub:
|
||||
outbox:
|
||||
name: "%{account_name}'s Outbox"
|
||||
summary: "A collection of activities from user %{account_name}."
|
||||
activity:
|
||||
create:
|
||||
name: "%{account_name} created a note."
|
||||
announce:
|
||||
name: "%{account_name} announced an activity."
|
||||
create:
|
||||
name: "%{account_name} created a note."
|
||||
outbox:
|
||||
name: "%{account_name}'s Outbox"
|
||||
summary: A collection of activities from user %{account_name}.
|
||||
admin:
|
||||
accounts:
|
||||
are_you_sure: Are you sure?
|
||||
@ -227,6 +227,18 @@ en:
|
||||
follows: You follow
|
||||
mutes: You mute
|
||||
storage: Media storage
|
||||
followers:
|
||||
domain: Domain
|
||||
explanation_html: If you want to ensure the privacy of your statuses, you must be aware of who is following you. <strong>Your private statuses are delivered to all instances where you have followers</strong>. You may wish to review them, and remove followers if you do not trust your privacy to be respected by the staff or software of those instances.
|
||||
followers_count: Number of followers
|
||||
lock_link: Lock your account
|
||||
purge: Remove from followers
|
||||
success:
|
||||
one: In the process of soft-blocking followers from one domain...
|
||||
other: In the process of soft-blocking followers from %{count} domains...
|
||||
true_privacy_html: Please mind that <strong>true privacy can only be achieved with end-to-end encryption</strong>.
|
||||
unlocked_warning_html: Anyone can follow you to immediately view your private statuses. %{lock_link} to be able to review and reject followers.
|
||||
unlocked_warning_title: Your account is not locked
|
||||
generic:
|
||||
changes_saved_msg: Changes successfully saved!
|
||||
powered_by: powered by %{link}
|
||||
@ -286,6 +298,7 @@ en:
|
||||
back: Back to Mastodon
|
||||
edit_profile: Edit profile
|
||||
export: Data export
|
||||
followers: Authorized followers
|
||||
import: Import
|
||||
preferences: Preferences
|
||||
settings: Settings
|
||||
@ -295,9 +308,12 @@ en:
|
||||
over_character_limit: character limit of %{max} exceeded
|
||||
show_more: Show more
|
||||
visibilities:
|
||||
private: Only show to followers
|
||||
private: Followers-only
|
||||
private_long: Only show to followers
|
||||
public: Public
|
||||
unlisted: Public, but do not display on the public timeline
|
||||
public_long: Everyone can see
|
||||
unlisted: Unlisted
|
||||
unlisted_long: Everyone can see, but not listed on public timelines
|
||||
stream_entries:
|
||||
click_to_show: Click to show
|
||||
reblogged: boosted
|
||||
|
@ -39,6 +39,48 @@ nl:
|
||||
posts: Berichten
|
||||
remote_follow: Extern volgen
|
||||
unfollow: Ontvolgen
|
||||
admin:
|
||||
settings:
|
||||
click_to_edit: Klik om te bewerken
|
||||
contact_information:
|
||||
email: Vul een openbaar gebruikt e-mailadres in
|
||||
label: Contactgegevens
|
||||
username: Vul een gebruikersnaam in
|
||||
registrations:
|
||||
closed_message:
|
||||
desc_html: Wordt op de voorpagina weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld<br>En ook hier kan je HTML gebruiken
|
||||
title: Bericht wanneer registratie is uitgeschakeld
|
||||
open:
|
||||
disabled: Uitgeschakeld
|
||||
enabled: Ingeschakeld
|
||||
title: Open registratie
|
||||
setting: Instelling
|
||||
site_description:
|
||||
desc_html: Dit wordt als een alinea op de voorpagina getoond en gebruikt als meta-tag in de paginabron.<br>Je kan HTML gebruiken, zoals <code><a></code> en <code><em></code>.
|
||||
title: Omschrijving Mastodon-server
|
||||
site_description_extended:
|
||||
desc_html: Wordt op de uitgebreide informatiepagina weergegeven<br>Je kan ook hier HTML gebruiken
|
||||
title: Uitgebreide omschrijving Mastodon-server
|
||||
site_title: Naam Mastodon-server
|
||||
title: Server-instellingen
|
||||
admin.reports:
|
||||
comment:
|
||||
label: Opmerking
|
||||
none: Geen
|
||||
delete: Verwijderen
|
||||
id: ID
|
||||
mark_as_resolved: Markeer als opgelost
|
||||
report: 'Gerapporteerde toot #%{id}'
|
||||
reported_account: Gerapporteerde account
|
||||
reported_by: Gerapporteerd door
|
||||
resolved: Opgelost
|
||||
silence_account: Account stilzwijgen
|
||||
status: Toot
|
||||
suspend_account: Account blokkeren
|
||||
target: Target
|
||||
title: Gerapporteerde toots
|
||||
unresolved: Onopgelost
|
||||
view: Weergeven
|
||||
application_mailer:
|
||||
settings: 'E-mailvoorkeuren wijzigen: %{link}'
|
||||
signature: Mastodon-meldingen van %{instance}
|
||||
@ -74,6 +116,12 @@ nl:
|
||||
x_minutes: "%{count}m"
|
||||
x_months: "%{count}ma"
|
||||
x_seconds: "%{count}s"
|
||||
errors:
|
||||
'404': De pagina waarnaar jij op zoek bent bestaat niet.
|
||||
'410': De pagina waarnaar jij op zoek bent bestaat niet meer.
|
||||
'422':
|
||||
content: Veiligheidsverificatie mislukt. Blokkeer je toevallig cookies?
|
||||
title: Veiligheidsverificatie mislukt
|
||||
exports:
|
||||
blocks: Jij blokkeert
|
||||
csv: CSV
|
||||
@ -161,52 +209,3 @@ nl:
|
||||
users:
|
||||
invalid_email: E-mailadres is ongeldig
|
||||
invalid_otp_token: Ongeldige tweestaps-aanmeldcode
|
||||
errors:
|
||||
404: De pagina waarnaar jij op zoek bent bestaat niet.
|
||||
410: De pagina waarnaar jij op zoek bent bestaat niet meer.
|
||||
422:
|
||||
title: Veiligheidsverificatie mislukt
|
||||
content: Veiligheidsverificatie mislukt. Blokkeer je toevallig cookies?
|
||||
admin.reports:
|
||||
title: Gerapporteerde toots
|
||||
status: Toot
|
||||
unresolved: Onopgelost
|
||||
resolved: Opgelost
|
||||
id: ID
|
||||
target: Target
|
||||
reported_by: Gerapporteerd door
|
||||
comment:
|
||||
label: Opmerking
|
||||
none: Geen
|
||||
view: Weergeven
|
||||
report: 'Gerapporteerde toot #%{id}'
|
||||
delete: Verwijderen
|
||||
reported_account: Gerapporteerde account
|
||||
reported_by: Gerapporteerd door
|
||||
silence_account: Account stilzwijgen
|
||||
suspend_account: Account blokkeren
|
||||
mark_as_resolved: Markeer als opgelost
|
||||
admin:
|
||||
settings:
|
||||
title: Server-instellingen
|
||||
setting: Instelling
|
||||
click_to_edit: Klik om te bewerken
|
||||
contact_information:
|
||||
label: Contactgegevens
|
||||
username: Vul een gebruikersnaam in
|
||||
email: Vul een openbaar gebruikt e-mailadres in
|
||||
site_title: Naam Mastodon-server
|
||||
site_description:
|
||||
title: Omschrijving Mastodon-server
|
||||
desc_html: "Dit wordt als een alinea op de voorpagina getoond en gebruikt als meta-tag in de paginabron.<br>Je kan HTML gebruiken, zoals <code><a></code> en <code><em></code>."
|
||||
site_description_extended:
|
||||
title: Uitgebreide omschrijving Mastodon-server
|
||||
desc_html: "Wordt op de uitgebreide informatiepagina weergegeven<br>Je kan ook hier HTML gebruiken"
|
||||
registrations:
|
||||
open:
|
||||
title: Open registratie
|
||||
enabled: Ingeschakeld
|
||||
disabled: Uitgeschakeld
|
||||
closed_message:
|
||||
title: Bericht wanneer registratie is uitgeschakeld
|
||||
desc_html: "Wordt op de voorpagina weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld<br>En ook hier kan je HTML gebruiken"
|
||||
|
@ -22,8 +22,8 @@ pt-BR:
|
||||
features_headline: O que torna Mastodon diferente
|
||||
get_started: Comece aqui
|
||||
links: Links
|
||||
source_code: Source code
|
||||
other_instances: Outras instâncias
|
||||
source_code: Source code
|
||||
terms: Termos
|
||||
user_count_after: usuários
|
||||
user_count_before: Lugar de
|
||||
|
@ -23,7 +23,7 @@ en:
|
||||
email: E-mail address
|
||||
header: Header
|
||||
locale: Language
|
||||
locked: Make account private
|
||||
locked: Lock account
|
||||
new_password: New password
|
||||
note: Bio
|
||||
otp_attempt: Two-factor code
|
||||
|
@ -30,8 +30,8 @@ zh-CN:
|
||||
user_count_before: 这里共注册有
|
||||
accounts:
|
||||
follow: 关注
|
||||
followers: 粉丝 # "Fans"
|
||||
following: 关注 # "Follow"
|
||||
followers: 粉丝
|
||||
following: 关注
|
||||
nothing_here: 神马都没有!
|
||||
people_followed_by: 正关注
|
||||
people_who_follow: 粉丝
|
||||
@ -80,15 +80,14 @@ zh-CN:
|
||||
web: 用户页面
|
||||
domain_blocks:
|
||||
add_new: 添加
|
||||
domain: 域名阻隔
|
||||
created_msg: 正处理域名阻隔
|
||||
destroyed_msg: 已撤销域名阻隔
|
||||
domain: 域名阻隔
|
||||
new:
|
||||
create: 添加域名阻隔
|
||||
hint: 「域名阻隔」不会隔绝该域名用户的嘟账户入本站数据库,但会嘟文抵达后,自动套用特定的审批操作。
|
||||
hint: "「域名阻隔」不会隔绝该域名用户的嘟账户入本站数据库,但会嘟文抵达后,自动套用特定的审批操作。"
|
||||
severity:
|
||||
desc_html: 「<strong>自动静音</strong>」令该域名用户的嘟文,设为只对关注者显示,没有关注的人会看不到。
|
||||
「<strong>自动除名</strong>」会自动将该域名用户的嘟文、媒体文件、个人资料自本服务站删除。
|
||||
desc_html: "「<strong>自动静音</strong>」令该域名用户的嘟文,设为只对关注者显示,没有关注的人会看不到。 「<strong>自动除名</strong>」会自动将该域名用户的嘟文、媒体文件、个人资料自本服务站删除。"
|
||||
silence: 自动静音
|
||||
suspend: 自动除名
|
||||
title: 添加域名阻隔
|
||||
@ -99,10 +98,8 @@ zh-CN:
|
||||
suspend: 自动除名
|
||||
severity: 阻隔程度
|
||||
show:
|
||||
# It turns out that Chinese only uses an "other"
|
||||
# Well, we don't have these -s magic anyway...
|
||||
affected_accounts:
|
||||
other: "数据库中有%{count}个账户受影响"
|
||||
other: 数据库中有%{count}个账户受影响
|
||||
retroactive:
|
||||
silence: 对此域名的所有账户取消静音
|
||||
suspend: 对此域名的所有账户取消除名
|
||||
@ -147,8 +144,7 @@ zh-CN:
|
||||
username: 输入用户名称
|
||||
registrations:
|
||||
closed_message:
|
||||
desc_html: 当本站暂停接受注册时,会显示这个消息。<br/>
|
||||
可使用 HTML
|
||||
desc_html: 当本站暂停接受注册时,会显示这个消息。<br/> 可使用 HTML
|
||||
title: 暂停注册消息
|
||||
open:
|
||||
disabled: 停用
|
||||
@ -187,11 +183,10 @@ zh-CN:
|
||||
title: 关注 %{acct}
|
||||
datetime:
|
||||
distance_in_words:
|
||||
# Ditching "about" as in en
|
||||
about_x_hours: "%{count} 小时"
|
||||
about_x_months: "%{count} 个月"
|
||||
about_x_years: "%{count} 年"
|
||||
almost_x_years: "接近 %{count} 年"
|
||||
almost_x_years: 接近 %{count} 年
|
||||
half_a_minute: 刚刚
|
||||
less_than_x_minutes: "%{count} 分不到"
|
||||
less_than_x_seconds: 刚刚
|
||||
@ -232,7 +227,6 @@ zh-CN:
|
||||
body: 自从你在%{since}使用%{instance}以后,错过了这些嘟嘟滴滴:
|
||||
mention: "%{name} 在此提及了你︰"
|
||||
new_followers_summary:
|
||||
# censorship note: Better not mention "don't move your chicken", even if it's a phonetic joke
|
||||
one: 有人关注你了!耶!
|
||||
other: 有 %{count} 个人关注了你!别激动!
|
||||
subject:
|
||||
@ -271,7 +265,6 @@ zh-CN:
|
||||
settings: 设置
|
||||
two_factor_authentication: 两步认证
|
||||
statuses:
|
||||
# Hey, this is already in a web browser!
|
||||
open_in_web: 打开网页
|
||||
over_character_limit: 超过了 %{max} 字的限制
|
||||
show_more: 显示更多
|
||||
|
@ -12,6 +12,7 @@ SimpleNavigation::Configuration.run do |navigation|
|
||||
settings.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url
|
||||
settings.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url
|
||||
settings.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url
|
||||
settings.item :follower_domains, safe_join([fa_icon('users fw'), t('settings.followers')]), settings_follower_domains_url
|
||||
end
|
||||
|
||||
primary.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_reports_url, if: proc { current_user.admin? } do |admin|
|
||||
|
@ -63,6 +63,8 @@ Rails.application.routes.draw do
|
||||
resources :recovery_codes, only: [:create]
|
||||
resource :confirmation, only: [:new, :create]
|
||||
end
|
||||
|
||||
resource :follower_domains, only: [:show, :update]
|
||||
end
|
||||
|
||||
resources :media, only: [:show]
|
||||
@ -109,9 +111,7 @@ Rails.application.routes.draw do
|
||||
# ActivityPub
|
||||
namespace :activitypub do
|
||||
get '/users/:id/outbox', to: 'outbox#show', as: :outbox
|
||||
|
||||
get '/statuses/:id', to: 'activities#show_status', as: :status
|
||||
|
||||
resources :notes, only: [:show]
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user