// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.

using osu.Framework.Localisation;

namespace osu.Game.Resources.Localisation.Web
{
    public static class ForumStrings
    {
        private const string prefix = @"osu.Game.Resources.Localisation.Web.Forum";

        /// <summary>
        /// "Pinned Topics"
        /// </summary>
        public static LocalisableString PinnedTopics => new TranslatableString(getKey(@"pinned_topics"), @"Pinned Topics");

        /// <summary>
        /// "it&#39;s dangerous to play alone."
        /// </summary>
        public static LocalisableString Slogan => new TranslatableString(getKey(@"slogan"), @"it's dangerous to play alone.");

        /// <summary>
        /// "Subforums"
        /// </summary>
        public static LocalisableString Subforums => new TranslatableString(getKey(@"subforums"), @"Subforums");

        /// <summary>
        /// "Forums"
        /// </summary>
        public static LocalisableString Title => new TranslatableString(getKey(@"title"), @"Forums");

        /// <summary>
        /// "Edit cover"
        /// </summary>
        public static LocalisableString CoversEdit => new TranslatableString(getKey(@"covers.edit"), @"Edit cover");

        /// <summary>
        /// "Set cover image"
        /// </summary>
        public static LocalisableString CoversCreateDefault => new TranslatableString(getKey(@"covers.create._"), @"Set cover image");

        /// <summary>
        /// "Upload cover"
        /// </summary>
        public static LocalisableString CoversCreateButton => new TranslatableString(getKey(@"covers.create.button"), @"Upload cover");

        /// <summary>
        /// "Cover size should be at {0}. You can also drop your image here to upload."
        /// </summary>
        public static LocalisableString CoversCreateInfo(LocalisableString dimensions) => new TranslatableString(getKey(@"covers.create.info"), @"Cover size should be at {0}. You can also drop your image here to upload.", dimensions);

        /// <summary>
        /// "Remove cover"
        /// </summary>
        public static LocalisableString CoversDestroyDefault => new TranslatableString(getKey(@"covers.destroy._"), @"Remove cover");

        /// <summary>
        /// "Are you sure you want to remove the cover image?"
        /// </summary>
        public static LocalisableString CoversDestroyConfirm => new TranslatableString(getKey(@"covers.destroy.confirm"), @"Are you sure you want to remove the cover image?");

        /// <summary>
        /// "Latest Post"
        /// </summary>
        public static LocalisableString ForumsLatestPost => new TranslatableString(getKey(@"forums.latest_post"), @"Latest Post");

        /// <summary>
        /// "Forum Index"
        /// </summary>
        public static LocalisableString ForumsIndexTitle => new TranslatableString(getKey(@"forums.index.title"), @"Forum Index");

        /// <summary>
        /// "No topics!"
        /// </summary>
        public static LocalisableString ForumsTopicsEmpty => new TranslatableString(getKey(@"forums.topics.empty"), @"No topics!");

        /// <summary>
        /// "Mark forum as read"
        /// </summary>
        public static LocalisableString MarkAsReadForum => new TranslatableString(getKey(@"mark_as_read.forum"), @"Mark forum as read");

        /// <summary>
        /// "Mark forums as read"
        /// </summary>
        public static LocalisableString MarkAsReadForums => new TranslatableString(getKey(@"mark_as_read.forums"), @"Mark forums as read");

        /// <summary>
        /// "Marking as read..."
        /// </summary>
        public static LocalisableString MarkAsReadBusy => new TranslatableString(getKey(@"mark_as_read.busy"), @"Marking as read...");

        /// <summary>
        /// "Really delete post?"
        /// </summary>
        public static LocalisableString PostConfirmDestroy => new TranslatableString(getKey(@"post.confirm_destroy"), @"Really delete post?");

        /// <summary>
        /// "Really restore post?"
        /// </summary>
        public static LocalisableString PostConfirmRestore => new TranslatableString(getKey(@"post.confirm_restore"), @"Really restore post?");

        /// <summary>
        /// "Last edited by {0} {1}, edited {2} time in total.|Last edited by {0} {1}, edited {2} times in total."
        /// </summary>
        public static LocalisableString PostEdited(LocalisableString user, LocalisableString when, LocalisableString countDelimited) => new TranslatableString(getKey(@"post.edited"), @"Last edited by {0} {1}, edited {2} time in total.|Last edited by {0} {1}, edited {2} times in total.", user, when, countDelimited);

        /// <summary>
        /// "posted {0}"
        /// </summary>
        public static LocalisableString PostPostedAt(LocalisableString when) => new TranslatableString(getKey(@"post.posted_at"), @"posted {0}", when);

        /// <summary>
        /// "posted by {0}"
        /// </summary>
        public static LocalisableString PostPostedBy(LocalisableString username) => new TranslatableString(getKey(@"post.posted_by"), @"posted by {0}", username);

        /// <summary>
        /// "Delete post"
        /// </summary>
        public static LocalisableString PostActionsDestroy => new TranslatableString(getKey(@"post.actions.destroy"), @"Delete post");

        /// <summary>
        /// "Edit post"
        /// </summary>
        public static LocalisableString PostActionsEdit => new TranslatableString(getKey(@"post.actions.edit"), @"Edit post");

        /// <summary>
        /// "Report post"
        /// </summary>
        public static LocalisableString PostActionsReport => new TranslatableString(getKey(@"post.actions.report"), @"Report post");

        /// <summary>
        /// "Restore post"
        /// </summary>
        public static LocalisableString PostActionsRestore => new TranslatableString(getKey(@"post.actions.restore"), @"Restore post");

