2016-11-16 07:56:03 +09:00
---
2016-02-21 06:53:20 +09:00
en :
2016-11-16 07:56:03 +09:00
about :
2019-10-09 05:08:55 +09:00
about_mastodon_html: 'The social network of the future : No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!'
2017-07-24 22:09:08 +09:00
contact_missing : Not set
contact_unavailable : N /A
2017-07-11 22:27:59 +09:00
hosted_on : Mastodon hosted on %{domain}
2022-10-13 21:42:37 +09:00
title : About
2016-11-16 07:56:03 +09:00
accounts :
follow : Follow
2018-08-27 04:30:53 +09:00
followers :
one : Follower
other : Followers
2016-11-16 07:56:03 +09:00
following : Following
2020-12-16 01:23:58 +09:00
instance_actor_flash : This account is a virtual actor used to represent the server itself and not any individual user. It is used for federation purposes and should not be suspended.
2018-12-07 01:36:11 +09:00
last_active : last active
2018-09-18 23:45:58 +09:00
link_verified_on : Ownership of this link was checked on %{date}
2016-11-16 07:56:03 +09:00
nothing_here : There is nothing here!
2018-08-09 16:56:53 +09:00
pin_errors :
following : You must be already following the person you want to endorse
2018-08-27 04:30:53 +09:00
posts :
2021-04-22 01:31:24 +09:00
one : Post
other : Posts
posts_tab_heading : Posts
2017-04-14 02:18:32 +09:00
admin :
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
account_actions :
action : Perform action
title : Perform moderation action on %{acct}
2017-10-17 18:45:59 +09:00
account_moderation_notes :
2018-05-06 06:06:29 +09:00
create : Leave note
2017-10-17 18:45:59 +09:00
created_msg : Moderation note successfully created!
destroyed_msg : Moderation note successfully destroyed!
2017-04-14 04:49:07 +09:00
accounts :
2020-06-28 03:20:11 +09:00
add_email_domain_block : Block e-mail domain
2019-03-14 13:28:30 +09:00
approve : Approve
2020-09-15 21:37:58 +09:00
approved_msg : Successfully approved %{username}'s sign-up application
2017-04-14 04:49:07 +09:00
are_you_sure : Are you sure?
2018-04-02 20:45:07 +09:00
avatar : Avatar
2017-11-01 22:46:05 +09:00
by_domain : Domain
2018-04-10 16:16:06 +09:00
change_email :
2022-07-05 09:41:40 +09:00
changed_msg : Email successfully changed!
2018-12-28 11:38:41 +09:00
current_email : Current email
label : Change email
new_email : New email
submit : Change email
title : Change email for %{username}
2022-07-05 09:41:40 +09:00
change_role :
changed_msg : Role successfully changed!
label : Change role
no_role : No role
title : Change role for %{username}
2017-04-23 11:43:42 +09:00
confirm : Confirm
confirmed : Confirmed
2018-05-06 17:59:03 +09:00
confirming : Confirming
2022-01-17 17:41:33 +09:00
custom : Custom
2020-09-15 21:37:58 +09:00
delete : Delete data
2018-12-28 11:38:41 +09:00
deleted : Deleted
2017-11-12 04:23:33 +09:00
demote : Demote
2020-09-15 21:37:58 +09:00
destroyed_msg : "%{username}'s data is now queued to be deleted imminently"
disable : Freeze
2021-07-08 12:31:28 +09:00
disable_sign_in_token_auth : Disable e-mail token authentication
2017-05-08 08:46:36 +09:00
disable_two_factor_authentication : Disable 2FA
2020-09-15 21:37:58 +09:00
disabled : Frozen
2017-04-14 04:49:07 +09:00
display_name : Display name
domain : Domain
edit : Edit
2018-12-28 11:38:41 +09:00
email : Email
email_status : Email status
2020-09-15 21:37:58 +09:00
enable : Unfreeze
2021-07-08 12:31:28 +09:00
enable_sign_in_token_auth : Enable e-mail token authentication
2017-11-08 03:06:44 +09:00
enabled : Enabled
2020-09-15 21:37:58 +09:00
enabled_msg : Successfully unfroze %{username}'s account
2017-04-14 04:49:07 +09:00
followers : Followers
follows : Follows
2018-12-19 16:51:02 +09:00
header : Header
2017-08-14 21:09:00 +09:00
inbox_url : Inbox URL
2020-12-15 14:28:14 +09:00
invite_request_text : Reasons for joining
2018-12-28 11:38:41 +09:00
invited_by : Invited by
2017-05-17 10:00:34 +09:00
ip : IP
2018-12-28 11:38:41 +09:00
joined : Joined
2017-04-14 04:49:07 +09:00
location :
all : All
local : Local
remote : Remote
title : Location
2017-11-08 03:06:44 +09:00
login_status : Login status
2017-04-14 04:49:07 +09:00
media_attachments : Media attachments
2017-11-08 03:06:44 +09:00
memorialize : Turn into memoriam
2020-09-15 21:37:58 +09:00
memorialized : Memorialized
memorialized_msg : Successfully turned %{username} into a memorial account
2017-04-14 04:49:07 +09:00
moderation :
2018-12-07 01:36:11 +09:00
active : Active
2017-04-14 04:49:07 +09:00
all : All
2023-02-18 20:46:44 +09:00
disabled : Disabled
2019-03-14 13:28:30 +09:00
pending : Pending
2022-07-05 09:41:40 +09:00
silenced : Limited
2017-04-14 04:49:07 +09:00
suspended : Suspended
title : Moderation
2017-10-08 03:26:43 +09:00
moderation_notes : Moderation notes
2017-04-14 04:49:07 +09:00
most_recent_activity : Most recent activity
most_recent_ip : Most recent IP
2019-04-09 01:35:41 +09:00
no_account_selected : No accounts were changed as none were selected
2018-09-13 10:44:08 +09:00
no_limits_imposed : No limits imposed
2022-07-05 09:41:40 +09:00
no_role_assigned : No role assigned
2017-04-14 04:49:07 +09:00
not_subscribed : Not subscribed
2019-03-14 13:28:30 +09:00
pending : Pending review
2018-10-20 09:39:39 +09:00
perform_full_suspension : Suspend
2022-02-15 05:27:53 +09:00
previous_strikes : Previous strikes
previous_strikes_description_html :
one : This account has <strong>one</strong> strike.
other : This account has <strong>%{count}</strong> strikes.
2017-11-12 04:23:33 +09:00
promote : Promote
2017-08-14 21:09:00 +09:00
protocol : Protocol
2017-04-14 04:49:07 +09:00
public : Public
push_subscription_expires : PuSH subscription expires
2018-12-28 11:38:41 +09:00
redownload : Refresh profile
2020-09-15 21:37:58 +09:00
redownloaded_msg : Successfully refreshed %{username}'s profile from origin
2019-03-14 13:28:30 +09:00
reject : Reject
2020-09-15 21:37:58 +09:00
rejected_msg : Successfully rejected %{username}'s sign-up application
2022-12-15 22:15:50 +09:00
remote_suspension_irreversible : The data of this account has been irreversibly deleted.
remote_suspension_reversible_hint_html : The account has been suspended on their server, and the data will be fully removed on %{date}. Until then, the remote server can restore this account without any ill effects. If you wish to remove all of the account's data immediately, you can do so below.
2018-04-02 20:45:07 +09:00
remove_avatar : Remove avatar
2018-12-19 16:51:02 +09:00
remove_header : Remove header
2020-09-15 21:37:58 +09:00
removed_avatar_msg : Successfully removed %{username}'s avatar image
removed_header_msg : Successfully removed %{username}'s header image
2018-05-06 17:59:03 +09:00
resend_confirmation :
already_confirmed : This user is already confirmed
2023-04-16 14:01:24 +09:00
send : Resend confirmation link
success : Confirmation link successfully sent!
2017-05-18 07:38:01 +09:00
reset : Reset
2017-04-17 02:37:01 +09:00
reset_password : Reset password
2017-06-08 21:58:22 +09:00
resubscribe : Resubscribe
2022-07-05 09:41:40 +09:00
role : Role
2017-05-17 10:00:34 +09:00
search : Search
2020-03-13 06:35:20 +09:00
search_same_email_domain : Other users with the same e-mail domain
2019-10-25 05:49:26 +09:00
search_same_ip : Other users with the same IP
2023-02-18 20:46:44 +09:00
security : Security
2021-07-08 12:31:28 +09:00
security_measures :
only_password : Only password
password_and_2fa : Password and 2FA
sensitive : Force-sensitive
sensitized : Marked as sensitive
2018-12-28 11:38:41 +09:00
shared_inbox_url : Shared inbox URL
2017-04-19 02:36:18 +09:00
show :
2018-12-28 11:38:41 +09:00
created_reports : Made reports
targeted_reports : Reported by others
2020-09-15 21:37:58 +09:00
silence : Limit
silenced : Limited
2021-04-22 01:31:24 +09:00
statuses : Posts
2022-01-17 17:41:33 +09:00
strikes : Previous strikes
2017-06-08 21:58:22 +09:00
subscribe : Subscribe
2022-02-12 05:51:57 +09:00
suspend : Suspend
2018-09-13 10:44:08 +09:00
suspended : Suspended
2020-09-15 21:37:58 +09:00
suspension_irreversible : The data of this account has been irreversibly deleted. You can unsuspend the account to make it usable but it will not recover any data it previously had.
suspension_reversible_hint_html : The account has been suspended, and the data will be fully removed on %{date}. Until then, the account can be restored without any ill effects. If you wish to remove all of the account's data immediately, you can do so below.
2017-04-14 04:49:07 +09:00
title : Accounts
2021-12-18 07:02:14 +09:00
unblock_email : Unblock email address
unblocked_email_msg : Successfully unblocked %{username}'s email address
2018-12-28 11:38:41 +09:00
unconfirmed_email : Unconfirmed email
2021-07-08 12:31:28 +09:00
undo_sensitized : Undo force-sensitive
undo_silenced : Undo limit
2017-04-14 04:49:07 +09:00
undo_suspension : Undo suspension
2021-07-08 12:31:28 +09:00
unsilenced_msg : Successfully undid limit of %{username}'s account
2017-06-08 21:58:22 +09:00
unsubscribe : Unsubscribe
2020-09-15 21:37:58 +09:00
unsuspended_msg : Successfully unsuspended %{username}'s account
2017-04-14 04:49:07 +09:00
username : Username
2020-09-15 21:37:58 +09:00
view_domain : View summary for domain
2018-12-28 11:38:41 +09:00
warn : Warn
2017-04-14 04:49:07 +09:00
web : Web
2020-06-28 03:20:11 +09:00
whitelisted : Allowed for federation
2017-11-24 10:05:53 +09:00
action_logs :
2020-04-03 20:06:34 +09:00
action_types :
2022-02-15 05:27:53 +09:00
approve_appeal : Approve Appeal
2021-12-06 05:48:39 +09:00
approve_user : Approve User
2020-04-03 20:06:34 +09:00
assigned_to_self_report : Assign Report
change_email_user : Change E-mail for User
2022-08-26 03:39:40 +09:00
change_role_user : Change Role of User
2020-04-03 20:06:34 +09:00
confirm_user : Confirm User
create_account_warning : Create Warning
create_announcement : Create Announcement
2022-08-28 10:31:54 +09:00
create_canonical_email_block : Create E-mail Block
2020-04-03 20:06:34 +09:00
create_custom_emoji : Create Custom Emoji
create_domain_allow : Create Domain Allow
create_domain_block : Create Domain Block
create_email_domain_block : Create E-mail Domain Block
2020-10-12 23:33:49 +09:00
create_ip_block : Create IP rule
2021-05-06 06:39:02 +09:00
create_unavailable_domain : Create Unavailable Domain
2022-08-26 03:39:40 +09:00
create_user_role : Create Role
2020-04-03 20:06:34 +09:00
demote_user : Demote User
destroy_announcement : Delete Announcement
2022-08-28 10:31:54 +09:00
destroy_canonical_email_block : Delete E-mail Block
2020-04-03 20:06:34 +09:00
destroy_custom_emoji : Delete Custom Emoji
destroy_domain_allow : Delete Domain Allow
destroy_domain_block : Delete Domain Block
2021-07-08 12:31:28 +09:00
destroy_email_domain_block : Delete E-mail Domain Block
2021-12-18 07:01:21 +09:00
destroy_instance : Purge Domain
2020-10-12 23:33:49 +09:00
destroy_ip_block : Delete IP rule
2021-04-22 01:31:24 +09:00
destroy_status : Delete Post
2021-05-06 06:39:02 +09:00
destroy_unavailable_domain : Delete Unavailable Domain
2022-08-26 03:39:40 +09:00
destroy_user_role : Destroy Role
2020-04-03 20:06:34 +09:00
disable_2fa_user : Disable 2FA
disable_custom_emoji : Disable Custom Emoji
2021-07-08 12:31:28 +09:00
disable_sign_in_token_auth_user : Disable E-mail Token Authentication for User
2020-04-03 20:06:34 +09:00
disable_user : Disable User
enable_custom_emoji : Enable Custom Emoji
2021-07-08 12:31:28 +09:00
enable_sign_in_token_auth_user : Enable E-mail Token Authentication for User
2020-04-03 20:06:34 +09:00
enable_user : Enable User
memorialize_account : Memorialize Account
promote_user : Promote User
2022-02-15 05:27:53 +09:00
reject_appeal : Reject Appeal
2021-12-06 05:48:39 +09:00
reject_user : Reject User
2020-04-03 20:06:34 +09:00
remove_avatar_user : Remove Avatar
reopen_report : Reopen Report
2022-11-03 02:50:21 +09:00
resend_user : Resend Confirmation Mail
2020-04-03 20:06:34 +09:00
reset_password_user : Reset Password
resolve_report : Resolve Report
2021-07-08 12:31:28 +09:00
sensitive_account : Force-Sensitive Account
silence_account : Limit Account
2020-04-03 20:06:34 +09:00
suspend_account : Suspend Account
unassigned_report : Unassign Report
2021-12-18 07:02:14 +09:00
unblock_email_account : Unblock email address
2021-07-08 12:31:28 +09:00
unsensitive_account : Undo Force-Sensitive Account
unsilence_account : Undo Limit Account
2020-04-03 20:06:34 +09:00
unsuspend_account : Unsuspend Account
update_announcement : Update Announcement
update_custom_emoji : Update Custom Emoji
2020-12-14 17:06:34 +09:00
update_domain_block : Update Domain Block
2022-08-28 10:31:54 +09:00
update_ip_block : Update IP rule
2021-04-22 01:31:24 +09:00
update_status : Update Post
2022-08-26 03:39:40 +09:00
update_user_role : Update Role
2017-11-24 10:05:53 +09:00
actions :
2022-02-15 05:27:53 +09:00
approve_appeal_html : "%{name} approved moderation decision appeal from %{target}"
2021-12-06 05:48:39 +09:00
approve_user_html : "%{name} approved sign-up from %{target}"
2021-03-20 07:48:59 +09:00
assigned_to_self_report_html : "%{name} assigned report %{target} to themselves"
change_email_user_html : "%{name} changed the e-mail address of user %{target}"
2022-08-26 03:39:40 +09:00
change_role_user_html : "%{name} changed role of %{target}"
2021-03-20 07:48:59 +09:00
confirm_user_html : "%{name} confirmed e-mail address of user %{target}"
create_account_warning_html : "%{name} sent a warning to %{target}"
create_announcement_html : "%{name} created new announcement %{target}"
2022-08-28 10:31:54 +09:00
create_canonical_email_block_html : "%{name} blocked e-mail with the hash %{target}"
2021-03-20 07:48:59 +09:00
create_custom_emoji_html : "%{name} uploaded new emoji %{target}"
create_domain_allow_html : "%{name} allowed federation with domain %{target}"
create_domain_block_html : "%{name} blocked domain %{target}"
create_email_domain_block_html : "%{name} blocked e-mail domain %{target}"
create_ip_block_html : "%{name} created rule for IP %{target}"
2021-05-06 06:39:02 +09:00
create_unavailable_domain_html : "%{name} stopped delivery to domain %{target}"
2022-08-26 03:39:40 +09:00
create_user_role_html : "%{name} created %{target} role"
2021-03-20 07:48:59 +09:00
demote_user_html : "%{name} demoted user %{target}"
destroy_announcement_html : "%{name} deleted announcement %{target}"
2022-08-28 10:31:54 +09:00
destroy_canonical_email_block_html : "%{name} unblocked e-mail with the hash %{target}"
2022-08-26 03:39:40 +09:00
destroy_custom_emoji_html : "%{name} deleted emoji %{target}"
2021-03-20 07:48:59 +09:00
destroy_domain_allow_html : "%{name} disallowed federation with domain %{target}"
destroy_domain_block_html : "%{name} unblocked domain %{target}"
destroy_email_domain_block_html : "%{name} unblocked e-mail domain %{target}"
2021-12-18 07:01:21 +09:00
destroy_instance_html : "%{name} purged domain %{target}"
2021-03-20 07:48:59 +09:00
destroy_ip_block_html : "%{name} deleted rule for IP %{target}"
2021-04-22 01:31:24 +09:00
destroy_status_html : "%{name} removed post by %{target}"
2021-05-06 06:39:02 +09:00
destroy_unavailable_domain_html : "%{name} resumed delivery to domain %{target}"
2022-08-26 03:39:40 +09:00
destroy_user_role_html : "%{name} deleted %{target} role"
2021-03-20 07:48:59 +09:00
disable_2fa_user_html : "%{name} disabled two factor requirement for user %{target}"
disable_custom_emoji_html : "%{name} disabled emoji %{target}"
2021-07-08 12:31:28 +09:00
disable_sign_in_token_auth_user_html : "%{name} disabled e-mail token authentication for %{target}"
2021-03-20 07:48:59 +09:00
disable_user_html : "%{name} disabled login for user %{target}"
enable_custom_emoji_html : "%{name} enabled emoji %{target}"
2021-07-08 12:31:28 +09:00
enable_sign_in_token_auth_user_html : "%{name} enabled e-mail token authentication for %{target}"
2021-03-20 07:48:59 +09:00
enable_user_html : "%{name} enabled login for user %{target}"
memorialize_account_html : "%{name} turned %{target}'s account into a memoriam page"
promote_user_html : "%{name} promoted user %{target}"
2022-02-15 05:27:53 +09:00
reject_appeal_html : "%{name} rejected moderation decision appeal from %{target}"
2021-12-06 05:48:39 +09:00
reject_user_html : "%{name} rejected sign-up from %{target}"
2021-03-20 07:48:59 +09:00
remove_avatar_user_html : "%{name} removed %{target}'s avatar"
reopen_report_html : "%{name} reopened report %{target}"
2022-11-03 02:50:21 +09:00
resend_user_html : "%{name} resent confirmation e-mail for %{target}"
2021-03-20 07:48:59 +09:00
reset_password_user_html : "%{name} reset password of user %{target}"
resolve_report_html : "%{name} resolved report %{target}"
sensitive_account_html : "%{name} marked %{target}'s media as sensitive"
2021-07-08 12:31:28 +09:00
silence_account_html : "%{name} limited %{target}'s account"
2021-03-20 07:48:59 +09:00
suspend_account_html : "%{name} suspended %{target}'s account"
unassigned_report_html : "%{name} unassigned report %{target}"
2021-12-18 07:02:14 +09:00
unblock_email_account_html : "%{name} unblocked %{target}'s email address"
2021-03-20 07:48:59 +09:00
unsensitive_account_html : "%{name} unmarked %{target}'s media as sensitive"
2021-07-08 12:31:28 +09:00
unsilence_account_html : "%{name} undid limit of %{target}'s account"
2021-03-20 07:48:59 +09:00
unsuspend_account_html : "%{name} unsuspended %{target}'s account"
update_announcement_html : "%{name} updated announcement %{target}"
update_custom_emoji_html : "%{name} updated emoji %{target}"
update_domain_block_html : "%{name} updated domain block for %{target}"
2022-08-28 10:31:54 +09:00
update_ip_block_html : "%{name} changed rule for IP %{target}"
2021-04-22 01:31:24 +09:00
update_status_html : "%{name} updated post by %{target}"
2022-08-26 03:39:40 +09:00
update_user_role_html : "%{name} changed %{target} role"
2022-11-06 07:00:48 +09:00
deleted_account : deleted account
2020-04-03 20:06:34 +09:00
empty : No logs found.
filter_by_action : Filter by action
filter_by_user : Filter by user
2017-11-24 10:05:53 +09:00
title : Audit log
2020-01-24 06:00:13 +09:00
announcements :
2020-01-27 19:05:33 +09:00
destroyed_msg : Announcement successfully deleted!
2020-01-24 06:00:13 +09:00
edit :
title : Edit announcement
empty : No announcements found.
live : Live
new :
create : Create announcement
title : New announcement
2021-04-17 18:12:49 +09:00
publish : Publish
2020-01-27 19:05:33 +09:00
published_msg : Announcement successfully published!
2020-01-28 10:21:00 +09:00
scheduled_for : Scheduled for %{time}
2020-01-27 19:05:33 +09:00
scheduled_msg : Announcement scheduled for publication!
2020-01-24 06:00:13 +09:00
title : Announcements
2021-04-17 18:12:49 +09:00
unpublish : Unpublish
2020-01-27 19:05:33 +09:00
unpublished_msg : Announcement successfully unpublished!
updated_msg : Announcement successfully updated!
2017-09-19 10:52:38 +09:00
custom_emojis :
2019-09-10 05:44:17 +09:00
assign_category : Assign category
2017-12-13 21:28:31 +09:00
by_domain : Domain
2017-10-06 06:42:05 +09:00
copied_msg : Successfully created local copy of the emoji
copy : Copy
copy_failed_msg : Could not make a local copy of that emoji
2019-09-10 05:44:17 +09:00
create_new_category : Create new category
2017-09-19 10:52:38 +09:00
created_msg : Emoji successfully created!
delete : Delete
destroyed_msg : Emojo successfully destroyed!
2017-10-06 06:42:05 +09:00
disable : Disable
2019-10-01 08:20:22 +09:00
disabled : Disabled
2017-10-06 06:42:05 +09:00
disabled_msg : Successfully disabled that emoji
2017-09-19 10:52:38 +09:00
emoji : Emoji
2017-10-06 06:42:05 +09:00
enable : Enable
2019-09-27 10:07:19 +09:00
enabled : Enabled
2017-10-06 06:42:05 +09:00
enabled_msg : Successfully enabled that emoji
2022-03-14 13:45:22 +09:00
image_hint : PNG or GIF up to %{size}
2019-09-27 10:07:19 +09:00
list : List
2017-10-27 23:11:30 +09:00
listed : Listed
2017-09-19 10:52:38 +09:00
new :
title : Add new custom emoji
2022-10-15 07:20:54 +09:00
no_emoji_selected : No emojis were changed as none were selected
2020-06-05 22:23:27 +09:00
not_permitted : You are not permitted to perform this action
2017-11-07 22:49:32 +09:00
overwrite : Overwrite
2017-09-19 10:52:38 +09:00
shortcode : Shortcode
shortcode_hint : At least 2 characters, only alphanumeric characters and underscores
title : Custom emojis
2019-09-10 05:44:17 +09:00
uncategorized : Uncategorized
2019-09-27 10:07:19 +09:00
unlist : Unlist
2017-10-27 23:11:30 +09:00
unlisted : Unlisted
update_failed_msg : Could not update that emoji
updated_msg : Emoji successfully updated!
2017-09-19 10:52:38 +09:00
upload : Upload
2018-07-16 08:11:53 +09:00
dashboard :
2021-10-15 03:44:59 +09:00
active_users : active users
interactions : interactions
media_storage : Media storage
new_users : new users
opened_reports : reports opened
2022-02-15 05:27:53 +09:00
pending_appeals_html :
2022-02-16 22:57:57 +09:00
one : "<strong>%{count}</strong> pending appeal"
2022-02-15 05:27:53 +09:00
other : "<strong>%{count}</strong> pending appeals"
2021-10-15 03:44:59 +09:00
pending_reports_html :
2022-02-16 22:57:57 +09:00
one : "<strong>%{count}</strong> pending report"
2021-10-15 03:44:59 +09:00
other : "<strong>%{count}</strong> pending reports"
pending_tags_html :
2022-02-16 22:57:57 +09:00
one : "<strong>%{count}</strong> pending hashtag"
2021-10-15 03:44:59 +09:00
other : "<strong>%{count}</strong> pending hashtags"
pending_users_html :
2022-02-16 22:57:57 +09:00
one : "<strong>%{count}</strong> pending user"
2021-10-15 03:44:59 +09:00
other : "<strong>%{count}</strong> pending users"
resolved_reports : reports resolved
2018-07-16 08:11:53 +09:00
software : Software
2021-10-15 03:44:59 +09:00
sources : Sign-up sources
2018-07-16 08:11:53 +09:00
space : Space usage
title : Dashboard
2021-10-15 03:44:59 +09:00
top_languages : Top active languages
top_servers : Top active servers
website : Website
2022-02-15 05:27:53 +09:00
disputes :
appeals :
empty : No appeals found.
title : Appeals
2019-07-30 18:10:46 +09:00
domain_allows :
2020-06-28 03:20:11 +09:00
add_new : Allow federation with domain
created_msg : Domain has been successfully allowed for federation
destroyed_msg : Domain has been disallowed from federation
2022-11-17 19:05:09 +09:00
export : Export
import : Import
2020-06-28 03:20:11 +09:00
undo : Disallow federation with domain
2017-04-17 02:37:01 +09:00
domain_blocks :
2019-01-08 21:39:49 +09:00
add_new : Add new domain block
2023-06-01 16:37:38 +09:00
confirm_suspension :
cancel : Cancel
confirm : Suspend
permanent_action : Undoing the suspension will not restore any data or relationship.
preamble_html : You are about to suspend <strong>%{domain}</strong> and its subdomains.
remove_all_data : This will remove all content, media, and profile data for this domain's accounts from your server.
stop_communication : Your server will stop communicating with these servers.
title : Confirm domain block for %{domain}
undo_relationships : This will undo any follow relationship between accounts of these servers and yours.
2017-04-16 19:51:30 +09:00
created_msg : Domain block is now being processed
destroyed_msg : Domain block has been undone
2017-04-14 04:49:07 +09:00
domain : Domain
2019-08-08 03:20:23 +09:00
edit : Edit domain block
2022-06-02 00:31:36 +09:00
existing_domain_block : You have already imposed stricter limits on %{name}.
2019-05-04 03:36:36 +09:00
existing_domain_block_html : You have already imposed stricter limits on %{name}, you need to <a href="%{unblock_url}">unblock it</a> first.
2022-11-17 19:05:09 +09:00
export : Export
import : Import
2017-04-14 04:49:07 +09:00
new :
create : Create block
hint : The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts.
severity :
2022-11-17 19:01:51 +09:00
desc_html : "<strong>Limit</strong> will make posts from accounts at this domain invisible to anyone who isn't following them. <strong>Suspend</strong> will remove all content, media, and profile data for this domain's accounts from your server. Use <strong>None</strong> if you just want to reject media files."
2017-07-24 21:26:55 +09:00
noop : None
2022-11-17 19:01:51 +09:00
silence : Limit
2017-04-14 04:49:07 +09:00
suspend : Suspend
title : New domain block
2022-11-17 19:05:09 +09:00
no_domain_block_selected : No domain blocks were changed as none were selected
not_permitted : You are not permitted to perform this action
2020-12-18 16:30:41 +09:00
obfuscate : Obfuscate domain name
obfuscate_hint : Partially obfuscate the domain name in the list if advertising the list of domain limitations is enabled
2019-08-08 03:20:23 +09:00
private_comment : Private comment
private_comment_hint : Comment about this domain limitation for internal use by the moderators.
public_comment : Public comment
public_comment_hint : Comment about this domain limitation for the general public, if advertising the list of domain limitations is enabled.
2017-04-16 19:51:30 +09:00
reject_media : Reject media files
reject_media_hint : Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions
2018-10-20 15:02:44 +09:00
reject_reports : Reject reports
reject_reports_hint : Ignore all reports coming from this domain. Irrelevant for suspensions
2019-01-08 21:39:49 +09:00
undo : Undo domain block
2019-08-08 03:20:23 +09:00
view : View domain block
2017-10-04 22:16:10 +09:00
email_domain_blocks :
add_new : Add new
2022-02-25 01:28:23 +09:00
attempts_over_week :
one : "%{count} attempt over the last week"
other : "%{count} sign-up attempts over the last week"
2020-06-28 03:20:11 +09:00
created_msg : Successfully blocked e-mail domain
2017-10-04 22:16:10 +09:00
delete : Delete
2022-02-25 01:28:23 +09:00
dns :
types :
mx : MX record
2017-10-04 22:16:10 +09:00
domain : Domain
new :
2017-11-24 10:05:53 +09:00
create : Add domain
2022-02-25 01:28:23 +09:00
resolve : Resolve domain
2020-06-28 03:20:11 +09:00
title : Block new e-mail domain
2022-02-25 01:28:23 +09:00
no_email_domain_block_selected : No e-mail domain blocks were changed as none were selected
2023-02-18 20:46:44 +09:00
not_permitted : Not permitted
2022-02-25 01:28:23 +09:00
resolved_dns_records_hint_html : The domain name resolves to the following MX domains, which are ultimately responsible for accepting e-mail. Blocking an MX domain will block sign-ups from any e-mail address which uses the same MX domain, even if the visible domain name is different. <strong>Be careful not to block major e-mail providers.</strong>
resolved_through_html : Resolved through %{domain}
2020-06-28 03:20:11 +09:00
title : Blocked e-mail domains
2022-11-17 19:05:09 +09:00
export_domain_allows :
new :
title : Import domain allows
no_file : No file selected
export_domain_blocks :
import :
description_html : You are about to import a list of domain blocks. Please review this list very carefully, especially if you have not authored this list yourself.
existing_relationships_warning : Existing follow relationships
private_comment_description_html: 'To help you track where imported blocks come from, imported blocks will be created with the following private comment : <q>%{comment}</q>'
private_comment_template : Imported from %{source} on %{date}
title : Import domain blocks
2023-01-19 00:20:52 +09:00
invalid_domain_block: 'One or more domain blocks were skipped because of the following error(s) : %{error}'
2022-11-17 19:05:09 +09:00
new :
title : Import domain blocks
no_file : No file selected
2021-04-12 19:37:14 +09:00
follow_recommendations :
description_html : "<strong>Follow recommendations help new users quickly find interesting content</strong>. When a user has not interacted with others enough to form personalized follow recommendations, these accounts are recommended instead. They are re-calculated on a daily basis from a mix of accounts with the highest recent engagements and highest local follower counts for a given language."
language : For language
status : Status
suppress : Suppress follow recommendation
suppressed : Suppressed
title : Follow recommendations
unsuppress : Restore follow recommendation
2017-04-19 04:09:07 +09:00
instances :
2022-03-09 16:52:32 +09:00
availability :
description_html :
one : If delivering to the domain fails <strong>%{count} day</strong> without succeeding, no further delivery attempts will be made unless a delivery <em>from</em> the domain is received.
other : If delivering to the domain fails on <strong>%{count} different days</strong> without succeeding, no further delivery attempts will be made unless a delivery <em>from</em> the domain is received.
failure_threshold_reached : Failure threshold reached on %{date}.
failures_recorded :
one : Failed attempt on %{count} day.
other : Failed attempts on %{count} different days.
no_failures_recorded : No failures on record.
title : Availability
2022-03-23 02:41:46 +09:00
warning : The last attempt to connect to this server has been unsuccessful
2021-05-06 06:39:02 +09:00
back_to_all : All
back_to_limited : Limited
back_to_warning : Warning
2019-02-18 22:59:19 +09:00
by_domain : Domain
2021-12-18 07:01:21 +09:00
confirm_purge : Are you sure you want to permanently delete data from this domain?
2022-03-09 16:52:32 +09:00
content_policies :
comment : Internal note
description_html : You can define content policies that will be applied to all accounts from this domain and any of its subdomains.
2023-02-18 20:46:44 +09:00
limited_federation_mode_description_html : You can chose whether to allow federation with this domain.
2022-03-09 16:52:32 +09:00
policies :
reject_media : Reject media
reject_reports : Reject reports
silence : Limit
suspend : Suspend
policy : Policy
reason : Public reason
title : Content policies
dashboard :
instance_accounts_dimension : Most followed accounts
instance_accounts_measure : stored accounts
instance_followers_measure : our followers there
instance_follows_measure : their followers here
instance_languages_dimension : Top languages
instance_media_attachments_measure : stored media attachments
instance_reports_measure : reports about them
instance_statuses_measure : stored posts
2021-05-06 06:39:02 +09:00
delivery :
all : All
clear : Clear delivery errors
2022-04-22 03:26:10 +09:00
failing : Failing
2021-05-06 06:39:02 +09:00
restart : Restart delivery
stop : Stop delivery
unavailable : Unavailable
2019-01-08 21:39:49 +09:00
delivery_available : Delivery is available
2021-05-06 06:39:02 +09:00
delivery_error_days : Delivery error days
delivery_error_hint : If delivery is not possible for %{count} days, it will be automatically marked as undeliverable.
2021-12-18 07:01:21 +09:00
destroyed_msg : Data from %{domain} is now queued for imminent deletion.
2020-12-14 17:06:34 +09:00
empty : No domains found.
2019-01-08 21:39:49 +09:00
known_accounts :
one : "%{count} known account"
other : "%{count} known accounts"
moderation :
all : All
limited : Limited
title : Moderation
2019-08-08 03:20:23 +09:00
private_comment : Private comment
public_comment : Public comment
2021-12-18 07:01:21 +09:00
purge : Purge
2022-03-09 16:52:32 +09:00
purge_description_html : If you believe this domain is offline for good, you can delete all account records and associated data from this domain from your storage. This may take a while.
2019-01-08 21:39:49 +09:00
title : Federation
total_blocked_by_us : Blocked by us
total_followed_by_them : Followed by them
total_followed_by_us : Followed by us
total_reported : Reports about them
total_storage : Media attachments
2022-03-09 16:52:32 +09:00
totals_time_period_hint_html : The totals displayed below include data for all time.
2017-11-28 00:07:59 +09:00
invites :
2018-08-19 07:58:53 +09:00
deactivate_all : Deactivate all
2017-12-02 00:40:02 +09:00
filter :
all : All
available : Available
expired : Expired
title : Filter
2017-11-28 00:07:59 +09:00
title : Invites
2020-10-12 23:33:49 +09:00
ip_blocks :
add_new : Create rule
created_msg : Successfully added new IP rule
delete : Delete
expires_in :
'1209600' : 2 weeks
'15778476' : 6 months
'2629746' : 1 month
'31556952' : 1 year
'86400' : 1 day
'94670856' : 3 years
new :
title : Create new IP rule
no_ip_block_selected : No IP rules were changed as none were selected
title : IP rules
2020-01-24 04:33:20 +09:00
relationships :
title : "%{acct}'s relationships"
2018-07-13 09:16:06 +09:00
relays :
add_new : Add new relay
2018-09-13 10:44:08 +09:00
delete : Delete
2021-04-22 01:31:24 +09:00
description_html : A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public posts between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
2018-09-13 10:44:08 +09:00
disable : Disable
disabled : Disabled
enable : Enable
2021-04-22 01:31:24 +09:00
enable_hint : Once enabled, your server will subscribe to all public posts from this relay, and will begin sending this server's public posts to it.
2018-09-13 10:44:08 +09:00
enabled : Enabled
2018-07-13 09:16:06 +09:00
inbox_url : Relay URL
2018-08-28 12:39:43 +09:00
pending : Waiting for relay's approval
2018-08-31 22:15:21 +09:00
save_and_enable : Save and enable
2018-07-13 09:16:06 +09:00
setup : Setup a relay connection
2022-12-15 23:56:05 +09:00
signatures_not_enabled : Relays may not work correctly while secure mode or limited federation mode is enabled
2018-07-13 09:16:06 +09:00
status : Status
title : Relays
2018-04-03 05:04:14 +09:00
report_notes :
2018-04-11 03:27:59 +09:00
created_msg : Report note successfully created!
destroyed_msg : Report note successfully deleted!
2017-04-14 04:49:07 +09:00
reports :
2018-04-17 21:58:11 +09:00
account :
2019-12-13 03:50:23 +09:00
notes :
one : "%{count} note"
other : "%{count} notes"
2022-01-17 17:41:33 +09:00
action_log : Audit log
2017-06-09 22:08:06 +09:00
action_taken_by : Action taken by
2022-01-17 17:41:33 +09:00
actions :
2022-02-12 05:51:57 +09:00
delete_description_html : The reported posts will be deleted and a strike will be recorded to help you escalate on future infractions by the same account.
2022-04-03 21:02:29 +09:00
mark_as_sensitive_description_html : The media in the reported posts will be marked as sensitive and a strike will be recorded to help you escalate on future infractions by the same account.
2022-01-17 17:41:33 +09:00
other_description_html : See more options for controlling the account's behaviour and customize communication to the reported account.
2022-02-12 05:51:57 +09:00
resolve_description_html : No action will be taken against the reported account, no strike recorded, and the report will be closed.
2023-01-13 19:03:14 +09:00
silence_description_html : The account will be visible only to those who already follow it or manually look it up, severely limiting its reach. Can always be reverted. Closes all reports against this account.
suspend_description_html : The account and all its contents will be inaccessible and eventually deleted, and interacting with it will be impossible. Reversible within 30 days. Closes all reports against this account.
2022-02-12 05:51:57 +09:00
actions_description_html : Decide which action to take to resolve this report. If you take a punitive action against the reported account, an e-mail notification will be sent to them, except when the <strong>Spam</strong> category is selected.
2023-01-13 19:03:14 +09:00
actions_description_remote_html : Decide which action to take to resolve this report. This will only affect how <strong>your</strong> server communicates with this remote account and handle its content.
2022-01-17 17:41:33 +09:00
add_to_report : Add more to report
2017-06-08 21:58:22 +09:00
are_you_sure : Are you sure?
2018-04-03 05:04:14 +09:00
assign_to_self : Assign to me
2018-04-20 09:28:48 +09:00
assigned : Assigned moderator
2019-12-01 03:53:58 +09:00
by_target_domain : Domain of reported account
2023-02-18 20:46:44 +09:00
cancel : Cancel
2022-01-17 17:41:33 +09:00
category : Category
category_description_html : The reason this account and/or content was reported will be cited in communication with the reported account
2017-04-14 04:49:07 +09:00
comment :
none : None
2022-01-17 17:41:33 +09:00
comment_description_html : 'To provide more information, %{name} wrote:'
2023-02-18 20:46:44 +09:00
confirm : Confirm
2023-01-19 00:40:09 +09:00
confirm_action : Confirm moderation action against @%{acct}
2018-04-11 03:27:59 +09:00
created_at : Reported
2022-02-12 05:51:57 +09:00
delete_and_resolve : Delete posts
2020-12-15 12:30:15 +09:00
forwarded : Forwarded
forwarded_to : Forwarded to %{domain}
2017-04-14 04:49:07 +09:00
mark_as_resolved : Mark as resolved
2022-03-02 06:20:29 +09:00
mark_as_sensitive : Mark as sensitive
2018-04-03 05:04:14 +09:00
mark_as_unresolved : Mark as unresolved
2022-01-17 17:41:33 +09:00
no_one_assigned : No one
2018-04-03 05:04:14 +09:00
notes :
2018-04-20 09:28:48 +09:00
create : Add note
create_and_resolve : Resolve with note
create_and_unresolve : Reopen with note
2018-04-03 05:04:14 +09:00
delete : Delete
2018-05-22 22:26:42 +09:00
placeholder : Describe what actions have been taken, or any other related updates...
2022-01-17 17:41:33 +09:00
title : Notes
notes_description_html : View and leave notes to other moderators and your future self
2023-01-19 00:40:09 +09:00
processed_msg : 'Report #%{id} successfully processed'
2022-02-12 05:51:57 +09:00
quick_actions_description_html : 'Take a quick action or scroll down to see reported content:'
2022-02-27 05:14:12 +09:00
remote_user_placeholder : the remote user from %{instance}
2018-04-20 09:28:48 +09:00
reopen : Reopen report
2017-04-14 04:49:07 +09:00
report : 'Report #%{id}'
reported_account : Reported account
reported_by : Reported by
resolved : Resolved
2018-04-03 05:04:14 +09:00
resolved_msg : Report successfully resolved!
2022-02-12 05:51:57 +09:00
skip_to_actions : Skip to actions
2017-04-14 04:49:07 +09:00
status : Status
2022-01-17 17:41:33 +09:00
statuses : Reported content
statuses_description_html : Offending content will be cited in communication with the reported account
2023-01-19 00:40:09 +09:00
summary :
action_preambles :
delete_html : 'You are about to <strong>remove</strong> some of <strong>@%{acct}</strong>' 's posts. This will:'
mark_as_sensitive_html : 'You are about to <strong>mark</strong> some of <strong>@%{acct}</strong>' 's posts as <strong>sensitive</strong>. This will:'
silence_html : 'You are about to <strong>limit</strong> <strong>@%{acct}</strong>' 's account. This will:'
suspend_html : 'You are about to <strong>suspend</strong> <strong>@%{acct}</strong>' 's account. This will:'
actions :
delete_html : Remove the offending posts
mark_as_sensitive_html : Mark the offending posts' media as sensitive
silence_html : Severely limit <strong>@%{acct}</strong>'s reach by making their profile and contents only visible to people already following them or manually looking it profile up
suspend_html : Suspend <strong>@%{acct}</strong>, making their profile and contents inaccessible and impossible to interact with
close_report : 'Mark report #%{id} as resolved'
close_reports_html : Mark <strong>all</strong> reports against <strong>@%{acct}</strong> as resolved
delete_data_html : Delete <strong>@%{acct}</strong>'s profile and contents 30 days from now unless they get unsuspended in the meantime
preview_preamble_html : "<strong>@%{acct}</strong> will receive a warning with the following contents:"
record_strike_html : Record a strike against <strong>@%{acct}</strong> to help you escalate on future violations from this account
send_email_html : Send <strong>@%{acct}</strong> a warning e-mail
warning_placeholder : Optional additional reasoning for the moderation action.
2021-07-11 18:01:38 +09:00
target_origin : Origin of reported account
2017-04-14 04:49:07 +09:00
title : Reports
2018-04-03 05:04:14 +09:00
unassign : Unassign
2023-01-19 00:40:09 +09:00
unknown_action_msg: 'Unknown action : %{action}'
2017-04-14 04:49:07 +09:00
unresolved : Unresolved
2018-04-03 05:04:14 +09:00
updated_at : Updated
2022-01-17 17:41:33 +09:00
view_profile : View profile
2022-07-05 09:41:40 +09:00
roles :
add_new : Add role
assigned_users :
one : "%{count} user"
other : "%{count} users"
categories :
administration : Administration
2022-11-13 11:33:20 +09:00
devops : DevOps
2022-07-05 09:41:40 +09:00
invites : Invites
moderation : Moderation
special : Special
delete : Delete
description_html : With <strong>user roles</strong>, you can customize which functions and areas of Mastodon your users can access.
edit : Edit '%{name}' role
everyone : Default permissions
everyone_full_description_html : This is the <strong>base role</strong> affecting <strong>all users</strong>, even those without an assigned role. All other roles inherit permissions from it.
permissions_count :
one : "%{count} permission"
other : "%{count} permissions"
privileges :
administrator : Administrator
administrator_description : Users with this permission will bypass every permission
delete_user_data : Delete User Data
delete_user_data_description : Allows users to delete other users' data without delay
invite_users : Invite Users
invite_users_description : Allows users to invite new people to the server
manage_announcements : Manage Announcements
manage_announcements_description : Allows users to manage announcements on the server
manage_appeals : Manage Appeals
manage_appeals_description : Allows users to review appeals against moderation actions
manage_blocks : Manage Blocks
manage_blocks_description : Allows users to block e-mail providers and IP addresses
manage_custom_emojis : Manage Custom Emojis
manage_custom_emojis_description : Allows users to manage custom emojis on the server
manage_federation : Manage Federation
manage_federation_description : Allows users to block or allow federation with other domains, and control deliverability
manage_invites : Manage Invites
manage_invites_description : Allows users to browse and deactivate invite links
manage_reports : Manage Reports
manage_reports_description : Allows users to review reports and perform moderation actions against them
manage_roles : Manage Roles
manage_roles_description : Allows users to manage and assign roles below theirs
manage_rules : Manage Rules
manage_rules_description : Allows users to change server rules
manage_settings : Manage Settings
manage_settings_description : Allows users to change site settings
manage_taxonomies : Manage Taxonomies
manage_taxonomies_description : Allows users to review trending content and update hashtag settings
manage_user_access : Manage User Access
manage_user_access_description : Allows users to disable other users' two-factor authentication, change their e-mail address, and reset their password
manage_users : Manage Users
manage_users_description : Allows users to view other users' details and perform moderation actions against them
manage_webhooks : Manage Webhooks
manage_webhooks_description : Allows users to set up webhooks for administrative events
view_audit_log : View Audit Log
view_audit_log_description : Allows users to see a history of administrative actions on the server
view_dashboard : View Dashboard
view_dashboard_description : Allows users to access the dashboard and various metrics
2022-11-13 11:33:20 +09:00
view_devops : DevOps
2022-07-05 09:41:40 +09:00
view_devops_description : Allows users to access Sidekiq and pgHero dashboards
title : Roles
2021-02-22 03:50:12 +09:00
rules :
add_new : Add rule
2021-04-17 18:12:49 +09:00
delete : Delete
description_html : While most claim to have read and agree to the terms of service, usually people do not read through until after a problem arises. <strong>Make it easier to see your server's rules at a glance by providing them in a flat bullet point list.</strong> Try to keep individual rules short and simple, but try not to split them up into many separate items either.
2021-02-22 03:50:12 +09:00
edit : Edit rule
2021-04-17 18:12:49 +09:00
empty : No server rules have been defined yet.
2021-02-22 03:50:12 +09:00
title : Server rules
2017-04-14 02:18:32 +09:00
settings :
2022-10-22 18:44:41 +09:00
about :
manage_rules : Manage server rules
preamble : Provide in-depth information about how the server is operated, moderated, funded.
rules_hint : There is a dedicated area for rules that your users are expected to adhere to.
title : About
appearance :
preamble : Customize Mastodon's web interface.
title : Appearance
branding :
preamble : Your server's branding differentiates it from other servers in the network. This information may be displayed across a variety of environments, such as Mastodon's web interface, native applications, in link previews on other websites and within messaging apps, and so on. For this reason, it is best to keep this information clear, short and concise.
title : Branding
2023-05-17 06:27:35 +09:00
captcha_enabled :
desc_html : This relies on external scripts from hCaptcha, which may be a security and privacy concern. In addition, <strong>this can make the registration process significantly less accessible to some (especially disabled) people</strong>. For these reasons, please consider alternative measures such as approval-based or invite-based registration.
title : Require new users to solve a CAPTCHA to confirm their account
2022-10-22 18:44:41 +09:00
content_retention :
preamble : Control how user-generated content is stored in Mastodon.
title : Content retention
2022-12-11 15:27:44 +09:00
default_noindex :
desc_html : Affects all users who have not changed this setting themselves
title : Opt users out of search engine indexing by default
2022-10-22 18:44:41 +09:00
discovery :
follow_recommendations : Follow recommendations
preamble : Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server.
profile_directory : Profile directory
public_timelines : Public timelines
2023-01-14 00:43:17 +09:00
publish_discovered_servers : Publish discovered servers
2023-01-14 01:14:39 +09:00
publish_statistics : Publish statistics
2022-10-22 18:44:41 +09:00
title : Discovery
trends : Trends
2019-08-19 18:35:48 +09:00
domain_blocks :
all : To everyone
disabled : To no one
users : To logged-in local users
2017-04-14 02:18:32 +09:00
registrations :
2022-10-22 18:44:41 +09:00
preamble : Control who can create an account on your server.
title : Registrations
2019-03-14 13:28:30 +09:00
registrations_mode :
modes :
approved : Approval required for sign up
none : Nobody can sign up
open : Anyone can sign up
2022-10-22 18:44:41 +09:00
title : Server Settings
2020-03-09 00:00:24 +09:00
site_uploads :
delete : Delete uploaded file
destroyed_msg : Site upload successfully deleted!
2017-07-18 23:38:22 +09:00
statuses :
2022-10-26 20:42:29 +09:00
account : Author
application : Application
2017-07-18 23:38:22 +09:00
back_to_account : Back to account page
2022-01-17 17:41:33 +09:00
back_to_report : Back to report page
2017-07-18 23:38:22 +09:00
batch :
2022-01-17 17:41:33 +09:00
remove_from_report : Remove from report
report : Report
2019-08-23 04:55:56 +09:00
deleted : Deleted
2023-04-30 16:33:37 +09:00
favourites : Favorites
2022-10-26 20:42:29 +09:00
history : Version history
in_reply_to : Replying to
language : Language
2017-07-18 23:38:22 +09:00
media :
title : Media
2022-10-26 20:42:29 +09:00
metadata : Metadata
2021-04-22 01:31:24 +09:00
no_status_selected : No posts were changed as none were selected
2022-10-26 20:42:29 +09:00
open : Open post
original_status : Original post
reblogs : Reblogs
status_changed : Post changed
2021-04-22 01:31:24 +09:00
title : Account posts
2022-10-26 20:42:29 +09:00
trending : Trending
visibility : Visibility
2017-07-23 08:14:57 +09:00
with_media : With media
2022-02-15 05:27:53 +09:00
strikes :
actions :
delete_statuses : "%{name} deleted %{target}'s posts"
disable : "%{name} froze %{target}'s account"
2022-03-02 06:20:29 +09:00
mark_statuses_as_sensitive : "%{name} marked %{target}'s posts as sensitive"
2022-02-15 05:27:53 +09:00
none : "%{name} sent a warning to %{target}"
sensitive : "%{name} marked %{target}'s account as sensitive"
silence : "%{name} limited %{target}'s account"
suspend : "%{name} suspended %{target}'s account"
appeal_approved : Appealed
appeal_pending : Appeal pending
2023-02-18 20:46:44 +09:00
appeal_rejected : Appeal rejected
2021-04-03 21:12:30 +09:00
system_checks :
database_schema_check :
message_html : There are pending database migrations. Please run them to ensure the application behaves as expected
2022-03-26 05:41:17 +09:00
elasticsearch_running_check :
message_html : Could not connect to Elasticsearch. Please check that it is running, or disable full-text search
elasticsearch_version_check :
message_html: 'Incompatible Elasticsearch version : %{value}'
version_comparison : Elasticsearch %{running_version} is running while %{required_version} is required
2021-04-03 21:12:30 +09:00
rules_check :
action : Manage server rules
message_html : You haven't defined any server rules.
sidekiq_process_check :
message_html : No Sidekiq process running for the %{value} queue(s). Please review your Sidekiq configuration
2023-03-17 06:47:01 +09:00
upload_check_privacy_error :
action : Check here for more information
message_html : "<strong>Your web server is misconfigured. The privacy of your users is at risk.</strong>"
upload_check_privacy_error_object_storage :
action : Check here for more information
message_html : "<strong>Your object storage is misconfigured. The privacy of your users is at risk.</strong>"
2018-12-07 01:36:11 +09:00
tags :
2019-08-06 02:54:29 +09:00
review : Review status
2019-08-07 17:01:55 +09:00
updated_msg : Hashtag settings updated successfully
2017-04-14 04:49:07 +09:00
title : Administration
2021-11-25 21:07:38 +09:00
trends :
allow : Allow
approved : Approved
disallow : Disallow
links :
allow : Allow link
allow_provider : Allow publisher
2022-03-03 02:57:44 +09:00
description_html : These are links that are currently being shared a lot by accounts that your server sees posts from. It can help your users find out what's going on in the world. No links are displayed publicly until you approve the publisher. You can also allow or reject individual links.
2021-11-25 21:07:38 +09:00
disallow : Disallow link
disallow_provider : Disallow publisher
2022-10-15 07:20:54 +09:00
no_link_selected : No links were changed as none were selected
publishers :
no_publisher_selected : No publishers were changed as none were selected
2021-11-25 21:07:38 +09:00
shared_by_over_week :
one : Shared by one person over the last week
other : Shared by %{count} people over the last week
title : Trending links
usage_comparison : Shared %{today} times today, compared to %{yesterday} yesterday
2023-02-18 20:46:44 +09:00
not_allowed_to_trend : Not allowed to trend
2022-05-02 10:39:45 +09:00
only_allowed : Only allowed
2021-11-25 21:07:38 +09:00
pending_review : Pending review
preview_card_providers :
allowed : Links from this publisher can trend
2022-03-03 02:57:44 +09:00
description_html : These are domains from which links are often shared on your server. Links will not trend publicly unless the domain of the link is approved. Your approval (or rejection) extends to subdomains.
2021-11-25 21:07:38 +09:00
rejected : Links from this publisher won't trend
title : Publishers
rejected : Rejected
2022-02-25 08:34:14 +09:00
statuses :
allow : Allow post
allow_account : Allow author
2023-04-30 16:33:37 +09:00
description_html : These are posts that your server knows about that are currently being shared and favorited a lot at the moment. It can help your new and returning users to find more people to follow. No posts are displayed publicly until you approve the author, and the author allows their account to be suggested to others. You can also allow or reject individual posts.
2022-02-25 08:34:14 +09:00
disallow : Disallow post
disallow_account : Disallow author
2022-10-15 07:20:54 +09:00
no_status_selected : No trending posts were changed as none were selected
2022-03-03 02:57:44 +09:00
not_discoverable : Author has not opted-in to being discoverable
2022-02-25 08:34:14 +09:00
shared_by :
2023-04-30 16:33:37 +09:00
one : Shared or favorited one time
other : Shared and favorited %{friendly_count} times
2022-02-25 08:34:14 +09:00
title : Trending posts
2021-11-25 21:07:38 +09:00
tags :
current_score : Current score %{score}
dashboard :
tag_accounts_measure : unique uses
tag_languages_dimension : Top languages
tag_servers_dimension : Top servers
tag_servers_measure : different servers
tag_uses_measure : total uses
2022-03-03 02:57:44 +09:00
description_html : These are hashtags that are currently appearing in a lot of posts that your server sees. It can help your users find out what people are talking the most about at the moment. No hashtags are displayed publicly until you approve them.
2021-11-25 21:07:38 +09:00
listable : Can be suggested
2022-10-15 07:20:54 +09:00
no_tag_selected : No tags were changed as none were selected
2021-11-25 21:07:38 +09:00
not_listable : Won't be suggested
not_trendable : Won't appear under trends
not_usable : Cannot be used
peaked_on_and_decaying : Peaked on %{date}, now decaying
title : Trending hashtags
trendable : Can appear under trends
trending_rank : 'Trending #%{rank}'
usable : Can be used
usage_comparison : Used %{today} times today, compared to %{yesterday} yesterday
used_by_over_week :
one : Used by one person over the last week
other : Used by %{count} people over the last week
title : Trends
2022-05-02 10:39:45 +09:00
trending : Trending
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
warning_presets :
add_new : Add new
delete : Delete
edit_preset : Edit warning preset
2021-04-17 18:12:49 +09:00
empty : You haven't defined any warning presets yet.
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
title : Manage warning presets
2022-06-10 04:57:36 +09:00
webhooks :
add_new : Add endpoint
delete : Delete
description_html : A <strong>webhook</strong> enables Mastodon to push <strong>real-time notifications</strong> about chosen events to your own application, so your application can <strong>automatically trigger reactions</strong>.
disable : Disable
disabled : Disabled
edit : Edit endpoint
empty : You don't have any webhook endpoints configured yet.
enable : Enable
enabled : Active
enabled_events :
one : 1 enabled event
other : "%{count} enabled events"
events : Events
new : New webhook
rotate_secret : Rotate secret
secret : Signing secret
status : Status
title : Webhooks
webhook : Webhook
2017-06-27 07:04:00 +09:00
admin_mailer :
2022-02-15 05:27:53 +09:00
new_appeal :
actions :
delete_statuses : to delete their posts
disable : to freeze their account
2022-03-02 06:20:29 +09:00
mark_statuses_as_sensitive : to mark their posts as sensitive
2022-02-15 05:27:53 +09:00
none : a warning
sensitive : to mark their account as sensitive
silence : to limit their account
suspend : to suspend their account
body : "%{target} is appealing a moderation decision by %{action_taken_by} from %{date}, which was %{type}. They wrote:"
next_steps : You can approve the appeal to undo the moderation decision, or ignore it.
subject : "%{username} is appealing a moderation decision on %{instance}"
2019-03-14 13:28:30 +09:00
new_pending_account :
body : The details of the new account are below. You can approve or reject this application.
subject : New account up for review on %{instance} (%{username})
2017-06-27 07:04:00 +09:00
new_report :
body : "%{reporter} has reported %{target}"
2018-05-04 20:26:25 +09:00
body_remote : Someone from %{domain} has reported %{target}
2017-06-27 07:04:00 +09:00
subject : New report for %{instance} (#%{id})
2022-02-25 08:34:14 +09:00
new_trends :
body : 'The following items need a review before they can be displayed publicly:'
new_trending_links :
title : Trending links
new_trending_statuses :
title : Trending posts
new_trending_tags :
no_approved_tags : There are currently no approved trending hashtags.
requirements : 'Any of these candidates could surpass the #%{rank} approved trending hashtag, which is currently #%{lowest_tag_name} with a score of %{lowest_tag_score}.'
title : Trending hashtags
subject : New trends up for review on %{instance}
2019-09-20 03:58:19 +09:00
aliases :
add_new : Create alias
created_msg : Successfully created a new alias. You can now initiate the move from the old account.
2021-05-24 10:03:01 +09:00
deleted_msg : Successfully removed the alias. Moving from that account to this one will no longer be possible.
2020-04-13 13:41:43 +09:00
empty : You have no aliases.
2019-09-20 03:58:19 +09:00
hint_html : If you want to move from another account to this one, here you can create an alias, which is required before you can proceed with moving followers from the old account to this one. This action by itself is <strong>harmless and reversible</strong>. <strong>The account migration is initiated from the old account</strong>.
remove : Unlink alias
2019-06-07 10:39:24 +09:00
appearance :
advanced_web_interface : Advanced web interface
advanced_web_interface_hint: 'If you want to make use of your entire screen width, the advanced web interface allows you to configure many different columns to see as much information at the same time as you want : Home, notifications, federated timeline, any number of lists and hashtags.'
animations_and_accessibility : Animations and accessibility
confirmation_dialogs : Confirmation dialogs
2019-08-07 00:57:52 +09:00
discovery : Discovery
2020-01-01 06:15:05 +09:00
localization :
body : Mastodon is translated by volunteers.
guide_link : https://crowdin.com/project/mastodon
guide_link_text : Everyone can contribute.
2019-06-07 10:39:24 +09:00
sensitive_content : Sensitive content
2021-04-22 01:31:24 +09:00
toot_layout : Post layout
2016-11-16 07:56:03 +09:00
application_mailer :
2018-01-16 11:29:11 +09:00
notification_preferences : Change e-mail preferences
2017-08-05 11:24:58 +09:00
salutation : "%{name},"
2017-03-04 07:45:48 +09:00
settings: 'Change e-mail preferences : %{link}'
view : 'View:'
2019-04-07 00:53:45 +09:00
view_profile : View profile
2021-04-22 01:31:24 +09:00
view_status : View post
2017-01-15 22:01:33 +09:00
applications :
2017-08-23 07:59:35 +09:00
created : Application successfully created
destroyed : Application successfully deleted
2023-02-18 20:46:44 +09:00
logout : Logout
2017-08-23 07:59:35 +09:00
regenerate_token : Regenerate access token
token_regenerated : Access token successfully regenerated
warning : Be very careful with this data. Never share it with anyone!
your_token : Your access token
2016-11-16 07:02:57 +09:00
auth :
2022-11-17 18:54:33 +09:00
apply_for_account : Request an account
2023-05-17 06:27:35 +09:00
captcha_confirmation :
hint_html : Just one more step! To confirm your account, this server requires you to solve a CAPTCHA. You can <a href="/about/more">contact the server administrator</a> if you have questions or need assistance with confirming your account.
title : User verification
2018-03-07 09:39:40 +09:00
change_password : Password
2023-01-25 04:18:25 +09:00
confirmations :
wrong_email_hint : If that e-mail address is not correct, you can change it in account settings.
2017-06-15 01:01:27 +09:00
delete_account : Delete account
delete_account_html : If you wish to delete your account, you can <a href="%{path}">proceed here</a>. You will be asked for confirmation.
2019-09-03 11:56:54 +09:00
description :
prefix_invited_by_user : "@%{name} invites you to join this server of Mastodon!"
prefix_sign_up : Sign up on Mastodon today!
suffix : With an account, you will be able to follow people, post updates and exchange messages with users from any Mastodon server and more!
2023-04-16 14:01:24 +09:00
didnt_get_confirmation : Didn't receive a confirmation link?
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
dont_have_your_security_key : Don't have your security key?
2016-11-16 07:56:03 +09:00
forgot_password : Forgot your password?
2017-08-08 00:20:21 +09:00
invalid_reset_password_token : Password reset token is invalid or expired. Please request a new one.
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
link_to_otp : Enter a two-factor code from your phone or a recovery code
link_to_webauth : Use your security key device
2022-01-23 23:52:58 +09:00
log_in_with : Log in with
2016-11-16 07:02:57 +09:00
login : Log in
2017-01-28 11:56:10 +09:00
logout : Logout
2017-11-28 06:47:06 +09:00
migrate_account : Move to a different account
migrate_account_html : If you wish to redirect this account to a different one, you can <a href="%{path}">configure it here</a>.
2018-02-04 13:42:13 +09:00
or_log_in_with : Or log in with
2022-10-06 01:57:33 +09:00
privacy_policy_agreement_html : I have read and agree to the <a href="%{privacy_policy_path}" target="_blank">privacy policy</a>
2023-04-16 14:01:24 +09:00
progress :
confirm : Confirm e-mail
details : Your details
review : Our review
rules : Accept rules
2018-02-04 13:42:13 +09:00
providers :
cas : CAS
saml : SAML
2016-11-16 07:02:57 +09:00
register : Sign up
2019-03-13 01:34:00 +09:00
registration_closed : "%{instance} is not accepting new members"
2023-04-16 14:01:24 +09:00
resend_confirmation : Resend confirmation link
2016-11-16 07:02:57 +09:00
reset_password : Reset password
2022-10-06 01:57:33 +09:00
rules :
2023-02-18 20:46:44 +09:00
accept : Accept
back : Back
2023-06-03 01:35:37 +09:00
invited_by : 'You can join %{domain} thanks to the invitation you have received from:'
2022-10-06 01:57:33 +09:00
preamble : These are set and enforced by the %{domain} moderators.
2023-06-03 01:35:37 +09:00
preamble_invited : Before you proceed, please consider the ground rules set by the moderators of %{domain}.
2022-10-06 01:57:33 +09:00
title : Some ground rules.
2023-06-03 01:35:37 +09:00
title_invited : You've been invited.
2018-03-07 09:39:40 +09:00
security : Security
2016-11-16 07:02:57 +09:00
set_new_password : Set new password
Change unconfirmed user login behaviour (#11375)
Allow access to account settings, 2FA, authorized applications, and
account deletions to unconfirmed and pending users, as well as
users who had their accounts disabled. Suspended users cannot update
their e-mail or password or delete their account.
Display account status on account settings page, for example, when
an account is frozen, limited, unconfirmed or pending review.
After sign up, login users straight away and show a simple page that
tells them the status of their account with links to account settings
and logout, to reduce onboarding friction and allow users to correct
wrongly typed e-mail addresses.
Move the final sign-up step of SSO integrations to be the same
as above to reduce code duplication.
2019-07-22 17:48:50 +09:00
setup :
2023-04-16 14:01:24 +09:00
email_below_hint_html : Check your spam folder, or request another one. You can correct your e-mail address if it's wrong.
email_settings_hint_html : Click the link we sent you to verify %{email}. We'll wait right here.
link_not_received : Didn't get a link?
new_confirmation_instructions_sent : You will receive a new e-mail with the confirmation link in a few minutes!
title : Check your inbox
2022-12-16 00:44:29 +09:00
sign_in :
2023-05-11 03:17:55 +09:00
preamble_html : Login with your <strong>%{domain}</strong> credentials. If your account is hosted on a different server, you will not be able to log in here.
title : Login to %{domain}
2022-10-06 01:57:33 +09:00
sign_up :
2023-04-16 14:01:24 +09:00
manual_review : Sign-ups on %{domain} go through manual review by our moderators. To help us process your registration, write a bit about yourself and why you want an account on %{domain}.
2022-10-06 01:57:33 +09:00
preamble : With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted.
title : Let's get you set up on %{domain}.
Change unconfirmed user login behaviour (#11375)
Allow access to account settings, 2FA, authorized applications, and
account deletions to unconfirmed and pending users, as well as
users who had their accounts disabled. Suspended users cannot update
their e-mail or password or delete their account.
Display account status on account settings page, for example, when
an account is frozen, limited, unconfirmed or pending review.
After sign up, login users straight away and show a simple page that
tells them the status of their account with links to account settings
and logout, to reduce onboarding friction and allow users to correct
wrongly typed e-mail addresses.
Move the final sign-up step of SSO integrations to be the same
as above to reduce code duplication.
2019-07-22 17:48:50 +09:00
status :
account_status : Account status
confirming : Waiting for e-mail confirmation to be completed.
2022-03-02 03:37:47 +09:00
functional : Your account is fully operational.
Change unconfirmed user login behaviour (#11375)
Allow access to account settings, 2FA, authorized applications, and
account deletions to unconfirmed and pending users, as well as
users who had their accounts disabled. Suspended users cannot update
their e-mail or password or delete their account.
Display account status on account settings page, for example, when
an account is frozen, limited, unconfirmed or pending review.
After sign up, login users straight away and show a simple page that
tells them the status of their account with links to account settings
and logout, to reduce onboarding friction and allow users to correct
wrongly typed e-mail addresses.
Move the final sign-up step of SSO integrations to be the same
as above to reduce code duplication.
2019-07-22 17:48:50 +09:00
pending : Your application is pending review by our staff. This may take some time. You will receive an e-mail if your application is approved.
2019-09-20 03:58:19 +09:00
redirecting_to : Your account is inactive because it is currently redirecting to %{acct}.
2022-03-02 03:37:47 +09:00
view_strikes : View past strikes against your account
2020-12-10 14:27:26 +09:00
too_fast : Form submitted too fast, try again.
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
use_security_key : Use security key
2016-12-30 00:54:54 +09:00
authorize_follow :
2018-03-24 20:50:41 +09:00
already_following : You are already following this account
2020-02-25 05:19:19 +09:00
already_requested : You have already sent a follow request to that account
2016-12-30 00:54:54 +09:00
error : Unfortunately, there was an error looking up the remote account
follow : Follow
2017-07-11 01:05:06 +09:00
follow_request : 'You have sent a follow request to:'
2017-07-12 10:24:04 +09:00
following : 'Success! You are now following:'
2017-07-11 01:05:06 +09:00
post_follow :
close : Or, you can just close this window.
2018-06-04 10:00:36 +09:00
return : Show the user's profile
2017-07-12 10:24:04 +09:00
web : Go to web
2016-12-30 00:54:54 +09:00
title : Follow %{acct}
2019-09-18 23:37:27 +09:00
challenge :
confirm : Continue
hint_html : "<strong>Tip:</strong> We won't ask you for your password again for the next hour."
invalid_password : Invalid password
prompt : Confirm password to continue
2020-06-03 02:24:53 +09:00
crypto :
errors :
invalid_key : is not a valid Ed25519 or Curve25519 key
invalid_signature : is not a valid Ed25519 signature
2020-01-24 06:00:13 +09:00
date :
formats :
default : "%b %d, %Y"
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
with_month_name : "%B %d, %Y"
2016-12-19 03:47:11 +09:00
datetime :
distance_in_words :
about_x_hours : "%{count}h"
about_x_months : "%{count}mo"
about_x_years : "%{count}y"
almost_x_years : "%{count}y"
half_a_minute : Just now
less_than_x_minutes : "%{count}m"
less_than_x_seconds : Just now
over_x_years : "%{count}y"
x_days : "%{count}d"
x_minutes : "%{count}m"
x_months : "%{count}mo"
x_seconds : "%{count}s"
2017-06-15 01:01:27 +09:00
deletes :
2019-09-16 04:08:39 +09:00
challenge_not_passed : The information you entered was not correct
2017-06-15 01:01:27 +09:00
confirm_password : Enter your current password to verify your identity
2019-09-16 04:08:39 +09:00
confirm_username : Enter your username to confirm the procedure
2017-06-15 01:01:27 +09:00
proceed : Delete account
success_msg : Your account was successfully deleted
2019-09-04 11:13:54 +09:00
warning :
before : 'Before proceeding, please read these notes carefully:'
caches : Content that has been cached by other servers may persist
data_removal : Your posts and other data will be permanently removed
email_change_html : You can <a href="%{path}">change your e-mail address</a> without deleting your account
email_contact_html : If it still doesn't arrive, you can e-mail <a href="mailto:%{email}">%{email}</a> for help
email_reconfirmation_html : If you are not receiving the confirmation e-mail, you can <a href="%{path}">request it again</a>
irreversible : You will not be able to restore or reactivate your account
more_details_html : For more details, see the <a href="%{terms_path}">privacy policy</a>.
username_available : Your username will become available again
username_unavailable : Your username will remain unavailable
2022-02-15 05:27:53 +09:00
disputes :
strikes :
action_taken : Action taken
appeal : Appeal
appeal_approved : This strike has been successfully appealed and is no longer valid
appeal_rejected : The appeal has been rejected
appeal_submitted_at : Appeal submitted
appealed_msg : Your appeal has been submitted. If it is approved, you will be notified.
appeals :
submit : Submit appeal
2022-05-07 04:41:34 +09:00
approve_appeal : Approve appeal
2022-02-15 05:27:53 +09:00
associated_report : Associated report
created_at : Dated
2022-03-02 03:37:47 +09:00
description_html : These are actions taken against your account and warnings that have been sent to you by the staff of %{instance}.
2022-02-15 05:27:53 +09:00
recipient : Addressed to
2022-05-07 04:41:34 +09:00
reject_appeal : Reject appeal
2022-02-15 05:27:53 +09:00
status : 'Post #%{id}'
status_removed : Post already removed from system
title : "%{action} from %{date}"
title_actions :
delete_statuses : Post removal
disable : Freezing of account
2022-03-02 06:20:29 +09:00
mark_statuses_as_sensitive : Marking of posts as sensitive
2022-02-15 05:27:53 +09:00
none : Warning
2022-03-02 06:20:29 +09:00
sensitive : Marking of account as sensitive
2022-02-15 05:27:53 +09:00
silence : Limitation of account
suspend : Suspension of account
your_appeal_approved : Your appeal has been approved
your_appeal_pending : You have submitted an appeal
your_appeal_rejected : Your appeal has been rejected
2019-08-09 06:04:19 +09:00
domain_validator :
invalid_domain : is not a valid domain name
2017-04-14 02:18:32 +09:00
errors :
2019-08-30 08:34:47 +09:00
'400' : The request you submitted was invalid or malformed.
2017-04-23 12:21:10 +09:00
'403' : You don't have permission to view this page.
2019-02-01 08:07:08 +09:00
'404' : The page you are looking for isn't here.
2019-08-30 08:34:47 +09:00
'406' : This page is not available in the requested format.
2019-02-01 08:07:08 +09:00
'410' : The page you were looking for doesn't exist here anymore.
2017-04-14 02:18:32 +09:00
'422' :
content : Security verification failed. Are you blocking cookies?
title : Security verification failed
2020-03-08 23:17:39 +09:00
'429' : Too many requests
2017-09-26 06:05:54 +09:00
'500' :
content : We're sorry, but something went wrong on our end.
title : This page is not correct
2019-08-30 08:34:47 +09:00
'503' : The page could not be served due to a temporary server failure.
2018-10-06 14:33:36 +09:00
noscript_html : To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the <a href="%{apps_path}">native apps</a> for Mastodon for your platform.
2019-03-23 22:07:04 +09:00
existing_username_validator :
not_found : could not find a local user with that username
not_found_multiple : could not find %{usernames}
2017-03-20 04:29:41 +09:00
exports :
2018-02-22 07:21:32 +09:00
archive_takeout :
date : Date
download : Download your archive
2021-04-22 01:31:24 +09:00
hint_html : You can request an archive of your <strong>posts and uploaded media</strong>. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
2018-02-22 07:21:32 +09:00
in_progress : Compiling your archive...
request : Request your archive
size : Size
2017-03-20 04:29:41 +09:00
blocks : You block
2020-11-20 01:48:13 +09:00
bookmarks : Bookmarks
2017-03-20 04:29:41 +09:00
csv : CSV
2019-01-06 03:13:11 +09:00
domain_blocks : Domain blocks
lists : Lists
2017-04-14 02:18:32 +09:00
mutes : You mute
2017-03-20 04:29:41 +09:00
storage : Media storage
2019-02-04 12:25:59 +09:00
featured_tags :
add_new : Add new
errors :
2023-02-19 15:12:32 +09:00
limit : You have already featured the maximum number of hashtags
2019-08-18 01:07:52 +09:00
hint_html : "<strong>What are featured hashtags?</strong> They are displayed prominently on your public profile and allow people to browse your public posts specifically under those hashtags. They are a great tool for keeping track of creative works or long-term projects."
2018-06-29 22:34:36 +09:00
filters :
contexts :
2020-01-24 05:32:00 +09:00
account : Profiles
2020-11-11 09:18:42 +09:00
home : Home and lists
2018-06-29 22:34:36 +09:00
notifications : Notifications
public : Public timelines
thread : Conversations
edit :
Revamp post filtering system (#18058)
* Add model for custom filter keywords
* Use CustomFilterKeyword internally
Does not change the API
* Fix /filters/edit and /filters/new
* Add migration tests
* Remove whole_word column from custom_filters (covered by custom_filter_keywords)
* Redesign /filters
Instead of a list, present a card that displays more information and handles
multiple keywords per filter.
* Redesign /filters/new and /filters/edit to add and remove keywords
This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.
* Add /api/v2/filters to edit filter with multiple keywords
Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
`keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`
API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
`keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
`keywords_attributes` can also be passed to edit, delete or add keywords in
one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword
* Change from `irreversible` boolean to `action` enum
* Remove irrelevent `irreversible_must_be_within_context` check
* Fix /filters/new and /filters/edit with update for filter_action
* Fix Rubocop/Codeclimate complaining about task names
* Refactor FeedManager#phrase_filtered?
This moves regexp building and filter caching to the `CustomFilter` class.
This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.
* Perform server-side filtering and output result in REST API
* Fix numerous filters_changed events being sent when editing multiple keywords at once
* Add some tests
* Use the new API in the WebUI
- use client-side logic for filters we have fetched rules for.
This is so that filter changes can be retroactively applied without
reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
(e.g. network error, or initial timeline loading)
* Minor optimizations and refactoring
* Perform server-side filtering on the streaming server
* Change the wording of filter action labels
* Fix issues pointed out by linter
* Change design of “Show anyway” link in accordence to review comments
* Drop “irreversible” filtering behavior
* Move /api/v2/filter_keywords to /api/v1/filters/keywords
* Rename `filter_results` attribute to `filtered`
* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer
* Fix systemChannelId value in streaming server
* Simplify code by removing client-side filtering code
The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
2022-06-28 16:42:13 +09:00
add_keyword : Add keyword
keywords : Keywords
2022-08-25 11:27:47 +09:00
statuses : Individual posts
2022-08-26 00:36:01 +09:00
statuses_hint_html : This filter applies to select individual posts regardless of whether they match the keywords below. <a href="%{path}">Review or remove posts from the filter</a>.
2018-06-29 22:34:36 +09:00
title : Edit filter
errors :
Revamp post filtering system (#18058)
* Add model for custom filter keywords
* Use CustomFilterKeyword internally
Does not change the API
* Fix /filters/edit and /filters/new
* Add migration tests
* Remove whole_word column from custom_filters (covered by custom_filter_keywords)
* Redesign /filters
Instead of a list, present a card that displays more information and handles
multiple keywords per filter.
* Redesign /filters/new and /filters/edit to add and remove keywords
This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.
* Add /api/v2/filters to edit filter with multiple keywords
Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
`keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`
API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
`keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
`keywords_attributes` can also be passed to edit, delete or add keywords in
one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword
* Change from `irreversible` boolean to `action` enum
* Remove irrelevent `irreversible_must_be_within_context` check
* Fix /filters/new and /filters/edit with update for filter_action
* Fix Rubocop/Codeclimate complaining about task names
* Refactor FeedManager#phrase_filtered?
This moves regexp building and filter caching to the `CustomFilter` class.
This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.
* Perform server-side filtering and output result in REST API
* Fix numerous filters_changed events being sent when editing multiple keywords at once
* Add some tests
* Use the new API in the WebUI
- use client-side logic for filters we have fetched rules for.
This is so that filter changes can be retroactively applied without
reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
(e.g. network error, or initial timeline loading)
* Minor optimizations and refactoring
* Perform server-side filtering on the streaming server
* Change the wording of filter action labels
* Fix issues pointed out by linter
* Change design of “Show anyway” link in accordence to review comments
* Drop “irreversible” filtering behavior
* Move /api/v2/filter_keywords to /api/v1/filters/keywords
* Rename `filter_results` attribute to `filtered`
* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer
* Fix systemChannelId value in streaming server
* Simplify code by removing client-side filtering code
The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
2022-06-28 16:42:13 +09:00
deprecated_api_multiple_keywords : These parameters cannot be changed from this application because they apply to more than one filter keyword. Use a more recent application or the web interface.
2018-06-29 22:34:36 +09:00
invalid_context : None or invalid context supplied
index :
Revamp post filtering system (#18058)
* Add model for custom filter keywords
* Use CustomFilterKeyword internally
Does not change the API
* Fix /filters/edit and /filters/new
* Add migration tests
* Remove whole_word column from custom_filters (covered by custom_filter_keywords)
* Redesign /filters
Instead of a list, present a card that displays more information and handles
multiple keywords per filter.
* Redesign /filters/new and /filters/edit to add and remove keywords
This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.
* Add /api/v2/filters to edit filter with multiple keywords
Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
`keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`
API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
`keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
`keywords_attributes` can also be passed to edit, delete or add keywords in
one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword
* Change from `irreversible` boolean to `action` enum
* Remove irrelevent `irreversible_must_be_within_context` check
* Fix /filters/new and /filters/edit with update for filter_action
* Fix Rubocop/Codeclimate complaining about task names
* Refactor FeedManager#phrase_filtered?
This moves regexp building and filter caching to the `CustomFilter` class.
This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.
* Perform server-side filtering and output result in REST API
* Fix numerous filters_changed events being sent when editing multiple keywords at once
* Add some tests
* Use the new API in the WebUI
- use client-side logic for filters we have fetched rules for.
This is so that filter changes can be retroactively applied without
reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
(e.g. network error, or initial timeline loading)
* Minor optimizations and refactoring
* Perform server-side filtering on the streaming server
* Change the wording of filter action labels
* Fix issues pointed out by linter
* Change design of “Show anyway” link in accordence to review comments
* Drop “irreversible” filtering behavior
* Move /api/v2/filter_keywords to /api/v1/filters/keywords
* Rename `filter_results` attribute to `filtered`
* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer
* Fix systemChannelId value in streaming server
* Simplify code by removing client-side filtering code
The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
2022-06-28 16:42:13 +09:00
contexts : Filters in %{contexts}
2018-06-29 22:34:36 +09:00
delete : Delete
2020-01-07 18:41:19 +09:00
empty : You have no filters.
Revamp post filtering system (#18058)
* Add model for custom filter keywords
* Use CustomFilterKeyword internally
Does not change the API
* Fix /filters/edit and /filters/new
* Add migration tests
* Remove whole_word column from custom_filters (covered by custom_filter_keywords)
* Redesign /filters
Instead of a list, present a card that displays more information and handles
multiple keywords per filter.
* Redesign /filters/new and /filters/edit to add and remove keywords
This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.
* Add /api/v2/filters to edit filter with multiple keywords
Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
`keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`
API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
`keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
`keywords_attributes` can also be passed to edit, delete or add keywords in
one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword
* Change from `irreversible` boolean to `action` enum
* Remove irrelevent `irreversible_must_be_within_context` check
* Fix /filters/new and /filters/edit with update for filter_action
* Fix Rubocop/Codeclimate complaining about task names
* Refactor FeedManager#phrase_filtered?
This moves regexp building and filter caching to the `CustomFilter` class.
This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.
* Perform server-side filtering and output result in REST API
* Fix numerous filters_changed events being sent when editing multiple keywords at once
* Add some tests
* Use the new API in the WebUI
- use client-side logic for filters we have fetched rules for.
This is so that filter changes can be retroactively applied without
reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
(e.g. network error, or initial timeline loading)
* Minor optimizations and refactoring
* Perform server-side filtering on the streaming server
* Change the wording of filter action labels
* Fix issues pointed out by linter
* Change design of “Show anyway” link in accordence to review comments
* Drop “irreversible” filtering behavior
* Move /api/v2/filter_keywords to /api/v1/filters/keywords
* Rename `filter_results` attribute to `filtered`
* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer
* Fix systemChannelId value in streaming server
* Simplify code by removing client-side filtering code
The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
2022-06-28 16:42:13 +09:00
expires_in : Expires in %{distance}
expires_on : Expires on %{date}
keywords :
one : "%{count} keyword"
other : "%{count} keywords"
2022-08-25 11:27:47 +09:00
statuses :
one : "%{count} post"
other : "%{count} posts"
statuses_long :
one : "%{count} individual post hidden"
other : "%{count} individual posts hidden"
2018-06-29 22:34:36 +09:00
title : Filters
new :
Revamp post filtering system (#18058)
* Add model for custom filter keywords
* Use CustomFilterKeyword internally
Does not change the API
* Fix /filters/edit and /filters/new
* Add migration tests
* Remove whole_word column from custom_filters (covered by custom_filter_keywords)
* Redesign /filters
Instead of a list, present a card that displays more information and handles
multiple keywords per filter.
* Redesign /filters/new and /filters/edit to add and remove keywords
This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.
* Add /api/v2/filters to edit filter with multiple keywords
Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
`keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`
API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
`keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
`keywords_attributes` can also be passed to edit, delete or add keywords in
one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword
* Change from `irreversible` boolean to `action` enum
* Remove irrelevent `irreversible_must_be_within_context` check
* Fix /filters/new and /filters/edit with update for filter_action
* Fix Rubocop/Codeclimate complaining about task names
* Refactor FeedManager#phrase_filtered?
This moves regexp building and filter caching to the `CustomFilter` class.
This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.
* Perform server-side filtering and output result in REST API
* Fix numerous filters_changed events being sent when editing multiple keywords at once
* Add some tests
* Use the new API in the WebUI
- use client-side logic for filters we have fetched rules for.
This is so that filter changes can be retroactively applied without
reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
(e.g. network error, or initial timeline loading)
* Minor optimizations and refactoring
* Perform server-side filtering on the streaming server
* Change the wording of filter action labels
* Fix issues pointed out by linter
* Change design of “Show anyway” link in accordence to review comments
* Drop “irreversible” filtering behavior
* Move /api/v2/filter_keywords to /api/v1/filters/keywords
* Rename `filter_results` attribute to `filtered`
* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer
* Fix systemChannelId value in streaming server
* Simplify code by removing client-side filtering code
The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
2022-06-28 16:42:13 +09:00
save : Save new filter
2018-06-29 22:34:36 +09:00
title : Add new filter
2022-08-25 11:27:47 +09:00
statuses :
back_to_filter : Back to filter
batch :
remove : Remove from filter
index :
2022-08-26 00:36:01 +09:00
hint : This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface.
2022-08-25 11:27:47 +09:00
title : Filtered posts
2016-11-16 07:02:57 +09:00
generic :
2019-03-16 19:23:22 +09:00
all : All
2022-08-26 06:33:34 +09:00
all_items_on_page_selected_html :
one : "<strong>%{count}</strong> item on this page is selected."
other : All <strong>%{count}</strong> items on this page are selected.
all_matching_items_selected_html :
one : "<strong>%{count}</strong> item matching your search is selected."
other : All <strong>%{count}</strong> items matching your search are selected.
2023-05-02 19:08:48 +09:00
cancel : Cancel
2016-11-16 07:56:03 +09:00
changes_saved_msg : Changes successfully saved!
2023-05-02 19:08:48 +09:00
confirm : Confirm
2018-10-09 07:12:37 +09:00
copy : Copy
2020-01-24 06:00:13 +09:00
delete : Delete
2022-08-26 06:33:34 +09:00
deselect : Deselect all
2021-11-25 21:07:38 +09:00
none : None
2019-04-01 12:50:05 +09:00
order_by : Order by
2016-11-16 07:02:57 +09:00
save_changes : Save changes
2022-08-26 06:33:34 +09:00
select_all_matching_items :
one : Select %{count} item matching your search.
other : Select all %{count} items matching your search.
2021-12-06 05:48:39 +09:00
today : today
2016-11-16 07:02:57 +09:00
validation_errors :
one : Something isn't quite right yet! Please review the error below
other : Something isn't quite right yet! Please review %{count} errors below
2017-03-31 02:42:33 +09:00
imports :
2020-12-18 17:18:31 +09:00
errors :
2023-05-02 19:08:48 +09:00
empty : Empty CSV file
incompatible_type : Incompatible with the selected import type
2022-11-17 19:05:09 +09:00
invalid_csv_file: 'Invalid CSV file. Error : %{error}'
2020-12-18 17:18:31 +09:00
over_rows_processing_limit : contains more than %{count} rows
2023-05-02 19:08:48 +09:00
too_large : File is too large
failures : Failures
imported : Imported
mismatched_types_warning : It appears you may have selected the wrong type for this import, please double-check.
2019-02-03 11:59:51 +09:00
modes :
merge : Merge
merge_long : Keep existing records and add new ones
overwrite : Overwrite
overwrite_long : Replace current records with the new ones
2023-05-02 19:08:48 +09:00
overwrite_preambles :
blocking_html : You are about to <strong>replace your block list</strong> with up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
bookmarks_html : You are about to <strong>replace your bookmarks</strong> with up to <strong>%{total_items} posts</strong> from <strong>%{filename}</strong>.
domain_blocking_html : You are about to <strong>replace your domain block list</strong> with up to <strong>%{total_items} domains</strong> from <strong>%{filename}</strong>.
following_html : You are about to <strong>follow</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong> and <strong>stop following anyone else</strong>.
muting_html : You are about to <strong>replace your list of muted accounts</strong> with up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
preambles :
blocking_html : You are about to <strong>block</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
bookmarks_html : You are about to add up to <strong>%{total_items} posts</strong> from <strong>%{filename}</strong> to your <strong>bookmarks</strong>.
domain_blocking_html : You are about to <strong>block</strong> up to <strong>%{total_items} domains</strong> from <strong>%{filename}</strong>.
following_html : You are about to <strong>follow</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
muting_html : You are about to <strong>mute</strong> up to <strong>%{total_items} accounts</strong> from <strong>%{filename}</strong>.
2019-02-06 03:11:24 +09:00
preface : You can import data that you have exported from another server, such as a list of the people you are following or blocking.
2023-05-02 19:08:48 +09:00
recent_imports : Recent imports
states :
finished : Finished
in_progress : In progress
scheduled : Scheduled
unconfirmed : Unconfirmed
status : Status
2021-05-24 10:03:01 +09:00
success : Your data was successfully uploaded and will be processed in due time
2023-05-02 19:08:48 +09:00
time_started : Started at
titles :
blocking : Importing blocked accounts
bookmarks : Importing bookmarks
domain_blocking : Importing blocked domains
following : Importing followed accounts
muting : Importing muted accounts
type : Import type
type_groups :
constructive : Follows & Bookmarks
destructive : Blocks & mutes
2017-03-31 02:42:33 +09:00
types :
blocking : Blocking list
2020-11-20 01:48:13 +09:00
bookmarks : Bookmarks
2019-02-03 11:59:51 +09:00
domain_blocking : Domain blocking list
2017-03-31 02:42:33 +09:00
following : Following list
2017-04-13 01:20:44 +09:00
muting : Muting list
2017-03-31 02:42:33 +09:00
upload : Upload
2017-11-28 00:07:59 +09:00
invites :
2017-11-28 23:41:02 +09:00
delete : Deactivate
expired : Expired
2017-11-28 00:07:59 +09:00
expires_in :
'1800' : 30 minutes
'21600' : 6 hours
'3600' : 1 hour
'43200' : 12 hours
2018-03-24 20:50:14 +09:00
'604800' : 1 week
2017-11-28 00:07:59 +09:00
'86400' : 1 day
expires_in_prompt : Never
2019-10-04 05:37:13 +09:00
generate : Generate invite link
2018-06-16 01:00:23 +09:00
invited_by : 'You were invited by:'
2017-11-28 00:07:59 +09:00
max_uses :
one : 1 use
other : "%{count} uses"
max_uses_prompt : No limit
2019-02-06 03:11:24 +09:00
prompt : Generate and share links with others to grant access to this server
2017-11-28 00:07:59 +09:00
table :
expires_at : Expires
uses : Uses
title : Invite people
2017-12-09 09:32:29 +09:00
lists :
errors :
2023-02-19 15:12:32 +09:00
limit : You have reached the maximum number of lists
2021-06-22 00:07:30 +09:00
login_activities :
authentication_methods :
otp : two-factor authentication app
password : password
sign_in_token : e-mail security code
webauthn : security keys
description_html : If you see activity that you don't recognize, consider changing your password and enabling two-factor authentication.
empty : No authentication history available
failed_sign_in_html : Failed sign-in attempt with %{method} from %{ip} (%{browser})
successful_sign_in_html : Successful sign-in with %{method} from %{ip} (%{browser})
title : Authentication history
2017-04-09 05:20:08 +09:00
media_attachments :
validations :
2021-04-22 01:31:24 +09:00
images_and_video : Cannot attach a video to a post that already contains images
2020-03-09 07:56:18 +09:00
not_ready : Cannot attach files that have not finished processing. Try again in a moment!
2017-04-09 05:20:08 +09:00
too_many : Cannot attach more than 4 files
2017-11-28 06:47:06 +09:00
migrations :
2019-09-20 03:58:19 +09:00
acct : Moved to
cancel : Cancel redirect
cancel_explanation : Cancelling the redirect will re-activate your current account, but will not bring back followers that have been moved to that account.
cancelled_msg : Successfully cancelled the redirect.
errors :
already_moved : is the same account you have already moved to
2020-05-13 04:38:24 +09:00
missing_also_known_as : is not an alias of this account
2019-09-20 03:58:19 +09:00
move_to_self : cannot be current account
not_found : could not be found
on_cooldown : You are on cooldown
followers_count : Followers at time of move
incoming_migrations : Moving from a different account
incoming_migrations_html : To move from another account to this one, first you need to <a href="%{path}">create an account alias</a>.
moved_msg : Your account is now redirecting to %{acct} and your followers are being moved over.
not_redirecting : Your account is not redirecting to any other account currently.
on_cooldown : You have recently migrated your account. This function will become available again in %{count} days.
past_migrations : Past migrations
proceed_with_move : Move followers
2020-06-04 03:18:19 +09:00
redirected_msg : Your account is now redirecting to %{acct}.
2019-09-20 03:58:19 +09:00
redirecting_to : Your account is redirecting to %{acct}.
2019-09-29 12:03:19 +09:00
set_redirect : Set redirect
2019-09-20 03:58:19 +09:00
warning :
backreference_required : The new account must first be configured to back-reference this one
before : 'Before proceeding, please read these notes carefully:'
2021-05-24 10:03:01 +09:00
cooldown : After moving there is a waiting period during which you will not be able to move again
2019-09-20 03:58:19 +09:00
disabled_account : Your current account will not be fully usable afterwards. However, you will have access to data export as well as re-activation.
followers : This action will move all followers from the current account to the new account
2019-09-29 12:03:19 +09:00
only_redirect_html : Alternatively, you can <a href="%{path}">only put up a redirect on your profile</a>.
2019-09-20 03:58:19 +09:00
other_data : No other data will be moved automatically
2019-09-29 12:03:19 +09:00
redirect : Your current account's profile will be updated with a redirect notice and be excluded from searches
2017-11-24 10:05:53 +09:00
moderation :
title : Moderation
2020-07-01 02:19:50 +09:00
move_handler :
2020-07-01 20:51:15 +09:00
carry_blocks_over_text : This user moved from %{acct}, which you had blocked.
carry_mutes_over_text : This user moved from %{acct}, which you had muted.
2020-07-01 02:19:50 +09:00
copy_account_note_text : 'This user moved from %{acct}, here were your previous notes about them:'
2022-10-30 09:43:15 +09:00
navigation :
toggle_menu : Toggle menu
2016-11-16 07:56:03 +09:00
notification_mailer :
2022-02-24 00:45:22 +09:00
admin :
2022-06-27 16:30:15 +09:00
report :
subject : "%{name} submitted a report"
2022-02-24 00:45:22 +09:00
sign_up :
subject : "%{name} signed up"
2016-11-16 07:56:03 +09:00
favourite :
2023-04-30 16:33:37 +09:00
body : 'Your post was favorited by %{name}:'
subject : "%{name} favorited your post"
title : New favorite
2016-11-16 07:56:03 +09:00
follow :
body : "%{name} is now following you!"
subject : "%{name} is now following you"
2018-01-17 04:20:15 +09:00
title : New follower
2016-12-27 05:52:03 +09:00
follow_request :
2018-01-17 04:20:15 +09:00
action : Manage follow requests
2016-12-27 05:52:03 +09:00
body : "%{name} has requested to follow you"
subject: 'Pending follower : %{name}'
2018-01-17 04:20:15 +09:00
title : New follow request
2016-11-16 07:56:03 +09:00
mention :
2018-01-17 04:20:15 +09:00
action : Reply
2016-11-16 07:56:03 +09:00
body : 'You were mentioned by %{name} in:'
subject : You were mentioned by %{name}
2018-01-17 04:20:15 +09:00
title : New mention
2021-03-20 04:22:49 +09:00
poll :
2021-03-20 07:47:31 +09:00
subject : A poll by %{name} has ended
2016-11-16 07:56:03 +09:00
reblog :
2021-04-22 01:31:24 +09:00
body : 'Your post was boosted by %{name}:'
subject : "%{name} boosted your post"
2018-01-17 04:20:15 +09:00
title : New boost
2021-03-20 01:15:59 +09:00
status :
subject : "%{name} just posted"
2022-02-12 06:20:19 +09:00
update :
subject : "%{name} edited a post"
2019-11-30 01:03:06 +09:00
notifications :
email_events : Events for e-mail notifications
email_events_hint : 'Select events that you want to receive notifications for:'
other_settings : Other notifications settings
2017-08-28 00:04:45 +09:00
number :
human :
decimal_units :
format : "%n%u"
units :
billion : B
million : M
quadrillion : Q
thousand : K
trillion : T
unit : ''
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
otp_authentication :
code_hint : Enter the code generated by your authenticator app to confirm
description_html : If you enable <strong>two-factor authentication</strong> using an authenticator app, logging in will require you to be in possession of your phone, which will generate tokens for you to enter.
enable : Enable
2021-05-24 10:03:01 +09:00
instructions_html : "<strong>Scan this QR code into Google Authenticator or a similar TOTP app on your phone</strong>. From now on, that app will generate tokens that you will have to enter when logging in."
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
manual_instructions : 'If you can' 't scan the QR code and need to enter it manually, here is the plain-text secret:'
setup : Set up
wrong_code : The entered code was invalid! Are server time and device time correct?
2016-11-16 07:02:57 +09:00
pagination :
2018-02-26 11:31:28 +09:00
newer : Newer
2016-11-16 07:02:57 +09:00
next : Next
2018-02-26 11:31:28 +09:00
older : Older
2016-11-16 07:02:57 +09:00
prev : Prev
2017-04-11 08:11:41 +09:00
truncate : "…"
2019-03-04 06:18:23 +09:00
polls :
errors :
already_voted : You have already voted on this poll
duplicate_options : contain duplicate items
duration_too_long : is too far into the future
duration_too_short : is too soon
expired : The poll has already ended
2020-01-12 22:17:03 +09:00
invalid_choice : The chosen vote option does not exist
2019-03-06 12:54:11 +09:00
over_character_limit : cannot be longer than %{max} characters each
2023-05-17 07:08:42 +09:00
self_vote : You cannot vote in your own polls
2019-03-04 06:18:23 +09:00
too_few_options : must have more than one item
2019-03-06 12:54:11 +09:00
too_many_options : can't contain more than %{max} items
2017-10-01 17:52:39 +09:00
preferences :
other : Other
2019-06-07 10:39:24 +09:00
posting_defaults : Posting defaults
public_timelines : Public timelines
2022-10-08 13:01:11 +09:00
privacy_policy :
title : Privacy Policy
2020-01-24 06:00:13 +09:00
reactions :
errors :
2020-01-25 13:23:33 +09:00
limit_reached : Limit of different reactions reached
2020-01-24 06:00:13 +09:00
unrecognized_emoji : is not a recognized emoji
2019-03-16 19:23:22 +09:00
relationships :
2019-03-18 11:53:17 +09:00
activity : Account activity
2023-01-14 22:00:23 +09:00
confirm_follow_selected_followers : Are you sure you want to follow selected followers?
confirm_remove_selected_followers : Are you sure you want to remove selected followers?
confirm_remove_selected_follows : Are you sure you want to remove selected follows?
2019-03-18 11:53:17 +09:00
dormant : Dormant
2023-03-04 04:36:18 +09:00
follow_failure : Could not follow some of the selected accounts.
2020-11-13 00:58:00 +09:00
follow_selected_followers : Follow selected followers
2019-12-01 15:08:40 +09:00
followers : Followers
following : Following
2020-01-24 04:33:20 +09:00
invited : Invited
2019-03-28 10:16:01 +09:00
last_active : Last active
most_recent : Most recent
2019-03-18 11:53:17 +09:00
moved : Moved
2019-03-16 19:23:22 +09:00
mutual : Mutual
2019-03-18 11:53:17 +09:00
primary : Primary
2019-03-16 19:23:22 +09:00
relationship : Relationship
remove_selected_domains : Remove all followers from the selected domains
remove_selected_followers : Remove selected followers
remove_selected_follows : Unfollow selected users
status : Account status
2017-01-02 03:52:25 +09:00
remote_follow :
missing_resource : Could not find the required redirect URL for your account
2022-02-10 08:10:16 +09:00
reports :
errors :
invalid_rules : does not reference valid rules
2022-05-09 14:43:08 +09:00
rss :
content_warning : 'Content warning:'
descriptions :
account : Public posts from @%{acct}
tag : 'Public posts tagged #%{hashtag}'
2019-01-05 20:43:28 +09:00
scheduled_statuses :
2021-05-24 10:03:01 +09:00
over_daily_limit : You have exceeded the limit of %{limit} scheduled posts for today
2021-04-22 01:31:24 +09:00
over_total_limit : You have exceeded the limit of %{limit} scheduled posts
2019-01-05 20:43:28 +09:00
too_soon : The scheduled date must be in the future
2017-06-25 23:54:30 +09:00
sessions :
activity : Last activity
browser : Browser
browsers :
alipay : Alipay
2022-11-13 11:33:20 +09:00
blackberry : BlackBerry
2017-06-25 23:54:30 +09:00
chrome : Chrome
edge : Microsoft Edge
2018-01-15 14:50:29 +09:00
electron : Electron
2017-06-25 23:54:30 +09:00
firefox : Firefox
generic : Unknown browser
2023-03-05 08:33:08 +09:00
huawei_browser : Huawei Browser
2017-06-25 23:54:30 +09:00
ie : Internet Explorer
micro_messenger : MicroMessenger
nokia : Nokia S40 Ovi Browser
opera : Opera
2018-01-15 14:50:29 +09:00
otter : Otter
2017-06-25 23:54:30 +09:00
phantom_js : PhantomJS
qq : QQ Browser
safari : Safari
2022-11-13 11:33:20 +09:00
uc_browser : UC Browser
2023-03-05 08:33:08 +09:00
unknown_browser : Unknown Browser
2017-06-25 23:54:30 +09:00
weibo : Weibo
current_session : Current session
description : "%{browser} on %{platform}"
explanation : These are the web browsers currently logged in to your Mastodon account.
ip : IP
platforms :
adobe_air : Adobe Air
android : Android
2022-11-13 11:33:20 +09:00
blackberry : BlackBerry
chrome_os : ChromeOS
2017-06-25 23:54:30 +09:00
firefox_os : Firefox OS
ios : iOS
2023-03-05 08:33:08 +09:00
kai_os : KaiOS
2017-06-25 23:54:30 +09:00
linux : Linux
2020-01-24 08:21:13 +09:00
mac : macOS
2023-03-05 08:33:08 +09:00
unknown_platform : Unknown Platform
2017-06-25 23:54:30 +09:00
windows : Windows
windows_mobile : Windows Mobile
windows_phone : Windows Phone
2017-07-19 11:59:04 +09:00
revoke : Revoke
revoke_success : Session successfully revoked
2017-06-25 23:54:30 +09:00
title : Sessions
2021-06-22 00:07:30 +09:00
view_authentication_history : View authentication history of your account
2016-11-16 07:02:57 +09:00
settings :
2019-04-10 10:47:11 +09:00
account : Account
account_settings : Account settings
2019-09-20 03:58:19 +09:00
aliases : Account aliases
2019-04-11 00:36:45 +09:00
appearance : Appearance
2017-03-20 04:29:41 +09:00
authorized_apps : Authorized apps
2017-01-15 22:01:33 +09:00
back : Back to Mastodon
2017-06-15 01:01:27 +09:00
delete : Account deletion
2017-08-23 07:59:35 +09:00
development : Development
2016-11-16 07:02:57 +09:00
edit_profile : Edit profile
2017-02-27 08:15:00 +09:00
export : Data export
2019-02-04 12:25:59 +09:00
featured_tags : Featured hashtags
2017-03-31 02:42:33 +09:00
import : Import
2019-04-10 10:47:11 +09:00
import_and_export : Import and export
2017-11-28 06:47:06 +09:00
migrate : Account migration
2017-10-04 17:22:52 +09:00
notifications : Notifications
2016-11-16 07:02:57 +09:00
preferences : Preferences
2019-04-10 10:47:11 +09:00
profile : Profile
2019-03-16 19:23:22 +09:00
relationships : Follows and followers
2021-08-10 06:11:50 +09:00
statuses_cleanup : Automated post deletion
2022-03-02 03:37:47 +09:00
strikes : Moderation strikes
2017-12-13 15:42:22 +09:00
two_factor_authentication : Two-factor Auth
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
webauthn_authentication : Security keys
2017-01-25 08:49:08 +09:00
statuses :
2018-03-19 04:33:07 +09:00
attached :
2020-06-25 08:33:01 +09:00
audio :
one : "%{count} audio"
other : "%{count} audio"
2018-03-19 04:33:07 +09:00
description: 'Attached : %{attached}'
image :
one : "%{count} image"
other : "%{count} images"
video :
one : "%{count} video"
other : "%{count} videos"
2018-05-13 00:44:15 +09:00
boosted_from_html : Boosted from %{acct_link}
2018-03-19 04:33:07 +09:00
content_warning: 'Content warning : %{warning}'
2022-02-08 10:41:17 +09:00
default_language : Same as interface language
2018-04-24 06:52:58 +09:00
disallowed_hashtags :
one: 'contained a disallowed hashtag : %{tags}'
other: 'contained the disallowed hashtags : %{tags}'
2022-03-16 03:07:25 +09:00
edited_at_html : Edited %{date}
2020-03-29 01:59:45 +09:00
errors :
2021-04-22 01:31:24 +09:00
in_reply_not_found : The post you are trying to reply to does not appear to exist.
2017-01-31 07:01:37 +09:00
open_in_web : Open in web
2017-02-07 07:16:20 +09:00
over_character_limit : character limit of %{max} exceeded
2017-08-25 08:41:18 +09:00
pin_errors :
2022-01-17 08:49:55 +09:00
direct : Posts that are only visible to mentioned users cannot be pinned
2021-04-22 01:31:24 +09:00
limit : You have already pinned the maximum number of posts
ownership : Someone else's post cannot be pinned
2017-08-25 08:41:18 +09:00
reblog : A boost cannot be pinned
2019-03-05 02:03:12 +09:00
poll :
2019-09-30 05:58:01 +09:00
total_people :
one : "%{count} person"
other : "%{count} people"
2019-03-05 02:03:12 +09:00
total_votes :
one : "%{count} vote"
other : "%{count} votes"
vote : Vote
2017-03-31 20:54:36 +09:00
show_more : Show more
2020-11-05 05:15:45 +09:00
show_newer : Show newer
show_older : Show older
2020-01-30 01:35:54 +09:00
show_thread : Show thread
2023-05-11 03:17:55 +09:00
sign_in_to_participate : Login to participate in the conversation
2017-12-12 11:56:30 +09:00
title : '%{name}: "%{quote}"'
2017-02-07 07:16:20 +09:00
visibilities :
2021-04-21 22:40:00 +09:00
direct : Direct
2017-04-24 07:38:37 +09:00
private : Followers-only
private_long : Only show to followers
2017-02-07 07:16:20 +09:00
public : Public
2017-04-24 07:38:37 +09:00
public_long : Everyone can see
unlisted : Unlisted
unlisted_long : Everyone can see, but not listed on public timelines
2021-08-10 06:11:50 +09:00
statuses_cleanup :
enabled : Automatically delete old posts
enabled_hint : Automatically deletes your posts once they reach a specified age threshold, unless they match one of the exceptions below
exceptions : Exceptions
explanation : Because deleting posts is an expensive operation, this is done slowly over time when the server is not otherwise busy. For this reason, your posts may be deleted a while after they reach the age threshold.
2023-04-30 16:33:37 +09:00
ignore_favs : Ignore favorites
2021-08-10 06:11:50 +09:00
ignore_reblogs : Ignore boosts
interaction_exceptions : Exceptions based on interactions
2023-04-30 16:33:37 +09:00
interaction_exceptions_explanation : Note that there is no guarantee for posts to be deleted if they go below the favorite or boost threshold after having once gone over them.
2021-08-10 06:11:50 +09:00
keep_direct : Keep direct messages
keep_direct_hint : Doesn't delete any of your direct messages
keep_media : Keep posts with media attachments
keep_media_hint : Doesn't delete any of your posts that have media attachments
keep_pinned : Keep pinned posts
keep_pinned_hint : Doesn't delete any of your pinned posts
keep_polls : Keep polls
keep_polls_hint : Doesn't delete any of your polls
keep_self_bookmark : Keep posts you bookmarked
keep_self_bookmark_hint : Doesn't delete your own posts if you have bookmarked them
2023-04-30 16:33:37 +09:00
keep_self_fav : Keep posts you favorited
keep_self_fav_hint : Doesn't delete your own posts if you have favorited them
2021-08-10 06:11:50 +09:00
min_age :
'1209600' : 2 weeks
'15778476' : 6 months
'2629746' : 1 month
'31556952' : 1 year
'5259492' : 2 months
2022-03-04 00:18:58 +09:00
'604800' : 1 week
2021-08-10 06:11:50 +09:00
'63113904' : 2 years
'7889238' : 3 months
min_age_label : Age threshold
2023-04-30 16:33:37 +09:00
min_favs : Keep posts favorited at least
min_favs_hint : Doesn't delete any of your posts that has received at least this number of favorites. Leave blank to delete posts regardless of their number of favorites
2021-10-15 04:11:14 +09:00
min_reblogs : Keep posts boosted at least
min_reblogs_hint : Doesn't delete any of your posts that has been boosted at least this number of times. Leave blank to delete posts regardless of their number of boosts
2016-11-16 07:56:03 +09:00
stream_entries :
2021-04-22 01:31:24 +09:00
pinned : Pinned post
2016-12-21 08:13:13 +09:00
reblogged : boosted
2016-12-23 08:04:52 +09:00
sensitive_content : Sensitive content
2022-05-14 13:51:59 +09:00
strikes :
errors :
too_late : It is too late to appeal this strike
2019-08-06 02:54:29 +09:00
tags :
does_not_match_previous_name : does not match the previous name
2017-09-21 02:41:35 +09:00
themes :
2019-02-01 08:15:38 +09:00
contrast : Mastodon (High contrast)
default : Mastodon (Dark)
mastodon-light : Mastodon (Light)
2016-12-19 03:47:11 +09:00
time :
formats :
default : "%b %d, %Y, %H:%M"
2018-07-29 02:25:33 +09:00
month : "%b %Y"
2022-01-17 17:41:33 +09:00
time : "%H:%M"
2017-04-22 11:23:17 +09:00
two_factor_authentication :
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
add : Add
disable : Disable 2FA
disabled_success : Two-factor authentication successfully disabled
edit : Edit
2017-06-26 06:51:46 +09:00
enabled : Two-factor authentication is enabled
2017-04-09 05:20:08 +09:00
enabled_success : Two-factor authentication successfully enabled
2017-06-26 06:51:46 +09:00
generate_recovery_codes : Generate recovery codes
2017-04-15 20:26:03 +09:00
lost_recovery_codes : Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated.
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
methods : Two-factor methods
otp : Authenticator app
2017-06-26 06:51:46 +09:00
recovery_codes : Backup recovery codes
2017-04-15 20:26:03 +09:00
recovery_codes_regenerated : Recovery codes successfully regenerated
2017-06-27 07:04:00 +09:00
recovery_instructions_html : If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. <strong>Keep the recovery codes safe</strong>. For example, you may print them and store them with other important documents.
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
webauthn : Security keys
2018-01-19 03:17:25 +09:00
user_mailer :
2022-02-15 05:27:53 +09:00
appeal_approved :
action : Go to your account
explanation : The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing.
subject : Your appeal from %{date} has been approved
title : Appeal approved
appeal_rejected :
explanation : The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been rejected.
subject : Your appeal from %{date} has been rejected
title : Appeal rejected
2018-02-22 07:21:32 +09:00
backup_ready :
explanation : You requested a full backup of your Mastodon account. It's now ready for download!
subject : Your archive is ready for download
title : Archive takeout
2022-04-07 03:58:12 +09:00
suspicious_sign_in :
change_password : change your password
details : 'Here are details of the sign-in:'
explanation : We've detected a sign-in to your account from a new IP address.
further_actions_html : If this wasn't you, we recommend that you %{action} immediately and enable two-factor authentication to keep your account secure.
subject : Your account has been accessed from a new IP address
title : A new sign-in
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
warning :
2022-02-15 05:27:53 +09:00
appeal : Submit an appeal
appeal_description : If you believe this is an error, you can submit an appeal to the staff of %{instance}.
2022-01-17 17:41:33 +09:00
categories :
spam : Spam
violation : Content violates the following community guidelines
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
explanation :
2022-03-02 07:07:57 +09:00
delete_statuses : Some of your posts have been found to violate one or more community guidelines and have been subsequently removed by the moderators of %{instance}.
2022-01-17 17:41:33 +09:00
disable : You can no longer use your account, but your profile and other data remains intact. You can request a backup of your data, change account settings or delete your account.
2022-03-02 06:20:29 +09:00
mark_statuses_as_sensitive : Some of your posts have been marked as sensitive by the moderators of %{instance}. This means that people will need to tap the media in the posts before a preview is displayed. You can mark media as sensitive yourself when posting in the future.
2022-01-17 17:41:33 +09:00
sensitive : From now on, all your uploaded media files will be marked as sensitive and hidden behind a click-through warning.
silence : You can still use your account but only people who are already following you will see your posts on this server, and you may be excluded from various discovery features. However, others may still manually follow you.
suspend : You can no longer use your account, and your profile and other data are no longer accessible. You can still login to request a backup of your data until the data is fully removed in about 30 days, but we will retain some basic data to prevent you from evading the suspension.
reason : 'Reason:'
2022-03-02 06:20:29 +09:00
statuses : 'Posts cited:'
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
subject :
2022-01-17 17:41:33 +09:00
delete_statuses : Your posts on %{acct} have been removed
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
disable : Your account %{acct} has been frozen
2022-03-02 06:20:29 +09:00
mark_statuses_as_sensitive : Your posts on %{acct} have been marked as sensitive
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
none : Warning for %{acct}
2022-03-02 06:20:29 +09:00
sensitive : Your posts on %{acct} will be marked as sensitive from now on
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
silence : Your account %{acct} has been limited
suspend : Your account %{acct} has been suspended
title :
2022-01-17 17:41:33 +09:00
delete_statuses : Posts removed
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
disable : Account frozen
2022-03-02 06:20:29 +09:00
mark_statuses_as_sensitive : Posts marked as sensitive
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
none : Warning
2022-03-02 06:20:29 +09:00
sensitive : Account marked as sensitive
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
2018-12-23 04:02:09 +09:00
silence : Account limited
suspend : Account suspended
2018-01-19 03:17:25 +09:00
welcome :
edit_profile_action : Setup profile
2022-10-06 07:03:52 +09:00
edit_profile_step : You can customize your profile by uploading a profile picture, changing your display name and more. You can opt-in to review new followers before they’ re allowed to follow you.
2018-01-19 03:17:25 +09:00
explanation : Here are some tips to get you started
final_action : Start posting
2022-10-06 07:03:52 +09:00
final_step : 'Start posting! Even without followers, your public posts may be seen by others, for example on the local timeline or in hashtags. You may want to introduce yourself on the #introductions hashtag.'
2018-01-19 03:17:25 +09:00
full_handle : Your full handle
2019-02-06 03:11:24 +09:00
full_handle_hint : This is what you would tell your friends so they can message or follow you from another server.
2018-01-19 03:17:25 +09:00
subject : Welcome to Mastodon
title : Welcome aboard, %{name}!
2016-12-05 03:07:02 +09:00
users :
2018-10-05 00:36:11 +09:00
follow_limit_reached : You cannot follow more than %{limit} people
2023-03-17 18:09:01 +09:00
go_to_sso_account_settings : Go to your identity provider's account settings
2017-01-29 04:43:38 +09:00
invalid_otp_token : Invalid two-factor code
2018-05-06 17:52:36 +09:00
otp_lost_help_html : If you lost access to both, you may get in touch with %{email}
2018-03-01 03:04:53 +09:00
seamless_external_login : You are logged in via an external service, so password and e-mail settings are not available.
2017-08-05 11:24:58 +09:00
signed_in_as : 'Signed in as:'
2018-09-18 23:45:58 +09:00
verification :
2023-03-22 19:22:35 +09:00
explanation_html : 'You can <strong>verify yourself as the owner of the links in your profile metadata</strong>. For that, the linked website must contain a link back to your Mastodon profile. After adding the link you may need to come back here and re-save your profile for the verification to take effect. The link back <strong>must</strong> have a <code>rel="me"</code> attribute. The text content of the link does not matter. Here is an example:'
2018-09-18 23:45:58 +09:00
verification : Verification
Add WebAuthn as an alternative 2FA method (#14466)
* feat: add possibility of adding WebAuthn security keys to use as 2FA
This adds a basic UI for enabling WebAuthn 2FA. We did a little refactor
to the Settings page for editing the 2FA methods – now it will list the
methods that are available to the user (TOTP and WebAuthn) and from
there they'll be able to add or remove any of them.
Also, it's worth mentioning that for enabling WebAuthn it's required to
have TOTP enabled, so the first time that you go to the 2FA Settings
page, you'll be asked to set it up.
This work was inspired by the one donde by Github in their platform, and
despite it could be approached in different ways, we decided to go with
this one given that we feel that this gives a great UX.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add request for WebAuthn as second factor at login if enabled
This commits adds the feature for using WebAuthn as a second factor for
login when enabled.
If users have WebAuthn enabled, now a page requesting for the use of a
WebAuthn credential for log in will appear, although a link redirecting
to the old page for logging in using a two-factor code will also be
present.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: add possibility of deleting WebAuthn Credentials
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: disable WebAuthn when an Admin disables 2FA for a user
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* feat: remove ability to disable TOTP leaving only WebAuthn as 2FA
Following examples form other platforms like Github, we decided to make
Webauthn 2FA secondary to 2FA with TOTP, so that we removed the
possibility of removing TOTP authentication only, leaving users with
just WEbAuthn as 2FA. Instead, users will have to click on 'Disable 2FA'
in order to remove second factor auth.
The reason for WebAuthn being secondary to TOPT is that in that way,
users will still be able to log in using their code from their phone's
application if they don't have their security keys with them – or maybe
even lost them.
* We had to change a little the flow for setting up TOTP, given that now
it's possible to setting up again if you already had TOTP, in order to
let users modify their authenticator app – given that now it's not
possible for them to disable TOTP and set it up again with another
authenticator app.
So, basically, now instead of storing the new `otp_secret` in the
user, we store it in the session until the process of set up is
finished.
This was because, as it was before, when users clicked on 'Edit' in
the new two-factor methods lists page, but then went back without
finishing the flow, their `otp_secret` had been changed therefore
invalidating their previous authenticator app, making them unable to
log in again using TOTP.
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
* refactor: fix eslint errors
The PR build was failing given that linting returning some errors.
This commit attempts to fix them.
* refactor: normalize i18n translations
The build was failing given that i18n translations files were not
normalized.
This commits fixes that.
* refactor: avoid having the webauthn gem locked to a specific version
* refactor: use symbols for routes without '/'
* refactor: avoid sending webauthn disabled email when 2FA is disabled
When an admins disable 2FA for users, we were sending two mails
to them, one notifying that 2FA was disabled and the other to notify
that WebAuthn was disabled.
As the second one is redundant since the first email includes it, we can
remove it and send just one email to users.
* refactor: avoid creating new env variable for webauthn_origin config
* refactor: improve flash error messages for webauthn pages
Co-authored-by: Facundo Padula <facundo.padula@cedarcode.com>
2020-08-24 23:46:27 +09:00
webauthn_credentials :
add : Add new security key
create :
error : There was a problem adding your security key. Please try again.
success : Your security key was successfully added.
delete : Delete
delete_confirmation : Are you sure you want to delete this security key?
description_html : If you enable <strong>security key authentication</strong>, logging in will require you to use one of your security keys.
destroy :
error : There was a problem deleting you security key. Please try again.
success : Your security key was successfully deleted.
invalid_credential : Invalid security key
nickname_hint : Enter the nickname of your new security key
not_enabled : You haven't enabled WebAuthn yet
not_supported : This browser doesn't support security keys
otp_required : To use security keys please enable two-factor authentication first.
registered_on : Registered on %{date}