nix-packages/mastodon/toki.patch

3204 lines
163 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb
index 4077e19bd..363943550 100644
--- a/app/helpers/languages_helper.rb
+++ b/app/helpers/languages_helper.rb
@@ -191,6 +191,7 @@ module LanguagesHelper
ckb: ['Sorani (Kurdish)', 'سۆرانی'].freeze,
kab: ['Kabyle', 'Taqbaylit'].freeze,
kmr: ['Kurmanji (Kurdish)', 'Kurmancî'].freeze,
+ tok: ['toki pona', '󱥬󱥔'].freeze,
zgh: ['Standard Moroccan Tamazight', 'ⵜⴰⵎⴰⵣⵉⵖⵜ'].freeze,
}.freeze
diff --git a/app/javascript/flavours/glitch/locales/tok.js b/app/javascript/flavours/glitch/locales/tok.js
new file mode 100644
index 000000000..709dcc1aa
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/tok.js
@@ -0,0 +1,67 @@
+import inherited from 'mastodon/locales/tok.json';
+
+const messages = {
+ 'getting_started.open_source_notice': 'Glitchsoc is free open source software forked from {Mastodon}. You can contribute or report issues on GitHub at {github}.',
+ 'layout.auto': '󱤎󱥞󱤧󱤇',
+ 'layout.current_is': '󱤪󱥁󱤧󱤮󱥖󱥁:',
+ 'layout.desktop': '󱤪󱦓󱤎󱤽',
+ 'layout.mobile': '󱤪󱦓󱤎󱥬',
+ 'navigation_bar.app_settings': '󱥄󱤆󱤉󱤤󱤎',
+ 'getting_started.onboarding': '󱥄󱥌󱤮󱤉󱤪󱥁',
+ 'onboarding.page_one.federation': '{domain}󱤧󱤎󱥳󱦓󱤎󱦐󱤰󱤄󱥠󱥄󱥬󱥄󱥂󱦑. 󱤎󱦐󱤰󱤄󱥠󱥄󱥬󱥄󱥂󱦑󱤧󱤟󱦓󱤎󱥳.󱥆󱤧󱥳󱥩󱤟󱥬󱥣󱥳.',
+ 'onboarding.page_one.welcome': '󱥄󱤖󱥔󱤬{domain}!',
+ 'onboarding.page_six.github': '{domain}󱤧󱤙󱤎󱦐G󱦒l󱦒i󱦒t󱦒c󱦒h󱦒s󱦒o󱦒c󱦒󱦑. 󱥆󱤧󱤎󱦐󱤰󱤄󱥠󱥄󱥬󱥄󱥂󱦑󱤆. 󱥞󱤘󱤙󱤉󱤎󱦓󱤎󱦐󱤰󱤄󱥠󱥄󱥬󱥄󱥂󱦑. You can report bugs, request features, or contribute to the code on {github}.',
+ 'settings.auto_collapse': '󱤎󱤧󱤨󱤉󱤪',
+ 'settings.auto_collapse_all': '󱤪󱤄',
+ 'settings.auto_collapse_lengthy': '󱤪󱥣',
+ 'settings.auto_collapse_media': '󱤪󱥠',
+ 'settings.auto_collapse_notifications': '󱤪󱤮',
+ 'settings.auto_collapse_reblogs': '󱤪󱥌',
+ 'settings.auto_collapse_replies': '󱤪󱥬',
+ 'settings.show_action_bar': '󱤪󱤨󱤡,󱥄󱥌󱤉󱥀󱥉',
+ 'settings.close': '󱥶',
+ 'settings.collapsed_statuses': '󱤪󱤨',
+ 'settings.enable_collapsed': '󱥆󱤧󱤨󱤉󱤪',
+ 'settings.general': '󱤌',
+ 'settings.image_backgrounds': '󱥠󱤸',
+ 'settings.image_backgrounds_media': '󱤪󱤨󱤡,󱥄󱥌󱤉󱥠',
+ 'settings.image_backgrounds_users': '󱥄󱥌󱤉󱥠󱤸󱥩󱤪󱤨',
+ 'settings.media': '󱥠',
+ 'settings.media_letterbox': '󱥄󱥼󱤉󱥠',
+ 'settings.media_fullwidth': '󱥄󱥣󱤉󱥠',
+ 'settings.preferences': '󱥞󱥷',
+ 'settings.wide_view': '󱤮󱥣 (󱤪󱦓󱤎󱤽 󱥨)',
+ 'settings.navbar_under': '󱥊󱤃󱤧󱤬󱤉󱥃 (󱤪󱦓󱤎󱥬 󱥨)',
+ 'status.collapse': '󱥄󱤨󱤉󱤪',
+ 'status.uncollapse': '󱥄󱥣󱤉󱤪',
+
+ 'media_gallery.sensitive': '󱥎󱤼/󱥯',
+
+ 'favourite_modal.combo': '󱥞󱤘󱤙{combo}󱤡,󱥁󱤧󱥶',
+
+ 'home.column_settings.show_direct': '󱥄󱥌󱤉󱥬󱤿',
+
+ 'notification.markForDeletion': '󱤴󱥷󱥶󱤉󱥁',
+ 'notifications.clear': '󱥄󱥶󱤉󱤪󱤮󱤄',
+ 'notifications.marked_clear_confirmation': '󱥞󱥶󱤂󱥶󱤉󱤪󱤮󱤄󱥞?',
+ 'notifications.marked_clear': '󱥄󱥶󱤉󱤪󱤮󱥁',
+
+ 'notification_purge.btn_all': '󱥄󱥷󱤄',
+ 'notification_purge.btn_none': '󱥄󱥷󱤂',
+ 'notification_purge.btn_invert': '󱥄󱥿󱤉󱥷󱥞',
+ 'notification_purge.btn_apply': '󱥄󱥶󱥁',
+
+ 'compose.attach.upload': '󱥄󱥌󱤉󱥠',
+ 'compose.attach.doodle': '󱥄󱥉󱤉󱥠',
+ 'compose.attach': '󱥌󱥠...',
+
+ 'advanced_options.local-only.short': '󱤎󱥁󱥨',
+ 'advanced_options.local-only.long': '󱥄󱥌󱤂󱥩󱤎󱤆',
+ 'advanced_options.local-only.tooltip': '󱤪󱥁󱤧󱥌󱥩󱤎󱥁󱥨',
+ 'advanced_options.icon_title': '󱥷󱥞󱥸',
+ 'advanced_options.threaded_mode.short': '󱤪󱤩',
+ 'advanced_options.threaded_mode.long': '󱥞󱥐󱥌󱤉󱤪󱤡,󱥄󱥇󱤉󱤪󱥝',
+ 'advanced_options.threaded_mode.tooltip': '󱤪󱥁󱤧󱤪󱤩',
+};
+
+export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/locales/locale-data/tok.js b/app/javascript/locales/locale-data/tok.js
new file mode 100644
index 000000000..145acd421
--- /dev/null
+++ b/app/javascript/locales/locale-data/tok.js
@@ -0,0 +1,92 @@
+export default [
+ {
+ locale: "tok",
+ pluralRuleFunction: function (e, a) { return "other"; },
+ fields: {
+ year: {
+ displayName: "󱥜󱥤",
+ relative: {
+ 0: "󱥜󱥤󱥁"
+ },
+ relativeTime: {
+ future: {
+ other: "󱤸󱦓󱥜󱥤 {0}"
+ },
+ past: {
+ other: "󱥟󱦓󱥜󱥤 {0}"
+ }
+ }
+ },
+ month: {
+ displayName: "󱥜󱤺",
+ relative: {
+ 0: "󱥜󱤺󱥁"
+ },
+ relativeTime: {
+ future: {
+ other: "󱤸󱦓󱥜󱤺 {0}"
+ },
+ past: {
+ other: "󱥟󱦓󱥜󱤺 {0}"
+ }
+ }
+ },
+ day: {
+ displayName: "󱥫󱥤",
+ relative: {
+ 0: "󱥫󱥤󱥁"
+ },
+ relativeTime: {
+ future: {
+ other: "󱤸󱦓󱥫󱥤 {0}"
+ },
+ past: {
+ other: "󱥟󱦓󱥫󱥤 {0}"
+ }
+ }
+ },
+ hour: {
+ displayName: "󱥫",
+ relative: {
+ 0: "󱥫󱥁"
+ },
+ relativeTime: {
+ future: {
+ other: "󱤸󱦓󱥫 {0}"
+ },
+ past: {
+ other: "󱥟󱦓󱥫 {0}"
+ }
+ }
+ },
+ minute: {
+ displayName: "󱥫󱥻",
+ relative: {
+ 0: "󱥫󱥻󱥁"
+ },
+ relativeTime: {
+ future: {
+ other: "󱤸󱦓󱥫󱥻 {0}"
+ },
+ past: {
+ other: "󱥟󱦓󱥫󱥻 {0}"
+ }
+ }
+ },
+ second: {
+ displayName: "󱥫󱤨",
+ relative: {
+ 0: "󱥫󱤨󱥁"
+ },
+ relativeTime: {
+ future: {
+ other: "󱤸󱦓󱥫󱤨 {0}"
+ },
+ past: {
+ other: "󱥟󱦓󱥫󱤨 {0}"
+ }
+ }
+ },
+ }
+ }
+];
diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json
new file mode 100644
index 000000000..12ff27452
--- /dev/null
+++ b/app/javascript/mastodon/locales/tok.json
@@ -0,0 +1,554 @@
+{
+ "account.account_note_header": "Note",
+ "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.badges.bot": "Bot",
+ "account.badges.group": "Group",
+ "account.block": "Block @{name}",
+ "account.block_domain": "Block domain {domain}",
+ "account.blocked": "Blocked",
+ "account.browse_more_on_origin_server": "Browse more on the original profile",
+ "account.cancel_follow_request": "Cancel follow request",
+ "account.direct": "Direct message @{name}",
+ "account.disable_notifications": "Stop notifying me when @{name} posts",
+ "account.domain_blocked": "Domain blocked",
+ "account.edit_profile": "Edit profile",
+ "account.enable_notifications": "Notify me when @{name} posts",
+ "account.endorse": "Feature on profile",
+ "account.follow": "Follow",
+ "account.followers": "Followers",
+ "account.followers.empty": "No one follows this user yet.",
+ "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
+ "account.following": "Following",
+ "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
+ "account.follows.empty": "This user doesn't follow anyone yet.",
+ "account.follows_you": "Follows you",
+ "account.hide_reblogs": "Hide boosts from @{name}",
+ "account.joined": "Joined {date}",
+ "account.link_verified_on": "Ownership of this link was checked on {date}",
+ "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "account.media": "Media",
+ "account.mention": "Mention @{name}",
+ "account.moved_to": "{name} has moved to:",
+ "account.mute": "Mute @{name}",
+ "account.mute_notifications": "Mute notifications from @{name}",
+ "account.muted": "Muted",
+ "account.posts": "Posts",
+ "account.posts_with_replies": "Posts and replies",
+ "account.report": "Report @{name}",
+ "account.requested": "Awaiting approval. Click to cancel follow request",
+ "account.share": "Share @{name}'s profile",
+ "account.show_reblogs": "Show boosts from @{name}",
+ "account.statuses_counter": "{count, plural, one {{counter} Post} other {{counter} Posts}}",
+ "account.unblock": "Unblock @{name}",
+ "account.unblock_domain": "Unblock domain {domain}",
+ "account.unblock_short": "Unblock",
+ "account.unendorse": "Don't feature on profile",
+ "account.unfollow": "Unfollow",
+ "account.unmute": "Unmute @{name}",
+ "account.unmute_notifications": "Unmute notifications from @{name}",
+ "account.unmute_short": "Unmute",
+ "account_note.placeholder": "Click to add note",
+ "admin.dashboard.daily_retention": "User retention rate by day after sign-up",
+ "admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
+ "admin.dashboard.retention.average": "Average",
+ "admin.dashboard.retention.cohort": "Sign-up month",
+ "admin.dashboard.retention.cohort_size": "New users",
+ "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
+ "alert.rate_limited.title": "Rate limited",
+ "alert.unexpected.message": "An unexpected error occurred.",
+ "alert.unexpected.title": "Oops!",
+ "announcement.announcement": "Announcement",
+ "attachments_list.unprocessed": "(unprocessed)",
+ "autosuggest_hashtag.per_week": "{count} per week",
+ "boost_modal.combo": "You can press {combo} to skip this next time",
+ "bundle_column_error.body": "Something went wrong while loading this component.",
+ "bundle_column_error.retry": "Try again",
+ "bundle_column_error.title": "Network error",
+ "bundle_modal_error.close": "Close",
+ "bundle_modal_error.message": "Something went wrong while loading this component.",
+ "bundle_modal_error.retry": "Try again",
+ "column.blocks": "Blocked users",
+ "column.bookmarks": "Bookmarks",
+ "column.community": "Local timeline",
+ "column.direct": "Direct messages",
+ "column.directory": "Browse profiles",
+ "column.domain_blocks": "Blocked domains",
+ "column.favourites": "Favourites",
+ "column.follow_requests": "Follow requests",
+ "column.home": "Home",
+ "column.lists": "Lists",
+ "column.mutes": "Muted users",
+ "column.notifications": "Notifications",
+ "column.pins": "Pinned posts",
+ "column.public": "Federated timeline",
+ "column_back_button.label": "Back",
+ "column_header.hide_settings": "Hide settings",
+ "column_header.moveLeft_settings": "Move column to the left",
+ "column_header.moveRight_settings": "Move column to the right",
+ "column_header.pin": "Pin",
+ "column_header.show_settings": "Show settings",
+ "column_header.unpin": "Unpin",
+ "column.heading": "Misc",
+ "column.subheading": "Miscellaneous options",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
+ "community.column_settings.media_only": "Media Only",
+ "community.column_settings.remote_only": "Remote only",
+ "compose.language.change": "Change language",
+ "compose.language.search": "Search languages...",
+ "compose_form.direct_message_warning_learn_more": "Learn more",
+ "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any sensitive information over Mastodon.",
+ "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
+ "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
+ "compose_form.lock_disclaimer.lock": "locked",
+ "compose_form.placeholder": "What's on your mind?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
+ "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
+ "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.publish": "Publish",
+ "compose_form.publish_loud": "{publish}!",
+ "compose_form.save_changes": "Save changes",
+ "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
+ "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
+ "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
+ "compose_form.spoiler.marked": "Remove content warning",
+ "compose_form.spoiler.unmarked": "Add content warning",
+ "compose_form.spoiler_placeholder": "Write your warning here",
+ "confirmation_modal.cancel": "Cancel",
+ "confirmations.block.block_and_report": "Block & Report",
+ "confirmations.block.confirm": "Block",
+ "confirmations.block.message": "Are you sure you want to block {name}?",
+ "confirmations.delete.confirm": "Delete",
+ "confirmations.delete.message": "Are you sure you want to delete this post?",
+ "confirmations.delete_list.confirm": "Delete",
+ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
+ "confirmations.discard_edit_media.confirm": "Discard",
+ "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+ "confirmations.domain_block.confirm": "Block entire domain",
+ "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "confirmations.logout.confirm": "Log out",
+ "confirmations.logout.message": "Are you sure you want to log out?",
+ "confirmations.mute.confirm": "Mute",
+ "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+ "confirmations.mute.message": "Are you sure you want to mute {name}?",
+ "confirmations.redraft.confirm": "Delete & redraft",
+ "confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
+ "confirmations.reply.confirm": "Reply",
+ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.unfollow.confirm": "Unfollow",
+ "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+ "conversation.delete": "Delete conversation",
+ "conversation.mark_as_read": "Mark as read",
+ "conversation.open": "View conversation",
+ "conversation.with": "With {names}",
+ "directory.federated": "From known fediverse",
+ "directory.local": "From {domain} only",
+ "directory.new_arrivals": "New arrivals",
+ "directory.recently_active": "Recently active",
+ "embed.instructions": "Embed this post on your website by copying the code below.",
+ "embed.preview": "Here is what it will look like:",
+ "emoji_button.activity": "Activity",
+ "emoji_button.clear": "Clear",
+ "emoji_button.custom": "Custom",
+ "emoji_button.flags": "Flags",
+ "emoji_button.food": "Food & Drink",
+ "emoji_button.label": "Insert emoji",
+ "emoji_button.nature": "Nature",
+ "emoji_button.not_found": "No matching emojis found",
+ "emoji_button.objects": "Objects",
+ "emoji_button.people": "People",
+ "emoji_button.recent": "Frequently used",
+ "emoji_button.search": "Search...",
+ "emoji_button.search_results": "Search results",
+ "emoji_button.symbols": "Symbols",
+ "emoji_button.travel": "Travel & Places",
+ "empty_column.account_suspended": "Account suspended",
+ "empty_column.account_timeline": "No posts here!",
+ "empty_column.account_unavailable": "Profile unavailable",
+ "empty_column.blocks": "You haven't blocked any users yet.",
+ "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
+ "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
+ "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
+ "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
+ "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
+ "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
+ "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
+ "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
+ "empty_column.hashtag": "There is nothing in this hashtag yet.",
+ "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
+ "empty_column.home.suggestions": "See some suggestions",
+ "empty_column.list": "There is nothing in this list yet. When members of this list publish new posts, they will appear here.",
+ "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
+ "empty_column.mutes": "You haven't muted any users yet.",
+ "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
+ "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
+ "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
+ "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
+ "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+ "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+ "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+ "errors.unexpected_crash.report_issue": "Report issue",
+ "explore.search_results": "Search results",
+ "explore.suggested_follows": "For you",
+ "explore.title": "Explore",
+ "explore.trending_links": "News",
+ "explore.trending_statuses": "Posts",
+ "explore.trending_tags": "Hashtags",
+ "follow_recommendations.done": "Done",
+ "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
+ "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
+ "follow_request.authorize": "Authorize",
+ "follow_request.reject": "Reject",
+ "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
+ "generic.saved": "Saved",
+ "getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
+ "getting_started.documentation": "Documentation",
+ "getting_started.heading": "Getting started",
+ "getting_started.invite": "Invite people",
+ "getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
+ "getting_started.security": "Account settings",
+ "getting_started.terms": "Terms of service",
+ "hashtag.column_header.tag_mode.all": "and {additional}",
+ "hashtag.column_header.tag_mode.any": "or {additional}",
+ "hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "All of these",
+ "hashtag.column_settings.tag_mode.any": "Any of these",
+ "hashtag.column_settings.tag_mode.none": "None of these",
+ "hashtag.column_settings.tag_toggle": "Include additional tags for this column",
+ "home.column_settings.basic": "Basic",
+ "home.column_settings.show_reblogs": "Show boosts",
+ "home.column_settings.show_replies": "Show replies",
+ "home.hide_announcements": "Hide announcements",
+ "home.show_announcements": "Show announcements",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "keyboard_shortcuts.back": "Navigate back",
+ "keyboard_shortcuts.blocked": "Open blocked users list",
+ "keyboard_shortcuts.boost": "Boost post",
+ "keyboard_shortcuts.column": "Focus column",
+ "keyboard_shortcuts.compose": "Focus compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.down": "Move down in the list",
+ "keyboard_shortcuts.enter": "Open post",
+ "keyboard_shortcuts.favourite": "Favourite post",
+ "keyboard_shortcuts.favourites": "Open favourites list",
+ "keyboard_shortcuts.federated": "Open federated timeline",
+ "keyboard_shortcuts.heading": "Keyboard shortcuts",
+ "keyboard_shortcuts.home": "Open home timeline",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "Display this legend",
+ "keyboard_shortcuts.local": "Open local timeline",
+ "keyboard_shortcuts.mention": "Mention author",
+ "keyboard_shortcuts.muted": "Open muted users list",
+ "keyboard_shortcuts.my_profile": "Open your profile",
+ "keyboard_shortcuts.notifications": "Open notifications column",
+ "keyboard_shortcuts.open_media": "Open media",
+ "keyboard_shortcuts.pinned": "Open pinned posts list",
+ "keyboard_shortcuts.profile": "Open author's profile",
+ "keyboard_shortcuts.reply": "Reply to post",
+ "keyboard_shortcuts.requests": "Open follow requests list",
+ "keyboard_shortcuts.search": "Focus search bar",
+ "keyboard_shortcuts.spoilers": "Show/hide CW field",
+ "keyboard_shortcuts.start": "Open “get started” column",
+ "keyboard_shortcuts.toggle_hidden": "Show/hide text behind CW",
+ "keyboard_shortcuts.toggle_sensitivity": "Show/hide media",
+ "keyboard_shortcuts.toot": "Start a new post",
+ "keyboard_shortcuts.unfocus": "Unfocus compose textarea/search",
+ "keyboard_shortcuts.up": "Move up in the list",
+ "lightbox.close": "Close",
+ "lightbox.compress": "Compress image view box",
+ "lightbox.expand": "Expand image view box",
+ "lightbox.next": "Next",
+ "lightbox.previous": "Previous",
+ "limited_account_hint.action": "Show profile anyway",
+ "limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
+ "lists.account.add": "Add to list",
+ "lists.account.remove": "Remove from list",
+ "lists.delete": "Delete list",
+ "lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
+ "lists.new.create": "Add list",
+ "lists.new.title_placeholder": "New list title",
+ "lists.replies_policy.followed": "Any followed user",
+ "lists.replies_policy.list": "Members of the list",
+ "lists.replies_policy.none": "No one",
+ "lists.replies_policy.title": "Show replies to:",
+ "lists.search": "Search among people you follow",
+ "lists.subheading": "Your lists",
+ "load_pending": "{count, plural, one {# new item} other {# new items}}",
+ "loading_indicator.label": "Loading...",
+ "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
+ "missing_indicator.label": "Not found",
+ "missing_indicator.sublabel": "This resource could not be found",
+ "mute_modal.duration": "Duration",
+ "mute_modal.hide_notifications": "Hide notifications from this user?",
+ "mute_modal.indefinite": "Indefinite",
+ "navigation_bar.apps": "Mobile apps",
+ "navigation_bar.blocks": "Blocked users",
+ "navigation_bar.bookmarks": "Bookmarks",
+ "navigation_bar.community_timeline": "Local timeline",
+ "navigation_bar.compose": "Compose new post",
+ "navigation_bar.direct": "Direct messages",
+ "navigation_bar.discover": "Discover",
+ "navigation_bar.domain_blocks": "Blocked domains",
+ "navigation_bar.edit_profile": "Edit profile",
+ "navigation_bar.explore": "Explore",
+ "navigation_bar.favourites": "Favourites",
+ "navigation_bar.filters": "Muted words",
+ "navigation_bar.follow_requests": "Follow requests",
+ "navigation_bar.follows_and_followers": "Follows and followers",
+ "navigation_bar.info": "About this server",
+ "navigation_bar.keyboard_shortcuts": "Hotkeys",
+ "navigation_bar.lists": "Lists",
+ "navigation_bar.misc": "Misc",
+ "navigation_bar.logout": "Logout",
+ "navigation_bar.mutes": "Muted users",
+ "navigation_bar.personal": "Personal",
+ "navigation_bar.pins": "Pinned posts",
+ "navigation_bar.preferences": "Preferences",
+ "navigation_bar.public_timeline": "Federated timeline",
+ "navigation_bar.security": "Security",
+ "notification.admin.sign_up": "{name} signed up",
+ "notification.favourite": "{name} favourited your post",
+ "notification.follow": "{name} followed you",
+ "notification.follow_request": "{name} has requested to follow you",
+ "notification.mention": "{name} mentioned you",
+ "notification.own_poll": "Your poll has ended",
+ "notification.poll": "A poll you have voted in has ended",
+ "notification.reblog": "{name} boosted your post",
+ "notification.status": "{name} just posted",
+ "notification.update": "{name} edited a post",
+ "notifications.clear": "Clear notifications",
+ "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
+ "notifications.column_settings.admin.sign_up": "New sign-ups:",
+ "notifications.column_settings.alert": "Desktop notifications",
+ "notifications.column_settings.favourite": "Favourites:",
+ "notifications.column_settings.filter_bar.advanced": "Display all categories",
+ "notifications.column_settings.filter_bar.category": "Quick filter bar",
+ "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
+ "notifications.column_settings.follow": "New followers:",
+ "notifications.column_settings.follow_request": "New follow requests:",
+ "notifications.column_settings.mention": "Mentions:",
+ "notifications.column_settings.poll": "Poll results:",
+ "notifications.column_settings.push": "Push notifications",
+ "notifications.column_settings.reblog": "Boosts:",
+ "notifications.column_settings.show": "Show in column",
+ "notifications.column_settings.sound": "Play sound",
+ "notifications.column_settings.status": "New posts:",
+ "notifications.column_settings.unread_notifications.category": "Unread notifications",
+ "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
+ "notifications.column_settings.update": "Edits:",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
+ "notifications.filter.statuses": "Updates from people you follow",
+ "notifications.grant_permission": "Grant permission.",
+ "notifications.group": "{count} notifications",
+ "notifications.mark_as_read": "Mark every notification as read",
+ "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request",
+ "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before",
+ "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.",
+ "notifications_permission_banner.enable": "Enable desktop notifications",
+ "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.",
+ "notifications_permission_banner.title": "Never miss a thing",
+ "picture_in_picture.restore": "Put it back",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_people": "{count, plural, one {# person} other {# people}}",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll.voted": "You voted for this answer",
+ "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
+ "privacy.change": "Change post privacy",
+ "privacy.direct.long": "Visible for mentioned users only",
+ "privacy.direct.short": "Mentioned people only",
+ "privacy.private.long": "Visible for followers only",
+ "privacy.private.short": "Followers only",
+ "privacy.public.long": "Visible for all",
+ "privacy.public.short": "Public",
+ "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
+ "privacy.unlisted.short": "Unlisted",
+ "refresh": "Refresh",
+ "regeneration_indicator.label": "Loading…",
+ "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+ "relative_time.days": "{number}d",
+ "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
+ "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
+ "relative_time.full.just_now": "just now",
+ "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
+ "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
+ "relative_time.hours": "{number}h",
+ "relative_time.just_now": "now",
+ "relative_time.minutes": "{number}m",
+ "relative_time.seconds": "{number}s",
+ "relative_time.today": "today",
+ "reply_indicator.cancel": "Cancel",
+ "report.block": "Block",
+ "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
+ "report.categories.other": "Other",
+ "report.categories.spam": "Spam",
+ "report.categories.violation": "Content violates one or more server rules",
+ "report.category.subtitle": "Choose the best match",
+ "report.category.title": "Tell us what's going on with this {type}",
+ "report.category.title_account": "profile",
+ "report.category.title_status": "post",
+ "report.close": "Done",
+ "report.comment.title": "Is there anything else you think we should know?",
+ "report.forward": "Forward to {target}",
+ "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
+ "report.mute": "Mute",
+ "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
+ "report.next": "Next",
+ "report.placeholder": "Additional comments",
+ "report.reasons.dislike": "I don't like it",
+ "report.reasons.dislike_description": "It is not something you want to see",
+ "report.reasons.other": "It's something else",
+ "report.reasons.other_description": "The issue does not fit into other categories",
+ "report.reasons.spam": "It's spam",
+ "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
+ "report.reasons.violation": "It violates server rules",
+ "report.reasons.violation_description": "You are aware that it breaks specific rules",
+ "report.rules.subtitle": "Select all that apply",
+ "report.rules.title": "Which rules are being violated?",
+ "report.statuses.subtitle": "Select all that apply",
+ "report.statuses.title": "Are there any posts that back up this report?",
+ "report.submit": "Submit",
+ "report.target": "Reporting {target}",
+ "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
+ "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
+ "report.thanks.title": "Don't want to see this?",
+ "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
+ "report.unfollow": "Unfollow @{name}",
+ "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
+ "search.placeholder": "Search",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns posts you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "post",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "search_results.accounts": "People",
+ "search_results.all": "All",
+ "search_results.hashtags": "Hashtags",
+ "search_results.nothing_found": "Could not find anything for these search terms",
+ "search_results.statuses": "Posts",
+ "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
+ "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this post in the moderation interface",
+ "status.block": "Block @{name}",
+ "status.bookmark": "Bookmark",
+ "status.cancel_reblog_private": "Unboost",
+ "status.cannot_reblog": "This post cannot be boosted",
+ "status.copy": "Copy link to post",
+ "status.delete": "Delete",
+ "status.detailed_status": "Detailed conversation view",
+ "status.direct": "Direct message @{name}",
+ "status.edit": "Edit",
+ "status.edited": "Edited {date}",
+ "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+ "status.embed": "Embed",
+ "status.favourite": "Favourite",
+ "status.filtered": "Filtered",
+ "status.history.created": "{name} created {date}",
+ "status.history.edited": "{name} edited {date}",
+ "status.load_more": "Load more",
+ "status.media_hidden": "Media hidden",
+ "status.mention": "Mention @{name}",
+ "status.more": "More",
+ "status.mute": "Mute @{name}",
+ "status.mute_conversation": "Mute conversation",
+ "status.open": "Expand this post",
+ "status.pin": "Pin on profile",
+ "status.pinned": "Pinned post",
+ "status.read_more": "Read more",
+ "status.reblog": "Boost",
+ "status.reblog_private": "Boost with original visibility",
+ "status.reblogged_by": "{name} boosted",
+ "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
+ "status.redraft": "Delete & re-draft",
+ "status.remove_bookmark": "Remove bookmark",
+ "status.reply": "Reply",
+ "status.replyAll": "Reply to thread",
+ "status.report": "Report @{name}",
+ "status.sensitive_warning": "Sensitive content",
+ "status.share": "Share",
+ "status.show_less": "Show less",
+ "status.show_less_all": "Show less for all",
+ "status.show_more": "Show more",
+ "status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
+ "status.uncached_media_warning": "Not available",
+ "status.unmute_conversation": "Unmute conversation",
+ "status.unpin": "Unpin from profile",
+ "suggestions.dismiss": "Dismiss suggestion",
+ "suggestions.header": "You might be interested in…",
+ "tabs_bar.federated_timeline": "Federated",
+ "tabs_bar.home": "Home",
+ "tabs_bar.local_timeline": "Local",
+ "tabs_bar.notifications": "Notifications",
+ "tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+ "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
+ "timeline_hint.resources.followers": "Followers",
+ "timeline_hint.resources.follows": "Follows",
+ "timeline_hint.resources.statuses": "Older posts",
+ "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
+ "trends.trending_now": "Trending now",
+ "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+ "units.short.billion": "{count}B",
+ "units.short.million": "{count}M",
+ "units.short.thousand": "{count}K",
+ "upload_area.title": "Drag & drop to upload",
+ "upload_button.label": "Add images, a video or an audio file",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
+ "upload_form.audio_description": "Describe for people with hearing loss",
+ "upload_form.description": "Describe for the visually impaired",
+ "upload_form.description_missing": "No description added",
+ "upload_form.edit": "Edit",
+ "upload_form.thumbnail": "Change thumbnail",
+ "upload_form.undo": "Delete",
+ "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+ "upload_modal.analyzing_picture": "Analyzing picture…",
+ "upload_modal.apply": "Apply",
+ "upload_modal.applying": "Applying…",
+ "upload_modal.choose_image": "Choose image",
+ "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
+ "upload_modal.detect_text": "Detect text from picture",
+ "upload_modal.edit_media": "Edit media",
+ "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
+ "upload_modal.preparing_ocr": "Preparing OCR…",
+ "upload_modal.preview_label": "Preview ({ratio})",
+ "upload_progress.label": "Uploading...",
+ "video.close": "Close video",
+ "video.download": "Download file",
+ "video.exit_fullscreen": "Exit full screen",
+ "video.expand": "Expand video",
+ "video.fullscreen": "Full screen",
+ "video.hide": "Hide video",
+ "video.mute": "Mute sound",
+ "video.pause": "Pause",
+ "video.play": "Play",
+ "video.unmute": "Unmute sound"
+}
diff --git a/config/application.rb b/config/application.rb
index 24fa2a978..a9951b7a8 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -138,6 +138,7 @@ module Mastodon
:ta,
:te,
:th,
+ :tok,
:tr,
:uk,
:ur,
diff --git a/config/locales-glitch/simple_form.tok.yml b/config/locales-glitch/simple_form.tok.yml
new file mode 100644
index 000000000..0cb000e6a
--- /dev/null
+++ b/config/locales-glitch/simple_form.tok.yml
@@ -0,0 +1,24 @@
+---
+tok:
+ simple_form:
+ hints:
+ defaults:
+ setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise
+ setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise
+ setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior)
+ setting_default_language: The language of your toots can be detected automatically, but it's not always accurate
+ setting_skin: Reskins the selected Mastodon flavour
+ labels:
+ defaults:
+ setting_default_content_type: Default format for toots
+ setting_default_content_type_html: HTML
+ setting_default_content_type_markdown: Markdown
+ setting_default_content_type_plain: Plain text
+ setting_favourite_modal: Show confirmation dialog before favouriting (applies to Glitch flavour only)
+ setting_hide_followers_count: Hide your followers count
+ setting_skin: Skin
+ setting_system_emoji_font: Use system's default font for emojis (applies to Glitch flavour only)
+ notification_emails:
+ trending_tag: New trending tag requires review
+ trending_link: New trending link requires review
+ trending_status: New trending post requires review
diff --git a/config/locales-glitch/tok.yml b/config/locales-glitch/tok.yml
new file mode 100644
index 000000000..8b7045be7
--- /dev/null
+++ b/config/locales-glitch/tok.yml
@@ -0,0 +1,58 @@
+---
+tok:
+ admin:
+ custom_emojis:
+ batch_copy_error: "An error occurred when copying some of the selected emoji: %{message}"
+ batch_error: "An error occurred: %{message}"
+ domain_allows:
+ export: Export
+ import: Import
+ domain_blocks:
+ export: Export
+ import: Import
+ 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
+ new:
+ title: Import domain blocks
+ no_file: No file selected
+ settings:
+ 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.<br>Users that have been invited through a limited-use invite will not need to solve a CAPTCHA
+ title: Require new users to solve a CAPTCHA to confirm their account
+ enable_keybase:
+ desc_html: Allow your users to prove their identity via keybase
+ title: Enable keybase integration
+ flavour_and_skin:
+ title: Flavour and skin
+ outgoing_spoilers:
+ desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive.
+ title: Content warning for outgoing toots
+ hide_followers_count:
+ desc_html: Do not show followers count on user profiles
+ title: Hide followers count
+ show_reblogs_in_public_timelines:
+ desc_html: Show public boosts of public toots in local and public timelines.
+ title: Show boosts in public timelines
+ show_replies_in_public_timelines:
+ desc_html: In addition to public self-replies (threads), show public replies in local and public timelines.
+ title: Show replies in public timelines
+ trending_status_cw:
+ desc_html: When trending posts are enabled, allow posts with Content Warnings to be eligible. Changes to this setting are not retroactive.
+ title: Allow posts with Content Warnings to trend
+ auth:
+ 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
+ generic:
+ use_this: Use this
+ settings:
+ flavours: Flavours
diff --git a/config/locales/activerecord.tok.yml b/config/locales/activerecord.tok.yml
new file mode 100644
index 000000000..a71417677
--- /dev/null
+++ b/config/locales/activerecord.tok.yml
@@ -0,0 +1,40 @@
+---
+tok:
+ activerecord:
+ attributes:
+ poll:
+ expires_at: Deadline
+ options: Choices
+ user:
+ agreement: Service agreement
+ email: E-mail address
+ locale: Locale
+ password: Password
+ user/account:
+ username: Username
+ user/invite_request:
+ text: Reason
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: must contain only letters, numbers and underscores
+ reserved: is reserved
+ admin/webhook:
+ attributes:
+ url:
+ invalid: is not a valid URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: is not a valid URL
+ status:
+ attributes:
+ reblog:
+ taken: of post already exists
+ user:
+ attributes:
+ email:
+ blocked: uses a disallowed e-mail provider
+ unreachable: does not seem to exist
diff --git a/config/locales/devise.tok.yml b/config/locales/devise.tok.yml
new file mode 100644
index 000000000..5f36b429d
--- /dev/null
+++ b/config/locales/devise.tok.yml
@@ -0,0 +1,115 @@
+---
+tok:
+ devise:
+ confirmations:
+ confirmed: Your email address has been successfully confirmed.
+ send_instructions: You will receive an email with instructions for how to confirm your email address in a few minutes. Please check your spam folder if you didn't receive this email.
+ send_paranoid_instructions: If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes. Please check your spam folder if you didn't receive this email.
+ failure:
+ already_authenticated: You are already signed in.
+ inactive: Your account is not activated yet.
+ invalid: Invalid %{authentication_keys} or password.
+ last_attempt: You have one more attempt before your account is locked.
+ locked: Your account is locked.
+ not_found_in_database: Invalid %{authentication_keys} or password.
+ pending: Your account is still under review.
+ timeout: Your session expired. Please sign in again to continue.
+ unauthenticated: You need to sign in or sign up before continuing.
+ unconfirmed: You have to confirm your email address before continuing.
+ mailer:
+ confirmation_instructions:
+ action: Verify email address
+ action_with_app: Confirm and return to %{app}
+ explanation: You have created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email.
+ explanation_when_pending: You applied for an invite to %{host} with this email address. Once you confirm your e-mail address, we will review your application. You can login to change your details or delete your account, but you cannot access most of the functions until your account is approved. If your application is rejected, your data will be removed, so no further action will be required from you. If this wasn't you, please ignore this email.
+ extra_html: Please also check out <a href="%{terms_path}">the rules of the server</a> and <a href="%{policy_path}">our terms of service</a>.
+ subject: "Mastodon: Confirmation instructions for %{instance}"
+ title: Verify email address
+ email_changed:
+ explanation: "The email address for your account is being changed to:"
+ extra: If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account.
+ subject: "Mastodon: Email changed"
+ title: New email address
+ password_change:
+ explanation: The password for your account has been changed.
+ extra: If you did not change your password, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account.
+ subject: "Mastodon: Password changed"
+ title: Password changed
+ reconfirmation_instructions:
+ explanation: Confirm the new address to change your email.
+ extra: If this change wasn't initiated by you, please ignore this email. The email address for the Mastodon account won't change until you access the link above.
+ subject: "Mastodon: Confirm email for %{instance}"
+ title: Verify email address
+ reset_password_instructions:
+ action: Change password
+ explanation: You requested a new password for your account.
+ extra: If you didn't request this, please ignore this email. Your password won't change until you access the link above and create a new one.
+ subject: "Mastodon: Reset password instructions"
+ title: Password reset
+ two_factor_disabled:
+ explanation: Two-factor authentication for your account has been disabled. Login is now possible using only e-mail address and password.
+ subject: "Mastodon: Two-factor authentication disabled"
+ title: 2FA disabled
+ two_factor_enabled:
+ explanation: Two-factor authentication has been enabled for your account. A token generated by the paired TOTP app will be required for login.
+ subject: "Mastodon: Two-factor authentication enabled"
+ title: 2FA enabled
+ two_factor_recovery_codes_changed:
+ explanation: The previous recovery codes have been invalidated and new ones generated.
+ subject: "Mastodon: Two-factor recovery codes re-generated"
+ title: 2FA recovery codes changed
+ unlock_instructions:
+ subject: "Mastodon: Unlock instructions"
+ webauthn_credential:
+ added:
+ explanation: The following security key has been added to your account
+ subject: "Mastodon: New security key"
+ title: A new security key has been added
+ deleted:
+ explanation: The following security key has been deleted from your account
+ subject: "Mastodon: Security key deleted"
+ title: One of your security keys has been deleted
+ webauthn_disabled:
+ explanation: Authentication with security keys has been disabled for your account. Login is now possible using only the token generated by the paired TOTP app.
+ subject: "Mastodon: Authentication with security keys disabled"
+ title: Security keys disabled
+ webauthn_enabled:
+ explanation: Security key authentication has been enabled for your account. Your security key can now be used for login.
+ subject: "Mastodon: Security key authentication enabled"
+ title: Security keys enabled
+ omniauth_callbacks:
+ failure: Could not authenticate you from %{kind} because “%{reason}”.
+ success: Successfully authenticated from %{kind} account.
+ passwords:
+ no_token: You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided.
+ send_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. Please check your spam folder if you didn't receive this email.
+ send_paranoid_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. Please check your spam folder if you didn't receive this email.
+ updated: Your password has been changed successfully. You are now signed in.
+ updated_not_active: Your password has been changed successfully.
+ registrations:
+ destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon.
+ signed_up: Welcome! You have signed up successfully.
+ signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated.
+ signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked.
+ signed_up_but_pending: A message with a confirmation link has been sent to your email address. After you click the link, we will review your application. You will be notified if it is approved.
+ signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. Please check your spam folder if you didn't receive this email.
+ update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. Please check your spam folder if you didn't receive this email.
+ updated: Your account has been updated successfully.
+ sessions:
+ already_signed_out: Signed out successfully.
+ signed_in: Signed in successfully.
+ signed_out: Signed out successfully.
+ unlocks:
+ send_instructions: You will receive an email with instructions for how to unlock your account in a few minutes. Please check your spam folder if you didn't receive this email.
+ send_paranoid_instructions: If your account exists, you will receive an email with instructions for how to unlock it in a few minutes. Please check your spam folder if you didn't receive this email.
+ unlocked: Your account has been unlocked successfully. Please sign in to continue.
+ errors:
+ messages:
+ already_confirmed: was already confirmed, please try signing in
+ confirmation_period_expired: needs to be confirmed within %{period}, please request a new one
+ expired: has expired, please request a new one
+ not_found: not found
+ not_locked: was not locked
+ not_saved:
+ one: "1 error prohibited this %{resource} from being saved:"
+ other: "%{count} errors prohibited this %{resource} from being saved:"
diff --git a/config/locales/doorkeeper.tok.yml b/config/locales/doorkeeper.tok.yml
new file mode 100644
index 000000000..b89558917
--- /dev/null
+++ b/config/locales/doorkeeper.tok.yml
@@ -0,0 +1,185 @@
+---
+tok:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Application name
+ redirect_uri: Redirect URI
+ scopes: Scopes
+ website: Application website
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: cannot contain a fragment.
+ invalid_uri: must be a valid URI.
+ relative_uri: must be an absolute URI.
+ secured_uri: must be an HTTPS/SSL URI.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Authorize
+ cancel: Cancel
+ destroy: Destroy
+ edit: Edit
+ submit: Submit
+ confirmations:
+ destroy: Are you sure?
+ edit:
+ title: Edit application
+ form:
+ error: Whoops! Check your form for possible errors
+ help:
+ native_redirect_uri: Use %{native_redirect_uri} for local tests
+ redirect_uri: Use one line per URI
+ scopes: Separate scopes with spaces. Leave blank to use the default scopes.
+ index:
+ application: Application
+ callback_url: Callback URL
+ delete: Delete
+ empty: You have no applications.
+ name: Name
+ new: New application
+ scopes: Scopes
+ show: Show
+ title: Your applications
+ new:
+ title: New application
+ show:
+ actions: Actions
+ application_id: Client key
+ callback_urls: Callback URLs
+ scopes: Scopes
+ secret: Client secret
+ title: "Application: %{name}"
+ authorizations:
+ buttons:
+ authorize: Authorize
+ deny: Deny
+ error:
+ title: An error has occurred
+ new:
+ prompt_html: "%{client_name} would like permission to access your account. It is a third-party application. <strong>If you do not trust it, then you should not authorize it.</strong>"
+ review_permissions: Review permissions
+ title: Authorization required
+ show:
+ title: Copy this authorization code and paste it to the application.
+ authorized_applications:
+ buttons:
+ revoke: Revoke
+ confirmations:
+ revoke: Are you sure?
+ index:
+ authorized_at: Authorized on %{date}
+ description_html: These are applications that can access your account using the API. If there are applications you do not recognize here, or an application is misbehaving, you can revoke its access.
+ last_used_at: Last used on %{date}
+ never_used: Never used
+ scopes: Permissions
+ superapp: Internal
+ title: Your authorized applications
+ errors:
+ messages:
+ access_denied: The resource owner or authorization server denied the request.
+ credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.
+ invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.
+ invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.
+ invalid_redirect_uri: The redirect uri included is not valid.
+ invalid_request:
+ missing_param: "Missing required parameter: %{value}."
+ request_not_authorized: Request need to be authorized. Required parameter for authorizing request is missing or invalid.
+ unknown: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.
+ invalid_resource_owner: The provided resource owner credentials are not valid, or resource owner cannot be found
+ invalid_scope: The requested scope is invalid, unknown, or malformed.
+ invalid_token:
+ expired: The access token expired
+ revoked: The access token was revoked
+ unknown: The access token is invalid
+ resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged.
+ server_error: The authorization server encountered an unexpected condition which prevented it from fulfilling the request.
+ temporarily_unavailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server.
+ unauthorized_client: The client is not authorized to perform this request using this method.
+ unsupported_grant_type: The authorization grant type is not supported by the authorization server.
+ unsupported_response_type: The authorization server does not support this response type.
+ flash:
+ applications:
+ create:
+ notice: Application created.
+ destroy:
+ notice: Application deleted.
+ update:
+ notice: Application updated.
+ authorized_applications:
+ destroy:
+ notice: Application revoked.
+ grouped_scopes:
+ access:
+ read: Read-only access
+ read/write: Read and write access
+ write: Write-only access
+ title:
+ accounts: Accounts
+ admin/accounts: Administration of accounts
+ admin/all: All administrative functions
+ admin/reports: Administration of reports
+ all: Everything
+ blocks: Blocks
+ bookmarks: Bookmarks
+ conversations: Conversations
+ crypto: End-to-end encryption
+ favourites: Favourites
+ filters: Filters
+ follow: Relationships
+ follows: Follows
+ lists: Lists
+ media: Media attachments
+ mutes: Mutes
+ notifications: Notifications
+ push: Push notifications
+ reports: Reports
+ search: Search
+ statuses: Posts
+ layouts:
+ admin:
+ nav:
+ applications: Applications
+ oauth2_provider: OAuth2 Provider
+ application:
+ title: OAuth authorization required
+ scopes:
+ admin:read: read all data on the server
+ admin:read:accounts: read sensitive information of all accounts
+ admin:read:reports: read sensitive information of all reports and reported accounts
+ admin:write: modify all data on the server
+ admin:write:accounts: perform moderation actions on accounts
+ admin:write:reports: perform moderation actions on reports
+ crypto: use end-to-end encryption
+ follow: modify account relationships
+ push: receive your push notifications
+ read: read all your account's data
+ read:accounts: see accounts information
+ read:blocks: see your blocks
+ read:bookmarks: see your bookmarks
+ read:favourites: see your favourites
+ read:filters: see your filters
+ read:follows: see your follows
+ read:lists: see your lists
+ read:mutes: see your mutes
+ read:notifications: see your notifications
+ read:reports: see your reports
+ read:search: search on your behalf
+ read:statuses: see all posts
+ write: modify all your account's data
+ write:accounts: modify your profile
+ write:blocks: block accounts and domains
+ write:bookmarks: bookmark posts
+ write:conversations: mute and delete conversations
+ write:favourites: favourite posts
+ write:filters: create filters
+ write:follows: follow people
+ write:lists: create lists
+ write:media: upload media files
+ write:mutes: mute people and conversations
+ write:notifications: clear your notifications
+ write:reports: report other people
+ write:statuses: publish posts
diff --git a/config/locales/simple_form.tok.yml b/config/locales/simple_form.tok.yml
new file mode 100644
index 000000000..e478556f5
--- /dev/null
+++ b/config/locales/simple_form.tok.yml
@@ -0,0 +1,236 @@
+---
+tok:
+ simple_form:
+ hints:
+ account_alias:
+ acct: Specify the username@domain of the account you want to move from
+ account_migration:
+ acct: Specify the username@domain of the account you want to move to
+ account_warning_preset:
+ text: You can use post syntax, such as URLs, hashtags and mentions
+ title: Optional. Not visible to the recipient
+ admin_account_action:
+ include_statuses: The user will see which posts have caused the moderation action or warning
+ send_email_notification: The user will receive an explanation of what happened with their account
+ text_html: Optional. You can use post syntax. You can <a href="%{path}">add warning presets</a> to save time
+ type_html: Choose what to do with <strong>%{acct}</strong>
+ types:
+ disable: Prevent the user from using their account, but do not delete or hide their contents.
+ none: Use this to send a warning to the user, without triggering any other action.
+ sensitive: Force all this user's media attachments to be flagged as sensitive.
+ silence: Prevent the user from being able to post with public visibility, hide their posts and notifications from people not following them.
+ suspend: Prevent any interaction from or to this account and delete its contents. Revertible within 30 days.
+ warning_preset_id: Optional. You can still add custom text to end of the preset
+ announcement:
+ all_day: When checked, only the dates of the time range will be displayed
+ ends_at: Optional. Announcement will be automatically unpublished at this time
+ scheduled_at: Leave blank to publish the announcement immediately
+ starts_at: Optional. In case your announcement is bound to a specific time range
+ text: You can use post syntax. Please be mindful of the space the announcement will take up on the user's screen
+ appeal:
+ text: You can only appeal a strike once
+ defaults:
+ autofollow: People who sign up through the invite will automatically follow you
+ avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
+ bot: Signal to others that the account mainly performs automated actions and might not be monitored
+ context: One or multiple contexts where the filter should apply
+ current_password: For security purposes please enter the password of the current account
+ current_username: To confirm, please enter the username of the current account
+ digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence
+ discoverable: Allow your account to be discovered by strangers through recommendations, trends and other features
+ email: You will be sent a confirmation e-mail
+ fields: You can have up to 4 items displayed as a table on your profile
+ header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
+ inbox_url: Copy the URL from the frontpage of the relay you want to use
+ irreversible: Filtered posts will disappear irreversibly, even if filter is later removed
+ locale: The language of the user interface, e-mails and push notifications
+ locked: Manually control who can follow you by approving follow requests
+ password: Use at least 8 characters
+ phrase: Will be matched regardless of casing in text or content warning of a post
+ scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones.
+ setting_aggregate_reblogs: Do not show new boosts for posts that have been recently boosted (only affects newly-received boosts)
+ setting_always_send_emails: Normally e-mail notifications won't be sent when you are actively using Mastodon
+ setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click
+ setting_display_media_default: Hide media marked as sensitive
+ setting_display_media_hide_all: Always hide media
+ setting_display_media_show_all: Always show media
+ setting_hide_network: Who you follow and who follows you will be hidden on your profile
+ setting_noindex: Affects your public profile and post pages
+ setting_show_application: The application you use to post will be displayed in the detailed view of your posts
+ setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details
+ setting_use_pending_items: Hide timeline updates behind a click instead of automatically scrolling the feed
+ username: Your username will be unique on %{domain}
+ whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word
+ domain_allow:
+ domain: This domain will be able to fetch data from this server and incoming data from it will be processed and stored
+ email_domain_block:
+ domain: This can be the domain name that shows up in the e-mail address or the MX record it uses. They will be checked upon sign-up.
+ with_dns_records: An attempt to resolve the given domain's DNS records will be made and the results will also be blocked
+ featured_tag:
+ name: "You might want to use one of these:"
+ form_challenge:
+ current_password: You are entering a secure area
+ imports:
+ data: CSV file exported from another Mastodon server
+ invite_request:
+ text: This will help us review your application
+ ip_block:
+ comment: Optional. Remember why you added this rule.
+ expires_in: IP addresses are a finite resource, they are sometimes shared and often change hands. For this reason, indefinite IP blocks are not recommended.
+ ip: Enter an IPv4 or IPv6 address. You can block entire ranges using the CIDR syntax. Be careful not to lock yourself out!
+ severities:
+ no_access: Block access to all resources
+ sign_up_requires_approval: New sign-ups will require your approval
+ severity: Choose what will happen with requests from this IP
+ rule:
+ text: Describe a rule or requirement for users on this server. Try to keep it short and simple
+ sessions:
+ otp: "Enter the two-factor code generated by your phone app or use one of your recovery codes:"
+ webauthn: If it's an USB key be sure to insert it and, if necessary, tap it.
+ tag:
+ name: You can only change the casing of the letters, for example, to make it more readable
+ user:
+ chosen_languages: When checked, only posts in selected languages will be displayed in public timelines
+ webhook:
+ events: Select events to send
+ url: Where events will be sent to
+ labels:
+ account:
+ fields:
+ name: Label
+ value: Content
+ account_alias:
+ acct: Handle of the old account
+ account_migration:
+ acct: Handle of the new account
+ account_warning_preset:
+ text: Preset text
+ title: Title
+ admin_account_action:
+ include_statuses: Include reported posts in the e-mail
+ send_email_notification: Notify the user per e-mail
+ text: Custom warning
+ type: Action
+ types:
+ disable: Freeze
+ none: Send a warning
+ sensitive: Sensitive
+ silence: Limit
+ suspend: Suspend
+ warning_preset_id: Use a warning preset
+ announcement:
+ all_day: All-day event
+ ends_at: End of event
+ scheduled_at: Schedule publication
+ starts_at: Start of event
+ text: Announcement
+ appeal:
+ text: Explain why this decision should be reversed
+ defaults:
+ autofollow: Invite to follow your account
+ avatar: Avatar
+ bot: This is a bot account
+ chosen_languages: Filter languages
+ confirm_new_password: Confirm new password
+ confirm_password: Confirm password
+ context: Filter contexts
+ current_password: Current password
+ data: Data
+ discoverable: Suggest account to others
+ display_name: Display name
+ email: E-mail address
+ expires_in: Expire after
+ fields: Profile metadata
+ header: Header
+ honeypot: "%{label} (do not fill in)"
+ inbox_url: URL of the relay inbox
+ irreversible: Drop instead of hide
+ locale: Interface language
+ locked: Require follow requests
+ max_uses: Max number of uses
+ new_password: New password
+ note: Bio
+ otp_attempt: Two-factor code
+ password: Password
+ phrase: Keyword or phrase
+ setting_advanced_layout: Enable advanced web interface
+ setting_aggregate_reblogs: Group boosts in timelines
+ setting_always_send_emails: Always send e-mail notifications
+ setting_auto_play_gif: Auto-play animated GIFs
+ setting_boost_modal: Show confirmation dialog before boosting
+ setting_crop_images: Crop images in non-expanded posts to 16x9
+ setting_default_language: Posting language
+ setting_default_privacy: Posting privacy
+ setting_default_sensitive: Always mark media as sensitive
+ setting_delete_modal: Show confirmation dialog before deleting a post
+ setting_disable_swiping: Disable swiping motions
+ setting_display_media: Media display
+ setting_display_media_default: Default
+ setting_display_media_hide_all: Hide all
+ setting_display_media_show_all: Show all
+ setting_expand_spoilers: Always expand posts marked with content warnings
+ setting_hide_network: Hide your social graph
+ setting_noindex: Opt-out of search engine indexing
+ setting_reduce_motion: Reduce motion in animations
+ setting_show_application: Disclose application used to send posts
+ setting_system_font_ui: Use system's default font
+ setting_theme: Site theme
+ setting_trends: Show today's trends
+ setting_unfollow_modal: Show confirmation dialog before unfollowing someone
+ setting_use_blurhash: Show colorful gradients for hidden media
+ setting_use_pending_items: Slow mode
+ severity: Severity
+ sign_in_token_attempt: Security code
+ type: Import type
+ username: Username
+ username_or_email: Username or Email
+ whole_word: Whole word
+ email_domain_block:
+ with_dns_records: Include MX records and IPs of the domain
+ featured_tag:
+ name: Hashtag
+ interactions:
+ must_be_follower: Block notifications from non-followers
+ must_be_following: Block notifications from people you don't follow
+ must_be_following_dm: Block direct messages from people you don't follow
+ invite:
+ comment: Comment
+ invite_request:
+ text: Why do you want to join?
+ ip_block:
+ comment: Comment
+ ip: IP
+ severities:
+ no_access: Block access
+ sign_up_requires_approval: Limit sign-ups
+ severity: Rule
+ notification_emails:
+ appeal: Someone appeals a moderator decision
+ digest: Send digest e-mails
+ favourite: Someone favourited your post
+ follow: Someone followed you
+ follow_request: Someone requested to follow you
+ mention: Someone mentioned you
+ pending_account: New account needs review
+ reblog: Someone boosted your post
+ report: New report is submitted
+ trending_tag: New trend requires review
+ rule:
+ text: Rule
+ tag:
+ listable: Allow this hashtag to appear in searches and suggestions
+ name: Hashtag
+ trendable: Allow this hashtag to appear under trends
+ usable: Allow posts to use this hashtag
+ webhook:
+ events: Enabled events
+ url: Endpoint URL
+ "no": "No"
+ recommended: Recommended
+ required:
+ mark: "*"
+ text: required
+ title:
+ sessions:
+ webauthn: Use one of your security keys to sign in
+ "yes": "Yes"
diff --git a/config/locales/tok.yml b/config/locales/tok.yml
new file mode 100644
index 000000000..fe2b88bc4
--- /dev/null
+++ b/config/locales/tok.yml
@@ -0,0 +1,1749 @@
+---
+tok:
+ about:
+ about_hashtag_html: These are public posts tagged with <strong>#%{hashtag}</strong>. You can interact with them if you have an account anywhere in the fediverse.
+ about_mastodon_html: "The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!"
+ about_this: About
+ active_count_after: active
+ active_footnote: Monthly Active Users (MAU)
+ administered_by: "Administered by:"
+ api: API
+ apps: Mobile apps
+ apps_platforms: Use Mastodon from iOS, Android and other platforms
+ browse_directory: Browse a profile directory and filter by interests
+ browse_local_posts: Browse a live stream of public posts from this server
+ browse_public_posts: Browse a live stream of public posts on Mastodon
+ contact: Contact
+ contact_missing: Not set
+ contact_unavailable: N/A
+ continue_to_web: Continue to web app
+ discover_users: Discover users
+ documentation: Documentation
+ federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
+ get_apps: Try a mobile app
+ hosted_on: Mastodon hosted on %{domain}
+ 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 blocked unless you want to block the whole instance, in which case you should use a domain block.
+ learn_more: Learn more
+ logged_in_as_html: You are currently logged in as %{username}.
+ logout_before_registering: You are already logged in.
+ privacy_policy: Privacy policy
+ rules: Server rules
+ rules_html: "Below is a summary of rules you need to follow if you want to have an account on this server of Mastodon:"
+ see_whats_happening: See what's happening
+ server_stats: "Server stats:"
+ source_code: Source code
+ status_count_after:
+ one: post
+ other: posts
+ status_count_before: Who published
+ tagline: Decentralized social network
+ terms: Terms of service
+ unavailable_content: Moderated servers
+ unavailable_content_description:
+ domain: Server
+ reason: Reason
+ rejecting_media: "Media files from these servers will not be processed or stored, and no thumbnails will be displayed, requiring manual click-through to the original file:"
+ rejecting_media_title: Filtered media
+ silenced: "Posts from these servers will be hidden in public timelines and conversations, and no notifications will be generated from their users interactions, unless you are following them:"
+ silenced_title: Limited servers
+ suspended: "No data from these servers will be processed, stored or exchanged, making any interaction or communication with users from these servers impossible:"
+ suspended_title: Suspended servers
+ unavailable_content_html: Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.
+ user_count_after:
+ one: user
+ other: users
+ user_count_before: Home to
+ what_is_mastodon: What is Mastodon?
+ accounts:
+ choices_html: "%{name}'s choices:"
+ endorsements_hint: You can endorse people you follow from the web interface, and they will show up here.
+ featured_tags_hint: You can feature specific hashtags that will be displayed here.
+ follow: Follow
+ followers:
+ one: Follower
+ other: Followers
+ following: Following
+ 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.
+ joined: Joined %{date}
+ last_active: last active
+ link_verified_on: Ownership of this link was checked on %{date}
+ media: Media
+ moved_html: "%{name} has moved to %{new_profile_link}:"
+ network_hidden: This information is not available
+ nothing_here: There is nothing here!
+ people_followed_by: People whom %{name} follows
+ people_who_follow: People who follow %{name}
+ pin_errors:
+ following: You must be already following the person you want to endorse
+ posts:
+ one: Post
+ other: Posts
+ posts_tab_heading: Posts
+ posts_with_replies: Posts and replies
+ roles:
+ admin: Admin
+ bot: Bot
+ group: Group
+ moderator: Mod
+ unavailable: Profile unavailable
+ unfollow: Unfollow
+ admin:
+ account_actions:
+ action: Perform action
+ title: Perform moderation action on %{acct}
+ account_moderation_notes:
+ create: Leave note
+ created_msg: Moderation note successfully created!
+ destroyed_msg: Moderation note successfully destroyed!
+ accounts:
+ add_email_domain_block: Block e-mail domain
+ approve: Approve
+ approved_msg: Successfully approved %{username}'s sign-up application
+ are_you_sure: Are you sure?
+ avatar: Avatar
+ by_domain: Domain
+ change_email:
+ changed_msg: Account email successfully changed!
+ current_email: Current email
+ label: Change email
+ new_email: New email
+ submit: Change email
+ title: Change email for %{username}
+ confirm: Confirm
+ confirmed: Confirmed
+ confirming: Confirming
+ custom: Custom
+ delete: Delete data
+ deleted: Deleted
+ demote: Demote
+ destroyed_msg: "%{username}'s data is now queued to be deleted imminently"
+ disable: Freeze
+ disable_sign_in_token_auth: Disable e-mail token authentication
+ disable_two_factor_authentication: Disable 2FA
+ disabled: Frozen
+ display_name: Display name
+ domain: Domain
+ edit: Edit
+ email: Email
+ email_status: Email status
+ enable: Unfreeze
+ enable_sign_in_token_auth: Enable e-mail token authentication
+ enabled: Enabled
+ enabled_msg: Successfully unfroze %{username}'s account
+ followers: Followers
+ follows: Follows
+ header: Header
+ inbox_url: Inbox URL
+ invite_request_text: Reasons for joining
+ invited_by: Invited by
+ ip: IP
+ joined: Joined
+ location:
+ all: All
+ local: Local
+ remote: Remote
+ title: Location
+ login_status: Login status
+ media_attachments: Media attachments
+ memorialize: Turn into memoriam
+ memorialized: Memorialized
+ memorialized_msg: Successfully turned %{username} into a memorial account
+ moderation:
+ active: Active
+ all: All
+ pending: Pending
+ suspended: Suspended
+ title: Moderation
+ moderation_notes: Moderation notes
+ most_recent_activity: Most recent activity
+ most_recent_ip: Most recent IP
+ no_account_selected: No accounts were changed as none were selected
+ no_limits_imposed: No limits imposed
+ not_subscribed: Not subscribed
+ pending: Pending review
+ perform_full_suspension: Suspend
+ previous_strikes: Previous strikes
+ previous_strikes_description_html:
+ one: This account has <strong>one</strong> strike.
+ other: This account has <strong>%{count}</strong> strikes.
+ promote: Promote
+ protocol: Protocol
+ public: Public
+ push_subscription_expires: PuSH subscription expires
+ redownload: Refresh profile
+ redownloaded_msg: Successfully refreshed %{username}'s profile from origin
+ reject: Reject
+ rejected_msg: Successfully rejected %{username}'s sign-up application
+ remove_avatar: Remove avatar
+ remove_header: Remove header
+ removed_avatar_msg: Successfully removed %{username}'s avatar image
+ removed_header_msg: Successfully removed %{username}'s header image
+ resend_confirmation:
+ already_confirmed: This user is already confirmed
+ send: Resend confirmation email
+ success: Confirmation email successfully sent!
+ reset: Reset
+ reset_password: Reset password
+ resubscribe: Resubscribe
+ role: Permissions
+ roles:
+ admin: Administrator
+ moderator: Moderator
+ staff: Staff
+ user: User
+ search: Search
+ search_same_email_domain: Other users with the same e-mail domain
+ search_same_ip: Other users with the same IP
+ security_measures:
+ only_password: Only password
+ password_and_2fa: Password and 2FA
+ sensitive: Force-sensitive
+ sensitized: Marked as sensitive
+ shared_inbox_url: Shared inbox URL
+ show:
+ created_reports: Made reports
+ targeted_reports: Reported by others
+ silence: Limit
+ silenced: Limited
+ statuses: Posts
+ strikes: Previous strikes
+ subscribe: Subscribe
+ suspend: Suspend
+ suspended: Suspended
+ 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.
+ title: Accounts
+ unblock_email: Unblock email address
+ unblocked_email_msg: Successfully unblocked %{username}'s email address
+ unconfirmed_email: Unconfirmed email
+ undo_sensitized: Undo force-sensitive
+ undo_silenced: Undo limit
+ undo_suspension: Undo suspension
+ unsilenced_msg: Successfully undid limit of %{username}'s account
+ unsubscribe: Unsubscribe
+ unsuspended_msg: Successfully unsuspended %{username}'s account
+ username: Username
+ view_domain: View summary for domain
+ warn: Warn
+ web: Web
+ whitelisted: Allowed for federation
+ action_logs:
+ action_types:
+ approve_appeal: Approve Appeal
+ approve_user: Approve User
+ assigned_to_self_report: Assign Report
+ change_email_user: Change E-mail for User
+ confirm_user: Confirm User
+ create_account_warning: Create Warning
+ create_announcement: Create Announcement
+ 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
+ create_ip_block: Create IP rule
+ create_unavailable_domain: Create Unavailable Domain
+ demote_user: Demote User
+ destroy_announcement: Delete Announcement
+ destroy_custom_emoji: Delete Custom Emoji
+ destroy_domain_allow: Delete Domain Allow
+ destroy_domain_block: Delete Domain Block
+ destroy_email_domain_block: Delete E-mail Domain Block
+ destroy_instance: Purge Domain
+ destroy_ip_block: Delete IP rule
+ destroy_status: Delete Post
+ destroy_unavailable_domain: Delete Unavailable Domain
+ disable_2fa_user: Disable 2FA
+ disable_custom_emoji: Disable Custom Emoji
+ disable_sign_in_token_auth_user: Disable E-mail Token Authentication for User
+ disable_user: Disable User
+ enable_custom_emoji: Enable Custom Emoji
+ enable_sign_in_token_auth_user: Enable E-mail Token Authentication for User
+ enable_user: Enable User
+ memorialize_account: Memorialize Account
+ promote_user: Promote User
+ reject_appeal: Reject Appeal
+ reject_user: Reject User
+ remove_avatar_user: Remove Avatar
+ reopen_report: Reopen Report
+ reset_password_user: Reset Password
+ resolve_report: Resolve Report
+ sensitive_account: Force-Sensitive Account
+ silence_account: Limit Account
+ suspend_account: Suspend Account
+ unassigned_report: Unassign Report
+ unblock_email_account: Unblock email address
+ unsensitive_account: Undo Force-Sensitive Account
+ unsilence_account: Undo Limit Account
+ unsuspend_account: Unsuspend Account
+ update_announcement: Update Announcement
+ update_custom_emoji: Update Custom Emoji
+ update_domain_block: Update Domain Block
+ update_status: Update Post
+ actions:
+ approve_appeal_html: "%{name} approved moderation decision appeal from %{target}"
+ approve_user_html: "%{name} approved sign-up from %{target}"
+ assigned_to_self_report_html: "%{name} assigned report %{target} to themselves"
+ change_email_user_html: "%{name} changed the e-mail address of user %{target}"
+ 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}"
+ 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}"
+ create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
+ demote_user_html: "%{name} demoted user %{target}"
+ destroy_announcement_html: "%{name} deleted announcement %{target}"
+ destroy_custom_emoji_html: "%{name} destroyed emoji %{target}"
+ 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}"
+ destroy_instance_html: "%{name} purged domain %{target}"
+ destroy_ip_block_html: "%{name} deleted rule for IP %{target}"
+ destroy_status_html: "%{name} removed post by %{target}"
+ destroy_unavailable_domain_html: "%{name} resumed delivery to domain %{target}"
+ disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}"
+ disable_custom_emoji_html: "%{name} disabled emoji %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} disabled e-mail token authentication for %{target}"
+ disable_user_html: "%{name} disabled login for user %{target}"
+ enable_custom_emoji_html: "%{name} enabled emoji %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} enabled e-mail token authentication for %{target}"
+ 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}"
+ reject_appeal_html: "%{name} rejected moderation decision appeal from %{target}"
+ reject_user_html: "%{name} rejected sign-up from %{target}"
+ remove_avatar_user_html: "%{name} removed %{target}'s avatar"
+ reopen_report_html: "%{name} reopened report %{target}"
+ 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"
+ silence_account_html: "%{name} limited %{target}'s account"
+ suspend_account_html: "%{name} suspended %{target}'s account"
+ unassigned_report_html: "%{name} unassigned report %{target}"
+ unblock_email_account_html: "%{name} unblocked %{target}'s email address"
+ unsensitive_account_html: "%{name} unmarked %{target}'s media as sensitive"
+ unsilence_account_html: "%{name} undid limit of %{target}'s account"
+ 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}"
+ update_status_html: "%{name} updated post by %{target}"
+ deleted_status: "(deleted post)"
+ empty: No logs found.
+ filter_by_action: Filter by action
+ filter_by_user: Filter by user
+ title: Audit log
+ announcements:
+ destroyed_msg: Announcement successfully deleted!
+ edit:
+ title: Edit announcement
+ empty: No announcements found.
+ live: Live
+ new:
+ create: Create announcement
+ title: New announcement
+ publish: Publish
+ published_msg: Announcement successfully published!
+ scheduled_for: Scheduled for %{time}
+ scheduled_msg: Announcement scheduled for publication!
+ title: Announcements
+ unpublish: Unpublish
+ unpublished_msg: Announcement successfully unpublished!
+ updated_msg: Announcement successfully updated!
+ custom_emojis:
+ assign_category: Assign category
+ by_domain: Domain
+ copied_msg: Successfully created local copy of the emoji
+ copy: Copy
+ copy_failed_msg: Could not make a local copy of that emoji
+ create_new_category: Create new category
+ created_msg: Emoji successfully created!
+ delete: Delete
+ destroyed_msg: Emojo successfully destroyed!
+ disable: Disable
+ disabled: Disabled
+ disabled_msg: Successfully disabled that emoji
+ emoji: Emoji
+ enable: Enable
+ enabled: Enabled
+ enabled_msg: Successfully enabled that emoji
+ image_hint: PNG or GIF up to %{size}
+ list: List
+ listed: Listed
+ new:
+ title: Add new custom emoji
+ not_permitted: You are not permitted to perform this action
+ overwrite: Overwrite
+ shortcode: Shortcode
+ shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
+ title: Custom emojis
+ uncategorized: Uncategorized
+ unlist: Unlist
+ unlisted: Unlisted
+ update_failed_msg: Could not update that emoji
+ updated_msg: Emoji successfully updated!
+ upload: Upload
+ dashboard:
+ active_users: active users
+ interactions: interactions
+ media_storage: Media storage
+ new_users: new users
+ opened_reports: reports opened
+ pending_appeals_html:
+ one: "<strong>%{count}</strong> pending appeal"
+ other: "<strong>%{count}</strong> pending appeals"
+ pending_reports_html:
+ one: "<strong>%{count}</strong> pending report"
+ other: "<strong>%{count}</strong> pending reports"
+ pending_tags_html:
+ one: "<strong>%{count}</strong> pending hashtag"
+ other: "<strong>%{count}</strong> pending hashtags"
+ pending_users_html:
+ one: "<strong>%{count}</strong> pending user"
+ other: "<strong>%{count}</strong> pending users"
+ resolved_reports: reports resolved
+ software: Software
+ sources: Sign-up sources
+ space: Space usage
+ title: Dashboard
+ top_languages: Top active languages
+ top_servers: Top active servers
+ website: Website
+ disputes:
+ appeals:
+ empty: No appeals found.
+ title: Appeals
+ domain_allows:
+ add_new: Allow federation with domain
+ created_msg: Domain has been successfully allowed for federation
+ destroyed_msg: Domain has been disallowed from federation
+ undo: Disallow federation with domain
+ domain_blocks:
+ add_new: Add new domain block
+ created_msg: Domain block is now being processed
+ destroyed_msg: Domain block has been undone
+ domain: Domain
+ edit: Edit domain block
+ existing_domain_block: You have already imposed stricter limits on %{name}.
+ existing_domain_block_html: You have already imposed stricter limits on %{name}, you need to <a href="%{unblock_url}">unblock it</a> first.
+ 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:
+ desc_html: "<strong>Silence</strong> will make the account's posts invisible to anyone who isn't following them. <strong>Suspend</strong> will remove all of the account's content, media, and profile data. Use <strong>None</strong> if you just want to reject media files."
+ noop: None
+ silence: Silence
+ suspend: Suspend
+ title: New domain block
+ obfuscate: Obfuscate domain name
+ obfuscate_hint: Partially obfuscate the domain name in the list if advertising the list of domain limitations is enabled
+ 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.
+ reject_media: Reject media files
+ reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions
+ reject_reports: Reject reports
+ reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions
+ undo: Undo domain block
+ view: View domain block
+ email_domain_blocks:
+ add_new: Add new
+ attempts_over_week:
+ one: "%{count} attempt over the last week"
+ other: "%{count} sign-up attempts over the last week"
+ created_msg: Successfully blocked e-mail domain
+ delete: Delete
+ dns:
+ types:
+ mx: MX record
+ domain: Domain
+ new:
+ create: Add domain
+ resolve: Resolve domain
+ title: Block new e-mail domain
+ no_email_domain_block_selected: No e-mail domain blocks were changed as none were selected
+ 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}
+ title: Blocked e-mail domains
+ 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
+ instances:
+ 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
+ warning: The last attempt to connect to this server has been unsuccessful
+ back_to_all: All
+ back_to_limited: Limited
+ back_to_warning: Warning
+ by_domain: Domain
+ confirm_purge: Are you sure you want to permanently delete data from this domain?
+ 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.
+ 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
+ delivery:
+ all: All
+ clear: Clear delivery errors
+ failing: Failing
+ restart: Restart delivery
+ stop: Stop delivery
+ unavailable: Unavailable
+ delivery_available: Delivery is available
+ delivery_error_days: Delivery error days
+ delivery_error_hint: If delivery is not possible for %{count} days, it will be automatically marked as undeliverable.
+ destroyed_msg: Data from %{domain} is now queued for imminent deletion.
+ empty: No domains found.
+ known_accounts:
+ one: "%{count} known account"
+ other: "%{count} known accounts"
+ moderation:
+ all: All
+ limited: Limited
+ title: Moderation
+ private_comment: Private comment
+ public_comment: Public comment
+ purge: Purge
+ 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.
+ 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
+ totals_time_period_hint_html: The totals displayed below include data for all time.
+ invites:
+ deactivate_all: Deactivate all
+ filter:
+ all: All
+ available: Available
+ expired: Expired
+ title: Filter
+ title: Invites
+ 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
+ relationships:
+ title: "%{acct}'s relationships"
+ relays:
+ add_new: Add new relay
+ delete: Delete
+ 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.
+ disable: Disable
+ disabled: Disabled
+ enable: Enable
+ 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.
+ enabled: Enabled
+ inbox_url: Relay URL
+ pending: Waiting for relay's approval
+ save_and_enable: Save and enable
+ setup: Setup a relay connection
+ signatures_not_enabled: Relays will not work correctly while secure mode or limited federation mode is enabled
+ status: Status
+ title: Relays
+ report_notes:
+ created_msg: Report note successfully created!
+ destroyed_msg: Report note successfully deleted!
+ today_at: Today at %{time}
+ reports:
+ account:
+ notes:
+ one: "%{count} note"
+ other: "%{count} notes"
+ action_log: Audit log
+ action_taken_by: Action taken by
+ actions:
+ 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.
+ 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.
+ other_description_html: See more options for controlling the account's behaviour and customize communication to the reported account.
+ resolve_description_html: No action will be taken against the reported account, no strike recorded, and the report will be closed.
+ silence_description_html: The profile will be visible only to those who already follow it or manually look it up, severely limiting its reach. Can always be reverted.
+ suspend_description_html: The profile and all its contents will become inaccessible until it is eventually deleted. Interacting with the account will be impossible. Reversible within 30 days.
+ 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.
+ add_to_report: Add more to report
+ are_you_sure: Are you sure?
+ assign_to_self: Assign to me
+ assigned: Assigned moderator
+ by_target_domain: Domain of reported account
+ category: Category
+ category_description_html: The reason this account and/or content was reported will be cited in communication with the reported account
+ comment:
+ none: None
+ comment_description_html: "To provide more information, %{name} wrote:"
+ created_at: Reported
+ delete_and_resolve: Delete posts
+ forwarded: Forwarded
+ forwarded_to: Forwarded to %{domain}
+ mark_as_resolved: Mark as resolved
+ mark_as_sensitive: Mark as sensitive
+ mark_as_unresolved: Mark as unresolved
+ no_one_assigned: No one
+ notes:
+ create: Add note
+ create_and_resolve: Resolve with note
+ create_and_unresolve: Reopen with note
+ delete: Delete
+ placeholder: Describe what actions have been taken, or any other related updates...
+ title: Notes
+ notes_description_html: View and leave notes to other moderators and your future self
+ quick_actions_description_html: "Take a quick action or scroll down to see reported content:"
+ remote_user_placeholder: the remote user from %{instance}
+ reopen: Reopen report
+ report: "Report #%{id}"
+ reported_account: Reported account
+ reported_by: Reported by
+ resolved: Resolved
+ resolved_msg: Report successfully resolved!
+ skip_to_actions: Skip to actions
+ status: Status
+ statuses: Reported content
+ statuses_description_html: Offending content will be cited in communication with the reported account
+ target_origin: Origin of reported account
+ title: Reports
+ unassign: Unassign
+ unresolved: Unresolved
+ updated_at: Updated
+ view_profile: View profile
+ rules:
+ add_new: Add rule
+ 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.
+ edit: Edit rule
+ empty: No server rules have been defined yet.
+ title: Server rules
+ settings:
+ activity_api_enabled:
+ desc_html: Counts of locally published posts, active users, and new registrations in weekly buckets
+ title: Publish aggregate statistics about user activity in the API
+ bootstrap_timeline_accounts:
+ desc_html: Separate multiple usernames by comma. These accounts will be guaranteed to be shown in follow recommendations
+ title: Recommend these accounts to new users
+ contact_information:
+ email: Business e-mail
+ username: Contact username
+ custom_css:
+ desc_html: Modify the look with CSS loaded on every page
+ title: Custom CSS
+ default_noindex:
+ desc_html: Affects all users who have not changed this setting themselves
+ title: Opt users out of search engine indexing by default
+ domain_blocks:
+ all: To everyone
+ disabled: To no one
+ title: Show domain blocks
+ users: To logged-in local users
+ domain_blocks_rationale:
+ title: Show rationale
+ hero:
+ desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail
+ title: Hero image
+ mascot:
+ desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot
+ title: Mascot image
+ peers_api_enabled:
+ desc_html: Domain names this server has encountered in the fediverse
+ title: Publish list of discovered servers in the API
+ preview_sensitive_media:
+ desc_html: Link previews on other websites will display a thumbnail even if the media is marked as sensitive
+ title: Show sensitive media in OpenGraph previews
+ profile_directory:
+ desc_html: Allow users to be discoverable
+ title: Enable profile directory
+ registrations:
+ closed_message:
+ desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags
+ title: Closed registration message
+ deletion:
+ desc_html: Allow anyone to delete their account
+ title: Open account deletion
+ min_invite_role:
+ disabled: No one
+ title: Allow invitations by
+ require_invite_text:
+ desc_html: When registrations require manual approval, make the “Why do you want to join?” text input mandatory rather than optional
+ title: Require new users to enter a reason to join
+ registrations_mode:
+ modes:
+ approved: Approval required for sign up
+ none: Nobody can sign up
+ open: Anyone can sign up
+ title: Registrations mode
+ show_known_fediverse_at_about_page:
+ desc_html: When disabled, restricts the public timeline linked from the landing page to showing only local content
+ title: Include federated content on unauthenticated public timeline page
+ show_staff_badge:
+ desc_html: Show a staff badge on a user page
+ title: Show staff badge
+ site_description:
+ desc_html: Introductory paragraph on the API. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <code>&lt;a&gt;</code> and <code>&lt;em&gt;</code>.
+ title: Server description
+ site_description_extended:
+ desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags
+ title: Custom extended information
+ site_short_description:
+ desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph.
+ title: Short server description
+ site_terms:
+ desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags
+ title: Custom terms of service
+ site_title: Server name
+ thumbnail:
+ desc_html: Used for previews via OpenGraph and API. 1200x630px recommended
+ title: Server thumbnail
+ timeline_preview:
+ desc_html: Display link to public timeline on landing page and allow API access to the public timeline without authentication
+ title: Allow unauthenticated access to public timeline
+ title: Site settings
+ trendable_by_default:
+ desc_html: Affects hashtags that have not been previously disallowed
+ title: Allow hashtags to trend without prior review
+ trends:
+ desc_html: Publicly display previously reviewed content that is currently trending
+ title: Trends
+ site_uploads:
+ delete: Delete uploaded file
+ destroyed_msg: Site upload successfully deleted!
+ statuses:
+ back_to_account: Back to account page
+ back_to_report: Back to report page
+ batch:
+ remove_from_report: Remove from report
+ report: Report
+ deleted: Deleted
+ media:
+ title: Media
+ no_status_selected: No posts were changed as none were selected
+ title: Account posts
+ with_media: With media
+ strikes:
+ actions:
+ delete_statuses: "%{name} deleted %{target}'s posts"
+ disable: "%{name} froze %{target}'s account"
+ mark_statuses_as_sensitive: "%{name} marked %{target}'s posts as sensitive"
+ 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
+ system_checks:
+ database_schema_check:
+ message_html: There are pending database migrations. Please run them to ensure the application behaves as expected
+ 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
+ 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
+ tags:
+ review: Review status
+ updated_msg: Hashtag settings updated successfully
+ title: Administration
+ trends:
+ allow: Allow
+ approved: Approved
+ disallow: Disallow
+ links:
+ allow: Allow link
+ allow_provider: Allow publisher
+ 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.
+ disallow: Disallow link
+ disallow_provider: Disallow publisher
+ 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
+ only_allowed: Only allowed
+ pending_review: Pending review
+ preview_card_providers:
+ allowed: Links from this publisher can trend
+ 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.
+ rejected: Links from this publisher won't trend
+ title: Publishers
+ rejected: Rejected
+ statuses:
+ allow: Allow post
+ allow_account: Allow author
+ description_html: These are posts that your server knows about that are currently being shared and favourited 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.
+ disallow: Disallow post
+ disallow_account: Disallow author
+ not_discoverable: Author has not opted-in to being discoverable
+ shared_by:
+ one: Shared or favourited one time
+ other: Shared and favourited %{friendly_count} times
+ title: Trending posts
+ 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
+ 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.
+ listable: Can be suggested
+ 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
+ trending: Trending
+ warning_presets:
+ add_new: Add new
+ delete: Delete
+ edit_preset: Edit warning preset
+ empty: You haven't defined any warning presets yet.
+ title: Manage warning presets
+ 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
+ admin_mailer:
+ new_appeal:
+ actions:
+ delete_statuses: to delete their posts
+ disable: to freeze their account
+ mark_statuses_as_sensitive: to mark their posts as sensitive
+ 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}"
+ 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})
+ new_report:
+ body: "%{reporter} has reported %{target}"
+ body_remote: Someone from %{domain} has reported %{target}
+ subject: New report for %{instance} (#%{id})
+ new_trends:
+ body: "The following items need a review before they can be displayed publicly:"
+ new_trending_links:
+ no_approved_links: There are currently no approved trending links.
+ requirements: 'Any of these candidates could surpass the #%{rank} approved trending link, which is currently "%{lowest_link_title}" with a score of %{lowest_link_score}.'
+ title: Trending links
+ new_trending_statuses:
+ no_approved_statuses: There are currently no approved trending posts.
+ requirements: "Any of these candidates could surpass the #%{rank} approved trending post, which is currently %{lowest_status_url} with a score of %{lowest_status_score}."
+ 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}
+ aliases:
+ add_new: Create alias
+ created_msg: Successfully created a new alias. You can now initiate the move from the old account.
+ deleted_msg: Successfully removed the alias. Moving from that account to this one will no longer be possible.
+ empty: You have no aliases.
+ 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
+ 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
+ discovery: Discovery
+ localization:
+ body: Mastodon is translated by volunteers.
+ guide_link: https://crowdin.com/project/mastodon
+ guide_link_text: Everyone can contribute.
+ sensitive_content: Sensitive content
+ toot_layout: Post layout
+ application_mailer:
+ notification_preferences: Change e-mail preferences
+ salutation: "%{name},"
+ settings: "Change e-mail preferences: %{link}"
+ view: "View:"
+ view_profile: View profile
+ view_status: View post
+ applications:
+ created: Application successfully created
+ destroyed: Application successfully deleted
+ 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
+ auth:
+ apply_for_account: Request an invite
+ change_password: Password
+ checkbox_agreement_html: I agree to the <a href="%{rules_path}" target="_blank">server rules</a> and <a href="%{terms_path}" target="_blank">terms of service</a>
+ checkbox_agreement_without_rules_html: I agree to the <a href="%{terms_path}" target="_blank">terms of service</a>
+ 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.
+ 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!
+ didnt_get_confirmation: Didn't receive confirmation instructions?
+ dont_have_your_security_key: Don't have your security key?
+ forgot_password: Forgot your password?
+ invalid_reset_password_token: Password reset token is invalid or expired. Please request a new one.
+ link_to_otp: Enter a two-factor code from your phone or a recovery code
+ link_to_webauth: Use your security key device
+ log_in_with: Log in with
+ login: Log in
+ logout: Logout
+ 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>.
+ or_log_in_with: Or log in with
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Sign up
+ registration_closed: "%{instance} is not accepting new members"
+ resend_confirmation: Resend confirmation instructions
+ reset_password: Reset password
+ security: Security
+ set_new_password: Set new password
+ setup:
+ email_below_hint_html: If the below e-mail address is incorrect, you can change it here and receive a new confirmation e-mail.
+ email_settings_hint_html: The confirmation e-mail was sent to %{email}. If that e-mail address is not correct, you can change it in account settings.
+ title: Setup
+ status:
+ account_status: Account status
+ confirming: Waiting for e-mail confirmation to be completed.
+ functional: Your account is fully operational.
+ 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.
+ redirecting_to: Your account is inactive because it is currently redirecting to %{acct}.
+ view_strikes: View past strikes against your account
+ too_fast: Form submitted too fast, try again.
+ trouble_logging_in: Trouble logging in?
+ use_security_key: Use security key
+ authorize_follow:
+ already_following: You are already following this account
+ already_requested: You have already sent a follow request to that account
+ error: Unfortunately, there was an error looking up the remote account
+ follow: Follow
+ follow_request: "You have sent a follow request to:"
+ following: "Success! You are now following:"
+ post_follow:
+ close: Or, you can just close this window.
+ return: Show the user's profile
+ web: Go to web
+ title: Follow %{acct}
+ 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
+ crypto:
+ errors:
+ invalid_key: is not a valid Ed25519 or Curve25519 key
+ invalid_signature: is not a valid Ed25519 signature
+ date:
+ formats:
+ default: "%b %d, %Y"
+ with_month_name: "%B %d, %Y"
+ 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"
+ deletes:
+ challenge_not_passed: The information you entered was not correct
+ confirm_password: Enter your current password to verify your identity
+ confirm_username: Enter your username to confirm the procedure
+ proceed: Delete account
+ success_msg: Your account was successfully deleted
+ 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
+ directories:
+ directory: Profile directory
+ explanation: Discover users based on their interests
+ explore_mastodon: Explore %{title}
+ 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
+ approve_appeal: Approve appeal
+ associated_report: Associated report
+ created_at: Dated
+ description_html: These are actions taken against your account and warnings that have been sent to you by the staff of %{instance}.
+ recipient: Addressed to
+ reject_appeal: Reject appeal
+ status: "Post #%{id}"
+ status_removed: Post already removed from system
+ title: "%{action} from %{date}"
+ title_actions:
+ delete_statuses: Post removal
+ disable: Freezing of account
+ mark_statuses_as_sensitive: Marking of posts as sensitive
+ none: Warning
+ sensitive: Marking of account as sensitive
+ 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
+ domain_validator:
+ invalid_domain: is not a valid domain name
+ errors:
+ "400": The request you submitted was invalid or malformed.
+ "403": You don't have permission to view this page.
+ "404": The page you are looking for isn't here.
+ "406": This page is not available in the requested format.
+ "410": The page you were looking for doesn't exist here anymore.
+ "422":
+ content: Security verification failed. Are you blocking cookies?
+ title: Security verification failed
+ "429": Too many requests
+ "500":
+ content: We're sorry, but something went wrong on our end.
+ title: This page is not correct
+ "503": The page could not be served due to a temporary server failure.
+ 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.
+ existing_username_validator:
+ not_found: could not find a local user with that username
+ not_found_multiple: could not find %{usernames}
+ exports:
+ archive_takeout:
+ date: Date
+ download: Download your archive
+ 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.
+ in_progress: Compiling your archive...
+ request: Request your archive
+ size: Size
+ blocks: You block
+ bookmarks: Bookmarks
+ csv: CSV
+ domain_blocks: Domain blocks
+ lists: Lists
+ mutes: You mute
+ storage: Media storage
+ featured_tags:
+ add_new: Add new
+ errors:
+ limit: You have already featured the maximum amount of hashtags
+ 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."
+ filters:
+ contexts:
+ account: Profiles
+ home: Home and lists
+ notifications: Notifications
+ public: Public timelines
+ thread: Conversations
+ edit:
+ title: Edit filter
+ errors:
+ invalid_context: None or invalid context supplied
+ invalid_irreversible: Irreversible filtering only works with home or notifications context
+ index:
+ delete: Delete
+ empty: You have no filters.
+ title: Filters
+ new:
+ title: Add new filter
+ footer:
+ developers: Developers
+ more: More…
+ resources: Resources
+ trending_now: Trending now
+ generic:
+ all: All
+ changes_saved_msg: Changes successfully saved!
+ copy: Copy
+ delete: Delete
+ none: None
+ order_by: Order by
+ save_changes: Save changes
+ today: today
+ 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
+ html_validator:
+ invalid_markup: "contains invalid HTML markup: %{error}"
+ imports:
+ errors:
+ over_rows_processing_limit: contains more than %{count} rows
+ modes:
+ merge: Merge
+ merge_long: Keep existing records and add new ones
+ overwrite: Overwrite
+ overwrite_long: Replace current records with the new ones
+ preface: You can import data that you have exported from another server, such as a list of the people you are following or blocking.
+ success: Your data was successfully uploaded and will be processed in due time
+ types:
+ blocking: Blocking list
+ bookmarks: Bookmarks
+ domain_blocking: Domain blocking list
+ following: Following list
+ muting: Muting list
+ upload: Upload
+ in_memoriam_html: In Memoriam.
+ invites:
+ delete: Deactivate
+ expired: Expired
+ expires_in:
+ "1800": 30 minutes
+ "21600": 6 hours
+ "3600": 1 hour
+ "43200": 12 hours
+ "604800": 1 week
+ "86400": 1 day
+ expires_in_prompt: Never
+ generate: Generate invite link
+ invited_by: "You were invited by:"
+ max_uses:
+ one: 1 use
+ other: "%{count} uses"
+ max_uses_prompt: No limit
+ prompt: Generate and share links with others to grant access to this server
+ table:
+ expires_at: Expires
+ uses: Uses
+ title: Invite people
+ lists:
+ errors:
+ limit: You have reached the maximum amount of lists
+ 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
+ media_attachments:
+ validations:
+ images_and_video: Cannot attach a video to a post that already contains images
+ not_ready: Cannot attach files that have not finished processing. Try again in a moment!
+ too_many: Cannot attach more than 4 files
+ migrations:
+ 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
+ missing_also_known_as: is not an alias of this account
+ 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
+ redirected_msg: Your account is now redirecting to %{acct}.
+ redirecting_to: Your account is redirecting to %{acct}.
+ set_redirect: Set redirect
+ warning:
+ backreference_required: The new account must first be configured to back-reference this one
+ before: "Before proceeding, please read these notes carefully:"
+ cooldown: After moving there is a waiting period during which you will not be able to move again
+ 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
+ only_redirect_html: Alternatively, you can <a href="%{path}">only put up a redirect on your profile</a>.
+ other_data: No other data will be moved automatically
+ redirect: Your current account's profile will be updated with a redirect notice and be excluded from searches
+ moderation:
+ title: Moderation
+ move_handler:
+ 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.
+ copy_account_note_text: "This user moved from %{acct}, here were your previous notes about them:"
+ notification_mailer:
+ admin:
+ sign_up:
+ subject: "%{name} signed up"
+ digest:
+ action: View all notifications
+ body: Here is a brief summary of the messages you missed since your last visit on %{since}
+ mention: "%{name} mentioned you in:"
+ new_followers_summary:
+ one: Also, you have acquired one new follower while being away! Yay!
+ other: Also, you have acquired %{count} new followers while being away! Amazing!
+ subject:
+ one: "1 new notification since your last visit 🐘"
+ other: "%{count} new notifications since your last visit 🐘"
+ title: In your absence...
+ favourite:
+ body: "Your post was favourited by %{name}:"
+ subject: "%{name} favourited your post"
+ title: New favourite
+ follow:
+ body: "%{name} is now following you!"
+ subject: "%{name} is now following you"
+ title: New follower
+ follow_request:
+ action: Manage follow requests
+ body: "%{name} has requested to follow you"
+ subject: "Pending follower: %{name}"
+ title: New follow request
+ mention:
+ action: Reply
+ body: "You were mentioned by %{name} in:"
+ subject: You were mentioned by %{name}
+ title: New mention
+ poll:
+ subject: A poll by %{name} has ended
+ reblog:
+ body: "Your post was boosted by %{name}:"
+ subject: "%{name} boosted your post"
+ title: New boost
+ status:
+ subject: "%{name} just posted"
+ update:
+ subject: "%{name} edited a post"
+ 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
+ number:
+ human:
+ decimal_units:
+ format: "%n%u"
+ units:
+ billion: B
+ million: M
+ quadrillion: Q
+ thousand: K
+ trillion: T
+ unit: ""
+ 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
+ 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."
+ 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?
+ pagination:
+ newer: Newer
+ next: Next
+ older: Older
+ prev: Prev
+ truncate: "&hellip;"
+ 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
+ invalid_choice: The chosen vote option does not exist
+ over_character_limit: cannot be longer than %{max} characters each
+ too_few_options: must have more than one item
+ too_many_options: can't contain more than %{max} items
+ preferences:
+ other: Other
+ posting_defaults: Posting defaults
+ public_timelines: Public timelines
+ reactions:
+ errors:
+ limit_reached: Limit of different reactions reached
+ unrecognized_emoji: is not a recognized emoji
+ relationships:
+ activity: Account activity
+ dormant: Dormant
+ follow_selected_followers: Follow selected followers
+ followers: Followers
+ following: Following
+ invited: Invited
+ last_active: Last active
+ most_recent: Most recent
+ moved: Moved
+ mutual: Mutual
+ primary: Primary
+ 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
+ remote_follow:
+ acct: Enter your username@domain you want to act from
+ missing_resource: Could not find the required redirect URL for your account
+ no_account_html: Don't have an account? You can <a href='%{sign_up_path}' target='_blank'>sign up here</a>
+ proceed: Proceed to follow
+ prompt: "You are going to follow:"
+ reason_html: "<strong>Why is this step necessary?</strong> <code>%{instance}</code> might not be the server where you are registered, so we need to redirect you to your home server first."
+ remote_interaction:
+ favourite:
+ proceed: Proceed to favourite
+ prompt: "You want to favourite this post:"
+ reblog:
+ proceed: Proceed to boost
+ prompt: "You want to boost this post:"
+ reply:
+ proceed: Proceed to reply
+ prompt: "You want to reply to this post:"
+ reports:
+ errors:
+ invalid_rules: does not reference valid rules
+ rss:
+ content_warning: "Content warning:"
+ descriptions:
+ account: Public posts from @%{acct}
+ tag: "Public posts tagged #%{hashtag}"
+ scheduled_statuses:
+ over_daily_limit: You have exceeded the limit of %{limit} scheduled posts for today
+ over_total_limit: You have exceeded the limit of %{limit} scheduled posts
+ too_soon: The scheduled date must be in the future
+ sessions:
+ activity: Last activity
+ browser: Browser
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Unknown browser
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia S40 Ovi Browser
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ 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
+ blackberry: Blackberry
+ chrome_os: Chrome OS
+ firefox_os: Firefox OS
+ ios: iOS
+ linux: Linux
+ mac: macOS
+ other: unknown platform
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
+ revoke: Revoke
+ revoke_success: Session successfully revoked
+ title: Sessions
+ view_authentication_history: View authentication history of your account
+ settings:
+ account: Account
+ account_settings: Account settings
+ aliases: Account aliases
+ appearance: Appearance
+ authorized_apps: Authorized apps
+ back: Back to Mastodon
+ delete: Account deletion
+ development: Development
+ edit_profile: Edit profile
+ export: Data export
+ featured_tags: Featured hashtags
+ import: Import
+ import_and_export: Import and export
+ migrate: Account migration
+ notifications: Notifications
+ preferences: Preferences
+ profile: Profile
+ relationships: Follows and followers
+ statuses_cleanup: Automated post deletion
+ strikes: Moderation strikes
+ two_factor_authentication: Two-factor Auth
+ webauthn_authentication: Security keys
+ statuses:
+ attached:
+ audio:
+ one: "%{count} audio"
+ other: "%{count} audio"
+ description: "Attached: %{attached}"
+ image:
+ one: "%{count} image"
+ other: "%{count} images"
+ video:
+ one: "%{count} video"
+ other: "%{count} videos"
+ boosted_from_html: Boosted from %{acct_link}
+ content_warning: "Content warning: %{warning}"
+ default_language: Same as interface language
+ disallowed_hashtags:
+ one: "contained a disallowed hashtag: %{tags}"
+ other: "contained the disallowed hashtags: %{tags}"
+ edited_at_html: Edited %{date}
+ errors:
+ in_reply_not_found: The post you are trying to reply to does not appear to exist.
+ open_in_web: Open in web
+ over_character_limit: character limit of %{max} exceeded
+ pin_errors:
+ direct: Posts that are only visible to mentioned users cannot be pinned
+ limit: You have already pinned the maximum number of posts
+ ownership: Someone else's post cannot be pinned
+ reblog: A boost cannot be pinned
+ poll:
+ total_people:
+ one: "%{count} person"
+ other: "%{count} people"
+ total_votes:
+ one: "%{count} vote"
+ other: "%{count} votes"
+ vote: Vote
+ show_more: Show more
+ show_newer: Show newer
+ show_older: Show older
+ show_thread: Show thread
+ sign_in_to_participate: Sign in to participate in the conversation
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ direct: Direct
+ private: Followers-only
+ private_long: Only show to followers
+ public: Public
+ public_long: Everyone can see
+ unlisted: Unlisted
+ unlisted_long: Everyone can see, but not listed on public timelines
+ 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.
+ ignore_favs: Ignore favourites
+ ignore_reblogs: Ignore boosts
+ interaction_exceptions: Exceptions based on interactions
+ interaction_exceptions_explanation: Note that there is no guarantee for posts to be deleted if they go below the favourite or boost threshold after having once gone over them.
+ 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
+ keep_self_fav: Keep posts you favourited
+ keep_self_fav_hint: Doesn't delete your own posts if you have favourited them
+ min_age:
+ "1209600": 2 weeks
+ "15778476": 6 months
+ "2629746": 1 month
+ "31556952": 1 year
+ "5259492": 2 months
+ "604800": 1 week
+ "63113904": 2 years
+ "7889238": 3 months
+ min_age_label: Age threshold
+ min_favs: Keep posts favourited at least
+ min_favs_hint: Doesn't delete any of your posts that has received at least this amount of favourites. Leave blank to delete posts regardless of their number of favourites
+ 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
+ stream_entries:
+ pinned: Pinned post
+ reblogged: boosted
+ sensitive_content: Sensitive content
+ strikes:
+ errors:
+ too_late: It is too late to appeal this strike
+ tags:
+ does_not_match_previous_name: does not match the previous name
+ terms:
+ body_html: |
+ <h2>Privacy Policy</h2>
+ <h3 id="collect">What information do we collect?</h3>
+
+ <ul>
+ <li><em>Basic account information</em>: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.</li>
+ <li><em>Posts, following and other public information</em>: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.</li>
+ <li><em>Direct and followers-only posts</em>: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. <em>Please keep in mind that the operators of the server and any receiving server may view such messages</em>, and that recipients may screenshot, copy or otherwise re-share them. <em>Do not share any sensitive information over Mastodon.</em></li>
+ <li><em>IPs and other metadata</em>: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.</li>
+ </ul>
+
+ <hr class="spacer" />
+
+ <h3 id="use">What do we use your information for?</h3>
+
+ <p>Any of the information we collect from you may be used in the following ways:</p>
+
+ <ul>
+ <li>To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.</li>
+ <li>To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.</li>
+ <li>The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.</li>
+ </ul>
+
+ <hr class="spacer" />
+
+ <h3 id="protect">How do we protect your information?</h3>
+
+ <p>We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.</p>
+
+ <hr class="spacer" />
+
+ <h3 id="data-retention">What is our data retention policy?</h3>
+
+ <p>We will make a good faith effort to:</p>
+
+ <ul>
+ <li>Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.</li>
+ <li>Retain the IP addresses associated with registered users no more than 12 months.</li>
+ </ul>
+
+ <p>You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.</p>
+
+ <p>You may irreversibly delete your account at any time.</p>
+
+ <hr class="spacer"/>
+
+ <h3 id="cookies">Do we use cookies?</h3>
+
+ <p>Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.</p>
+
+ <p>We use cookies to understand and save your preferences for future visits.</p>
+
+ <hr class="spacer" />
+
+ <h3 id="disclose">Do we disclose any information to outside parties?</h3>
+
+ <p>We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.</p>
+
+ <p>Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.</p>
+
+ <p>When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.</p>
+
+ <hr class="spacer" />
+
+ <h3 id="children">Site usage by children</h3>
+
+ <p>If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (<a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation">General Data Protection Regulation</a>) do not use this site.</p>
+
+ <p>If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (<a href="https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act">Children's Online Privacy Protection Act</a>) do not use this site.</p>
+
+ <p>Law requirements can be different if this server is in another jurisdiction.</p>
+
+ <hr class="spacer" />
+
+ <h3 id="changes">Changes to our Privacy Policy</h3>
+
+ <p>If we decide to change our privacy policy, we will post those changes on this page.</p>
+
+ <p>This document is CC-BY-SA. It was last updated May 26, 2022.</p>
+
+ <p>Originally adapted from the <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
+ title: "%{instance} Terms of Service and Privacy Policy"
+ themes:
+ contrast: Mastodon (High contrast)
+ default: Mastodon (Dark)
+ mastodon-light: Mastodon (Light)
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
+ time: "%H:%M"
+ two_factor_authentication:
+ add: Add
+ disable: Disable 2FA
+ disabled_success: Two-factor authentication successfully disabled
+ edit: Edit
+ enabled: Two-factor authentication is enabled
+ enabled_success: Two-factor authentication successfully enabled
+ generate_recovery_codes: Generate recovery codes
+ 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.
+ methods: Two-factor methods
+ otp: Authenticator app
+ recovery_codes: Backup recovery codes
+ recovery_codes_regenerated: Recovery codes successfully regenerated
+ 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.
+ webauthn: Security keys
+ user_mailer:
+ 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
+ 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
+ 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
+ warning:
+ appeal: Submit an appeal
+ appeal_description: If you believe this is an error, you can submit an appeal to the staff of %{instance}.
+ categories:
+ spam: Spam
+ violation: Content violates the following community guidelines
+ explanation:
+ 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}.
+ 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.
+ 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.
+ 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:"
+ statuses: "Posts cited:"
+ subject:
+ delete_statuses: Your posts on %{acct} have been removed
+ disable: Your account %{acct} has been frozen
+ mark_statuses_as_sensitive: Your posts on %{acct} have been marked as sensitive
+ none: Warning for %{acct}
+ sensitive: Your posts on %{acct} will be marked as sensitive from now on
+ silence: Your account %{acct} has been limited
+ suspend: Your account %{acct} has been suspended
+ title:
+ delete_statuses: Posts removed
+ disable: Account frozen
+ mark_statuses_as_sensitive: Posts marked as sensitive
+ none: Warning
+ sensitive: Account marked as sensitive
+ silence: Account limited
+ suspend: Account suspended
+ welcome:
+ edit_profile_action: Setup profile
+ edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If youd like to review new followers before theyre allowed to follow you, you can lock your account.
+ explanation: Here are some tips to get you started
+ final_action: Start posting
+ final_step: "Start posting! Even without followers your public posts may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag."
+ full_handle: Your full handle
+ full_handle_hint: This is what you would tell your friends so they can message or follow you from another server.
+ review_preferences_action: Change preferences
+ review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level youd like your posts to default to. If you dont have motion sickness, you could choose to enable GIF autoplay.
+ subject: Welcome to Mastodon
+ tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete.
+ tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines.
+ tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours!
+ tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways!
+ tips: Tips
+ title: Welcome aboard, %{name}!
+ users:
+ follow_limit_reached: You cannot follow more than %{limit} people
+ invalid_otp_token: Invalid two-factor code
+ otp_lost_help_html: If you lost access to both, you may get in touch with %{email}
+ seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available.
+ signed_in_as: "Signed in as:"
+ verification:
+ 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. 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:'
+ verification: Verification
+ 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}