        /// <summary>
        /// "New reply"
        /// </summary>
        public static LocalisableString PostCreateTitleReply => new TranslatableString(getKey(@"post.create.title.reply"), @"New reply");

        /// <summary>
        /// "{0} post|{0} posts"
        /// </summary>
        public static LocalisableString PostInfoPostCount(LocalisableString countDelimited) => new TranslatableString(getKey(@"post.info.post_count"), @"{0} post|{0} posts", countDelimited);

        /// <summary>
        /// "Topic Starter"
        /// </summary>
        public static LocalisableString PostInfoTopicStarter => new TranslatableString(getKey(@"post.info.topic_starter"), @"Topic Starter");

        /// <summary>
        /// "Go to post"
        /// </summary>
        public static LocalisableString SearchGoToPost => new TranslatableString(getKey(@"search.go_to_post"), @"Go to post");

        /// <summary>
        /// "enter post number"
        /// </summary>
        public static LocalisableString SearchPostNumberInput => new TranslatableString(getKey(@"search.post_number_input"), @"enter post number");

        /// <summary>
        /// "{0} posts total"
        /// </summary>
        public static LocalisableString SearchTotalPosts(LocalisableString postsCount) => new TranslatableString(getKey(@"search.total_posts"), @"{0} posts total", postsCount);

        /// <summary>
        /// "Really delete topic?"
        /// </summary>
        public static LocalisableString TopicConfirmDestroy => new TranslatableString(getKey(@"topic.confirm_destroy"), @"Really delete topic?");

        /// <summary>
        /// "Really restore topic?"
        /// </summary>
        public static LocalisableString TopicConfirmRestore => new TranslatableString(getKey(@"topic.confirm_restore"), @"Really restore topic?");

        /// <summary>
        /// "deleted topic"
        /// </summary>
        public static LocalisableString TopicDeleted => new TranslatableString(getKey(@"topic.deleted"), @"deleted topic");

        /// <summary>
        /// "view latest post"
        /// </summary>
        public static LocalisableString TopicGoToLatest => new TranslatableString(getKey(@"topic.go_to_latest"), @"view latest post");

        /// <summary>
        /// "You have replied to this topic"
        /// </summary>
        public static LocalisableString TopicHasReplied => new TranslatableString(getKey(@"topic.has_replied"), @"You have replied to this topic");

        /// <summary>
        /// "in {0}"
        /// </summary>
        public static LocalisableString TopicInForum(LocalisableString forum) => new TranslatableString(getKey(@"topic.in_forum"), @"in {0}", forum);

        /// <summary>
        /// "{0} by {1}"
        /// </summary>
        public static LocalisableString TopicLatestPost(LocalisableString when, LocalisableString user) => new TranslatableString(getKey(@"topic.latest_post"), @"{0} by {1}", when, user);

        /// <summary>
        /// "last reply by {0}"
        /// </summary>
        public static LocalisableString TopicLatestReplyBy(LocalisableString user) => new TranslatableString(getKey(@"topic.latest_reply_by"), @"last reply by {0}", user);

        /// <summary>
        /// "New topic"
        /// </summary>
        public static LocalisableString TopicNewTopic => new TranslatableString(getKey(@"topic.new_topic"), @"New topic");

        /// <summary>
        /// "Sign in to post new topic"
        /// </summary>
        public static LocalisableString TopicNewTopicLogin => new TranslatableString(getKey(@"topic.new_topic_login"), @"Sign in to post new topic");

        /// <summary>
        /// "Post"
        /// </summary>
        public static LocalisableString TopicPostReply => new TranslatableString(getKey(@"topic.post_reply"), @"Post");

        /// <summary>
        /// "Type here to reply"
        /// </summary>
        public static LocalisableString TopicReplyBoxPlaceholder => new TranslatableString(getKey(@"topic.reply_box_placeholder"), @"Type here to reply");

        /// <summary>
        /// "Re"
        /// </summary>
        public static LocalisableString TopicReplyTitlePrefix => new TranslatableString(getKey(@"topic.reply_title_prefix"), @"Re");

        /// <summary>
        /// "by {0}"
        /// </summary>
        public static LocalisableString TopicStartedBy(LocalisableString user) => new TranslatableString(getKey(@"topic.started_by"), @"by {0}", user);

        /// <summary>
        /// "started by {0}"
        /// </summary>
        public static LocalisableString TopicStartedByVerbose(LocalisableString user) => new TranslatableString(getKey(@"topic.started_by_verbose"), @"started by {0}", user);

        /// <summary>
        /// "Delete topic"
        /// </summary>
        public static LocalisableString TopicActionsDestroy => new TranslatableString(getKey(@"topic.actions.destroy"), @"Delete topic");

        /// <summary>
        /// "Restore topic"
        /// </summary>
        public static LocalisableString TopicActionsRestore => new TranslatableString(getKey(@"topic.actions.restore"), @"Restore topic");

        /// <summary>
        /// "Close"
        /// </summary>
        public static LocalisableString TopicCreateClose => new TranslatableString(getKey(@"topic.create.close"), @"Close");

        /// <summary>
        /// "Preview"
        /// </summary>
        public static LocalisableString TopicCreatePreview => new TranslatableString(getKey(@"topic.create.preview"), @"Preview");

        /// <summary>
        /// "Write"
        /// </summary>
        public static LocalisableString TopicCreatePreviewHide => new TranslatableString(getKey(@"topic.create.preview_hide"), @"Write");

