0 will appear as if it was set to zero"
- },
- "hintV3": "For shadows you can also use the {0} notation to use other color slot.",
- "inset": "Inset",
- "override": "Override",
- "shadow_id": "Shadow #{value}",
- "spread": "Spread"
- },
- "switcher": {
- "clear_all": "Clear all",
- "clear_opacity": "Clear opacity",
- "help": {
- "fe_downgraded": "PleromaFE's version rolled back.",
- "fe_upgraded": "PleromaFE's theme engine upgraded after version update.",
- "future_version_imported": "File you imported was made in newer version of FE.",
- "migration_napshot_gone": "For whatever reason snapshot was missing, some stuff could look different than you remember.",
- "migration_snapshot_ok": "Just to be safe, theme snapshot loaded. You can try loading theme data.",
- "older_version_imported": "File you imported was made in older version of FE.",
- "snapshot_missing": "No theme snapshot was in the file so it could look different than originally envisioned.",
- "snapshot_present": "Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.",
- "snapshot_source_mismatch": "Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.",
- "upgraded_from_v2": "PleromaFE has been upgraded, theme could look a little bit different than you remember.",
- "v2_imported": "File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."
- },
- "keep_as_is": "Keep as is",
- "keep_color": "Keep colors",
- "keep_fonts": "Keep fonts",
- "keep_opacity": "Keep opacity",
- "keep_roundness": "Keep roundness",
- "keep_shadows": "Keep shadows",
- "load_theme": "Load theme",
- "reset": "Reset",
- "save_load_hint": "\"Keep\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.",
- "use_snapshot": "Old version",
- "use_source": "New version"
- }
+ "staff": "Staff"
},
- "subject_input_always_show": "Always show content warning field",
- "subject_line_behavior": "Copy content warning when replying",
- "subject_line_email": "Like email: \"re: warning\"",
- "subject_line_mastodon": "Like mastodon: copy as is",
- "subject_line_noop": "Do not copy",
- "text": "Text",
- "theme": "Theme",
- "theme_help": "Use hex color codes (#rrggbb) to customize your color theme.",
- "theme_help_v2_1": "You can also override certain component's colors and opacity by toggling the checkbox, use \"Clear all\" button to clear all overrides.",
- "theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.",
- "third_column_mode": "When there's enough space, show third column containing",
- "third_column_mode_none": "Don't show third column at all",
- "third_column_mode_notifications": "Notifications column",
- "third_column_mode_postform": "Main post form and navigation",
- "token": "Token",
- "tooltipRadius": "Tooltips/alerts",
- "translation_language": "Automatic Translation Language",
- "tree_advanced": "Display extra buttons to open and close reply chains in threads",
- "tree_fade_ancestors": "Display ancestors of the current post in faint text",
- "type_domains_to_mute": "Search domains to mute",
- "upload_a_photo": "Upload a photo",
- "useStreamingApi": "Receive posts and notifications real-time",
- "useStreamingApiWarning": "It's cool use it. If it breaks refresh I guess?",
- "use_at_icon": "Display {'@'} symbol as an icon instead of text",
- "use_contain_fit": "Don't crop the attachment in thumbnails",
- "use_one_click_nsfw": "Open NSFW attachments with just one click",
- "user_mutes": "Users",
- "user_profile_default_tab": "Default Tab on User Profile",
- "user_profiles": "User Profiles",
- "user_settings": "User Settings",
- "valid_until": "Valid until",
- "values": {
- "false": "no",
- "true": "yes"
+ "shoutbox": {
+ "title": "Frothbox"
},
- "version": {
- "backend_version": "Backend version",
- "frontend_version": "Frontend version",
- "title": "Version"
+ "announcements": {
+ "all_day_prompt": "This is an all-day event",
+ "cancel_edit_action": "Cancel",
+ "close_error": "Close",
+ "delete_action": "Delete",
+ "edit_action": "Edit",
+ "end_time_display": "Ends at {time}",
+ "end_time_prompt": "End time: ",
+ "inactive_message": "This announcement is inactive",
+ "mark_as_read_action": "Mark as read",
+ "page_header": "Announcements",
+ "post_action": "Post",
+ "post_error": "Error: {error}",
+ "post_form_header": "Post announcement",
+ "post_placeholder": "Announcement content",
+ "published_time_display": "Published at {time}",
+ "start_time_display": "Starts at {time}",
+ "start_time_prompt": "Start time: ",
+ "submit_edit_action": "Submit",
+ "title": "Announcement"
},
- "virtual_scrolling": "Optimize timeline rendering",
- "word_filter": "Word filter",
- "wordfilter": "Wordfilter"
- },
- "settings_profile": {
- "synchronizing": "Synchronizing setting profile \"{profile}\"...",
- "synchronized": "Synchronized settings!",
- "synchronization_error": "Could not synchronize settings: {err}",
- "creating": "Creating new setting profile \"{profile}\"..."
- },
- "status": {
- "ancestor_follow": "See {numReplies} other reply under this post | See {numReplies} other replies under this post",
- "ancestor_follow_with_icon": "{icon} {text}",
- "attachment_stop_flash": "Stop Flash player",
- "bookmark": "Bookmark",
- "collapse_attachments": "Collapse attachments",
- "copy_link": "Copy link to post",
- "delete": "Delete post",
- "delete_confirm": "Do you really want to delete this post?",
- "delete_confirm_accept_button": "Yes, delete it",
- "delete_confirm_cancel_button": "No, keep it",
- "delete_confirm_title": "Confirm deletion",
- "edit": "Edit",
- "edit_history": "Edit History",
- "edit_history_modal_title": "Edited {historyCount} time | Edited {historyCount} times",
- "edited_at": "Edited {time}",
- "expand": "Expand",
- "external_source": "External source",
- "favorites": "Favorites",
- "hide_attachment": "Hide attachment",
- "hide_content": "Hide content",
- "hide_full_subject": "Hide full content warning",
- "many_attachments": "Post has {number} attachment | Post has {number} attachments",
- "mentions": "Mentions",
- "move_down": "Shift attachment right",
- "move_up": "Shift attachment left",
- "mute_conversation": "Mute conversation",
- "nsfw": "NSFW",
- "open_gallery": "Open gallery",
- "override_translation_source_language": "Override source language",
- "pin": "Pin on profile",
- "pinned": "Pinned",
- "plus_more": "+{number} more",
- "redraft": "Delete & redraft",
- "redraft_confirm": "Do you really want to delete and redraft this post? Interactions to the original post will not be preserved.",
- "redraft_confirm_accept_button": "Yes, delete and redraft",
- "redraft_confirm_cancel_button": "No, keep the original",
- "redraft_confirm_title": "Confirm delete & redraft",
- "remove_attachment": "Remove attachment",
- "repeat_confirm": "Do you really want to repeat this post?",
- "repeat_confirm_accept_button": "Yes, repeat it",
- "repeat_confirm_cancel_button": "No, don't repeat",
- "repeat_confirm_title": "Confirm repeat",
- "repeats": "Repeats",
- "replies_list": "Replies:",
- "replies_list_with_others": "View {numReplies} more reply | View {numReplies} more replies",
- "reply_to": "Reply to",
- "show_all_attachments": "Show all attachments",
- "show_all_conversation": "Show full conversation ({numStatus} other post) | Show full conversation ({numStatus} other posts)",
- "show_all_conversation_with_icon": "{icon} {text}",
- "show_attachment_description": "Preview description (open attachment for full description)",
- "show_attachment_in_modal": "Show attachment in a window",
- "show_content": "Show content",
- "show_full_subject": "Show full content warning",
- "show_only_conversation_under_this": "Only show replies to this post",
- "status_deleted": "This post was deleted",
- "status_unavailable": "Post unavailable",
- "thread_follow": "View {numStatus} more reply | View {numStatus} more replies",
- "thread_follow_with_icon": "{icon} {text}",
- "thread_hide": "Hide this thread",
- "thread_muted": "Thread muted",
- "thread_muted_and_words": ", has words:",
- "thread_show": "Show this thread",
- "thread_show_full": "Show {numStatus} reply | Show all {numStatus} replies",
- "thread_show_full_with_icon": "{icon} {text}",
- "translate": "Translate",
- "translated_from": "Translated from {language}",
- "unbookmark": "Unbookmark",
- "unmute_conversation": "Unmute conversation",
- "unpin": "Unpin from profile",
- "you": "(You)"
- },
- "time": {
- "in_future": "in {0}",
- "in_past": "{0} ago",
- "now": "just now",
- "now_short": "now",
- "unit": {
- "days": "{0} day | {0} days",
- "days_short": "{0}d",
- "hours": "{0} hour | {0} hours",
- "hours_short": "{0}h",
- "minutes": "{0} minute | {0} minutes",
- "minutes_short": "{0}min",
- "months": "{0} month | {0} months",
- "months_short": "{0}mo",
- "seconds": "{0} second | {0} seconds",
- "seconds_short": "{0}s",
- "weeks": "{0} week | {0} weeks",
- "weeks_short": "{0}w",
- "years": "{0} year | {0} years",
- "years_short": "{0}y"
- }
- },
- "timeline": {
- "collapse": "Collapse",
- "conversation": "Conversation",
- "error": "Error fetching timeline: {0}",
- "load_older": "Load older posts",
- "no_more_statuses": "No more posts",
- "no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated or quoted",
- "no_statuses": "No posts",
- "reload": "Reload",
- "repeated": "repeated",
- "show_new": "Show new",
- "socket_broke": "Realtime connection lost: CloseEvent code {0}",
- "socket_reconnected": "Realtime connection established",
- "up_to_date": "Up-to-date"
- },
- "toast": {
- "no_translation_target_set": "No translation target language set - this may fail. Please set a target language in your settings."
- },
- "tool_tip": {
- "accept_follow_request": "Accept follow request",
- "add_reaction": "Add Reaction",
- "bookmark": "Bookmark",
- "favorite": "Favorite",
- "media_upload": "Upload media",
- "quote": "Quote",
- "reject_follow_request": "Reject follow request",
- "repeat": "Repeat",
- "reply": "Reply",
- "user_settings": "User Settings"
- },
- "upload": {
- "error": {
- "base": "Upload failed.",
- "default": "Try again later",
- "file_too_big": "File too big [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
- "message": "Upload failed: {0}"
+ "chats": {
+ "chats": "Chats",
+ "delete": "Delete",
+ "delete_confirm": "Do you really want to delete this message?",
+ "empty_chat_list_placeholder": "You don't have any chats yet. Start a new chat!",
+ "empty_message_error": "Cannot post empty message",
+ "error_loading_chat": "Something went wrong when loading the chat.",
+ "error_sending_message": "Something went wrong when sending the message.",
+ "message_user": "Message {nickname}",
+ "more": "More",
+ "new": "New Chat",
+ "you": "You:"
},
- "file_size_units": {
- "B": "B",
- "GiB": "GiB",
- "KiB": "KiB",
- "MiB": "MiB",
- "TiB": "TiB"
- }
- },
- "user_card": {
- "admin_menu": {
- "activate_account": "Activate account",
- "deactivate_account": "Deactivate account",
- "delete_account": "Delete account",
- "delete_user": "Delete user",
- "delete_user_data_and_deactivate_confirmation": "This will permanently delete the data from this account and deactivate it. Are you absolutely sure?",
- "disable_any_subscription": "Disallow following user at all",
- "disable_remote_subscription": "Disallow following user from remote instances",
- "force_nsfw": "Mark all posts as NSFW",
- "force_unlisted": "Force posts to be unlisted",
- "grant_admin": "Grant Admin",
- "grant_moderator": "Grant Moderator",
+ "display_date": {
+ "today": "Today"
+ },
+ "domain_mute_card": {
+ "mute": "Mute",
+ "mute_progress": "Muting…",
+ "unmute": "Unmute",
+ "unmute_progress": "Unmuting…"
+ },
+ "emoji": {
+ "add_emoji": "Insert emoji",
+ "custom": "Custom emoji",
+ "emoji": "Emoji",
+ "keep_open": "Keep picker open",
+ "load_all": "Loading all {emojiAmount} emoji",
+ "load_all_hint": "Loaded first {saneAmount} emoji, loading all emoji may cause performance issues.",
+ "search_emoji": "Search for an emoji",
+ "stickers": "Stickers",
+ "unicode": "Unicode emoji"
+ },
+ "errors": {
+ "storage_unavailable": "Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."
+ },
+ "exporter": {
+ "export": "Export",
+ "processing": "Processing, you'll soon be asked to download your file"
+ },
+ "features_panel": {
+ "media_proxy": "Media proxy",
+ "scope_options": "Scope options",
+ "text_limit": "Text limit",
+ "title": "Features",
+ "upload_limit": "Upload limit",
+ "who_to_follow": "Who to follow"
+ },
+ "file_type": {
+ "audio": "Audio",
+ "file": "File",
+ "image": "Image",
+ "video": "Video"
+ },
+ "finder": {
+ "error_fetching_user": "Error fetching user",
+ "find_user": "Find user"
+ },
+ "general": {
+ "apply": "Apply",
+ "cancel": "Cancel",
+ "close": "Close",
+ "confirm": "Confirm",
+ "disable": "Disable",
+ "dismiss": "Dismiss",
+ "enable": "Enable",
+ "error_retry": "Please try again",
+ "flash_content": "Click to show Flash content using Ruffle (Experimental, may not work).",
+ "flash_fail": "Failed to load flash content, see console for details.",
+ "flash_security": "Note that this can be potentially dangerous since Flash content is still arbitrary code.",
+ "generic_error": "An error occured",
+ "loading": "Loading…",
+ "more": "More",
+ "optional": "optional",
+ "peek": "Peek",
+ "retry": "Try again",
+ "role": {
+ "admin": "Admin",
+ "moderator": "Moderator"
+ },
+ "scope_in_timeline": {
+ "direct": "Direct",
+ "local": "Local - only your instance can see this post",
+ "private": "Followers-only",
+ "public": "Public",
+ "unlisted": "Unlisted"
+ },
+ "show_less": "Show less",
+ "show_more": "Show more",
+ "submit": "Submit",
+ "verify": "Verify"
+ },
+ "image_cropper": {
+ "cancel": "Cancel",
+ "crop_picture": "Crop picture",
+ "save": "Save",
+ "save_without_cropping": "Save without cropping"
+ },
+ "importer": {
+ "error": "An error occured while importing this file.",
+ "submit": "Submit",
+ "success": "Imported successfully."
+ },
+ "interactions": {
+ "favs_repeats": "Repeats and favorites",
+ "follows": "New follows",
+ "load_older": "Load older interactions",
+ "moves": "User migrates"
+ },
+ "languages": {
+ "bg": "Bulgarian",
+ "en": "English",
+ "ar": "Arabic",
+ "az": "Azerbaijani",
+ "zh": "Chinese",
+ "cs": "Czech",
+ "da": "Danish",
+ "nl": "Dutch",
+ "eo": "Esperanto",
+ "fi": "Finnish",
+ "fr": "French",
+ "de": "German",
+ "el": "Greek",
+ "he": "Hebrew",
+ "hi": "Hindi",
+ "hu": "Hungarian",
+ "id": "Indonesian",
+ "ga": "Irish",
+ "it": "Italian",
+ "ja": "Japanese",
+ "ko": "Korean",
+ "fa": "Persian",
+ "pl": "Polish",
+ "pt": "Portuguese",
+ "ru": "Russian",
+ "sk": "Slovak",
+ "es": "Spanish",
+ "sv": "Swedish",
+ "tr": "Turkish",
+ "uk": "Ukrainian",
+ "lt": "Lithuanian",
+ "lv": "Latvian",
+ "translated_from": {
+ "bg": "Translated from @:languages.bg",
+ "en": "Translated from @:languages.en",
+ "ar": "Translated from @:languages.ar",
+ "az": "Translated from @:languages.az",
+ "zh": "Translated from @:languages.zh",
+ "cs": "Translated from @:languages.cs",
+ "da": "Translated from @:languages.da",
+ "nl": "Translated from @:languages.nl",
+ "eo": "Translated from @:languages.eo",
+ "fi": "Translated from @:languages.fi",
+ "fr": "Translated from @:languages.fr",
+ "de": "Translated from @:languages.de",
+ "el": "Translated from @:languages.el",
+ "he": "Translated from @:languages.he",
+ "hi": "Translated from @:languages.hi",
+ "hu": "Translated from @:languages.hu",
+ "id": "Translated from @:languages.id",
+ "ga": "Translated from @:languages.ga",
+ "it": "Translated from @:languages.it",
+ "ja": "Translated from @:languages.ja",
+ "ko": "Translated from @:languages.ko",
+ "fa": "Translated from @:languages.fa",
+ "pl": "Translated from @:languages.pl",
+ "pt": "Translated from @:languages.pt",
+ "ru": "Translated from @:languages.ru",
+ "sk": "Translated from @:languages.sk",
+ "es": "Translated from @:languages.es",
+ "sv": "Translated from @:languages.sv",
+ "tr": "Translated from @:languages.tr",
+ "uk": "Translated from @:languages.uk",
+ "lt": "Translated from @:languages.lt",
+ "lv": "Translated from @:languages.lv"
+ }
+ },
+ "lists": {
+ "create": "Create",
+ "delete": "Delete list",
+ "following_only": "Limit to Following",
+ "lists": "Lists",
+ "new": "New List",
+ "save": "Save changes",
+ "search": "Search users",
+ "title": "List title"
+ },
+ "login": {
+ "authentication_code": "Authentication code",
+ "description": "Log in with OAuth",
+ "enter_recovery_code": "Enter a recovery code",
+ "enter_two_factor_code": "Enter a two-factor code",
+ "heading": {
+ "recovery": "Two-factor recovery",
+ "totp": "Two-factor authentication"
+ },
+ "hint": "Log in to join the discussion",
+ "login": "Log in",
+ "logout": "Log out",
+ "password": "Password",
+ "placeholder": "myusername",
+ "recovery_code": "Recovery code",
+ "register": "Register",
+ "username": "Username",
+ "logout_confirm_cancel_button": "Cancel",
+ "logout_confirm_accept_button": "Log out",
+ "logout_confirm": "Are you sure you want to log out?",
+ "logout_confirm_title": "Log out"
+ },
+ "media_modal": {
+ "counter": "{current} / {total}",
+ "hide": "Close media viewer",
+ "next": "Next",
+ "previous": "Previous"
+ },
+ "moderation": {
"moderation": "Moderation",
- "quarantine": "Disallow user posts from federating",
- "revoke_admin": "Revoke Admin",
- "revoke_moderator": "Revoke Moderator",
- "sandbox": "Force posts to be followers-only",
- "strip_media": "Remove media from posts"
+ "reports": {
+ "no_reports": "No reports to show",
+ "add_note": "Add note",
+ "close": "Close",
+ "delete_note": "Delete",
+ "delete_note_accept": "Yes, delete it",
+ "delete_note_cancel": "No, keep it",
+ "delete_note_confirm": "Are you sure you want to delete this note?",
+ "delete_note_title": "Confirm deletion",
+ "no_content": "No description given",
+ "note_placeholder": "Leave a note...",
+ "notes": "{ count } note | { count } notes",
+ "reopen": "Reopen",
+ "report": "Report on",
+ "reports": "Reports",
+ "resolve": "Resolve",
+ "show_closed": "Show closed",
+ "statuses": "{ count } status | { count } statuses",
+ "tag_policy_notice": "Enable the TagPolicy MRF to set post restrictions",
+ "tags": "Set post restrictions"
+ },
+ "statuses": "Statuses",
+ "users": "Users"
},
- "approve": "Approve",
- "approve_confirm": "Are you sure you want to let this user follow you?",
- "approve_confirm_accept_button": "Yes, accept",
- "approve_confirm_cancel_button": "No, cancel",
- "approve_confirm_title": "Approve follow request",
- "block": "Block",
- "block_confirm": "Are you sure you want to block {user}?",
- "block_confirm_accept_button": "Yes, block",
- "block_confirm_cancel_button": "No, don't block",
- "block_confirm_title": "Block user",
- "block_progress": "Blocking…",
- "blocked": "Blocked!",
- "bot": "Bot",
- "deactivated": "Deactivated",
- "deny": "Deny",
- "deny_confirm": "Are you sure you want to deny this user's follow request?",
- "deny_confirm_accept_button": "Yes, deny",
- "deny_confirm_cancel_button": "No, cancel",
- "deny_confirm_title": "Deny follow request",
- "domain_muted": "Unblock domain",
- "edit_profile": "Edit profile",
- "favorites": "Favorites",
- "follow": "Follow",
- "follow_cancel": "Cancel request",
- "follow_progress": "Requesting…",
- "follow_sent": "Request sent!",
- "follow_unfollow": "Unfollow",
- "followees": "Following",
- "followers": "Followers",
- "following": "Following!",
- "follows_you": "Follows you!",
- "requested_by": "Has requested to follow you",
- "hidden": "Hidden",
- "hide_repeats": "Hide repeats",
- "highlight": {
- "disabled": "No highlight",
- "side": "Side stripe",
- "solid": "Solid bg",
- "striped": "Striped bg"
+ "nav": {
+ "about": "About",
+ "administration": "Administration",
+ "announcements": "Announcements",
+ "back": "Back",
+ "bookmarks": "Bookmarks",
+ "bubble_timeline": "Bubble timeline",
+ "bubble_timeline_description": "Posts from instances close to yours, as recommended by the admins",
+ "chats": "Chats",
+ "dms": "Direct messages",
+ "friend_requests": "Follow requests",
+ "home_timeline": "Home timeline",
+ "home_timeline_description": "Posts from people you follow",
+ "interactions": "Interactions",
+ "lists": "Lists",
+ "mentions": "Mentions",
+ "moderation": "Moderation",
+ "preferences": "Preferences",
+ "public_timeline_description": "Public posts from this instance",
+ "public_tl": "Public timeline",
+ "search": "Search",
+ "timeline": "Timeline",
+ "timelines": "Timelines",
+ "twkn": "Known Network",
+ "twkn_timeline_description": "Posts from the entire network",
+ "user_search": "User Search",
+ "who_to_follow": "Who to follow"
},
- "its_you": "It's you!",
- "media": "Media",
- "mention": "Mention",
- "message": "Message",
- "mute": "Mute",
- "mute_confirm": "Are you sure you want to mute {user}?",
- "mute_confirm_accept_button": "Yes, mute",
- "mute_confirm_cancel_button": "No, don't mute",
- "mute_confirm_title": "Mute user",
- "mute_domain": "Block domain",
- "mute_progress": "Muting…",
- "muted": "Muted",
- "note": "Private note",
- "per_day": "per day",
- "remote_follow": "Remote follow",
- "remove_follower": "Remove follower",
- "replies": "With Replies",
- "report": "Report",
- "show_repeats": "Show repeats",
- "statuses": "Posts",
- "subscribe": "Subscribe",
- "unblock": "Unblock",
- "unblock_progress": "Unblocking…",
- "unfollow_confirm": "Are you sure you want to unfollow {user}?",
- "unfollow_confirm_accept_button": "Yes, unfollow",
- "unfollow_confirm_cancel_button": "No, don't unfollow",
- "unfollow_confirm_title": "Unfollow user",
- "unmute": "Unmute",
- "unmute_progress": "Unmuting…",
- "unsubscribe": "Unsubscribe"
- },
- "user_profile": {
- "profile_does_not_exist": "Sorry, this profile does not exist.",
- "profile_loading_error": "Sorry, there was an error loading this profile.",
- "timeline_title": "User timeline"
- },
- "user_reporting": {
- "add_comment_description": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
- "additional_comments": "Additional comments",
- "forward_description": "The account is from another server. Send a copy of the report there as well?",
- "forward_to": "Forward to {0}",
- "generic_error": "An error occurred while processing your request.",
- "submit": "Submit",
- "title": "Reporting {0}"
- },
- "who_to_follow": {
- "more": "More",
- "who_to_follow": "Who to follow"
- }
+ "notifications": {
+ "broken_favorite": "Unknown post, searching for it…",
+ "error": "Error fetching notifications: {0}",
+ "favorited_you": "favorited your post",
+ "follow_request": "wants to follow you",
+ "followed_you": "followed you",
+ "load_older": "Load older notifications",
+ "migrated_to": "migrated to",
+ "no_more_notifications": "No more notifications",
+ "notifications": "Notifications",
+ "poll_ended": "poll has ended",
+ "reacted_with": "reacted with {0}",
+ "read": "Read!",
+ "repeated_you": "repeated your post"
+ },
+ "password_reset": {
+ "check_email": "Check your email for a link to reset your password.",
+ "forgot_password": "Forgot password?",
+ "instruction": "Enter your email address or username. We will send you a link to reset your password.",
+ "password_reset": "Password reset",
+ "password_reset_disabled": "Password reset is disabled. Please contact your instance administrator.",
+ "password_reset_required": "You must reset your password to log in.",
+ "password_reset_required_but_mailer_is_disabled": "You must reset your password, but password reset is disabled. Please contact your instance administrator.",
+ "placeholder": "Your email or username",
+ "return_home": "Return to the home page",
+ "too_many_requests": "You have reached the limit of attempts, try again later."
+ },
+ "polls": {
+ "add_option": "Add option",
+ "add_poll": "Add poll",
+ "expired": "Poll ended {0} ago",
+ "expires_in": "Poll ends in {0}",
+ "expiry": "Poll age",
+ "multiple_choices": "Multiple choices",
+ "not_enough_options": "Too few unique options in poll",
+ "option": "Option",
+ "people_voted_count": "{count} person voted | {count} people voted",
+ "single_choice": "Single choice",
+ "type": "Poll type",
+ "vote": "Vote",
+ "votes": "votes",
+ "votes_count": "{count} vote | {count} votes"
+ },
+ "post_status": {
+ "account_not_locked_warning": "Your account is not {0}. Anyone can follow you to view your follower-only posts.",
+ "account_not_locked_warning_link": "locked",
+ "attachments_sensitive": "Mark attachments as sensitive",
+ "content_type": {
+ "text/bbcode": "BBCode",
+ "text/html": "HTML",
+ "text/markdown": "Markdown",
+ "text/plain": "Plain text",
+ "text/x.misskeymarkdown": "MFM"
+ },
+ "content_warning": "Content Warning (optional)",
+ "default": "Just arrived at the Froth Zone",
+ "direct_warning_to_all": "This post will be visible to all the mentioned users.",
+ "direct_warning_to_first_only": "This post will only be visible to the mentioned users at the beginning of the message.",
+ "edit_remote_warning": "Changes made to the post may not be visible on some instances!",
+ "edit_status": "Edit Status",
+ "edit_unsupported_warning": "Polls and mentions will not be changed by editing.",
+ "empty_status_error": "Can't send a post with no content and no files",
+ "media_description": "Media description",
+ "media_description_error": "Failed to update media, try again",
+ "media_not_sensitive_warning": "You have a Content Warning, but the attachments are not marked as sensitive!",
+ "new_status": "New post",
+ "post": "Froth",
+ "posting": "Frothing",
+ "preview": "Preview",
+ "preview_empty": "Empty",
+ "scope": {
+ "direct": "Direct - post to mentioned users only",
+ "local": "Local - do not federate this post",
+ "private": "Followers-only - post to followers only",
+ "public": "Public - post to public timelines",
+ "unlisted": "Unlisted - do not post to public timelines"
+ },
+ "scope_notice": {
+ "local": "This post will not be visible on other instances",
+ "private": "This post will be visible to your followers only",
+ "public": "This post will be visible to everyone",
+ "unlisted": "This post will not be visible in Public Timeline and The Whole Known Network"
+ }
+ },
+ "registration": {
+ "awaiting_email_confirmation_title": "Awaiting email confirmation",
+ "awaiting_email_confirmation": "Your account has been registered and an email has been sent to your address. Please check the email to complete registration.",
+ "bio": "Bio",
+ "bio_placeholder": "e.g.\nHi! Welcome to my bio.\nI love watching anime and playing games. I hope we can be friends!",
+ "captcha": "CAPTCHA",
+ "email": "Email",
+ "email_language": "In which language do you want to receive emails from the server?",
+ "fullname": "Display name",
+ "fullname_placeholder": "e.g. Atsuko Kagari",
+ "new_captcha": "Click the image to get a new captcha",
+ "password_confirm": "Password confirmation",
+ "reason": "Reason to register",
+ "reason_placeholder": "This instance approves registrations manually.\nLet the administration know why you want to register.",
+ "register": "Register",
+ "registration": "Registration",
+ "request_sent": "Your registration request has been sent for approval. You will receive an email when your account is approved.",
+ "request_sent_title": "Registration request sent",
+ "token": "Invite token",
+ "username_placeholder": "e.g. akko",
+ "validations": {
+ "email_required": "cannot be left blank",
+ "fullname_required": "cannot be left blank",
+ "password_confirmation_match": "should be the same as password",
+ "password_confirmation_required": "cannot be left blank",
+ "password_required": "cannot be left blank",
+ "username_required": "cannot be left blank"
+ }
+ },
+ "remote_user_resolver": {
+ "error": "Not found.",
+ "remote_user_resolver": "Remote user resolver",
+ "searching_for": "Searching for"
+ },
+ "search": {
+ "hashtags": "Hashtags",
+ "no_results": "No results",
+ "people": "People",
+ "people_talking": "{count} people talking",
+ "person_talking": "{count} person talking"
+ },
+ "selectable_list": {
+ "select_all": "Select all"
+ },
+ "settings": {
+ "accent": "Accent",
+ "account_alias": "Account aliases",
+ "account_alias_table_head": "Alias",
+ "account_backup": "Account backup",
+ "account_backup_description": "This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.",
+ "account_backup_table_head": "Backup",
+ "account_privacy": "Privacy",
+ "add_alias_error": "Error adding alias: {error}",
+ "add_backup": "Create a new backup",
+ "add_backup_error": "Error adding a new backup: {error}",
+ "added_alias": "Alias is added.",
+ "added_backup": "Added a new backup.",
+ "allow_following_move": "Allow auto-follow when following account moves",
+ "always_show_post_button": "Always show floating New Post button",
+ "app_name": "App name",
+ "attachmentRadius": "Attachments",
+ "attachments": "Attachments",
+ "autohide_floating_post_button": "Automatically hide New Post button (mobile)",
+ "avatar": "Avatar",
+ "avatarAltRadius": "Avatars (notifications)",
+ "avatarRadius": "Avatars",
+ "avatar_size_instruction": "The recommended minimum size for avatar images is 150x150 pixels.",
+ "background": "Background",
+ "backup_not_ready": "This backup is not ready yet.",
+ "bio": "Bio",
+ "block_export": "Block export",
+ "block_export_button": "Export your blocks to a csv file",
+ "block_import": "Block import",
+ "block_import_error": "Error importing blocks",
+ "blocks_imported": "Blocks imported! Processing them will take a while.",
+ "blocks_tab": "Blocks",
+ "bot": "This is a bot account",
+ "btnRadius": "Buttons",
+ "cBlue": "Blue (Reply, follow)",
+ "cGreen": "Green (Retweet)",
+ "cOrange": "Orange (Favorite)",
+ "cRed": "Red (Cancel)",
+ "change_email": "Change email",
+ "change_email_error": "There was an issue changing your email.",
+ "change_password": "Change password",
+ "change_password_error": "There was an issue changing your password.",
+ "changed_email": "Email changed successfully!",
+ "changed_password": "Password changed successfully!",
+ "chatMessageRadius": "Chat message",
+ "checkboxRadius": "Checkboxes",
+ "collapse_subject": "Collapse posts with content warnings",
+ "columns": "Columns",
+ "composing": "Composing",
+ "confirm_dialogs": "Require confirmation for:",
+ "confirm_dialogs_approve_follow": "Accepting a follow request",
+ "confirm_dialogs_block": "Blocking someone",
+ "confirm_dialogs_delete": "Deleting a post",
+ "confirm_dialogs_deny_follow": "Rejecting a follow request",
+ "confirm_dialogs_mute": "Muting someone",
+ "confirm_dialogs_repeat": "Repeating a post",
+ "confirm_dialogs_unfollow": "Unfollowing someone",
+ "confirm_new_password": "Confirm new password",
+ "confirmation_dialogs": "Confirmation options",
+ "conversation_display": "Conversation display style",
+ "conversation_display_linear": "Linear-style",
+ "conversation_display_tree": "Tree-style",
+ "conversation_other_replies_button": "Show the \"other replies\" button",
+ "conversation_other_replies_button_below": "Below posts",
+ "conversation_other_replies_button_inside": "Inside posts",
+ "current_avatar": "Your current avatar",
+ "current_mascot": "Your current mascot",
+ "current_password": "Current password",
+ "data_import_export_tab": "Data import / export",
+ "default_vis": "Default visibility scope",
+ "delete_account": "Delete account",
+ "delete_account_description": "Permanently delete your data and deactivate your account.",
+ "delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.",
+ "delete_account_instructions": "Type your password in the input below to confirm account deletion.",
+ "disable_sticky_headers": "Don't stick column headers to top of the screen",
+ "discoverable": "Allow discovery of this account in search results and other services",
+ "domain_mutes": "Domains",
+ "download_backup": "Download",
+ "email_language": "Language for receiving emails from the server",
+ "emoji_reactions_on_timeline": "Show emoji reactions on timeline",
+ "enable_web_push_notifications": "Enable web push notifications",
+ "enter_current_password_to_confirm": "Enter your current password to confirm your identity",
+ "expert_mode": "Show advanced",
+ "export_theme": "Save preset",
+ "expire_posts_enabled": "Delete posts after a set amount of days",
+ "expire_posts_input_placeholder": "Number of days",
+ "file_export_import": {
+ "backup_restore": "Settings backup",
+ "backup_settings": "Backup settings to file",
+ "backup_settings_theme": "Backup settings and theme to file",
+ "errors": {
+ "file_slightly_new": "File minor version is different, some settings might not load",
+ "file_too_new": "Incompatible major version: {fileMajor}, this PleromaFE (settings ver {feMajor}) is too old to handle it",
+ "file_too_old": "Incompatible major version: {fileMajor}, file version is too old and not supported (min. set. ver. {feMajor})",
+ "invalid_file": "The selected file is not a supported Pleroma settings backup. No changes were made."
+ },
+ "restore_settings": "Restore settings from file"
+ },
+ "filtering": "Filtering",
+ "filtering_explanation": "All posts containing these words will be muted, one per line",
+ "follow_export": "Follow export",
+ "follow_export_button": "Export your follows to a csv file",
+ "follow_import": "Follow import",
+ "follow_import_error": "Error importing followers",
+ "follows_imported": "Follows imported! Processing them will take a while.",
+ "foreground": "Foreground",
+ "fun": "Fun",
+ "general": "General",
+ "greentext": "Meme arrows",
+ "hide_all_muted_posts": "Hide muted posts",
+ "hide_attachments_in_convo": "Hide attachments in conversations",
+ "hide_attachments_in_tl": "Hide attachments in timeline",
+ "hide_bot_indication": "Hide bot indication in posts",
+ "hide_favorites_description": "Don't show list of my favorites (people still get notified)",
+ "hide_filtered_statuses": "Hide all filtered posts",
+ "hide_followers_count_description": "Don't show follower count",
+ "hide_followers_description": "Don't show who's following me",
+ "hide_follows_count_description": "Don't show follow count",
+ "hide_follows_description": "Don't show who I'm following",
+ "hide_isp": "Hide instance-specific panel",
+ "hide_list_aliases_error_action": "Close",
+ "hide_media_previews": "Hide media previews",
+ "hide_muted_posts": "Hide posts of muted users",
+ "hide_muted_threads": "Hide muted threads",
+ "hide_post_stats": "Hide post statistics (e.g. the number of favorites)",
+ "hide_shoutbox": "Hide instance shoutbox",
+ "hide_site_favicon": "Hide instance favicon in top panel",
+ "hide_site_name": "Hide instance name in top panel",
+ "hide_threads_with_blocked_users": "Hide threads mentioning blocked users",
+ "hide_user_stats": "Hide user statistics (e.g. the number of followers)",
+ "hide_wallpaper": "Hide instance wallpaper",
+ "hide_wordfiltered_statuses": "Hide word-filtered posts",
+ "import_blocks_from_a_csv_file": "Import blocks from a csv file",
+ "import_followers_from_a_csv_file": "Import follows from a csv file",
+ "import_mutes_from_a_csv_file": "Import mutes from a csv file",
+ "import_theme": "Load preset",
+ "inputRadius": "Input fields",
+ "instance_default": "(default: {value})",
+ "instance_default_simple": "(default)",
+ "interface": "Interface",
+ "interfaceLanguage": "Interface language",
+ "invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.",
+ "limited_availability": "Unavailable in your browser",
+ "links": "Links",
+ "list_aliases_error": "Error fetching aliases: {error}",
+ "list_backups_error": "Error fetching backup list: {error}",
+ "lock_account_description": "Restrict your account to approved followers only",
+ "loop_video": "Loop videos",
+ "loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")",
+ "mascot": "Mastodon FE Mascot",
+ "max_depth_in_thread": "Maximum number of levels in thread to display by default",
+ "max_thumbnails": "Maximum amount of thumbnails per post (empty = no limit)",
+ "mention_link_bolden_you": "Highlight mention of you when you are mentioned",
+ "mention_link_display": "Display mention links",
+ "mention_link_display_full": "always as full names (e.g. {'@'}foo{'@'}example.org)",
+ "mention_link_display_full_for_remote": "as full names only for remote users (e.g. {'@'}foo{'@'}example.org)",
+ "mention_link_display_short": "always as short names (e.g. {'@'}foo)",
+ "mention_link_fade_domain": "Fade domains (e.g. {'@'}example.org in {'@'}foo{'@'}example.org)",
+ "mention_link_show_avatar": "Show user avatar beside the link",
+ "mention_link_show_tooltip": "Show full user names as tooltip for remote users",
+ "mention_links": "Mention links",
+ "mfa": {
+ "authentication_methods": "Authentication methods",
+ "confirm_and_enable": "Confirm & enable OTP",
+ "generate_new_recovery_codes": "Generate new recovery codes",
+ "otp": "OTP",
+ "recovery_codes": "Recovery codes.",
+ "recovery_codes_warning": "Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account.",
+ "scan": {
+ "desc": "Using your two-factor app, scan this QR code or enter text key:",
+ "secret_code": "Key",
+ "title": "Scan"
+ },
+ "setup_otp": "Setup OTP",
+ "title": "Two-factor Authentication",
+ "verify": {
+ "desc": "To enable two-factor authentication, enter the code from your two-factor app:"
+ },
+ "wait_pre_setup_otp": "presetting OTP",
+ "waiting_a_recovery_codes": "Receiving backup codes…",
+ "warning_of_generate_new_codes": "When you generate new recovery codes, your old codes won’t work anymore."
+ },
+ "minimal_scopes_mode": "Minimize post scope selection options",
+ "more_settings": "More settings",
+ "move_account": "Move account",
+ "move_account_error": "Error moving account: {error}",
+ "move_account_notes": "If you want to move this account somewhere else, you must go to your target account and add an alias pointing here.",
+ "move_account_target": "Target account (e.g. {example})",
+ "moved_account": "Account is moved.",
+ "mute_bot_posts": "Mute bot posts",
+ "mute_export": "Mute export",
+ "mute_export_button": "Export your mutes to a csv file",
+ "mute_import": "Mute import",
+ "mute_import_error": "Error importing mutes",
+ "mutes_and_blocks": "Mutes and Blocks",
+ "mutes_imported": "Mutes imported! Processing them will take a while.",
+ "mutes_tab": "Mutes",
+ "name": "Name",
+ "name_bio": "Name & bio",
+ "new_alias_target": "Add a new alias (e.g. {example})",
+ "new_email": "New email",
+ "new_password": "New password",
+ "no_blocks": "No blocks",
+ "no_mutes": "No mutes",
+ "no_rich_text_description": "Strip rich text formatting from all posts",
+ "notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.",
+ "notification_mutes": "To stop receiving notifications from a specific user, use a mute.",
+ "notification_setting_block_from_strangers": "Block notifications from users who you do not follow",
+ "notification_setting_filters": "Filters",
+ "notification_setting_hide_if_cw": "Hide the contents of push notifications if under a Content Warning",
+ "notification_setting_hide_notification_contents": "Hide the sender and contents of push notifications",
+ "notification_setting_privacy": "Privacy",
+ "notification_visibility": "Types of notifications to show",
+ "notification_visibility_emoji_reactions": "Reactions",
+ "notification_visibility_follows": "Follows",
+ "notification_visibility_likes": "Favorites",
+ "notification_visibility_mentions": "Mentions",
+ "notification_visibility_moves": "User Migrates",
+ "notification_visibility_polls": "Ends of polls you voted in",
+ "notification_visibility_repeats": "Repeats",
+ "notifications": "Notifications",
+ "nsfw_clickthrough": "Hide sensitive/NSFW media",
+ "oauth_tokens": "OAuth tokens",
+ "pad_emoji": "Pad emoji with spaces when adding from picker",
+ "panelRadius": "Panels",
+ "pause_on_unfocused": "Pause when tab is not focused",
+ "play_videos_in_modal": "Play videos in a popup frame",
+ "post_look_feel": "Posts Look & Feel",
+ "post_status_content_type": "Default post content type",
+ "posts": "Posts",
+ "preload_images": "Preload images",
+ "presets": "Presets",
+ "profile_background": "Profile background",
+ "profile_banner": "Profile banner",
+ "profile_fields": {
+ "add_field": "Add field",
+ "label": "Profile metadata",
+ "name": "Label",
+ "value": "Content"
+ },
+ "profile_tab": "Profile",
+ "radii_help": "Set up interface edge rounding (in pixels)",
+ "refresh_token": "Refresh token",
+ "remove_alias": "Remove this alias",
+ "remove_backup": "Remove",
+ "render_mfm": "Render Misskey Markdown",
+ "render_mfm_on_hover": "Pause MFM animations until post hover",
+ "replies_in_timeline": "Replies in timeline",
+ "reply_visibility_all": "Show all replies",
+ "reply_visibility_following": "Only show replies directed at me or users I'm following",
+ "reply_visibility_following_short": "Show replies to my follows",
+ "reply_visibility_self": "Only show replies directed at me",
+ "reply_visibility_self_short": "Show replies to self only",
+ "reset_avatar": "Reset avatar",
+ "reset_avatar_confirm": "Do you really want to reset the avatar?",
+ "reset_background_confirm": "Do you really want to reset the background?",
+ "reset_banner_confirm": "Do you really want to reset the banner?",
+ "reset_profile_background": "Reset profile background",
+ "reset_profile_banner": "Reset profile banner",
+ "revoke_token": "Revoke",
+ "right_sidebar": "Reverse order of columns",
+ "save": "Save changes",
+ "saving_err": "Error saving settings",
+ "saving_ok": "Settings saved",
+ "scope_copy": "Copy scope when replying (DMs are always copied)",
+ "search_user_to_block": "Search whom you want to block",
+ "search_user_to_mute": "Search whom you want to mute",
+ "security": "Security",
+ "security_tab": "Security",
+ "sensitive_by_default": "Mark posts as sensitive by default",
+ "sensitive_if_subject": "Automatically mark images as sensitive if a content warning is specified",
+ "set_new_avatar": "Set new avatar",
+ "set_new_mascot": "Set new mascot",
+ "set_new_profile_background": "Set new profile background",
+ "set_new_profile_banner": "Set new profile banner",
+ "setting_changed": "Setting is different from default",
+ "setting_server_side": "This setting is tied to your profile and affects all sessions and clients",
+ "settings": "Settings",
+ "settings_profile": "Settings Profiles",
+ "settings_profile_currently": "Currently using {name} (version: {version})",
+ "settings_profiles_show": "Show all settings profiles",
+ "settings_profiles_unshow": "Hide all settings profiles",
+ "settings_profile_in_use": "In use",
+ "settings_profile_creation": "Create new profile",
+ "settings_profile_creation_submit": "Create",
+ "settings_profile_creation_new_name_label": "Name",
+ "settings_profile_use": "Use",
+ "settings_profile_delete": "Delete",
+ "settings_profile_delete_confirm": "Do you really want to delete this profile?",
+ "settings_profile_force_sync": "Synchronize",
+ "settings_profiles_refresh": "Reload settings profiles",
+ "show_admin_badge": "Show \"Admin\" badge in my profile",
+ "show_moderator_badge": "Show \"Moderator\" badge in my profile",
+ "show_nav_shortcuts": "Show extra navigation shortcuts in top panel",
+ "show_panel_nav_shortcuts": "Show timeline navigation shortcuts at the top of the panel",
+ "show_scrollbars": "Show side column's scrollbars",
+ "show_wider_shortcuts": "Show wider gap between top panel shortcuts",
+ "show_yous": "Show (You)s",
+ "stop_gifs": "Pause animated images until you hover on them",
+ "streaming": "Automatically show new posts when scrolled to the top",
+ "style": {
+ "advanced_colors": {
+ "_tab_label": "Advanced",
+ "alert": "Alert background",
+ "alert_error": "Error",
+ "alert_neutral": "Neutral",
+ "alert_warning": "Warning",
+ "badge": "Badge background",
+ "badge_notification": "Notification",
+ "borders": "Borders",
+ "buttons": "Buttons",
+ "chat": {
+ "border": "Border",
+ "incoming": "Incoming",
+ "outgoing": "Outgoing"
+ },
+ "disabled": "Disabled",
+ "faint_text": "Faded text",
+ "highlight": "Highlighted elements",
+ "icons": "Icons",
+ "inputs": "Input fields",
+ "panel_header": "Panel header",
+ "poll": "Poll graph",
+ "popover": "Tooltips, menus, popovers",
+ "post": "Posts/User bios",
+ "pressed": "Pressed",
+ "selectedMenu": "Selected menu item",
+ "selectedPost": "Selected post",
+ "tabs": "Tabs",
+ "toggled": "Toggled",
+ "top_bar": "Top bar",
+ "underlay": "Underlay",
+ "wallpaper": "Wallpaper"
+ },
+ "common": {
+ "color": "Color",
+ "contrast": {
+ "context": {
+ "18pt": "for large (18pt+) text",
+ "text": "for text"
+ },
+ "hint": "Contrast ratio is {ratio}, it {level} {context}",
+ "level": {
+ "aa": "meets Level AA guideline (minimal)",
+ "aaa": "meets Level AAA guideline (recommended)",
+ "bad": "doesn't meet any accessibility guidelines"
+ }
+ },
+ "opacity": "Opacity"
+ },
+ "common_colors": {
+ "_tab_label": "Common",
+ "foreground_hint": "See \"Advanced\" tab for more detailed control",
+ "main": "Common colors",
+ "rgbo": "Icons, accents, badges"
+ },
+ "fonts": {
+ "_tab_label": "Fonts",
+ "components": {
+ "input": "Input fields",
+ "interface": "Interface",
+ "post": "Post text",
+ "postCode": "Monospaced text in a post (rich text)"
+ },
+ "custom": "Custom",
+ "family": "Font name",
+ "help": "Select font to use for elements of UI. For \"custom\" you have to enter exact font name as it appears in system.",
+ "size": "Size (in px)",
+ "weight": "Weight (boldness)"
+ },
+ "preview": {
+ "button": "Button",
+ "checkbox": "I have skimmed over terms and conditions",
+ "content": "Content",
+ "error": "Example error",
+ "faint_link": "helpful manual",
+ "fine_print": "Read our {0} to learn nothing useful!",
+ "header": "Preview",
+ "header_faint": "This is fine",
+ "input": "Just arrived at Luna Nova Academy",
+ "link": "a nice lil' link",
+ "mono": "content",
+ "text": "A bunch of more {0} and {1}"
+ },
+ "radii": {
+ "_tab_label": "Roundness"
+ },
+ "shadows": {
+ "_tab_label": "Shadow and lighting",
+ "blur": "Blur",
+ "component": "Component",
+ "components": {
+ "avatar": "User avatar (in profile view)",
+ "avatarStatus": "User avatar (in post display)",
+ "button": "Button",
+ "buttonHover": "Button (hover)",
+ "buttonPressed": "Button (pressed)",
+ "buttonPressedHover": "Button (pressed+hover)",
+ "input": "Input field",
+ "panel": "Panel",
+ "panelHeader": "Panel header",
+ "popup": "Popups and tooltips",
+ "topBar": "Top bar"
+ },
+ "filter_hint": {
+ "always_drop_shadow": "Warning, this shadow always uses {0} when browser supports it.",
+ "avatar_inset": "Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.",
+ "drop_shadow_syntax": "{0} does not support {1} parameter and {2} keyword.",
+ "inset_classic": "Inset shadows will be using {0}",
+ "spread_zero": "Shadows with spread > 0 will appear as if it was set to zero"
+ },
+ "hintV3": "For shadows you can also use the {0} notation to use other color slot.",
+ "inset": "Inset",
+ "override": "Override",
+ "shadow_id": "Shadow #{value}",
+ "spread": "Spread"
+ },
+ "switcher": {
+ "clear_all": "Clear all",
+ "clear_opacity": "Clear opacity",
+ "help": {
+ "fe_downgraded": "PleromaFE's version rolled back.",
+ "fe_upgraded": "PleromaFE's theme engine upgraded after version update.",
+ "future_version_imported": "File you imported was made in newer version of FE.",
+ "migration_napshot_gone": "For whatever reason snapshot was missing, some stuff could look different than you remember.",
+ "migration_snapshot_ok": "Just to be safe, theme snapshot loaded. You can try loading theme data.",
+ "older_version_imported": "File you imported was made in older version of FE.",
+ "snapshot_missing": "No theme snapshot was in the file so it could look different than originally envisioned.",
+ "snapshot_present": "Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.",
+ "snapshot_source_mismatch": "Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.",
+ "upgraded_from_v2": "PleromaFE has been upgraded, theme could look a little bit different than you remember.",
+ "v2_imported": "File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."
+ },
+ "keep_as_is": "Keep as is",
+ "keep_color": "Keep colors",
+ "keep_fonts": "Keep fonts",
+ "keep_opacity": "Keep opacity",
+ "keep_roundness": "Keep roundness",
+ "keep_shadows": "Keep shadows",
+ "load_theme": "Load theme",
+ "reset": "Reset",
+ "save_load_hint": "\"Keep\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.",
+ "use_snapshot": "Old version",
+ "use_source": "New version"
+ }
+ },
+ "subject_input_always_show": "Always show content warning field",
+ "subject_line_behavior": "Copy content warning when replying",
+ "subject_line_email": "Like email: \"re: warning\"",
+ "subject_line_mastodon": "Like mastodon: copy as is",
+ "subject_line_noop": "Do not copy",
+ "text": "Text",
+ "theme": "Theme",
+ "theme_help": "Use hex color codes (#rrggbb) to customize your color theme.",
+ "theme_help_v2_1": "You can also override certain component's colors and opacity by toggling the checkbox, use \"Clear all\" button to clear all overrides.",
+ "theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.",
+ "third_column_mode": "When there's enough space, show third column containing",
+ "third_column_mode_none": "Don't show third column at all",
+ "third_column_mode_notifications": "Notifications column",
+ "third_column_mode_postform": "Main post form and navigation",
+ "token": "Token",
+ "tooltipRadius": "Tooltips/alerts",
+ "translation_language": "Automatic Translation Language",
+ "tree_advanced": "Display extra buttons to open and close reply chains in threads",
+ "tree_fade_ancestors": "Display ancestors of the current post in faint text",
+ "type_domains_to_mute": "Search domains to mute",
+ "upload_a_photo": "Upload a photo",
+ "useStreamingApi": "Receive posts and notifications real-time",
+ "useStreamingApiWarning": "It's cool use it. If it breaks refresh I guess?",
+ "use_at_icon": "Display {'@'} symbol as an icon instead of text",
+ "use_contain_fit": "Don't crop the attachment in thumbnails",
+ "use_one_click_nsfw": "Open NSFW attachments with just one click",
+ "user_mutes": "Users",
+ "user_profile_default_tab": "Default Tab on User Profile",
+ "user_profiles": "User Profiles",
+ "user_settings": "User Settings",
+ "valid_until": "Valid until",
+ "values": {
+ "false": "no",
+ "true": "yes"
+ },
+ "version": {
+ "backend_version": "Backend version",
+ "frontend_version": "Frontend version",
+ "title": "Version"
+ },
+ "virtual_scrolling": "Optimize timeline rendering",
+ "word_filter": "Word filter",
+ "wordfilter": "Wordfilter"
+ },
+ "settings_profile": {
+ "synchronizing": "Synchronizing setting profile \"{profile}\"...",
+ "synchronized": "Synchronized settings!",
+ "synchronization_error": "Could not synchronize settings: {err}",
+ "creating": "Creating new setting profile \"{profile}\"..."
+ },
+ "status": {
+ "ancestor_follow": "See {numReplies} other reply under this post | See {numReplies} other replies under this post",
+ "ancestor_follow_with_icon": "{icon} {text}",
+ "attachment_stop_flash": "Stop Flash player",
+ "bookmark": "Bookmark",
+ "collapse_attachments": "Collapse attachments",
+ "copy_link": "Copy link to post",
+ "delete": "Delete post",
+ "delete_confirm": "Do you really want to delete this post?",
+ "delete_confirm_accept_button": "Yes, delete it",
+ "delete_confirm_cancel_button": "No, keep it",
+ "delete_confirm_title": "Confirm deletion",
+ "edit": "Edit",
+ "edit_history": "Edit History",
+ "edit_history_modal_title": "Edited {historyCount} time | Edited {historyCount} times",
+ "edited_at": "Edited {time}",
+ "expand": "Expand",
+ "external_source": "External source",
+ "favorites": "Favorites",
+ "hide_attachment": "Hide attachment",
+ "hide_content": "Hide content",
+ "hide_full_subject": "Hide full content warning",
+ "many_attachments": "Post has {number} attachment | Post has {number} attachments",
+ "mentions": "Mentions",
+ "move_down": "Shift attachment right",
+ "move_up": "Shift attachment left",
+ "mute_conversation": "Mute conversation",
+ "nsfw": "NSFW",
+ "open_gallery": "Open gallery",
+ "override_translation_source_language": "Override source language",
+ "pin": "Pin on profile",
+ "pinned": "Pinned",
+ "plus_more": "+{number} more",
+ "redraft": "Delete & redraft",
+ "redraft_confirm": "Do you really want to delete and redraft this post? Interactions to the original post will not be preserved.",
+ "redraft_confirm_accept_button": "Yes, delete and redraft",
+ "redraft_confirm_cancel_button": "No, keep the original",
+ "redraft_confirm_title": "Confirm delete & redraft",
+ "remove_attachment": "Remove attachment",
+ "repeat_confirm": "Do you really want to repeat this post?",
+ "repeat_confirm_accept_button": "Yes, repeat it",
+ "repeat_confirm_cancel_button": "No, don't repeat",
+ "repeat_confirm_title": "Confirm repeat",
+ "repeats": "Repeats",
+ "replies_list": "Replies:",
+ "replies_list_with_others": "View {numReplies} more reply | View {numReplies} more replies",
+ "reply_to": "Reply to",
+ "show_all_attachments": "Show all attachments",
+ "show_all_conversation": "Show full conversation ({numStatus} other post) | Show full conversation ({numStatus} other posts)",
+ "show_all_conversation_with_icon": "{icon} {text}",
+ "show_attachment_description": "Preview description (open attachment for full description)",
+ "show_attachment_in_modal": "Show attachment in a window",
+ "show_content": "Show content",
+ "show_full_subject": "Show full content warning",
+ "show_only_conversation_under_this": "Only show replies to this post",
+ "status_deleted": "This post was deleted",
+ "status_unavailable": "Post unavailable",
+ "thread_follow": "View {numStatus} more reply | View {numStatus} more replies",
+ "thread_follow_with_icon": "{icon} {text}",
+ "thread_hide": "Hide this thread",
+ "thread_muted": "Thread muted",
+ "thread_muted_and_words": ", has words:",
+ "thread_show": "Show this thread",
+ "thread_show_full": "Show {numStatus} reply | Show all {numStatus} replies",
+ "thread_show_full_with_icon": "{icon} {text}",
+ "translate": "Translate",
+ "translated_from": "Translated from {language}",
+ "unbookmark": "Unbookmark",
+ "unmute_conversation": "Unmute conversation",
+ "unpin": "Unpin from profile",
+ "you": "(You)"
+ },
+ "time": {
+ "in_future": "in {0}",
+ "in_past": "{0} ago",
+ "now": "just now",
+ "now_short": "now",
+ "unit": {
+ "days": "{0} day | {0} days",
+ "days_short": "{0}d",
+ "hours": "{0} hour | {0} hours",
+ "hours_short": "{0}h",
+ "minutes": "{0} minute | {0} minutes",
+ "minutes_short": "{0}min",
+ "months": "{0} month | {0} months",
+ "months_short": "{0}mo",
+ "seconds": "{0} second | {0} seconds",
+ "seconds_short": "{0}s",
+ "weeks": "{0} week | {0} weeks",
+ "weeks_short": "{0}w",
+ "years": "{0} year | {0} years",
+ "years_short": "{0}y"
+ }
+ },
+ "timeline": {
+ "collapse": "Collapse",
+ "conversation": "Conversation",
+ "error": "Error fetching timeline: {0}",
+ "load_older": "Load older posts",
+ "no_more_statuses": "No more posts",
+ "no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated or quoted",
+ "no_statuses": "No posts",
+ "reload": "Reload",
+ "repeated": "repeated",
+ "show_new": "Show new",
+ "socket_broke": "Realtime connection lost: CloseEvent code {0}",
+ "socket_reconnected": "Realtime connection established",
+ "up_to_date": "Up-to-date",
+ "follow_tag": "Follow hashtag",
+ "unfollow_tag": "Unfollow hashtag"
+ },
+ "toast": {
+ "no_translation_target_set": "No translation target language set - this may fail. Please set a target language in your settings."
+ },
+ "tool_tip": {
+ "accept_follow_request": "Accept follow request",
+ "add_reaction": "Add Reaction",
+ "bookmark": "Bookmark",
+ "favorite": "Favorite",
+ "media_upload": "Upload media",
+ "quote": "Quote",
+ "reject_follow_request": "Reject follow request",
+ "repeat": "Repeat",
+ "reply": "Reply",
+ "user_settings": "User Settings"
+ },
+ "upload": {
+ "error": {
+ "base": "Upload failed.",
+ "default": "Try again later",
+ "file_too_big": "File too big [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
+ "message": "Upload failed: {0}"
+ },
+ "file_size_units": {
+ "B": "B",
+ "GiB": "GiB",
+ "KiB": "KiB",
+ "MiB": "MiB",
+ "TiB": "TiB"
+ }
+ },
+ "user_card": {
+ "admin_menu": {
+ "activate_account": "Activate account",
+ "deactivate_account": "Deactivate account",
+ "delete_account": "Delete account",
+ "delete_user": "Delete user",
+ "delete_user_data_and_deactivate_confirmation": "This will permanently delete the data from this account and deactivate it. Are you absolutely sure?",
+ "disable_any_subscription": "Disallow following user at all",
+ "disable_remote_subscription": "Disallow following user from remote instances",
+ "force_nsfw": "Mark all posts as NSFW",
+ "force_unlisted": "Force posts to be unlisted",
+ "grant_admin": "Grant Admin",
+ "grant_moderator": "Grant Moderator",
+ "moderation": "Moderation",
+ "quarantine": "Disallow user posts from federating",
+ "revoke_admin": "Revoke Admin",
+ "revoke_moderator": "Revoke Moderator",
+ "sandbox": "Force posts to be followers-only",
+ "strip_media": "Remove media from posts"
+ },
+ "approve": "Approve",
+ "approve_confirm": "Are you sure you want to let this user follow you?",
+ "approve_confirm_accept_button": "Yes, accept",
+ "approve_confirm_cancel_button": "No, cancel",
+ "approve_confirm_title": "Approve follow request",
+ "block": "Block",
+ "block_confirm": "Are you sure you want to block {user}?",
+ "block_confirm_accept_button": "Yes, block",
+ "block_confirm_cancel_button": "No, don't block",
+ "block_confirm_title": "Block user",
+ "block_progress": "Blocking…",
+ "blocked": "Blocked!",
+ "bot": "Bot",
+ "deactivated": "Deactivated",
+ "deny": "Deny",
+ "deny_confirm": "Are you sure you want to deny this user's follow request?",
+ "deny_confirm_accept_button": "Yes, deny",
+ "deny_confirm_cancel_button": "No, cancel",
+ "deny_confirm_title": "Deny follow request",
+ "domain_muted": "Unblock domain",
+ "edit_profile": "Edit profile",
+ "favorites": "Favorites",
+ "follow": "Follow",
+ "follow_cancel": "Cancel request",
+ "follow_progress": "Requesting…",
+ "follow_sent": "Request sent!",
+ "follow_unfollow": "Unfollow",
+ "followees": "Following",
+ "followers": "Followers",
+ "following": "Following!",
+ "follows_you": "Follows you!",
+ "requested_by": "Has requested to follow you",
+ "hidden": "Hidden",
+ "hide_repeats": "Hide repeats",
+ "highlight": {
+ "disabled": "No highlight",
+ "side": "Side stripe",
+ "solid": "Solid bg",
+ "striped": "Striped bg"
+ },
+ "its_you": "It's you!",
+ "media": "Media",
+ "mention": "Mention",
+ "message": "Message",
+ "mute": "Mute",
+ "mute_confirm": "Are you sure you want to mute {user}?",
+ "mute_confirm_accept_button": "Yes, mute",
+ "mute_confirm_cancel_button": "No, don't mute",
+ "mute_confirm_title": "Mute user",
+ "mute_domain": "Block domain",
+ "mute_progress": "Muting…",
+ "muted": "Muted",
+ "note": "Private note",
+ "per_day": "per day",
+ "remote_follow": "Remote follow",
+ "remove_follower": "Remove follower",
+ "replies": "With Replies",
+ "report": "Report",
+ "show_repeats": "Show repeats",
+ "statuses": "Posts",
+ "subscribe": "Subscribe",
+ "unblock": "Unblock",
+ "unblock_progress": "Unblocking…",
+ "unfollow_confirm": "Are you sure you want to unfollow {user}?",
+ "unfollow_confirm_accept_button": "Yes, unfollow",
+ "unfollow_confirm_cancel_button": "No, don't unfollow",
+ "unfollow_confirm_title": "Unfollow user",
+ "unmute": "Unmute",
+ "unmute_progress": "Unmuting…",
+ "unsubscribe": "Unsubscribe"
+ },
+ "user_profile": {
+ "profile_does_not_exist": "Sorry, this profile does not exist.",
+ "profile_loading_error": "Sorry, there was an error loading this profile.",
+ "timeline_title": "User timeline"
+ },
+ "user_reporting": {
+ "add_comment_description": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
+ "additional_comments": "Additional comments",
+ "forward_description": "The account is from another server. Send a copy of the report there as well?",
+ "forward_to": "Forward to {0}",
+ "generic_error": "An error occurred while processing your request.",
+ "submit": "Submit",
+ "title": "Reporting {0}"
+ },
+ "who_to_follow": {
+ "more": "More",
+ "who_to_follow": "Who to follow"
+ }
}
diff --git a/src/main.js b/src/main.js
index 275cda49..1b2f4b6b 100644
--- a/src/main.js
+++ b/src/main.js
@@ -23,6 +23,7 @@ import chatsModule from './modules/chats.js'
import announcementsModule from './modules/announcements.js'
import editStatusModule from './modules/editStatus.js'
import statusHistoryModule from './modules/statusHistory.js'
+import tagModule from './modules/tags.js'
import { createI18n } from 'vue-i18n'
@@ -101,6 +102,7 @@ const persistedStateOptions = {
editStatus: editStatusModule,
statusHistory: statusHistoryModule,
chats: chatsModule,
+ tags: tagModule
},
plugins,
strict: false // Socket modifies itself, let's ignore this for now.
diff --git a/src/modules/tags.js b/src/modules/tags.js
new file mode 100644
index 00000000..cff54b7d
--- /dev/null
+++ b/src/modules/tags.js
@@ -0,0 +1,37 @@
+import { merge } from 'lodash'
+
+const tags = {
+ state: {
+ // Contains key = id, value = number of trackers for this poll
+ tags: {}
+ },
+ mutations: {
+ setTag (state, { name, data }) {
+ state.tags[name] = data
+ }
+ },
+ actions: {
+ getTag ({ rootState, commit }, tagName) {
+ return rootState.api.backendInteractor.getHashtag({ tag: tagName }).then(tag => {
+ commit('setTag', { name: tagName, data: tag })
+ return tag
+ })
+ },
+ followTag (store, tagName) {
+ return store.rootState.api.backendInteractor.followHashtag({ tag: tagName })
+ .then((resp) => {
+ store.commit('setTag', { name: tagName, data: resp })
+ return resp
+ })
+ },
+ unfollowTag ({ rootState, commit }, tag) {
+ return rootState.api.backendInteractor.unfollowHashtag({ tag })
+ .then((resp) => {
+ commit('setTag', { name: tag, data: resp })
+ return resp
+ })
+ }
+ }
+}
+
+export default tags
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 29183acd..139f189b 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -113,6 +113,9 @@ const PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements
const PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`
const AKKOMA_SETTING_PROFILE_URL = (name) => `/api/v1/akkoma/frontend_settings/pleroma-fe/${name}`
const AKKOMA_SETTING_PROFILE_LIST = `/api/v1/akkoma/frontend_settings/pleroma-fe`
+const MASTODON_TAG_URL = (name) => `/api/v1/tags/${name}`
+const MASTODON_FOLLOW_TAG_URL = (name) => `/api/v1/tags/${name}/follow`
+const MASTODON_UNFOLLOW_TAG_URL = (name) => `/api/v1/tags/${name}/unfollow`
const oldfetch = window.fetch
@@ -1554,6 +1557,29 @@ const listSettingsProfiles = ({ credentials }) => {
})
}
+const getHashtag = ({ tag, credentials }) => {
+ return promisedRequest({
+ url: MASTODON_TAG_URL(tag),
+ credentials
+ })
+}
+
+const followHashtag = ({ tag, credentials }) => {
+ return promisedRequest({
+ url: MASTODON_FOLLOW_TAG_URL(tag),
+ method: 'POST',
+ credentials
+ })
+}
+
+const unfollowHashtag = ({ tag, credentials }) => {
+ return promisedRequest({
+ url: MASTODON_UNFOLLOW_TAG_URL(tag),
+ method: 'POST',
+ credentials
+ })
+}
+
export const getMastodonSocketURI = ({ credentials, stream, args = {} }) => {
return Object.entries({
...(credentials
@@ -1874,7 +1900,10 @@ const apiService = {
getReports,
updateReportStates,
addNoteToReport,
- deleteNoteFromReport
+ deleteNoteFromReport,
+ getHashtag,
+ followHashtag,
+ unfollowHashtag
}
export default apiService
diff --git a/static/custom.css b/static/custom.css
new file mode 100644
index 00000000..93f380f0
--- /dev/null
+++ b/static/custom.css
@@ -0,0 +1,4 @@
+/* THIS IS A PLACEHOLDER FILE
+ place a css file at $static_dir/static/custom.css
+ to apply custom styles to your frontend
+*/
diff --git a/static/logo-512.png b/static/logo-512.png
new file mode 100755
index 00000000..c8397e35
Binary files /dev/null and b/static/logo-512.png differ