{
  "appName": {
    "message": "TW Power Tools",
    "description": "The extension's name"
  },
  "appNameBeta": {
    "message": "TW Power Tools (beta)",
    "description": "The extension's name for the beta version"
  },
  "appNameCanary": {
    "message": "TW Power Tools (canary)",
    "description": "The extension's name for the beta version"
  },
  "appNameGecko": {
    "message": "TW Power Tools",
    "description": "The extension's name (with a 50 character limit for Gecko)"
  },
  "appDescription": {
    "message": "Get infinite scroll and other enhancements in the Google Forums and the Community Console",
    "description": "The extension's description"
  },
  "options_killswitchwarning": {
    "message": "One or more options have been force disabled because they might not be working properly. Please go to the <a href='https://groups.google.com/g/twpowertools-discuss' rel='noreferrer noopener' target='_blank'>twpowertools-discuss Google Group</a> to learn more about why some options have been force disabled.",
    "description": "Warning shown in the options page if a feature has been remotely force disabled via the kill switch mechanism. This happens when a feature doesn't work properly and might be doing dangerous things, and the maintainer or an authorized user remotely force disables the feature."
  },
  "options_killswitchenabled": {
    "message": "The previous option has been force disabled due to an issue.",
    "description": "Warning shown in the options page below an option, when it has been remotely force disabled via the kill switch mechanism."
  },
  "options_optionalpermissionswarning_header": {
    "message": "Some features need additional permissions to work. They have been highlighted below, click their checkboxes to grant the appropriate permissions.",
    "description": "Warning shown at the top of the options page if a feature cannot be used because one or more required permissions haven't been granted to the extension."
  },
  "options_optionalpermissionswarning_label": {
    "message": "The previous feature needs additional permissions to work.",
    "description": "Warning shown in the options page below an option, when a feature needs more permissions to work."
  },
  "options_featuredoptions": {
    "message": "Featured options",
    "description": "Heading for several options that can be enabled in the options page."
  },
  "options_minorenhancements": {
    "message": "Minor enhancements",
    "description": "Heading for several options that can be enabled in the options page."
  },
  "options_list": {
    "message": "Enable infinite scrolling in thread lists.",
    "description": "Feature checkbox in the options page"
  },
  "options_thread": {
    "message": "Automatically load batches of messages inside threads when scrolling down.",
    "description": "Feature checkbox in the options page"
  },
  "options_threadall": {
    "message": "Automatically load all messages at once inside threads when scrolling down.",
    "description": "Feature checkbox in the options page"
  },
  "options_fixedtoolbar": {
    "message": "Fix the toolbar in thread lists in the Community Console.",
    "description": "Feature checkbox in the options page"
  },
  "options_redirect": {
    "message": "Redirect all threads opened in TW to the Community Console.",
    "description": "Feature checkbox in the options page"
  },
  "options_loaddrafts": {
    "message": "Activate the <code class=\"help\" title=\"This flag allows the Community Console to load a previously autosaved reply when loading a thread and clicking the reply button.\">enableLoadingDraftMessages<\/code> Community Console flag.",
    "description": "Feature checkbox in the options page"
  },
  "options_experimental_label": {
    "message": "(experimental)",
    "description": "Label which is placed next to an option to indicate that it may not work well or may break at any time"
  },
  "options_history": {
    "message": "Show a \"previous posts\" link in user profiles.",
    "description": "Feature checkbox in the options page"
  },
  "options_stickysidebarheaders": {
    "message": "Make the headers in the Community Console sidebar stick at the top (+info at <code>pekb/thread/60784834</code>).",
    "description": "Feature checkbox in the options page"
  },
  "options_increasecontrast":{
    "message": "Increase contrast between read and unread threads in the Community Console.",
    "description": "Feature checkbox in the options page"
  },
  "options_ccdarktheme": {
    "message": "Enable the dark theme in the Community Console, controlled <span id='ccdarktheme_mode--container'></span>.",
    "description": "Feature checkbox in the options page"
  },
  "options_ccdarktheme_mode_switch": {
    "message": "with a switch in the CC",
    "description": "Select option added in #ccdarktheme_mode--container, in the options_ccdarktheme string"
  },
  "options_ccdarktheme_mode_system": {
    "message": "by the OS dark mode setting",
    "description": "Select option added in #ccdarktheme_mode--container, in the options_ccdarktheme string"
  },
  "options_ccforcehidedrawer": {
    "message": "Always hide the drawer (left column) in the Community Console.",
    "description": "Feature checkbox in the options page"
  },
  "options_ccdragndropfix": {
    "message": "Allow to drag and drop links to the Community Console text editor while preserving the text.",
    "description": "Feature checkbox in the options page"
  },
  "options_batchlock": {
    "message": "Add the option to lock multiple threads from the Community Console thread list.",
    "description": "Feature checkbox in the options page"
  },
  "options_enhancedannouncementsdot": {
    "message": "Show the announcements notification dot more prominently in the Community Console.",
    "description": "Feature checkbox in the options page"
  },
  "options_repositionexpandthread": {
    "message": "Place the \"expand thread\" button all the way to the left in the Community Console thread lists.",
    "description": "Feature checkbox in the options page"
  },
  "options_threadlistavatars": {
    "message": "Show avatars in thread lists in the Community Console.",
    "description": "Feature checkbox in the options page"
  },
  "options_autorefreshlist": {
    "message": "Show a notification in the Community Console when a thread list has new updates.",
    "description": "Feature checkbox in the options page"
  },
  "options_imagemaxheight": {
    "message": "Prevent inline images in messages from being taller than the current window.",
    "description": "Feature checkbox in the options page"
  },
  "options_profileindicator_moreinfo": {
    "message": "+info about the 2 previous options",
    "description": "Link to learn more about the profile indicator feature"
  },
  "options_profileindicator": {
    "message": "Show <span class=\"help\" title=\"If the OP has participated in other threads, a red dot will be shown next to their username. If the OP's most recent posts have been read, an orange dot will be shown instead. You can hover the dot with your mouse in order to show the meaning of its color.\">whether the OP has participated in other threads</span>.",
    "description": "Feature checkbox in the options page"
  },
  "options_profileindicatoralt": {
    "message": "Show the number of questions and replies written by the OP within the last <span id='profileindicatoralt_months--container'></span> months next to their username.",
    "description": "Feature checkbox in the options page"
  },
  "options_blockdrafts": {
    "message": "Block the sending of your replies as you type to Google servers in the Community Console.",
    "description": "Feature checkbox in the options page"
  },
  "options_save": {
    "message": "Save",
    "description": "Button in the options page to save the settings"
  },
  "options_saved": {
    "message": "Saved",
    "description": "Message which appears in the options page when the settings are saved"
  },
  "options_experiments_title": {
    "message": "Experiments",
    "description": "Title of the experiments page: a page where highly experimental options can be set."
  },
  "options_experiments_description": {
    "message": "Welchrome! Below you'll a find a list of experiments: features which are in development, and are not quite ready for launch. They are highly experimental and so might break and/or cause issues, but if you're brave, please do enable the ones you're most interested in, and <a href='https://github.com/avm99963/infinitegforums/discussions/categories/feedback'>give feedback</a>!",
    "description": "Description shown in the beginning of the experiments page, below the title."
  },
  "inject_links": {
    "message": "Links",
    "description": "Heading which we use before the 'previous post' link in a user profile in TW"
  },
  "inject_previousposts": {
    "message": "Previous posts",
    "description": "Link shown in a user profile (in TW) which points to a search showing the user's posts and messages"
  },
  "inject_previousposts_forum": {
    "message": "Previous posts (in this forum)",
    "description": "Link shown in a user profile (in the Community Console) which points to a search showing the user's posts and messages in the current forum"
  },
  "inject_previousposts_all": {
    "message": "Previous posts (in all forums)",
    "description": "Link shown in a user profile (in the Community Console) which points to a search showing the user's posts and messages in all forums"
  },
  "inject_profileindicator_loading": {
    "message": "Loading...",
    "description": "Tooltip for the profile indicator dot."
  },
  "inject_profileindicator_first_post": {
    "message": "This is the first thread created by the OP in this forum.",
    "description": "Tooltip for the profile indicator dot."
  },
  "inject_profileindicator_other_posts_read": {
    "message": "The OP participated in other threads in this forum, but you've read the 5 most recent ones.",
    "description": "Tooltip for the profile indicator dot."
  },
  "inject_profileindicator_other_posts_unread": {
    "message": "The OP participated in other threads in this forum, some of which you haven't read.",
    "description": "Tooltip for the profile indicator dot."
  },
  "inject_profileindicatoralt_numposts": {
    "message": "Number of questions and replies in the last $1 months.",
    "description": "Tooltip for the profile indicator dot."
  },
  "inject_ccdarktheme_helper": {
    "message": "Switch theme",
    "description": "Tooltip for the dark mode switch."
  },
  "inject_extension_badge_helper": {
    "message": "Added by $1",
    "description": "Tooltip for the extension badge, which appears next to components injected by the extension."
  },
  "inject_lockbtn": {
    "message": "Lock/unlock threads",
    "description": "Tooltip of the 'lock/unlock threads' icon shown when selecting multiple threads in the Community Console. Also the title for the dialog shown after clicking this icon."
  },
  "inject_lockdialog_desc": {
    "message": "Please, confirm the action you want to take by clicking the appropriate button below. Keep in mind this action will be performed in all the threads you have selected.",
    "description": "Text in the 'lock/unlock threads' dialog, which asks the user for confirmation."
  },
  "inject_lockdialog_btn_lock": {
    "message": "Lock",
    "description": "Button in the 'lock/unlock threads' dialog."
  },
  "inject_lockdialog_btn_unlock": {
    "message": "Unlock",
    "description": "Button in the 'lock/unlock threads' dialog."
  },
  "inject_lockdialog_btn_cancel": {
    "message": "Cancel",
    "description": "Button in the 'lock/unlock threads' dialog."
  },
  "inject_lockdialog_btn_close": {
    "message": "Close",
    "description": "Button in the 'lock/unlock threads' dialog."
  },
  "inject_lockdialog_log_entry_beginning": {
    "message": "Thread $1",
    "description": "First part of the entry in the log of the 'lock/unlock threads' dialog. Log entries are of the form '{first_part}: {second_part}'. For example: 'Thread 164: Locked successfully'."
  },
  "inject_lockdialog_log_entry_success_lock": {
    "message": "Locked successfully.",
    "description": "Second part of the entry in the log of the 'lock/unlock threads' dialog, when the log entry states that the thread was locked successfully. Log entries are of the form '{first_part}: {second_part}'. For example: 'Thread 164: Locked successfully'."
  },
  "inject_lockdialog_log_entry_error_lock": {
    "message": "An error occurred while locking ($1).",
    "description": "Second part of the entry in the log of the 'lock/unlock threads' dialog, when the log entry states that the thread was *not* locked successfully. Log entries are of the form '{first_part}: {second_part}'. For example: 'Thread 164: Locked successfully'."
  },
  "inject_lockdialog_log_entry_success_unlock": {
    "message": "Unlocked successfully.",
    "description": "Second part of the entry in the log of the 'lock/unlock threads' dialog, when the log entry states that the thread was *un*locked successfully. Log entries are of the form '{first_part}: {second_part}'. For example: 'Thread 164: Locked successfully'."
  },
  "inject_lockdialog_log_entry_error_unlock": {
    "message": "An error occurred while unlocking ($1).",
    "description": "Second part of the entry in the log of the 'lock/unlock threads' dialog, when the log entry states that the thread was *not* *un*locked successfully. Log entries are of the form '{first_part}: {second_part}'. For example: 'Thread 164: Locked successfully'."
  },
  "inject_autorefresh_list_snackbar_message": {
    "message": "There are new threads.",
    "description": "Message shown in a snackbar when new threads are found in a thread list. Another button asks the user to refresh the list."
  },
  "inject_autorefresh_list_snackbar_action": {
    "message": "Refresh",
    "description": "Button shown in a snackbar asking users to refresh/reload the list to show the new threads."
  },
  "inject_autorefresh_list_status_indicator_label_active": {
    "message": "Watching for updates to the thread list...",
    "description": "Helper text which appears when hovering the status indicator of the 'autorefresh list' feature to indicate that the feature is active and watching for updates in the current thread list."
  },
  "inject_autorefresh_list_status_indicator_label_disabled": {
    "message": "Can't watch for updates to the thread list. Please change the sort options to 'Sort by: Last updated' and descending order.",
    "description": "Helper text which appears when hovering the status indicator of the 'autorefresh list' feature to indicate that the feature is disabled in the current thread list because the sort options are incompatible with the feature."
  },
  "inject_threadlistavatars_private_thread_indicator_label": {
    "message": "Due to technical reasons, we can't load the avatars of threads published in private forums.",
    "description": "Helper text which appears when hovering an icon next to a thread, to explain its meaning."
  },
  "actionbadge_permissions_requested": {
    "message": "Some features need additional permissions to work. Click to fix it.",
    "description": "Tooltip for the extension icon when a feature is enabled but it needs several permissions to be granted."
  }
}