        /// <summary>
        /// "Post"
        /// </summary>
        public static LocalisableString TopicCreateSubmit => new TranslatableString(getKey(@"topic.create.submit"), @"Post");

        /// <summary>
        /// "This topic has been inactive for a while. Only post here if you have a specific reason to do so."
        /// </summary>
        public static LocalisableString TopicCreateNecropostDefault => new TranslatableString(getKey(@"topic.create.necropost.default"), @"This topic has been inactive for a while. Only post here if you have a specific reason to do so.");

        /// <summary>
        /// "This topic has been inactive for a while. If you don&#39;t have a specific reason to post here, please {0} instead."
        /// </summary>
        public static LocalisableString TopicCreateNecropostNewTopicDefault(LocalisableString create) => new TranslatableString(getKey(@"topic.create.necropost.new_topic._"), @"This topic has been inactive for a while. If you don't have a specific reason to post here, please {0} instead.", create);

        /// <summary>
        /// "create a new topic"
        /// </summary>
        public static LocalisableString TopicCreateNecropostNewTopicCreate => new TranslatableString(getKey(@"topic.create.necropost.new_topic.create"), @"create a new topic");

        /// <summary>
        /// "Type post content here"
        /// </summary>
        public static LocalisableString TopicCreatePlaceholderBody => new TranslatableString(getKey(@"topic.create.placeholder.body"), @"Type post content here");

        /// <summary>
        /// "Click here to set title"
        /// </summary>
        public static LocalisableString TopicCreatePlaceholderTitle => new TranslatableString(getKey(@"topic.create.placeholder.title"), @"Click here to set title");

        /// <summary>
        /// "click to enter specific post number"
        /// </summary>
        public static LocalisableString TopicJumpEnter => new TranslatableString(getKey(@"topic.jump.enter"), @"click to enter specific post number");

        /// <summary>
        /// "go to first post"
        /// </summary>
        public static LocalisableString TopicJumpFirst => new TranslatableString(getKey(@"topic.jump.first"), @"go to first post");

        /// <summary>
        /// "go to last post"
        /// </summary>
        public static LocalisableString TopicJumpLast => new TranslatableString(getKey(@"topic.jump.last"), @"go to last post");

        /// <summary>
        /// "skip next 10 posts"
        /// </summary>
        public static LocalisableString TopicJumpNext => new TranslatableString(getKey(@"topic.jump.next"), @"skip next 10 posts");

        /// <summary>
        /// "go back 10 posts"
        /// </summary>
        public static LocalisableString TopicJumpPrevious => new TranslatableString(getKey(@"topic.jump.previous"), @"go back 10 posts");

        /// <summary>
        /// "Topic logs"
        /// </summary>
        public static LocalisableString TopicLogsDefault => new TranslatableString(getKey(@"topic.logs._"), @"Topic logs");

        /// <summary>
        /// "Browse topic logs"
        /// </summary>
        public static LocalisableString TopicLogsButton => new TranslatableString(getKey(@"topic.logs.button"), @"Browse topic logs");

        /// <summary>
        /// "Action"
        /// </summary>
        public static LocalisableString TopicLogsColumnsAction => new TranslatableString(getKey(@"topic.logs.columns.action"), @"Action");

        /// <summary>
        /// "Date"
        /// </summary>
        public static LocalisableString TopicLogsColumnsDate => new TranslatableString(getKey(@"topic.logs.columns.date"), @"Date");

        /// <summary>
        /// "User"
        /// </summary>
        public static LocalisableString TopicLogsColumnsUser => new TranslatableString(getKey(@"topic.logs.columns.user"), @"User");

        /// <summary>
        /// "added &quot;{0}&quot; tag"
        /// </summary>
        public static LocalisableString TopicLogsDataAddTag(LocalisableString tag) => new TranslatableString(getKey(@"topic.logs.data.add_tag"), @"added ""{0}"" tag", tag);

        /// <summary>
        /// "pinned topic and marked as announcement"
        /// </summary>
        public static LocalisableString TopicLogsDataAnnouncement => new TranslatableString(getKey(@"topic.logs.data.announcement"), @"pinned topic and marked as announcement");

        /// <summary>
        /// "to {0}"
        /// </summary>
        public static LocalisableString TopicLogsDataEditTopic(LocalisableString title) => new TranslatableString(getKey(@"topic.logs.data.edit_topic"), @"to {0}", title);

        /// <summary>
        /// "from {0}"
        /// </summary>
        public static LocalisableString TopicLogsDataFork(LocalisableString topic) => new TranslatableString(getKey(@"topic.logs.data.fork"), @"from {0}", topic);

        /// <summary>
        /// "pinned topic"
        /// </summary>
        public static LocalisableString TopicLogsDataPin => new TranslatableString(getKey(@"topic.logs.data.pin"), @"pinned topic");

        /// <summary>
        /// "posted by {0}"
        /// </summary>
        public static LocalisableString TopicLogsDataPostOperation(LocalisableString username) => new TranslatableString(getKey(@"topic.logs.data.post_operation"), @"posted by {0}", username);

        /// <summary>
        /// "removed &quot;{0}&quot; tag"
        /// </summary>
        public static LocalisableString TopicLogsDataRemoveTag(LocalisableString tag) => new TranslatableString(getKey(@"topic.logs.data.remove_tag"), @"removed ""{0}"" tag", tag);

        /// <summary>
        /// "from {0}"
        /// </summary>
        public static LocalisableString TopicLogsDataSourceForumOperation(LocalisableString forum) => new TranslatableString(getKey(@"topic.logs.data.source_forum_operation"), @"from {0}", forum);

