From 526a23b82e51275c5c017d49b25781fffbeafcdc Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sun, 7 Jun 2026 23:00:03 +0200 Subject: [PATCH 1/2] chore: ignore IntelliJ IDE project files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 44b79cee..f3284991 100644 --- a/.gitignore +++ b/.gitignore @@ -140,3 +140,6 @@ src/webpage/translations/langs.js build.js dependency-graph.svg + +# IntelliJ IDE project files +.idea/ From 7338c1cc78a600c9f419278d7a45e7e8fb363ac5 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sun, 7 Jun 2026 23:28:44 +0200 Subject: [PATCH 2/2] Complete message documentation for translatable strings --- translations/qqq.json | 972 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 950 insertions(+), 22 deletions(-) diff --git a/translations/qqq.json b/translations/qqq.json index 898aaf8c..1ac7ca8e 100644 --- a/translations/qqq.json +++ b/translations/qqq.json @@ -7,51 +7,979 @@ "Angelsn", "MathMan05", "McDutchie", + "Siebrand", "Vl1" ] }, + "2faCode": "Label for the 2FA (Two-Factor Authentication) code input field on the login page.", "404": { - "whatelse": "what's the context of this message?" + "404": "Error page title shown when a page is not found (HTTP 404 error).", + "app": "Link text on the 404 page pointing to the main application.", + "blog": "Link text on the 404 page pointing to the Fermi blog.", + "home": "Link text on the 404 page pointing to the homepage.", + "listtitle": "Heading on the 404 page above a list of suggested navigation links.", + "login": "Link text on the 404 page pointing to the login page.", + "report": "Text on the 404 page asking users to report if they found the page within the client.", + "reset": "Link text on the 404 page pointing to the password reset page.", + "title": "Main heading shown on the 404 error page.", + "whatelse": "Easter egg alert message shown randomly when clicking the 'Wherever this is' link on the 404 page. It's meant to be humorous/silly.", + "whereever": "Link text on the 404 page that triggers random easter egg events when clicked." + }, + "onboarding": { + "name": "Settings section title for the guild onboarding feature.", + "disable": "Button label to disable the onboarding feature for a guild.", + "addChannel": "Button label to add a channel to the onboarding flow.", + "channel": "Label for the channel selector in the onboarding settings.", + "desc": "Label for the description text input in onboarding settings.", + "deleteChannel": "Button label to remove a channel from the onboarding flow.", + "enable": "Button label to enable the onboarding feature for a guild.", + "title": "Dialog title shown to new members joining a guild. $1 is the guild name." }, "DMs": { - "add": "I was thinking of using \"Mensaje Directo (MD)\" to refer to DM, but \"chat\" is shorter but if you want me to use the first one you can tell me" + "add": "Context menu item and button label for adding a person to a Direct Message conversation. DM = Direct Message (a private conversation between users).", + "close": "Context menu item to close/leave a Direct Message conversation.", + "copyId": "Context menu item to copy the DM channel's ID to the clipboard.", + "markRead": "Context menu item to mark a DM conversation as read.", + "name": "Title for the Direct Messages section in the sidebar." }, - "ok": "Assuming that it's an Ok button", + "ok": "Generic OK button label used to confirm/dismiss dialogs.", + "dismiss": "Button label to dismiss a notification or popup message.", + "UrlGen": "Title for the bot invite URL generator settings section.", "Voice": { + "userVol": "Label for the slider that controls another user's volume in a voice channel.", "status": { - "badWS": "what WS mean?" + "badWS": "Voice connection status message indicating a bad response from the WebSocket. WS = WebSocket, a network protocol used for real-time communication with the server.", + "conectionFailed": "Voice connection status message shown when the WebRTC connection fails.", + "done": "Voice connection status message shown when successfully connected.", + "left": "Voice connection status message shown after leaving a voice chat.", + "makingOffer": "Voice connection status message shown while creating a WebRTC offer.", + "noSDP": "Voice connection status message when no SDP (Session Description Protocol) is available. SDP is a format for describing multimedia communication sessions.", + "notconnected": "Voice connection status message shown when not connected to any voice channel.", + "sendingStreams": "Voice connection status message shown while sending audio streams to other users.", + "startingRTC": "Voice connection status message shown while starting the RTC (Real-Time Communication) connection. RTC = WebRTC, a technology for real-time audio/video communication.", + "waitingMainWS": "Voice connection status message shown while waiting for the main WebSocket connection. WS = WebSocket.", + "waitingURL": "Voice connection status message shown while waiting for the voice server URL.", + "wsAuth": "Voice connection status message shown while waiting for the WebSocket to authorize. WS = WebSocket.", + "wsOpen": "Voice connection status message shown while waiting for the WebSocket to open. WS = WebSocket." + } + }, + "accessibility": { + "gifSettings": { + "always": "Option for GIF/animated icon playback: always animate.", + "hover": "Option for GIF/animated icon playback: only animate on mouse hover.", + "never": "Option for GIF/animated icon playback: never animate." + }, + "name": "Settings section title for accessibility options.", + "playGif": "Label for the setting that controls when GIF images are animated.", + "playIcon": "Label for the setting that controls when animated icons are played.", + "roleColors": "Label for the setting to disable role-based username colors.", + "gradientColors": "Label for the setting to disable gradient coloring on roles.", + "decorations": "Label for the setting to enable avatar decorations." + }, + "accountNotStart": "Error message shown on the loading screen when the user account fails to initialize.", + "add": "Generic 'Add' button label.", + "applications": { + "delete": "Button label to delete an application in the developer portal.", + "sure": "Confirmation message when deleting an application. $1 is the application name." + }, + "badge": { + "active_developer": "Badge name for an active developer.", + "application_guild_subscription": "Badge text indicating an application has premium features.", + "automod": "Badge text indicating an application uses AutoMod (automatic moderation).", + "bot_commands": "Badge text indicating an application supports slash commands.", + "bug_hunter_level_1": "Badge name for a level 1 bug hunter.", + "bug_hunter_level_2": "Badge name for a level 2 bug hunter.", + "certified_moderator": "Badge name for a certified moderator.", + "early_supporter": "Badge name for an early supporter of the platform.", + "guild_booster_lvl1": "Badge name for a user who has boosted a guild (level 1).", + "guild_booster_lvl2": "Badge name for a user who has boosted a guild (level 2).", + "guild_booster_lvl3": "Badge name for a user who has boosted a guild (level 3).", + "guild_booster_lvl4": "Badge name for a user who has boosted a guild (level 4).", + "guild_booster_lvl5": "Badge name for a user who has boosted a guild (level 5).", + "guild_booster_lvl6": "Badge name for a user who has boosted a guild (level 6).", + "guild_booster_lvl7": "Badge name for a user who has boosted a guild (level 7).", + "guild_booster_lvl8": "Badge name for a user who has boosted a guild (level 8).", + "guild_booster_lvl9": "Badge name for a user who has boosted a guild for a long time (level 9).", + "hypesquad": "Badge name for a member of Vibesquad (placeholder name for a community group).", + "hypesquad_house_1": "Badge name for Vibesquad house 1: Boldness.", + "hypesquad_house_2": "Badge name for Vibesquad house 2: Excellence.", + "hypesquad_house_3": "Badge name for Vibesquad house 3: Equilibrium.", + "legacy_username": "Badge text indicating the user has a legacy (old-style) username.", + "partner": "Badge name for an instance partner.", + "premium": "Badge name indicating a premium user.", + "quest_completed": "Badge text indicating the user finished a quest.", + "staff": "Badge name for instance staff members.", + "verified_developer": "Badge name for a verified developer." + }, + "bio": "Label for the bio/about-me text field in user settings.", + "blankMessage": "Placeholder text shown when a message has no content.", + "blog": { + "blog": "Settings section title for the blog feature.", + "blogUpdates": "Label for the toggle to enable/disable blog update notifications.", + "desc": "Description text for the blog settings section.", + "fermi": "Title text for the Fermi blog page.", + "gotoPost": "Button label to navigate to a blog post.", + "wantUpdates": "Prompt asking the user if they want weekly blog update notifications." + }, + "bot": "Label displayed next to a bot user's name to indicate it is a bot.", + "botGuilds": "Label for a list showing which guilds (servers) the bot is a member of.", + "botSettings": "Title for the bot settings page in the developer portal.", + "cancel": "Generic cancel button label used in dialogs and forms.", + "channel": { + "SlowmodeCool": "Status message showing the slowmode cooldown remaining. $1 is the formatted time remaining.", + "TimeOutCool": "Status message showing when a timeout expires. $1 is the formatted date/time.", + "allowIcons": "Label for the setting that allows custom channel icons.", + "announcement": "Channel type name for announcement channels.", + "copyId": "Context menu item to copy a channel's ID.", + "copyIdCat": "Context menu item to copy a category's ID.", + "createCatagory": "Context menu item to create a new channel category.", + "createChannel": "Context menu item to create a new channel.", + "creating": "Status text shown while a channel is being created.", + "delete": "Context menu item to delete a channel.", + "deleteCat": "Context menu item to delete a category.", + "icon": "Label for the channel icon image input field.", + "makeInvite": "Context menu item to create an invite for the channel.", + "markRead": "Context menu item to mark a channel as read.", + "mute": "Context menu item and dialog title to mute a channel.", + "name": "Channel type name displayed in settings for channel type selection.", + "name:": "Label for the channel name input field in channel settings.", + "nsfw:": "Label for the NSFW (Not Safe For Work) / mature content warning toggle. NSFW = Not Safe For Work.", + "permissions": "Settings section title for channel permissions.", + "selectCatName": "Placeholder/label for the category name input when creating a category.", + "selectName": "Placeholder/label for the channel name input when creating a channel.", + "selectType": "Label for the channel type selector when creating a channel.", + "settings": "Settings section title for channel settings.", + "settingsFor": "Settings dialog title. $1 is the channel name.", + "slowmode": "Label for the slowmode duration setting in channel settings.", + "text": "Channel type name for text channels.", + "timedOutUntil": "Tooltip shown on the timeout icon next to messages. $1 is the formatted date/time string.", + "topic:": "Label for the channel topic input field.", + "typebox": "Placeholder text in the message input box. $1 is the channel name.", + "unmute": "Context menu item to unmute a channel.", + "voice": "Channel type name for voice channels.", + "deleteThread": "Context menu item to delete a thread.", + "hideThreads": "Label for the setting controlling when threads are hidden after inactivity.", + "forum": "Channel type name for forum channels." + }, + "threads": { + "leave": "Context menu item to leave a thread.", + "join": "Context menu item to join a thread.", + "name": "Label for the thread name input when creating a thread.", + "editTags": "Context menu item and dialog title for editing forum tags on a thread." + }, + "forum": { + "creorsear": "Placeholder text for the forum search/create input field.", + "next": "Button label to go to the next page of forum posts.", + "back": "Button label to go to the previous page of forum posts.", + "newPost": "Button label to create a new forum post.", + "post": "Button label to submit a new forum post.", + "sortOptions": { + "sortby": { + "title": "Label for the sort-by dropdown in forum sorting options.", + "recent": "Sort option: sort forum posts by recent activity.", + "posted": "Sort option: sort forum posts by date posted." + }, + "sortOrder": { + "title": "Label for the sort order dropdown in forum sorting options.", + "recent": "Sort order option: show recent posts first.", + "old": "Sort order option: show old posts first." + }, + "tagMatch": { + "title": "Label for the tag matching dropdown in forum sorting options.", + "some": "Tag matching option: show posts matching any of the selected tags.", + "all": "Tag matching option: show posts matching all selected tags." + }, + "name": "Title for the forum sorting options panel." + }, + "errors": { + "tagsReq": "Error message shown when trying to create a forum post without selecting required tags.", + "requireText": "Error message shown when trying to create a forum post without message content." + }, + "allTags": "Button label to show/select all tags in the forum view.", + "settings": { + "editTags": "Label for the tag editing section in forum channel settings.", + "editTag": "Dialog title when editing a single forum tag.", + "tagName": "Label for the tag name input field.", + "moderated": "Label for the checkbox that restricts tag application to thread moderators only.", + "addTag": "Button label to add a new tag to the forum.", + "delTag": "Button label to delete a forum tag." } }, - "botGuilds": "This means \"the guilds that the bot is in\" (i.e., is a member of).", - "errorReconnect": "Uses MarkDown", + "channelLink": "Display text for a channel link in messages. $1 is the channel name. Uses Markdown heading syntax.", + "clientDesc": "About/information text for the client shown in settings. $1 is the version string, $3 is the calculated rights bitmask. Uses Markdown for links.", + "commands": { + "errorNotValid": "Error message for slash commands when an invalid choice is provided. $1 is the value entered, $2 is the option name.", + "required": "Error message for slash commands when a required option is missing. $1 is the option name." + }, + "confirmGuildLeave": "Confirmation dialog text when leaving a guild. $1 is the guild name.", + "copyLink": "Context menu item to copy a message's link/URL.", + "copyRegLink": "Context menu item to copy a regular link (e.g. invite link).", + "copymessageid": "Context menu item to copy a message's ID.", + "copyrawtext": "Context menu item to copy the raw text content of a message.", + "createAccount": "Button label to create a new account.", + "delete": "Generic delete button label.", + "deleteConfirm": "Generic confirmation message shown when deleting something.", + "devSettings": { + "badUser": "Label for the developer setting to enable logging of bad user objects.", + "cache": "Label for the developer setting to enable Service Worker caching of map files.", + "cacheDesc": "Description text explaining the cache setting behavior.", + "captureTrace": "Description text for the setting that captures _trace properties from the server.", + "clearWellKnowns": "Label for the button to re-fetch .well-known records from the server.", + "description": "Warning text at the top of the developer settings section advising non-developers not to change these settings.", + "gatewayComp": "Label for the developer setting to disable gateway compression.", + "reportSystem": "Label for the developer setting to enable the experimental reporting system.", + "logGateway": "Label for the developer setting to log received gateway events.", + "name": "Settings section title for developer settings.", + "traces": "Label for the developer setting to expose server traces." + }, + "deviceManage": { + "city": "Session info field showing the city. $1 is the city name.", + "continent": "Session info field showing the continent. $1 is the continent name.", + "country": "Session info field showing the country. $1 is the country name.", + "curSes": "Text shown for the current session indicating it cannot be logged out from this menu.", + "estimateWarn": "Warning text that the geolocation information shown is approximate and may be incorrect.", + "ip": "Session info field showing the last known IP address. $1 is the IP address.", + "last": "Session info field showing approximate last usage time. $1 is a date/time string.", + "latitude": "Session info field showing latitude. $1 is the latitude value.", + "logout": "Button label to log out a specific session/device.", + "longitude": "Session info field showing longitude. $1 is the longitude value.", + "manageDev": "Title for the expandable section to manage a specific device/session.", + "postal": "Session info field showing the postal code. $1 is the postal code.", + "region": "Session info field showing the region. $1 is the region name.", + "title": "Settings section title for managing active sessions." + }, + "discovery": "Label for the guild discovery feature.", + "dms": "Sidebar label for the Direct Messages section, shown above the DM channel list.", + "edit": "Generic edit button label.", + "emoji": { + "confirmDel": "Confirmation message when deleting an emoji.", + "found": { + "not": "Info text shown when an emoji belongs to a guild the user has not joined.", + "other": "Info text shown when an emoji is from one of the user's other guilds.", + "private": "Info text shown when the guild hosting an emoji cannot be found.", + "this": "Info text shown when an emoji is from the current guild." + }, + "from": "Label prefix text indicating which guild an emoji is from.", + "image:": "Label for the image file input when uploading an emoji.", + "join": "Button label to join the guild that hosts a particular emoji.", + "name:": "Label for the emoji name input field.", + "privateGuild": "Text indicating the emoji's source guild is private.", + "title": "Settings section title for the emoji management page.", + "upload": "Button label and dialog title for uploading emojis." + }, + "emojiSelect": "Label for the emoji picker input field.", + "errorReconnect": "Error message shown when the client cannot connect to the server. Uses Markdown (bold). $1 is the number of seconds until the next reconnection retry.", + "favoriteGifs": "Title for the favorited GIFs section in the GIF picker.", + "folder": { + "color": "Label for the folder color picker input.", + "create": "Button/dialog title for creating a new guild folder.", + "edit": "Button/dialog title for editing a guild folder.", + "name": "Label for the folder name input field." + }, + "form": { + "captcha": "Title/heading shown when a CAPTCHA challenge is required during form submission." + }, + "friends": { + "addfriend": "Tab button label to open the add-friend form.", + "addfriendpromt": "Label for the text input to add friends by their username.", + "requestsent": "Placeholder text shown in the input after a friend request is successfully sent.", + "all": "Tab button label to show all friends.", + "all:": "Heading text above the list of all friends.", + "blocked": "Tab button label to show blocked users.", + "blockedusers": "Heading text above the list of blocked users.", + "bu": "Short label for a blocked user entry.", + "discnotfound": "Error message when the discriminator part of a username is not provided or invalid.", + "friendlist": "Page title shown in the browser tab when viewing the friend list.", + "friends": "Label for the Friends button in the DM sidebar.", + "notfound": "Error message when a user is not found when trying to add a friend.", + "online": "Tab button label to show online friends.", + "online:": "Heading text above the list of online friends.", + "pending": "Tab button label to show pending friend requests.", + "pending:": "Heading text above the list of pending friend requests.", + "removeFriend": "Context menu item to remove a friend." + }, + "goThere": "Button label in the external link confirmation dialog to proceed to the URL.", + "goThereTrust": "Button label in the external link confirmation dialog to proceed and trust the domain permanently.", + "goingToURL": "Text in the external link confirmation dialog. $1 is the domain/hostname the link points to.", + "group": { + "createdm": "Button label to confirm creating a group DM.", + "edit": "Context menu item and dialog title for editing a group chat.", + "select": "Dialog title when selecting friends to add to a group DM." + }, "guild": { - "disoveryTitle": "$1 is the number of guilds discovered" + "COMMUNITY": "Guild join method option: users must apply to join.", + "disableInvites": "Label for the setting to disable invites for a guild.", + "DISCOVERABLE": "Guild join method option: guild appears in discovery.", + "INVITES_DISABLED": "Guild join method option: invite-only access.", + "adminMenu": { + "changePerms": "Label for the permission selector when searching for admins.", + "finding": "Status text shown while searching for guild admins.", + "ownName": "Label for the guild owner entry in the admin list.", + "owner": "Button label to find the guild owner.", + "permission": "Label for the permissions field in the admin finder." + }, + "report": "Context menu item to report a guild.", + "admins": "Button label to open the Find Admins feature.", + "all": "Notification setting: receive all notifications.", + "banReason": "Text showing the ban reason. $1 is the reason text.", + "bannedBy": "Label preceding the name of the user who issued a ban.", + "banner:": "Label for the guild banner image input.", + "bans": "Settings section title for the guild bans list.", + "boostMessage?": "Label for the setting to send a message when someone boosts the guild.", + "banId": "Button label to ban a user by their ID.", + "idSel": "Label for the ID input field when banning by ID.", + "community": "Settings section title for community guild settings.", + "confirmDelete": "Confirmation message when deleting a guild. $1 is the guild name.", + "confirmLeave": "Confirmation message when leaving a guild.", + "copyId": "Context menu item to copy the guild's ID.", + "create": "Button label to create a guild from scratch.", + "createFromTemplate": "Button label to create a guild from an existing template.", + "createNewTemplate": "Button label to create a new template from the current guild.", + "creating": "Status text shown while a guild is being created.", + "default": "Notification setting: use the guild default. $1 is the default setting name.", + "defaultNoti": "Description for the default notification settings option.", + "delete": "Button label to delete a guild.", + "description:": "Label for the guild description input field.", + "disoveryTitle": "Title of the guild discovery page. $1 is the number of guilds found. Uses {{PLURAL}} for entry/entries.", + "editingTemplate": "Dialog title when editing a template. $1 is the template name.", + "emptytext": "Message body shown when a guild has no channels.", + "emptytitle": "Message title shown when a guild has no channels.", + "guilds": "Title for the guilds list/section.", + "helpTips?": "Label for the setting to send helpful tips in the guild.", + "howJoin": "Heading text asking how people can join the guild.", + "icon:": "Label for the guild icon image input.", + "invites": "Settings section title for the guild invites list.", + "joinConfirm": "Confirmation dialog text when joining a guild. $1 is the guild name.", + "leave": "Context menu item to leave a guild.", + "loadingDiscovery": "Loading text shown while discovery results are being fetched.", + "makeInvite": "Button label to create a guild invite.", + "markRead": "Context menu item to mark a guild as read.", + "memberCount": "Text showing the guild member count. $1 is the number of members. Uses {{PLURAL}} for singular/plural.", + "mute": "Context menu item to mute a guild.", + "name:": "Label for the guild name input field.", + "nameNoMatch": "Error message when the typed guild name doesn't match for deletion confirmation.", + "noDelete": "Button label to cancel guild deletion.", + "noLeave": "Button label to cancel leaving a guild.", + "none": "Notification setting: no notifications.", + "notifications": "Settings section title for guild notification settings.", + "onlyMentions": "Notification setting: only receive notifications for @mentions.", + "overview": "Settings section title for guild overview.", + "region:": "Label for the guild region selector.", + "roles": "Settings section title for guild roles.", + "ruleId": "Label for the rules channel selector in guild settings.", + "selectnoti": "Label for the notification type selector.", + "sendrandomwelcome?": "Label for the setting to send random welcome messages when someone joins.", + "serverName": "Label for the guild name input when creating a guild.", + "settings": "Context menu item to open guild settings.", + "settingsFor": "Settings page title. $1 is the guild name.", + "splash": "Label for the discovery splash image input.", + "stickWelcomeReact?": "Label for the setting to prompt members to react with a sticker when someone joins.", + "systemSelect:": "Label for the system messages channel selector.", + "tempCreatedBy": "Label showing who created a template.", + "tempUseCount": "Text showing how many times a template has been used. $1 is the use count. Uses {{PLURAL}} for singular/plural.", + "template": "Label for the template link/code input when creating a guild from a template.", + "templateDesc": "Label for the template description input field.", + "templateName": "Label for the template name input field.", + "templateNameShort": "Error message when a template name is too short.", + "templateURL": "Text showing the template link. $1 is the URL.", + "templates": "Settings section title for guild templates.", + "templcateMetaDesc": "Description text explaining what a guild template includes and excludes.", + "topic:": "Label for the guild topic input field.", + "unknownRole": "Placeholder text for an unresolved/unknown role mention.", + "viewTemplate": "Button label to view a template's details.", + "yesDelete": "Button label to confirm guild deletion.", + "yesLeave": "Button label to confirm leaving a guild." + }, + "hideBlockedMessages": "Text shown when messages from a blocked user are visible, click to hide them.", + "home": { + "icon": "Alt text for an instance's icon image on the home/login page. $1 is the instance name.", + "uptimeStats": "Multiline text showing instance uptime statistics. $1 is all-time uptime %, $2 is weekly uptime %, $3 is daily uptime %.", + "warnOffiline": "Warning message shown when the selected instance is offline." + }, + "htmlPages": { + "addBot": "Button label to add a bot to a guild on the OAuth2 authorization page.", + "alreadyHave": "Link text on the registration page for users who already have an account.", + "box3description": "Description text on the home page for the 'Contribute' section.", + "box3title": "Title on the home page for the 'Contribute' section.", + "compatableInstances": "Label above the list of Harmony-compatible instances on the login/register page.", + "createAccount": "Button label and title for the account creation form.", + "dobField": "Label for the date of birth input field on the registration form.", + "emailField": "Label for the email input field on login and registration forms.", + "idpermissions": "Text shown on the bot authorization page above the list of permissions the bot will have.", + "instanceField": "Label for the instance URL selector on the login/register page.", + "loaddesc": "Subtitle text shown below the loading indicator.", + "loadingText": "Main text shown during application loading.", + "loginButton": "Button label for the login form submit button.", + "noAccount": "Link text on the login page for users who don't have an account, and text shown on invite/template pages when not logged in.", + "pw2Field": "Label for the password confirmation input on the registration form.", + "pwField": "Label for the password input field on login and registration forms.", + "switchaccounts": "Button label to switch between multiple accounts.", + "trans": "Button label linking to the translation page.", + "transDesc": "Description text for the translation contribution section.", + "transTitle": "Title for the translation contribution section.", + "userField": "Label for the username input field on the registration form.", + "welcomeJank": "Welcome heading shown on the home/landing page." + }, + "incorrectURLS": "Error message shown when an instance returns incorrect API URLs. Uses Markdown for headings and links. Asks the user if Fermi should try to fix the error automatically.", + "instInfo": "Button label to open the instance information dialog.", + "instanceInfo": { + "contact": "Link text to email the instance administrators.", + "frontPage": "Markdown link to the instance's front page. $1 is the URL. Uses Markdown.", + "name": "Settings section title for instance information.", + "publicUrl": "Markdown link to the instance's public URL. $1 is the URL. Uses Markdown.", + "tosPage": "Markdown link to the instance's Terms of Service page. $1 is the URL. TOS = Terms of Service. Uses Markdown." + }, + "instanceStats": { + "members": "Instance statistics line showing total members. $1 is the member count.", + "messages": "Instance statistics line showing total messages. $1 is the message count.", + "name": "Title for the instance statistics dialog. $1 is the instance name.", + "servers": "Instance statistics line showing total guilds. $1 is the guild count.", + "users": "Instance statistics line showing total registered users. $1 is the user count." + }, + "interactions": { + "ephemeralDismiss": "Button label to dismiss an ephemeral (only-you) interaction message.", + "failed": "Status text shown when a bot interaction fails.", + "nonsence": "Error message when the server sends an unknown component type. $1 is the unknown type number.", + "notImpl": "Error message when a component type is not yet implemented. $1 is the component type number.", + "onlyYou": "Text shown above ephemeral messages indicating only the current user can see it.", + "replyline": "Text shown in the reply line for interaction responses.", + "started": "Status text shown while an interaction is being processed.", + "worked": "Status text shown when an interaction succeeds." }, + "invite": { + "accept": "Button label to accept an invite.", + "alreadyJoined": "Text shown when the user has already joined the invited guild.", + "channel:": "Label showing which channel an invite is for.", + "createInvite": "Button label to create/generate an invite link.", + "createdAt": "Text showing when an invite was created. $1 is the formatted date.", + "expireAfter": "Label for the invite expiration time selector.", + "expires": "Text showing when an invite expires. $1 is the expiration date/time or 'Never'.", + "forChannel": "Text showing which channel an invite leads to. $1 is the channel name.", + "inviteLinkCode": "Label for the invite link/code text input.", + "inviteMaker": "Settings section title for the invite creation tool.", + "invitedBy": "Text on the invite page. $1 is the username of the person who invited.", + "joinUsing": "Button/tab label to join a guild using an invite code.", + "loginOrCreateAccount": "Link text on the invite page to login or create an account.", + "longInvitedBy": "Full invite text. $1 is the inviter's username, $2 is the guild name.", + "maxUses": "Text showing the maximum number of times an invite can be used. $1 is the max uses count.", + "never": "Option text for invites that never expire.", + "noAccount": "Text on invite page telling user to create an account to accept.", + "notFound": "Error message when an invite code is invalid or expired.", + "subtext": "Subtitle text below an invite showing the destination. $1 is the channel name, $2 is the guild name.", + "used": "Text showing how many times an invite has been used. $1 is the use count. Uses {{PLURAL}} for singular/plural." + }, + "inviteOptions": { + "12h": "Invite expiration option: 12 hours.", + "1d": "Invite expiration option: 1 day.", + "1h": "Invite expiration option: 1 hour.", + "30d": "Invite expiration option: 30 days.", + "30m": "Invite expiration option: 30 minutes.", + "6h": "Invite expiration option: 6 hours.", + "7d": "Invite expiration option: 7 days.", + "limit": "Invite max-uses option showing the number of allowed uses. $1 is the number. Uses {{PLURAL}} for singular/plural.", + "never": "Invite expiration option: never expires.", + "noLimit": "Invite max-uses option: no usage limit.", + "title": "Dialog title for the invite creation dialog." + }, + "jankInfo": "Button label to open the client information dialog in settings.", + "leaveGuild": "Context menu item to leave a guild.", + "leaving": "Dialog title shown when clicking an external link that will navigate away from Harmony.", + "loaded": "Status text shown on the loading screen when the client has finished loading.", "localuser": { - "description": "This object contains strings related to the logged in user, which is mostly the settings for the user", - "sillyDeleteConfirmPhrase": "This is a silly phrase, do not translate this directly, make a joke that is easy to type in your language", - "updateSettings": "Title of a page that allows you to adjust the update settings" + "2faCode:": "Label for the 2FA code input field in security settings. 2FA = Two-Factor Authentication.", + "2faCodeGive": "Text showing the user's TOTP secret for 2FA setup. $1 is the secret key. TOTP = Time-based One-Time Password.", + "2faDisable": "Button label to disable Two-Factor Authentication.", + "2faEnable": "Button label to enable Two-Factor Authentication.", + "CheckUpdate": "Button label to check for application updates.", + "PasswordsNoMatch": "Error message when password and confirmation password don't match.", + "TOSURL": "Label for the Terms of Service URL field in instance management.", + "VoiceWarning": "Warning message shown when enabling the experimental voice feature.", + "accentColor": "Label for the theme accent color picker in appearance settings.", + "accountSettings": "Settings section title for account settings.", + "addBot": "Button label to add a bot to an application.", + "addStatus": "Button label to set a custom status.", + "advancedBot": "Button label to open advanced bot settings.", + "appName": "Label for the application name input field in the developer portal.", + "areYouSureDelete": "Confirmation text for account deletion. $1 is the confirmation phrase the user must type.", + "badCode": "Error message when an invalid 2FA code is entered.", + "badPassword": "Error message when an incorrect password is entered.", + "botAvatar": "Label for the bot avatar image input.", + "botInviteCreate": "Title for the bot invite creator section.", + "botUsername": "Label for the bot username input field.", + "changeDiscriminator": "Button label to change the user's discriminator (the number after the username).", + "changeEmail": "Button label to change the user's email address.", + "changePassword": "Button label to change the user's password.", + "changeUsername": "Button label to change the user's username.", + "clearCache": "Button label to clear the application cache.", + "confirmAddBot": "Confirmation message when adding a bot to an application (irreversible action).", + "confirmReset": "Confirmation message when resetting a bot token.", + "confuseNoBot": "Error message shown when an application doesn't have a bot associated with it.", + "connections": "Settings section title for managing external connections/linked accounts.", + "createApp": "Button label to create a new application in the developer portal.", + "customSound": "Option name for a custom notification sound.", + "customStatusWarn": "Warning text that Harmony does not currently display custom statuses.", + "deleteAccount": "Settings section title for account deletion.", + "deleteAccountButton": "Button label to initiate account deletion.", + "description": "Label for the application description text field in the developer portal.", + "devPortal": "Settings section title for the developer portal.", + "disableConnection": "Text shown when a connection type has been disabled by the server.", + "editingBot": "Dialog title when editing a bot. $1 is the bot's username.", + "install": "Settings section title for the PWA install option.", + "installDesc": "Description text explaining what installing Fermi as a PWA does.", + "installJank": "Button label to install Fermi as a Progressive Web App.", + "language": "Label for the language selector in settings.", + "manageBot": "Button label to open the bot management interface.", + "manageInstance": "Settings section title for instance management (admin only).", + "mustTypePhrase": "Instruction text telling the user they must type a specific phrase to delete their account.", + "newDiscriminator": "Label for the new discriminator input field.", + "newEmail:": "Label for the new email input field.", + "newPassword:": "Label for the new password input field.", + "newUsername": "Label for the new username input field.", + "noToken": "Error message when the bot token cannot be saved because it's unknown.", + "noUpdates": "Message shown when no application updates are available.", + "notisound": "Label for the notification sound selector.", + "oldPassword:": "Label for the current/old password input field.", + "password:": "Label for the password input field in account change dialogs.", + "privacyPolcyURL": "Label for the privacy policy URL field in instance management.", + "appID": "Text showing the application ID. $1 is the ID.", + "showSecret": "Button label to reveal the client secret.", + "clientSecret": "Text showing the client secret. $1 is the secret value.", + "secret": "Label for the secret field.", + "publicAvaliable": "Label for the checkbox to make a bot publicly inviteable.", + "refreshPage": "Text telling the user to refresh the page to apply changes.", + "requireCode": "Label for the checkbox requiring OAuth2 code grant to invite a bot.", + "resetToken": "Button label to reset a bot's token.", + "saveToken": "Label for the checkbox to save the bot token to local storage.", + "setUp2fa": "Dialog title for 2FA setup. 2FA = Two-Factor Authentication.", + "setUp2faInstruction": "Instruction text explaining how to set up 2FA with a TOTP app. TOTP = Time-based One-Time Password.", + "settings": "Main settings page title.", + "sillyDeleteConfirmPhrase": "{{doc-important|This is a silly phrase the user must type to confirm account deletion. Do not translate this directly; make a joke that is easy to type in your language.}}", + "soundTooLarge": "Error message when an uploaded notification sound file is too large.", + "status": "Settings section title for user status settings.", + "team:": "Label for the team field in application settings.", + "theme:": "Label for the theme selector.", + "themesAndSounds": "Settings section title for themes and sounds.", + "tokenDisplay": "Text showing a bot token. $1 is the token value.", + "trace": "Settings section title for viewing server traces.", + "trusted": "Settings section title for managing trusted domains.", + "trustedDesc": "Description text explaining what trusted domains are and how they work. Uses Markdown (bold/italic).", + "updateSettings": "Settings section title for update/service worker settings.", + "updatesYay": "Message shown when application updates are found.", + "userSettings": "Settings section title for the user's public profile." + }, + "login": { + "allGood": "Status text shown when an instance URL has been validated successfully.", + "checking": "Status text shown while verifying an instance URL.", + "enterPAgain": "Label for the password confirmation input on the password reset form.", + "invalid": "Error message when an instance URL is invalid.", + "login": "Login form title and submit button label.", + "newPassword": "Label for the new password input on the password reset form.", + "pasteInfo": "Label for the recovery link input on the password reset form.", + "recover": "Link text to navigate to the forgotten password page.", + "recovery": "Title for the forgotten/reset password page.", + "waiting": "Status text shown before instance URL validation begins." + }, + "logout": { + "error": { + "cancel": "Button label to cancel logout after an error.", + "cont": "Button label to force remove the account after a logout error.", + "desc": "Text shown when logout fails, asking if the user wants to remove the account locally.", + "title": "Dialog title when a logout error occurs." + }, + "logout": "Button label to log out." + }, + "manageInstance": { + "AreYouSureStop": "Confirmation message when stopping an instance.", + "TokenFormats": { + "JSON": "Token output format option: JSON formatted.", + "URLs": "Token output format option: as invite links.", + "plain": "Token output format option: plain text." + }, + "clientURL": "Label for the client URL input when generating registration tokens.", + "copy": "Button label to copy generated tokens to clipboard.", + "count": "Label for the token count input (how many tokens to generate).", + "create": "Button label to generate the registration tokens.", + "createTokens": "Button label and section title for the registration token creation tool.", + "format": "Label for the token output format selector.", + "genericType": "Registration token type option: generic type.", + "length": "Label for the token length input.", + "regType": "Label for the registration token link type selector.", + "stop": "Button label to stop the instance." }, + "media": { + "artist": "Media info field showing the artist. $1 is the artist name.", + "composer": "Media info field showing the composer. $1 is the composer name.", + "download": "Button label to download a media file.", + "length": "Media info showing duration. $1 is the number of minutes, $2 is the number of seconds.", + "loading": "Text shown while media is loading.", + "moreInfo": "Button label to show more information about a media file.", + "notFound": "Error message when a media file cannot be found." + }, + "member": { + "ban": "Dialog title when banning a member. $1 is the username, $2 is the guild name.", + "kick": "Dialog title and context menu item when kicking a member. $1 is the username, $2 is the guild name.", + "nick:": "Label for the nickname input field.", + "persist": "Label for the option to only delete the user (not their messages) when banning.", + "reason:": "Label for the reason input field when banning/kicking.", + "timeout": "Dialog title when timing out a member. $1 is the username.", + "timeoutTime": "Label for the timeout duration selector." + }, + "message": { + "messages": "Link text showing the number of messages in a thread. $1 is the message count. Uses {{PLURAL}} for singular/plural.", + "andMore": "Text appended to a list of reaction users indicating there are more. $1 is the truncated list.", + "attached": "Short text indicating a message contains an attachment (shown in notifications/previews).", + "delete": "Context menu item to delete a message.", + "report": "Context menu item to report a message.", + "deleted": "Username placeholder text for a deleted message.", + "edit": "Context menu item to edit a message.", + "edited": "Text appended to edited messages showing they were modified.", + "fullMessage": "Label shown above the full message content in a detail view.", + "pin": "System message shown when a user pins a message. $1 is used as a split marker for the username.", + "thread": "System message shown when a user creates a thread. $1 is used as a split marker for the username, $2 for the thread name.", + "reactedWith": "Tooltip text showing what emoji was used to react. $1 is the emoji name.", + "reactionAdd": "Context menu item to add a reaction to a message.", + "createThread": "Context menu item to create a thread from a message.", + "threadOptions": "Dialog title for thread creation options.", + "reactions": "Context menu item to view all reactions on a message.", + "reactionsTitle": "Dialog title for the reactions viewer.", + "retry": "Context menu item to retry sending a failed message.", + "viewrest": "CSS-injected text for a button to view the rest of a long message." + }, + "report": { + "back": "Button label to go back to the previous step in the report flow.", + "next": "Button label to proceed to the next step in the report flow.", + "cancel": "Button label to cancel the report.", + "submit": "Button label to submit the report.", + "blockUser": "Button label to block the reported user.", + "timeout": "Button label to timeout the reported member.", + "summary": "Label for the report summary section." + }, + "messageLink": "Display text for a message link embed showing which channel it's from. $1 is the channel name.", + "muteDuration": "Label for the mute duration selector when muting a channel.", + "nevermind": "Generic button label to cancel an action.", + "no": "Generic 'No' button label.", + "noEmojiFont": "Option label to use the system's built-in emoji font instead of a custom one.", + "noMessages": "Placeholder text shown in an empty channel with no messages.", + "noPins": "Placeholder text shown when a channel has no pinned messages.", + "noStickers": "Placeholder text shown when no stickers are available to use.", + "notiClump": "Notification body text when multiple notifications are grouped. $1 is the notification count, $2 is the channel name.", + "notiVolume": "Label for the notification volume slider.", + "otherAt": "Date/time format for messages older than yesterday. $1 is the formatted date, $2 is the formatted time.", "permissions": { "descriptions": { - "CREATE_GUILD_EXPRESSIONS": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear.", - "MANAGE_GUILD_EXPRESSIONS": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear.", - "DEAFEN_MEMBERS": "To deafen means to temporarily disable your ability to hear any audio from a voice channel, while also muting your own microphone so others cannot hear you. Unlike muting, which only stops others from hearing you, deafening affects both incoming and outgoing audio, completely disabling your participation in the voice channel's audio.", - "USE_SOUNDBOARD": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear.", - "USE_EXTERNAL_SOUNDS": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear." + "ADMINISTRATOR": "Permission description for the Administrator permission. Warns about its danger.", + "MANAGE_GUILD": "Permission description for managing guild settings.", + "VIEW_AUDIT_LOG": "Permission description for viewing the audit log.", + "VIEW_CREATOR_MONETIZATION_ANALYTICS": "Permission description for viewing monetization analytics.", + "VIEW_GUILD_INSIGHTS": "Permission description for viewing guild insights/statistics.", + "BYPASS_SLOWMODE": "Permission description for bypassing channel slowmode.", + "MENTION_EVERYONE": "Permission description for mentioning @everyone.", + "MANAGE_NICKNAMES": "Permission description for managing other members' nicknames.", + "PIN_MESSAGES": "Permission description for pinning messages.", + "SEND_POLLS": "Permission description for sending polls.", + "MANAGE_MESSAGES": "Permission description for managing (deleting) other users' messages.", + "MANAGE_THREADS": "Permission description for managing threads.", + "MANAGE_CHANNELS": "Permission description for managing channels.", + "MANAGE_ROLES": "Permission description for managing roles.", + "MANAGE_WEBHOOKS": "Permission description for managing webhooks.", + "CREATE_EVENTS": "Permission description for creating scheduled events.", + "MANAGE_EVENTS": "Permission description for managing events.", + "CREATE_GUILD_EXPRESSIONS": "Permission description for creating expressions. The soundboard is a feature that lets you play short audio clips in voice channels.", + "MANAGE_GUILD_EXPRESSIONS": "Permission description for managing expressions. The soundboard is a feature that lets you play short audio clips in voice channels.", + "MODERATE_MEMBERS": "Permission description for timing out guild members.", + "KICK_MEMBERS": "Permission description for kicking members.", + "BAN_MEMBERS": "Permission description for banning members.", + "MOVE_MEMBERS": "Permission description for moving members between voice channels.", + "MUTE_MEMBERS": "Permission description for muting members in voice channels.", + "DEAFEN_MEMBERS": "Permission description for deafening members. To deafen means to disable both incoming and outgoing audio in a voice channel.", + "CHANGE_NICKNAME": "Permission description for changing own nickname.", + "VIEW_CHANNEL": "Permission description for viewing text channels.", + "READ_MESSAGE_HISTORY": "Permission description for reading message history.", + "ADD_REACTIONS": "Permission description for adding reactions.", + "SEND_MESSAGES": "Permission description for sending messages.", + "SEND_MESSAGES_IN_THREADS": "Permission description for sending messages in threads.", + "SEND_TTS_MESSAGES": "Permission description for sending text-to-speech messages. TTS = Text-To-Speech.", + "USE_EXTERNAL_EMOJIS": "Permission description for using emojis from other guilds.", + "USE_EXTERNAL_STICKERS": "Permission description for using stickers from other guilds.", + "EMBED_LINKS": "Permission description for auto-embedding links.", + "ATTACH_FILES": "Permission description for attaching files.", + "SEND_VOICE_MESSAGES": "Permission description for sending voice messages.", + "CREATE_INSTANT_INVITE": "Permission description for creating invites.", + "CREATE_PUBLIC_THREADS": "Permission description for creating public threads.", + "CREATE_PRIVATE_THREADS": "Permission description for creating private threads.", + "CONNECT": "Permission description for connecting to voice channels.", + "SPEAK": "Permission description for speaking in voice channels.", + "USE_VAD": "Permission description for Voice Activity Detection. VAD = Voice Activity Detection, which allows speaking without pressing a Push-To-Talk key.", + "STREAM": "Permission description for streaming in voice channels.", + "USE_SOUNDBOARD": "Permission description for using the soundboard. The soundboard lets you play short audio clips in voice channels.", + "USE_EXTERNAL_SOUNDS": "Permission description for using soundboard sounds from other guilds. The soundboard lets you play short audio clips in voice channels.", + "PRIORITY_SPEAKER": "Permission description for being a priority speaker in voice channels.", + "REQUEST_TO_SPEAK": "Permission description for requesting to speak in stage channels.", + "USE_EMBEDDED_ACTIVITIES": "Permission description for using embedded activities.", + "USE_APPLICATION_COMMANDS": "Permission description for using application/slash commands.", + "USE_EXTERNAL_APPS": "Permission description for using external applications publicly." }, "readableNames": { - "DEAFEN_MEMBERS": "To deafen means to temporarily disable your ability to hear any audio from a voice channel, while also muting your own microphone so others cannot hear you. Unlike muting, which only stops others from hearing you, deafening affects both incoming and outgoing audio, completely disabling your participation in the voice channel's audio.", - "USE_SOUNDBOARD": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear." + "ADD_REACTIONS": "Permission name for adding reactions to messages.", + "ADMINISTRATOR": "Permission name for the administrator permission.", + "ATTACH_FILES": "Permission name for attaching files.", + "BAN_MEMBERS": "Permission name for banning members.", + "BYPASS_SLOWMODE": "Permission name for bypassing slowmode.", + "CHANGE_NICKNAME": "Permission name for changing own nickname.", + "CONNECT": "Permission name for connecting to voice channels.", + "CREATE_EVENTS": "Permission name for creating events.", + "CREATE_GUILD_EXPRESSIONS": "Permission name for creating expressions (emojis, stickers, soundboard sounds).", + "CREATE_INSTANT_INVITE": "Permission name for creating invites.", + "CREATE_PRIVATE_THREADS": "Permission name for creating private threads.", + "CREATE_PUBLIC_THREADS": "Permission name for creating public threads.", + "DEAFEN_MEMBERS": "Permission name for deafening members. To deafen means to disable both incoming and outgoing audio in a voice channel.", + "EMBED_LINKS": "Permission name for embedding links.", + "KICK_MEMBERS": "Permission name for kicking members.", + "MANAGE_CHANNELS": "Permission name for managing channels.", + "MANAGE_EVENTS": "Permission name for managing events.", + "MANAGE_GUILD": "Permission name for managing the guild.", + "MANAGE_GUILD_EXPRESSIONS": "Permission name for managing expressions (emojis, stickers, soundboard sounds).", + "MANAGE_MESSAGES": "Permission name for managing messages.", + "MANAGE_NICKNAMES": "Permission name for managing nicknames.", + "MANAGE_ROLES": "Permission name for managing roles.", + "MANAGE_THREADS": "Permission name for managing threads.", + "MANAGE_WEBHOOKS": "Permission name for managing webhooks.", + "MENTION_EVERYONE": "Permission name for mentioning everyone.", + "MODERATE_MEMBERS": "Permission name for timing out members.", + "MOVE_MEMBERS": "Permission name for moving members between voice channels.", + "MUTE_MEMBERS": "Permission name for muting members in voice channels.", + "PIN_MESSAGES": "Permission name for pinning messages.", + "PRIORITY_SPEAKER": "Permission name for priority speaker in voice channels.", + "READ_MESSAGE_HISTORY": "Permission name for reading message history.", + "REQUEST_TO_SPEAK": "Permission name for requesting to speak in stage channels.", + "SEND_MESSAGES": "Permission name for sending messages.", + "SEND_MESSAGES_IN_THREADS": "Permission name for sending messages in threads.", + "SEND_POLLS": "Permission name for creating polls.", + "SEND_TTS_MESSAGES": "Permission name for sending Text-To-Speech messages. TTS = Text-To-Speech.", + "SEND_VOICE_MESSAGES": "Permission name for sending voice messages.", + "SPEAK": "Permission name for speaking in voice channels.", + "STREAM": "Permission name for streaming video in voice channels.", + "USE_APPLICATION_COMMANDS": "Permission name for using application/slash commands.", + "USE_EMBEDDED_ACTIVITIES": "Permission name for using embedded activities.", + "USE_EXTERNAL_APPS": "Permission name for using external applications.", + "USE_EXTERNAL_EMOJIS": "Permission name for using emojis from other guilds.", + "USE_EXTERNAL_SOUNDS": "Permission name for using soundboard sounds from other guilds. The soundboard lets you play short audio clips in voice channels.", + "USE_EXTERNAL_STICKERS": "Permission name for using stickers from other guilds.", + "USE_SOUNDBOARD": "Permission name for using the soundboard. The soundboard lets you play short audio clips in voice channels.", + "USE_VAD": "Permission name for Voice Activity Detection. VAD = Voice Activity Detection, allowing speaking without Push-To-Talk.", + "VIEW_AUDIT_LOG": "Permission name for viewing the audit log.", + "VIEW_CHANNEL": "Permission name for viewing channels.", + "VIEW_CREATOR_MONETIZATION_ANALYTICS": "Permission name for viewing creator monetization analytics.", + "VIEW_GUILD_INSIGHTS": "Permission name for viewing guild insights." } }, - "readableName": "{{doc-important|This should be the name of the language you are translating into, in that language. Please DO NOT translate this into your language’s word for “English”!}}", + "pinMessage": "Context menu item to pin a message.", + "profile": { + "bio": "Label for the about-me section on a user's profile.", + "joined": "Profile info showing when the account was created. $1 is the formatted date.", + "joinedMember": "Profile info showing when the user joined a specific guild. $1 is the guild name, $2 is the formatted date.", + "mut": "Tab label for the mutual guilds section on a user's profile.", + "mutFriends": "Tab label for the mutual friends section on a user's profile.", + "permInfo": "Tab label for the permissions section on a user's profile.", + "userInfo": "Tab label for the user info section on a user's profile.", + "notes": "Tab label for the user notes section on a user's profile." + }, + "profileColor": "Label for the profile accent color picker.", + "pronouns": "Label for the pronouns input field in profile settings.", + "readableName": "{{doc-important|This should be the name of the language you are translating into, in that language. Please DO NOT translate this into your language's word for \"English\"!}}", + "recentEmoji": "Title for the recent/frequently used emojis section in the emoji picker.", "register": { - "agreeTOS": "uses MarkDown" + "DOBError": "Registration form field label with error. $1 is the error message for date of birth.", + "agreeTOS": "Checkbox label for agreeing to the Terms of Service. $1 is the TOS URL. Uses Markdown for the link. TOS = Terms of Service.", + "emailError": "Registration form field label with error. $1 is the error message for email.", + "noTOS": "Checkbox label shown when the instance has no Terms of Service.", + "passwordError:": "Registration form field label with error. $1 is the error message for password.", + "register": "Button label and page title for the registration form.", + "tos": "Error message when the user hasn't agreed to the Terms of Service. TOS = Terms of Service.", + "usernameError": "Registration form field label with error. $1 is the error message for username.", + "other": "Option label to connect to a different (non-listed) instance.", + "instURL": "Label for the custom instance URL input field." + }, + "remove": "Generic remove button label.", + "renderJoinAvatars": "Label for the setting to display avatars for new member join messages.", + "reply": "Context menu item to reply to a message.", + "replyingTo": "Text shown above the message input indicating who is being replied to. $1 is the username.", + "retrying": "Status text shown while retrying a failed connection.", + "role": { + "color": "Label for the primary role color picker.", + "colors": { + "name": "Label for the role color scheme selector.", + "one": "Color scheme option: single color (monochrome).", + "two": "Color scheme option: two colors (bicolor/gradient).", + "three": "Color scheme option: three colors (tricolor/gradient).", + "secondColor": "Label for the second color picker in a multi-color role.", + "thirdColor": "Label for the third color picker in a multi-color role." + }, + "confirmDelete": "Confirmation message when deleting a role. $1 is the role name.", + "copyId": "Context menu item to copy a role's ID.", + "delete": "Button label and context menu item to delete a role.", + "deleting": "Status text shown while a role is being deleted.", + "displaySettings": "Button label to open role display settings (hoisting, color, icon).", + "hoisted": "Label for the setting to display role members separately in the member list.", + "mentionable": "Label for the setting to allow anyone to mention/ping the role.", + "name": "Label for the role name input field.", + "perms": "Section title for role permissions (shown when editing channel overrides).", + "remove": "Context menu item to remove a role from a user.", + "roleEmoji": "Label for the role emoji input field.", + "roleFileIcon": "Label for the role icon image input field.", + "roles": "Section title for roles list (shown in guild settings)." + }, + "search": { + "back": "Button label to go to the previous page of search results.", + "new": "Button label to sort search results by newest first.", + "next": "Button label to go to the next page of search results.", + "nofind": "Message shown when no search results are found.", + "old": "Button label to sort search results by oldest first.", + "page": "Text showing the current search results page number. $1 is the page number.", + "search": "Placeholder text for the search input field.", + "settings": "Button label and dialog title for search filter settings.", + "before": "Label for the 'before date' filter in search settings.", + "after": "Label for the 'after date' filter in search settings.", + "includensfw": "Label for the checkbox to include NSFW channels in search. NSFW = Not Safe For Work.", + "authors": "Label for the authors filter in search settings.", + "mentions": "Label for the mentions filter in search settings.", + "channels": "Label for the channels filter in search settings." + }, + "searchGifs": "Placeholder text for the GIF search input. $1 is the GIF provider name (e.g. 'Tenor').", + "settings": { + "clear": "Button label to clear/remove an uploaded image.", + "img": "Button label to upload an image.", + "save": "Button label to save changes in settings.", + "unsaved": "Warning text shown when the user has unsaved changes.", + "updates": { + "serviceWorkerMode": { + "disabled": "Service Worker mode option: disabled/off.", + "enabled": "Service Worker mode option: enabled/on.", + "offlineOnly": "Service Worker mode option: only cache for offline use.", + "title": "Label for the Service Worker mode selector.", + "unregistered": "Service Worker mode option: fully disabled including media cache." + } + } + }, + "showBlockedMessages": "Text shown to reveal hidden messages from a blocked user. $1 is the number of blocked messages. Uses {{PLURAL}} for singular/plural.", + "spoiler": "Label for the spoiler button/overlay on spoiler-tagged content.", + "sticker": { + "confirmDel": "Confirmation message when deleting a sticker.", + "del": "Button label to delete a sticker.", + "desc": "Label for the sticker description input field.", + "errEmjMust": "Error message when no emoji is paired with a sticker upload.", + "errFileMust": "Error message when no image is included for a sticker upload.", + "image": "Label for the sticker image file input.", + "name": "Label for the sticker name input field.", + "tags": "Label for the associated emoji input for a sticker.", + "title": "Settings section title for sticker management.", + "upload": "Button label and dialog title for uploading stickers." + }, + "submit": "Generic submit button label used in forms.", + "switchAccounts": "Button label to switch between multiple logged-in accounts.", + "todayAt": "Date format for messages sent today. $1 is the formatted time.", + "trace": { + "totalTime": "Trace timing display. $1 is the time in milliseconds, $2 is the trace name.", + "traces": "Trace entry display. $1 is the trace name, $2 is the time in milliseconds, $3 is additional info." + }, + "typing": "Typing indicator text. $1 is the number of people typing, $2 is the names of the people typing separated by commas. Uses {{PLURAL}} for is/are.", + "unableToConnect": "Error message shown when the client cannot connect to the Harmony server.", + "unableToPin": "Error message shown when pinning/unpinning a message fails.", + "sbWarns": { + "regi": "Warning shown when registering on a Spacebar instance, recommending Harmony instead. Asks for confirmation to continue.", + "in": "Warning shown once when logging into a Spacebar instance, recommending Harmony instead." + }, + "connections": { + "since": "Text showing when the user became a member of a connected service. $1 is the formatted date.", + "display": "Label for the toggle to display a connection on the user's profile.", + "delete": "Button label to delete/remove a connection.", + "sure": "Confirmation dialog title when deleting a connection.", + "sureDesc": "Confirmation dialog description text warning that removing a connection is irreversible." + }, + "unpinMessage": "Context menu item to unpin a message.", + "updateAv": "Notification text indicating application updates are available.", + "uploadBanner": "Label for the banner image upload input.", + "uploadFilesText": "Placeholder text in the file upload area.", + "uploadPfp": "Label for the avatar/profile picture upload input.", + "useTemplate": "Text on the template page indicating which template will be used. $1 is the template name.", + "useTemplateButton": "Button label to use a template to create a guild.", + "usedFermi": "Context menu item text indicating a message was sent via the Fermi client.", + "user": { + "report": "Context menu item to report a user.", + "deleted": "Placeholder name shown for a deleted user.", + "reportApp": "Context menu item to report an application/bot.", + "addRole": "Context menu item to add roles to a member.", + "ban": "Context menu item to ban a member.", + "block": "Context menu item to block a user.", + "confirmInstBan": "Confirmation message when instance-banning a user. $1 is the username.", + "copyId": "Context menu item to copy a user's ID.", + "dnd": "User status option: Do Not Disturb.", + "editNick": "Context menu item to edit a member's nickname.", + "editServerProfile": "Context menu item and settings title to edit the guild-specific profile.", + "friendReq": "Context menu item to send a friend request.", + "idle": "User status: Idle.", + "instanceBan": "Context menu item to instance-ban a user (admin action).", + "invisible": "User status option: Invisible (appear offline).", + "kick": "Context menu item to kick a member.", + "message": "Context menu item to send a direct message to a user.", + "nick": { + "foe": "Context menu item to set a nickname for a blocked user.", + "friend": "Context menu item to set a nickname for a friend.", + "stalker": "Context menu item to set a nickname for someone who sent a friend request.", + "stalking": "Context menu item to set a nickname for someone you sent a friend request to." + }, + "offline": "User status: Offline.", + "online": "User status: Online.", + "remove": "Context menu item to remove a user (from a role list).", + "removeRole": "Context menu item to remove roles from a member.", + "sendMessage": "Placeholder text for the message input on a user's profile popup. $1 is the username.", + "timeout": "Context menu item to timeout a member.", + "unTimeout": "Context menu item to remove a timeout from a member.", + "unban": "Button label to unban a user. $1 is the username.", + "unblock": "Context menu item to unblock a user.", + "viewProfile": "Context menu item to view a user's full profile." + }, + "userping": { + "resolving": "Placeholder text shown while resolving a user mention.", + "unknown": "Placeholder text for an unresolved/unknown user mention." + }, + "vc": { + "joinForStream": "Text telling users to join the voice channel to watch a stream.", + "joiningStream": "Status text shown while connecting to watch a stream.", + "joinstream": "Button label to start watching a user's stream.", + "leavestream": "Button label to stop watching a stream.", + "stopstream": "Button label to stop your own stream." + }, + "webauth": { + "addKey": "Button label to add a new security key for WebAuthn authentication.", + "keyname": "Label for the security key name input field.", + "manage": "Button label to open the security key management interface." }, - "typing": "$1 is the number of people typing and $2 is the names of the people typing separated by commas", + "webhook": "Label displayed next to a webhook message author to indicate it is a webhook.", "webhooks": { - "sillyDefaults": "{{doc-important|This is just a list of silly default names for webhooks, do not feel the need to translate dirrectly, and no need for the same count}}" + "EnterWebhookName": "Dialog title prompting the user to name a new webhook.", + "areYouSureDelete": "Confirmation message when deleting a webhook. $1 is the webhook name.", + "avatar": "Label for the webhook avatar section.", + "base": "Settings section title for webhooks.", + "channel": "Label for the webhook output channel selector.", + "copyURL": "Button label to copy the webhook's URL.", + "createdAt": "Text showing when a webhook was created. $1 is the formatted date.", + "createdBy": "Label showing who created the webhook.", + "deleteWebhook": "Button label to delete a webhook.", + "name": "Label for the webhook name input field.", + "newWebHook": "Button label to create a new webhook.", + "notFound": "Text shown when the webhook creator is no longer in the guild.", + "sillyDefaults": "{{doc-important|This is just a list of silly default names for webhooks, do not feel the need to translate directly, and no need for the same count.}}", + "token": "Text showing the webhook token. $1 is the token value. Uses Markdown (backticks for code).", + "type": "Text showing the webhook type. $1 is the type name.", + "type1": "Webhook type name: Incoming (receives data from external sources).", + "type2": "Webhook type name: Channel follower (cross-posts from another channel).", + "type3": "Webhook type name: Application (managed by a bot/app).", + "url": "Text showing the full webhook URL. $1 is the URL. Uses Markdown (backticks for code)." }, - "welcomeMessages": "These are welcome messages, they are meant to be silly, you do not need to directly translated them, there may even be a different count of messages, but only have the username once per message." + "welcomeMessages": "{{doc-important|These are welcome messages sent when someone joins a guild. They are meant to be silly. You do not need to translate them directly; there may be a different count of messages, but only include the username ($1) once per message.}}", + "widget": "Settings section title for the guild widget.", + "widgetEnabled": "Label for the checkbox to enable/disable the guild widget.", + "yes": "Generic 'Yes' button label.", + "yesterdayAt": "Date format for messages sent yesterday. $1 is the formatted time." }