{
  "privacyPolicy": {
    "message": "Terms & Privacy Policy",
    "description": "Shown in the about box for the link to https://getsession.org/privacy-policy/",
    "androidKey": "RegistrationActivity_terms_and_privacy"
  },
  "copyErrorAndQuit": {
    "message": "Copy error and quit",
    "description": "Shown in the top-level error popup, allowing user to copy the error text and close the app"
  },
  "unknown": {
    "message": "Unknown",
    "description": "Shown as the name of a group if we don't have any information about it",
    "androidKey": "NotificationChannel_missing_display_name"
  },
  "databaseError": {
    "message": "Database Error",
    "description": "Shown in a popup if the database cannot start up properly"
  },
  "mainMenuFile": {
    "message": "&File",
    "description": "The label that is used for the File menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination.",
    "androidKey": "attachment_type_selector__file_description",
    "addStart": "&"
  },
  "mainMenuEdit": {
    "message": "&Edit",
    "description": "The label that is used for the Edit menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination."
  },
  "mainMenuView": {
    "message": "&View",
    "description": "The label that is used for the View menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination.",
    "androidKey": "message_recipients_list_item__view",
    "addStart": "&",
    "sentenceCase": true
  },
  "mainMenuWindow": {
    "message": "&Window",
    "description": "The label that is used for the Window menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination."
  },
  "mainMenuHelp": {
    "message": "&Help",
    "description": "The label that is used for the Help menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination.",
    "androidKey": "text_secure_normal__help",
    "addStart": "&"
  },
  "appMenuHide": {
    "message": "Hide",
    "description": "Application menu command to hide the window"
  },
  "appMenuHideOthers": {
    "message": "Hide Others",
    "description": "Application menu command to hide all other windows"
  },
  "appMenuUnhide": {
    "message": "Show All",
    "description": "Application menu command to show all application windows"
  },
  "appMenuQuit": {
    "message": "Quit Session",
    "description": "Application menu command to close the application"
  },
  "editMenuUndo": {
    "message": "Undo",
    "description": "Edit menu command to remove recently-typed text",
    "androidKey": "ConversationListFragment_undo",
    "sentenceCase": true
  },
  "editMenuRedo": {
    "message": "Redo",
    "description": "Edit menu command to restore previously undone typed text"
  },
  "editMenuCut": {
    "message": "Cut",
    "description": "Edit menu command to remove selected text and add it to clipboard"
  },
  "editMenuCopy": {
    "message": "Copy",
    "description": "Edit menu command to add selected text to clipboard",
    "androidKey": "copy"
  },
  "editMenuPaste": {
    "message": "Paste",
    "description": "Edit menu command to insert text from clipboard at cursor location"
  },
  "editMenuPasteAndMatchStyle": {
    "message": "Paste and Match Style",
    "description": "Edit menu command to insert text from clipboard at cursor location, taking only text and not style information"
  },
  "editMenuDelete": {
    "message": "Delete",
    "description": "Edit menu command to remove the selected text",
    "androidKey": "delete"
  },
  "editMenuSelectAll": {
    "message": "Select all",
    "description": "Edit menu comand to select all of the text in selected text box",
    "androidKey": "conversation_list_batch__menu_select_all",
    "sentenceCase": true
  },
  "editMenuStartSpeaking": {
    "message": "Start speaking",
    "description": "Edit menu item under 'speech' to start dictation"
  },
  "editMenuStopSpeaking": {
    "message": "Stop speaking",
    "description": "Edit menu item under 'speech' to stop dictation"
  },
  "windowMenuClose": {
    "message": "Close Window",
    "description": "Window menu command to close the current window"
  },
  "windowMenuMinimize": {
    "message": "Minimize",
    "description": "Window menu command to minimize the current window"
  },
  "windowMenuZoom": {
    "message": "Zoom",
    "description": "Window menu command to make the current window the size of the whole screen"
  },
  "windowMenuBringAllToFront": {
    "message": "Bring All to Front",
    "description": "Window menu command to bring all windows of current applicatinon to front"
  },
  "viewMenuResetZoom": {
    "message": "Actual Size",
    "description": "View menu command to go back to the default zoom"
  },
  "viewMenuZoomIn": {
    "message": "Zoom In",
    "description": "View menu command to make everything bigger"
  },
  "viewMenuZoomOut": {
    "message": "Zoom Out",
    "description": "View menu command to make everything smaller"
  },
  "viewMenuToggleFullScreen": {
    "message": "Toggle Full Screen",
    "description": "View menu command to enter or leave Full Screen mode"
  },
  "viewMenuToggleDevTools": {
    "message": "Toggle Developer Tools",
    "description": "View menu command to show or hide the developer tools"
  },
  "menuSetupWithImport": {
    "message": "Set Up with Import",
    "description": "When the application is not yet set up, menu option to start up the import sequence"
  },
  "contextMenuNoSuggestions": {
    "message": "No Suggestions",
    "description": "Shown in the context menu for a misspelled word to indicate that there are no suggestions to replace the misspelled word"
  },
  "loading": {
    "message": "Loading...",
    "description": "Message shown on the loading screen before we've loaded any messages",
    "androidKey": "ConversationListFragment_loading"
  },
  "optimizingApplication": {
    "message": "Optimizing application...",
    "description": "Message shown on the loading screen while we are doing application optimizations"
  },
  "chooseDirectory": {
    "message": "Choose folder",
    "description": "Button to allow the user to find a folder on disk"
  },
  "done": {
    "message": "Done",
    "description": "Button when a specific action is to be done."
  },
  "loadDataHeader": {
    "message": "Load your data",
    "description": "Header shown on the first screen in the data import process"
  },
  "loadDataDescription": {
    "message": "You've just gone through the export process, and your contacts and messages are waiting patiently on your computer. Select the folder that contains your saved Session data.",
    "description": "Introduction to the process of importing messages and contacts from disk"
  },
  "importChooserTitle": {
    "message": "Choose directory with exported data",
    "description": "Title of the popup window used to select data previously exported"
  },
  "importErrorHeader": {
    "message": "Something went wrong!",
    "description": "Header of the error screen after a failed import"
  },
  "importingHeader": {
    "message": "Loading contacts and messages",
    "description": "Header of screen shown as data is import"
  },
  "importErrorFirst": {
    "message": "Make sure you have chosen the correct directory that contains your saved Session data. Its name should begin with 'Session Export.' You can also save a new copy of your data from the Chrome App.",
    "description": "Message shown if the import went wrong; first paragraph"
  },
  "importErrorSecond": {
    "message": "If these steps don't work for you, please submit a debug log (View -> Debug Log) so that we can help you get migrated!",
    "description": "Message shown if the import went wrong; second paragraph"
  },
  "importAgain": {
    "message": "Choose folder and try again",
    "description": "Button shown if the user runs into an error during import, allowing them to start over"
  },
  "importCompleteHeader": {
    "message": "Success!",
    "description": "Header shown on the screen at the end of a successful import process"
  },
  "importCompleteStartButton": {
    "message": "Start using Session",
    "description": "Button shown at end of successful import process, nothing left but a restart"
  },
  "importCompleteLinkButton": {
    "message": "Link this device to your phone",
    "description": "Button shown at end of successful 'light' import process, so the standard linking process still needs to happen"
  },
  "me": {
    "message": "Me",
    "description": "The label for yourself when shown in a group member list"
  },
  "view": {
    "message": "View",
    "description": "Used as a label on a button allowing user to see more information",
    "androidKey": "message_recipients_list_item__view",
    "sentenceCase": true
  },
  "youLeftTheGroup": {
    "message": "You have left the group.",
    "description": "Displayed when a user can't send a message because they have left the group",
    "androidKey": "MessageRecord_left_group"
  },
  "youGotKickedFromGroup": {
    "message": "You were removed from the group.",
    "description": "Displayed when a user can't send a message because they have left the group",
    "androidKey": "GroupUtil_you_were_removed_from_group"
  },
  "unreadMessage": {
    "message": "$count$ Unread Message",
    "description": "Text for unread message separator, just one message",
    "placeholders": {
      "count": {
        "content": "$1",
        "example": "5"
      }
    },
    "androidKey": "ConversationAdapter_n_unread_messages",
    "androidKeyCount": "one",
    "androidReplace": {
      "%d": "$count$"
    },
    "ignoreCase": true
  },
  "unreadMessages": {
    "message": "$count$ Unread Messages",
    "description": "Text for unread message separator, with count",
    "placeholders": {
      "count": {
        "content": "$1",
        "example": "5"
      }
    },
    "androidKey": "ConversationAdapter_n_unread_messages",
    "androidKeyCount": "other",
    "androidReplace": {
      "%d": "$count$"
    },
    "ignoreCase": true
  },
  "debugLogExplanation": {
    "message": "This log will be posted publicly online for contributors to view. You may examine and edit it before submitting."
  },
  "debugLogError": {
    "message": "Something went wrong with the upload! Please consider manually adding your log to the bug you file."
  },
  "reportIssue": {
    "message": "Report an issue",
    "description": "Link to open the issue tracker"
  },
  "gotIt": {
    "message": "Got it",
    "description": "Label for a button that dismisses a dialog. The user clicks it to confirm that they understand the message in the dialog.",
    "androidKey": "ExperienceUpgradeActivity_got_it"
  },
  "submit": {
    "message": "Submit",
    "androidKey": "log_submit_activity__button_submit"
  },
  "markAllAsRead": {
    "message": "Mark All as Read",
    "description": "Shown on a menu to mark the whole convo as read."
  },
  "incomingError": {
    "message": "Error handling incoming message"
  },
  "openGroupInvitation": {
    "message": "Open group invitation"
  },
  "joinOpenGroupAfterInvitationConfirmationTitle": {
    "message": "Join $roomName$?",
    "placeholders": {
      "count": {
        "roomName": "$1",
        "example": "Main"
      }
    }
  },
  "joinOpenGroupAfterInvitationConfirmationDesc": {
    "message": "Are you sure you wan to join the $roomName$ open group?",
    "placeholders": {
      "count": {
        "roomName": "$1",
        "example": "Main"
      }
    }
  },
  "media": {
    "message": "Media",
    "description": "Header of the default pane in the media gallery, showing images and videos",
    "androidKey": "MediaOverviewActivity_Media"
  },
  "mediaEmptyState": {
    "message": "No media",
    "description": "Message shown to user in the media gallery when there are no messages with media attachments (images or video)",
    "androidKey": "media_overview_activity__no_media"
  },
  "documents": {
    "message": "Documents",
    "description": "Header of the secondary pane in the media gallery, showing every non-media attachment",
    "androidKey": "MediaOverviewActivity_Documents"
  },
  "documentsEmptyState": {
    "message": "No documents",
    "description": "Message shown to user in the media gallery when there are no messages with document attachments (anything other than images or video)",
    "androidKey": "media_overview_documents_fragment__no_documents_found"
  },
  "today": {
    "message": "Today",
    "description": "Section header in the media gallery",
    "androidKey": "BucketedThreadMedia_Today"
  },
  "yesterday": {
    "message": "Yesterday",
    "description": "Section header in the media gallery",
    "androidKey": "BucketedThreadMedia_Yesterday"
  },
  "thisWeek": {
    "message": "This week",
    "description": "Section header in the media gallery",
    "androidKey": "BucketedThreadMedia_This_week",
    "ignoreCase": true,
    "sentenceCase": true
  },
  "thisMonth": {
    "message": "This Month",
    "description": "Section header in the media gallery",
    "androidKey": "BucketedThreadMedia_This_month",
    "ignoreCase": true,
    "sentenceCase": true
  },
  "voiceMessage": {
    "message": "Voice Message",
    "description": "Name for a voice message attachment"
  },
  "dangerousFileType": {
    "message": "For security reasons, this file type cannot be sent",
    "description": "Shown in toast when user attempts to send .exe file, for example"
  },
  "stagedPreviewThumbnail": {
    "message": "Draft thumbnail link preview for $domain$",
    "description": "Shown while Session Desktop is fetching metadata for a url in composition area",
    "placeholders": {
      "path": {
        "content": "$1",
        "example": "instagram.com"
      }
    }
  },
  "previewThumbnail": {
    "message": "Thumbnail link preview for $domain$",
    "description": "Shown while Session Desktop is fetching metadata for a url in composition area",
    "placeholders": {
      "path": {
        "content": "$1",
        "example": "instagram.com"
      }
    }
  },
  "stagedImageAttachment": {
    "message": "Draft image attachment: $path$",
    "description": "Alt text for staged attachments",
    "placeholders": {
      "path": {
        "content": "$1",
        "example": "dog.jpg"
      }
    }
  },
  "oneNonImageAtATimeToast": {
    "message": "Sorry, there is a limit of one non-image attachment per message",
    "description": "An error popup when the user has attempted to add an attachment"
  },
  "cannotMixImageAndNonImageAttachments": {
    "message": "Sorry, you cannot mix images with other file types in one message",
    "description": "An error popup when the user has attempted to add an attachment"
  },
  "maximumAttachments": {
    "message": "Maximum number of attachments reached. Please send remaining attachments in a separate message.",
    "description": "An error popup when the user has attempted to add an attachment"
  },
  "fileSizeWarning": {
    "message": "Attachment exceeds size limits for the type of message you're sending.",
    "androidKey": "ConversationActivity_attachment_exceeds_size_limits"
  },
  "unableToLoadAttachment": {
    "message": "Sorry, there was an error setting your attachment.",
    "androidKey": "ConversationActivity_sorry_there_was_an_error_setting_your_attachment"
  },
  "offline": {
    "message": "Offline",
    "description": "Displayed when the desktop client has no network connection."
  },
  "checkNetworkConnection": {
    "message": "Check your network connection.",
    "description": "Obvious instructions for when a user's computer loses its network connection"
  },
  "attemptingReconnection": {
    "message": "Attempting reconnect in $reconnect_duration_in_seconds$ seconds",
    "placeholders": {
      "reconnect_duration_in_seconds": {
        "content": "$1",
        "example": "10"
      }
    }
  },
  "submitDebugLog": {
    "message": "Debug log",
    "description": "Menu item and header text for debug log modal (sentence case)"
  },
  "debugLog": {
    "message": "Debug Log",
    "description": "View menu item to open the debug log (title case)"
  },
  "goToReleaseNotes": {
    "message": "Go to Release Notes",
    "description": ""
  },
  "goToSupportPage": {
    "message": "Go to Support Page",
    "description": "Item under the Help menu, takes you to the support page"
  },
  "menuReportIssue": {
    "message": "Report an Issue",
    "description": "Item under the Help menu, takes you to GitHub new issue form (title case)"
  },
  "about": {
    "message": "About",
    "description": "Item under the Help menu, which opens a small about window",
    "androidKey": "recipient_preferences__about"
  },
  "speech": {
    "message": "Speech",
    "description": "Item under the Edit menu, with 'start/stop speaking' items below it"
  },
  "show": {
    "message": "Show",
    "description": "Command under Window menu, to show the window",
    "androidKey": "preferences_notifications__show"
  },
  "sessionMessenger": {
    "message": "Session",
    "androidKey": "activity_landing_title"
  },
  "search": {
    "message": "Search",
    "description": "Placeholder text in the search input",
    "androidKey": "SearchToolbar_search"
  },
  "noSearchResults": {
    "message": "No results found for \"$searchTerm$\"",
    "description": "Shown in the search left pane when no results were found",
    "placeholders": {
      "searchTerm": {
        "content": "$1",
        "example": "dog"
      }
    },
    "androidKey": "SearchFragment_no_results",
    "androidReplace": {
      "'%s'": "\"$searchTerm$\""
    }
  },
  "conversationsHeader": {
    "message": "Conversations",
    "description": "Shown to separate the types of search results",
    "androidKey": "SearchFragment_header_conversations"
  },
  "contactsHeader": {
    "message": "Contacts",
    "description": "Shown to separate the types of search results",
    "androidKey": "SearchFragment_header_contacts"
  },
  "messagesHeader": {
    "message": "Messages",
    "description": "Shown to separate the types of search results",
    "androidKey": "SearchFragment_header_messages"
  },
  "settingsHeader": {
    "message": "Settings",
    "androidKey": "activity_settings_title"
  },
  "typingAlt": {
    "message": "Typing animation for this conversation",
    "description": "Used as the 'title' attibute for the typing animation"
  },
  "contactAvatarAlt": {
    "message": "Avatar for contact $name$",
    "description": "Used in the alt tag for the image avatar of a contact",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "John"
      }
    }
  },
  "downloadAttachment": {
    "message": "Download Attachment",
    "description": "Shown in a message's triple-dot menu if there isn't room for a dedicated download button"
  },
  "replyToMessage": {
    "message": "Reply to message",
    "description": "Shown in triple-dot menu next to message to allow user to start crafting a message with a quotation",
    "androidKey": "conversation_context__menu_reply_to_message"
  },
  "replyingToMessage": {
    "message": "Replying to:"
  },
  "originalMessageNotFound": {
    "message": "Original message not found",
    "description": "Shown in quote if reference message was not found as message was initially downloaded and processed",
    "androidKey": "ConversationFragment_quoted_message_not_found"
  },
  "originalMessageNotAvailable": {
    "message": "Original message no longer available",
    "description": "Shown in toast if user clicks on quote that references message no longer in database",
    "androidKey": "ConversationFragment_quoted_message_no_longer_available"
  },
  "messageFoundButNotLoaded": {
    "message": "Original message found, but not loaded. Scroll up to load it.",
    "description": "Shown in toast if user clicks on quote references messages not loaded in view, but in database"
  },
  "recording": {
    "message": "Recording",
    "description": "Shown on SessionRecording when recording is active."
  },
  "you": {
    "message": "You",
    "description": "In Android theme, shown in quote if you or someone else replies to you",
    "androidKey": "MediaPreviewActivity_you"
  },
  "audioPermissionNeededTitle": {
    "message": "Microphone access required",
    "description": "Shown if the user attempts to send an audio message without audio permssions turned on"
  },
  "audioPermissionNeeded": {
    "message": "You can enable microphone access under: Settings (Gear icon) => Privacy",
    "description": "Shown if the user attempts to send an audio message without audio permssions turned on",
    "androidKey": "ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone"
  },
  "audio": {
    "message": "Audio",
    "description": "Shown in a quotation of a message containing an audio attachment if no text was originally provided with that attachment",
    "androidKey": "QuoteView_audio"
  },
  "video": {
    "message": "Video",
    "description": "Shown in a quotation of a message containing a video if no text was originally provided with that video",
    "androidKey": "QuoteView_video"
  },
  "photo": {
    "message": "Photo",
    "description": "Shown in a quotation of a message containing a photo if no text was originally provided with that image",
    "androidKey": "QuoteView_photo"
  },
  "cannotUpdate": {
    "message": "Cannot Update",
    "description": "Shown as the title of our update error dialogs on windows"
  },
  "cannotUpdateDetail": {
    "message": "Session Desktop failed to update, but there is a new version available. Please go to https://getsession.org/ and install the new version manually, then either contact support or file a bug about this problem.",
    "description": "Shown if a general error happened while trying to install update package"
  },
  "ok": {
    "message": "OK",
    "androidKey": "activity_settings_seed_dialog_ok_button_title"
  },
  "cancel": {
    "message": "Cancel",
    "androidKey": "view_qr_code_cancel_button_title"
  },
  "close": {
    "message": "Close"
  },
  "continue": {
    "message": "Continue",
    "androidKey": "RegistrationActivity_continue"
  },
  "error": {
    "message": "Error"
  },
  "delete": {
    "message": "Delete",
    "androidKey": "delete"
  },
  "deletePublicWarning": {
    "message": "Are you sure? This will permanently remove this message for everyone in this open group."
  },
  "deleteMultiplePublicWarning": {
    "message": "Are you sure? This will permanently remove these messages for everyone in this open group."
  },
  "deleteWarning": {
    "message": "Are you sure? Clicking 'delete' will permanently remove this message from this device only."
  },
  "deleteMultipleWarning": {
    "message": "Are you sure? Clicking 'delete' will permanently remove these messages from this device only."
  },
  "messageDeletionForbidden": {
    "message": "You don’t have permission to delete others’ messages",
    "description": "Toast message explaining that the user doens't have the rights to delete other people's messages."
  },
  "deleteThisMessage": {
    "message": "Delete message",
    "androidKey": "conversation_context__menu_delete_message",
    "description": "action visible in MessageDetail screen"
  },
  "deleted": {
    "message": "Deleted",
    "description": "Toast validation when a single or several messages were deleted"
  },
  "from": {
    "message": "From:",
    "description": "Label for the sender of a message",
    "androidKey": "message_details_header__from"
  },
  "to": {
    "message": "To:",
    "description": "Label for the receiver of a message",
    "androidKey": "message_details_header__to"
  },
  "sent": {
    "message": "Sent",
    "description": "Label for the time a message was sent",
    "androidKey": "message_details_header__sent"
  },
  "received": {
    "message": "Received",
    "description": "Label for the time a message was received",
    "androidKey": "message_details_header__received"
  },
  "sendMessage": {
    "message": "Message",
    "description": "Placeholder text in the message entry field"
  },
  "groupMembers": {
    "message": "Group members",
    "androidKey": "ConversationActivity_group_members"
  },
  "moreInformation": {
    "message": "More information",
    "description": "Shown on the drop-down menu for an individual message, takes you to message detail screen",
    "androidKey": "RegistrationActivity_more_information"
  },
  "resend": {
    "message": "Resend",
    "description": "Shown on the drop-down menu for an individual message, but only if it is an outgoing message that failed to send",
    "androidKey": "message_recipients_list_item__resend",
    "sentenceCase": true
  },
  "deleteMessage": {
    "message": "Delete Message",
    "description": "Shown on the drop-down menu for an individual message, deletes single message",
    "androidKey": "conversation_context__menu_delete_message",
    "ignoreCase": true
  },
  "deleteMessages": {
    "message": "Delete Messages",
    "description": "Menu item for deleting messages, title case."
  },
  "deleteMessageForEveryone": {
    "message": "Delete Message For Everyone",
    "description": "Menu item for deleting messages, title case."
  },
  "deleteMessagesForEveryone": {
    "message": "Delete Messages For Everyone",
    "description": "Menu item for deleting messages, title case."
  },
  "deleteForEveryone": {
    "message": "Delete For Everyone",
    "description": "Menu item for deleting messages, title case."
  },
  "deleteConversationConfirmation": {
    "message": "Permanently delete the messages in this conversation?",
    "description": "Confirmation dialog text that asks the user if they really wish to delete the conversation. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone."
  },
  "clearAllData": {
    "message": "Clear All Data",
    "description": "Text for button in settings view to delete account",
    "androidKey": "dialog_clear_all_data_title"
  },
  "deleteAccountWarning": {
    "message": "This will permanently delete your messages, sessions, and contacts.",
    "description": "Warning for account deletion in settings view",
    "androidKey": "dialog_clear_all_data_explanation"
  },
  "deleteContactConfirmation": {
    "message": "Are you sure you want to delete this conversation?",
    "description": "Confirmation dialog text that tells the user what will happen if they delete the contact.",
    "androidKey": "activity_home_delete_conversation_dialog_message"
  },
  "quoteThumbnailAlt": {
    "message": "Thumbnail of image from quoted message",
    "description": "Used in alt tag of thumbnail images inside of an embedded message quote"
  },
  "imageAttachmentAlt": {
    "message": "Image attached to message",
    "description": "Used in alt tag of image attachment"
  },
  "videoAttachmentAlt": {
    "message": "Screenshot of video attached to message",
    "description": "Used in alt tag of video attachment preview"
  },
  "lightboxImageAlt": {
    "message": "Image sent in conversation",
    "description": "Used in the alt tag for the image shown in a full-screen lightbox view"
  },
  "imageCaptionIconAlt": {
    "message": "Icon showing that this image has a caption",
    "description": "Used for the icon layered on top of an image in message bubbles"
  },
  "addACaption": {
    "message": "Add a caption...",
    "description": "Used as the placeholder text in the caption editor text field",
    "androidKey": "MediaSendActivity_add_a_caption"
  },
  "copy": {
    "message": "Copy",
    "description": "Copy to clipboard button text",
    "androidKey": "copy"
  },
  "copySessionID": {
    "message": "Copy Session ID",
    "description": "Copy to clipboard session ID",
    "androidKey": "activity_conversation_menu_copy_session_id"
  },
  "copyOpenGroupURL": {
    "message": "Copy Group's URL",
    "description": "Copy to clipboard Open Group URL"
  },
  "save": {
    "message": "Save",
    "description": "Used as a 'commit changes' button in the Caption Editor for outgoing image attachments",
    "androidKey": "media_preview__save_title"
  },
  "saved": {
    "message": "Saved",
    "description": "Used to display when an action was saved."
  },
  "permissions": {
    "message": "Permissions",
    "description": "Header for permissions section of settings"
  },
  "general": {
    "message": "General",
    "description": "Header for general options on the settings screen"
  },
  "linkPreviewsTitle": {
    "message": "Send Link Previews",
    "description": "Option to control creation and send of link previews in setting screen",
    "androidKey": "preferences__send_link_previews",
    "ignoreCase": true
  },
  "linkPreviewDescription": {
    "message": "Previews are supported for Imgur, Instagram, Pinterest, Reddit, and YouTube links",
    "description": "Description shown for the Link Preview option ",
    "androidKey": "preferences__previews_are_supported_for"
  },
  "linkPreviewsConfirmMessage": {
    "message": "You will not have full metadata protection when sending or receiving link previews."
  },
  "mediaPermissionsTitle": {
    "message": "Microphone and Camera"
  },
  "mediaPermissionsDescription": {
    "message": "Allow access to camera and microphone",
    "description": "Description of the media permission description"
  },
  "spellCheckTitle": {
    "message": "Spell Check",
    "description": "Description of the media permission description"
  },
  "spellCheckDescription": {
    "message": "Enable spell check of text entered in message composition box",
    "description": "Description of the media permission description"
  },
  "spellCheckDirty": {
    "message": "You must restart Session to apply your new settings",
    "description": "Shown when the user changes their spellcheck setting to indicate that they must restart Session."
  },
  "notifications": {
    "message": "Notifications",
    "description": "Header for notification settings",
    "androidKey": "preferences__notifications"
  },
  "readReceiptSettingDescription": {
    "message": "See and share when messages have been read (enables read receipts in all sessions).",
    "description": "Description of the read receipts setting"
  },
  "readReceiptSettingTitle": {
    "message": "Read Receipts",
    "description": "Title of the read receipts setting",
    "androidKey": "preferences__read_receipts",
    "ignoreCase": true
  },
  "typingIndicatorsSettingDescription": {
    "message": "See and share when messages are being typed (applies to all sessions).",
    "description": "Description of the typing indicators setting"
  },
  "typingIndicatorsSettingTitle": {
    "message": "Typing Indicators",
    "description": "Title of the typing indicators setting",
    "androidKey": "preferences__typing_indicators",
    "ignoreCase": true
  },
  "zoomFactorSettingTitle": {
    "message": "Zoom Factor",
    "description": "Title of the Zoom Factor setting"
  },
  "notificationSettingsDialog": {
    "message": "When messages arrive, display notifications that reveal...",
    "description": "Explain the purpose of the notification settings"
  },
  "disableNotifications": {
    "message": "Mute notifications",
    "description": "Label for disabling notifications",
    "androidKey": "conversation_unmuted__mute_notifications"
  },
  "nameAndMessage": {
    "message": "Name and content",
    "description": "Label for setting notifications to display name and message text"
  },
  "noNameOrMessage": {
    "message": "No name or content",
    "description": "Label for setting notifications to display no name and no message text"
  },
  "nameOnly": {
    "message": "Name Only",
    "description": "Label for setting notifications to display sender name only"
  },
  "newMessage": {
    "message": "New Message",
    "description": "Displayed in notifications for only 1 message",
    "androidKey": "activity_conversation_default_hint"
  },
  "newMessages": {
    "message": "New Messages",
    "description": "Displayed in notifications for multiple messages"
  },
  "notificationMostRecentFrom": {
    "message": "Most recent from: $name$",
    "description": "Displayed in notifications when setting is 'name only' and more than one message is waiting",
    "androidKey": "MessageNotifier_most_recent_from_s",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "notificationFrom": {
    "message": "From:",
    "description": "Displayed in notifications when setting is 'name only' and one message is waiting",
    "androidKey": "message_details_header__from"
  },
  "notificationMostRecent": {
    "message": "Most recent:",
    "description": "Displayed in notifications when setting is 'name and message' and more than one message is waiting"
  },
  "sendFailed": {
    "message": "Send Failed",
    "description": "Shown on outgoing message if it fails to send",
    "androidKey": "conversation_item_sent__send_failed_indicator_description"
  },
  "expiredWarning": {
    "message": "This version of Session has expired. Please upgrade to the latest version to continue messaging.",
    "description": "Warning notification that this version of the app has expired"
  },
  "upgrade": {
    "message": "Upgrade",
    "description": "Label text for button to upgrade the app to the latest version"
  },
  "mediaMessage": {
    "message": "Media message",
    "description": "Description of a message that has an attachment and no text, displayed in the conversation list as a preview.",
    "androidKey": "ThreadRecord_media_message"
  },
  "timestamp_s": {
    "message": "Now",
    "description": "Brief timestamp for messages sent less than a minute ago. Displayed in the conversation list and message bubble.",
    "androidKey": "DateUtils_just_now"
  },
  "timestamp_m": {
    "message": "1 minute",
    "description": "Brief timestamp for messages sent about one minute ago. Displayed in the conversation list and message bubble."
  },
  "timestamp_h": {
    "message": "1 hour",
    "description": "Brief timestamp for messages sent about one hour ago. Displayed in the conversation list and message bubble."
  },
  "timestampFormat_M": {
    "message": "MMM D",
    "description": "Timestamp format string for displaying month and day (but not the year) of a date within the current year, ex: use 'MMM D' for 'Aug 8', or 'D MMM' for '8 Aug'."
  },
  "messageBodyMissing": {
    "message": "Please enter a message body.",
    "description": "Shown if the user tries to send an empty message (and no attachments)"
  },
  "unblockToSend": {
    "message": "Unblock this contact to send a message.",
    "description": "Brief message shown when trying to message a blocked number"
  },
  "unblockGroupToSend": {
    "message": "This group is blocked. Unlock it if you would like to send a message.",
    "description": "Brief message shown when trying to message a blocked group"
  },
  "youChangedTheTimer": {
    "message": "You set the disappearing message timer to $time$",
    "description": "Message displayed when you change the message expiration timer in a conversation.",
    "placeholders": {
      "time": {
        "content": "$1",
        "example": "10m"
      }
    },
    "androidKey": "MessageRecord_you_set_disappearing_message_time_to_s",
    "androidReplace": {
      "%1$s": "$time$"
    }
  },
  "timerSetOnSync": {
    "message": "Updated disappearing message timer to $time$",
    "description": "Message displayed when timer is set on initial link of desktop device.",
    "placeholders": {
      "time": {
        "content": "$1",
        "example": "10m"
      }
    }
  },
  "theyChangedTheTimer": {
    "message": "$name$ set the disappearing message timer to $time$",
    "description": "Message displayed when someone else changes the message expiration timer in a conversation.",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "Bob"
      },
      "time": {
        "content": "$2",
        "example": "10m"
      }
    },
    "androidKey": "MessageRecord_s_set_disappearing_message_time_to_s",
    "androidReplace": {
      "%1$s": "$name$",
      "%2$s": "$time$"
    }
  },
  "timerOption_0_seconds": {
    "message": "Off",
    "description": "Label for option to turn off message expiration in the timer menu",
    "androidKey": "expiration_off"
  },
  "timerOption_5_seconds": {
    "message": "5 seconds",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_10_seconds": {
    "message": "10 seconds",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_30_seconds": {
    "message": "30 seconds",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_1_minute": {
    "message": "1 minute",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_5_minutes": {
    "message": "5 minutes",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_30_minutes": {
    "message": "30 minutes",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_1_hour": {
    "message": "1 hour",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_6_hours": {
    "message": "6 hours",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_12_hours": {
    "message": "12 hours",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_1_day": {
    "message": "1 day",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "timerOption_1_week": {
    "message": "1 week",
    "description": "Label for a selectable option in the message expiration timer menu"
  },
  "disappearingMessages": {
    "message": "Disappearing messages",
    "description": "Conversation menu option to enable disappearing messages",
    "androidKey": "conversation_expiring_off__disappearing_messages"
  },
  "changeNickname": {
    "message": "Change Nickname",
    "description": "Conversation menu option to change user nickname"
  },
  "nicknamePlaceholder": {
    "message": "New Nickname",
    "description": "A placeholder value for entering a new nickname"
  },
  "changeNicknameMessage": {
    "message": "Enter a nickname for this user",
    "description": "A short message describing what the nickname modal input changes"
  },
  "clearNickname": {
    "message": "Clear Nickname",
    "description": "Conversation menu option to clear user nickname"
  },
  "timerOption_0_seconds_abbreviated": {
    "message": "off",
    "description": "Short format indicating current timer setting in the conversation list snippet",
    "androidKey": "ApplicationPreferencesActivity_off"
  },
  "timerOption_5_seconds_abbreviated": {
    "message": "5s",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_10_seconds_abbreviated": {
    "message": "10s",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_30_seconds_abbreviated": {
    "message": "30s",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_1_minute_abbreviated": {
    "message": "1m",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_5_minutes_abbreviated": {
    "message": "5m",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_30_minutes_abbreviated": {
    "message": "30m",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_1_hour_abbreviated": {
    "message": "1h",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_6_hours_abbreviated": {
    "message": "6h",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_12_hours_abbreviated": {
    "message": "12h",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_1_day_abbreviated": {
    "message": "1d",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "timerOption_1_week_abbreviated": {
    "message": "1w",
    "description": "Very short format indicating current timer setting in the conversation header"
  },
  "disappearingMessagesDisabled": {
    "message": "Disappearing messages disabled",
    "description": "Displayed in the left pane when the timer is turned off",
    "androidKey": "ThreadRecord_disappearing_messages_disabled"
  },
  "disabledDisappearingMessages": {
    "message": "$name$ disabled disappearing messages.",
    "description": "Displayed in the conversation list when the timer is turned off",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "John"
      }
    },
    "androidKey": "MessageRecord_s_disabled_disappearing_messages",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "youDisabledDisappearingMessages": {
    "message": "You disabled disappearing messages.",
    "description": "Displayed in the conversation list when the timer is turned off",
    "androidKey": "MessageRecord_you_disabled_disappearing_messages"
  },
  "timerSetTo": {
    "message": "Disappearing message time set to $time$",
    "description": "Displayed in the conversation list when the timer is updated by some automatic action, or in the left pane",
    "placeholders": {
      "time": {
        "content": "$1",
        "example": "1w"
      }
    },
    "androidKey": "ThreadRecord_disappearing_message_time_updated_to_s",
    "androidReplace": {
      "%s": "$time$"
    }
  },
  "noteToSelf": {
    "message": "Note to Self",
    "description": "Name for the conversation with your own phone number",
    "androidKey": "note_to_self"
  },
  "hideMenuBarTitle": {
    "message": "Hide Menu Bar",
    "description": "Label text for menu bar visibility setting"
  },
  "hideMenuBarDescription": {
    "message": "Toggle system menu bar visibility",
    "description": "Label text for menu bar visibility setting"
  },
  "startConversation": {
    "message": "Start New Conversation",
    "description": "Label underneath number a user enters that is not an existing contact"
  },
  "invalidNumberError": {
    "message": "Invalid public key",
    "description": "When a person inputs a public key that is invalid",
    "androidKey": "fragment_new_conversation_invalid_public_key_message"
  },
  "successUnlinked": {
    "message": "Your device was unlinked successfully",
    "androidKey": "activity_landing_device_unlinked_dialog_title"
  },
  "autoUpdateSettingTitle": {
    "message": "Auto Update"
  },
  "autoUpdateSettingDescription": {
    "message": "Automatically check for updates on launch"
  },
  "autoUpdateNewVersionTitle": {
    "message": "Session update available"
  },
  "autoUpdateNewVersionMessage": {
    "message": "There is a new version of Session available."
  },
  "autoUpdateNewVersionInstructions": {
    "message": "Press Restart Session to apply the updates."
  },
  "autoUpdateRestartButtonLabel": {
    "message": "Restart Session"
  },
  "autoUpdateLaterButtonLabel": {
    "message": "Later",
    "androidKey": "RatingManager_later"
  },
  "autoUpdateDownloadButtonLabel": {
    "message": "Download",
    "androidKey": "audio_view__download_accessibility_description"
  },
  "autoUpdateDownloadedMessage": {
    "message": "The new update has been downloaded."
  },
  "autoUpdateDownloadInstructions": {
    "message": "Would you like to download the update?"
  },
  "leftTheGroup": {
    "message": "$name$ has left the group.",
    "description": "Shown in the conversation history when a single person leaves the group",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "Bob"
      }
    },
    "androidKey": "ConversationItem_group_action_left",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "multipleLeftTheGroup": {
    "message": "$name$ left the group",
    "description": "Shown in the conversation history when multiple people leave the group",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "Alice, Bob"
      }
    }
  },
  "updatedTheGroup": {
    "message": "Group updated",
    "description": "Shown in the conversation history when someone updates the group",
    "androidKey": "ThreadRecord_group_updated"
  },
  "titleIsNow": {
    "comment": "Do not add a period here, used as a fragment and will break unit test",
    "message": "Group name is now '$name$'.",
    "description": "Shown in the conversation history when someone changes the title of the group",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "Book Club"
      }
    },
    "androidKey": "GroupUtil_group_name_is_now",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "joinedTheGroup": {
    "message": "$name$ joined the group.",
    "description": "Shown in the conversation history when a single person joins the group",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "Alice"
      }
    },
    "androidKey": "GroupUtil_joined_the_group",
    "androidKeyCount": "one",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "multipleJoinedTheGroup": {
    "message": "$name$ joined the group.",
    "description": "Shown in the conversation history when more than one person joins the group",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "Alice, Bob"
      }
    },
    "androidKey": "GroupUtil_joined_the_group",
    "androidKeyCount": "other",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "kickedFromTheGroup": {
    "message": "$name$ was removed from the group.",
    "description": "Shown in the conversation history when a single person is removed from the group",
    "placeholders": {
      "name": {
        "content": "$1",
        "example": "Alice"
      }
    },
    "androidKey": "GroupUtil_removed_from_the_group",
    "androidKeyCount": "one",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "multipleKickedFromTheGroup": {
    "message": "$name$ were removed from the group.",
    "description": "Shown in the conversation history when more than one person is removed from the group",
    "placeholders": {
      "names": {
        "content": "$1",
        "example": "Alice, Bob"
      }
    },
    "androidKey": "GroupUtil_removed_from_the_group",
    "androidKeyCount": "other",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "blockUser": {
    "message": "Block",
    "androidKey": "RecipientPreferenceActivity_block"
  },
  "unblockUser": {
    "message": "Unblock",
    "androidKey": "RecipientPreferenceActivity_unblock"
  },
  "unblocked": {
    "message": "Unblocked"
  },
  "blockedSettingsTitle": {
    "message": "Blocked contacts",
    "description": "Shown in the settings page as the heading for the blocked user settings",
    "androidKey": "preferences_app_protection__blocked_contacts"
  },
  "unbanUser": {
    "message": "Unban User",
    "description": "Unban user from open group by public key."
  },
  "unbanUserConfirm": {
    "message": "Are you sure you want to unban user?",
    "description": "Message shown when confirming user unban."
  },
  "userUnbanned": {
    "message": "User unbanned successfully",
    "description": "Toast on succesful user unban."
  },
  "userUnbanFailed": {
    "message": "Unban failed!",
    "description": "Toast on unsuccesful user unban."
  },
  "banUser": {
    "message": "Ban User",
    "description": "Ban user from open group by public key."
  },
  "banUserConfirm": {
    "message": "Are you sure you want to ban user?",
    "description": "Message shown when confirming user ban."
  },
  "userBanned": {
    "message": "User banned successfully",
    "description": "Toast on succesful user ban."
  },
  "userBanFailed": {
    "message": "Ban failed!",
    "description": "Toast on unsuccesful user ban."
  },
  "leaveGroup": {
    "message": "Leave Group",
    "description": "Button action that the user can click to leave the group",
    "androidKey": "conversation__menu_leave_group",
    "ignoreCase": true
  },
  "leaveAndRemoveForEveryone": {
    "message": "Leave Group and remove for everyone",
    "description": "Button action confirmation that the user can click to leave the group as an admin"
  },
  "leaveGroupConfirmation": {
    "message": "Are you sure you want to leave this group?",
    "description": "Confirmation dialog text that tells the user what will happen if they leave the group.",
    "androidKey": "activity_home_leave_group_dialog_message"
  },
  "leaveGroupConfirmationAdmin": {
    "message": "As you are the admin of this group, if you leave it it will be removed for every current members. Are you sure you want to leave this group?",
    "description": "Confirmation dialog text that tells the user what will happen if they leave the group as admin."
  },
  "cannotRemoveCreatorFromGroup": {
    "message": "Cannot remove this user",
    "description": "Toast title when the user tries to remove the creator from a closed group v2 member list."
  },
  "cannotRemoveCreatorFromGroupDesc": {
    "message": "You cannot remove this user as they are the creator of the group.",
    "description": "Toast description when the user tries to remove the creator from a closed group v2 member list."
  },
  "userNeedsToHaveJoined": {
    "message": "User needs to have joined",
    "description": "Toast title when the user tries to remove the creator from a closed group v2 member list."
  },
  "userNeedsToHaveJoinedDesc": {
    "message": "An error happened. The user needs to have already joined the server for this ADD to work.",
    "description": "Toast description when the user adds a moderator for an open group."
  },
  "noContactsForGroup": {
    "message": "You don't have any contacts yet",
    "androidKey": "activity_create_closed_group_empty_state_message"
  },
  "copyMessage": {
    "message": "Copy message text",
    "description": "Button action that the user can click to copy their public keys"
  },
  "selectMessage": {
    "message": "Select message",
    "description": "Button action that the user can click to select the message"
  },
  "editGroup": {
    "message": "Edit group",
    "description": "Button action that the user can click to edit a group name (open)",
    "androidKey": "conversation__menu_edit_group"
  },
  "editGroupName": {
    "message": "Edit group name",
    "description": "Button action that the user can click to edit a group name (closed)"
  },
  "updateGroupDialogTitle": {
    "message": "Updating $name$...",
    "description": "Title for the dialog box used to update an existing private group",
    "androidKey": "GroupCreateActivity_updating_group",
    "androidReplace": {
      "%1$s": "$name$"
    }
  },
  "showRecoveryPhrase": {
    "message": "Recovery Phrase",
    "description": "Button action that the user can click to view their unique recovery phrase",
    "androidKey": "activity_settings_recovery_phrase_button_title"
  },
  "yourSessionID": {
    "message": "Your Session ID",
    "androidKey": "your_session_id"
  },
  "setAccountPasswordTitle": {
    "message": "Set Account Password",
    "description": "Prompt for user to set account password in settings view"
  },
  "setAccountPasswordDescription": {
    "message": "Require password to unlock Session’s screen. You can still receive message notifications while Screen Lock is enabled. Session’s notification settings allow you to customize information that is displayed",
    "description": "Description for set account password setting view"
  },
  "changeAccountPasswordTitle": {
    "message": "Change Account Password",
    "description": "Prompt for user to change account password in settings view"
  },
  "changeAccountPasswordDescription": {
    "message": "Change your password",
    "description": "Description for change account password setting view"
  },
  "removeAccountPasswordTitle": {
    "message": "Remove Account Password",
    "description": "Prompt for user to remove account password in settings view"
  },
  "removeAccountPasswordDescription": {
    "message": "Remove the password associated with your account",
    "description": "Description for remove account password setting view"
  },
  "enterPassword": {
    "message": "Please enter your password"
  },
  "confirmPassword": {
    "message": "Confirm password"
  },
  "pasteLongPasswordToastTitle": {
    "message": "The clipboard content exceeds the maximum password length of $max_pwd_len$ characters.",
    "description": "Shown when user pastes a password which is longer than MAX_PASSWORD_LEN"
  },
  "showRecoveryPhrasePasswordRequest": {
    "message": "Please enter your password",
    "description": "Request for user to enter password to show recovery phrase."
  },
  "recoveryPhraseSavePromptMain": {
    "message": "Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don't give it to anyone.",
    "description": "Prompt on recovery phrase modal requesting user to save their recovery phrase. Line one",
    "androidKey": "activity_seed_explanation"
  },
  "invalidOpenGroupUrl": {
    "message": "Invalid URL",
    "description": "Error message when no server url entered",
    "androidKey": "fragment_add_public_chat_invalid_url_message"
  },
  "copiedToClipboard": {
    "message": "Copied to clipboard",
    "androidKey": "copied_to_clipboard"
  },
  "passwordViewTitle": {
    "message": "Type In Your Password",
    "description": "The title shown when user needs to type in a password to unlock the messenger"
  },
  "unlock": {
    "message": "Unlock",
    "androidKey": "prompt_passphrase_activity__unlock"
  },
  "password": {
    "message": "Password",
    "description": "Placeholder for password input"
  },
  "setPassword": {
    "message": "Set Password",
    "description": "Button action that the user can click to set a password"
  },
  "changePassword": {
    "message": "Change Password",
    "description": "Button action that the user can click to change a password"
  },
  "removePassword": {
    "message": "Remove Password",
    "description": "Button action that the user can click to remove a password"
  },
  "maxPasswordAttempts": {
    "message": "Invalid Password. Would you like to reset the database?"
  },
  "typeInOldPassword": {
    "message": "Please type in your old password"
  },
  "invalidOldPassword": {
    "message": "Old password is invalid"
  },
  "invalidPassword": {
    "message": "Invalid password"
  },
  "noGivenPassword": {
    "message": "Please enter your password"
  },
  "passwordsDoNotMatch": {
    "message": "Passwords do not match"
  },
  "setPasswordInvalid": {
    "message": "Passwords do not match"
  },
  "changePasswordInvalid": {
    "message": "The old password you entered is incorrect"
  },
  "removePasswordInvalid": {
    "message": "Incorrect password"
  },
  "setPasswordTitle": {
    "message": "Set Password"
  },
  "changePasswordTitle": {
    "message": "Changed Password"
  },
  "removePasswordTitle": {
    "message": "Removed Password"
  },
  "setPasswordToastDescription": {
    "message": "Your password has been set. Please keep it safe."
  },
  "changePasswordToastDescription": {
    "message": "Your password has been changed. Please keep it safe."
  },
  "removePasswordToastDescription": {
    "message": "You have removed your password."
  },
  "publicChatExists": {
    "message": "You are already connected to this open group"
  },
  "connectToServerFail": {
    "message": "Couldn't join group",
    "androidKey": "activity_join_public_chat_error"
  },
  "connectingToServer": {
    "message": "Connecting...",
    "androidKey": "CallNotificationBuilder_connecting"
  },
  "connectToServerSuccess": {
    "message": "Successfully connected to open group"
  },
  "setPasswordFail": {
    "message": "Failed to set password"
  },
  "passwordLengthError": {
    "message": "Password must be between 6 and 64 characters long",
    "description": "Error string shown to the user when password doesn't meet length criteria"
  },
  "passwordTypeError": {
    "message": "Password must be a string",
    "description": "Error string shown to the user when password is not a string"
  },
  "passwordCharacterError": {
    "message": "Password must only contain letters, numbers and symbols",
    "description": "Error string shown to the user when password contains an invalid character"
  },
  "remove": {
    "message": "Remove",
    "androidKey": "ClearProfileActivity_remove"
  },
  "invalidSessionId": {
    "message": "Invalid Session ID",
    "description": "Error string shown when user types an invalid pubkey hex string",
    "androidKey": "invalid_session_id"
  },
  "invalidPubkeyFormat": {
    "message": "Invalid Pubkey Format",
    "description": "Error string shown when user types an invalid pubkey format"
  },
  "lnsMappingNotFound": {
    "message": "There is no LNS mapping associated with this name",
    "description": "Shown in toast if user enters an unknown LNS name"
  },
  "lnsLookupTimeout": {
    "message": "LNS lookup timed out",
    "description": "Shown in toast if user enters an unknown LNS name"
  },
  "lnsTooFewNodes": {
    "message": "Not enough nodes currently active for LNS lookup"
  },
  "emptyGroupNameError": {
    "message": "Please enter a group name",
    "description": "Error message displayed on empty group name",
    "androidKey": "activity_create_closed_group_group_name_missing_error"
  },
  "editProfileModalTitle": {
    "message": "Profile",
    "description": "Title for the Edit Profile modal"
  },
  "groupNamePlaceholder": {
    "message": "Group Name",
    "androidKey": "GroupCreateActivity_group_name_hint",
    "ignoreCase": true
  },
  "inviteContacts": {
    "message": "Invite Contacts",
    "androidKey": "text_secure_normal__invite_friends"
  },
  "addModerators": {
    "message": "Add Moderators"
  },
  "removeModerators": {
    "message": "Remove Moderators"
  },
  "addAsModerator": {
    "message": "Add As Moderator"
  },
  "removeFromModerators": {
    "message": "Remove From Moderators"
  },
  "add": {
    "message": "Add",
    "androidKey": "fragment_add_public_chat_add_button_title_1"
  },
  "addingContacts": {
    "message": "Adding contacts to"
  },
  "noContactsToAdd": {
    "message": "No contacts to add"
  },
  "noMembersInThisGroup": {
    "message": "No other members in this group"
  },
  "noModeratorsToRemove": {
    "message": "no moderators to remove"
  },
  "onlyAdminCanRemoveMembers": {
    "message": "You are not the creator"
  },
  "onlyAdminCanRemoveMembersDesc": {
    "message": "Only the creator of the group can remove users"
  },
  "createAccount": {
    "message": "Create Account"
  },
  "signIn": {
    "message": "Sign In"
  },
  "yourUniqueSessionID": {
    "message": "Say hello to your Session ID",
    "androidKey": "activity_register_title"
  },
  "allUsersAreRandomly...": {
    "message": "Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.",
    "androidKey": "activity_register_explanation"
  },
  "getStarted": {
    "message": "Get started"
  },
  "createSessionID": {
    "message": "Create Session ID",
    "androidKey": "activity_landing_register_button_title"
  },
  "recoveryPhrase": {
    "message": "Recovery Phrase",
    "androidKey": "activity_settings_recovery_phrase_button_title"
  },
  "enterRecoveryPhrase": {
    "message": "Enter your recovery phrase",
    "androidKey": "activity_restore_seed_edit_text_hint"
  },
  "displayName": {
    "message": "Display Name",
    "androidKey": "activity_display_name_name_edit_text_label"
  },
  "anonymous": {
    "message": "Anonymous",
    "description": "The name of currently unidentified users"
  },
  "removeResidueMembers": {
    "message": "Clicking ok will also remove those members as they left the group.",
    "description": "Shown when the admin shows the group member dialog, to warn him that zombies members will be removed"
  },
  "enterDisplayName": {
    "message": "Enter a display name",
    "androidKey": "activity_display_name_edit_text_hint"
  },
  "enterOptionalPassword": {
    "message": "Enter password (optional)"
  },
  "continueYourSession": {
    "message": "Continue Your Session",
    "androidKey": "activity_landing_restore_button_title"
  },
  "linkDevice": {
    "message": "Link Device",
    "androidKey": "activity_link_device_title"
  },
  "restoreUsingRecoveryPhrase": {
    "message": "Restore your account",
    "androidKey": "activity_restore_title"
  },
  "or": {
    "message": "or"
  },
  "ByUsingThisService...": {
    "message": "By using this service, you agree to our <a href=\"https://getsession.org/legal/#tos\">Terms of Service</a> and <a href=\"https://getsession.org/privacy-policy/\" target=\"_blank\">Privacy Policy</a>"
  },
  "beginYourSession": {
    "message": "Begin<br />your<br />Session."
  },
  "welcomeToYourSession": {
    "message": "Welcome to your Session"
  },
  "newSession": {
    "message": "New Session",
    "androidKey": "activity_create_private_chat_title"
  },
  "searchFor...": {
    "message": "Search for conversations, contacts, and messages",
    "androidKey": "SearchToolbar_search_for_conversations_contacts_and_messages"
  },
  "enterSessionID": {
    "message": "Enter Session ID",
    "androidKey": "activity_link_device_enter_session_id_tab_title"
  },
  "enterSessionIDOfRecipient": {
    "message": "Enter Session ID of recipient",
    "androidKey": "fragment_enter_public_key_edit_text_hint"
  },
  "usersCanShareTheir...": {
    "message": "Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.",
    "androidKey": "fragment_enter_public_key_explanation"
  },
  "message": {
    "message": "Message"
  },
  "appearanceSettingsTitle": {
    "message": "Appearance",
    "androidKey": "preferences__appearance"
  },
  "permissionSettingsTitle": {
    "message": "Permissions"
  },
  "privacySettingsTitle": {
    "message": "Privacy",
    "androidKey": "recipient_preferences__privacy"
  },
  "notificationsSettingsTitle": {
    "message": "Notifications",
    "androidKey": "preferences__notifications"
  },
  "recoveryPhraseEmpty": {
    "message": "Enter your recovery phrase",
    "androidKey": "activity_restore_seed_edit_text_hint"
  },
  "displayNameEmpty": {
    "message": "Please pick a display name",
    "androidKey": "activity_display_name_display_name_missing_error"
  },
  "members": {
    "message": "$count$ members",
    "placeholders": {
      "count": {
        "content": "$1",
        "example": "26"
      }
    }
  },
  "joinOpenGroup": {
    "message": "Join Open Group",
    "androidKey": "activity_join_public_chat_title"
  },
  "newClosedGroup": {
    "message": "New Closed Group",
    "androidKey": "activity_create_closed_group_title"
  },
  "createClosedGroupNamePrompt": {
    "message": "Group Name",
    "androidKey": "GroupCreateActivity_group_name_hint",
    "ignoreCase": true
  },
  "createClosedGroupPlaceholder": {
    "message": "Enter a group name",
    "androidKey": "activity_create_closed_group_edit_text_hint"
  },
  "openGroupURL": {
    "message": "Open Group URL",
    "androidKey": "activity_join_public_chat_enter_group_url_tab_title"
  },
  "enterAnOpenGroupURL": {
    "message": "Enter an open group URL",
    "androidKey": "fragment_enter_chat_url_edit_text_hint"
  },
  "next": {
    "message": "Next",
    "androidKey": "RegistrationActivity_next"
  },
  "description": {
    "message": "Description"
  },
  "invalidGroupNameTooShort": {
    "message": "Please enter a group name",
    "androidKey": "activity_create_closed_group_group_name_missing_error"
  },
  "invalidGroupNameTooLong": {
    "message": "Please enter a shorter group name",
    "androidKey": "activity_create_closed_group_group_name_too_long_error"
  },
  "pickClosedGroupMember": {
    "message": "Please pick at least 1 group member",
    "androidKey": "activity_create_closed_group_not_enough_group_members_error"
  },
  "closedGroupMaxSize": {
    "message": "A closed group cannot have more than 100 members",
    "androidKey": "activity_create_closed_group_too_many_group_members_error"
  },
  "noBlockedContacts": {
    "message": "No blocked contacts",
    "androidKey": "blocked_contacts_fragment__no_blocked_contacts"
  },
  "userAddedToModerators": {
    "message": "User added to moderator list"
  },
  "userRemovedFromModerators": {
    "message": "User removed from moderator list"
  },
  "errorHappenedWhileRemovingModerator": {
    "message": "An error happened"
  },
  "errorHappenedWhileRemovingModeratorDesc": {
    "message": "An error happened while removing this user from the moderator list."
  },
  "orJoinOneOfThese": {
    "message": "Or join one of these..."
  }
}