        /// <summary>
        /// "unpinned topic"
        /// </summary>
        public static LocalisableString TopicLogsDataUnpin => new TranslatableString(getKey(@"topic.logs.data.unpin"), @"unpinned topic");

        /// <summary>
        /// "no logs found..."
        /// </summary>
        public static LocalisableString TopicLogsNoResults => new TranslatableString(getKey(@"topic.logs.no_results"), @"no logs found...");

        /// <summary>
        /// "Deleted post"
        /// </summary>
        public static LocalisableString TopicLogsOperationsDeletePost => new TranslatableString(getKey(@"topic.logs.operations.delete_post"), @"Deleted post");

        /// <summary>
        /// "Deleted topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsDeleteTopic => new TranslatableString(getKey(@"topic.logs.operations.delete_topic"), @"Deleted topic");

        /// <summary>
        /// "Changed topic title"
        /// </summary>
        public static LocalisableString TopicLogsOperationsEditTopic => new TranslatableString(getKey(@"topic.logs.operations.edit_topic"), @"Changed topic title");

        /// <summary>
        /// "Edited topic poll"
        /// </summary>
        public static LocalisableString TopicLogsOperationsEditPoll => new TranslatableString(getKey(@"topic.logs.operations.edit_poll"), @"Edited topic poll");

        /// <summary>
        /// "Copied topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsFork => new TranslatableString(getKey(@"topic.logs.operations.fork"), @"Copied topic");

        /// <summary>
        /// "Issued tag"
        /// </summary>
        public static LocalisableString TopicLogsOperationsIssueTag => new TranslatableString(getKey(@"topic.logs.operations.issue_tag"), @"Issued tag");

        /// <summary>
        /// "Locked topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsLock => new TranslatableString(getKey(@"topic.logs.operations.lock"), @"Locked topic");

        /// <summary>
        /// "Merged posts into this topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsMerge => new TranslatableString(getKey(@"topic.logs.operations.merge"), @"Merged posts into this topic");

        /// <summary>
        /// "Moved topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsMove => new TranslatableString(getKey(@"topic.logs.operations.move"), @"Moved topic");

        /// <summary>
        /// "Pinned topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsPin => new TranslatableString(getKey(@"topic.logs.operations.pin"), @"Pinned topic");

        /// <summary>
        /// "Edited post"
        /// </summary>
        public static LocalisableString TopicLogsOperationsPostEdited => new TranslatableString(getKey(@"topic.logs.operations.post_edited"), @"Edited post");

        /// <summary>
        /// "Restored post"
        /// </summary>
        public static LocalisableString TopicLogsOperationsRestorePost => new TranslatableString(getKey(@"topic.logs.operations.restore_post"), @"Restored post");

        /// <summary>
        /// "Restored topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsRestoreTopic => new TranslatableString(getKey(@"topic.logs.operations.restore_topic"), @"Restored topic");

        /// <summary>
        /// "Moved split posts"
        /// </summary>
        public static LocalisableString TopicLogsOperationsSplitDestination => new TranslatableString(getKey(@"topic.logs.operations.split_destination"), @"Moved split posts");

        /// <summary>
        /// "Split posts"
        /// </summary>
        public static LocalisableString TopicLogsOperationsSplitSource => new TranslatableString(getKey(@"topic.logs.operations.split_source"), @"Split posts");

        /// <summary>
        /// "Set topic type"
        /// </summary>
        public static LocalisableString TopicLogsOperationsTopicType => new TranslatableString(getKey(@"topic.logs.operations.topic_type"), @"Set topic type");

        /// <summary>
        /// "Changed topic type"
        /// </summary>
        public static LocalisableString TopicLogsOperationsTopicTypeChanged => new TranslatableString(getKey(@"topic.logs.operations.topic_type_changed"), @"Changed topic type");

        /// <summary>
        /// "Unlocked topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsUnlock => new TranslatableString(getKey(@"topic.logs.operations.unlock"), @"Unlocked topic");

        /// <summary>
        /// "Unpinned topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsUnpin => new TranslatableString(getKey(@"topic.logs.operations.unpin"), @"Unpinned topic");

        /// <summary>
        /// "Locked own topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsUserLock => new TranslatableString(getKey(@"topic.logs.operations.user_lock"), @"Locked own topic");

        /// <summary>
        /// "Unlocked own topic"
        /// </summary>
        public static LocalisableString TopicLogsOperationsUserUnlock => new TranslatableString(getKey(@"topic.logs.operations.user_unlock"), @"Unlocked own topic");

        /// <summary>
        /// "Cancel"
        /// </summary>
        public static LocalisableString TopicPostEditCancel => new TranslatableString(getKey(@"topic.post_edit.cancel"), @"Cancel");

        /// <summary>
        /// "Save"
        /// </summary>
        public static LocalisableString TopicPostEditPost => new TranslatableString(getKey(@"topic.post_edit.post"), @"Save");

        /// <summary>
        /// "forum topic watchlist"
        /// </summary>
        public static LocalisableString TopicWatchesIndexTitleCompact => new TranslatableString(getKey(@"topic_watches.index.title_compact"), @"forum topic watchlist");

        /// <summary>
        /// "Topics subscribed"
        /// </summary>
        public static LocalisableString TopicWatchesIndexBoxTotal => new TranslatableString(getKey(@"topic_watches.index.box.total"), @"Topics subscribed");

