package apperr const LogsErrorMessage = "Access to the requested resource is forbidden due to incorrect password and/or username." const BodyErrorMessage = "The request cannot be processed due to a mismatch in the format of the body." const IdUint32ErrorMessage = "The server expects the ID to be in the format of an unsigned 32-bit integer (uint32)." const ArticleNotFoundErrorMessage = "Article not found" const ImageNotFoundErrorMessage = "Image not found" const DisplayNameErrorMessage = "Display name must be 60 characters or fewer." const ArticleTitleErrorMessage = "Article title must be between 3 and 200 characters." const RegistrationClosedErrorMessage = "You are not allowed to create a user. Log in or reset database." const RegistrationFailedErrorMessage = "Registration failed. Please try again later." const UnauthorizedErrorMessage = "You must be logged in to access this resource." const VerificationFailedErrorMessage = "The verification code is invalid or has expired." const AlreadyVerifiedErrorMessage = "This account is already verified and cannot be cancelled this way." const VerificationRequiredErrorMessage = "You must verify your account to access this resource." const PasswordResetRequestedMessage = "If an account exists for that email, a password reset link has been sent." const PasswordResetFailedErrorMessage = "The password reset code is invalid or has expired." const TooManyRequestsErrorMessage = "Too many requests. Please try again later." const CrossOriginErrorMessage = "Cross-origin requests are not allowed." const EmailHasAccountErrorMessage = "This address already has an account." const PendingInviteErrorMessage = "There's already a pending invite for this address." const ErrorCodeHeader = "X-Error-Code" const EmailHasAccountErrorCode = "email_has_account" const InvitePendingErrorCode = "invite_pending" const InviteNotSentErrorMessage = "Couldn't send the invite. Try again in a moment." const InviteNotFoundErrorMessage = "Invite not found" const InviteAlreadyAcceptedErrorMessage = "This invite has already been accepted." const InviteInvalidErrorMessage = "This invite link doesn't work." const InviteExpiredErrorMessage = "This invite has expired." const UsernameTakenErrorMessage = "That username is taken. Try another." const PasswordTooLongErrorMessage = "The password must be 72 bytes or fewer." const MediaQueryErrorMessage = "The media query is invalid." const MediaFilenameErrorMessage = "Enter a filename." const MediaMergeConflictErrorMessage = "Some of the images to merge changed. Refresh and try again." const MediaMergeRequestErrorMessage = "Choose an image to keep and at least one other image to merge into it." const UpdateNotPreparedErrorMessage = "This server cannot update itself yet." const UpdateAlreadyRunningErrorMessage = "An update is already running or waiting to be installed." const NothingToUpdateErrorMessage = "There is nothing to update." const UpdateRefusedErrorMessage = "This update cannot be downloaded." const UpdateRestartMismatchErrorMessage = "The update state changed. Reload the page and try again." const ArticleBodyFormatErrorMessage = "The format must be one of: markdown, html, json." const APIKeyNotFoundErrorMessage = "API key not found" const APIKeyExpiryErrorMessage = "The expiry must be a date in the future." const MissingPermissionErrorMessage = "missing_permission" const MissingPermissionHeader = "X-Missing-Permission" const SessionRequiredErrorMessage = "This action needs a real session." const PurgeConflictErrorMessage = "The library changed, so nothing was purged. Check the new summary and try again." const PurgeBusyErrorMessage = "A purge is already running." const PurgeIntervalErrorMessage = "Enter a whole number of days between 1 and 365." const VariantNotFoundErrorMessage = "Variant not found" const VariantNameErrorMessage = "Use lowercase letters, numbers and dashes, 2 to 32 characters." const VariantDimensionsErrorMessage = "Width and height must be between 1 and 8000, and one of them is required." const VariantFitErrorMessage = "Fit must be cover, contain or inside." const VariantQualityErrorMessage = "Quality must be between 1 and 100." const VariantInvalidErrorMessage = "The variant is not valid." const VariantExistsErrorMessageFormat = "A variant named ā€œ%sā€ already exists. Choose another name." const VariantFormatErrorMessageFormat = "Format must be %s." const VariantSourceTooLargeErrorMessage = "The source image is too large to generate this variant." const VariantSourceUnsupportedErrorMessage = "Variants aren't generated for this format." const VariantSourceUnreadableErrorMessage = "The source image can't be read, so this variant can't be generated." const CachePurgeScopeErrorMessage = "Scope must be all, unused, variant or image." const CachePurgeTargetErrorMessage = "A variant name or an image id is required for this scope." const VariantUnknownMessage = "Unknown variant" const VariantUnsupportedParameterMessage = "Unsupported parameter" const SiteNotFoundErrorMessage = "site_not_found" const InvalidSiteKeyErrorMessage = "invalid_site_key" const SiteKeyTakenErrorMessage = "site_key_taken" const SiteHasArticlesErrorMessage = "site_has_articles" const DefaultSiteErrorMessage = "default_site" const SiteKeyImmutableErrorMessage = "key_immutable" const InvalidSiteURLErrorMessage = "invalid_site_url" const InvalidLocaleErrorMessage = "invalid_locale" const InvalidPublicURLPatternErrorMessage = "invalid_pattern" const PublicURLSchemeErrorMessage = "invalid_scheme" const PublicURLHostErrorMessage = "invalid_host" const PublicURLPlaceholderErrorMessage = "unknown_placeholder" const PublicURLNotEncodedErrorMessage = "not_encoded" const PublicURLMissingSlugErrorMessage = "missing_slug" const SetupRequiredErrorMessage = "setup_required" const LanguagesChangedErrorMessage = "languages_changed" const LanguageInUseErrorMessage = "language_in_use" const DefaultNotEnabledErrorMessage = "default_not_enabled" const NoEnabledLanguageErrorMessage = "no_enabled_language" const InvalidLanguageErrorMessage = "invalid_language" const UnsupportedLanguageErrorMessage = "unsupported_language" const DuplicateLanguageErrorMessage = "duplicate_language" const InvalidSocialLocaleErrorMessage = "invalid_social_locale" const SetupInProgressErrorMessage = "setup_in_progress" const SetupIncompleteErrorMessage = "setup_incomplete" const DuplicateSiteErrorMessage = "duplicate_site" const SiteImageNotFoundErrorMessage = "image_not_found" const UseSetDefaultErrorMessage = "use_set_default" const InvalidReassignErrorMessage = "invalid_reassign" const ReassignTargetNotFoundErrorMessage = "target_role_not_found" const InvalidSocialTypeErrorMessage = "invalid_social_type" const AuthorNotFoundErrorMessage = "author_not_found" const AuthorSlugTakenErrorMessage = "author_slug_taken" const AuthorHasArticlesErrorMessage = "author_has_articles" const UserAlreadyLinkedErrorMessage = "user_already_linked" const AuthorAlreadyLinkedErrorMessage = "author_already_linked" const UserNotFoundErrorMessage = "user_not_found" const AuthorRightsErrorMessage = "author_rights" const BioTooLongErrorMessage = "bio_too_long" const InvalidURLErrorMessage = "invalid_url" const TooManyLinksErrorMessage = "too_many_links" const InvalidSlugErrorMessage = "invalid_slug" const AuthorImageNotFoundErrorMessage = "image_not_found" const ArticleSlugTakenErrorMessage = "slug_taken" const ArticleImageNotFoundErrorMessage = "image_not_found" const InvalidTitleTemplateErrorMessage = "invalid_title_template" const SlugSuggestionHeader = "X-Slug-Suggestion" const ContentTypeNotFoundErrorMessage = "content_type_not_found" const ContentTypeKeyTakenErrorMessage = "content_type_key_taken" const ContentTypeHasEntriesErrorMessage = "content_type_has_entries" const ContentTypeReferencedErrorMessage = "content_type_referenced" const InvalidContentTypeKeyErrorMessage = "invalid_content_type_key" const InvalidIconErrorMessage = "invalid_icon" const BuiltinTypeNotFoundErrorMessage = "builtin_type_not_found" const InvalidFieldErrorMessage = "invalid_field" const SchemaIncompatibleErrorMessage = "schema_incompatible" const EntryNotFoundErrorMessage = "entry_not_found" const InvalidEntryErrorMessage = "invalid_entry" const RoleNotFoundErrorMessage = "role_not_found" const RoleLockedErrorMessage = "role_locked" const RoleBuiltInErrorMessage = "role_built_in" const BuiltInNameErrorMessage = "built_in_name" const NotBuiltInErrorMessage = "not_built_in" const OwnRoleErrorMessage = "own_role" const EscalationErrorMessage = "escalation" const EscalationHeader = "X-Escalation-Key" const RoleNameTakenErrorMessage = "role_name_taken" const RoleConflictErrorMessage = "role_conflict" const RoleHasMembersErrorMessage = "role_has_members" const InvalidRoleNameErrorMessage = "invalid_role_name" const UnknownPermissionErrorMessage = "unknown_permission" const InvalidScopeErrorMessage = "invalid_scope" const OwnerOnlyPermissionErrorMessage = "owner_only_permission" const DuplicatePermissionErrorMessage = "duplicate_permission" const UnknownContentTypeErrorMessage = "unknown_content_type" const InvalidRoleErrorMessage = "invalid_role" const UserRoleChangedErrorMessage = "user_role_changed" const InvalidTransferErrorMessage = "invalid_transfer" const ConfirmationMismatchErrorMessage = "confirmation_mismatch" const WrongPasswordErrorCode = "wrong_password" const SameEmailErrorCode = "same_email" const NoPendingEmailChangeErrorCode = "no_pending_email_change" const InvalidEmailChangeCodeErrorCode = "invalid_email_change_code" const EmailUnavailableErrorCode = "email_unavailable" const LastAdminErrorCode = "last_admin" const AccountNotDeletableErrorCode = "account_not_deletable" const LastRoleHeader = "X-Last-Role" const RevisionConflictErrorMessage = "revision_conflict" const CurrentRevisionHeader = "X-Current-Revision" const LanguageUnavailableErrorMessage = "language_unavailable" const LanguageExistsErrorMessage = "language_exists" const ExistingArticleHeader = "X-Existing-Article-Id" const LanguageNotEnabledErrorMessage = "language_not_enabled" const MissingLanguagesHeader = "X-Missing-Languages" const LanguageDisabledErrorMessage = "language_disabled" const SourceUnavailableErrorMessage = "source_unavailable" const SourceOtherStoryErrorMessage = "source_other_story" const SlugConflictErrorMessage = "slug_conflict" const ConflictingArticlesHeader = "X-Conflicting-Articles" const StoryMoveRequiredErrorMessage = "story_move_required" const StoryBusyErrorMessage = "story_busy" const TargetSiteDeletedErrorMessage = "target_site_deleted" const ArticleNotFoundCode = "article_not_found" const LanguageNotAvailableCode = "language_not_available" const SiteNotFoundCode = "site_not_found" const InvalidLanguageCode = "invalid_language"