        /// <summary>
        /// "Topics with new replies"
        /// </summary>
        public static LocalisableString TopicWatchesIndexBoxUnread => new TranslatableString(getKey(@"topic_watches.index.box.unread"), @"Topics with new replies");

        /// <summary>
        /// "You subscribed to {0} topics."
        /// </summary>
        public static LocalisableString TopicWatchesIndexInfoTotal(LocalisableString total) => new TranslatableString(getKey(@"topic_watches.index.info.total"), @"You subscribed to {0} topics.", total);

        /// <summary>
        /// "You have {0} unread replies to subscribed topics."
        /// </summary>
        public static LocalisableString TopicWatchesIndexInfoUnread(LocalisableString unread) => new TranslatableString(getKey(@"topic_watches.index.info.unread"), @"You have {0} unread replies to subscribed topics.", unread);

        /// <summary>
        /// "Unsubscribe from topic?"
        /// </summary>
        public static LocalisableString TopicWatchesTopicButtonsRemoveConfirmation => new TranslatableString(getKey(@"topic_watches.topic_buttons.remove.confirmation"), @"Unsubscribe from topic?");

        /// <summary>
        /// "Unsubscribe"
        /// </summary>
        public static LocalisableString TopicWatchesTopicButtonsRemoveTitle => new TranslatableString(getKey(@"topic_watches.topic_buttons.remove.title"), @"Unsubscribe");

        /// <summary>
        /// "Topics"
        /// </summary>
        public static LocalisableString TopicsDefault => new TranslatableString(getKey(@"topics._"), @"Topics");

        /// <summary>
        /// "Sign in to Reply"
        /// </summary>
        public static LocalisableString TopicsActionsLoginReply => new TranslatableString(getKey(@"topics.actions.login_reply"), @"Sign in to Reply");

        /// <summary>
        /// "Reply"
        /// </summary>
        public static LocalisableString TopicsActionsReply => new TranslatableString(getKey(@"topics.actions.reply"), @"Reply");

        /// <summary>
        /// "Quote post for reply"
        /// </summary>
        public static LocalisableString TopicsActionsReplyWithQuote => new TranslatableString(getKey(@"topics.actions.reply_with_quote"), @"Quote post for reply");

        /// <summary>
        /// "Search"
        /// </summary>
        public static LocalisableString TopicsActionsSearch => new TranslatableString(getKey(@"topics.actions.search"), @"Search");

        /// <summary>
        /// "Poll Creation"
        /// </summary>
        public static LocalisableString TopicsCreateCreatePoll => new TranslatableString(getKey(@"topics.create.create_poll"), @"Poll Creation");

        /// <summary>
        /// "Post Preview"
        /// </summary>
        public static LocalisableString TopicsCreatePreview => new TranslatableString(getKey(@"topics.create.preview"), @"Post Preview");

        /// <summary>
        /// "Create a poll"
        /// </summary>
        public static LocalisableString TopicsCreateCreatePollButtonAdd => new TranslatableString(getKey(@"topics.create.create_poll_button.add"), @"Create a poll");

        /// <summary>
        /// "Cancel creating a poll"
        /// </summary>
        public static LocalisableString TopicsCreateCreatePollButtonRemove => new TranslatableString(getKey(@"topics.create.create_poll_button.remove"), @"Cancel creating a poll");

        /// <summary>
        /// "Hide the results of the poll."
        /// </summary>
        public static LocalisableString TopicsCreatePollHideResults => new TranslatableString(getKey(@"topics.create.poll.hide_results"), @"Hide the results of the poll.");

        /// <summary>
        /// "They will be shown only after the poll concludes."
        /// </summary>
        public static LocalisableString TopicsCreatePollHideResultsInfo => new TranslatableString(getKey(@"topics.create.poll.hide_results_info"), @"They will be shown only after the poll concludes.");

        /// <summary>
        /// "Run poll for"
        /// </summary>
        public static LocalisableString TopicsCreatePollLength => new TranslatableString(getKey(@"topics.create.poll.length"), @"Run poll for");

        /// <summary>
        /// "days"
        /// </summary>
        public static LocalisableString TopicsCreatePollLengthDaysSuffix => new TranslatableString(getKey(@"topics.create.poll.length_days_suffix"), @"days");

        /// <summary>
        /// "Leave blank for a never ending poll"
        /// </summary>
        public static LocalisableString TopicsCreatePollLengthInfo => new TranslatableString(getKey(@"topics.create.poll.length_info"), @"Leave blank for a never ending poll");

        /// <summary>
        /// "Options per user"
        /// </summary>
        public static LocalisableString TopicsCreatePollMaxOptions => new TranslatableString(getKey(@"topics.create.poll.max_options"), @"Options per user");

        /// <summary>
        /// "This is the number of options each user may select when voting."
        /// </summary>
        public static LocalisableString TopicsCreatePollMaxOptionsInfo => new TranslatableString(getKey(@"topics.create.poll.max_options_info"), @"This is the number of options each user may select when voting.");

        /// <summary>
        /// "Options"
        /// </summary>
        public static LocalisableString TopicsCreatePollOptions => new TranslatableString(getKey(@"topics.create.poll.options"), @"Options");

        /// <summary>
        /// "Place each options on a new line. You may enter up to 10 options."
        /// </summary>
        public static LocalisableString TopicsCreatePollOptionsInfo => new TranslatableString(getKey(@"topics.create.poll.options_info"), @"Place each options on a new line. You may enter up to 10 options.");

        /// <summary>
        /// "Question"
        /// </summary>
        public static LocalisableString TopicsCreatePollTitle => new TranslatableString(getKey(@"topics.create.poll.title"), @"Question");

        /// <summary>
        /// "Allow re-voting."
        /// </summary>
        public static LocalisableString TopicsCreatePollVoteChange => new TranslatableString(getKey(@"topics.create.poll.vote_change"), @"Allow re-voting.");

        /// <summary>
        /// "If enabled, users are able to change their vote."
        /// </summary>
        public static LocalisableString TopicsCreatePollVoteChangeInfo => new TranslatableString(getKey(@"topics.create.poll.vote_change_info"), @"If enabled, users are able to change their vote.");

        /// <summary>
        /// "Edit title"
        /// </summary>
        public static LocalisableString TopicsEditTitleStart => new TranslatableString(getKey(@"topics.edit_title.start"), @"Edit title");

        /// <summary>
        /// "star priority"
        /// </summary>
        public static LocalisableString TopicsIndexFeatureVotes => new TranslatableString(getKey(@"topics.index.feature_votes"), @"star priority");

        /// <summary>
        /// "replies"
        /// </summary>
        public static LocalisableString TopicsIndexReplies => new TranslatableString(getKey(@"topics.index.replies"), @"replies");

        /// <summary>
        /// "views"
        /// </summary>
        public static LocalisableString TopicsIndexViews => new TranslatableString(getKey(@"topics.index.views"), @"views");

        /// <summary>
        /// "Remove &quot;added&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAddedTo0 => new TranslatableString(getKey(@"topics.issue_tag_added.to_0"), @"Remove ""added"" tag");

        /// <summary>
        /// "Removed &quot;added&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAddedTo0Done => new TranslatableString(getKey(@"topics.issue_tag_added.to_0_done"), @"Removed ""added"" tag");

        /// <summary>
        /// "Add &quot;added&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAddedTo1 => new TranslatableString(getKey(@"topics.issue_tag_added.to_1"), @"Add ""added"" tag");

        /// <summary>
        /// "Added &quot;added&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAddedTo1Done => new TranslatableString(getKey(@"topics.issue_tag_added.to_1_done"), @"Added ""added"" tag");

        /// <summary>
        /// "Remove &quot;assigned&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAssignedTo0 => new TranslatableString(getKey(@"topics.issue_tag_assigned.to_0"), @"Remove ""assigned"" tag");

        /// <summary>
        /// "Removed &quot;assigned&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAssignedTo0Done => new TranslatableString(getKey(@"topics.issue_tag_assigned.to_0_done"), @"Removed ""assigned"" tag");

        /// <summary>
        /// "Add &quot;assigned&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAssignedTo1 => new TranslatableString(getKey(@"topics.issue_tag_assigned.to_1"), @"Add ""assigned"" tag");

        /// <summary>
        /// "Added &quot;assigned&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagAssignedTo1Done => new TranslatableString(getKey(@"topics.issue_tag_assigned.to_1_done"), @"Added ""assigned"" tag");

        /// <summary>
        /// "Remove &quot;confirmed&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagConfirmedTo0 => new TranslatableString(getKey(@"topics.issue_tag_confirmed.to_0"), @"Remove ""confirmed"" tag");

        /// <summary>
        /// "Removed &quot;confirmed&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagConfirmedTo0Done => new TranslatableString(getKey(@"topics.issue_tag_confirmed.to_0_done"), @"Removed ""confirmed"" tag");

        /// <summary>
        /// "Add &quot;confirmed&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagConfirmedTo1 => new TranslatableString(getKey(@"topics.issue_tag_confirmed.to_1"), @"Add ""confirmed"" tag");

        /// <summary>
        /// "Added &quot;confirmed&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagConfirmedTo1Done => new TranslatableString(getKey(@"topics.issue_tag_confirmed.to_1_done"), @"Added ""confirmed"" tag");

        /// <summary>
        /// "Remove &quot;duplicate&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagDuplicateTo0 => new TranslatableString(getKey(@"topics.issue_tag_duplicate.to_0"), @"Remove ""duplicate"" tag");

        /// <summary>
        /// "Removed &quot;duplicate&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagDuplicateTo0Done => new TranslatableString(getKey(@"topics.issue_tag_duplicate.to_0_done"), @"Removed ""duplicate"" tag");

        /// <summary>
        /// "Add &quot;duplicate&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagDuplicateTo1 => new TranslatableString(getKey(@"topics.issue_tag_duplicate.to_1"), @"Add ""duplicate"" tag");

        /// <summary>
        /// "Added &quot;duplicate&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagDuplicateTo1Done => new TranslatableString(getKey(@"topics.issue_tag_duplicate.to_1_done"), @"Added ""duplicate"" tag");

        /// <summary>
        /// "Remove &quot;invalid&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagInvalidTo0 => new TranslatableString(getKey(@"topics.issue_tag_invalid.to_0"), @"Remove ""invalid"" tag");

        /// <summary>
        /// "Removed &quot;invalid&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagInvalidTo0Done => new TranslatableString(getKey(@"topics.issue_tag_invalid.to_0_done"), @"Removed ""invalid"" tag");

        /// <summary>
        /// "Add &quot;invalid&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagInvalidTo1 => new TranslatableString(getKey(@"topics.issue_tag_invalid.to_1"), @"Add ""invalid"" tag");

        /// <summary>
        /// "Added &quot;invalid&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagInvalidTo1Done => new TranslatableString(getKey(@"topics.issue_tag_invalid.to_1_done"), @"Added ""invalid"" tag");

        /// <summary>
        /// "Remove &quot;resolved&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagResolvedTo0 => new TranslatableString(getKey(@"topics.issue_tag_resolved.to_0"), @"Remove ""resolved"" tag");

        /// <summary>
        /// "Removed &quot;resolved&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagResolvedTo0Done => new TranslatableString(getKey(@"topics.issue_tag_resolved.to_0_done"), @"Removed ""resolved"" tag");

        /// <summary>
        /// "Add &quot;resolved&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagResolvedTo1 => new TranslatableString(getKey(@"topics.issue_tag_resolved.to_1"), @"Add ""resolved"" tag");

        /// <summary>
        /// "Added &quot;resolved&quot; tag"
        /// </summary>
        public static LocalisableString TopicsIssueTagResolvedTo1Done => new TranslatableString(getKey(@"topics.issue_tag_resolved.to_1_done"), @"Added ""resolved"" tag");

        /// <summary>
        /// "This topic is locked and can not be replied to"
        /// </summary>
        public static LocalisableString TopicsLockIsLocked => new TranslatableString(getKey(@"topics.lock.is_locked"), @"This topic is locked and can not be replied to");

        /// <summary>
        /// "Unlock topic"
        /// </summary>
        public static LocalisableString TopicsLockTo0 => new TranslatableString(getKey(@"topics.lock.to_0"), @"Unlock topic");

        /// <summary>
        /// "Unlock topic?"
        /// </summary>
        public static LocalisableString TopicsLockTo0Confirm => new TranslatableString(getKey(@"topics.lock.to_0_confirm"), @"Unlock topic?");

        /// <summary>
        /// "Topic has been unlocked"
        /// </summary>
        public static LocalisableString TopicsLockTo0Done => new TranslatableString(getKey(@"topics.lock.to_0_done"), @"Topic has been unlocked");

        /// <summary>
        /// "Lock topic"
        /// </summary>
        public static LocalisableString TopicsLockTo1 => new TranslatableString(getKey(@"topics.lock.to_1"), @"Lock topic");

        /// <summary>
        /// "Lock topic?"
        /// </summary>
        public static LocalisableString TopicsLockTo1Confirm => new TranslatableString(getKey(@"topics.lock.to_1_confirm"), @"Lock topic?");

        /// <summary>
        /// "Topic has been locked"
        /// </summary>
        public static LocalisableString TopicsLockTo1Done => new TranslatableString(getKey(@"topics.lock.to_1_done"), @"Topic has been locked");

        /// <summary>
        /// "Move to another forum"
        /// </summary>
        public static LocalisableString TopicsModerateMoveTitle => new TranslatableString(getKey(@"topics.moderate_move.title"), @"Move to another forum");

        /// <summary>
        /// "Unpin topic"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo0 => new TranslatableString(getKey(@"topics.moderate_pin.to_0"), @"Unpin topic");

        /// <summary>
        /// "Unpin topic?"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo0Confirm => new TranslatableString(getKey(@"topics.moderate_pin.to_0_confirm"), @"Unpin topic?");

        /// <summary>
        /// "Topic has been unpinned"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo0Done => new TranslatableString(getKey(@"topics.moderate_pin.to_0_done"), @"Topic has been unpinned");

        /// <summary>
        /// "Pin topic"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo1 => new TranslatableString(getKey(@"topics.moderate_pin.to_1"), @"Pin topic");

        /// <summary>
        /// "Pin topic?"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo1Confirm => new TranslatableString(getKey(@"topics.moderate_pin.to_1_confirm"), @"Pin topic?");

        /// <summary>
        /// "Topic has been pinned"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo1Done => new TranslatableString(getKey(@"topics.moderate_pin.to_1_done"), @"Topic has been pinned");

        /// <summary>
        /// "Pin topic and mark as announcement"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo2 => new TranslatableString(getKey(@"topics.moderate_pin.to_2"), @"Pin topic and mark as announcement");

        /// <summary>
        /// "Pin topic and mark as announcement?"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo2Confirm => new TranslatableString(getKey(@"topics.moderate_pin.to_2_confirm"), @"Pin topic and mark as announcement?");

        /// <summary>
        /// "Topic has been pinned and marked as announcement"
        /// </summary>
        public static LocalisableString TopicsModeratePinTo2Done => new TranslatableString(getKey(@"topics.moderate_pin.to_2_done"), @"Topic has been pinned and marked as announcement");

        /// <summary>
        /// "Show deleted posts"
        /// </summary>
        public static LocalisableString TopicsModerateToggleDeletedShow => new TranslatableString(getKey(@"topics.moderate_toggle_deleted.show"), @"Show deleted posts");

        /// <summary>
        /// "Hide deleted posts"
        /// </summary>
        public static LocalisableString TopicsModerateToggleDeletedHide => new TranslatableString(getKey(@"topics.moderate_toggle_deleted.hide"), @"Hide deleted posts");

        /// <summary>
        /// "Deleted Posts"
        /// </summary>
        public static LocalisableString TopicsShowDeletedPosts => new TranslatableString(getKey(@"topics.show.deleted-posts"), @"Deleted Posts");

        /// <summary>
        /// "Total Posts"
        /// </summary>
        public static LocalisableString TopicsShowTotalPosts => new TranslatableString(getKey(@"topics.show.total_posts"), @"Total Posts");

        /// <summary>
        /// "Current Priority: +{0}"
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteCurrent(LocalisableString count) => new TranslatableString(getKey(@"topics.show.feature_vote.current"), @"Current Priority: +{0}", count);

        /// <summary>
        /// "Promote this request"
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteDo => new TranslatableString(getKey(@"topics.show.feature_vote.do"), @"Promote this request");

        /// <summary>
        /// "This is a {0}. Feature requests can be voted up by {1}."
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteInfoDefault(LocalisableString featureRequest, LocalisableString supporters) => new TranslatableString(getKey(@"topics.show.feature_vote.info._"), @"This is a {0}. Feature requests can be voted up by {1}.", featureRequest, supporters);

        /// <summary>
        /// "feature request"
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteInfoFeatureRequest => new TranslatableString(getKey(@"topics.show.feature_vote.info.feature_request"), @"feature request");

        /// <summary>
        /// "supporters"
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteInfoSupporters => new TranslatableString(getKey(@"topics.show.feature_vote.info.supporters"), @"supporters");

        /// <summary>
        /// "{0} no votes|{1} {0} vote|[2,*] {0} votes"
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteUserCount(LocalisableString countDelimited) => new TranslatableString(getKey(@"topics.show.feature_vote.user.count"), @"{0} no votes|{1} {0} vote|[2,*] {0} votes", countDelimited);

        /// <summary>
        /// "You have {0} remaining."
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteUserCurrent(LocalisableString votes) => new TranslatableString(getKey(@"topics.show.feature_vote.user.current"), @"You have {0} remaining.", votes);

        /// <summary>
        /// "You don&#39;t have any more votes remaining"
        /// </summary>
        public static LocalisableString TopicsShowFeatureVoteUserNotEnough => new TranslatableString(getKey(@"topics.show.feature_vote.user.not_enough"), @"You don't have any more votes remaining");

        /// <summary>
        /// "Poll Edit"
        /// </summary>
        public static LocalisableString TopicsShowPollEdit => new TranslatableString(getKey(@"topics.show.poll.edit"), @"Poll Edit");

        /// <summary>
        /// "Editing a poll will remove the current results!"
        /// </summary>
        public static LocalisableString TopicsShowPollEditWarning => new TranslatableString(getKey(@"topics.show.poll.edit_warning"), @"Editing a poll will remove the current results!");

        /// <summary>
        /// "Vote"
        /// </summary>
        public static LocalisableString TopicsShowPollVote => new TranslatableString(getKey(@"topics.show.poll.vote"), @"Vote");

        /// <summary>
        /// "Change vote"
        /// </summary>
        public static LocalisableString TopicsShowPollButtonChangeVote => new TranslatableString(getKey(@"topics.show.poll.button.change_vote"), @"Change vote");

        /// <summary>
        /// "Edit poll"
        /// </summary>
        public static LocalisableString TopicsShowPollButtonEdit => new TranslatableString(getKey(@"topics.show.poll.button.edit"), @"Edit poll");

        /// <summary>
        /// "Skip to results"
        /// </summary>
        public static LocalisableString TopicsShowPollButtonViewResults => new TranslatableString(getKey(@"topics.show.poll.button.view_results"), @"Skip to results");

        /// <summary>
        /// "Vote"
        /// </summary>
        public static LocalisableString TopicsShowPollButtonVote => new TranslatableString(getKey(@"topics.show.poll.button.vote"), @"Vote");

        /// <summary>
        /// "Polling will end at {0}"
        /// </summary>
        public static LocalisableString TopicsShowPollDetailEndTime(LocalisableString time) => new TranslatableString(getKey(@"topics.show.poll.detail.end_time"), @"Polling will end at {0}", time);

        /// <summary>
        /// "Polling ended {0}"
        /// </summary>
        public static LocalisableString TopicsShowPollDetailEnded(LocalisableString time) => new TranslatableString(getKey(@"topics.show.poll.detail.ended"), @"Polling ended {0}", time);

        /// <summary>
        /// "Results will be shown after polling ends."
        /// </summary>
        public static LocalisableString TopicsShowPollDetailResultsHidden => new TranslatableString(getKey(@"topics.show.poll.detail.results_hidden"), @"Results will be shown after polling ends.");

        /// <summary>
        /// "Total votes: {0}"
        /// </summary>
        public static LocalisableString TopicsShowPollDetailTotal(LocalisableString count) => new TranslatableString(getKey(@"topics.show.poll.detail.total"), @"Total votes: {0}", count);

        /// <summary>
        /// "Not bookmarked"
        /// </summary>
        public static LocalisableString TopicsWatchToNotWatching => new TranslatableString(getKey(@"topics.watch.to_not_watching"), @"Not bookmarked");

        /// <summary>
        /// "Bookmark"
        /// </summary>
        public static LocalisableString TopicsWatchToWatching => new TranslatableString(getKey(@"topics.watch.to_watching"), @"Bookmark");

        /// <summary>
        /// "Bookmark with notification"
        /// </summary>
        public static LocalisableString TopicsWatchToWatchingMail => new TranslatableString(getKey(@"topics.watch.to_watching_mail"), @"Bookmark with notification");

        /// <summary>
        /// "Notification is enabled. Click to disable"
        /// </summary>
        public static LocalisableString TopicsWatchTooltipMailDisable => new TranslatableString(getKey(@"topics.watch.tooltip_mail_disable"), @"Notification is enabled. Click to disable");

        /// <summary>
        /// "Notification is disabled. Click to enable"
        /// </summary>
        public static LocalisableString TopicsWatchTooltipMailEnable => new TranslatableString(getKey(@"topics.watch.tooltip_mail_enable"), @"Notification is disabled. Click to enable");

        private static string getKey(string key) => $@"{prefix}:{key}";
    }
}