[
  {
    "id": "web.incoming_webhook.user.app_error",
    "translation": "Couldn't find the user {{.user}}"
  },
  {
    "id": "web.incoming_webhook.text.app_error",
    "translation": "No text specified."
  },
  {
    "id": "web.incoming_webhook.split_props_length.app_error",
    "translation": "Unable to split webhook props into {{.Max}} character parts."
  },
  {
    "id": "web.incoming_webhook.permissions.app_error",
    "translation": "User {{.user}} does not have appropriate permissions to channel {{.channel}}"
  },
  {
    "id": "web.incoming_webhook.parse.app_error",
    "translation": "Unable to parse incoming data."
  },
  {
    "id": "web.incoming_webhook.invalid.app_error",
    "translation": "Invalid webhook."
  },
  {
    "id": "web.incoming_webhook.disabled.app_error",
    "translation": "Incoming webhooks have been disabled by the system admin."
  },
  {
    "id": "web.incoming_webhook.channel_locked.app_error",
    "translation": "This webhook is not permitted to post to the requested channel {{.channel_id}}"
  },
  {
    "id": "web.incoming_webhook.channel.app_error",
    "translation": "Couldn't find the channel."
  },
  {
    "id": "web.get_access_token.internal_saving.app_error",
    "translation": "Unable to update the user access data."
  },
  {
    "id": "web.error.unsupported_browser.system_browser_or",
    "translation": "or"
  },
  {
    "id": "web.error.unsupported_browser.system_browser_make_default",
    "translation": "Make default"
  },
  {
    "id": "web.error.unsupported_browser.open_system_browser.edge",
    "translation": "Open Edge"
  },
  {
    "id": "web.error.unsupported_browser.no_longer_support_version",
    "translation": "This version of your browser is no longer supported by Mattermost"
  },
  {
    "id": "web.error.unsupported_browser.no_longer_support",
    "translation": "This browser is no longer supported by Mattermost"
  },
  {
    "id": "web.error.unsupported_browser.min_os_version.windows",
    "translation": "Windows 11+"
  },
  {
    "id": "web.error.unsupported_browser.min_os_version.mac",
    "translation": "macOS 14+"
  },
  {
    "id": "web.error.unsupported_browser.min_browser_version.safari",
    "translation": "Version 26.2+"
  },
  {
    "id": "web.error.unsupported_browser.min_browser_version.firefox",
    "translation": "Version 140+"
  },
  {
    "id": "web.error.unsupported_browser.min_browser_version.edge",
    "translation": "Version 144+"
  },
  {
    "id": "web.error.unsupported_browser.min_browser_version.chrome",
    "translation": "Version 144+"
  },
  {
    "id": "web.error.unsupported_browser.learn_more",
    "translation": "Learn more about supported browsers."
  },
  {
    "id": "web.error.unsupported_browser.install_guide.windows",
    "translation": "Install Guide"
  },
  {
    "id": "web.error.unsupported_browser.install_guide.mac",
    "translation": "Install Guide"
  },
  {
    "id": "web.error.unsupported_browser.download_the_app",
    "translation": "Download the App"
  },
  {
    "id": "web.error.unsupported_browser.download_app_or_upgrade_browser",
    "translation": "Download the Mattermost app or use a supported browser for a better experience."
  },
  {
    "id": "web.error.unsupported_browser.download",
    "translation": "Download the App"
  },
  {
    "id": "web.error.unsupported_browser.browser_title.safari",
    "translation": "Safari"
  },
  {
    "id": "web.error.unsupported_browser.browser_title.firefox",
    "translation": "Mozilla Firefox"
  },
  {
    "id": "web.error.unsupported_browser.browser_title.edge",
    "translation": "Microsoft Edge"
  },
  {
    "id": "web.error.unsupported_browser.browser_title.chrome",
    "translation": "Google Chrome"
  },
  {
    "id": "web.error.unsupported_browser.browser_get_latest.safari",
    "translation": "Get the latest version of Safari"
  },
  {
    "id": "web.error.unsupported_browser.browser_get_latest.firefox",
    "translation": "Get the latest version of Firefox"
  },
  {
    "id": "web.error.unsupported_browser.browser_get_latest.chrome",
    "translation": "Get the latest version of Chrome"
  },
  {
    "id": "web.command_webhook.parse.app_error",
    "translation": "Unable to parse incoming data for webhook {{.hook_id}}."
  },
  {
    "id": "web.command_webhook.command.app_error",
    "translation": "Couldn't find the command {{.command_id}}."
  },
  {
    "id": "system.message.name",
    "translation": "System"
  },
  {
    "id": "store.sql_user.get_for_login.app_error",
    "translation": "Unable to find an existing account matching your credentials. This team may require an invite from the team owner to join."
  },
  {
    "id": "store.sql_team.save_member.exists.app_error",
    "translation": "A team member with that ID already exists."
  },
  {
    "id": "store.sql_post.search.disabled",
    "translation": "Searching has been disabled on this server. Please contact your System Administrator."
  },
  {
    "id": "store.sql_file_info.search.disabled",
    "translation": "Searching files has been disabled on this server. Please contact your System Administrator."
  },
  {
    "id": "store.sql_command.update.missing.app_error",
    "translation": "Command does not exist."
  },
  {
    "id": "store.sql_command.save.get.app_error",
    "translation": "Unable to get the command."
  },
  {
    "id": "store.sql_command.get.missing.app_error",
    "translation": "Command does not exist."
  },
  {
    "id": "store.sql_channel.save_direct_channel.not_direct.app_error",
    "translation": "Not a direct channel attempted to be created with SaveDirectChannel."
  },
  {
    "id": "store.sql_channel.save_channel.limit.app_error",
    "translation": "You've reached the limit of the number of allowed channels."
  },
  {
    "id": "store.sql_channel.save_channel.exists.app_error",
    "translation": "A channel with that name already exists on the same team."
  },
  {
    "id": "store.sql_channel.save_channel.existing.app_error",
    "translation": "Must call update for existing channel."
  },
  {
    "id": "store.sql_channel.save.direct_channel.app_error",
    "translation": "Use SaveDirectChannel to create a direct channel."
  },
  {
    "id": "store.sql_channel.save.archived_channel.app_error",
    "translation": "You cannot modify an archived channel."
  },
  {
    "id": "store.sql_channel.get.existing.app_error",
    "translation": "Unable to find the existing channel."
  },
  {
    "id": "store.sql_bot.get.missing.app_error",
    "translation": "Bot does not exist."
  },
  {
    "id": "sharedchannel.permalink.not_found",
    "translation": "This post contains permalinks to other channels which may not be visible to users in other sites."
  },
  {
    "id": "sharedchannel.cannot_deliver_post",
    "translation": "One or more posts could not be delivered to remote site {{.Remote}} because it is offline. The post(s) will be delivered when the site is online."
  },
  {
    "id": "plugin_api.send_mail.missing_to",
    "translation": "Missing TO address."
  },
  {
    "id": "plugin_api.send_mail.missing_subject",
    "translation": "Missing email subject."
  },
  {
    "id": "plugin_api.send_mail.missing_htmlbody",
    "translation": "Missing HTML Body."
  },
  {
    "id": "plugin_api.get_file_link.no_post.app_error",
    "translation": "Unable to get public link for file. File must be attached to a post that can be read."
  },
  {
    "id": "plugin_api.get_file_link.disabled.app_error",
    "translation": "Public links have been disabled."
  },
  {
    "id": "plugin_api.bot_cant_create_bot",
    "translation": "Bot user cannot create bot user."
  },
  {
    "id": "plugin.api.update_user_status.bad_status",
    "translation": "Unable to set the user status. Unknown user status."
  },
  {
    "id": "plugin.api.get_users_in_channel",
    "translation": "Unable to get the users, invalid sorting criteria."
  },
  {
    "id": "oauth.gitlab.tos.error",
    "translation": "GitLab's Terms of Service have updated. Please go to {{.URL}} to accept them and then try logging into Mattermost again."
  },
  {
    "id": "model.websocket_client.connect_fail.app_error",
    "translation": "Unable to connect to the WebSocket server."
  },
  {
    "id": "model.utils.decode_json.app_error",
    "translation": "could not decode."
  },
  {
    "id": "model.user_access_token.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.user_access_token.is_valid.token.app_error",
    "translation": "Invalid access token."
  },
  {
    "id": "model.user_access_token.is_valid.id.app_error",
    "translation": "Invalid value for ID."
  },
  {
    "id": "model.user_access_token.is_valid.description.app_error",
    "translation": "Invalid description, must be 255 or less characters."
  },
  {
    "id": "model.user.is_valid.username.app_error",
    "translation": "Username must begin with a letter, and contain between 3 to 22 lowercase characters made up of numbers, letters, and the symbols '.', '-', and '_'."
  },
  {
    "id": "model.user.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.user.is_valid.pwd_uppercase_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one uppercase letter and at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_uppercase_number_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one uppercase letter, at least one number, and at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_uppercase_number.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one uppercase letter and at least one number."
  },
  {
    "id": "model.user.is_valid.pwd_uppercase.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one uppercase letter."
  },
  {
    "id": "model.user.is_valid.pwd_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_number_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one number and at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_number.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one number."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase_uppercase_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter, at least one uppercase letter, and at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase_uppercase_number_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter, at least one uppercase letter, at least one number, and at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase_uppercase_number.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter, at least one uppercase letter, and at least one number."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase_uppercase.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter and at least one uppercase letter."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter and at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase_number_symbol.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter, at least one number, and at least one symbol (e.g. '~!@#$%^&*()')."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase_number.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter and at least one number."
  },
  {
    "id": "model.user.is_valid.pwd_lowercase.app_error",
    "translation": "Your password must contain at least {{.Min}} characters made up of at least one lowercase letter."
  },
  {
    "id": "model.user.is_valid.position.app_error",
    "translation": "Invalid position: must not be longer than 128 characters."
  },
  {
    "id": "model.user.is_valid.password_limit.app_error",
    "translation": "Unable to set a password over 72 characters due to the limitations of bcrypt."
  },
  {
    "id": "model.user.is_valid.nickname.app_error",
    "translation": "Invalid nickname."
  },
  {
    "id": "model.user.is_valid.marshal.app_error",
    "translation": "Failed to encode field to JSON"
  },
  {
    "id": "model.user.is_valid.locale.app_error",
    "translation": "Invalid locale."
  },
  {
    "id": "model.user.is_valid.last_name.app_error",
    "translation": "Invalid last name."
  },
  {
    "id": "model.user.is_valid.id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.user.is_valid.first_name.app_error",
    "translation": "Invalid first name."
  },
  {
    "id": "model.user.is_valid.email.app_error",
    "translation": "Invalid email."
  },
  {
    "id": "model.user.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.user.is_valid.auth_data_type.app_error",
    "translation": "Invalid user: Auth data can only be set if the user uses an external auth service, not email/password, for authentication."
  },
  {
    "id": "model.user.is_valid.auth_data_pwd.app_error",
    "translation": "Invalid user, password and auth data cannot both be set."
  },
  {
    "id": "model.user.is_valid.auth_data.app_error",
    "translation": "Invalid auth data."
  },
  {
    "id": "model.upload_session.is_valid.user_id.app_error",
    "translation": "Invalid Value for UserId"
  },
  {
    "id": "model.upload_session.is_valid.type.app_error",
    "translation": "Invalid value for Type"
  },
  {
    "id": "model.upload_session.is_valid.path.app_error",
    "translation": "Invalid value for Path"
  },
  {
    "id": "model.upload_session.is_valid.id.app_error",
    "translation": "Invalid value for ID"
  },
  {
    "id": "model.upload_session.is_valid.filename.app_error",
    "translation": "Invalid value for Filename"
  },
  {
    "id": "model.upload_session.is_valid.file_size.app_error",
    "translation": "Invalid value for FileSize"
  },
  {
    "id": "model.upload_session.is_valid.file_offset.app_error",
    "translation": "Invalid value for FileOffset"
  },
  {
    "id": "model.upload_session.is_valid.create_at.app_error",
    "translation": "Invalid value for CreateAt"
  },
  {
    "id": "model.upload_session.is_valid.channel_id.app_error",
    "translation": "Invalid value for ChannelId."
  },
  {
    "id": "model.token.is_valid.size",
    "translation": "Invalid token."
  },
  {
    "id": "model.token.is_valid.expiry",
    "translation": "Invalid token expiry"
  },
  {
    "id": "model.team_member.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.team_member.is_valid.team_id.app_error",
    "translation": "Invalid team ID."
  },
  {
    "id": "model.team.is_valid.url.app_error",
    "translation": "Invalid URL Identifier."
  },
  {
    "id": "model.team.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.team.is_valid.type.app_error",
    "translation": "Invalid type."
  },
  {
    "id": "model.team.is_valid.reserved.app_error",
    "translation": "This URL is unavailable. Please try another."
  },
  {
    "id": "model.team.is_valid.name.app_error",
    "translation": "Invalid name."
  },
  {
    "id": "model.team.is_valid.invite_id.app_error",
    "translation": "Invalid invite ID."
  },
  {
    "id": "model.team.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.team.is_valid.email.app_error",
    "translation": "Invalid email."
  },
  {
    "id": "model.team.is_valid.domains.app_error",
    "translation": "Invalid allowed domains."
  },
  {
    "id": "model.team.is_valid.description.app_error",
    "translation": "Invalid description."
  },
  {
    "id": "model.team.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.team.is_valid.company.app_error",
    "translation": "Invalid company name."
  },
  {
    "id": "model.team.is_valid.characters.app_error",
    "translation": "Name must be 2 or more lowercase alphanumeric characters."
  },
  {
    "id": "model.search_params_list.is_valid.include_deleted_channels.app_error",
    "translation": "All IncludeDeletedChannels params should have the same value."
  },
  {
    "id": "model.reaction.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.plugin_command.error.app_error",
    "translation": "An error occurred while trying to execute this command."
  },
  {
    "id": "model.outgoing_hook.username.app_error",
    "translation": "Invalid username."
  },
  {
    "id": "model.outgoing_hook.is_valid.words.app_error",
    "translation": "Invalid trigger words."
  },
  {
    "id": "model.outgoing_hook.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.outgoing_hook.is_valid.url.app_error",
    "translation": "Invalid callback URLs. Each must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.outgoing_hook.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.outgoing_hook.is_valid.trigger_words.app_error",
    "translation": "Invalid trigger words."
  },
  {
    "id": "model.outgoing_hook.is_valid.token.app_error",
    "translation": "Invalid token."
  },
  {
    "id": "model.outgoing_hook.is_valid.team_id.app_error",
    "translation": "Invalid team ID."
  },
  {
    "id": "model.outgoing_hook.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.outgoing_hook.is_valid.display_name.app_error",
    "translation": "Invalid title."
  },
  {
    "id": "model.outgoing_hook.is_valid.description.app_error",
    "translation": "Invalid description."
  },
  {
    "id": "model.outgoing_hook.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.outgoing_hook.is_valid.content_type.app_error",
    "translation": "Invalid value for content_type."
  },
  {
    "id": "model.outgoing_hook.is_valid.channel_id.app_error",
    "translation": "Invalid channel ID."
  },
  {
    "id": "model.outgoing_hook.is_valid.callback.app_error",
    "translation": "Invalid callback URLs."
  },
  {
    "id": "model.outgoing_hook.icon_url.app_error",
    "translation": "Invalid icon."
  },
  {
    "id": "model.oauth.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.oauth.is_valid.name.app_error",
    "translation": "Invalid name."
  },
  {
    "id": "model.oauth.is_valid.icon_url.app_error",
    "translation": "Icon URL must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.oauth.is_valid.homepage.app_error",
    "translation": "Homepage must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.oauth.is_valid.description.app_error",
    "translation": "Invalid description."
  },
  {
    "id": "model.oauth.is_valid.creator_id.app_error",
    "translation": "Invalid creator ID."
  },
  {
    "id": "model.oauth.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.oauth.is_valid.client_secret.app_error",
    "translation": "Invalid client secret."
  },
  {
    "id": "model.oauth.is_valid.callback.app_error",
    "translation": "Callback URL must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.oauth.is_valid.app_id.app_error",
    "translation": "Invalid app ID."
  },
  {
    "id": "model.link_metadata.is_valid.url.app_error",
    "translation": "Link metadata URL must be set."
  },
  {
    "id": "model.link_metadata.is_valid.type.app_error",
    "translation": "Invalid link metadata type."
  },
  {
    "id": "model.link_metadata.is_valid.timestamp.app_error",
    "translation": "Link metadata timestamp must be nonzero and rounded to the nearest hour."
  },
  {
    "id": "model.link_metadata.is_valid.data_type.app_error",
    "translation": "Link metadata data does not match the given type."
  },
  {
    "id": "model.link_metadata.is_valid.data.app_error",
    "translation": "Link metadata data cannot be nil."
  },
  {
    "id": "model.license_record.is_valid.id.app_error",
    "translation": "Invalid value for ID when uploading a licence."
  },
  {
    "id": "model.license_record.is_valid.create_at.app_error",
    "translation": "Invalid value for create_at when uploading a licence."
  },
  {
    "id": "model.job.is_valid.type.app_error",
    "translation": "Invalid job type."
  },
  {
    "id": "model.job.is_valid.status.app_error",
    "translation": "Invalid job status."
  },
  {
    "id": "model.job.is_valid.id.app_error",
    "translation": "Invalid job ID."
  },
  {
    "id": "model.job.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.incoming_hook.username.app_error",
    "translation": "Invalid username."
  },
  {
    "id": "model.incoming_hook.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.incoming_hook.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.incoming_hook.team_id.app_error",
    "translation": "Invalid team ID."
  },
  {
    "id": "model.incoming_hook.parse_data.app_error",
    "translation": "Unable to parse incoming data."
  },
  {
    "id": "model.incoming_hook.id.app_error",
    "translation": "Invalid ID: {{.Id}}."
  },
  {
    "id": "model.incoming_hook.icon_url.app_error",
    "translation": "Invalid post icon."
  },
  {
    "id": "model.incoming_hook.display_name.app_error",
    "translation": "Invalid title."
  },
  {
    "id": "model.incoming_hook.description.app_error",
    "translation": "Invalid description."
  },
  {
    "id": "model.incoming_hook.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.incoming_hook.channel_id.app_error",
    "translation": "Invalid channel id."
  },
  {
    "id": "model.guest.is_valid.emails.app_error",
    "translation": "Invalid emails."
  },
  {
    "id": "model.guest.is_valid.email.app_error",
    "translation": "Invalid email."
  },
  {
    "id": "model.guest.is_valid.channels.app_error",
    "translation": "Invalid channels."
  },
  {
    "id": "model.guest.is_valid.channel.app_error",
    "translation": "Invalid channel."
  },
  {
    "id": "model.group_syncable.syncable_id.app_error",
    "translation": "invalid syncable ID for group syncable."
  },
  {
    "id": "model.group_syncable.group_id.app_error",
    "translation": "invalid group ID property for group syncable."
  },
  {
    "id": "model.group_member.user_id.app_error",
    "translation": "invalid user ID property for group member."
  },
  {
    "id": "model.group_member.group_id.app_error",
    "translation": "invalid group ID property for group member."
  },
  {
    "id": "model.group.update_at.app_error",
    "translation": "invalid update at property for group."
  },
  {
    "id": "model.group.source.app_error",
    "translation": "invalid source property for group."
  },
  {
    "id": "model.group.remote_id.app_error",
    "translation": "invalid remote ID property for group."
  },
  {
    "id": "model.group.name.invalid_length.app_error",
    "translation": "Name must be 1 to 64 lowercase alphanumeric characters."
  },
  {
    "id": "model.group.name.invalid_chars.app_error",
    "translation": "invalid characters in the name property for group"
  },
  {
    "id": "model.group.name.app_error",
    "translation": "invalid name property for group."
  },
  {
    "id": "model.group.display_name.app_error",
    "translation": "invalid display name property for group."
  },
  {
    "id": "model.group.description.app_error",
    "translation": "invalid description property for group."
  },
  {
    "id": "model.group.create_at.app_error",
    "translation": "invalid create at property for group."
  },
  {
    "id": "model.file_info.is_valid.user_id.app_error",
    "translation": "Invalid value for user_id."
  },
  {
    "id": "model.file_info.is_valid.update_at.app_error",
    "translation": "Invalid value for update_at."
  },
  {
    "id": "model.file_info.is_valid.post_id.app_error",
    "translation": "Invalid value for post_id."
  },
  {
    "id": "model.file_info.is_valid.path.app_error",
    "translation": "Invalid value for path."
  },
  {
    "id": "model.file_info.is_valid.id.app_error",
    "translation": "Invalid value for ID."
  },
  {
    "id": "model.file_info.is_valid.create_at.app_error",
    "translation": "Invalid value for create_at."
  },
  {
    "id": "model.emoji.user_id.app_error",
    "translation": "Invalid creator ID."
  },
  {
    "id": "model.emoji.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.emoji.name.app_error",
    "translation": "Name must be 1 to 64 lowercase alphanumeric characters."
  },
  {
    "id": "model.emoji.id.app_error",
    "translation": "Invalid emoji ID."
  },
  {
    "id": "model.emoji.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.config.is_valid.write_timeout.app_error",
    "translation": "Invalid value for write timeout."
  },
  {
    "id": "model.config.is_valid.websocket_url.app_error",
    "translation": "WebSocket URL must be a valid URL and start with ws:// or wss://."
  },
  {
    "id": "model.config.is_valid.webserver_security.app_error",
    "translation": "Invalid value for webserver connection security."
  },
  {
    "id": "model.config.is_valid.tls_overwrite_cipher.app_error",
    "translation": "Invalid value passed for TLS overwrite cipher - Please refer to the documentation for valid values."
  },
  {
    "id": "model.config.is_valid.tls_key_file_missing.app_error",
    "translation": "Invalid value for TLS key file - Either use LetsEncrypt or set path to existing key file."
  },
  {
    "id": "model.config.is_valid.tls_cert_file_missing.app_error",
    "translation": "Invalid value for TLS certificate file - Either use LetsEncrypt or set path to existing certificate file."
  },
  {
    "id": "model.config.is_valid.time_between_user_typing.app_error",
    "translation": "Time between user typing updates should not be set to less than 1000 milliseconds."
  },
  {
    "id": "model.config.is_valid.teammate_name_display.app_error",
    "translation": "Invalid teammate display. Must be 'full_name', 'nickname_full_name' or 'username'."
  },
  {
    "id": "model.config.is_valid.sql_query_timeout.app_error",
    "translation": "Invalid query timeout for SQL settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.sql_max_conn.app_error",
    "translation": "Invalid maximum open connection for SQL settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.sql_idle.app_error",
    "translation": "Invalid maximum idle connection for SQL settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.sql_driver.app_error",
    "translation": "Invalid driver name for SQL settings. Must be 'postgres'."
  },
  {
    "id": "model.config.is_valid.sql_data_src.app_error",
    "translation": "Invalid data source for SQL settings. Must be set."
  },
  {
    "id": "model.config.is_valid.sql_conn_max_lifetime_milliseconds.app_error",
    "translation": "Invalid connection maximum lifetime for SQL settings. Must be a non-negative number."
  },
  {
    "id": "model.config.is_valid.sql_conn_max_idle_time_milliseconds.app_error",
    "translation": "Invalid connection maximum idle time for SQL settings. Must be a non-negative number."
  },
  {
    "id": "model.config.is_valid.sitename_length.app_error",
    "translation": "Site name must be less than or equal to {{.MaxLength}} characters."
  },
  {
    "id": "model.config.is_valid.site_url_email_batching.app_error",
    "translation": "Unable to enable email batching when SiteURL isn't set."
  },
  {
    "id": "model.config.is_valid.site_url.app_error",
    "translation": "Site URL must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.config.is_valid.saml_username_attribute.app_error",
    "translation": "Invalid Username attribute. Must be set."
  },
  {
    "id": "model.config.is_valid.saml_spidentifier_attribute.app_error",
    "translation": "Service Provider Identifier is required"
  },
  {
    "id": "model.config.is_valid.saml_signature_algorithm.app_error",
    "translation": "Invalid Signature Algorithm."
  },
  {
    "id": "model.config.is_valid.saml_public_cert.app_error",
    "translation": "Service Provider Public Certificate missing. Did you forget to upload it?"
  },
  {
    "id": "model.config.is_valid.saml_private_key.app_error",
    "translation": "Service Provider Private Key missing. Did you forget to upload it?"
  },
  {
    "id": "model.config.is_valid.saml_idp_url.app_error",
    "translation": "SAML SSO URL must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.config.is_valid.saml_idp_descriptor_url.app_error",
    "translation": "Identity Provider Issuer URL cannot be an empty string."
  },
  {
    "id": "model.config.is_valid.saml_idp_cert.app_error",
    "translation": "Identity Provider Public Certificate missing. Did you forget to upload it?"
  },
  {
    "id": "model.config.is_valid.saml_guest_attribute.app_error",
    "translation": "Invalid Guest attribute. Must be in the form 'field=value'."
  },
  {
    "id": "model.config.is_valid.saml_email_attribute.app_error",
    "translation": "Invalid Email attribute. Must be set."
  },
  {
    "id": "model.config.is_valid.saml_canonical_algorithm.app_error",
    "translation": "Invalid Canonical Algorithm."
  },
  {
    "id": "model.config.is_valid.saml_assertion_consumer_service_url.app_error",
    "translation": "Service Provider Login URL must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.config.is_valid.saml_admin_attribute.app_error",
    "translation": "Invalid Admin attribute. Must be in the form 'field=value'."
  },
  {
    "id": "model.config.is_valid.restrict_direct_message.app_error",
    "translation": "Invalid direct message restriction. Must be 'any', or 'team'."
  },
  {
    "id": "model.config.is_valid.read_timeout.app_error",
    "translation": "Invalid value for read timeout."
  },
  {
    "id": "model.config.is_valid.rate_sec.app_error",
    "translation": "Invalid per-second for rate limit settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.rate_mem.app_error",
    "translation": "Invalid memory store size for rate limit settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.password_length.app_error",
    "translation": "Minimum password length must be a whole number greater than or equal to {{.MinLength}} and less than or equal to {{.MaxLength}}."
  },
  {
    "id": "model.config.is_valid.message_export.global_relay.smtp_username.app_error",
    "translation": "Message export job GlobalRelaySettings.SmtpUsername must be set."
  },
  {
    "id": "model.config.is_valid.message_export.global_relay.smtp_password.app_error",
    "translation": "Message export job GlobalRelaySettings.SmtpPassword must be set."
  },
  {
    "id": "model.config.is_valid.message_export.global_relay.email_address.app_error",
    "translation": "Message export job GlobalRelaySettings.EmailAddress must be set to a valid email address."
  },
  {
    "id": "model.config.is_valid.message_export.global_relay.customer_type.app_error",
    "translation": "Message export GlobalRelaySettings.CustomerType must be set to one of either 'A9', 'A10' or 'CUSTOM'."
  },
  {
    "id": "model.config.is_valid.message_export.global_relay.config_missing.app_error",
    "translation": "Message export job ExportFormat is set to 'globalrelay', but GlobalRelaySettings are missing."
  },
  {
    "id": "model.config.is_valid.message_export.export_type.app_error",
    "translation": "Message export job ExportFormat must be one of 'actiance', 'csv' or 'globalrelay'."
  },
  {
    "id": "model.config.is_valid.message_export.export_from.app_error",
    "translation": "Message export job ExportFromTimestamp must be a timestamp (expressed in seconds since Unix epoch). Only messages sent after this timestamp will be exported."
  },
  {
    "id": "model.config.is_valid.message_export.enable.app_error",
    "translation": "Message export job EnableExport setting must be either true or false."
  },
  {
    "id": "model.config.is_valid.message_export.daily_runtime.app_error",
    "translation": "Message export job DailyRuntime must be a 24-hour time stamp in the form HH:MM."
  },
  {
    "id": "model.config.is_valid.message_export.batch_size.app_error",
    "translation": "Message export job BatchSize must be a positive integer."
  },
  {
    "id": "model.config.is_valid.max_users.app_error",
    "translation": "Invalid maximum users per team for team settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.max_notify_per_channel.app_error",
    "translation": "Invalid maximum notifications per channel for team settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.max_file_size.app_error",
    "translation": "Invalid max file size for file settings. Must be a whole number greater than zero."
  },
  {
    "id": "model.config.is_valid.max_channels.app_error",
    "translation": "Invalid maximum channels per team for team settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.max_burst.app_error",
    "translation": "Maximum burst size must be greater than zero."
  },
  {
    "id": "model.config.is_valid.login_attempts.app_error",
    "translation": "Invalid maximum login attempts for service settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.localization.available_locales.app_error",
    "translation": "Available Languages must contain Default Client Language."
  },
  {
    "id": "model.config.is_valid.listen_address.app_error",
    "translation": "Invalid listen address for service settings. Must be set."
  },
  {
    "id": "model.config.is_valid.ldap_username",
    "translation": "AD/LDAP field 'Username Attribute' is required."
  },
  {
    "id": "model.config.is_valid.ldap_sync_interval.app_error",
    "translation": "Invalid sync interval time. Must be at least one minute."
  },
  {
    "id": "model.config.is_valid.ldap_server",
    "translation": "AD/LDAP field 'AD/LDAP Server' is required."
  },
  {
    "id": "model.config.is_valid.ldap_security.app_error",
    "translation": "Invalid connection security for AD/LDAP settings. Must be '', 'TLS', or 'STARTTLS'."
  },
  {
    "id": "model.config.is_valid.ldap_max_page_size.app_error",
    "translation": "Invalid max page size value."
  },
  {
    "id": "model.config.is_valid.ldap_login_id",
    "translation": "AD/LDAP field 'Login ID Attribute' is required."
  },
  {
    "id": "model.config.is_valid.ldap_id",
    "translation": "AD/LDAP field 'ID Attribute' is required."
  },
  {
    "id": "model.config.is_valid.ldap_email",
    "translation": "AD/LDAP field 'Email Attribute' is required."
  },
  {
    "id": "model.config.is_valid.ldap_basedn",
    "translation": "AD/LDAP field 'BaseDN' is required."
  },
  {
    "id": "model.config.is_valid.import.retention_days_too_low.app_error",
    "translation": "Invalid value for RetentionDays. Value is too low."
  },
  {
    "id": "model.config.is_valid.import.directory.app_error",
    "translation": "Invalid value for Directory."
  },
  {
    "id": "model.config.is_valid.image_proxy_type.app_error",
    "translation": "Invalid image proxy type. Must be 'local' or 'atmos/camo'."
  },
  {
    "id": "model.config.is_valid.group_unread_channels.app_error",
    "translation": "Invalid group unread channels for service settings. Must be 'disabled', 'default_on', or 'default_off'."
  },
  {
    "id": "model.config.is_valid.file_salt.app_error",
    "translation": "Invalid public link salt for file settings. Must be 32 chars or more."
  },
  {
    "id": "model.config.is_valid.file_driver.app_error",
    "translation": "Invalid driver name for file settings. Must be 'local' or 'amazons3'."
  },
  {
    "id": "model.config.is_valid.export.retention_days_too_low.app_error",
    "translation": "Invalid value for RetentionDays. Value should be greater than 0"
  },
  {
    "id": "model.config.is_valid.export.directory.app_error",
    "translation": "Value for Directory should not be empty."
  },
  {
    "id": "model.config.is_valid.encrypt_sql.app_error",
    "translation": "Invalid at rest encrypt key for SQL settings. Must be 32 chars or more."
  },
  {
    "id": "model.config.is_valid.email_security.app_error",
    "translation": "Invalid connection security for email settings. Must be '', 'TLS', or 'STARTTLS'."
  },
  {
    "id": "model.config.is_valid.email_notification_contents_type.app_error",
    "translation": "Invalid email notification contents type for email settings. Must be one of either 'full' or 'generic'."
  },
  {
    "id": "model.config.is_valid.email_batching_interval.app_error",
    "translation": "Invalid email batching interval for email settings. Must be 30 seconds or more."
  },
  {
    "id": "model.config.is_valid.email_batching_buffer_size.app_error",
    "translation": "Invalid email batching buffer size for email settings. Must be zero or a positive number."
  },
  {
    "id": "model.config.is_valid.elastic_search.request_timeout_seconds.app_error",
    "translation": "Search Request Timeout must be at least 1 second."
  },
  {
    "id": "model.config.is_valid.elastic_search.posts_aggregator_job_start_time.app_error",
    "translation": "Search PostsAggregatorJobStartTime setting must be a time in the format 'hh:mm'."
  },
  {
    "id": "model.config.is_valid.elastic_search.live_indexing_batch_size.app_error",
    "translation": "Search Live Indexing Batch Size must be at least 1."
  },
  {
    "id": "model.config.is_valid.elastic_search.enable_searching.app_error",
    "translation": "{{.EnableIndexing}} setting must be set to true when {{.Searching}} is set to true"
  },
  {
    "id": "model.config.is_valid.elastic_search.enable_autocomplete.app_error",
    "translation": "{{.EnableIndexing}} setting must be set to true when {{.Autocomplete}} is set to true"
  },
  {
    "id": "model.config.is_valid.elastic_search.connection_url.app_error",
    "translation": "Search ConnectionUrl setting must be provided when indexing is enabled."
  },
  {
    "id": "model.config.is_valid.elastic_search.aggregate_posts_after_days.app_error",
    "translation": "Search AggregatePostsAfterDays setting must be a number greater than or equal to 1."
  },
  {
    "id": "model.config.is_valid.display.custom_url_schemes.app_error",
    "translation": "The custom URL scheme {{.Scheme}} is invalid. Custom URL schemes must start with a letter and contain only letters, numbers, plus (+), full stop (.) and hyphen (-)."
  },
  {
    "id": "model.config.is_valid.directory.app_error",
    "translation": "Invalid Local Storage Directory. Must be a non-empty string."
  },
  {
    "id": "model.config.is_valid.data_retention.message_retention_days_too_low.app_error",
    "translation": "Message retention days cannot be less than 0."
  },
  {
    "id": "model.config.is_valid.data_retention.file_retention_days_too_low.app_error",
    "translation": "File retention days cannot be less than 0."
  },
  {
    "id": "model.config.is_valid.data_retention.deletion_job_start_time.app_error",
    "translation": "Data retention job start time must be a 24-hour time stamp in the form HH:MM."
  },
  {
    "id": "model.config.is_valid.collapsed_threads.app_error",
    "translation": "CollapsedThreads setting must be either disabled,default_on or default_off"
  },
  {
    "id": "model.config.is_valid.cluster_email_batching.app_error",
    "translation": "Unable to enable email batching when clustering is enabled."
  },
  {
    "id": "model.config.is_valid.atmos_camo_image_proxy_url.app_error",
    "translation": "Invalid RemoteImageProxyURL for atmos/camo. Must be set to your shared key."
  },
  {
    "id": "model.config.is_valid.atmos_camo_image_proxy_options.app_error",
    "translation": "Invalid RemoteImageProxyOptions for atmos/camo. Must be set to your shared key."
  },
  {
    "id": "model.config.is_valid.allow_cookies_for_subdomains.app_error",
    "translation": "Allowing cookies for subdomains requires SiteURL to be set."
  },
  {
    "id": "model.compliance.is_valid.start_end_at.app_error",
    "translation": "To must be greater than From."
  },
  {
    "id": "model.compliance.is_valid.start_at.app_error",
    "translation": "From must be a valid time."
  },
  {
    "id": "model.compliance.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.compliance.is_valid.end_at.app_error",
    "translation": "To must be a valid time."
  },
  {
    "id": "model.compliance.is_valid.desc.app_error",
    "translation": "Invalid description."
  },
  {
    "id": "model.compliance.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.command_hook.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.command_hook.root_id.app_error",
    "translation": "Invalid root ID."
  },
  {
    "id": "model.command_hook.id.app_error",
    "translation": "Invalid command hook ID."
  },
  {
    "id": "model.command_hook.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.command_hook.command_id.app_error",
    "translation": "Invalid command ID."
  },
  {
    "id": "model.command_hook.channel_id.app_error",
    "translation": "Invalid channel ID."
  },
  {
    "id": "model.command.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.command.is_valid.url_http.app_error",
    "translation": "Invalid URL. Must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.command.is_valid.url.app_error",
    "translation": "Invalid URL."
  },
  {
    "id": "model.command.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.command.is_valid.trigger.app_error",
    "translation": "Invalid trigger."
  },
  {
    "id": "model.command.is_valid.token.app_error",
    "translation": "Invalid token."
  },
  {
    "id": "model.command.is_valid.team_id.app_error",
    "translation": "Invalid team ID."
  },
  {
    "id": "model.command.is_valid.plugin_id.app_error",
    "translation": "Invalid plugin ID."
  },
  {
    "id": "model.command.is_valid.method.app_error",
    "translation": "Invalid Method."
  },
  {
    "id": "model.command.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.command.is_valid.display_name.app_error",
    "translation": "Invalid title."
  },
  {
    "id": "model.command.is_valid.description.app_error",
    "translation": "Invalid description."
  },
  {
    "id": "model.command.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.command.is_valid.autocomplete_data.app_error",
    "translation": "Invalid AutocompleteData"
  },
  {
    "id": "model.cluster.is_valid.type.app_error",
    "translation": "Type must be set."
  },
  {
    "id": "model.cluster.is_valid.name.app_error",
    "translation": "ClusterName must be set."
  },
  {
    "id": "model.cluster.is_valid.last_ping_at.app_error",
    "translation": "LastPingAt must be set."
  },
  {
    "id": "model.cluster.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.cluster.is_valid.hostname.app_error",
    "translation": "Hostname must be set."
  },
  {
    "id": "model.cluster.is_valid.create_at.app_error",
    "translation": "CreateAt must be set."
  },
  {
    "id": "model.channel_member.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.channel_member.is_valid.unread_level.app_error",
    "translation": "Invalid mark unread level."
  },
  {
    "id": "model.channel_member.is_valid.push_level.app_error",
    "translation": "Invalid push notification level."
  },
  {
    "id": "model.channel_member.is_valid.notify_level.app_error",
    "translation": "Invalid notify level."
  },
  {
    "id": "model.channel_member.is_valid.ignore_channel_mentions_value.app_error",
    "translation": "Invalid ignore channel mentions status."
  },
  {
    "id": "model.channel_member.is_valid.email_value.app_error",
    "translation": "Invalid email notification value."
  },
  {
    "id": "model.channel_member.is_valid.channel_id.app_error",
    "translation": "Invalid channel ID."
  },
  {
    "id": "app.team.get.find.app_error",
    "translation": "Unable to find the existing team."
  },
  {
    "id": "app.team.clear_all_custom_role_assignments.select.app_error",
    "translation": "Failed to retrieve the team members."
  },
  {
    "id": "app.team.analytics_team_count.app_error",
    "translation": "Unable to count the teams."
  },
  {
    "id": "app.system_install_date.parse_int.app_error",
    "translation": "Failed to parse installation date."
  },
  {
    "id": "app.system.save.app_error",
    "translation": "An error occurred while saving the system property."
  },
  {
    "id": "app.system.permanent_delete_by_name.app_error",
    "translation": "The system table entry could not be permanently deleted."
  },
  {
    "id": "app.system.get_by_name.app_error",
    "translation": "Unable to find the system variable."
  },
  {
    "id": "app.submit_interactive_dialog.json_error",
    "translation": "Encountered an error encoding JSON for the interactive dialog."
  },
  {
    "id": "app.status.get.missing.app_error",
    "translation": "No entry for that status exists."
  },
  {
    "id": "app.status.get.app_error",
    "translation": "Encountered an error retrieving the status."
  },
  {
    "id": "app.session.update_device_id.app_error",
    "translation": "Unable to update the device id."
  },
  {
    "id": "app.session.save.existing.app_error",
    "translation": "Unable to update existing session."
  },
  {
    "id": "app.session.save.app_error",
    "translation": "Unable to save the session."
  },
  {
    "id": "app.session.remove_all_sessions_for_team.app_error",
    "translation": "Unable to remove all the sessions."
  },
  {
    "id": "app.session.remove.app_error",
    "translation": "Unable to remove the session."
  },
  {
    "id": "app.session.permanent_delete_sessions_by_user.app_error",
    "translation": "Unable to remove all the sessions for the user."
  },
  {
    "id": "app.session.get_sessions.app_error",
    "translation": "An error occurred while retrieving user sessions."
  },
  {
    "id": "app.session.get.app_error",
    "translation": "An error occurred while finding the session."
  },
  {
    "id": "app.session.analytics_session_count.app_error",
    "translation": "Unable to count the sessions."
  },
  {
    "id": "app.select_error",
    "translation": "select error"
  },
  {
    "id": "app.schemes.is_phase_2_migration_completed.not_completed.app_error",
    "translation": "This API endpoint is not accessible as required migrations have not yet completed."
  },
  {
    "id": "app.scheme.save.invalid_scheme.app_error",
    "translation": "The provided scheme is invalid."
  },
  {
    "id": "app.scheme.save.app_error",
    "translation": "Unable to create the scheme."
  },
  {
    "id": "app.scheme.permanent_delete_all.app_error",
    "translation": "All schemes could not be permanently deleted."
  },
  {
    "id": "app.scheme.get.app_error",
    "translation": "Unable to get the scheme."
  },
  {
    "id": "app.scheme.delete.app_error",
    "translation": "Unable to delete this scheme."
  },
  {
    "id": "app.save_config.app_error",
    "translation": "An error occurred saving the configuration."
  },
  {
    "id": "app.role.save.invalid_role.app_error",
    "translation": "The role was not valid."
  },
  {
    "id": "app.role.save.insert.app_error",
    "translation": "Unable to save new role."
  },
  {
    "id": "app.role.permanent_delete_all.app_error",
    "translation": "All roles could not be permanently deleted."
  },
  {
    "id": "app.role.get_by_names.app_error",
    "translation": "Unable to get roles."
  },
  {
    "id": "app.role.get_by_name.app_error",
    "translation": "Unable to get role."
  },
  {
    "id": "app.role.get.app_error",
    "translation": "Unable to get role."
  },
  {
    "id": "app.role.check_roles_exist.role_not_found",
    "translation": "The provided role does not exist"
  },
  {
    "id": "app.recover.save.app_error",
    "translation": "Unable to save the token."
  },
  {
    "id": "app.recover.delete.app_error",
    "translation": "Unable to delete token."
  },
  {
    "id": "app.reaction.save.save.app_error",
    "translation": "Unable to save reaction."
  },
  {
    "id": "app.reaction.get_for_post.app_error",
    "translation": "Unable to get reactions for post."
  },
  {
    "id": "app.reaction.delete_all_with_emoji_name.get_reactions.app_error",
    "translation": "Unable to get all reactions with this emoji name."
  },
  {
    "id": "app.reaction.bulk_get_for_post_ids.app_error",
    "translation": "Unable to get reactions for post."
  },
  {
    "id": "app.preference.save.updating.app_error",
    "translation": "An error occurred while updating preferences."
  },
  {
    "id": "app.preference.permanent_delete_by_user.app_error",
    "translation": "An error occurred while deleting preferences."
  },
  {
    "id": "app.preference.get_category.app_error",
    "translation": "An error occurred while finding preferences."
  },
  {
    "id": "app.preference.get_all.app_error",
    "translation": "An error occurred while finding preferences."
  },
  {
    "id": "app.preference.get.app_error",
    "translation": "An error occurred while finding preferences."
  },
  {
    "id": "app.preference.delete.app_error",
    "translation": "An error occurred while deleting preferences."
  },
  {
    "id": "app.post.update.app_error",
    "translation": "Unable to update the Post."
  },
  {
    "id": "app.post.search.app_error",
    "translation": "Error searching posts"
  },
  {
    "id": "app.post.save.existing.app_error",
    "translation": "You cannot update an existing Post."
  },
  {
    "id": "app.post.save.app_error",
    "translation": "Unable to save the Post."
  },
  {
    "id": "app.post.permanent_delete_by_user.app_error",
    "translation": "Unable to select the posts to delete for the user."
  },
  {
    "id": "app.post.permanent_delete_by_channel.app_error",
    "translation": "Unable to delete the posts by channel."
  },
  {
    "id": "app.post.overwrite.app_error",
    "translation": "Unable to overwrite the Post."
  },
  {
    "id": "app.post.get_root_posts.app_error",
    "translation": "Unable to get the posts for the channel."
  },
  {
    "id": "app.post.get_posts_since.app_error",
    "translation": "Unable to get the posts for the channel."
  },
  {
    "id": "app.post.get_posts_created_at.app_error",
    "translation": "Unable to get the posts for the channel."
  },
  {
    "id": "app.post.get_posts_around.get.app_error",
    "translation": "Unable to get the posts for the channel."
  },
  {
    "id": "app.post.get_posts.app_error",
    "translation": "Limit exceeded for paging."
  },
  {
    "id": "app.post.get_post_id_around.app_error",
    "translation": "Unable to get post around time bound."
  },
  {
    "id": "app.post.get_post_after_time.app_error",
    "translation": "Unable to get post after time bound."
  },
  {
    "id": "app.post.get_flagged_posts.app_error",
    "translation": "Unable to get the flagged posts."
  },
  {
    "id": "app.post.get_direct_posts.app_error",
    "translation": "Unable to get direct posts."
  },
  {
    "id": "app.post.get.app_error",
    "translation": "Unable to get the post."
  },
  {
    "id": "app.post.delete.app_error",
    "translation": "Unable to delete the post."
  },
  {
    "id": "app.post.analytics_user_counts_posts_by_day.app_error",
    "translation": "Unable to get user counts with posts."
  },
  {
    "id": "app.post.analytics_posts_count_by_day.app_error",
    "translation": "Unable to get post counts by day."
  },
  {
    "id": "app.post.analytics_posts_count.app_error",
    "translation": "Unable to get post counts."
  },
  {
    "id": "app.plugin_store.save.app_error",
    "translation": "Could not save or update plugin key value."
  },
  {
    "id": "app.plugin_store.list.app_error",
    "translation": "Unable to list all the plugin keys."
  },
  {
    "id": "app.plugin_store.get.app_error",
    "translation": "Could not get plugin key value."
  },
  {
    "id": "app.plugin_store.delete.app_error",
    "translation": "Could not delete plugin key value."
  },
  {
    "id": "app.plugin.write_file.saving.app_error",
    "translation": "An error occurred while saving the file."
  },
  {
    "id": "app.plugin.write_file.read.app_error",
    "translation": "An error occurred while reading the file."
  },
  {
    "id": "app.plugin.webapp_bundle.app_error",
    "translation": "Unable to generate plugin webapp bundle."
  },
  {
    "id": "app.plugin.upload_disabled.app_error",
    "translation": "Plugins and/or plugin uploads have been disabled."
  },
  {
    "id": "app.plugin.sync.read_local_folder.app_error",
    "translation": "Error reading local plugins folder."
  },
  {
    "id": "app.plugin.sync.list_filestore.app_error",
    "translation": "Error reading files from the plugins folder in the file store."
  },
  {
    "id": "app.plugin.store_signature.app_error",
    "translation": "Unable to store the plugin signature to the configured file store."
  },
  {
    "id": "app.plugin.store_bundle.app_error",
    "translation": "Unable to store the plugin to the configured file store."
  },
  {
    "id": "app.plugin.signature_decode.app_error",
    "translation": "Unable to decode base64 signature."
  },
  {
    "id": "app.plugin.restart.app_error",
    "translation": "Unable to restart plugin on upgrade."
  },
  {
    "id": "app.plugin.remove_bundle.app_error",
    "translation": "Unable to remove plugin bundle from file store."
  },
  {
    "id": "app.plugin.remove.app_error",
    "translation": "Unable to delete plugin."
  },
  {
    "id": "app.plugin.not_installed.app_error",
    "translation": "Plugin is not installed."
  },
  {
    "id": "app.plugin.mvdir.app_error",
    "translation": "Unable to move plugin from temporary directory to final destination. Another plugin may be using the same directory name."
  },
  {
    "id": "app.plugin.modify_saml.app_error",
    "translation": "Can't modify saml files."
  },
  {
    "id": "app.plugin.marshal.app_error",
    "translation": "Failed to marshal marketplace plugins."
  },
  {
    "id": "app.plugin.marketplace_plugins.signature_not_found.app_error",
    "translation": "Could not find the requested marketplace plugin signature."
  },
  {
    "id": "app.plugin.marketplace_plugins.not_found.app_error",
    "translation": "Could not find the requested marketplace plugin."
  },
  {
    "id": "app.plugin.marketplace_plugin_request.app_error",
    "translation": "Failed to decode the marketplace plugin request."
  },
  {
    "id": "app.plugin.marketplace_disabled.app_error",
    "translation": "Marketplace has been disabled. Please check your logs for details."
  },
  {
    "id": "model.reaction.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.reaction.is_valid.post_id.app_error",
    "translation": "Invalid post ID."
  },
  {
    "id": "model.reaction.is_valid.emoji_name.app_error",
    "translation": "Invalid emoji name."
  },
  {
    "id": "model.reaction.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.preference.is_valid.value.app_error",
    "translation": "Value is too long."
  },
  {
    "id": "model.preference.is_valid.theme.app_error",
    "translation": "Invalid theme."
  },
  {
    "id": "model.preference.is_valid.name.app_error",
    "translation": "Invalid name."
  },
  {
    "id": "model.preference.is_valid.id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.preference.is_valid.category.app_error",
    "translation": "Invalid category."
  },
  {
    "id": "model.post.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.post.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.post.is_valid.type.app_error",
    "translation": "Invalid type."
  },
  {
    "id": "model.post.is_valid.root_id.app_error",
    "translation": "Invalid root ID."
  },
  {
    "id": "model.post.is_valid.props.app_error",
    "translation": "Invalid props."
  },
  {
    "id": "model.post.is_valid.original_id.app_error",
    "translation": "Invalid original ID."
  },
  {
    "id": "model.post.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.post.is_valid.hashtags.app_error",
    "translation": "Invalid hashtags."
  },
  {
    "id": "model.post.is_valid.filenames.app_error",
    "translation": "Invalid filenames."
  },
  {
    "id": "model.post.is_valid.file_ids.app_error",
    "translation": "Invalid file IDs. Note that uploads are limited to 10 files maximum. Please use additional posts for more files."
  },
  {
    "id": "model.post.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.post.is_valid.channel_id.app_error",
    "translation": "Invalid channel ID."
  },
  {
    "id": "model.post.channel_notifications_disabled_in_channel.message",
    "translation": "Channel notifications are disabled in {{.ChannelName}}. The {{.Mention}} did not trigger any notifications."
  },
  {
    "id": "model.plugin_kvset_options.is_valid.old_value.app_error",
    "translation": "Invalid old value, it shouldn't be set when the operation is not atomic."
  },
  {
    "id": "model.plugin_key_value.is_valid.plugin_id.app_error",
    "translation": "Invalid plugin ID, must be more than {{.Min}} and a of maximum {{.Max}} characters long."
  },
  {
    "id": "model.plugin_key_value.is_valid.key.app_error",
    "translation": "Invalid key, must be more than {{.Min}} and a of maximum {{.Max}} characters long."
  },
  {
    "id": "model.plugin_command_error.error.app_error",
    "translation": "Plugin for /{{.Command}} is not working. Please contact your system administrator"
  },
  {
    "id": "model.plugin_command_crash.error.app_error",
    "translation": "/{{.Command}} command crashed the {{.PluginId}} plugin. Please contact your system administrator"
  },
  {
    "id": "app.plugin.marketplace_client.failed_to_fetch",
    "translation": "Failed to get plugins from the marketplace server."
  },
  {
    "id": "app.plugin.marketplace_client.app_error",
    "translation": "Failed to create marketplace client."
  },
  {
    "id": "app.plugin.manifest.app_error",
    "translation": "Unable to find manifest for extracted plugin."
  },
  {
    "id": "app.plugin.invalid_version.app_error",
    "translation": "Plugin version could not be parsed."
  },
  {
    "id": "app.plugin.invalid_id.app_error",
    "translation": "Plugin Id must be at least {{.Min}} characters, at most {{.Max}} characters and match {{.Regex}}."
  },
  {
    "id": "app.plugin.install_marketplace_plugin.app_error",
    "translation": "Failed to install marketplace plugin."
  },
  {
    "id": "app.plugin.install_id_failed_remove.app_error",
    "translation": "Unable to install plugin. A plugin with the same ID is already installed and failed to be removed."
  },
  {
    "id": "app.plugin.install_id.app_error",
    "translation": "Unable to install plugin. A plugin with the same ID is already installed."
  },
  {
    "id": "app.plugin.install.app_error",
    "translation": "Unable to install plugin."
  },
  {
    "id": "app.plugin.get_statuses.app_error",
    "translation": "Unable to get plugin statuses."
  },
  {
    "id": "app.plugin.get_public_key.get_file.app_error",
    "translation": "An error occurred while getting the public key from the store."
  },
  {
    "id": "app.plugin.get_plugins.app_error",
    "translation": "Unable to get active plugins."
  },
  {
    "id": "app.plugin.get_cluster_plugin_statuses.app_error",
    "translation": "Unable to get plugin statuses from the cluster."
  },
  {
    "id": "app.plugin.filesystem.app_error",
    "translation": "Encountered filesystem error."
  },
  {
    "id": "app.plugin.extract.app_error",
    "translation": "An error occurred extracting the plugin bundle."
  },
  {
    "id": "app.plugin.disabled.app_error",
    "translation": "Plugins have been disabled. Please check your logs for details."
  },
  {
    "id": "app.plugin.delete_public_key.delete.app_error",
    "translation": "An error occurred while deleting the public key."
  },
  {
    "id": "app.plugin.deactivate.app_error",
    "translation": "Unable to deactivate plugin."
  },
  {
    "id": "app.plugin.config.app_error",
    "translation": "Error saving plugin state in config."
  },
  {
    "id": "app.plugin.cluster.save_config.app_error",
    "translation": "The plugin configuration in your config.json file must be updated manually when using ReadOnlyConfig with clustering enabled."
  },
  {
    "id": "app.oauth.update_app.updating.app_error",
    "translation": "An error occurred while updating the app."
  },
  {
    "id": "app.oauth.update_app.find.app_error",
    "translation": "Unable to find the existing app to update."
  },
  {
    "id": "app.oauth.save_app.save.app_error",
    "translation": "Unable to save the app."
  },
  {
    "id": "app.oauth.save_app.existing.app_error",
    "translation": "Must call update for existing app."
  },
  {
    "id": "app.oauth.remove_access_data.app_error",
    "translation": "Unable to remove the access token."
  },
  {
    "id": "app.oauth.permanent_delete_auth_data_by_user.app_error",
    "translation": "Unable to remove the authorisation code."
  },
  {
    "id": "app.oauth.get_apps.find.app_error",
    "translation": "An error occurred while finding the OAuth2 Apps."
  },
  {
    "id": "app.oauth.get_app_by_user.find.app_error",
    "translation": "Unable to find any existing apps."
  },
  {
    "id": "app.oauth.get_app.finding.app_error",
    "translation": "An error occurred while finding the app."
  },
  {
    "id": "app.oauth.get_app.find.app_error",
    "translation": "Unable to find the requested app."
  },
  {
    "id": "app.oauth.get_access_data_by_user_for_app.app_error",
    "translation": "An error occurred while finding all the access tokens."
  },
  {
    "id": "app.oauth.delete_app.app_error",
    "translation": "An error occurred while deleting the OAuth2 App."
  },
  {
    "id": "app.notification.subject.notification.full",
    "translation": "[{{ .SiteName }}] Notification in {{ .TeamName}} on {{.Day}} {{.Month}}, {{.Year}}"
  },
  {
    "id": "app.notification.subject.group_message.generic",
    "translation": "[{{ .SiteName }}] New Group Message on {{.Day}} {{.Month}}, {{.Year}}"
  },
  {
    "id": "app.notification.subject.group_message.full",
    "translation": "[{{ .SiteName }}] New Group Message in {{ .ChannelName}} on {{.Day}} {{.Month}}, {{.Year}}"
  },
  {
    "id": "app.notification.subject.direct.full",
    "translation": "[{{.SiteName}}] New Direct Message from {{.SenderDisplayName}} on {{.Day}} {{.Month}}, {{.Year}}"
  },
  {
    "id": "app.notification.footer.title",
    "translation": "Want to change your notifications settings?"
  },
  {
    "id": "app.notification.footer.infoLogin",
    "translation": "Log in to Mattermost"
  },
  {
    "id": "app.notification.footer.info",
    "translation": " and go to Settings > Notifications"
  },
  {
    "id": "app.notification.body.mention.title",
    "translation": "{{.SenderName}} mentioned you in a message"
  },
  {
    "id": "app.notification.body.mention.subTitle",
    "translation": "While you were away, {{.SenderName}} mentioned you in the {{.ChannelName}} channel."
  },
  {
    "id": "app.notification.body.group.title",
    "translation": "{{.SenderName}} sent you a new message"
  },
  {
    "id": "app.notification.body.group.subTitle",
    "translation": "While you were away, {{.SenderName}} sent a message to your group."
  },
  {
    "id": "app.notification.body.dm.title",
    "translation": "{{.SenderName}} sent you a new message"
  },
  {
    "id": "app.notification.body.dm.time",
    "translation": "{{.Hour}}:{{.Minute}} {{.TimeZone}}"
  },
  {
    "id": "app.notification.body.dm.subTitle",
    "translation": "While you were away, {{.SenderName}} sent you a new Direct Message."
  },
  {
    "id": "app.job.update.app_error",
    "translation": "Unable to update the job."
  },
  {
    "id": "app.job.save.app_error",
    "translation": "Unable to save the job."
  },
  {
    "id": "app.job.get_newest_job_by_status_and_type.app_error",
    "translation": "Unable to get the newest job by status and type."
  },
  {
    "id": "app.job.get_count_by_status_and_type.app_error",
    "translation": "Unable to get the job count by status and type."
  },
  {
    "id": "app.job.get_all.app_error",
    "translation": "Unable to get the jobs."
  },
  {
    "id": "app.job.get.app_error",
    "translation": "Unable to get the job."
  },
  {
    "id": "app.job.download_export_results_not_enabled",
    "translation": "DownloadExportResults in config.json is false. Please set this to true to download the results of this job."
  },
  {
    "id": "app.insert_error",
    "translation": "insert error"
  },
  {
    "id": "app.import.validate_user_teams_import_data.team_name_missing.error",
    "translation": "Team name missing from User's Team Membership."
  },
  {
    "id": "app.import.validate_user_teams_import_data.invalid_team_theme.error",
    "translation": "Invalid team theme for the User"
  },
  {
    "id": "app.import.validate_user_teams_import_data.invalid_roles.error",
    "translation": "Invalid roles for User's Team Membership."
  },
  {
    "id": "app.import.validate_user_import_data.username_missing.error",
    "translation": "Missing require user property: username."
  },
  {
    "id": "app.import.validate_user_import_data.username_invalid.error",
    "translation": "Username is not valid."
  },
  {
    "id": "app.import.validate_user_import_data.roles_invalid.error",
    "translation": "User roles are not valid."
  },
  {
    "id": "app.import.validate_user_import_data.profile_image.error",
    "translation": "Invalid profile image."
  },
  {
    "id": "app.import.validate_user_import_data.position_length.error",
    "translation": "User Position is too long."
  },
  {
    "id": "app.import.validate_user_import_data.password_length.error",
    "translation": "User Password has invalid length."
  },
  {
    "id": "app.import.validate_user_import_data.notify_props_mobile_push_status_invalid.error",
    "translation": "Invalid Mobile Push Status Notify Prop for user."
  },
  {
    "id": "app.import.validate_user_import_data.notify_props_mobile_invalid.error",
    "translation": "Invalid Mobile Notify Prop value for user."
  },
  {
    "id": "app.import.validate_user_import_data.notify_props_email_invalid.error",
    "translation": "Invalid Email Notify Prop value for user."
  },
  {
    "id": "app.import.validate_user_import_data.notify_props_desktop_sound_invalid.error",
    "translation": "Invalid Desktop Sound Notify Prop value for user."
  },
  {
    "id": "app.import.validate_user_import_data.notify_props_desktop_invalid.error",
    "translation": "Invalid Desktop Notify Prop value for user."
  },
  {
    "id": "app.import.validate_user_import_data.notify_props_comments_trigger_invalid.error",
    "translation": "Invalid Comments Prop value for user."
  },
  {
    "id": "app.import.validate_user_import_data.notify_props_channel_trigger_invalid.error",
    "translation": "Invalid Channel Trigger Notify Prop for user."
  },
  {
    "id": "app.import.validate_user_import_data.nickname_length.error",
    "translation": "User nickname is too long."
  },
  {
    "id": "app.import.validate_user_import_data.last_name_length.error",
    "translation": "User Last Name is too long."
  },
  {
    "id": "app.import.validate_user_import_data.first_name_length.error",
    "translation": "User First Name is too long."
  },
  {
    "id": "app.import.validate_user_import_data.email_missing.error",
    "translation": "Missing required user property: email."
  },
  {
    "id": "app.import.validate_user_import_data.email_length.error",
    "translation": "User email has an invalid length."
  },
  {
    "id": "app.import.validate_user_import_data.auth_data_length.error",
    "translation": "User AuthData is too long."
  },
  {
    "id": "app.import.validate_user_import_data.auth_data_and_service_dependency.error",
    "translation": "User AuthService and AuthData are mutually inclusive."
  },
  {
    "id": "app.import.validate_user_import_data.auth_data_and_password.error",
    "translation": "User AuthData and Password are mutually exclusive."
  },
  {
    "id": "app.import.validate_user_import_data.advanced_props_show_unread_section.error",
    "translation": "Invalid show unread section setting for User"
  },
  {
    "id": "app.import.validate_user_import_data.advanced_props_formatting.error",
    "translation": "Invalid post formatting setting for User"
  },
  {
    "id": "app.import.validate_user_import_data.advanced_props_feature_markdown_preview.error",
    "translation": "Invalid markdown preview setting for User"
  },
  {
    "id": "app.import.validate_user_import_data.advanced_props_email_interval.error",
    "translation": "Invalid email batching interval setting for User"
  },
  {
    "id": "app.import.validate_user_channels_import_data.invalid_roles.error",
    "translation": "Invalid roles for User's Channel Membership."
  },
  {
    "id": "app.import.validate_user_channels_import_data.invalid_notify_props_mobile.error",
    "translation": "Invalid Mobile NotifyProps for User's Channel Membership."
  },
  {
    "id": "app.import.validate_user_channels_import_data.invalid_notify_props_mark_unread.error",
    "translation": "Invalid MarkUnread NotifyProps for User's Channel Membership."
  },
  {
    "id": "app.import.validate_user_channels_import_data.invalid_notify_props_desktop.error",
    "translation": "Invalid Desktop NotifyProps for User's Channel Membership."
  },
  {
    "id": "app.import.validate_user_channels_import_data.channel_name_missing.error",
    "translation": "Channel name missing from User's Channel Membership."
  },
  {
    "id": "app.import.validate_team_import_data.type_missing.error",
    "translation": "Missing required team property: type."
  },
  {
    "id": "app.import.validate_team_import_data.type_invalid.error",
    "translation": "Team type is not valid."
  },
  {
    "id": "app.import.validate_team_import_data.scheme_invalid.error",
    "translation": "Invalid scheme name for team."
  },
  {
    "id": "app.import.validate_team_import_data.name_reserved.error",
    "translation": "Team name contains reserved words."
  },
  {
    "id": "app.import.validate_team_import_data.name_missing.error",
    "translation": "Missing required team property: name."
  },
  {
    "id": "app.import.validate_team_import_data.name_length.error",
    "translation": "Team name is too long."
  },
  {
    "id": "app.import.validate_team_import_data.name_characters.error",
    "translation": "Team name contains invalid characters."
  },
  {
    "id": "app.import.validate_team_import_data.display_name_missing.error",
    "translation": "Missing required team property: display_name."
  },
  {
    "id": "app.import.validate_team_import_data.display_name_length.error",
    "translation": "Team display_name is not within permitted length constraints."
  },
  {
    "id": "app.import.validate_team_import_data.description_length.error",
    "translation": "Team description is too long."
  },
  {
    "id": "app.import.validate_scheme_import_data.wrong_roles_for_scope.error",
    "translation": "The wrong roles were provided for a scheme with this scope."
  },
  {
    "id": "app.import.validate_scheme_import_data.unknown_scheme.error",
    "translation": "Unknown scheme scope."
  },
  {
    "id": "app.import.validate_scheme_import_data.null_scope.error",
    "translation": "Scheme scope is required."
  },
  {
    "id": "app.import.validate_scheme_import_data.name_invalid.error",
    "translation": "Invalid scheme name."
  },
  {
    "id": "app.import.validate_scheme_import_data.display_name_invalid.error",
    "translation": "Invalid scheme display name."
  },
  {
    "id": "app.import.validate_scheme_import_data.description_invalid.error",
    "translation": "Invalid scheme description."
  },
  {
    "id": "app.import.validate_role_import_data.name_invalid.error",
    "translation": "Invalid role name."
  },
  {
    "id": "app.import.validate_role_import_data.invalid_permission.error",
    "translation": "Invalid permission on role."
  },
  {
    "id": "app.import.validate_role_import_data.display_name_invalid.error",
    "translation": "Invalid role display name."
  },
  {
    "id": "app.import.validate_role_import_data.description_invalid.error",
    "translation": "Invalid role description."
  },
  {
    "id": "app.import.validate_reply_import_data.user_missing.error",
    "translation": "Missing required Reply property: User."
  },
  {
    "id": "app.import.validate_reply_import_data.message_missing.error",
    "translation": "Missing required Reply property: Message."
  },
  {
    "id": "app.import.validate_reply_import_data.message_length.error",
    "translation": "Reply Message property is longer than the maximum permitted length."
  },
  {
    "id": "app.import.validate_reply_import_data.create_at_zero.error",
    "translation": "Reply CreateAt property must not be zero."
  },
  {
    "id": "app.import.validate_reply_import_data.create_at_missing.error",
    "translation": "Missing required Reply property: create_at."
  },
  {
    "id": "app.import.validate_emoji_import_data.empty.error",
    "translation": "Import emoji data empty."
  },
  {
    "id": "app.import.validate_direct_post_import_data.user_missing.error",
    "translation": "Missing required direct post property: user"
  },
  {
    "id": "app.import.validate_direct_post_import_data.unknown_flagger.error",
    "translation": "Direct post can only be flagged by members of the channel it is in. '{{.Username}}' is not a member."
  },
  {
    "id": "app.import.validate_direct_post_import_data.message_missing.error",
    "translation": "Missing required direct post property: message"
  },
  {
    "id": "app.import.validate_direct_post_import_data.message_length.error",
    "translation": "Message is too long"
  },
  {
    "id": "app.import.validate_direct_post_import_data.create_at_zero.error",
    "translation": "CreateAt must be greater than 0"
  },
  {
    "id": "app.import.validate_direct_post_import_data.create_at_missing.error",
    "translation": "Missing required direct post property: create_at"
  },
  {
    "id": "app.import.validate_direct_post_import_data.channel_members_too_many.error",
    "translation": "Direct post channel members list contains too many items"
  },
  {
    "id": "app.import.validate_direct_post_import_data.channel_members_too_few.error",
    "translation": "Direct post channel members list contains too few items"
  },
  {
    "id": "app.import.validate_direct_post_import_data.channel_members_required.error",
    "translation": "Missing required direct post property: channel_members"
  },
  {
    "id": "app.import.validate_direct_channel_import_data.unknown_favoriter.error",
    "translation": "Direct channel can only be favourited by members. '{{.Username}}' is not a member."
  },
  {
    "id": "app.import.validate_direct_channel_import_data.members_too_many.error",
    "translation": "Direct channel members list contains too many items"
  },
  {
    "id": "app.import.validate_direct_channel_import_data.members_too_few.error",
    "translation": "Direct channel members list contains too few items"
  },
  {
    "id": "app.import.validate_direct_channel_import_data.members_required.error",
    "translation": "Missing required direct channel property: members"
  },
  {
    "id": "app.import.validate_direct_channel_import_data.header_length.error",
    "translation": "Direct channel header is too long"
  },
  {
    "id": "app.import.validate_channel_import_data.type_missing.error",
    "translation": "Missing required channel property: type."
  },
  {
    "id": "app.import.validate_channel_import_data.type_invalid.error",
    "translation": "Channel type is invalid."
  },
  {
    "id": "app.import.validate_channel_import_data.team_missing.error",
    "translation": "Missing required channel property: team"
  },
  {
    "id": "app.import.validate_channel_import_data.scheme_invalid.error",
    "translation": "Invalid scheme name for channel."
  },
  {
    "id": "app.import.validate_channel_import_data.purpose_length.error",
    "translation": "Channel purpose is too long."
  },
  {
    "id": "app.import.validate_channel_import_data.name_missing.error",
    "translation": "Missing required channel property: name"
  },
  {
    "id": "app.import.validate_channel_import_data.name_length.error",
    "translation": "Channel name is too long."
  },
  {
    "id": "app.import.validate_channel_import_data.name_characters.error",
    "translation": "Channel name contains invalid characters."
  },
  {
    "id": "app.import.validate_channel_import_data.header_length.error",
    "translation": "Channel header is too long."
  },
  {
    "id": "app.import.validate_channel_import_data.display_name_length.error",
    "translation": "Channel display_name is not within permitted length constraints."
  },
  {
    "id": "app.import.process_import_data_file_version_line.invalid_version.error",
    "translation": "Unable to read the version of the data import file."
  },
  {
    "id": "app.import.import_user_teams.save_preferences.error",
    "translation": "Unable to save the team theme preferences"
  },
  {
    "id": "app.import.import_user_teams.save_members.max_accounts.app_error",
    "translation": "Unable to import team membership because no more members are allowed in that team"
  },
  {
    "id": "app.import.import_user_teams.save_members.error",
    "translation": "Unable to import team memberships"
  },
  {
    "id": "app.import.import_user_teams.save_members.conflict.app_error",
    "translation": "Unable to import the new team membership because it already exists"
  },
  {
    "id": "app.import.import_user_channels.save_preferences.error",
    "translation": "Error importing user channel memberships. Failed to save preferences."
  },
  {
    "id": "app.import.import_user_channels.channel_not_found.error",
    "translation": "Error importing user channels. Channel not found."
  },
  {
    "id": "app.import.import_user.save_preferences.error",
    "translation": "Error importing user preferences. Failed to save preferences."
  },
  {
    "id": "app.import.import_team.scheme_wrong_scope.error",
    "translation": "Team must be assigned to a Team-scoped scheme."
  },
  {
    "id": "app.import.import_team.scheme_deleted.error",
    "translation": "Unable to set a team to use a deleted scheme."
  },
  {
    "id": "app.import.import_scheme.scope_change.error",
    "translation": "The bulk importer cannot change the scope of an already-existing scheme."
  },
  {
    "id": "app.import.import_post.user_not_found.error",
    "translation": "Error importing post. User with username '{{.Username}}' could not be found."
  },
  {
    "id": "app.import.import_post.save_preferences.error",
    "translation": "Error importing post. Failed to save preferences."
  },
  {
    "id": "app.import.import_post.channel_not_found.error",
    "translation": "Error importing post. Channel with name '{{.ChannelName}}' could not be found."
  },
  {
    "id": "app.import.import_line.unknown_line_type.error",
    "translation": "Import data line has unknown type '{{.Type}}'."
  },
  {
    "id": "app.import.import_line.null_user.error",
    "translation": "Import data line has type 'user' but the user object is null."
  },
  {
    "id": "app.import.import_line.null_team.error",
    "translation": "Import data line has type 'team' but the team object is null."
  },
  {
    "id": "app.import.import_line.null_scheme.error",
    "translation": "Import data line has type 'scheme' but the scheme object is null."
  },
  {
    "id": "app.import.import_line.null_post.error",
    "translation": "Import data line has type 'post' but the post object is null."
  },
  {
    "id": "app.import.import_line.null_emoji.error",
    "translation": "Import data line has type 'emoji' but the emoji object is null."
  },
  {
    "id": "app.import.import_line.null_direct_post.error",
    "translation": "Import data line has type 'direct_post' but the direct_post object is null."
  },
  {
    "id": "app.import.import_line.null_direct_channel.error",
    "translation": "Import data line has type 'direct_channel' but the direct_channel object is null."
  },
  {
    "id": "app.import.import_line.null_channel.error",
    "translation": "Import data line has type 'channel' but the channel object is null."
  },
  {
    "id": "app.import.import_direct_post.create_group_channel.error",
    "translation": "Failed to get group channel"
  },
  {
    "id": "app.import.import_direct_post.create_direct_channel.error",
    "translation": "Failed to get direct channel"
  },
  {
    "id": "app.import.import_direct_channel.update_header_failed.error",
    "translation": "Failed to update direct channel header"
  },
  {
    "id": "app.import.import_direct_channel.create_group_channel.error",
    "translation": "Failed to create group channel"
  },
  {
    "id": "app.import.import_direct_channel.create_direct_channel.error",
    "translation": "Failed to create direct channel"
  },
  {
    "id": "app.import.import_channel.team_not_found.error",
    "translation": "Error importing channel. Team with name '{{.TeamName}}' could not be found."
  },
  {
    "id": "app.import.import_channel.scheme_wrong_scope.error",
    "translation": "Channel must be assigned to a Channel-scoped scheme."
  },
  {
    "id": "app.import.import_channel.scheme_deleted.error",
    "translation": "Unable to set a channel to use a deleted scheme."
  },
  {
    "id": "app.import.get_users_by_username.some_users_not_found.error",
    "translation": "Some users not found"
  },
  {
    "id": "app.import.get_teams_by_names.some_teams_not_found.error",
    "translation": "Some teams not found"
  },
  {
    "id": "app.import.generate_password.app_error",
    "translation": "Error generating password."
  },
  {
    "id": "app.import.emoji.bad_file.error",
    "translation": "Error reading import emoji image file. Emoji with name: '{{.EmojiName}}'"
  },
  {
    "id": "app.import.bulk_import.unsupported_version.error",
    "translation": "Incorrect or missing version in the data import file. Make sure version is the first object in your import file and try again."
  },
  {
    "id": "app.import.bulk_import.json_decode.error",
    "translation": "JSON decode of line failed."
  },
  {
    "id": "app.import.bulk_import.file_scan.error",
    "translation": "Error reading import data file."
  },
  {
    "id": "app.import.attachment.file_upload.error",
    "translation": "Error uploading the file: '{{.FilePath}}'"
  },
  {
    "id": "app.import.attachment.bad_file.error",
    "translation": "Error reading the file at: '{{.FilePath}}'"
  },
  {
    "id": "app.group.uniqueness_error",
    "translation": "group member already exists"
  },
  {
    "id": "app.group.permanent_delete_members_by_user.app_error",
    "translation": "Unable to remove the group member with UserID '{{.UserId}}'."
  },
  {
    "id": "app.group.no_rows",
    "translation": "no matching group found"
  },
  {
    "id": "app.group.id.app_error",
    "translation": "invalid id property for group."
  },
  {
    "id": "app.group.group_syncable_already_deleted",
    "translation": "group syncable was already deleted"
  },
  {
    "id": "app.file_info.save.app_error",
    "translation": "Unable to save the file info."
  },
  {
    "id": "app.file_info.permanent_delete_by_user.app_error",
    "translation": "Unable to delete attachments of the user."
  },
  {
    "id": "app.file_info.get_with_options.app_error",
    "translation": "Unable to get the file info with options"
  },
  {
    "id": "app.file_info.get_for_post.app_error",
    "translation": "Unable to get the file info for the post."
  },
  {
    "id": "app.file_info.get.app_error",
    "translation": "Unable to get the file info."
  },
  {
    "id": "app.export.zip_create.error",
    "translation": "Failed to add file to zip archive during export."
  },
  {
    "id": "app.export.marshal.app_error",
    "translation": "Unable to marshal response."
  },
  {
    "id": "app.export.export_write_line.json_marshall.error",
    "translation": "An error occurred marshalling the JSON data for export."
  },
  {
    "id": "app.export.export_write_line.io_writer.error",
    "translation": "An error occurred writing the export data."
  },
  {
    "id": "app.export.export_custom_emoji.copy_emoji_images.error",
    "translation": "Unable to copy custom emoji images"
  },
  {
    "id": "app.export.export_attachment.zip_create_header.error",
    "translation": "Failed to create zip header during export."
  },
  {
    "id": "app.export.export_attachment.mkdirall.error",
    "translation": "Failed to create directory during export."
  },
  {
    "id": "app.export.export_attachment.create_file.error",
    "translation": "Failed to create file during export."
  },
  {
    "id": "app.export.export_attachment.copy_file.error",
    "translation": "Failed to copy file during export."
  },
  {
    "id": "app.emoji.get_list.internal_error",
    "translation": "Unable to get the emoji."
  },
  {
    "id": "app.emoji.get_by_name.no_result",
    "translation": "The emoji could not be found."
  },
  {
    "id": "app.emoji.get_by_name.app_error",
    "translation": "Unable to get the emoji."
  },
  {
    "id": "app.emoji.get.no_result",
    "translation": "The emoji could not be found."
  },
  {
    "id": "app.emoji.get.app_error",
    "translation": "Unable to get the emoji."
  },
  {
    "id": "app.emoji.delete.no_results",
    "translation": "The emoji for deletion could not be found."
  },
  {
    "id": "app.emoji.delete.app_error",
    "translation": "Unable to delete the emoji."
  },
  {
    "id": "app.emoji.create.internal_error",
    "translation": "Unable to save emoji."
  },
  {
    "id": "app.email.setup_rate_limiter.app_error",
    "translation": "Error occurred in the rate limiter."
  },
  {
    "id": "app.email.rate_limit_exceeded.app_error",
    "translation": "Invite emails rate limit exceeded. Timer will be reset after {{.ResetAfter}} seconds. Please retry after {{.RetryAfter}} seconds."
  },
  {
    "id": "app.email.no_rate_limiter.app_error",
    "translation": "Rate limiter is not set up."
  },
  {
    "id": "app.create_basic_user.save_member.max_accounts.app_error",
    "translation": "Unable to create default team membership because no more members are allowed in that team"
  },
  {
    "id": "app.create_basic_user.save_member.conflict.app_error",
    "translation": "Unable to create default team membership because they already exists"
  },
  {
    "id": "model.channel.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.channel.is_valid.type.app_error",
    "translation": "Invalid type."
  },
  {
    "id": "model.channel.is_valid.purpose.app_error",
    "translation": "Invalid purpose."
  },
  {
    "id": "model.channel.is_valid.name.app_error",
    "translation": "Channel names can't be in a hexadecimal format. Please enter a different channel name."
  },
  {
    "id": "model.channel.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.channel.is_valid.header.app_error",
    "translation": "Invalid header."
  },
  {
    "id": "model.channel.is_valid.display_name.app_error",
    "translation": "Invalid display name."
  },
  {
    "id": "model.channel.is_valid.creator_id.app_error",
    "translation": "Invalid creator ID."
  },
  {
    "id": "model.channel.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.bot.is_valid.username.app_error",
    "translation": "Invalid username."
  },
  {
    "id": "model.bot.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.bot.is_valid.update_at.app_error",
    "translation": "Invalid update at."
  },
  {
    "id": "model.bot.is_valid.description.app_error",
    "translation": "Invalid description."
  },
  {
    "id": "model.bot.is_valid.creator_id.app_error",
    "translation": "Invalid creator ID."
  },
  {
    "id": "model.bot.is_valid.create_at.app_error",
    "translation": "Invalid create at."
  },
  {
    "id": "model.authorize.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.authorize.is_valid.state.app_error",
    "translation": "Invalid state."
  },
  {
    "id": "model.authorize.is_valid.scope.app_error",
    "translation": "Invalid scope."
  },
  {
    "id": "model.authorize.is_valid.response_type.app_error",
    "translation": "Invalid response type."
  },
  {
    "id": "model.authorize.is_valid.redirect_uri.app_error",
    "translation": "Invalid redirect URI."
  },
  {
    "id": "model.authorize.is_valid.expires.app_error",
    "translation": "Expires in must be set."
  },
  {
    "id": "model.authorize.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.authorize.is_valid.client_id.app_error",
    "translation": "Invalid client ID."
  },
  {
    "id": "model.authorize.is_valid.auth_code.app_error",
    "translation": "Invalid authorisation code."
  },
  {
    "id": "model.access.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.access.is_valid.refresh_token.app_error",
    "translation": "Invalid refresh token."
  },
  {
    "id": "model.access.is_valid.redirect_uri.app_error",
    "translation": "Invalid redirect URI."
  },
  {
    "id": "model.access.is_valid.client_id.app_error",
    "translation": "Invalid client ID."
  },
  {
    "id": "model.access.is_valid.access_token.app_error",
    "translation": "Invalid access token."
  },
  {
    "id": "migrations.worker.run_migration.unknown_key",
    "translation": "Unable to run migration job due to unknown migration key."
  },
  {
    "id": "migrations.worker.run_advanced_permissions_phase_2_migration.invalid_progress",
    "translation": "Migration failed due to invalid progress data."
  },
  {
    "id": "migrations.system.save.app_error",
    "translation": "An error occurred while saving the system property."
  },
  {
    "id": "mfa.validate_token.authenticate.app_error",
    "translation": "Invalid MFA token."
  },
  {
    "id": "mfa.mfa_disabled.app_error",
    "translation": "Multi-factor authentication has been disabled on this server."
  },
  {
    "id": "mfa.generate_qr_code.create_code.app_error",
    "translation": "Error generating QR code."
  },
  {
    "id": "mfa.deactivate.app_error",
    "translation": "Unable to update MFA active status for the user."
  },
  {
    "id": "mfa.activate.bad_token.app_error",
    "translation": "Invalid MFA token."
  },
  {
    "id": "mfa.activate.app_error",
    "translation": "Unable to update MFA active status for the user."
  },
  {
    "id": "mattermost.bulletin.subject",
    "translation": "Mattermost Security Bulletin"
  },
  {
    "id": "manaultesting.test_autolink.unable.app_error",
    "translation": "Unable to get channels."
  },
  {
    "id": "manaultesting.manual_test.parse.app_error",
    "translation": "Unable to parse URL."
  },
  {
    "id": "jobs.set_job_error.update.error",
    "translation": "Failed to set job status to error"
  },
  {
    "id": "jobs.request_cancellation.status.error",
    "translation": "Could not request cancellation for job that is not in a cancellable state."
  },
  {
    "id": "interactive_message.generate_trigger_id.signing_failed",
    "translation": "Failed to sign generated trigger ID for interactive dialog."
  },
  {
    "id": "interactive_message.decode_trigger_id.verify_signature_failed",
    "translation": "Signature verification failed of trigger ID for interactive dialog."
  },
  {
    "id": "interactive_message.decode_trigger_id.signature_decode_failed",
    "translation": "Failed to decode base64 signature of trigger ID for interactive dialog."
  },
  {
    "id": "interactive_message.decode_trigger_id.missing_data",
    "translation": "Trigger ID missing required data for interactive dialog."
  },
  {
    "id": "interactive_message.decode_trigger_id.expired",
    "translation": "Trigger ID for interactive dialog is expired. Trigger IDs live for a maximum of {{.Duration}}."
  },
  {
    "id": "interactive_message.decode_trigger_id.base64_decode_failed_signature",
    "translation": "Failed to decode base64 signature of trigger ID for interactive dialog."
  },
  {
    "id": "interactive_message.decode_trigger_id.base64_decode_failed",
    "translation": "Failed to decode base64 for trigger ID for interactive dialog."
  },
  {
    "id": "import_process.worker.do_job.open_file",
    "translation": "Unable to process import: failed to open file."
  },
  {
    "id": "import_process.worker.do_job.missing_jsonl",
    "translation": "Unable to process import: JSONL file is missing."
  },
  {
    "id": "import_process.worker.do_job.missing_file",
    "translation": "Unable to process import: import_file parameter is missing."
  },
  {
    "id": "import_process.worker.do_job.file_exists",
    "translation": "Unable to process import: file does not exists."
  },
  {
    "id": "groups.unsupported_syncable_type",
    "translation": "Unsupported syncable type '{{.Value}}'."
  },
  {
    "id": "group_not_associated_to_synced_team",
    "translation": "Group cannot be associated to the channel until it is first associated to the parent group-synced team."
  },
  {
    "id": "error",
    "translation": "Error"
  },
  {
    "id": "ent.user.complete_switch_with_oauth.blank_email.app_error",
    "translation": "Unable to complete SAML login with an empty email address."
  },
  {
    "id": "ent.saml.service_disable.app_error",
    "translation": "SAML 2.0 is not configured or supported on this server."
  },
  {
    "id": "ent.saml.save_user.username_exists.saml_app_error",
    "translation": "An account with that username already exists. Please contact your Administrator."
  },
  {
    "id": "ent.saml.save_user.email_exists.saml_app_error",
    "translation": "This account does not use SAML authentication. Please sign in using email and password."
  },
  {
    "id": "ent.saml.metadata.app_error",
    "translation": "An error occurred while building Service Provider Metadata."
  },
  {
    "id": "ent.saml.license_disable.app_error",
    "translation": "Your licence does not support SAML authentication."
  },
  {
    "id": "ent.saml.do_login.parse.app_error",
    "translation": "An error occurred while parsing the response from the Identity Provider. Please contact your System Administrator."
  },
  {
    "id": "ent.saml.do_login.invalid_time.app_error",
    "translation": "An invalid time in the response from the Identity Provider was received. Please contact your System Administrator."
  },
  {
    "id": "ent.saml.do_login.invalid_signature.app_error",
    "translation": "An invalid signature in the response from the Identity Provider was received. Please contact your System Administrator."
  },
  {
    "id": "ent.saml.do_login.empty_response.app_error",
    "translation": "An empty response from the Identity Provider was received."
  },
  {
    "id": "ent.saml.configure.not_encrypted_response.app_error",
    "translation": "SAML login was unsuccessful as the Identity Provider response is not encrypted. Please contact your System Administrator."
  },
  {
    "id": "ent.saml.configure.load_private_key.app_error",
    "translation": "SAML login was unsuccessful because the Service Provider Private Key was not found. Please contact your System Administrator."
  },
  {
    "id": "ent.saml.configure.encryption_not_enabled.app_error",
    "translation": "SAML login was unsuccessful because encryption is not enabled. Please contact your System Administrator."
  },
  {
    "id": "ent.saml.build_request.app_error",
    "translation": "An error occurred while initiating the request to the Identity Provider. Please contact your System Administrator."
  },
  {
    "id": "ent.saml.attribute.app_error",
    "translation": "SAML login was unsuccessful because one of the attributes is incorrect. Please contact your System Administrator."
  },
  {
    "id": "ent.migration.migratetosaml.username_already_used_by_other_user",
    "translation": "Username already used by another Mattermost user."
  },
  {
    "id": "ent.migration.migratetosaml.user_not_found_in_users_mapping_file",
    "translation": "User not found in the users file."
  },
  {
    "id": "ent.migration.migratetosaml.email_already_used_by_other_user",
    "translation": "Email already used by another SAML user."
  },
  {
    "id": "ent.migration.migratetoldap.user_not_found",
    "translation": "Unable to find user on AD/LDAP server: "
  },
  {
    "id": "ent.migration.migratetoldap.duplicate_field",
    "translation": "Unable to migrate AD/LDAP users with specified field. Duplicate entry detected. Please remove all duplicates and try again."
  },
  {
    "id": "ent.message_export.run_export.app_error",
    "translation": "Failed to select message export data."
  },
  {
    "id": "ent.ldap_id_migrate.app_error",
    "translation": "unable to migrate."
  },
  {
    "id": "ent.ldap_groups.reachable_groups_error",
    "translation": "error retrieving groups for user"
  },
  {
    "id": "ent.ldap_groups.no_rows",
    "translation": "no groups found with matching uid"
  },
  {
    "id": "ent.ldap_groups.members_of_group_error",
    "translation": "error retrieving members of group"
  },
  {
    "id": "ent.ldap_groups.groups_search_error",
    "translation": "error retrieving ldap groups"
  },
  {
    "id": "ent.ldap_groups.group_search_error",
    "translation": "error retrieving ldap group"
  },
  {
    "id": "ent.ldap.validate_guest_filter.app_error",
    "translation": "Invalid AD/LDAP Guest Filter."
  },
  {
    "id": "ent.ldap.validate_filter.app_error",
    "translation": "Invalid AD/LDAP Filter."
  },
  {
    "id": "ent.ldap.validate_admin_filter.app_error",
    "translation": "Invalid AD/LDAP Admin Filter."
  },
  {
    "id": "ent.ldap.syncronize.search_failure_size_exceeded.app_error",
    "translation": "Size Limit Exceeded. Try increasing your Maximum page size setting. Check out https://docs.mattermost.com/onboard/ad-ldap.html#i-see-the-log-error-ldap-result-code-4-size-limit-exceeded for more details."
  },
  {
    "id": "ent.ldap.syncronize.search_failure.app_error",
    "translation": "Failed to search users in AD/LDAP. Test if the Mattermost server can connect to your AD/LDAP server and try again."
  },
  {
    "id": "ent.ldap.syncronize.populate_syncables",
    "translation": "error populating syncables"
  },
  {
    "id": "ent.ldap.syncronize.get_all_groups.app_error",
    "translation": "error retrieving groups."
  },
  {
    "id": "ent.ldap.syncronize.get_all.app_error",
    "translation": "Unable to get all users using AD/LDAP."
  },
  {
    "id": "ent.ldap.save_user.username_exists.ldap_app_error",
    "translation": "An account with that username already exists. Please contact your Administrator."
  },
  {
    "id": "ent.ldap.save_user.email_exists.ldap_app_error",
    "translation": "This account does not use AD/LDAP authentication. Please sign in using email and password."
  },
  {
    "id": "ent.ldap.no.users.checkcertificate",
    "translation": "No LDAP users found, check your user filter and certificates."
  },
  {
    "id": "ent.ldap.do_login.x509.app_error",
    "translation": "Error creating key pair"
  },
  {
    "id": "ent.ldap.do_login.user_not_registered.app_error",
    "translation": "User not registered on AD/LDAP server."
  },
  {
    "id": "ent.ldap.do_login.user_filtered.app_error",
    "translation": "Your AD/LDAP account does not have permission to use this Mattermost server. Please ask your System Administrator to check the AD/LDAP user filter."
  },
  {
    "id": "ent.ldap.do_login.unable_to_connect.app_error",
    "translation": "Unable to connect to AD/LDAP server."
  },
  {
    "id": "ent.ldap.do_login.search_ldap_server.app_error",
    "translation": "Failed to search AD/LDAP server."
  },
  {
    "id": "ent.ldap.do_login.matched_to_many_users.app_error",
    "translation": "Username given matches multiple users."
  },
  {
    "id": "ent.ldap.do_login.licence_disable.app_error",
    "translation": "AD/LDAP functionality disabled by current licence. Please contact your system administrator about upgrading your enterprise licence."
  },
  {
    "id": "ent.ldap.do_login.key.app_error",
    "translation": "Error loading LDAP TLS Key file."
  },
  {
    "id": "ent.ldap.do_login.invalid_password.app_error",
    "translation": "Invalid Password."
  },
  {
    "id": "ent.ldap.do_login.certificate.app_error",
    "translation": "Error loading LDAP TLS Certificate file."
  },
  {
    "id": "ent.ldap.do_login.bind_admin_user.app_error",
    "translation": "Unable to bind to AD/LDAP server. Check BindUsername and BindPassword."
  },
  {
    "id": "ent.ldap.disabled.app_error",
    "translation": "AD/LDAP disabled or licence does not support AD/LDAP."
  },
  {
    "id": "ent.ldap.create_fail",
    "translation": "Unable to create LDAP user."
  },
  {
    "id": "ent.ldap.app_error",
    "translation": "ldap interface was nil."
  },
  {
    "id": "ent.jobs.start_synchronize_job.timeout",
    "translation": "Reached AD/LDAP synchronisation job timeout."
  },
  {
    "id": "ent.id_loaded.license_disable.app_error",
    "translation": "Your licence does not support ID Loaded Push Notifications."
  },
  {
    "id": "ent.elasticsearch.test_config.reenter_password",
    "translation": "The Search Server URL or Username has changed. Please re-enter the password to test connection."
  },
  {
    "id": "ent.elasticsearch.test_config.license.error",
    "translation": "Your Mattermost licence doesn't support indexed search."
  },
  {
    "id": "ent.elasticsearch.test_config.indexing_disabled.error",
    "translation": "{{.Backend}} is disabled."
  },
  {
    "id": "ent.elasticsearch.stop.already_stopped.app_error",
    "translation": "{{.Backend}} is already stopped."
  },
  {
    "id": "ent.elasticsearch.start.parse_server_version.app_error",
    "translation": "Failed to parse {{.Backend}} server version."
  },
  {
    "id": "ent.elasticsearch.start.get_server_version.app_error",
    "translation": "Failed to get {{.Backend}} server version."
  },
  {
    "id": "ent.elasticsearch.search_users.unmarshall_user_failed",
    "translation": "Failed to decode search results"
  },
  {
    "id": "ent.elasticsearch.search_users.search_failed",
    "translation": "Search failed to complete"
  },
  {
    "id": "ent.elasticsearch.search_posts.unmarshall_post_failed",
    "translation": "Failed to decode search results"
  },
  {
    "id": "ent.elasticsearch.search_posts.search_failed",
    "translation": "Search failed to complete"
  },
  {
    "id": "ent.elasticsearch.search_posts.parse_matches_failed",
    "translation": "Failed to parse search result matches"
  },
  {
    "id": "ent.elasticsearch.search_posts.disabled",
    "translation": "{{.Backend}} searching is disabled on this server"
  },
  {
    "id": "ent.elasticsearch.search_files.unmarshall_file_failed",
    "translation": "Failed to decode search results"
  },
  {
    "id": "ent.elasticsearch.search_files.search_failed",
    "translation": "Search failed to complete"
  },
  {
    "id": "ent.elasticsearch.search_files.disabled",
    "translation": "{{.Backend}} files searching is disabled on this server"
  },
  {
    "id": "ent.elasticsearch.search_channels.unmarshall_channel_failed",
    "translation": "Failed to decode search results"
  },
  {
    "id": "ent.elasticsearch.search_channels.search_failed",
    "translation": "Search failed to complete"
  },
  {
    "id": "ent.elasticsearch.search_channels.disabled",
    "translation": "{{.Backend}} searching is disabled on this server"
  },
  {
    "id": "ent.elasticsearch.refresh_indexes.refresh_failed",
    "translation": "Failed to refresh search indexes"
  },
  {
    "id": "ent.elasticsearch.post.get_posts_batch_for_indexing.error",
    "translation": "Unable to get the posts batch for indexing."
  },
  {
    "id": "ent.elasticsearch.post.get_files_batch_for_indexing.error",
    "translation": "Unable to get the files batch for indexing."
  },
  {
    "id": "ent.elasticsearch.not_started.error",
    "translation": "{{.Backend}} is not started"
  },
  {
    "id": "ent.elasticsearch.indexer.index_batch.nothing_left_to_index.error",
    "translation": "Trying to index a new batch when all the entities are completed"
  },
  {
    "id": "ent.elasticsearch.indexer.do_job.parse_start_time.error",
    "translation": "{{.Backend}} indexing worker failed to parse the start time"
  },
  {
    "id": "ent.elasticsearch.indexer.do_job.parse_end_time.error",
    "translation": "{{.Backend}} indexing worker failed to parse the end time"
  },
  {
    "id": "ent.elasticsearch.indexer.do_job.get_oldest_entity.error",
    "translation": "The oldest entity (user, channel or post), could not be retrieved from the database"
  },
  {
    "id": "ent.elasticsearch.index_user.error",
    "translation": "Failed to index the user"
  },
  {
    "id": "ent.elasticsearch.index_post.error",
    "translation": "Failed to index the post"
  },
  {
    "id": "ent.elasticsearch.index_file.error",
    "translation": "Failed to index the file"
  },
  {
    "id": "ent.elasticsearch.index_channels_batch.error",
    "translation": "Unable to get the channels batch for indexing."
  },
  {
    "id": "ent.elasticsearch.index_channel.error",
    "translation": "Failed to index the channel"
  },
  {
    "id": "ent.elasticsearch.generic.disabled",
    "translation": "{{.Backend}} search is not enabled on this server"
  },
  {
    "id": "ent.elasticsearch.delete_user_posts.error",
    "translation": "Failed to delete user posts"
  },
  {
    "id": "ent.elasticsearch.delete_user_files.error",
    "translation": "Failed to delete user files"
  },
  {
    "id": "ent.elasticsearch.delete_user.error",
    "translation": "Failed to delete the user"
  },
  {
    "id": "ent.elasticsearch.delete_post_files.error",
    "translation": "Failed to delete post files"
  },
  {
    "id": "ent.elasticsearch.delete_post.error",
    "translation": "Failed to delete the post"
  },
  {
    "id": "ent.elasticsearch.delete_file.error",
    "translation": "Failed to delete file"
  },
  {
    "id": "ent.elasticsearch.delete_channel_posts.error",
    "translation": "Failed to delete channel posts"
  },
  {
    "id": "ent.elasticsearch.delete_channel.error",
    "translation": "Failed to delete the channel"
  },
  {
    "id": "ent.elasticsearch.data_retention_delete_indexes.get_indexes.error",
    "translation": "Failed to get {{.Backend}} indexes"
  },
  {
    "id": "ent.elasticsearch.data_retention_delete_indexes.delete_index.error",
    "translation": "Failed to delete {{.Backend}} index"
  },
  {
    "id": "ent.elasticsearch.create_template_users_if_not_exists.template_create_failed",
    "translation": "Failed to create {{.Backend}} template for users"
  },
  {
    "id": "ent.elasticsearch.create_template_posts_if_not_exists.template_create_failed",
    "translation": "Failed to create {{.Backend}} template for posts"
  },
  {
    "id": "ent.elasticsearch.create_template_file_info_if_not_exists.template_create_failed",
    "translation": "Failed to create {{.Backend}} template for files"
  },
  {
    "id": "ent.elasticsearch.create_template_channels_if_not_exists.template_create_failed",
    "translation": "Failed to create {{.Backend}} template for channels"
  },
  {
    "id": "ent.elasticsearch.create_client.connect_failed",
    "translation": "Setting up {{.Backend}} Client Failed"
  },
  {
    "id": "ent.elasticsearch.aggregator_worker.index_job_failed.error",
    "translation": "{{.Backend}} aggregator worker failed due to the indexing job failing"
  },
  {
    "id": "ent.elasticsearch.aggregator_worker.get_indexes.error",
    "translation": "{{.Backend}} aggregator worker failed to get indexes"
  },
  {
    "id": "ent.elasticsearch.aggregator_worker.delete_indexes.error",
    "translation": "{{.Backend}} aggregator worker failed to delete the indexes"
  },
  {
    "id": "ent.elasticsearch.aggregator_worker.create_index_job.error",
    "translation": "{{.Backend}} aggregator worker failed to create the indexing job"
  },
  {
    "id": "ent.data_retention.policies.invalid_policy",
    "translation": "Invalid policy."
  },
  {
    "id": "ent.data_retention.policies.internal_error",
    "translation": "An error occurred while performing the requested operation."
  },
  {
    "id": "ent.data_retention.generic.license.error",
    "translation": "Your licence does not support Data Retention."
  },
  {
    "id": "ent.compliance.run_failed.error",
    "translation": "Compliance export failed for job '{{.JobName}}' at '{{.FilePath}}'"
  },
  {
    "id": "ent.compliance.licence_disable.app_error",
    "translation": "Compliance functionality disabled by current licence. Please contact your system administrator about upgrading your enterprise licence."
  },
  {
    "id": "ent.cluster.config_changed.info",
    "translation": "Cluster configuration has changed for id={{ .id }}. The cluster may become unstable and a restart is required. To ensure the cluster is configured correctly you should perform a rolling restart immediately."
  },
  {
    "id": "ent.api.post.send_notifications_and_forget.push_image_only",
    "translation": " attached a file."
  },
  {
    "id": "ent.account_migration.get_saml_users_failed",
    "translation": "Unable to get SAML users."
  },
  {
    "id": "ent.account_migration.get_all_failed",
    "translation": "Unable to get users."
  },
  {
    "id": "brand.save_brand_image.save_image.app_error",
    "translation": "Unable to write the image file to your file storage. Please check your connection and try again."
  },
  {
    "id": "brand.save_brand_image.open.app_error",
    "translation": "Unable to upload the custom brand image. Make sure the image size is less than 2 MB and try again."
  },
  {
    "id": "brand.save_brand_image.encode.app_error",
    "translation": "Unable to convert the image data to PNG format. Please try again."
  },
  {
    "id": "brand.save_brand_image.decode.app_error",
    "translation": "Unable to decode the image data."
  },
  {
    "id": "app.webhooks.update_outgoing.app_error",
    "translation": "Unable to update the webhook."
  },
  {
    "id": "app.webhooks.update_incoming.app_error",
    "translation": "Unable to update the IncomingWebhook."
  },
  {
    "id": "app.webhooks.save_outgoing.override.app_error",
    "translation": "You cannot overwrite an existing OutgoingWebhook."
  },
  {
    "id": "app.webhooks.save_outgoing.app_error",
    "translation": "Unable to save the OutgoingWebhook."
  },
  {
    "id": "app.webhooks.save_incoming.existing.app_error",
    "translation": "You cannot overwrite an existing IncomingWebhook."
  },
  {
    "id": "app.webhooks.save_incoming.app_error",
    "translation": "Unable to save the IncomingWebhook."
  },
  {
    "id": "app.webhooks.permanent_delete_outgoing_by_user.app_error",
    "translation": "Unable to delete the webhook."
  },
  {
    "id": "app.webhooks.permanent_delete_outgoing_by_channel.app_error",
    "translation": "Unable to delete the webhook."
  },
  {
    "id": "app.webhooks.permanent_delete_incoming_by_user.app_error",
    "translation": "Unable to delete the webhook."
  },
  {
    "id": "app.webhooks.permanent_delete_incoming_by_channel.app_error",
    "translation": "Unable to delete the webhook."
  },
  {
    "id": "app.webhooks.get_outgoing_by_team.app_error",
    "translation": "Unable to get the webhooks."
  },
  {
    "id": "app.webhooks.get_outgoing_by_channel.app_error",
    "translation": "Unable to get the webhooks."
  },
  {
    "id": "app.webhooks.get_outgoing.app_error",
    "translation": "Unable to get the webhook."
  },
  {
    "id": "app.webhooks.get_incoming_by_user.app_error",
    "translation": "Unable to get the webhook."
  },
  {
    "id": "app.webhooks.get_incoming_by_channel.app_error",
    "translation": "Unable to get the webhooks."
  },
  {
    "id": "app.webhooks.get_incoming.app_error",
    "translation": "Unable to get the webhook."
  },
  {
    "id": "app.webhooks.delete_outgoing.app_error",
    "translation": "Unable to delete the webhook."
  },
  {
    "id": "app.webhooks.delete_incoming.app_error",
    "translation": "Unable to delete the webhook."
  },
  {
    "id": "app.webhooks.analytics_outgoing_count.app_error",
    "translation": "Unable to count the outgoing webhooks."
  },
  {
    "id": "app.webhooks.analytics_incoming_count.app_error",
    "translation": "Unable to count the incoming webhooks."
  },
  {
    "id": "app.valid_password_generic.app_error",
    "translation": "Password is not valid"
  },
  {
    "id": "app.user_terms_of_service.save.app_error",
    "translation": "Unable to save terms of service."
  },
  {
    "id": "app.user_terms_of_service.get_by_user.no_rows.app_error",
    "translation": "No terms of service found."
  },
  {
    "id": "app.user_terms_of_service.get_by_user.app_error",
    "translation": "Unable to fetch terms of service."
  },
  {
    "id": "app.user_terms_of_service.delete.app_error",
    "translation": "Unable to delete terms of service."
  },
  {
    "id": "app.user_access_token.update_token_enable.app_error",
    "translation": "Unable to enable the access token."
  },
  {
    "id": "app.user_access_token.update_token_disable.app_error",
    "translation": "Unable to disable the access token."
  },
  {
    "id": "app.user_access_token.search.app_error",
    "translation": "An error occurred while searching user access tokens."
  },
  {
    "id": "app.user_access_token.save.app_error",
    "translation": "Unable to save the personal access token."
  },
  {
    "id": "app.user_access_token.invalid_or_missing",
    "translation": "Invalid or missing token."
  },
  {
    "id": "app.user_access_token.get_by_user.app_error",
    "translation": "Unable to get the personal access tokens by user."
  },
  {
    "id": "app.user_access_token.get_all.app_error",
    "translation": "Unable to get all personal access tokens."
  },
  {
    "id": "app.user_access_token.disabled",
    "translation": "Personal access tokens are disabled on this server. Please contact your system administrator for details."
  },
  {
    "id": "app.user_access_token.delete.app_error",
    "translation": "Unable to delete the personal access token."
  },
  {
    "id": "app.user.verify_email.app_error",
    "translation": "Unable to update verify email field."
  },
  {
    "id": "app.user.update_update.app_error",
    "translation": "Unable to update the date of the last update of the user."
  },
  {
    "id": "app.user.update_threads_read_for_user.app_error",
    "translation": "Unable to update all user threads as read"
  },
  {
    "id": "app.user.update_thread_read_for_user.app_error",
    "translation": "Unable to update read state for thread"
  },
  {
    "id": "app.user.update_thread_follow_for_user.app_error",
    "translation": "Unable to update following state for thread"
  },
  {
    "id": "app.user.update_failed_pwd_attempts.app_error",
    "translation": "Unable to update the failed_attempts."
  },
  {
    "id": "app.user.update_auth_data.email_exists.app_error",
    "translation": "Unable to switch account to {{.Service}}. An account using the email {{.Email}} already exists."
  },
  {
    "id": "app.user.update_auth_data.app_error",
    "translation": "Unable to update the auth data."
  },
  {
    "id": "app.user.update_active_for_multiple_users.updating.app_error",
    "translation": "Unable to deactivate guests."
  },
  {
    "id": "app.user.update.finding.app_error",
    "translation": "An error occurred while finding the account."
  },
  {
    "id": "app.user.update.find.app_error",
    "translation": "Unable to find the existing account to update."
  },
  {
    "id": "app.user.send_auto_response.app_error",
    "translation": "Unable to send auto response from user."
  },
  {
    "id": "app.user.search.app_error",
    "translation": "Unable to find any user matching the search parameters."
  },
  {
    "id": "app.user.save.username_exists.app_error",
    "translation": "An account with that username already exists."
  },
  {
    "id": "app.user.save.existing.app_error",
    "translation": "Must call update for existing user."
  },
  {
    "id": "app.user.save.email_exists.app_error",
    "translation": "An account with that email already exists."
  },
  {
    "id": "app.user.save.app_error",
    "translation": "Unable to save the account."
  },
  {
    "id": "app.user.promote_guest.user_update.app_error",
    "translation": "Failed to update the user."
  },
  {
    "id": "app.user.permanentdeleteuser.internal_error",
    "translation": "Unable to delete user."
  },
  {
    "id": "app.user.permanent_delete.app_error",
    "translation": "Unable to delete the existing account."
  },
  {
    "id": "app.user.missing_account.const",
    "translation": "Unable to find the user."
  },
  {
    "id": "app.user.get_users_batch_for_indexing.get_users.app_error",
    "translation": "Unable to get the users batch for indexing."
  },
  {
    "id": "app.user.get_unread_count.app_error",
    "translation": "Could not get the unread message count for the user."
  },
  {
    "id": "app.user.get_total_users_count.app_error",
    "translation": "Could not count the users."
  },
  {
    "id": "app.user.get_threads_for_user.not_found",
    "translation": "User thread doesn't exist or is not followed"
  },
  {
    "id": "app.user.get_threads_for_user.app_error",
    "translation": "Unable to get user threads"
  },
  {
    "id": "app.user.get_recently_active_users.app_error",
    "translation": "An error occurred while finding the recently active users."
  },
  {
    "id": "app.user.get_profiles.app_error",
    "translation": "An error occurred while finding user profiles."
  },
  {
    "id": "app.user.get_profile_by_group_channel_ids_for_user.app_error",
    "translation": "An error occurred while finding user profiles."
  },
  {
    "id": "app.user.get_new_users.app_error",
    "translation": "An error occurred while finding the new users."
  },
  {
    "id": "app.user.get_known_users.get_users.app_error",
    "translation": "Unable to get known users from the database."
  },
  {
    "id": "app.user.get_by_username.app_error",
    "translation": "Unable to find an existing account matching your username for this team. This team may require an invite from the team owner to join."
  },
  {
    "id": "app.user.get_by_auth.other.app_error",
    "translation": "An error occurred while trying to find the account by authentication type."
  },
  {
    "id": "app.user.get_by_auth.missing_account.app_error",
    "translation": "Unable to find an existing account matching your authentication type for this team. This team may require an invite from the team owner to join."
  },
  {
    "id": "app.user.get.app_error",
    "translation": "An error occurred while finding the account."
  },
  {
    "id": "app.user.demote_user_to_guest.user_update.app_error",
    "translation": "Failed to update the user."
  },
  {
    "id": "app.user.convert_bot_to_user.app_error",
    "translation": "Unable to convert bot to user."
  },
  {
    "id": "app.user.clear_all_custom_role_assignments.select.app_error",
    "translation": "Failed to retrieve the users."
  },
  {
    "id": "app.user.analytics_get_inactive_users_count.app_error",
    "translation": "An error occurred while counting the inactive users."
  },
  {
    "id": "app.user.analytics_daily_active_users.app_error",
    "translation": "Unable to get the active users during the requested period."
  },
  {
    "id": "app.upload.upload_data.update.app_error",
    "translation": "Failed to update the upload session."
  },
  {
    "id": "app.upload.upload_data.save.app_error",
    "translation": "Failed to save file info."
  },
  {
    "id": "app.upload.upload_data.read_file.app_error",
    "translation": "Failed to read a file."
  },
  {
    "id": "app.upload.upload_data.move_file.app_error",
    "translation": "Failed to move uploaded file."
  },
  {
    "id": "app.upload.upload_data.large_image.app_error",
    "translation": "{{.Filename}} dimensions ({{.Width}} by {{.Height}} pixels) exceed the limits."
  },
  {
    "id": "app.upload.upload_data.first_part_too_small.app_error",
    "translation": "Failed to upload data. First part must be at least {{.Size}} Bytes."
  },
  {
    "id": "app.upload.upload_data.concurrent.app_error",
    "translation": "Unable to upload data from more than one request."
  },
  {
    "id": "app.upload.run_plugins_hook.rejected",
    "translation": "Unable to upload file {{.Filename}}. Rejected by plugin: {{.Reason}}"
  },
  {
    "id": "app.upload.run_plugins_hook.move_fail",
    "translation": "Failed to move file."
  },
  {
    "id": "app.upload.get_for_user.app_error",
    "translation": "Failed to get uploads for user."
  },
  {
    "id": "app.upload.get.app_error",
    "translation": "Failed to get upload."
  },
  {
    "id": "app.upload.create.save.app_error",
    "translation": "Failed to save upload."
  },
  {
    "id": "app.upload.create.incorrect_channel_id.app_error",
    "translation": "Cannot upload to the specified channel."
  },
  {
    "id": "app.upload.create.cannot_upload_to_deleted_channel.app_error",
    "translation": "Cannot upload to a deleted channel."
  },
  {
    "id": "app.update_error",
    "translation": "update error"
  },
  {
    "id": "app.terms_of_service.get.no_rows.app_error",
    "translation": "No terms of service found."
  },
  {
    "id": "app.terms_of_service.get.app_error",
    "translation": "Unable to fetch terms of service."
  },
  {
    "id": "app.terms_of_service.create.existing.app_error",
    "translation": "Must not call save for existing terms of service."
  },
  {
    "id": "app.terms_of_service.create.app_error",
    "translation": "Unable to save terms of service."
  },
  {
    "id": "app.team.user_belongs_to_teams.app_error",
    "translation": "Unable to determine if the user belongs to a list of teams."
  },
  {
    "id": "app.team.update.updating.app_error",
    "translation": "An error occurred while updating the team."
  },
  {
    "id": "app.team.update.find.app_error",
    "translation": "Unable to find the existing team to update."
  },
  {
    "id": "app.team.search_private_team.app_error",
    "translation": "An error occurred while searching private teams."
  },
  {
    "id": "app.team.search_open_team.app_error",
    "translation": "An error occurred while searching open teams."
  },
  {
    "id": "app.team.search_all_team.app_error",
    "translation": "An error occurred while searching teams."
  },
  {
    "id": "app.team.save_member.save.app_error",
    "translation": "Unable to save the team member."
  },
  {
    "id": "app.team.save.existing.app_error",
    "translation": "Must call update for existing team."
  },
  {
    "id": "app.team.save.app_error",
    "translation": "Unable to save the team."
  },
  {
    "id": "app.team.reset_all_team_schemes.app_error",
    "translation": "An error occurred while resetting the team schemes."
  },
  {
    "id": "app.team.rename_team.name_occupied",
    "translation": "Unable to rename the team, the name is already in use."
  },
  {
    "id": "app.team.remove_member.app_error",
    "translation": "Unable to remove the team member."
  },
  {
    "id": "app.team.permanentdeleteteam.internal_error",
    "translation": "Unable to delete team."
  },
  {
    "id": "app.team.permanent_delete.app_error",
    "translation": "Unable to delete the existing team."
  },
  {
    "id": "app.team.migrate_team_members.update.app_error",
    "translation": "Failed to update the team member."
  },
  {
    "id": "app.team.join_user_to_team.save_member.max_accounts.app_error",
    "translation": "Unable to create the new team membership because the team has reached the limit of members"
  },
  {
    "id": "app.team.join_user_to_team.save_member.conflict.app_error",
    "translation": "Unable to create the new team membership because it already exists"
  },
  {
    "id": "app.team.join_user_to_team.save_member.app_error",
    "translation": "Unable to create the new team membership"
  },
  {
    "id": "app.team.join_user_to_team.max_accounts.app_error",
    "translation": "This team has reached the maximum number of allowed accounts. Contact your System Administrator to set a higher limit."
  },
  {
    "id": "app.team.invite_token.group_constrained.error",
    "translation": "Unable to join a group-constrained team by token."
  },
  {
    "id": "app.team.invite_id.group_constrained.error",
    "translation": "Unable to join a group-constrained team by invite."
  },
  {
    "id": "app.team.get_user_team_ids.app_error",
    "translation": "Unable to get the list of teams of a user."
  },
  {
    "id": "app.team.get_unread.app_error",
    "translation": "Unable to get the teams unread messages."
  },
  {
    "id": "app.team.get_members_by_ids.app_error",
    "translation": "Unable to get the team members."
  },
  {
    "id": "app.team.get_members.app_error",
    "translation": "Unable to get the team members."
  },
  {
    "id": "app.team.get_member_count.app_error",
    "translation": "Unable to count the team members."
  },
  {
    "id": "app.team.get_member.missing.app_error",
    "translation": "No team member found for that user ID and team ID."
  },
  {
    "id": "app.team.get_member.app_error",
    "translation": "Unable to get the team member."
  },
  {
    "id": "app.team.get_common_team_ids_for_users.app_error",
    "translation": "Unable to get the common team IDs."
  },
  {
    "id": "app.team.get_by_scheme.app_error",
    "translation": "Unable to get the channels for the provided scheme."
  },
  {
    "id": "app.team.get_by_name.missing.app_error",
    "translation": "Unable to find the existing team."
  },
  {
    "id": "app.team.get_by_name.app_error",
    "translation": "Unable to find the existing team."
  },
  {
    "id": "app.team.get_by_invite_id.finding.app_error",
    "translation": "Unable to find the existing team."
  },
  {
    "id": "app.team.get_all_team_listing.app_error",
    "translation": "Could not get all teams."
  },
  {
    "id": "app.team.get_all_private_team_listing.app_error",
    "translation": "Could not get all private teams."
  },
  {
    "id": "app.team.get_all.app_error",
    "translation": "Could not get all teams."
  },
  {
    "id": "app.team.get_active_member_count.app_error",
    "translation": "Unable to count the team members."
  },
  {
    "id": "app.team.get.finding.app_error",
    "translation": "An error occurred while finding the team."
  },
  {
    "id": "app.create_basic_user.save_member.app_error",
    "translation": "Unable to create default team memberships"
  },
  {
    "id": "app.compliance.save.saving.app_error",
    "translation": "An error occurred while saving the compliance report."
  },
  {
    "id": "app.compliance.get.finding.app_error",
    "translation": "An error occurred while retrieving the compliance reports."
  },
  {
    "id": "app.command_webhook.try_use.invalid",
    "translation": "Invalid webhook."
  },
  {
    "id": "app.command_webhook.try_use.internal_error",
    "translation": "Unable to use the webhook."
  },
  {
    "id": "app.command_webhook.handle_command_webhook.parse",
    "translation": "Unable to parse incoming data."
  },
  {
    "id": "app.command_webhook.get.missing",
    "translation": "Unable to find the webhook."
  },
  {
    "id": "app.command_webhook.get.internal_error",
    "translation": "Unable to get the webhook."
  },
  {
    "id": "app.command_webhook.create_command_webhook.internal_error",
    "translation": "Unable to save the CommandWebhook."
  },
  {
    "id": "app.command_webhook.create_command_webhook.existing",
    "translation": "You cannot update an existing CommandWebhook."
  },
  {
    "id": "app.command.updatecommand.internal_error",
    "translation": "Unable to update the command."
  },
  {
    "id": "app.command.tryexecutecustomcommand.internal_error",
    "translation": "Unable to execute the custom command."
  },
  {
    "id": "app.command.regencommandtoken.internal_error",
    "translation": "Unable to regenerate the command token."
  },
  {
    "id": "app.command.movecommand.internal_error",
    "translation": "Unable to move the command."
  },
  {
    "id": "app.command.listteamcommands.internal_error",
    "translation": "Unable to list the team commands."
  },
  {
    "id": "app.command.listautocompletecommands.internal_error",
    "translation": "Unable to list the autocomplete commands."
  },
  {
    "id": "app.command.listallcommands.internal_error",
    "translation": "Unable to list the commands."
  },
  {
    "id": "app.command.getcommand.internal_error",
    "translation": "Unable to get the command."
  },
  {
    "id": "app.command.deletecommand.internal_error",
    "translation": "Unable to delete the command."
  },
  {
    "id": "app.command.createcommand.internal_error",
    "translation": "Unable to save the command."
  },
  {
    "id": "app.channel_member_history.log_leave_event.internal_error",
    "translation": "Failed to record channel member history. Failed to update existing join record"
  },
  {
    "id": "app.channel_member_history.log_join_event.internal_error",
    "translation": "Failed to record channel member history."
  },
  {
    "id": "app.channel.user_belongs_to_channels.app_error",
    "translation": "Unable to determine if the user belongs to a list of channels."
  },
  {
    "id": "app.channel.update_last_viewed_at_post.app_error",
    "translation": "Unable to mark channel as unread."
  },
  {
    "id": "app.channel.update_last_viewed_at.app_error",
    "translation": "Unable to update the last viewed at time."
  },
  {
    "id": "app.channel.update_channel.internal_error",
    "translation": "Unable to update channel."
  },
  {
    "id": "app.channel.update.bad_id",
    "translation": "Unable to update the channel."
  },
  {
    "id": "app.channel.sidebar_categories.app_error",
    "translation": "Failed to insert record to database."
  },
  {
    "id": "app.channel.search_group_channels.app_error",
    "translation": "Unable to get the group channels for the given user and term."
  },
  {
    "id": "app.channel.search.app_error",
    "translation": "An error occurred while searching channels."
  },
  {
    "id": "app.channel.save_member.exists.app_error",
    "translation": "A channel member with that ID already exists."
  },
  {
    "id": "app.channel.restore.app_error",
    "translation": "Unable to restore the channel."
  },
  {
    "id": "app.channel.reset_all_channel_schemes.app_error",
    "translation": "An error occurred while resetting the channel schemes."
  },
  {
    "id": "app.channel.remove_member.app_error",
    "translation": "Unable to remove the channel member."
  },
  {
    "id": "app.channel.remove_all_deactivated_members.app_error",
    "translation": "The deactivated users could not be removed from the channel."
  },
  {
    "id": "app.channel.post_update_channel_purpose_message.updated_to",
    "translation": "%s updated the channel purpose to: %s"
  },
  {
    "id": "app.channel.post_update_channel_purpose_message.updated_from",
    "translation": "%s updated the channel purpose from: %s to: %s"
  },
  {
    "id": "app.channel.post_update_channel_purpose_message.retrieve_user.error",
    "translation": "Failed to retrieve user while updating channel purpose message %v"
  },
  {
    "id": "app.channel.post_update_channel_purpose_message.removed",
    "translation": "%s removed the channel purpose (was: %s)"
  },
  {
    "id": "app.channel.post_update_channel_purpose_message.post.error",
    "translation": "Failed to post channel purpose message"
  },
  {
    "id": "app.channel.pinned_posts.app_error",
    "translation": "Unable to find the pinned posts."
  },
  {
    "id": "app.channel.permanent_delete_members_by_user.app_error",
    "translation": "Unable to remove the channel member."
  },
  {
    "id": "app.channel.permanent_delete.app_error",
    "translation": "Unable to delete the channel."
  },
  {
    "id": "app.channel.move_channel.members_do_not_match.error",
    "translation": "Unable to move a channel unless all its members are already members of the destination team."
  },
  {
    "id": "app.channel.migrate_channel_members.select.app_error",
    "translation": "Failed to select the batch of channel members."
  },
  {
    "id": "app.channel.get_unread.app_error",
    "translation": "Unable to get the channel unread messages."
  },
  {
    "id": "app.channel.get_public_channels.get.app_error",
    "translation": "Unable to get public channels."
  },
  {
    "id": "app.channel.get_private_channels.get.app_error",
    "translation": "Unable to get private channels."
  },
  {
    "id": "app.channel.get_pinnedpost_count.app_error",
    "translation": "Unable to get the channel pinned post count."
  },
  {
    "id": "app.channel.get_more_channels.get.app_error",
    "translation": "Unable to get the channels."
  },
  {
    "id": "app.channel.get_members_by_ids.app_error",
    "translation": "Unable to get the channel members."
  },
  {
    "id": "app.channel.get_members.app_error",
    "translation": "Unable to get the channel members."
  },
  {
    "id": "app.channel.get_member_count.app_error",
    "translation": "Unable to get the channel member count."
  },
  {
    "id": "app.channel.get_member.missing.app_error",
    "translation": "No channel member found for that user ID and channel ID."
  },
  {
    "id": "app.channel.get_member.app_error",
    "translation": "Unable to get the channel member."
  },
  {
    "id": "app.channel.get_for_post.app_error",
    "translation": "Unable to get the channel for the given post."
  },
  {
    "id": "app.channel.get_deleted.missing.app_error",
    "translation": "No deleted channels exist."
  },
  {
    "id": "app.channel.get_deleted.existing.app_error",
    "translation": "Unable to find the existing deleted channel."
  },
  {
    "id": "app.channel.get_channels_by_ids.not_found.app_error",
    "translation": "No channel found."
  },
  {
    "id": "app.channel.get_channels_by_ids.get.app_error",
    "translation": "Unable to get the channels."
  },
  {
    "id": "app.channel.get_channels_by_ids.app_error",
    "translation": "Unable to get channels by ids."
  },
  {
    "id": "app.channel.get_channels.not_found.app_error",
    "translation": "No channels were found."
  },
  {
    "id": "app.channel.get_channels.get.app_error",
    "translation": "Unable to get the channels."
  },
  {
    "id": "app.channel.get_channel_counts.get.app_error",
    "translation": "Unable to get the channel counts."
  },
  {
    "id": "app.channel.get_by_scheme.app_error",
    "translation": "Unable to get the channels for the provided scheme."
  },
  {
    "id": "app.channel.get_by_name.missing.app_error",
    "translation": "Channel does not exist."
  },
  {
    "id": "app.channel.get_by_name.existing.app_error",
    "translation": "Unable to find the existing channel."
  },
  {
    "id": "app.channel.get_all_direct.app_error",
    "translation": "Unable to get all the direct channels."
  },
  {
    "id": "app.channel.get_all_channels_count.app_error",
    "translation": "Unable to count all the channels."
  },
  {
    "id": "app.channel.get_all_channels.app_error",
    "translation": "Unable to get all the channels."
  },
  {
    "id": "app.channel.get_all.app_error",
    "translation": "Unable to get all the channels."
  },
  {
    "id": "app.channel.get.find.app_error",
    "translation": "An error occurred while finding the channel {{.channel_id}}."
  },
  {
    "id": "app.channel.get.existing.app_error",
    "translation": "Unable to find the existing channel {{.channel_id}}."
  },
  {
    "id": "app.channel.delete.app_error",
    "translation": "Unable to delete the channel."
  },
  {
    "id": "app.channel.create_initial_sidebar_categories.internal_error",
    "translation": "Unable to create initial sidebar categories for user."
  },
  {
    "id": "app.channel.create_direct_channel.internal_error",
    "translation": "Unable to save direct channel."
  },
  {
    "id": "app.channel.create_channel.no_team_id.app_error",
    "translation": "Must specify the team ID to create a channel."
  },
  {
    "id": "app.channel.create_channel.internal_error",
    "translation": "Unable to save channel."
  },
  {
    "id": "app.channel.count_posts_since.app_error",
    "translation": "Unable to count messages since given date."
  },
  {
    "id": "app.channel.clear_all_custom_role_assignments.select.app_error",
    "translation": "Failed to retrieve the channel members."
  },
  {
    "id": "app.channel.autofollow.app_error",
    "translation": "Failed to update thread membership for mentioned user"
  },
  {
    "id": "app.channel.analytics_type_count.app_error",
    "translation": "Unable to get channel type counts."
  },
  {
    "id": "app.bot.permenent_delete.bad_id",
    "translation": "Unable to delete the bot."
  },
  {
    "id": "app.bot.permanent_delete.internal_error",
    "translation": "Unable to delete the bot permanently."
  },
  {
    "id": "app.bot.patchbot.internal_error",
    "translation": "Unable to update the bot."
  },
  {
    "id": "app.bot.getbots.internal_error",
    "translation": "Unable to get the bots."
  },
  {
    "id": "app.bot.getbot.internal_error",
    "translation": "Unable to get the bot."
  },
  {
    "id": "app.bot.get_disable_bot_sysadmin_message",
    "translation": "{{if .disableBotsSetting}}{{if .printAllBots}}{{.UserName}} was deactivated. They managed the following bot accounts which have now been disabled.\n\n{{.BotNames}}{{else}}{{.UserName}} was deactivated. They managed {{.NumBots}} bot accounts which have now been disabled, including the following:\n\n{{.BotNames}}{{end}}You can take ownership of each bot by enabling it at **Integrations > Bot Accounts** and creating new tokens for the bot.\n\nFor more information, see our [documentation](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled).{{else}}{{if .printAllBots}}{{.UserName}} was deactivated. They managed the following bot accounts which are still enabled.\n\n{{.BotNames}}\n{{else}}{{.UserName}} was deactivated. They managed {{.NumBots}} bot accounts which are still enabled, including the following:\n\n{{.BotNames}}{{end}}We strongly recommend you to take ownership of each bot by re-enabling it at **Integrations > Bot Accounts** and creating new tokens for the bot.\n\nFor more information, see our [documentation](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled).\n\nIf you want bot accounts to disable automatically after owner deactivation, set 'Disable bot accounts when owner is deactivated' in **System Console > Integrations > Bot Accounts** to true.{{end}}"
  },
  {
    "id": "app.bot.createbot.internal_error",
    "translation": "Unable to save the bot."
  },
  {
    "id": "app.audit.save.saving.app_error",
    "translation": "An error occurred while saving the audit."
  },
  {
    "id": "app.audit.permanent_delete_by_user.app_error",
    "translation": "An error occurred while deleting the audits."
  },
  {
    "id": "app.audit.get.limit.app_error",
    "translation": "Limit exceeded for paging."
  },
  {
    "id": "app.audit.get.finding.app_error",
    "translation": "An error occurred while finding the audits."
  },
  {
    "id": "app.analytics.getanalytics.internal_error",
    "translation": "Unable to get the analytics."
  },
  {
    "id": "app.admin.test_site_url.failure",
    "translation": "This is not a valid live URL"
  },
  {
    "id": "app.admin.test_email.failure",
    "translation": "Connection unsuccessful: {{.Error}}"
  },
  {
    "id": "app.admin.saml.invalid_response_from_idp.app_error",
    "translation": "Could not read the response received from the Identity Provider."
  },
  {
    "id": "app.admin.saml.failure_read_response_body_from_idp.app_error",
    "translation": "Failure encountered when reading the response payload received from the Identity Provider."
  },
  {
    "id": "app.admin.saml.failure_decode_metadata_xml_from_idp.app_error",
    "translation": "Could not decode the XML metadata information received from the Identity Provider."
  },
  {
    "id": "api.websocket_handler.server_busy.app_error",
    "translation": "Server is busy, non-critical services are temporarily unavailable."
  },
  {
    "id": "api.websocket_handler.invalid_param.app_error",
    "translation": "Invalid {{.Name}} parameter."
  },
  {
    "id": "api.webhook.update_outgoing.intersect.app_error",
    "translation": "Outgoing webhooks from the same channel cannot have the same trigger words/callback URLs."
  },
  {
    "id": "api.webhook.team_mismatch.app_error",
    "translation": "Unable to update webhook across teams."
  },
  {
    "id": "api.webhook.create_outgoing.triggers.app_error",
    "translation": "Either trigger_words or channel_id must be set."
  },
  {
    "id": "api.webhook.create_outgoing.permissions.app_error",
    "translation": "Invalid permissions to create outgoing webhook."
  },
  {
    "id": "api.webhook.create_outgoing.not_open.app_error",
    "translation": "Outgoing webhooks can only be created for public channels."
  },
  {
    "id": "api.webhook.create_outgoing.intersect.app_error",
    "translation": "Outgoing webhooks from the same channel cannot have the same trigger words/callback URLs."
  },
  {
    "id": "api.web_socket_router.not_authenticated.app_error",
    "translation": "WebSocket connection is not authenticated. Please log in and try again."
  },
  {
    "id": "api.web_socket_router.no_action.app_error",
    "translation": "No WebSocket action."
  },
  {
    "id": "api.web_socket_router.bad_seq.app_error",
    "translation": "Invalid sequence for WebSocket message."
  },
  {
    "id": "api.web_socket_router.bad_action.app_error",
    "translation": "Unknown WebSocket action."
  },
  {
    "id": "api.web_socket.connect.upgrade.app_error",
    "translation": "URL blocked due to CORS. URL: {{.BlockedOrigin}}"
  },
  {
    "id": "api.user.verify_email.token_parse.error",
    "translation": "Failed to parse token data from email verification"
  },
  {
    "id": "api.upgrade_to_enterprise.invalid-permission.app_error",
    "translation": "Mattermost was unable to upgrade to Enterprise Edition. The Mattermost system user {{.MattermostUsername}} does not have write access to the necessary binary file. A system administrator can update the file permissions by executing the following command on the server where Mattermost is installed:\n\n```\nchmod +w '{{.Path}}'\n```\n\nAfter changing the file permissions, try to upgrade Mattermost again. When you have upgraded and restarted, remember to restore the original binary file permissions:\n\n```\nchmod -w '{{.Path}}'\n```"
  },
  {
    "id": "api.upgrade_to_enterprise.generic_error.app_error",
    "translation": "Mattermost was unable to upgrade to Enterprise Edition."
  },
  {
    "id": "api.upgrade_to_enterprise.app_error",
    "translation": "An upgrade to Mattermost Enterprise Edition is already running."
  },
  {
    "id": "api.upgrade_to_enterprise.already-enterprise.app_error",
    "translation": "You cannot upgrade because you are already running Mattermost Enterprise Edition."
  },
  {
    "id": "api.upgrade_to_enterprise.already-done.app_error",
    "translation": "You have already upgraded to Mattermost Enterprise Edition. Please restart the server to finish the upgrade."
  },
  {
    "id": "api.unable_to_create_zip_file",
    "translation": "Error creating zip file."
  },
  {
    "id": "api.templates.welcome_subject",
    "translation": "[{{ .SiteName }}] You joined {{ .ServerURL }}"
  },
  {
    "id": "api.templates.welcome_body.title",
    "translation": "Welcome to the team"
  },
  {
    "id": "api.templates.welcome_body.subTitle2",
    "translation": "Click below to verify your email address."
  },
  {
    "id": "api.templates.welcome_body.subTitle1",
    "translation": "Thanks for joining "
  },
  {
    "id": "api.templates.welcome_body.serverURL",
    "translation": "{{ .ServerURL }}."
  },
  {
    "id": "api.templates.welcome_body.info1",
    "translation": "If it was not you, you can safely ignore this email."
  },
  {
    "id": "api.templates.welcome_body.info",
    "translation": "This email address was used to create an account with Mattermost."
  },
  {
    "id": "api.templates.welcome_body.button",
    "translation": "Verify Email"
  },
  {
    "id": "api.templates.welcome_body.app_download_title",
    "translation": "Download the desktop and mobile apps"
  },
  {
    "id": "api.templates.welcome_body.app_download_info",
    "translation": "For the best experience, download the apps for PC, Mac, iOS and Android."
  },
  {
    "id": "api.templates.welcome_body.app_download_button",
    "translation": "Download"
  },
  {
    "id": "api.templates.verify_subject",
    "translation": "[{{ .SiteName }}] Email Verification"
  },
  {
    "id": "api.templates.verify_body.title",
    "translation": "Verify your email address"
  },
  {
    "id": "api.templates.verify_body.subTitle2",
    "translation": "Click below to verify your email address."
  },
  {
    "id": "api.templates.verify_body.subTitle1",
    "translation": "Thanks for joining "
  },
  {
    "id": "api.templates.verify_body.serverURL",
    "translation": "{{ .ServerURL }}."
  },
  {
    "id": "api.templates.verify_body.info1",
    "translation": "If it was not you, you can safely ignore this email."
  },
  {
    "id": "api.templates.verify_body.info",
    "translation": "This email address was used to create an account with Mattermost."
  },
  {
    "id": "api.templates.verify_body.button",
    "translation": "Verify Email"
  },
  {
    "id": "api.templates.username_change_subject",
    "translation": "[{{ .SiteName }}] Your username has changed"
  },
  {
    "id": "api.templates.username_change_body.title",
    "translation": "You updated your username"
  },
  {
    "id": "api.templates.username_change_body.info",
    "translation": "Your username for {{.TeamDisplayName}} has been changed to {{.NewUsername}}."
  },
  {
    "id": "api.templates.user_access_token_subject",
    "translation": "[{{ .SiteName }}] Personal access token added to your account"
  },
  {
    "id": "api.templates.user_access_token_body.title",
    "translation": "Personal access token added to your account"
  },
  {
    "id": "api.templates.user_access_token_body.info",
    "translation": "A personal access token was added to your account on {{ .SiteURL }}. They can be used to access {{.SiteName}} with your account."
  },
  {
    "id": "api.templates.signin_change_email.subject",
    "translation": "[{{ .SiteName }}] Your sign-in method has been updated"
  },
  {
    "id": "api.templates.signin_change_email.body.title",
    "translation": "You updated your sign-in method"
  },
  {
    "id": "api.templates.signin_change_email.body.method_email",
    "translation": "email and password"
  },
  {
    "id": "api.templates.signin_change_email.body.info",
    "translation": "You updated your sign-in method on {{ .SiteName }} to {{.Method}}."
  },
  {
    "id": "api.templates.reset_subject",
    "translation": "[{{ .SiteName }}] Reset your password"
  },
  {
    "id": "api.templates.reset_body.title",
    "translation": "Reset Your Password"
  },
  {
    "id": "api.templates.reset_body.subTitle",
    "translation": "Click the button below to reset your password. If you didn’t request this, you can safely ignore this email."
  },
  {
    "id": "api.templates.reset_body.info",
    "translation": "The password reset link expires in 24 hours."
  },
  {
    "id": "api.templates.reset_body.button",
    "translation": "Reset Password"
  },
  {
    "id": "api.templates.remove_expired_license.subject",
    "translation": "Mattermost Enterprise licence has been disabled."
  },
  {
    "id": "api.templates.questions_footer.title",
    "translation": "Questions?"
  },
  {
    "id": "api.templates.questions_footer.info",
    "translation": "Need help or have questions? Email us at "
  },
  {
    "id": "api.templates.post_body.button",
    "translation": "Reply in Mattermost"
  },
  {
    "id": "api.templates.password_change_subject",
    "translation": "[{{ .SiteName }}] Your password has been updated"
  },
  {
    "id": "api.templates.password_change_body.title",
    "translation": "Your password has been updated"
  },
  {
    "id": "api.templates.password_change_body.info",
    "translation": "Your password has been updated for {{.TeamDisplayName}} on {{ .TeamURL }} by {{.Method}}."
  },
  {
    "id": "ent.cluster.timeout.error",
    "translation": "Timed out waiting for cluster response"
  },
  {
    "id": "ent.cluster.save_config.error",
    "translation": "System Console is set to read-only when High Availability is enabled unless ReadOnlyConfig is disabled in the configuration file."
  },
  {
    "id": "ent.cluster.json_encode.error",
    "translation": "Error occurred while marshalling JSON request"
  },
  {
    "id": "app.import.validate_reaction_import_data.user_missing.error",
    "translation": "Missing required Reaction property: User."
  },
  {
    "id": "app.import.validate_reaction_import_data.emoji_name_missing.error",
    "translation": "Missing required Reaction property: EmojiName."
  },
  {
    "id": "app.import.validate_reaction_import_data.emoji_name_length.error",
    "translation": "Reaction EmojiName property is longer than the maximum permitted length."
  },
  {
    "id": "app.import.validate_reaction_import_data.create_at_zero.error",
    "translation": "Reaction CreateAt property must not be zero."
  },
  {
    "id": "app.import.validate_reaction_import_data.create_at_missing.error",
    "translation": "Missing required Reaction property: create_at."
  },
  {
    "id": "app.import.validate_reaction_import_data.create_at_before_parent.error",
    "translation": "Reaction CreateAt property must be greater than the parent post CreateAt."
  },
  {
    "id": "app.import.validate_post_import_data.user_missing.error",
    "translation": "Missing required Post property: User."
  },
  {
    "id": "app.import.validate_post_import_data.team_missing.error",
    "translation": "Missing required Post property: Team."
  },
  {
    "id": "app.import.validate_post_import_data.props_too_large.error",
    "translation": "Post Props are longer than the maximum permitted length."
  },
  {
    "id": "app.import.validate_post_import_data.message_missing.error",
    "translation": "Missing required Post property: Message."
  },
  {
    "id": "app.import.validate_post_import_data.message_length.error",
    "translation": "Post Message property is longer than the maximum permitted length."
  },
  {
    "id": "app.import.validate_post_import_data.create_at_zero.error",
    "translation": "Post CreateAt property must not be zero."
  },
  {
    "id": "app.import.validate_post_import_data.create_at_missing.error",
    "translation": "Missing required Post property: create_at."
  },
  {
    "id": "app.import.validate_post_import_data.channel_missing.error",
    "translation": "Missing required Post property: Channel."
  },
  {
    "id": "app.import.validate_emoji_import_data.name_missing.error",
    "translation": "Import emoji name field missing or blank."
  },
  {
    "id": "app.import.validate_emoji_import_data.image_missing.error",
    "translation": "Import emoji image field missing or blank."
  },
  {
    "id": "api.templates.mfa_deactivated_body.title",
    "translation": "Multi-factor authentication was removed"
  },
  {
    "id": "api.templates.mfa_deactivated_body.info",
    "translation": "Multi-factor authentication has been removed from your account on {{ .SiteURL }}."
  },
  {
    "id": "api.templates.mfa_change_subject",
    "translation": "[{{ .SiteName }}] Your MFA has been updated"
  },
  {
    "id": "api.templates.mfa_activated_body.title",
    "translation": "Multi-factor authentication was added"
  },
  {
    "id": "api.templates.mfa_activated_body.info",
    "translation": "Multi-factor authentication has been added to your account on {{ .SiteURL }}."
  },
  {
    "id": "api.templates.invite_subject",
    "translation": "[{{ .SiteName }}] {{ .SenderName }} invited you to join {{ .TeamDisplayName }} Team"
  },
  {
    "id": "api.templates.invite_guest_subject",
    "translation": "[{{ .SiteName }}] {{ .SenderName }} invited you to join the team {{ .TeamDisplayName }} as a guest"
  },
  {
    "id": "api.templates.invite_body_guest.subTitle",
    "translation": "You were invited as a guest to collaborate with the team"
  },
  {
    "id": "api.templates.invite_body_footer.title",
    "translation": "What is Mattermost?"
  },
  {
    "id": "api.templates.invite_body_footer.learn_more",
    "translation": "Learn more"
  },
  {
    "id": "api.templates.invite_body_footer.info",
    "translation": "Mattermost is a flexible, open source messaging platform that enables secure team collaboration."
  },
  {
    "id": "api.templates.invite_body.title",
    "translation": "{{ .SenderName }} invited you to join the {{ .TeamDisplayName }} team."
  },
  {
    "id": "api.templates.invite_body.subTitle",
    "translation": "Start collaborating with your team on Mattermost"
  },
  {
    "id": "api.templates.invite_body.button",
    "translation": "Join now"
  },
  {
    "id": "api.templates.email_warning",
    "translation": "If you did not make this change, please contact the system administrator."
  },
  {
    "id": "api.templates.email_us_anytime_at",
    "translation": "Email us any time at "
  },
  {
    "id": "api.templates.email_organization",
    "translation": "Sent by "
  },
  {
    "id": "api.templates.email_info3",
    "translation": "The {{.SiteName}} Team"
  },
  {
    "id": "api.templates.email_info2",
    "translation": "Best wishes,"
  },
  {
    "id": "api.templates.email_info1",
    "translation": "Any questions at all, mail us any time: "
  },
  {
    "id": "api.templates.email_footer_v2",
    "translation": "© 2015 - {{ .CurrentYear }} Mattermost, Inc. 2100 Geng Road, Suite 210, Palo Alto, CA, 94303"
  },
  {
    "id": "api.templates.email_footer",
    "translation": "To change your notification preferences, log in to your team site and go to Settings > Notifications."
  },
  {
    "id": "api.templates.email_change_verify_subject",
    "translation": "[{{ .SiteName }}] Verify new email address"
  },
  {
    "id": "api.templates.email_change_verify_body.title",
    "translation": "You successfully updated your email"
  },
  {
    "id": "api.templates.email_change_verify_body.info",
    "translation": "To finish updating your email address for {{.TeamDisplayName}}, please click the link below to confirm this is the right address."
  },
  {
    "id": "api.templates.email_change_verify_body.button",
    "translation": "Verify Email"
  },
  {
    "id": "api.templates.email_change_subject",
    "translation": "[{{ .SiteName }}] Your email address has changed"
  },
  {
    "id": "api.templates.email_change_body.title",
    "translation": "You updated your email"
  },
  {
    "id": "api.templates.email_change_body.info",
    "translation": "Your email address for {{.TeamDisplayName}} has been changed to {{.NewEmail}}."
  },
  {
    "id": "api.templates.deactivate_subject",
    "translation": "[{{ .SiteName }}] Your account at {{ .ServerURL }} has been deactivated"
  },
  {
    "id": "api.templates.deactivate_body.warning",
    "translation": "If this change was not initiated by you or you want to reactivate your account, contact your system administrator."
  },
  {
    "id": "api.templates.deactivate_body.title",
    "translation": "Your account has been deactivated at {{ .ServerURL }}"
  },
  {
    "id": "api.templates.deactivate_body.info",
    "translation": "You deactivated your account on {{ .SiteURL }}."
  },
  {
    "id": "api.templates.cloud_welcome_email.title",
    "translation": "Your workspace is ready to go!"
  },
  {
    "id": "api.templates.cloud_welcome_email.subtitle_info",
    "translation": "Take the following steps to build out your teams and get the most out of your workspace."
  },
  {
    "id": "api.templates.cloud_welcome_email.subtitle",
    "translation": "Set up your workspace"
  },
  {
    "id": "api.templates.cloud_welcome_email.subject",
    "translation": "Congratulations!"
  },
  {
    "id": "api.templates.cloud_welcome_email.start_questions",
    "translation": "Having questions about getting started? Email us at"
  },
  {
    "id": "api.templates.cloud_welcome_email.signin_sub_info2",
    "translation": "for the best experience on Windows, Linux, Mac, iOS and Android."
  },
  {
    "id": "api.templates.cloud_welcome_email.signin_sub_info",
    "translation": "Sign into your workspace on our"
  },
  {
    "id": "api.templates.cloud_welcome_email.mm_apps",
    "translation": "mobile and desktop apps"
  },
  {
    "id": "api.templates.cloud_welcome_email.invite_sub_info",
    "translation": "Share this link to invite your members to join {{.WorkSpace}}:"
  },
  {
    "id": "api.templates.cloud_welcome_email.invite_info",
    "translation": "Invite people to your workspace"
  },
  {
    "id": "api.templates.cloud_welcome_email.info2",
    "translation": "Make sure to save or bookmark your link for future use."
  },
  {
    "id": "api.templates.cloud_welcome_email.info",
    "translation": "Thanks for creating "
  },
  {
    "id": "api.templates.cloud_welcome_email.download_mm_info",
    "translation": "Download the Mattermost App"
  },
  {
    "id": "api.templates.cloud_welcome_email.button",
    "translation": "Open Mattermost"
  },
  {
    "id": "api.templates.cloud_welcome_email.app_market_place",
    "translation": "app marketplace."
  },
  {
    "id": "api.templates.cloud_welcome_email.add_apps_sub_info",
    "translation": "Streamline your work with tools like GitHub, Jira and Zoom. Explore all of the integrations we have on our"
  },
  {
    "id": "api.templates.cloud_welcome_email.add_apps_info",
    "translation": "Add apps to your workspace"
  },
  {
    "id": "api.team.update_team_scheme.scheme_scope.error",
    "translation": "Unable to set the scheme to the team because the supplied scheme is not a team scheme."
  },
  {
    "id": "api.team.update_team_scheme.license.error",
    "translation": "Your licence does not support updating a team's scheme"
  },
  {
    "id": "api.team.update_team_member_roles.guest_and_user.app_error",
    "translation": "Invalid team member update: A user must be a guest or a user but not both."
  },
  {
    "id": "api.team.update_restricted_domains.mismatch.app_error",
    "translation": "Restricting team to {{ .Domain }} is not allowed by the system config. Please contact your system administrator."
  },
  {
    "id": "api.team.update_member_roles.not_a_member",
    "translation": "Specified user is not a member of specified team."
  },
  {
    "id": "api.team.team_icon.update.app_error",
    "translation": "An error occurred updating the team icon."
  },
  {
    "id": "api.team.set_team_icon.write_file.app_error",
    "translation": "Could not save team icon."
  },
  {
    "id": "api.team.set_team_icon.too_large.app_error",
    "translation": "Unable to upload team icon. File is too large."
  },
  {
    "id": "api.team.set_team_icon.storage.app_error",
    "translation": "Unable to upload team icon. Image storage is not configured."
  },
  {
    "id": "api.team.set_team_icon.parse.app_error",
    "translation": "Could not parse multipart form."
  },
  {
    "id": "api.team.set_team_icon.open.app_error",
    "translation": "Could not open image file."
  },
  {
    "id": "api.team.set_team_icon.no_file.app_error",
    "translation": "No file under 'image' in request."
  },
  {
    "id": "api.team.set_team_icon.get_team.app_error",
    "translation": "An error occurred getting the team."
  },
  {
    "id": "api.team.set_team_icon.encode.app_error",
    "translation": "Could not encode team icon."
  },
  {
    "id": "api.team.set_team_icon.decode.app_error",
    "translation": "Could not decode team icon."
  },
  {
    "id": "api.team.set_team_icon.array.app_error",
    "translation": "Empty array under 'image' in request."
  },
  {
    "id": "api.team.search_teams.pagination_not_implemented.public_team_search",
    "translation": "Pagination not implemented for public-only team search."
  },
  {
    "id": "api.team.search_teams.pagination_not_implemented.private_team_search",
    "translation": "Pagination not implemented for private-only team search."
  },
  {
    "id": "api.team.remove_user_from_team.removed",
    "translation": "%v removed from the team."
  },
  {
    "id": "api.team.remove_user_from_team.missing.app_error",
    "translation": "The user does not appear to be part of this team."
  },
  {
    "id": "api.team.remove_team_icon.get_team.app_error",
    "translation": "An error occurred getting the team."
  },
  {
    "id": "api.team.remove_member.group_constrained.app_error",
    "translation": "Unable to remove a user from a group-constrained team."
  },
  {
    "id": "api.team.move_channel.success",
    "translation": "This channel has been moved to this team from %v."
  },
  {
    "id": "api.team.move_channel.post.error",
    "translation": "Failed to post channel move message."
  },
  {
    "id": "api.team.leave.left",
    "translation": "%v left the team."
  },
  {
    "id": "api.team.join_user_to_team.allowed_domains.app_error",
    "translation": "The user cannot be added as the domain associated with the account is not permitted. Contact your System Administrator for additional details."
  },
  {
    "id": "api.team.join_team.post_and_forget",
    "translation": "%v joined the team."
  },
  {
    "id": "api.team.is_team_creation_allowed.domain.app_error",
    "translation": "The user cannot be added as the domain associated with the account is not permitted. Contact your System Administrator for additional details."
  },
  {
    "id": "api.team.is_team_creation_allowed.disabled.app_error",
    "translation": "Team creation has been disabled. Please ask your System Administrator for details."
  },
  {
    "id": "api.team.invite_members.no_one.app_error",
    "translation": "No one to invite."
  },
  {
    "id": "api.team.invite_members.invalid_email.app_error",
    "translation": "The following email addresses do not belong to an accepted domain: {{.Addresses}}. Please contact your System Administrator for details."
  },
  {
    "id": "api.team.invite_members.disabled.app_error",
    "translation": "Email invitations are disabled."
  },
  {
    "id": "api.team.invite_guests_to_channels.invalid_body.app_error",
    "translation": "Invalid or missing request body."
  },
  {
    "id": "api.team.invite_guests.channel_in_invalid_team.app_error",
    "translation": "The channels of the invite must be part of the team of the invite."
  },
  {
    "id": "api.team.invalidate_all_email_invites.app_error",
    "translation": "Error invalidating email invites."
  },
  {
    "id": "api.team.import_team.unknown_import_from.app_error",
    "translation": "Unknown import source."
  },
  {
    "id": "api.team.import_team.unavailable.app_error",
    "translation": "Malformed request: filesize field is not present."
  },
  {
    "id": "api.team.import_team.parse.app_error",
    "translation": "Could not parse multipart form."
  },
  {
    "id": "api.team.import_team.open.app_error",
    "translation": "Could not open file."
  },
  {
    "id": "api.team.import_team.no_import_from.app_error",
    "translation": "Malformed request: importFrom field is not present."
  },
  {
    "id": "api.team.import_team.no_file.app_error",
    "translation": "No file under 'file' in request."
  },
  {
    "id": "api.team.import_team.integer.app_error",
    "translation": "Filesize not an integer."
  },
  {
    "id": "api.team.import_team.array.app_error",
    "translation": "Empty array under 'file' in request."
  },
  {
    "id": "api.team.get_team_icon.read_file.app_error",
    "translation": "Unable to read the team icon file."
  },
  {
    "id": "api.team.get_team_icon.filesettings_no_driver.app_error",
    "translation": "Invalid driver name for file settings.  Must be 'local' or 'amazons3'."
  },
  {
    "id": "api.team.get_invite_info.not_open_team",
    "translation": "Invite is invalid because this is not an open team."
  },
  {
    "id": "api.post.create_post.channel_root_id.app_error",
    "translation": "Invalid ChannelId for RootId parameter."
  },
  {
    "id": "api.post.create_post.can_not_post_to_deleted.error",
    "translation": "Cannot post to deleted channel."
  },
  {
    "id": "api.post.check_for_out_of_channel_mentions.message.one",
    "translation": "@{{.Username}} did not get notified by this mention because they are not in the channel."
  },
  {
    "id": "api.post.check_for_out_of_channel_mentions.message.multiple",
    "translation": "@{{.Usernames}} and @{{.LastUsername}} did not get notified by this mention because they are not in the channel."
  },
  {
    "id": "api.post.check_for_out_of_channel_groups_mentions.message.one",
    "translation": "@{{.Username}} did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups."
  },
  {
    "id": "api.post.check_for_out_of_channel_groups_mentions.message.multiple",
    "translation": "@{{.Usernames}} and @{{.LastUsername}} did not get notified by this mention because they are not in the channel. They cannot be added to the channel because they are not a member of the linked groups. To add them to this channel, they must be added to the linked groups."
  },
  {
    "id": "api.post.check_for_out_of_channel_group_users.message.none",
    "translation": "@{{.GroupName}} has no members on this team"
  },
  {
    "id": "api.plugin.verify_plugin.app_error",
    "translation": "Unable to verify plugin signature."
  },
  {
    "id": "api.plugin.upload.no_file.app_error",
    "translation": "Missing file in multipart/form request."
  },
  {
    "id": "api.plugin.upload.file.app_error",
    "translation": "Unable to open file in multipart/form request."
  },
  {
    "id": "api.plugin.upload.array.app_error",
    "translation": "File array is empty in multipart/form request."
  },
  {
    "id": "api.plugin.install.download_failed.app_error",
    "translation": "An error occurred while downloading the plugin."
  },
  {
    "id": "api.outgoing_webhook.disabled.app_error",
    "translation": "Outgoing webhooks have been disabled by the system admin."
  },
  {
    "id": "api.oauth.singup_with_oauth.invalid_link.app_error",
    "translation": "The sign-up link does not appear to be valid."
  },
  {
    "id": "api.oauth.singup_with_oauth.expired_link.app_error",
    "translation": "The sign-up link has expired."
  },
  {
    "id": "api.oauth.singup_with_oauth.disabled.app_error",
    "translation": "User sign-up is disabled."
  },
  {
    "id": "api.oauth.revoke_access_token.get.app_error",
    "translation": "Error getting access token from DB before deletion."
  },
  {
    "id": "api.oauth.revoke_access_token.del_token.app_error",
    "translation": "Error deleting access token from DB."
  },
  {
    "id": "api.oauth.revoke_access_token.del_session.app_error",
    "translation": "Error deleting session from DB."
  },
  {
    "id": "api.oauth.register_oauth_app.turn_off.app_error",
    "translation": "The system admin has turned off OAuth2 Service Provider."
  },
  {
    "id": "api.oauth.redirecting_back",
    "translation": "Redirecting you back to the app."
  },
  {
    "id": "api.oauth.invalid_state_token.app_error",
    "translation": "Invalid state token."
  },
  {
    "id": "api.oauth.get_access_token.refresh_token.app_error",
    "translation": "invalid_grant: Invalid refresh token."
  },
  {
    "id": "api.oauth.get_access_token.redirect_uri.app_error",
    "translation": "invalid_request: Supplied redirect_uri does not match authorisation code redirect_uri."
  },
  {
    "id": "api.oauth.get_access_token.missing_refresh_token.app_error",
    "translation": "invalid_request: Missing refresh_token."
  },
  {
    "id": "api.oauth.get_access_token.missing_code.app_error",
    "translation": "invalid_request: Missing code."
  },
  {
    "id": "api.oauth.get_access_token.internal_user.app_error",
    "translation": "server_error: Encountered internal server error while pulling user from database."
  },
  {
    "id": "api.oauth.get_access_token.internal_session.app_error",
    "translation": "server_error: Encountered internal server error while saving session to database."
  },
  {
    "id": "api.oauth.get_access_token.internal_saving.app_error",
    "translation": "server_error: Encountered internal server error while saving access token to database."
  },
  {
    "id": "api.oauth.get_access_token.internal.app_error",
    "translation": "server_error: Encountered internal server error while accessing database."
  },
  {
    "id": "api.oauth.get_access_token.expired_code.app_error",
    "translation": "invalid_grant: Invalid or expired authorisation code."
  },
  {
    "id": "api.oauth.get_access_token.disabled.app_error",
    "translation": "The system admin has turned off OAuth2 Service Provider."
  },
  {
    "id": "api.oauth.get_access_token.credentials.app_error",
    "translation": "invalid_client: Invalid client credentials."
  },
  {
    "id": "api.oauth.get_access_token.bad_grant.app_error",
    "translation": "invalid_request: Bad grant_type."
  },
  {
    "id": "api.oauth.get_access_token.bad_client_id.app_error",
    "translation": "invalid_request: Bad client_id."
  },
  {
    "id": "api.oauth.close_browser",
    "translation": "You can close this browser tab now."
  },
  {
    "id": "api.oauth.click_redirect",
    "translation": "If you are not redirected automatically, please click the <a href='{{.Link}}'>link</a>"
  },
  {
    "id": "api.oauth.authorize_oauth.disabled.app_error",
    "translation": "The system admin has turned off OAuth2 Service Provider."
  },
  {
    "id": "api.oauth.auth_complete",
    "translation": "Authentication complete"
  },
  {
    "id": "api.oauth.allow_oauth.turn_off.app_error",
    "translation": "The system admin has turned off OAuth2 Service Provider."
  },
  {
    "id": "api.oauth.allow_oauth.redirect_callback.app_error",
    "translation": "invalid_request: Supplied redirect_uri did not match registered callback_url."
  },
  {
    "id": "api.no_license",
    "translation": "E10 or E20 licence required to use this endpoint."
  },
  {
    "id": "api.migrate_to_saml.error",
    "translation": "Unable to migrate SAML."
  },
  {
    "id": "api.marshal_error",
    "translation": "Failed to marshal."
  },
  {
    "id": "api.license.request_trial_license.app_error",
    "translation": "Unable to get a trial licence, please try again or contact with support@mattermost.com."
  },
  {
    "id": "api.license.request-trial.bad-request.terms-not-accepted",
    "translation": "You must accept the Mattermost Software Evaluation Agreement and Privacy Policy to request a licence."
  },
  {
    "id": "api.license.request-trial.bad-request",
    "translation": "The number of users requested is incorrect."
  },
  {
    "id": "api.license.remove_expired_license.failed.error",
    "translation": "Failed to send the disable licence email successfully."
  },
  {
    "id": "api.license.client.old_format.app_error",
    "translation": "New format for the client licence is not supported yet. Please specify format=old in the query string."
  },
  {
    "id": "api.license.add_license.unique_users.app_error",
    "translation": "This licence only supports {{.Users}} users, when your system has {{.Count}} unique users. Unique users are counted distinctly by email address. You can see total user count under Site Reports -> View Statistics."
  },
  {
    "id": "api.license.add_license.save_active.app_error",
    "translation": "Active licence ID did not save properly."
  },
  {
    "id": "api.license.add_license.save.app_error",
    "translation": "Licence did not save properly."
  },
  {
    "id": "api.license.add_license.open.app_error",
    "translation": "Could not open licence file."
  },
  {
    "id": "api.license.add_license.no_file.app_error",
    "translation": "No file under 'licence' in request."
  },
  {
    "id": "api.license.add_license.invalid_count.app_error",
    "translation": "Unable to count total unique users."
  },
  {
    "id": "api.license.add_license.invalid.app_error",
    "translation": "Invalid licence file."
  },
  {
    "id": "api.license.add_license.expired.app_error",
    "translation": "Licence is either expired or has not yet started."
  },
  {
    "id": "api.license.add_license.array.app_error",
    "translation": "Empty array under 'licence' in request."
  },
  {
    "id": "api.ldap_groups.license_error",
    "translation": "your licence does not support LDAP groups"
  },
  {
    "id": "api.ldap_groups.existing_user_name_error",
    "translation": "group name already exists as a username"
  },
  {
    "id": "api.ldap_groups.existing_reserved_name_error",
    "translation": "group name already exists as a reserved name"
  },
  {
    "id": "api.ldap_groups.existing_group_name_error",
    "translation": "group name already exists"
  },
  {
    "id": "api.ldap_group.not_found",
    "translation": "LDAP group not found"
  },
  {
    "id": "api.job.unable_to_download_job.incorrect_job_type",
    "translation": "The job type you are trying to download is not supported at the moment"
  },
  {
    "id": "api.job.unable_to_download_job",
    "translation": "Unable to download this job"
  },
  {
    "id": "api.job.unable_to_create_job.incorrect_job_type",
    "translation": "The job type of the job you are trying to create is invalid"
  },
  {
    "id": "api.job.retrieve.nopermissions",
    "translation": "The job types of a job you are trying to retrieve does not contain permissions"
  },
  {
    "id": "api.io_error",
    "translation": "input/output error"
  },
  {
    "id": "api.invalid_redirect_url",
    "translation": "Invalid redirect URL has been provided"
  },
  {
    "id": "api.invalid_custom_url_scheme",
    "translation": "Invalid custom URL scheme has been provided"
  },
  {
    "id": "api.invalid_channel",
    "translation": "Channel listed in the request doesn't belong to the user"
  },
  {
    "id": "api.incoming_webhook.invalid_username.app_error",
    "translation": "Invalid username."
  },
  {
    "id": "api.incoming_webhook.disabled.app_error",
    "translation": "Incoming webhooks have been disabled by the system admin."
  },
  {
    "id": "api.image.get.app_error",
    "translation": "Requested image URL cannot be parsed."
  },
  {
    "id": "api.getThreadsForUser.bad_params",
    "translation": "Before and After parameters to getThreadsForUser are mutually exclusive"
  },
  {
    "id": "api.file.write_file.app_error",
    "translation": "Unable to write the file."
  },
  {
    "id": "api.file.upload_file.too_large_detailed.app_error",
    "translation": "Unable to upload file {{.Filename}}. {{.Length}} bytes exceeds the maximum allowed {{.Limit}} bytes."
  },
  {
    "id": "api.file.upload_file.storage.app_error",
    "translation": "Unable to upload file. Image storage is not configured."
  },
  {
    "id": "api.file.upload_file.read_request.app_error",
    "translation": "Unable to upload file(s). Error reading or parsing request data."
  },
  {
    "id": "api.file.upload_file.read_form_value.app_error",
    "translation": "Unable to upload file(s). Error reading the value for {{.Formname}}."
  },
  {
    "id": "api.file.upload_file.multiple_channel_ids.app_error",
    "translation": "Unable to upload file(s). Multiple conflicting channel_ids."
  },
  {
    "id": "api.file.upload_file.large_image_detailed.app_error",
    "translation": "{{.Filename}} dimensions ({{.Width}} by {{.Height}} pixels) exceed the limits."
  },
  {
    "id": "api.file.upload_file.large_image.app_error",
    "translation": "File above maximum dimensions could not be uploaded: {{.Filename}}"
  },
  {
    "id": "api.file.upload_file.incorrect_number_of_client_ids.app_error",
    "translation": "Unable to upload file(s). Have {{.NumClientIds}} client_ids for {{.NumFiles}} files."
  },
  {
    "id": "api.file.upload_file.incorrect_channelId.app_error",
    "translation": "Unable to upload the file. Incorrect channel ID: {{.channelId}}"
  },
  {
    "id": "api.file.test_connection_s3_bucket_does_not_exist.app_error",
    "translation": "Ensure your Amazon S3 bucket is available, and verify your bucket permissions."
  },
  {
    "id": "api.file.test_connection_s3_auth.app_error",
    "translation": "Unable to connect to S3. Verify your Amazon S3 connection authorisation parameters and authentication settings."
  },
  {
    "id": "api.file.test_connection.app_error",
    "translation": "Unable to access the file storage."
  },
  {
    "id": "api.file.remove_file.app_error",
    "translation": "Unable to remove the file."
  },
  {
    "id": "api.file.remove_directory.app_error",
    "translation": "Unable to remove the directory."
  },
  {
    "id": "api.file.read_file.reading_local.app_error",
    "translation": "Encountered an error reading from local server file storage."
  },
  {
    "id": "api.file.read_file.app_error",
    "translation": "Unable to read the file."
  },
  {
    "id": "api.file.no_driver.app_error",
    "translation": "No file driver selected."
  },
  {
    "id": "api.file.move_file.app_error",
    "translation": "Unable to move file."
  },
  {
    "id": "api.user.verify_email.link_expired.app_error",
    "translation": "The email verification link has expired."
  },
  {
    "id": "api.user.verify_email.broken_token.app_error",
    "translation": "Bad verify email token type."
  },
  {
    "id": "api.user.verify_email.bad_link.app_error",
    "translation": "Bad verify email link."
  },
  {
    "id": "api.user.upload_profile_user.upload_profile.app_error",
    "translation": "Couldn't upload profile image."
  },
  {
    "id": "api.user.upload_profile_user.too_large.app_error",
    "translation": "Unable to upload profile image. File is too large."
  },
  {
    "id": "api.user.upload_profile_user.storage.app_error",
    "translation": "Unable to upload file. Image storage is not configured."
  },
  {
    "id": "api.user.upload_profile_user.parse.app_error",
    "translation": "Could not parse multipart form."
  },
  {
    "id": "api.user.upload_profile_user.open.app_error",
    "translation": "Could not open image file."
  },
  {
    "id": "api.user.upload_profile_user.no_file.app_error",
    "translation": "No file under 'image' in request."
  },
  {
    "id": "api.user.upload_profile_user.login_provider_attribute_set.app_error",
    "translation": "Profile picture must be set through user's login provider."
  },
  {
    "id": "api.user.upload_profile_user.encode.app_error",
    "translation": "Could not encode profile image."
  },
  {
    "id": "api.user.upload_profile_user.decode.app_error",
    "translation": "Could not decode profile image."
  },
  {
    "id": "api.user.upload_profile_user.array.app_error",
    "translation": "Empty array under 'image' in request."
  },
  {
    "id": "api.user.update_user_roles.license.app_error",
    "translation": "Custom Permission Schemes not supported by current licence"
  },
  {
    "id": "api.user.update_user_auth.invalid_request",
    "translation": "Request is missing either AuthData or AuthService parameter."
  },
  {
    "id": "api.user.update_user.login_provider_attribute_set.app_error",
    "translation": "Field '{{.Field}}' must be set through user's login provider."
  },
  {
    "id": "api.user.update_user.accepted_guest_domain.app_error",
    "translation": "The email you provided does not belong to an accepted domain for guest accounts. Please contact your administrator or sign up with a different email."
  },
  {
    "id": "api.user.update_user.accepted_domain.app_error",
    "translation": "The email you provided does not belong to an accepted domain. Please contact your administrator or sign up with a different email."
  },
  {
    "id": "api.user.update_password.valid_account.app_error",
    "translation": "Update password failed because a valid account does not exist."
  },
  {
    "id": "api.user.update_password.user_and_hashed.app_error",
    "translation": "Only system administrators can set already-hashed passwords."
  },
  {
    "id": "api.user.update_password.oauth.app_error",
    "translation": "Update password failed because the user is logged in through an OAuth service."
  },
  {
    "id": "api.user.update_password.menu",
    "translation": "using the settings menu"
  },
  {
    "id": "api.user.update_password.incorrect.app_error",
    "translation": "The 'Current Password' you entered is incorrect. Please check that Caps Lock is off and try again."
  },
  {
    "id": "api.user.update_password.failed.app_error",
    "translation": "Update password failed."
  },
  {
    "id": "api.user.update_password.context.app_error",
    "translation": "Update password failed because context user_id did not match props user_id."
  },
  {
    "id": "api.user.update_oauth_user_attrs.get_user.app_error",
    "translation": "Could not get user from {{.Service}} user object."
  },
  {
    "id": "api.user.update_active.permissions.app_error",
    "translation": "You do not have the appropriate permissions."
  },
  {
    "id": "api.user.update_active.not_enable.app_error",
    "translation": "You cannot deactivate yourself because this feature is not enabled. Please contact your System Administrator."
  },
  {
    "id": "api.user.update_active.cannot_enable_guest_when_guest_feature_is_disabled.app_error",
    "translation": "You cannot activate a guest account because Guest Access feature is not enabled."
  },
  {
    "id": "api.user.send_verify_email_and_forget.failed.error",
    "translation": "Failed to send verification email successfully"
  },
  {
    "id": "api.user.send_sign_in_change_email_and_forget.error",
    "translation": "Failed to send update password email successfully"
  },
  {
    "id": "api.user.send_password_reset.sso.app_error",
    "translation": "Unable to reset password for SSO accounts."
  },
  {
    "id": "api.user.send_password_reset.send.app_error",
    "translation": "Failed to send password reset email successfully."
  },
  {
    "id": "api.user.send_email_change_verify_email_and_forget.error",
    "translation": "Failed to send email change verification email successfully"
  },
  {
    "id": "api.user.send_deactivate_email_and_forget.failed.error",
    "translation": "Failed to send the deactivate account email successfully"
  },
  {
    "id": "api.user.send_cloud_welcome_email.error",
    "translation": "Failed to send cloud welcome email"
  },
  {
    "id": "api.user.saml.not_available.app_error",
    "translation": "SAML 2.0 is not configured or supported on this server."
  },
  {
    "id": "api.user.reset_password.token_parse.error",
    "translation": "Unable to parse the reset password token"
  },
  {
    "id": "api.user.reset_password.sso.app_error",
    "translation": "Unable to reset password for SSO accounts."
  },
  {
    "id": "api.user.reset_password.method",
    "translation": "using a reset password link"
  },
  {
    "id": "api.user.reset_password.link_expired.app_error",
    "translation": "The password reset link has expired."
  },
  {
    "id": "api.user.reset_password.invalid_link.app_error",
    "translation": "The reset password link does not appear to be valid."
  },
  {
    "id": "api.user.reset_password.broken_token.app_error",
    "translation": "The reset password token does not appear to be valid."
  },
  {
    "id": "api.user.promote_guest_to_user.no_guest.app_error",
    "translation": "Unable to convert the guest to regular user because is not a guest."
  },
  {
    "id": "api.user.patch_user.login_provider_attribute_set.app_error",
    "translation": "Field '{{.Field}}' must be set through user's login provider."
  },
  {
    "id": "api.user.oauth_to_email.not_available.app_error",
    "translation": "Authentication Transfer not configured or available on this server."
  },
  {
    "id": "api.user.oauth_to_email.context.app_error",
    "translation": "Update password failed because context user_id did not match provided user's ID."
  },
  {
    "id": "api.user.login_ldap.not_available.app_error",
    "translation": "AD/LDAP not available on this server."
  },
  {
    "id": "api.user.login_cws.license.error",
    "translation": "CWS login is forbidden."
  },
  {
    "id": "api.user.login_by_oauth.parse.app_error",
    "translation": "Could not parse auth data out of {{.Service}} user object."
  },
  {
    "id": "api.user.login_by_oauth.not_available.app_error",
    "translation": "{{.Service}} SSO through OAuth 2.0 not available on this server."
  },
  {
    "id": "api.user.login_by_oauth.bot_login_forbidden.app_error",
    "translation": "Bot login is forbidden."
  },
  {
    "id": "api.user.login_by_cws.invalid_token.app_error",
    "translation": "CWS token is not valid"
  },
  {
    "id": "api.user.login.use_auth_service.app_error",
    "translation": "Please sign in using {{.AuthService}}."
  },
  {
    "id": "api.user.login.not_verified.app_error",
    "translation": "Login failed because email address has not been verified."
  },
  {
    "id": "api.user.login.invalid_credentials_username",
    "translation": "Enter a valid username and/or password."
  },
  {
    "id": "api.user.login.invalid_credentials_sso",
    "translation": "Enter a valid email or username and/or password, or sign in using another method."
  },
  {
    "id": "api.user.login.invalid_credentials_email_username",
    "translation": "Enter a valid email or username and/or password."
  },
  {
    "id": "api.user.login.invalid_credentials_email",
    "translation": "Enter a valid email and/or password"
  },
  {
    "id": "api.user.login.inactive.app_error",
    "translation": "Login failed because your account has been deactivated.  Please contact an administrator."
  },
  {
    "id": "api.user.login.guest_accounts.license.error",
    "translation": "Your licence does not support guest accounts"
  },
  {
    "id": "api.user.login.guest_accounts.disabled.error",
    "translation": "Guest accounts are disabled"
  },
  {
    "id": "api.user.login.bot_login_forbidden.app_error",
    "translation": "Bot login is forbidden."
  },
  {
    "id": "api.user.login.blank_pwd.app_error",
    "translation": "Password field must not be blank"
  },
  {
    "id": "api.user.ldap_to_email.not_ldap_account.app_error",
    "translation": "This user account does not use AD/LDAP."
  },
  {
    "id": "api.user.ldap_to_email.not_available.app_error",
    "translation": "AD/LDAP not available on this server."
  },
  {
    "id": "api.user.get_user_by_email.permissions.app_error",
    "translation": "Unable to get user by email."
  },
  {
    "id": "api.user.get_uploads_for_user.forbidden.app_error",
    "translation": "Failed to get uploads."
  },
  {
    "id": "api.user.get_authorization_code.endpoint.app_error",
    "translation": "Error retrieving endpoint from Discovery Document."
  },
  {
    "id": "api.user.email_to_oauth.not_available.app_error",
    "translation": "Authentication Transfer not configured or available on this server."
  },
  {
    "id": "api.user.email_to_ldap.not_available.app_error",
    "translation": "AD/LDAP not available on this server."
  },
  {
    "id": "api.user.demote_user_to_guest.already_guest.app_error",
    "translation": "Unable to convert the user to guest because is already a guest."
  },
  {
    "id": "api.user.delete_user.not_enabled.app_error",
    "translation": "Permanent user deletion feature is not enabled. Please contact your System Administrator."
  },
  {
    "id": "api.user.delete_team.not_enabled.app_error",
    "translation": "Permanent team deletion feature is not enabled. Please contact your System Administrator."
  },
  {
    "id": "api.user.delete_channel.not_enabled.app_error",
    "translation": "Permanent channel deletion feature is not enabled. Please contact your System Administrator."
  },
  {
    "id": "api.user.create_user.signup_link_invalid.app_error",
    "translation": "The signup link does not appear to be valid."
  },
  {
    "id": "api.user.create_user.signup_link_expired.app_error",
    "translation": "The signup link has expired."
  },
  {
    "id": "api.user.create_user.signup_email_disabled.app_error",
    "translation": "User sign-up with email is disabled."
  },
  {
    "id": "api.user.create_user.no_open_server",
    "translation": "This server does not allow open signups.  Please speak with your Administrator to receive an invitation."
  },
  {
    "id": "api.user.create_user.invalid_invitation_type.app_error",
    "translation": "Unable to create the user, invalid invitation."
  },
  {
    "id": "api.user.create_user.guest_accounts.license.app_error",
    "translation": "Your licence does not support guest accounts."
  },
  {
    "id": "api.user.create_user.guest_accounts.disabled.app_error",
    "translation": "Guest accounts are disabled."
  },
  {
    "id": "api.user.create_user.disabled.app_error",
    "translation": "User creation is disabled."
  },
  {
    "id": "api.user.create_user.accepted_domain.app_error",
    "translation": "The email you provided does not belong to an accepted domain. Please contact your administrator or sign up with a different email."
  },
  {
    "id": "api.user.create_profile_image.initial.app_error",
    "translation": "Could not add user initial to default profile picture."
  },
  {
    "id": "api.user.create_profile_image.encode.app_error",
    "translation": "Could not encode default profile image."
  },
  {
    "id": "api.user.create_profile_image.default_font.app_error",
    "translation": "Could not create default profile image font."
  },
  {
    "id": "api.user.create_password_token.error",
    "translation": "Unable to create password recovery token"
  },
  {
    "id": "api.user.create_oauth_user.create.app_error",
    "translation": "Could not create user out of {{.Service}} user object."
  },
  {
    "id": "api.user.create_oauth_user.already_attached.app_error",
    "translation": "There is already an account associated with that email address using a sign in method other than {{.Service}}. Please sign in using {{.Auth}}."
  },
  {
    "id": "api.user.create_email_token.error",
    "translation": "Failed to create token data for email verification"
  },
  {
    "id": "api.user.complete_switch_with_oauth.parse.app_error",
    "translation": "Could not parse auth data out of {{.Service}} user object."
  },
  {
    "id": "api.user.complete_switch_with_oauth.blank_email.app_error",
    "translation": "Blank email."
  },
  {
    "id": "api.user.check_user_password.invalid.app_error",
    "translation": "Login failed because of invalid password."
  },
  {
    "id": "api.user.check_user_mfa.bad_code.app_error",
    "translation": "Invalid MFA token."
  },
  {
    "id": "api.user.check_user_login_attempts.too_many.app_error",
    "translation": "Your account is locked because of too many failed password attempts. Please reset your password."
  },
  {
    "id": "api.user.autocomplete_users.missing_team_id.app_error",
    "translation": "Team id parameter is required to autocomplete by channel."
  },
  {
    "id": "api.user.authorize_oauth_user.unsupported.app_error",
    "translation": "{{.Service}} SSO through OAuth 2.0 not available on this server."
  },
  {
    "id": "api.user.authorize_oauth_user.token_failed.app_error",
    "translation": "Token request failed."
  },
  {
    "id": "api.user.authorize_oauth_user.service.app_error",
    "translation": "Token request to {{.Service}} failed."
  },
  {
    "id": "api.user.authorize_oauth_user.response.app_error",
    "translation": "Received invalid response from OAuth service provider."
  },
  {
    "id": "api.user.authorize_oauth_user.missing.app_error",
    "translation": "Missing access token."
  },
  {
    "id": "api.user.authorize_oauth_user.invalid_state.app_error",
    "translation": "Invalid state"
  },
  {
    "id": "api.user.authorize_oauth_user.bad_token.app_error",
    "translation": "Bad token type."
  },
  {
    "id": "api.user.authorize_oauth_user.bad_response.app_error",
    "translation": "Bad response from token request."
  },
  {
    "id": "api.user.add_direct_channels_and_forget.failed.error",
    "translation": "Failed to add direct channel preferences for user user_id={{.UserId}}, team_id={{.TeamId}}, err={{.Error}}"
  },
  {
    "id": "api.user.activate_mfa.email_and_ldap_only.app_error",
    "translation": "MFA is not available for this account type."
  },
  {
    "id": "api.upload.upload_data.multipart_error",
    "translation": "Failed to process the multipart data."
  },
  {
    "id": "api.upload.upload_data.invalid_content_type",
    "translation": "Invalid Content-Type for multipart upload."
  },
  {
    "id": "api.upload.upload_data.invalid_content_length",
    "translation": "Invalid Content-Length."
  },
  {
    "id": "api.upload.get_upload.forbidden.app_error",
    "translation": "Failed to get upload."
  },
  {
    "id": "api.upgrade_to_enterprise_status.signature.app_error",
    "translation": "Mattermost was unable to upgrade to Enterprise Edition. The digital signature of the downloaded binary file could not be verified."
  },
  {
    "id": "api.upgrade_to_enterprise_status.app_error",
    "translation": "Mattermost was unable to upgrade to Enterprise Edition."
  },
  {
    "id": "api.upgrade_to_enterprise.system_not_supported.app_error",
    "translation": "Mattermost was unable to upgrade to Enterprise Edition. This feature will only work on Linux systems with x86-64 architecture."
  },
  {
    "id": "api.upgrade_to_enterprise.invalid-user.app_error",
    "translation": "Mattermost was unable to upgrade to Enterprise Edition. The Mattermost system user {{.MattermostUsername}} does not have write access to the necessary binary file. A system administrator can update the file permissions by executing the following command on the server where Mattermost is installed:\n\n```\nchown {{.MattermostUsername}} '{{.Path}}'\n```\n\nAfter changing the file permissions, try to upgrade Mattermost again. When you have upgraded and restarted, remember to restore the original binary file permissions:\n\n```\nchown {{.FileUsername}} '{{.Path}}'\n```"
  },
  {
    "id": "api.upgrade_to_enterprise.invalid-user-and-permission.app_error",
    "translation": "Mattermost was unable to upgrade to Enterprise Edition. The Mattermost system user {{.MattermostUsername}} does not have write access to the necessary binary file. A system administrator can update the file permissions by executing the following command on the server where Mattermost is installed:\n\n```\nchown {{.MattermostUsername}} '{{.Path}}'\nchmod +w '{{.Path}}'\n```\n\nAfter changing the file permissions, try to upgrade Mattermost again. When you have upgraded and restarted, remember to restore the original binary file permissions:\n\n```\nchown {{.FileUsername}} '{{.Path}}'\nchmod -w '{{.Path}}'\n```"
  },
  {
    "id": "api.file.list_directory.app_error",
    "translation": "Unable to list directory."
  },
  {
    "id": "api.file.get_public_link.no_post.app_error",
    "translation": "Unable to get public link for file. File must be attached to a post that can be read by the current user."
  },
  {
    "id": "api.file.get_public_link.disabled.app_error",
    "translation": "Public links have been disabled."
  },
  {
    "id": "api.file.get_file_thumbnail.no_thumbnail.app_error",
    "translation": "File doesn't have a thumbnail image."
  },
  {
    "id": "api.file.get_file_preview.no_preview.app_error",
    "translation": "File doesn't have a preview image."
  },
  {
    "id": "api.file.get_file.public_invalid.app_error",
    "translation": "The public link does not appear to be valid."
  },
  {
    "id": "api.file.file_size.app_error",
    "translation": "Unable to get the file size."
  },
  {
    "id": "api.file.file_reader.app_error",
    "translation": "Unable to get a file reader."
  },
  {
    "id": "api.file.file_mod_time.app_error",
    "translation": "Unable to get last modification time for file."
  },
  {
    "id": "api.file.file_exists.app_error",
    "translation": "Unable to check if the file exists."
  },
  {
    "id": "api.file.attachments.disabled.app_error",
    "translation": "File attachments are disabled on this server."
  },
  {
    "id": "api.file.append_file.app_error",
    "translation": "Unable to append data to the file."
  },
  {
    "id": "api.export.export_not_found.app_error",
    "translation": "Unable to find export file."
  },
  {
    "id": "api.error_set_first_admin_visit_marketplace_status",
    "translation": "Error trying to mark the first admin marketplace visit in the store."
  },
  {
    "id": "api.error_get_first_admin_visit_marketplace_status",
    "translation": "Error trying to retrieve the first admin visit marketplace status from the store."
  },
  {
    "id": "api.emoji.upload.open.app_error",
    "translation": "Unable to create the emoji. An error occurred when trying to open the attached image."
  },
  {
    "id": "api.emoji.upload.large_image.too_large.app_error",
    "translation": "Unable to create emoji. Image must be smaller than {{.MaxWidth}} by {{.MaxHeight}}."
  },
  {
    "id": "api.emoji.upload.large_image.gif_encode_error",
    "translation": "Unable to create emoji. An error occurred when trying to encode the GIF image."
  },
  {
    "id": "api.emoji.upload.large_image.gif_decode_error",
    "translation": "Unable to create emoji. An error occurred when trying to decode the GIF image."
  },
  {
    "id": "api.emoji.upload.large_image.encode_error",
    "translation": "Unable to create emoji. An error occurred when trying to encode the image."
  },
  {
    "id": "api.emoji.upload.large_image.decode_error",
    "translation": "Unable to create emoji. An error occurred when trying to decode the image."
  },
  {
    "id": "api.emoji.upload.image.app_error",
    "translation": "Unable to create emoji. File must be a PNG, JPEG, or GIF."
  },
  {
    "id": "api.emoji.storage.app_error",
    "translation": "File storage not configured properly. Please configure for either S3 or local server file storage."
  },
  {
    "id": "api.emoji.get_image.read.app_error",
    "translation": "Unable to read image file for emoji."
  },
  {
    "id": "api.emoji.get_image.decode.app_error",
    "translation": "Unable to decode image file for emoji."
  },
  {
    "id": "api.emoji.disabled.app_error",
    "translation": "Custom emoji have been disabled by the system admin."
  },
  {
    "id": "api.emoji.create.too_large.app_error",
    "translation": "Unable to create emoji. Image must be less than 512 KiB in size."
  },
  {
    "id": "api.emoji.create.parse.app_error",
    "translation": "Unable to create emoji. Could not understand request."
  },
  {
    "id": "api.emoji.create.other_user.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "api.emoji.create.internal_error",
    "translation": "server_error: Encountered internal server error creating the emoji."
  },
  {
    "id": "api.emoji.create.duplicate.app_error",
    "translation": "Unable to create emoji. Another emoji with the same name already exists."
  },
  {
    "id": "api.email_batching.send_batched_email_notification.title",
    "translation": {
      "one": "You have new messages",
      "other": "You have new messages"
    }
  },
  {
    "id": "api.email_batching.send_batched_email_notification.time",
    "translation": "{{.Hour}}:{{.Minute}} {{.TimeZone}}"
  },
  {
    "id": "api.email_batching.send_batched_email_notification.subject",
    "translation": {
      "one": "[{{.SiteName}}] New Notification for {{.Month}} {{.Day}}, {{.Year}}",
      "other": "[{{.SiteName}}] New Notifications for {{.Month}} {{.Day}}, {{.Year}}"
    }
  },
  {
    "id": "api.email_batching.send_batched_email_notification.subTitle",
    "translation": "See below for a summary of your new messages."
  },
  {
    "id": "api.email_batching.send_batched_email_notification.messageButton",
    "translation": "View this message"
  },
  {
    "id": "api.email_batching.send_batched_email_notification.button",
    "translation": "Open Mattermost"
  },
  {
    "id": "api.email_batching.add_notification_email_to_batch.disabled.app_error",
    "translation": "Email batching has been disabled by the system administrator."
  },
  {
    "id": "api.email_batching.add_notification_email_to_batch.channel_full.app_error",
    "translation": "Email batching job's receiving channel was full. Please increase the EmailBatchingBufferSize."
  },
  {
    "id": "api.custom_status.recent_custom_statuses.delete.app_error",
    "translation": "Failed to delete the recent status. Please try adding the status first or contact your system administrator for details."
  },
  {
    "id": "api.custom_status.disabled",
    "translation": "Custom status feature has been disabled. Please contact your system administrator for details."
  },
  {
    "id": "api.create_terms_of_service.empty_text.app_error",
    "translation": "Please enter text for your Custom Terms of Service."
  },
  {
    "id": "api.create_terms_of_service.custom_terms_of_service_disabled.app_error",
    "translation": "Custom terms of service feature is disabled."
  },
  {
    "id": "api.context.token_provided.app_error",
    "translation": "Session is not OAuth but token was provided in the query string."
  },
  {
    "id": "api.context.session_expired.app_error",
    "translation": "Invalid or expired session, please login again."
  },
  {
    "id": "api.context.server_busy.app_error",
    "translation": "Server is busy, non-critical services are temporarily unavailable."
  },
  {
    "id": "api.context.remote_id_missing.app_error",
    "translation": "Secure connection ID missing."
  },
  {
    "id": "api.context.remote_id_mismatch.app_error",
    "translation": "Secure connection ID mismatch."
  },
  {
    "id": "api.context.remote_id_invalid.app_error",
    "translation": "Unable to find secure connection ID {{.RemoteId}}."
  },
  {
    "id": "api.context.permissions.app_error",
    "translation": "You lack the appropriate permissions."
  },
  {
    "id": "api.context.mfa_required.app_error",
    "translation": "Multi-factor authentication is required on this server."
  },
  {
    "id": "api.context.local_origin_required.app_error",
    "translation": "This endpoint requires a local request origin."
  },
  {
    "id": "api.context.json_encoding.app_error",
    "translation": "Error encoding JSON."
  },
  {
    "id": "api.context.invitation_expired.error",
    "translation": "Invitation is expired."
  },
  {
    "id": "api.context.invalid_url_param.app_error",
    "translation": "Invalid or missing {{.Name}} parameter in request URL."
  },
  {
    "id": "api.context.invalid_token.error",
    "translation": "Invalid session token={{.Token}}, err={{.Error}}"
  },
  {
    "id": "api.context.invalid_param.app_error",
    "translation": "Invalid {{.Name}} parameter."
  },
  {
    "id": "api.context.invalid_body_param.app_error",
    "translation": "Invalid or missing {{.Name}} in request body."
  },
  {
    "id": "api.context.get_user.app_error",
    "translation": "Unable to get user from session UserID."
  },
  {
    "id": "api.context.404.app_error",
    "translation": "Page not found."
  },
  {
    "id": "api.config.update_config.restricted_merge.app_error",
    "translation": "Failed to merge given config."
  },
  {
    "id": "api.config.update_config.not_allowed_security.app_error",
    "translation": "Changing {{.Name}} is not allowed due to security reasons."
  },
  {
    "id": "api.config.update_config.diff.app_error",
    "translation": "Failed to diff configs"
  },
  {
    "id": "api.config.update_config.clear_siteurl.app_error",
    "translation": "Site URL cannot be cleared."
  },
  {
    "id": "api.config.patch_config.restricted_merge.app_error",
    "translation": "Failed to merge given config."
  },
  {
    "id": "api.config.patch_config.diff.app_error",
    "translation": "Failed to diff configs"
  },
  {
    "id": "api.config.migrate_config.app_error",
    "translation": "Failed to migrate config store."
  },
  {
    "id": "api.config.get_config.restricted_merge.app_error",
    "translation": "Failed to merge given config."
  },
  {
    "id": "api.command_shrug.name",
    "translation": "shrug"
  },
  {
    "id": "api.command_shrug.hint",
    "translation": "[message]"
  },
  {
    "id": "api.command_shrug.desc",
    "translation": "Adds ¯\\_(ツ)_/¯ to your message"
  },
  {
    "id": "api.command_shortcuts.unsupported.app_error",
    "translation": "The shortcuts command is not supported on your device."
  },
  {
    "id": "api.command_shortcuts.name",
    "translation": "shortcuts"
  },
  {
    "id": "api.command_shortcuts.desc",
    "translation": "Displays a list of keyboard shortcuts"
  },
  {
    "id": "api.command_share.unshare_channel.help",
    "translation": "Unshares the current channel"
  },
  {
    "id": "api.command_share.unknown_action",
    "translation": "Unknown action `{{.Action}}`. Available actions: {{.Actions}}"
  },
  {
    "id": "api.command_share.uninvite_remote_id.help",
    "translation": "ID of secure connection to uninvite."
  },
  {
    "id": "api.command_share.uninvite_remote.help",
    "translation": "Uninvites a secure connection from this shared channel"
  },
  {
    "id": "api.command_share.shared_channel_unshare.error",
    "translation": "Cannot unshare this channel: {{.Error}}."
  },
  {
    "id": "api.command_share.shared_channel_unavailable",
    "translation": "This channel is no longer shared."
  },
  {
    "id": "api.command_share.share_read_only.hint",
    "translation": "[readonly] - 'Y' or 'N'.  Defaults to 'N'"
  },
  {
    "id": "api.command_share.share_read_only.help",
    "translation": "Channel will be shared in read-only mode"
  },
  {
    "id": "api.command_share.share_channel.error",
    "translation": "Cannot share this channel: {{.Error}}"
  },
  {
    "id": "api.command_share.service_disabled",
    "translation": "Shared Channels Service is disabled."
  },
  {
    "id": "api.command_share.remote_uninvited",
    "translation": "Secure connection `{{.RemoteId}}` uninvited."
  },
  {
    "id": "api.command_share.remote_table_header",
    "translation": "| Secure connection | Site URL | Read-only | Invite accepted | Online | Last sync |"
  },
  {
    "id": "api.command_share.remote_not_valid",
    "translation": "You must specify a valid secure connection ID to uninvite"
  },
  {
    "id": "api.command_share.remote_id_invalid.error",
    "translation": "Secure connection ID is invalid: {{.Error}}"
  },
  {
    "id": "api.command_share.remote_id.help",
    "translation": "ID of an existing secure connection. See `secure-connection` command to add a secure connection."
  },
  {
    "id": "api.command_share.remote_already_invited",
    "translation": "The secure connection has already been invited."
  },
  {
    "id": "api.command_share.permission_required",
    "translation": "You require `{{.Permission}}` permission to manage shared channels."
  },
  {
    "id": "api.command_share.not_shared_channel_unshare",
    "translation": "Cannot unshare a channel that is not shared."
  },
  {
    "id": "api.command_share.no_remote_invited",
    "translation": "No secure connections have been invited to this channel."
  },
  {
    "id": "api.command_share.name",
    "translation": "share-channel"
  },
  {
    "id": "api.command_share.must_specify_valid_remote",
    "translation": "You must specify a valid secure connection ID to invite."
  },
  {
    "id": "api.command_share.missing_action",
    "translation": "Missing action. Available actions: {{.Actions}}"
  },
  {
    "id": "api.command_share.invite_remote.help",
    "translation": "Invites an external Mattermost instance to the current shared channel"
  },
  {
    "id": "api.command_share.invitation_sent",
    "translation": "Shared channel invitation has been sent to `{{.Name}} {{.SiteURL}}`."
  },
  {
    "id": "api.command_share.invalid_value.error",
    "translation": "Invalid value for '{{.Arg}}': {{.Error}}"
  },
  {
    "id": "api.command_share.hint",
    "translation": "[action]"
  },
  {
    "id": "api.command_share.fetch_remote_status.error",
    "translation": "Could not fetch status for secure connections: {{.Error}}."
  },
  {
    "id": "api.command_share.fetch_remote.error",
    "translation": "Error fetching secure connections: {{.Error}}"
  },
  {
    "id": "api.command_share.desc",
    "translation": "Shares the current channel with an external Mattermost instance."
  },
  {
    "id": "api.command_share.could_not_uninvite.error",
    "translation": "Could not uninvite `{{.RemoteId}}`: {{.Error}}"
  },
  {
    "id": "api.command_share.check_channel_exist.error",
    "translation": "Error while checking if shared channel {{.ChannelID}} exists: {{.Error}}"
  },
  {
    "id": "api.command_share.channel_status_id",
    "translation": "Status for channel ID `{{.ChannelId}}`"
  },
  {
    "id": "api.command_share.channel_status.help",
    "translation": "Displays status for this shared channel"
  },
  {
    "id": "api.command_share.channel_shared",
    "translation": "This channel is now shared."
  },
  {
    "id": "api.command_share.channel_remote_id_not_exists",
    "translation": "Shared channel secure connection `{{.RemoteId}}` does not exist for this channel."
  },
  {
    "id": "api.command_share.channel_invite_not_home.error",
    "translation": "Cannot invite secure connection to a shared channel originating somewhere else."
  },
  {
    "id": "api.command_share.channel_invite.error",
    "translation": "Error inviting `{{.Name}}` to this channel: {{.Error}}"
  },
  {
    "id": "api.command_share.available_actions",
    "translation": "Available actions: {{.Actions}}"
  },
  {
    "id": "api.command_remote.invitation.help",
    "translation": "Invitation from secure connection"
  },
  {
    "id": "api.command_remote.hint",
    "translation": "[action]"
  },
  {
    "id": "api.command_remote.fetch_status.error",
    "translation": "Could not fetch secure connections: {{.Error}}"
  },
  {
    "id": "api.command_remote.encrypt_invitation.error",
    "translation": "Could not encrypt invitation: {{.Error}}"
  },
  {
    "id": "api.command_remote.displayname.hint",
    "translation": "A display name for the secure connection"
  },
  {
    "id": "api.command_remote.displayname.help",
    "translation": "Secure connection display name"
  },
  {
    "id": "api.command_remote.desc",
    "translation": "Invite secure connections for communication across Mattermost instances."
  },
  {
    "id": "api.command_remote.decode_invitation.error",
    "translation": "Could not decode invitation: {{.Error}}"
  },
  {
    "id": "api.command_remote.cluster_removed",
    "translation": "Secure connection {{.RemoteId}} {{.Result}}."
  },
  {
    "id": "api.command_remote.add_remote.error",
    "translation": "Could not add secure connection: {{.Error}}"
  },
  {
    "id": "api.command_remote.accept_invitation.error",
    "translation": "Could not accept invitation: {{.Error}}"
  },
  {
    "id": "api.command_remote.accept_invitation",
    "translation": "Invitation accepted and confirmed.\nSiteURL: {{.SiteURL}}"
  },
  {
    "id": "api.command_remote.accept.help",
    "translation": "Accept an invitation from an external Mattermost instance"
  },
  {
    "id": "api.command_open.name",
    "translation": "open"
  },
  {
    "id": "api.command_online.success",
    "translation": "You are now online"
  },
  {
    "id": "api.command_online.name",
    "translation": "online"
  },
  {
    "id": "api.command_online.desc",
    "translation": "Set your status online"
  },
  {
    "id": "api.command_offline.success",
    "translation": "You are now offline"
  },
  {
    "id": "api.command_offline.name",
    "translation": "offline"
  },
  {
    "id": "api.command_offline.desc",
    "translation": "Set your status to 'offline'"
  },
  {
    "id": "api.command_mute.success_unmute_direct_msg",
    "translation": "This channel is no longer muted."
  },
  {
    "id": "api.command_mute.success_unmute",
    "translation": "{{.Channel}} is no longer muted."
  },
  {
    "id": "api.command_mute.success_mute_direct_msg",
    "translation": "You will not receive notifications for this channel until channel mute is turned off."
  },
  {
    "id": "api.command_mute.success_mute",
    "translation": "You will not receive notifications for {{.Channel}} until channel mute is turned off."
  },
  {
    "id": "api.command_mute.no_channel.error",
    "translation": "Could not find the specified channel. Please use the [channel handle](https://docs.mattermost.com/messaging/managing-channels.html#naming-a-channel) to identify channels."
  },
  {
    "id": "api.command_mute.name",
    "translation": "mute"
  },
  {
    "id": "api.command_mute.hint",
    "translation": "~[channel]"
  },
  {
    "id": "api.command_mute.error",
    "translation": "Could not find the channel {{.Channel}}. Please use the [channel handle](https://docs.mattermost.com/messaging/managing-channels.html#naming-a-channel) to identify channels."
  },
  {
    "id": "api.command_mute.desc",
    "translation": "Turns off desktop, email and push notifications for the current channel or the [channel] specified."
  },
  {
    "id": "api.command_msg.permission.app_error",
    "translation": "You lack the appropriate permissions to direct message this user."
  },
  {
    "id": "api.command_msg.name",
    "translation": "message"
  },
  {
    "id": "api.command_msg.missing.app_error",
    "translation": "Unable to find the user."
  },
  {
    "id": "api.command_msg.hint",
    "translation": "@[username] 'message'"
  },
  {
    "id": "api.command_msg.fail.app_error",
    "translation": "An error occurred while messaging the user."
  },
  {
    "id": "api.command_msg.dm_fail.app_error",
    "translation": "An error occurred while creating the direct message."
  },
  {
    "id": "api.command_msg.desc",
    "translation": "Send Direct Message to a user"
  },
  {
    "id": "api.command_me.name",
    "translation": "me"
  },
  {
    "id": "api.command_me.hint",
    "translation": "[message]"
  },
  {
    "id": "api.command_me.desc",
    "translation": "Do an action"
  },
  {
    "id": "api.command_logout.name",
    "translation": "logout"
  },
  {
    "id": "api.command_logout.desc",
    "translation": "Log out of Mattermost"
  },
  {
    "id": "api.command_leave.name",
    "translation": "leave"
  },
  {
    "id": "api.command_leave.fail.app_error",
    "translation": "An error occurred whilst leaving the channel."
  },
  {
    "id": "api.command_leave.desc",
    "translation": "Leave the current channel"
  },
  {
    "id": "api.command_kick.name",
    "translation": "kick"
  },
  {
    "id": "api.command_join.name",
    "translation": "join"
  },
  {
    "id": "api.command_join.missing.app_error",
    "translation": "Unable to find the channel."
  },
  {
    "id": "api.command_join.list.app_error",
    "translation": "An error occurred while listing channels."
  },
  {
    "id": "api.command_join.hint",
    "translation": "~[channel]"
  },
  {
    "id": "api.command_join.fail.app_error",
    "translation": "An error occurred while joining the channel."
  },
  {
    "id": "api.command_join.desc",
    "translation": "Join the open channel"
  },
  {
    "id": "api.command_invite_people.permission.app_error",
    "translation": "You don't have permission to invite new users to this server."
  },
  {
    "id": "api.command_invite.user_not_in_team.app_error",
    "translation": "You can add {{.Users}} to this channel once they are members of the **{{.Team}}** team."
  },
  {
    "id": "api.command_invite.user_already_in_channel.app_error",
    "translation": {
      "one": "{{.User}} is already in the channel.",
      "other": "{{.User}} are already in the channel."
    }
  },
  {
    "id": "api.command_invite.success",
    "translation": "{{.User}} added to {{.Channel}} channel."
  },
  {
    "id": "api.command_invite.private_channel.app_error",
    "translation": "Could not find the channel {{.Channel}}. Please use the [channel handle](https://docs.mattermost.com/messaging/managing-channels.html#naming-a-channel) to identify channels."
  },
  {
    "id": "api.command_invite.permission.app_error",
    "translation": "You lack sufficient permissions to add {{.User}} to {{.Channel}}."
  },
  {
    "id": "api.command_invite.name",
    "translation": "invite"
  },
  {
    "id": "api.command_invite.missing_user.app_error",
    "translation": "Couldn't find a matching user {{.User}}. They may have been deactivated by the System Administrator."
  },
  {
    "id": "api.command_invite.missing_message.app_error",
    "translation": "Missing Username and/or Channel."
  },
  {
    "id": "api.command_invite.hint",
    "translation": "@[username]... ~[channel]..."
  },
  {
    "id": "api.command_invite.fail.app_error",
    "translation": "An error occurred while joining the channel."
  },
  {
    "id": "api.command_invite.directchannel.app_error",
    "translation": "You can't add someone to a direct message channel."
  },
  {
    "id": "api.command_invite.desc",
    "translation": "Invite a user to a channel"
  },
  {
    "id": "api.command_invite.channel.error",
    "translation": "Could not find the channel {{.Channel}}. Please use the [channel handle](https://docs.mattermost.com/messaging/managing-channels.html#naming-a-channel) to identify channels."
  },
  {
    "id": "api.command_invite.channel.app_error",
    "translation": "Error retrieving the current channel."
  },
  {
    "id": "api.command_help.name",
    "translation": "help"
  },
  {
    "id": "api.command_help.desc",
    "translation": "Show Mattermost help message"
  },
  {
    "id": "api.command_groupmsg.permission.app_error",
    "translation": "You lack the appropriate permissions to create a new group message."
  },
  {
    "id": "api.command_groupmsg.name",
    "translation": "message"
  },
  {
    "id": "api.command_groupmsg.min_users.app_error",
    "translation": "Group messages are limited to a minimum of {{.MinUsers}} users."
  },
  {
    "id": "api.command_groupmsg.max_users.app_error",
    "translation": "Group messages are limited to a maximum of {{.MaxUsers}} users."
  },
  {
    "id": "api.command_groupmsg.invalid_user.app_error",
    "translation": {
      "one": "Unable to find the user: {{.Users}}",
      "other": "Unable to find the users: {{.Users}}"
    }
  },
  {
    "id": "api.command_groupmsg.hint",
    "translation": "@[username1],@[username2] 'message'"
  },
  {
    "id": "api.command_groupmsg.group_fail.app_error",
    "translation": "An error occurred while creating the group message."
  },
  {
    "id": "api.command_groupmsg.fail.app_error",
    "translation": "An error occurred while messaging the users."
  },
  {
    "id": "api.command_groupmsg.desc",
    "translation": "Sends a Group Message to the specified users"
  },
  {
    "id": "api.command_expand_collapse.fail.app_error",
    "translation": "An error occurred while expanding previews."
  },
  {
    "id": "api.command_expand.success",
    "translation": "Image links now expand by default"
  },
  {
    "id": "api.command_expand.name",
    "translation": "expand"
  },
  {
    "id": "api.command_expand.desc",
    "translation": "Turn off auto-collapsing of image previews"
  },
  {
    "id": "api.command_echo.name",
    "translation": "echo"
  },
  {
    "id": "api.command_echo.message.app_error",
    "translation": "A message must be provided with the /echo command."
  },
  {
    "id": "api.command_echo.hint",
    "translation": "'message' [delay in seconds]"
  },
  {
    "id": "api.command_echo.high_volume.app_error",
    "translation": "High volume of echo request, cannot process request."
  },
  {
    "id": "api.command_echo.desc",
    "translation": "Echo back text from your account"
  },
  {
    "id": "api.command_echo.delay.app_error",
    "translation": "Delays must be under 10000 seconds."
  },
  {
    "id": "api.command_dnd.success",
    "translation": "Do Not Disturb is enabled. You will not receive desktop or mobile push notifications until Do Not Disturb is turned off."
  },
  {
    "id": "api.command_dnd.name",
    "translation": "dnd"
  },
  {
    "id": "api.command_dnd.desc",
    "translation": "'Do not disturb' disables desktop and mobile push notifications."
  },
  {
    "id": "api.command_custom_status.success",
    "translation": "Your status is set to '{{.EmojiName}} {{.StatusMessage}}'. You can change your status from the status popover in the channel sidebar header."
  },
  {
    "id": "api.command_custom_status.name",
    "translation": "status"
  },
  {
    "id": "api.command_custom_status.hint",
    "translation": "[:emoji_name:] [status_message] or clear"
  },
  {
    "id": "api.command_custom_status.desc",
    "translation": "Set or clear your status"
  },
  {
    "id": "api.command_custom_status.clear.success",
    "translation": "Your status was cleared."
  },
  {
    "id": "api.command_custom_status.clear.app_error",
    "translation": "Error clearing the status."
  },
  {
    "id": "api.command_custom_status.app_error",
    "translation": "Error setting the status."
  },
  {
    "id": "api.team.get_all_teams.insufficient_permissions",
    "translation": "You don't have the appropriate permissions to list all teams"
  },
  {
    "id": "api.team.demote_user_to_guest.license.error",
    "translation": "Your licence does not support guest accounts"
  },
  {
    "id": "api.team.demote_user_to_guest.disabled.error",
    "translation": "Guest accounts are disabled."
  },
  {
    "id": "api.team.add_user_to_team_from_invite.guest.app_error",
    "translation": "Guests are restricted from joining a team via an invite link. Please request a guest email invitation to the team."
  },
  {
    "id": "api.team.add_user_to_team.missing_parameter.app_error",
    "translation": "Parameter required to add user to team."
  },
  {
    "id": "api.team.add_user_to_team.added",
    "translation": "%v added to the team by %v."
  },
  {
    "id": "api.team.add_team_member.invalid_body.app_error",
    "translation": "Unable to parse the request body."
  },
  {
    "id": "api.team.add_members.user_denied",
    "translation": "This team is managed by groups.  This user is not part of a group that is synced to this team."
  },
  {
    "id": "api.team.add_members.error",
    "translation": "Error adding team member(s)."
  },
  {
    "id": "api.system.update_viewed_notices.failed",
    "translation": "Updating viewed notices failed"
  },
  {
    "id": "api.system.update_notices.validating_failed",
    "translation": "Validating product notice conditions failed"
  },
  {
    "id": "api.system.update_notices.parse_failed",
    "translation": "Parsing product notices failed"
  },
  {
    "id": "api.system.update_notices.fetch_failed",
    "translation": "Fetching product notices failed"
  },
  {
    "id": "api.system.update_notices.clear_failed",
    "translation": "Clearing old product notices failed"
  },
  {
    "id": "api.system.id_loaded.not_available.app_error",
    "translation": "ID Loaded Push Notifications are not configured or supported on this server."
  },
  {
    "id": "api.status.user_not_found.app_error",
    "translation": "User not found."
  },
  {
    "id": "api.slackimport.slack_import.zip.file_too_large",
    "translation": "{{.Filename}} in zip archive too large to process for Slack import\n"
  },
  {
    "id": "api.slackimport.slack_import.zip.app_error",
    "translation": "Unable to open the Slack export zip file.\n"
  },
  {
    "id": "api.slackimport.slack_import.team_fail",
    "translation": "Unable to get the team to import into.\n"
  },
  {
    "id": "api.slackimport.slack_import.open.app_error",
    "translation": "Unable to open the file: {{.Filename}}.\n"
  },
  {
    "id": "api.slackimport.slack_import.notes",
    "translation": "\nNotes:\n"
  },
  {
    "id": "api.slackimport.slack_import.note3",
    "translation": "- Additional errors may be found in the server logs.\n"
  },
  {
    "id": "api.slackimport.slack_import.note2",
    "translation": "- Slack bot messages are currently not supported.\n"
  },
  {
    "id": "api.slackimport.slack_import.note1",
    "translation": "- Some messages may not have been imported because they were not supported by this importer.\n"
  },
  {
    "id": "api.slackimport.slack_import.log",
    "translation": "Mattermost Slack Import Log\n"
  },
  {
    "id": "api.slackimport.slack_add_users.unable_import",
    "translation": "Unable to import Slack user: {{.Username}}.\n"
  },
  {
    "id": "api.slackimport.slack_add_users.missing_email_address",
    "translation": "User {{.Username}} does not have an email address in the Slack export. Used {{.Email}} as a placeholder. The user should update their email address once logged in to the system.\n"
  },
  {
    "id": "api.slackimport.slack_add_users.merge_existing_failed",
    "translation": "Slack user merged with an existing Mattermost user with matching email {{.Email}} and username {{.Username}}, but was unable to add the user to their team.\n"
  },
  {
    "id": "api.slackimport.slack_add_users.merge_existing",
    "translation": "Slack user merged with an existing Mattermost user with matching email {{.Email}} and username {{.Username}}.\n"
  },
  {
    "id": "api.slackimport.slack_add_users.created",
    "translation": "\nUsers created:\n"
  },
  {
    "id": "api.slackimport.slack_add_channels.merge",
    "translation": "The Slack channel {{.DisplayName}} already exists as an active Mattermost channel. Both channels have been merged.\n"
  },
  {
    "id": "api.slackimport.slack_add_channels.import_failed",
    "translation": "Unable to import Slack channel {{.DisplayName}}.\n"
  },
  {
    "id": "api.slackimport.slack_add_channels.failed_to_add_user",
    "translation": "Unable to add Slack user {{.Username}} to channel.\n"
  },
  {
    "id": "api.slackimport.slack_add_channels.added",
    "translation": "\nChannels added:\n"
  },
  {
    "id": "api.slackimport.slack_add_bot_user.unable_import",
    "translation": "Unable to import the Integration/Slack Bot user {{.Username}}.\n"
  },
  {
    "id": "api.server.start_server.starting.critical",
    "translation": "Error starting server, err:%v"
  },
  {
    "id": "api.server.start_server.rate_limiting_rate_limiter",
    "translation": "Unable to initialise rate limiting."
  },
  {
    "id": "api.server.start_server.rate_limiting_memory_store",
    "translation": "Unable to initialise rate-limiting memory store. Check MemoryStoreSize config setting."
  },
  {
    "id": "api.server.start_server.forward80to443.enabled_but_listening_on_wrong_port",
    "translation": "Unable to forward port 80 to port 443 while listening on port %s: disable Forward80To443 if using a proxy server"
  },
  {
    "id": "api.server.start_server.forward80to443.disabled_while_using_lets_encrypt",
    "translation": "Must enable Forward80To443 when using LetsEncrypt"
  },
  {
    "id": "api.scheme.patch_scheme.license.error",
    "translation": "Your licence does not support updating permissions schemes"
  },
  {
    "id": "api.scheme.get_teams_for_scheme.scope.error",
    "translation": "Unable to get the teams for scheme because the supplied scheme is not a team scheme."
  },
  {
    "id": "api.scheme.get_channels_for_scheme.scope.error",
    "translation": "Unable to get the channels for scheme because the supplied scheme is not a channel scheme."
  },
  {
    "id": "api.scheme.delete_scheme.license.error",
    "translation": "Your licence not support deleting permissions schemes"
  },
  {
    "id": "api.scheme.create_scheme.license.error",
    "translation": "Your licence does not support creating permissions schemes."
  },
  {
    "id": "api.roles.patch_roles.not_allowed_permission.error",
    "translation": "One or more of the following permissions that you are trying to add or remove is not allowed"
  },
  {
    "id": "api.roles.patch_roles.license.error",
    "translation": "Your licence does not support advanced permissions."
  },
  {
    "id": "api.restricted_system_admin",
    "translation": "This action is forbidden to a restricted system admin."
  },
  {
    "id": "api.remote_cluster.update_not_unique.app_error",
    "translation": "Secure connection with the same URL already exists."
  },
  {
    "id": "api.remote_cluster.update.app_error",
    "translation": "An error occurred while updating the secure connection."
  },
  {
    "id": "api.remote_cluster.service_not_enabled.app_error",
    "translation": "The remote cluster service is not enabled."
  },
  {
    "id": "api.remote_cluster.save_not_unique.app_error",
    "translation": "Secure connection has already been added."
  },
  {
    "id": "api.remote_cluster.save.app_error",
    "translation": "An error occurred while saving the secure connection."
  },
  {
    "id": "api.remote_cluster.invalid_topic.app_error",
    "translation": "Invalid topic."
  },
  {
    "id": "api.remote_cluster.invalid_id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "api.remote_cluster.get.app_error",
    "translation": "An error occurred while retrieving a secure connection."
  },
  {
    "id": "api.remote_cluster.delete.app_error",
    "translation": "An error occurred while deleting the secure connection."
  },
  {
    "id": "api.reaction.save_reaction.user_id.app_error",
    "translation": "You cannot save reaction for the other user."
  },
  {
    "id": "api.reaction.save_reaction.invalid.app_error",
    "translation": "Reaction is not valid."
  },
  {
    "id": "api.reaction.save.archived_channel.app_error",
    "translation": "You cannot react in an archived channel."
  },
  {
    "id": "api.reaction.delete.archived_channel.app_error",
    "translation": "You cannot remove a reaction in an archived channel."
  },
  {
    "id": "api.push_notifications_ack.message.parse.app_error",
    "translation": "An error occurred building the push notification ack message."
  },
  {
    "id": "api.push_notifications_ack.forward.app_error",
    "translation": "An error occurred sending the receipt delivery to the push notification service."
  },
  {
    "id": "api.push_notifications.session.expired",
    "translation": "Session Expired: Please log in to continue receiving notifications. Sessions for {{.siteName}} are configured by your System Administrator to expire every {{.hoursCount}} hours(s)."
  },
  {
    "id": "api.push_notifications.message.parse.app_error",
    "translation": "An error occurred building the push notification message."
  },
  {
    "id": "api.push_notification.id_loaded.fetch.app_error",
    "translation": "An error occurred fetching the ID-loaded push notification."
  },
  {
    "id": "api.push_notification.id_loaded.default_message",
    "translation": "You've received a new message."
  },
  {
    "id": "api.push_notification.disabled.app_error",
    "translation": "Push Notifications are disabled on this server."
  },
  {
    "id": "api.preference.update_preferences.update_sidebar.app_error",
    "translation": "Unable to update sidebar to match updated preferences"
  },
  {
    "id": "api.preference.update_preferences.set.app_error",
    "translation": "Unable to set user preferences."
  },
  {
    "id": "api.preference.preferences_category.get.app_error",
    "translation": "Unable to get user preferences."
  },
  {
    "id": "api.preference.delete_preferences.update_sidebar.app_error",
    "translation": "Unable to update sidebar to match deleted preferences."
  },
  {
    "id": "api.preference.delete_preferences.delete.app_error",
    "translation": "Unable to delete user preferences."
  },
  {
    "id": "api.post_get_post_by_id.get.app_error",
    "translation": "Unable to get post."
  },
  {
    "id": "api.post.update_post.system_message.app_error",
    "translation": "Unable to update system message."
  },
  {
    "id": "api.post.update_post.permissions_time_limit.app_error",
    "translation": "Post edit is only allowed for {{.timeLimit}} seconds. Please ask your System Administrator for details."
  },
  {
    "id": "api.post.update_post.permissions_details.app_error",
    "translation": "Already deleted ID={{.PostId}}."
  },
  {
    "id": "api.post.update_post.find.app_error",
    "translation": "Unable to find the existing post or comment to update."
  },
  {
    "id": "api.post.update_post.can_not_update_post_in_deleted.error",
    "translation": "Cannot update a post in a deleted channel."
  },
  {
    "id": "api.post.send_notifications_and_forget.push_message",
    "translation": "sent you a message."
  },
  {
    "id": "api.post.send_notifications_and_forget.push_image_only",
    "translation": " attached a file."
  },
  {
    "id": "api.post.send_notifications_and_forget.push_general_message",
    "translation": " posted a message."
  },
  {
    "id": "api.post.send_notifications_and_forget.push_explicit_mention",
    "translation": " mentioned you."
  },
  {
    "id": "api.post.send_notification_and_forget.push_comment_on_thread",
    "translation": " commented on a thread you participated in."
  },
  {
    "id": "api.post.send_notification_and_forget.push_comment_on_post",
    "translation": " commented on your post."
  },
  {
    "id": "api.post.send_notification_and_forget.push_channel_mention",
    "translation": " notified the channel."
  },
  {
    "id": "api.post.search_posts.invalid_body.app_error",
    "translation": "Unable to parse the request body."
  },
  {
    "id": "api.post.search_files.invalid_body.app_error",
    "translation": "Unable to parse the request body."
  },
  {
    "id": "api.post.patch_post.can_not_update_post_in_deleted.error",
    "translation": "Cannot update a post in a deleted channel."
  },
  {
    "id": "api.post.get_message_for_notification.images_sent",
    "translation": {
      "one": "{{.Count}} image sent: {{.Filenames}}",
      "other": "{{.Count}} images sent: {{.Filenames}}"
    }
  },
  {
    "id": "api.post.get_message_for_notification.files_sent",
    "translation": {
      "one": "{{.Count}} file sent: {{.Filenames}}",
      "other": "{{.Count}} files sent: {{.Filenames}}"
    }
  },
  {
    "id": "api.post.error_get_post_id.pending",
    "translation": "Unable to get the pending post."
  },
  {
    "id": "api.post.do_action.action_integration.app_error",
    "translation": "Action integration error."
  },
  {
    "id": "api.post.do_action.action_id.app_error",
    "translation": "Invalid action ID."
  },
  {
    "id": "api.post.disabled_here",
    "translation": "@here notifications are disabled in channels with more than {{.Users}} users. Contact your system administrator for further information."
  },
  {
    "id": "api.post.disabled_channel",
    "translation": "@channel notifications are disabled in channels with more than {{.Users}} users. Contact your system administrator for further information."
  },
  {
    "id": "api.post.disabled_all",
    "translation": "@all notifications are disabled in channels with more than {{.Users}} users. Contact your system administrator for further information."
  },
  {
    "id": "api.post.delete_post.can_not_delete_post_in_deleted.error",
    "translation": "Cannot delete a post in a deleted channel."
  },
  {
    "id": "api.post.deduplicate_create_post.pending",
    "translation": "Rejected post because another client is making the same request."
  },
  {
    "id": "api.post.deduplicate_create_post.failed_to_get",
    "translation": "Failed to fetch original post after deduplicating a client repeating the same request."
  },
  {
    "id": "api.post.create_webhook_post.creating.app_error",
    "translation": "Error creating post."
  },
  {
    "id": "api.post.create_post.root_id.app_error",
    "translation": "Invalid RootId parameter."
  },
  {
    "id": "api.command_collapse.success",
    "translation": "Image links now collapse by default"
  },
  {
    "id": "api.command_collapse.name",
    "translation": "collapse"
  },
  {
    "id": "api.command_collapse.desc",
    "translation": "Turn on auto-collapsing of image previews"
  },
  {
    "id": "api.command_code.name",
    "translation": "code"
  },
  {
    "id": "api.command_code.message.app_error",
    "translation": "A message must be provided with the /code command."
  },
  {
    "id": "api.command_code.hint",
    "translation": "[text]"
  },
  {
    "id": "api.command_code.desc",
    "translation": "Display text as a code block"
  },
  {
    "id": "api.command_channel_rename.update_channel.app_error",
    "translation": "Error to update the current channel."
  },
  {
    "id": "api.command_channel_rename.too_short.app_error",
    "translation": "Channel name must be {{.Length}} or more characters."
  },
  {
    "id": "api.command_channel_rename.too_long.app_error",
    "translation": "Channel name must be {{.Length}} or fewer characters."
  },
  {
    "id": "api.command_channel_rename.permission.app_error",
    "translation": "You don't have the appropriate permissions to rename the channel."
  },
  {
    "id": "api.command_channel_rename.name",
    "translation": "rename"
  },
  {
    "id": "api.command_channel_rename.message.app_error",
    "translation": "A message must be provided with the /rename command."
  },
  {
    "id": "api.command_channel_rename.hint",
    "translation": "[text]"
  },
  {
    "id": "api.command_channel_rename.direct_group.app_error",
    "translation": "Unable to rename direct message channels."
  },
  {
    "id": "api.command_channel_rename.desc",
    "translation": "Rename the channel"
  },
  {
    "id": "api.command_channel_rename.channel.app_error",
    "translation": "Error to retrieve the current channel."
  },
  {
    "id": "api.command_channel_remove.channel.app_error",
    "translation": "Error retrieving the current channel."
  },
  {
    "id": "api.command_channel_purpose.update_channel.max_length",
    "translation": "The text entered exceeds the character limit. The channel purpose is limited to {{.MaxLength}} characters."
  },
  {
    "id": "api.command_channel_purpose.update_channel.app_error",
    "translation": "Error updating the channel purpose."
  },
  {
    "id": "api.command_channel_purpose.permission.app_error",
    "translation": "You lack the appropriate permissions to edit the channel purpose."
  },
  {
    "id": "api.command_channel_purpose.name",
    "translation": "purpose"
  },
  {
    "id": "api.command_channel_purpose.message.app_error",
    "translation": "A message must be provided with the /purpose command."
  },
  {
    "id": "api.command_channel_purpose.hint",
    "translation": "[text]"
  },
  {
    "id": "api.command_channel_purpose.direct_group.app_error",
    "translation": "Unable to set purpose for direct message channels. Use /header to set the header instead."
  },
  {
    "id": "api.command_channel_purpose.desc",
    "translation": "Edit the channel purpose"
  },
  {
    "id": "api.command_channel_purpose.channel.app_error",
    "translation": "Error retrieving the current channel."
  },
  {
    "id": "api.command_channel_header.update_channel.max_length",
    "translation": "The text entered exceeds the character limit. The channel header is limited to {{.MaxLength}} characters."
  },
  {
    "id": "api.command_channel_header.update_channel.app_error",
    "translation": "Error updating the channel header."
  },
  {
    "id": "api.command_channel_header.permission.app_error",
    "translation": "You don't have the appropriate permissions to edit the channel header."
  },
  {
    "id": "api.command_channel_header.name",
    "translation": "header"
  },
  {
    "id": "api.command_channel_header.message.app_error",
    "translation": "Text must be provided with the /header command."
  },
  {
    "id": "api.command_channel_header.hint",
    "translation": "[text]"
  },
  {
    "id": "api.command_channel_header.desc",
    "translation": "Edit the channel header"
  },
  {
    "id": "api.command_channel_header.channel.app_error",
    "translation": "Error retrieving the current channel."
  },
  {
    "id": "api.command_away.success",
    "translation": "You are now 'away'"
  },
  {
    "id": "api.command_away.name",
    "translation": "away"
  },
  {
    "id": "api.command_away.desc",
    "translation": "Set your status to 'away'"
  },
  {
    "id": "api.command.team_mismatch.app_error",
    "translation": "Unable to update commands across teams."
  },
  {
    "id": "api.command.invite_people.sent",
    "translation": "Email invite(s) sent"
  },
  {
    "id": "api.command.invite_people.no_email",
    "translation": "Please specify one or more valid email addresses"
  },
  {
    "id": "api.command.invite_people.name",
    "translation": "invite_people"
  },
  {
    "id": "api.command.invite_people.invite_off",
    "translation": "User creation has been disabled on this server, no invite(s) sent"
  },
  {
    "id": "api.command.invite_people.hint",
    "translation": "[name@domain.com ...]"
  },
  {
    "id": "api.command.invite_people.fail",
    "translation": "Encountered an error sending email invite(s)"
  },
  {
    "id": "api.command.invite_people.email_off",
    "translation": "Email has not been configured, no invite(s) sent"
  },
  {
    "id": "api.command.invite_people.email_invitations_off",
    "translation": "Email invitations are disabled, no invite(s) sent"
  },
  {
    "id": "api.command.invite_people.desc",
    "translation": "Send an email invite to your Mattermost team"
  },
  {
    "id": "api.command.execute_command.start.app_error",
    "translation": "No command trigger found."
  },
  {
    "id": "api.command.execute_command.not_found.app_error",
    "translation": "Command with a trigger of '{{.Trigger}}' not found. To send a message beginning with '/', try adding an empty space at the beginning of the message."
  },
  {
    "id": "api.command.execute_command.format.app_error",
    "translation": "Command trigger word is missing the leading slash character"
  },
  {
    "id": "api.command.execute_command.failed_resp.app_error",
    "translation": "Command with a trigger of '{{.Trigger}}' returned response {{.Status}}."
  },
  {
    "id": "api.command.execute_command.failed_empty.app_error",
    "translation": "Command with a trigger of '{{.Trigger}}' returned an empty response."
  },
  {
    "id": "api.command.execute_command.failed.app_error",
    "translation": "Command with a trigger of '{{.Trigger}}' failed."
  },
  {
    "id": "api.command.execute_command.create_post_failed.app_error",
    "translation": "Command '{{.Trigger}}' failed to post response. Please contact your System Administrator."
  },
  {
    "id": "api.command.duplicate_trigger.app_error",
    "translation": "This trigger word is already in use. Please choose another."
  },
  {
    "id": "api.command.disabled.app_error",
    "translation": "Commands have been disabled by the system admin."
  },
  {
    "id": "api.command.command_post.forbidden.app_error",
    "translation": "Specified user is not a member of specified channel."
  },
  {
    "id": "api.command.admin_only.app_error",
    "translation": "Integrations have been limited to admins only."
  },
  {
    "id": "api.cloud.request_error",
    "translation": "Error processing request to CWS."
  },
  {
    "id": "api.cloud.license_error",
    "translation": "Your licence does not support cloud requests."
  },
  {
    "id": "api.cloud.cws_webhook_event_missing_error",
    "translation": "Webhook event was not handled. Either it is missing or it is not valid."
  },
  {
    "id": "api.cloud.app_error",
    "translation": "Internal error during cloud api request."
  },
  {
    "id": "api.channel.update_team_member_roles.scheme_role.app_error",
    "translation": "The provided role is managed by a Scheme and therefore cannot be applied directly to a Team Member."
  },
  {
    "id": "api.channel.update_team_member_roles.changing_guest_role.app_error",
    "translation": "Invalid team member update: You can't add or remove the guest role manually."
  },
  {
    "id": "api.channel.update_channel_scheme.scheme_scope.error",
    "translation": "Unable to set the scheme to the channel because the supplied scheme is not a channel scheme."
  },
  {
    "id": "api.channel.update_channel_scheme.license.error",
    "translation": "Your licence does not support updating a channel's scheme"
  },
  {
    "id": "api.channel.update_channel_privacy.default_channel_error",
    "translation": "The default channel cannot be made private."
  },
  {
    "id": "api.channel.update_channel_member_roles.scheme_role.app_error",
    "translation": "The provided role is managed by a Scheme and therefore cannot be applied directly to a Channel Member."
  },
  {
    "id": "api.channel.update_channel_member_roles.guest_and_user.app_error",
    "translation": "Invalid channel member update: A user must be a guest or a user but not both."
  },
  {
    "id": "api.channel.update_channel_member_roles.changing_guest_role.app_error",
    "translation": "Invalid channel member update: You can't add or remove the guest role manually."
  },
  {
    "id": "api.channel.update_channel.typechange.app_error",
    "translation": "Channel type cannot be updated."
  },
  {
    "id": "api.channel.update_channel.tried.app_error",
    "translation": "Tried to perform an invalid update of the default channel {{.Channel}}."
  },
  {
    "id": "api.channel.update_channel.deleted.app_error",
    "translation": "The channel has been archived or deleted."
  },
  {
    "id": "api.channel.restore_channel.unarchived",
    "translation": "{{.Username}} un-archived the channel."
  },
  {
    "id": "api.channel.restore_channel.restored.app_error",
    "translation": "Unable to unarchive channel. The channel is not archived."
  },
  {
    "id": "api.channel.rename_channel.cant_rename_group_messages.app_error",
    "translation": "You cannot rename a group message channel."
  },
  {
    "id": "api.channel.rename_channel.cant_rename_direct_messages.app_error",
    "translation": "You cannot rename a direct message channel."
  },
  {
    "id": "api.channel.remove_user_from_channel.app_error",
    "translation": "Cannot remove user from this channel type."
  },
  {
    "id": "api.channel.remove_members.denied",
    "translation": "Channel membership removal denied to the following users because of group constraints: {{ .UserIDs }}"
  },
  {
    "id": "api.channel.remove_member.removed",
    "translation": "%v removed from the channel."
  },
  {
    "id": "api.channel.remove_member.group_constrained.app_error",
    "translation": "Unable to remove a user from a group-constrained channel."
  },
  {
    "id": "api.channel.remove_channel_member.type.app_error",
    "translation": "Unable to remove user from a channel."
  },
  {
    "id": "api.channel.remove.default.app_error",
    "translation": "Unable to remove user from the default channel {{.Channel}}."
  },
  {
    "id": "api.channel.post_user_add_remove_message_and_forget.error",
    "translation": "Failed to post join/leave message"
  },
  {
    "id": "api.channel.post_update_channel_header_message_and_forget.updated_to",
    "translation": "%s updated the channel header to: %s"
  },
  {
    "id": "api.channel.post_update_channel_header_message_and_forget.updated_from",
    "translation": "%s updated the channel header from: %s to: %s"
  },
  {
    "id": "api.channel.post_update_channel_header_message_and_forget.retrieve_user.error",
    "translation": "Failed to retrieve user whilst updating channel header"
  },
  {
    "id": "api.channel.post_update_channel_header_message_and_forget.removed",
    "translation": "%s removed the channel header (was: %s)"
  },
  {
    "id": "api.channel.post_update_channel_header_message_and_forget.post.error",
    "translation": "Failed to post update channel header message"
  },
  {
    "id": "api.channel.post_update_channel_displayname_message_and_forget.updated_from",
    "translation": "%s updated the channel display name from: %s to: %s"
  },
  {
    "id": "api.channel.post_update_channel_displayname_message_and_forget.retrieve_user.error",
    "translation": "Failed to retrieve user whilst updating channel DisplayName field"
  },
  {
    "id": "api.channel.post_update_channel_displayname_message_and_forget.create_post.error",
    "translation": "Failed to post displayname update message"
  },
  {
    "id": "api.channel.post_channel_privacy_message.error",
    "translation": "Failed to post channel privacy update message."
  },
  {
    "id": "api.channel.patch_update_channel.forbidden.app_error",
    "translation": "Failed to update the channel."
  },
  {
    "id": "api.channel.patch_channel_moderations.license.error",
    "translation": "Your licence does not support channel moderation"
  },
  {
    "id": "api.channel.patch_channel_moderations.cache_invalidation.error",
    "translation": "Error invalidating cache"
  },
  {
    "id": "api.channel.move_channel.type.invalid",
    "translation": "Unable to move direct or group message channels"
  },
  {
    "id": "api.channel.leave.left",
    "translation": "%v left the channel."
  },
  {
    "id": "api.channel.leave.direct.app_error",
    "translation": "Unable to leave a direct message channel."
  },
  {
    "id": "api.channel.leave.default.app_error",
    "translation": "Unable to leave the default channel {{.Channel}}."
  },
  {
    "id": "api.channel.join_channel.post_and_forget",
    "translation": "%v joined the channel."
  },
  {
    "id": "api.channel.join_channel.permissions.app_error",
    "translation": "You do not have the appropriate permissions."
  },
  {
    "id": "api.channel.guest_join_channel.post_and_forget",
    "translation": "%v joined the channel as guest."
  },
  {
    "id": "api.channel.get_channel_moderations.license.error",
    "translation": "Your licence does not support channel moderation"
  },
  {
    "id": "api.channel.delete_channel.type.invalid",
    "translation": "Unable to delete direct or group message channels"
  },
  {
    "id": "api.channel.delete_channel.deleted.app_error",
    "translation": "The channel has been archived or deleted."
  },
  {
    "id": "api.channel.delete_channel.cannot.app_error",
    "translation": "Unable to delete the default channel {{.Channel}}."
  },
  {
    "id": "api.channel.delete_channel.archived",
    "translation": "%v archived the channel."
  },
  {
    "id": "api.channel.create_group.bad_user.app_error",
    "translation": "One of the provided users does not exist."
  },
  {
    "id": "api.channel.create_group.bad_size.app_error",
    "translation": "Group message channels must contain at least 3, and no more than 8 users."
  },
  {
    "id": "api.channel.create_direct_channel.invalid_user.app_error",
    "translation": "Invalid user ID for direct channel creation."
  },
  {
    "id": "api.channel.create_default_channels.town_square",
    "translation": "Town Square"
  },
  {
    "id": "api.command_settings.unsupported.app_error",
    "translation": "The settings command is not supported on your device."
  },
  {
    "id": "api.command_settings.name",
    "translation": "settings"
  },
  {
    "id": "api.command_settings.desc",
    "translation": "Open the Settings dialog"
  },
  {
    "id": "api.command_search.unsupported.app_error",
    "translation": "The search command is not supported on your device."
  },
  {
    "id": "api.command_search.name",
    "translation": "search"
  },
  {
    "id": "api.command_search.hint",
    "translation": "[text]"
  },
  {
    "id": "api.command_search.desc",
    "translation": "Search text in messages"
  },
  {
    "id": "api.command_remove.user_not_in_channel",
    "translation": "{{.Username}} is not a member of this channel."
  },
  {
    "id": "api.command_remove.permission.app_error",
    "translation": "You don't have the appropriate permissions to remove the member."
  },
  {
    "id": "api.command_remove.name",
    "translation": "remove"
  },
  {
    "id": "api.command_remove.missing.app_error",
    "translation": "Couldn't find a matching user. They may have been deactivated by the System Administrator."
  },
  {
    "id": "api.command_remove.message.app_error",
    "translation": "A message must be provided with the /remove or /kick command."
  },
  {
    "id": "api.command_remove.hint",
    "translation": "@[username]"
  },
  {
    "id": "api.command_remove.group_constrained_user_denied",
    "translation": "User cannot be removed from the channel by you because they are a member of the groups linked to this channel. To remove them from this channel, they must be removed from the linked groups."
  },
  {
    "id": "api.command_remove.direct_group.app_error",
    "translation": "You can't remove someone from a direct message channel."
  },
  {
    "id": "api.command_remove.desc",
    "translation": "Remove a member from the channel"
  },
  {
    "id": "api.command_remote.unknown_action",
    "translation": "Unknown action `{{.Action}}`"
  },
  {
    "id": "api.command_remote.status.help",
    "translation": "Displays status for all secure connections"
  },
  {
    "id": "api.command_remote.site_url_not_set",
    "translation": "Site URL not set. Please set this in System Console > Environment > Web Server."
  },
  {
    "id": "api.command_remote.service_not_enabled",
    "translation": "Secure Connection Service not enabled."
  },
  {
    "id": "api.command_remote.service_disabled",
    "translation": "Secure Connection Service is disabled."
  },
  {
    "id": "api.command_remote.remove_remote_id.help",
    "translation": "ID of secure connection to remove."
  },
  {
    "id": "api.command_remote.remove_remote.error",
    "translation": "Could not remove secure connection: {{.Error}}"
  },
  {
    "id": "api.command_remote.remove.help",
    "translation": "Removes a secure connection"
  },
  {
    "id": "api.command_remote.remotes_not_found",
    "translation": "No secure connections found."
  },
  {
    "id": "api.command_remote.remote_table_header",
    "translation": "| Secure connection | Display name | Connection ID | Site URL | Default Team | Invite accepted | Online | Last ping | Deleted |"
  },
  {
    "id": "api.command_remote.remote_add_remove.help",
    "translation": "Add/remove secure connections. Available actions: {{.Actions}}"
  },
  {
    "id": "api.command_remote.permission_required",
    "translation": "You require `{{.Permission}}` permission to manage secure connections."
  },
  {
    "id": "api.command_remote.name.hint",
    "translation": "A unique name for the secure connection"
  },
  {
    "id": "api.command_remote.name.help",
    "translation": "Secure connection name"
  },
  {
    "id": "api.command_remote.name",
    "translation": "secure-connection"
  },
  {
    "id": "api.command_remote.missing_empty",
    "translation": "Missing or empty `{{.Arg}}`"
  },
  {
    "id": "api.command_remote.missing_command",
    "translation": "Missing command. Available actions: {{.Actions}}"
  },
  {
    "id": "api.command_remote.invite_summary",
    "translation": "Send the following AES 256-bit encrypted invitation to the external Mattermost System Admin along with the password. They will use the `{{.Command}}` slash command to accept the invitation.\n\n```\n{{.Invitation}}\n```\n\n**Ensure the secure connection can access your Mattermost instance via** {{.SiteURL}}"
  },
  {
    "id": "api.command_remote.invite_password.hint",
    "translation": "Password to be used for encrypting the invitation"
  },
  {
    "id": "api.command_remote.invite_password.help",
    "translation": "Invitation password"
  },
  {
    "id": "api.command_remote.invite.help",
    "translation": "Invite a secure connection"
  },
  {
    "id": "api.command_remote.invitation_created",
    "translation": "Invitation created."
  },
  {
    "id": "api.command_remote.invitation.hint",
    "translation": "The encrypted invitation from a secure connection"
  },
  {
    "id": "api.channel.create_default_channels.off_topic",
    "translation": "Off-Topic"
  },
  {
    "id": "api.channel.create_channel.max_channel_limit.app_error",
    "translation": "Unable to create more than {{.MaxChannelsPerTeam}} channels for current team."
  },
  {
    "id": "api.channel.create_channel.direct_channel.team_restricted_error",
    "translation": "A direct channel cannot be created between these users because they do not share a team in common."
  },
  {
    "id": "api.channel.create_channel.direct_channel.app_error",
    "translation": "Must use createDirectChannel API service for direct message channel creation."
  },
  {
    "id": "api.channel.channel_member_counts_by_group.license.error",
    "translation": "Your licence does not support groups"
  },
  {
    "id": "api.channel.change_channel_privacy.public_to_private",
    "translation": "This channel has been converted to a Private Channel."
  },
  {
    "id": "api.channel.change_channel_privacy.private_to_public",
    "translation": "This channel has been converted to a Public Channel and can be joined by any team member."
  },
  {
    "id": "api.channel.add_user_to_channel.type.app_error",
    "translation": "Cannot add user to this channel type."
  },
  {
    "id": "api.channel.add_user.to.channel.failed.deleted.app_error",
    "translation": "Failed to add user to channel because they have been removed from the team."
  },
  {
    "id": "api.channel.add_user.to.channel.failed.app_error",
    "translation": "Failed to add user to channel."
  },
  {
    "id": "api.channel.add_members.user_denied",
    "translation": "Channel membership denied to the following users because of group constraints: {{ .UserIDs }}"
  },
  {
    "id": "api.channel.add_members.error",
    "translation": "Error adding channel member(s)."
  },
  {
    "id": "api.channel.add_member.added",
    "translation": "%v added to the channel by %v."
  },
  {
    "id": "api.channel.add_guest.added",
    "translation": "%v added to the channel as guest by %v."
  },
  {
    "id": "api.bot.teams_channels.add_message_mobile",
    "translation": "Please add me to teams and channels you want me to interact in. To do this, use the browser or Mattermost Desktop App."
  },
  {
    "id": "api.bot.create_disabled",
    "translation": "Bot creation has been disabled."
  },
  {
    "id": "api.back_to_app",
    "translation": "Return to {{.SiteName}}"
  },
  {
    "id": "api.admin.upload_brand_image.too_large.app_error",
    "translation": "Unable to upload file. File is too large."
  },
  {
    "id": "api.admin.upload_brand_image.storage.app_error",
    "translation": "Unable to upload image. Image storage is not configured."
  },
  {
    "id": "api.admin.upload_brand_image.parse.app_error",
    "translation": "Could not parse multipart form."
  },
  {
    "id": "api.admin.upload_brand_image.no_file.app_error",
    "translation": "No file under 'image' in request."
  },
  {
    "id": "api.admin.upload_brand_image.array.app_error",
    "translation": "Empty array under 'image' in request."
  },
  {
    "id": "api.admin.test_s3.missing_s3_bucket",
    "translation": "S3 Bucket is required."
  },
  {
    "id": "api.admin.test_email.subject",
    "translation": "Mattermost - Testing Email Settings"
  },
  {
    "id": "api.admin.test_email.reenter_password",
    "translation": "The SMTP server, port, or username has changed. Please re-enter the SMTP password to test connection."
  },
  {
    "id": "api.admin.test_email.missing_server",
    "translation": "SMTP Server is required."
  },
  {
    "id": "api.admin.test_email.body",
    "translation": "It appears your Mattermost email is setup correctly!"
  },
  {
    "id": "api.admin.saml.set_certificate_from_metadata.missing_content_type.app_error",
    "translation": "Missing content type."
  },
  {
    "id": "api.admin.saml.set_certificate_from_metadata.invalid_content_type.app_error",
    "translation": "Invalid content type."
  },
  {
    "id": "api.admin.saml.set_certificate_from_metadata.invalid_body.app_error",
    "translation": "Invalid certificate text."
  },
  {
    "id": "api.admin.saml.not_available.app_error",
    "translation": "SAML 2.0 is not configured or supported on this server."
  },
  {
    "id": "api.admin.saml.metadata.app_error",
    "translation": "An error occurred while building Service Provider Metadata."
  },
  {
    "id": "api.admin.saml.invalid_xml_missing_ssoservices.app_error",
    "translation": "Missing Identity Provider SSO Services node in the XML."
  },
  {
    "id": "api.admin.saml.invalid_xml_missing_keydescriptor.app_error",
    "translation": "Missing Identity Provider Key Descriptors node in the XML."
  },
  {
    "id": "api.admin.saml.invalid_xml_missing_idpssodescriptors.app_error",
    "translation": "Missing Identity Provider SSO Descriptors node in the XML."
  },
  {
    "id": "api.admin.saml.failure_save_idp_certificate_file.app_error",
    "translation": "Could not save certificate file."
  },
  {
    "id": "api.admin.saml.failure_reset_authdata_to_email.app_error",
    "translation": "Failed to reset AuthData field to Email."
  },
  {
    "id": "api.admin.saml.failure_parse_idp_certificate.app_error",
    "translation": "Failure encountered while parsing the metadata information received from the Identity Provider to a certificate."
  },
  {
    "id": "api.admin.saml.failure_get_metadata_from_idp.app_error",
    "translation": "Failed to obtain metadata from Identity Provider URL."
  },
  {
    "id": "api.admin.remove_certificate.delete.app_error",
    "translation": "An error occurred while deleting the certificate."
  },
  {
    "id": "api.admin.ldap.not_available.app_error",
    "translation": "LDAP is not available."
  },
  {
    "id": "api.admin.get_brand_image.storage.app_error",
    "translation": "Image storage is not configured."
  },
  {
    "id": "api.admin.file_read_error",
    "translation": "Error reading log file."
  },
  {
    "id": "api.admin.delete_brand_image.storage.not_found",
    "translation": "Unable to delete brand image, not found."
  },
  {
    "id": "api.admin.add_certificate.saving.app_error",
    "translation": "Could not save certificate file."
  },
  {
    "id": "api.admin.add_certificate.parseform.app_error",
    "translation": "Error parsing multiform request"
  },
  {
    "id": "api.admin.add_certificate.open.app_error",
    "translation": "Could not open certificate file."
  },
  {
    "id": "api.admin.add_certificate.no_file.app_error",
    "translation": "No file under 'certificate' in request."
  },
  {
    "id": "api.admin.add_certificate.array.app_error",
    "translation": "No file under 'certificate' in request."
  },
  {
    "id": "September",
    "translation": "September"
  },
  {
    "id": "October",
    "translation": "October"
  },
  {
    "id": "November",
    "translation": "November"
  },
  {
    "id": "May",
    "translation": "May"
  },
  {
    "id": "March",
    "translation": "March"
  },
  {
    "id": "June",
    "translation": "June"
  },
  {
    "id": "July",
    "translation": "July"
  },
  {
    "id": "January",
    "translation": "January"
  },
  {
    "id": "February",
    "translation": "February"
  },
  {
    "id": "December",
    "translation": "December"
  },
  {
    "id": "August",
    "translation": "August"
  },
  {
    "id": "April",
    "translation": "April"
  },
  {
    "id": "brand.save_brand_image.check_image_limits.app_error",
    "translation": "Image limits check failed. Resolution is too high."
  },
  {
    "id": "api.user.upload_profile_user.check_image_limits.app_error",
    "translation": "Image limits check failed. Resolution is too high."
  },
  {
    "id": "api.team.set_team_icon.check_image_limits.app_error",
    "translation": "Image limits check failed. Resolution is too high."
  },
  {
    "id": "app.system.system_bot.bot_displayname",
    "translation": "System"
  },
  {
    "id": "app.bot.get_system_bot.empty_admin_list.app_error",
    "translation": "List of admins is empty."
  },
  {
    "id": "app.user.get_thread_membership_for_user.not_found",
    "translation": "User thread membership doesn't exist"
  },
  {
    "id": "app.user.get_thread_membership_for_user.app_error",
    "translation": "Unable to get user thread membership"
  },
  {
    "id": "api.license.request-trial.can-start-trial.not-allowed",
    "translation": "Failed to apply new trial licence as your workspace has already applied a trial licence. If you would like to extend your trial period please [contact the sales team](https://mattermost.com/contact-us/)."
  },
  {
    "id": "api.license.request-trial.can-start-trial.error",
    "translation": "An error occurred while checking if a trial can be started"
  },
  {
    "id": "ent.data_retention.run_failed.error",
    "translation": "Data retention job failed."
  },
  {
    "id": "api.templates.license_up_for_renewal_title",
    "translation": "Your Mattermost subscription is up for renewal"
  },
  {
    "id": "api.templates.license_up_for_renewal_subtitle",
    "translation": "{{.UserName}}, your subscription is set to expire in {{.Days}} days. We hope you’re experiencing the flexible, secure team collaboration that Mattermost enables. Renew soon to ensure your team can keep enjoying these benefits."
  },
  {
    "id": "api.templates.license_up_for_renewal_subject",
    "translation": "Your licence is up for renewal"
  },
  {
    "id": "api.server.license_up_for_renewal.error_sending_email",
    "translation": "Failed to send licence renewal notification email"
  },
  {
    "id": "api.user.invalidate_verify_email_tokens_parse.error",
    "translation": "Unable to parse token when invalidating email verification tokens"
  },
  {
    "id": "api.user.invalidate_verify_email_tokens_delete.error",
    "translation": "Unable to remove token when invalidating email verification tokens"
  },
  {
    "id": "api.user.invalidate_verify_email_tokens.error",
    "translation": "Unable to get tokens by type when invalidating email verification tokens"
  },
  {
    "id": "api.license.upgrade_needed.app_error",
    "translation": "Feature requires an upgrade to Enterprise Edition."
  },
  {
    "id": "app.user.store_is_empty.app_error",
    "translation": "Failed to check if user store is empty."
  },
  {
    "id": "app.notification.body.thread.title",
    "translation": "{{.SenderName}} replied to a thread"
  },
  {
    "id": "api.push_notification.title.collapsed_threads",
    "translation": "Reply in {{.channelName}}"
  },
  {
    "id": "api.post.send_notification_and_forget.push_comment_on_crt_thread",
    "translation": " replied to a thread you're following."
  },
  {
    "id": "model.config.is_valid.collapsed_threads.autofollow.app_error",
    "translation": "ThreadAutoFollow must be true to enable CollapsedThreads"
  },
  {
    "id": "api.config.reload_config.app_error",
    "translation": "Failed to reload config."
  },
  {
    "id": "app.post.marshal.app_error",
    "translation": "Failed to marshal post."
  },
  {
    "id": "api.unmarshal_error",
    "translation": "Failed to unmarshal."
  },
  {
    "id": "app.notification.body.thread_gm.subTitle",
    "translation": "While you were away, {{.SenderName}} replied to a thread in your group."
  },
  {
    "id": "app.notification.body.thread_dm.subTitle",
    "translation": "While you were away, {{.SenderName}} replied to a thread in your Direct Message."
  },
  {
    "id": "app.notification.body.thread_channel_full.subTitle",
    "translation": "While you were away, {{.SenderName}} replied to a thread you're following in {{.ChannelName}}."
  },
  {
    "id": "app.notification.body.thread_channel.subTitle",
    "translation": "While you were away, {{.SenderName}} replied to a thread you're following."
  },
  {
    "id": "api.push_notification.title.collapsed_threads_dm",
    "translation": "Reply in Direct Message"
  },
  {
    "id": "api.post.send_notification_and_forget.push_comment_on_crt_thread_dm",
    "translation": " replied to a thread."
  },
  {
    "id": "model.user.is_valid.roles_limit.app_error",
    "translation": "Invalid user roles longer than {{.Limit}} characters."
  },
  {
    "id": "model.team_member.is_valid.roles_limit.app_error",
    "translation": "Invalid team member roles longer than {{.Limit}} characters."
  },
  {
    "id": "model.session.is_valid.user_id.app_error",
    "translation": "Invalid session UserID field."
  },
  {
    "id": "model.session.is_valid.roles_limit.app_error",
    "translation": "Invalid session roles longer than {{.Limit}} characters."
  },
  {
    "id": "model.session.is_valid.id.app_error",
    "translation": "Invalid session ID field."
  },
  {
    "id": "model.session.is_valid.create_at.app_error",
    "translation": "Invalid CreateAt field for session."
  },
  {
    "id": "model.channel_member.is_valid.roles_limit.app_error",
    "translation": "Invalid channel member roles longer than {{.Limit}} characters."
  },
  {
    "id": "api.user.create_user.bad_token_email_data.app_error",
    "translation": "The email address in the token does not match the one in the user data."
  },
  {
    "id": "ent.elasticsearch.getAllTeamMembers.error",
    "translation": "Failed to retrieve all team members"
  },
  {
    "id": "ent.elasticsearch.getAllChannelMembers.error",
    "translation": "Failed to retrieve all channel members"
  },
  {
    "id": "app.role.get_all.app_error",
    "translation": "Unable to retrieve all roles."
  },
  {
    "id": "api.custom_status.set_custom_statuses.update.app_error",
    "translation": "Failed to update the custom status. Please add either emoji, custom status text or both."
  },
  {
    "id": "app.user.get_thread_count_for_user.app_error",
    "translation": "Unable to retrieve user thread count."
  },
  {
    "id": "api.templates.invite_body.title.reminder",
    "translation": "Reminder"
  },
  {
    "id": "app.session.extend_session_expiry.app_error",
    "translation": "Unable to extend session length"
  },
  {
    "id": "api.post.posts_by_ids.invalid_body.request_error",
    "translation": "The number of Post IDs received has exceeded the maximum size of {{.MaxLength}}"
  },
  {
    "id": "api.user.authorize_oauth_user.saml_response_too_long.app_error",
    "translation": "SAML response is too long"
  },
  {
    "id": "app.system.complete_onboarding_request.no_first_user",
    "translation": "Onboarding can only be completed by a System Administrator."
  },
  {
    "id": "app.system.complete_onboarding_request.app_error",
    "translation": "Failed to decode the complete onboarding request."
  },
  {
    "id": "model.emoji.system_emoji_name.app_error",
    "translation": "Name conflicts with existing system emoji name."
  },
  {
    "id": "app.system.get_onboarding_request.app_error",
    "translation": "Failed to get onboarding completion status."
  },
  {
    "id": "app.member_count",
    "translation": "error retrieving member count"
  },
  {
    "id": "app.group.crud_permission",
    "translation": "Unable to perform operation for that source type."
  },
  {
    "id": "app.custom_group.unique_name",
    "translation": "group name is not unique"
  },
  {
    "id": "api.license_error",
    "translation": "API endpoint requires a licence"
  },
  {
    "id": "api.error_set_first_admin_complete_setup",
    "translation": "Error trying to mark first admin setup as complete in the store."
  },
  {
    "id": "api.error_get_first_admin_complete_setup",
    "translation": "Error trying to retrieve first admin complete setup from the store."
  },
  {
    "id": "api.custom_groups.no_remote_id",
    "translation": "remote_id must be blank for custom group"
  },
  {
    "id": "api.custom_groups.must_be_referenceable",
    "translation": "allow_reference must be 'true' for custom groups"
  },
  {
    "id": "api.custom_groups.license_error",
    "translation": "not licensed for custom groups"
  },
  {
    "id": "api.custom_groups.feature_disabled",
    "translation": "custom groups feature is disabled"
  },
  {
    "id": "api.custom_groups.count_err",
    "translation": "error counting groups"
  },
  {
    "id": "app.job.get_all_jobs_by_type_and_status.app_error",
    "translation": "Unable to get the all jobs by type and status."
  },
  {
    "id": "app.prepackged-plugin.invalid_version.app_error",
    "translation": "A prepackged plugin version could not be parsed."
  },
  {
    "id": "api.team.invite_members.unable_to_send_email_with_defaults.app_error",
    "translation": "SMTP is not configured in the System Console"
  },
  {
    "id": "api.team.invite_members.unable_to_send_email.app_error",
    "translation": "An error occurred while sending the email"
  },
  {
    "id": "model.oauth.is_valid.mattermost_app_id.app_error",
    "translation": "The maximum length of MattermostAppID is 32 characters."
  },
  {
    "id": "app.channel.get_file_count.app_error",
    "translation": "Unable to retrieve the file count for the channel"
  },
  {
    "id": "model.config.is_valid.elastic_search.bulk_indexing_batch_size.app_error",
    "translation": "Search Bulk Indexing Batch Size must be at least {{.BatchSize}}."
  },
  {
    "id": "api.license.request_trial_license.embargoed",
    "translation": "We were unable to process the request due to limitations for embargoed countries. [Learn more in our documentation](https://mattermost.com/pl/limitations-for-embargoed-countries), or reach out to legal@mattermost.com for questions around export limitations."
  },
  {
    "id": "api.getThreadsForUser.bad_only_params",
    "translation": "OnlyThreads and OnlyTotals parameters to getThreadsForUser are mutually exclusive"
  },
  {
    "id": "api.file.test_connection_s3_settings_nil.app_error",
    "translation": "The file storage settings have unset values."
  },
  {
    "id": "api.file.test_connection_email_settings_nil.app_error",
    "translation": "The email settings have unset values."
  },
  {
    "id": "model.member.is_valid.emails.app_error",
    "translation": "Email list is empty"
  },
  {
    "id": "model.member.is_valid.channel.app_error",
    "translation": "Invalid channel name"
  },
  {
    "id": "model.channel.is_valid.1_or_more.app_error",
    "translation": "Name must be 1 or more lowercase alphanumeric characters."
  },
  {
    "id": "app.user.update_thread_read_for_user_by_post.app_error",
    "translation": "Invalid post_id"
  },
  {
    "id": "api.templates.invite_team_and_channels_subject",
    "translation": "[{{ .SiteName }}] {{ .SenderName }} invited you to join {{ .ChannelsLen }} channels on the {{ .TeamDisplayName }} Team"
  },
  {
    "id": "api.templates.invite_team_and_channels_body.title",
    "translation": "{{ .SenderName }} invited you to join {{ .ChannelsLen }} channels on the {{ .TeamDisplayName }} Team"
  },
  {
    "id": "api.templates.invite_team_and_channel_subject",
    "translation": "[{{ .SiteName }}] {{ .SenderName }} invited you to join the {{ .ChannelName }} Channel on the {{ .TeamDisplayName }} Team"
  },
  {
    "id": "api.templates.invite_team_and_channel_body.title",
    "translation": "{{ .SenderName }} invited you to join the {{ .ChannelName }} Channel on the {{ .TeamDisplayName }} Team"
  },
  {
    "id": "api.team.invite_members_to_team_and_channels.invalid_body.app_error",
    "translation": "Invalid request body."
  },
  {
    "id": "api.elasticsearch.test_elasticsearch_settings_nil.app_error",
    "translation": "Elasticsearch settings has unset values."
  },
  {
    "id": "api.file.cloud_upload.app_error",
    "translation": "Uploading via mmctl to a Cloud instance is not supported. Please check the documentation here: https://docs.mattermost.com/manage/cloud-data-export.html."
  },
  {
    "id": "app.usage.get_storage_usage.app_error",
    "translation": "Failed to get storage usage."
  },
  {
    "id": "app.teams.analytics_teams_count.app_error",
    "translation": "Unable to get team count"
  },
  {
    "id": "app.post.analytics_teams_count.app_error",
    "translation": "Unable to get teams usage"
  },
  {
    "id": "api.cloud.teams_limit_reached.restore",
    "translation": "Unable to restore team because teams limit has been reached"
  },
  {
    "id": "api.cloud.teams_limit_reached.create",
    "translation": "Unable to create team because teams limit has been reached"
  },
  {
    "id": "model.config.is_valid.image_decoder_concurrency.app_error",
    "translation": "Invalid decoder concurrency {{.Value}}. Should be a positive number or -1."
  },
  {
    "id": "api.cloud.notify_admin_to_upgrade_error.already_notified",
    "translation": "Already notified admin"
  },
  {
    "id": "common.parse_error_int64",
    "translation": "Failed to parse the value:{{.Value}} to int64"
  },
  {
    "id": "app.post.cloud.get.app_error",
    "translation": "Can't fetch the post as it is past the cloud's plan limit."
  },
  {
    "id": "app.last_accessible_post.app_error",
    "translation": "An error occurred while fetching the last accessible post"
  },
  {
    "id": "app.upload.upload_data.gen_info.app_error",
    "translation": "Failed to generate file info from uploaded data."
  },
  {
    "id": "model.config.is_valid.amazons3_timeout.app_error",
    "translation": "Invalid timeout value {{.Value}}. Should be a positive number."
  },
  {
    "id": "app.post_reminder_dm",
    "translation": "Hello there, here's your reminder about this message from @{{.Username}}: {{.SiteURL}}/{{.TeamName}}/pl/{{.PostId}}"
  },
  {
    "id": "app.team.clear_cache.app_error",
    "translation": "An error occurred while clearing team member cache"
  },
  {
    "id": "api.command_marketplace.unsupported.app_error",
    "translation": "The marketplace command is not supported on your device."
  },
  {
    "id": "api.command_marketplace.name",
    "translation": "marketplace"
  },
  {
    "id": "api.command_marketplace.desc",
    "translation": "Open the Marketplace"
  },
  {
    "id": "api.command_help.success",
    "translation": "Mattermost is an open-source platform for secure communication, collaboration, and orchestration of work across tools and teams.\nMattermost contains two key tools:\n\n**Channels** - Stay connected with your team via 1:1 and group messaging.\n**[Playbooks](/playbooks)** - Build and configure repeatable processes to achieve specific and predictable outcomes.\n\n[View documentation and guides]({{.HelpLink}})"
  },
  {
    "id": "app.notify_admin.send_notification_post.app_error",
    "translation": "Unable to send notification post."
  },
  {
    "id": "app.notify_admin.save.app_error",
    "translation": "Unable to save notify data."
  },
  {
    "id": "app.cloud.upgrade_plan_bot_message_single",
    "translation": "{{.UsersNum}} member of the {{.WorkspaceName}} workspace has requested a workspace upgrade for: "
  },
  {
    "id": "app.cloud.upgrade_plan_bot_message",
    "translation": "{{.UsersNum}} members of the {{.WorkspaceName}} workspace have requested a workspace upgrade for: "
  },
  {
    "id": "app.cloud.trial_plan_bot_message_single",
    "translation": "{{.UsersNum}} member of the {{.WorkspaceName}} workspace has requested starting the Enterprise trial for access to: "
  },
  {
    "id": "app.cloud.trial_plan_bot_message",
    "translation": "{{.UsersNum}} members of the {{.WorkspaceName}} workspace have requested starting the Enterprise trial for access to: "
  },
  {
    "id": "ent.saml.configure.certificate_parse_error.app_error",
    "translation": "SAML could not load Identity Provider Public Certificate successfully, please contact your system administrator."
  },
  {
    "id": "app.user.get_badge_count.app_error",
    "translation": "The user's badge couldn't be retrieved."
  },
  {
    "id": "model.group.name.reserved_name.app_error",
    "translation": "group name already exists as a reserved name"
  },
  {
    "id": "app.last_accessible_file.app_error",
    "translation": "Error fetching last accessible file"
  },
  {
    "id": "app.job.error",
    "translation": "Error during job execution."
  },
  {
    "id": "app.file.cloud.get.app_error",
    "translation": "Unable to retrieve file: cloud storage limit exceeded."
  },
  {
    "id": "api.team.invite_guests_to_channels.license.error",
    "translation": "Your workspace licence does not support guest accounts"
  },
  {
    "id": "api.team.invite_guests_to_channels.disabled.error",
    "translation": "Guest accounts are disabled"
  },
  {
    "id": "api.user.add_user_to_group_syncables.not_ldap_user.app_error",
    "translation": "not an LDAP user"
  },
  {
    "id": "api.upload.create.upload_too_large.app_error",
    "translation": "Unable to upload file. File is too large."
  },
  {
    "id": "api.admin.syncables_error",
    "translation": "Failed to add user to group-teams and group-channels"
  },
  {
    "id": "model.draft.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.draft.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.draft.is_valid.root_id.app_error",
    "translation": "Invalid root ID."
  },
  {
    "id": "model.draft.is_valid.props.app_error",
    "translation": "Invalid props."
  },
  {
    "id": "model.draft.is_valid.file_ids.app_error",
    "translation": "Invalid file IDs."
  },
  {
    "id": "model.draft.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.draft.is_valid.channel_id.app_error",
    "translation": "Invalid channel ID."
  },
  {
    "id": "model.acknowledgement.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "model.acknowledgement.is_valid.post_id.app_error",
    "translation": "Invalid post ID."
  },
  {
    "id": "app.post_prority.get_for_post.app_error",
    "translation": "Unable to get post priority for post"
  },
  {
    "id": "app.draft.save.app_error",
    "translation": "Unable to save the draft."
  },
  {
    "id": "app.draft.get_for_draft.app_error",
    "translation": "Unable to get files for draft."
  },
  {
    "id": "app.draft.get_drafts.app_error",
    "translation": "Unable to get user's drafts."
  },
  {
    "id": "app.draft.get.app_error",
    "translation": "Unable to get the draft."
  },
  {
    "id": "app.draft.feature_disabled",
    "translation": "Drafts feature is disabled."
  },
  {
    "id": "app.draft.delete.app_error",
    "translation": "Unable to delete the draft."
  },
  {
    "id": "app.channel.get_priority_for_posts.app_error",
    "translation": "Unable to get the priority for posts"
  },
  {
    "id": "app.acknowledgement.delete.app_error",
    "translation": "Unable to delete acknowledgement."
  },
  {
    "id": "api.drafts.disabled.app_error",
    "translation": "Drafts feature is disabled."
  },
  {
    "id": "api.acknowledgement.delete.archived_channel.app_error",
    "translation": "You cannot remove an acknowledgment in an archived channel."
  },
  {
    "id": "model.draft.is_valid.priority.app_error",
    "translation": "Invalid priority"
  },
  {
    "id": "api.user.get_users.validation.app_error",
    "translation": "Error fetching roles during validation."
  },
  {
    "id": "api.server.hosted_signup_unavailable.error",
    "translation": "Portal unavailable for self-hosted signup."
  },
  {
    "id": "ent.elasticsearch.create_client.client_key_missing",
    "translation": "Could not open the client key file for {{.Backend}}"
  },
  {
    "id": "ent.elasticsearch.create_client.client_cert_missing",
    "translation": "Could not open the client certificate file for {{.Backend}}"
  },
  {
    "id": "ent.elasticsearch.create_client.client_cert_malformed",
    "translation": "Decoding of the client certificate for {{.Backend}} failed"
  },
  {
    "id": "ent.elasticsearch.create_client.ca_cert_missing",
    "translation": "Could not open the CA file for {{.Backend}}"
  },
  {
    "id": "app.channel.count_urgent_posts_since.app_error",
    "translation": "Unable to enumerate urgent posts since the given date."
  },
  {
    "id": "app.acknowledgement.save.save.app_error",
    "translation": "Unable to save post acknowledgement."
  },
  {
    "id": "app.acknowledgement.getforpost.get.app_error",
    "translation": "Unable to retrieve post acknowledgement."
  },
  {
    "id": "app.acknowledgement.get.app_error",
    "translation": "Unable to retrieve acknowledgement."
  },
  {
    "id": "api.draft.create_draft.can_not_draft_to_deleted.error",
    "translation": "Cannot save a draft to a deleted channel"
  },
  {
    "id": "api.acknowledgement.delete.deadline.app_error",
    "translation": "You cannot delete an acknowledgment after 5 minutes have elapsed."
  },
  {
    "id": "app.import.validate_user_teams_import_data.invalid_auth_service.error",
    "translation": "Invalid auth service: {{.AuthService}}"
  },
  {
    "id": "app.group.username_conflict",
    "translation": "A user with the username '{{.Username}}' already exists."
  },
  {
    "id": "api.server.cws.needs_enterprise_edition",
    "translation": "Service only available in Mattermost Enterprise edition"
  },
  {
    "id": "api.config.update_config.translations.app_error",
    "translation": "Failed to update server translations."
  },
  {
    "id": "api.system.logs.invalidFilter",
    "translation": "Invalid log filter"
  },
  {
    "id": "api.templates.license_up_for_renewal_contact_sales",
    "translation": "Contact Sales"
  },
  {
    "id": "model.license_record.is_valid.bytes.app_error",
    "translation": "Invalid value for bytes when uploading a licence."
  },
  {
    "id": "app.oauth.remove_auth_data_by_client_id.app_error",
    "translation": "Unable to remove OAuth data."
  },
  {
    "id": "api.license.request-trial.bad-request.business-email",
    "translation": "Invalid business email for trial"
  },
  {
    "id": "model.config.is_valid.elastic_search.ignored_indexes_dash_prefix.app_error",
    "translation": "Ignored indexes for purge should not start with dash."
  },
  {
    "id": "app.save_config.plugin_hook_error",
    "translation": "An error occurred running the plugin hook on configuration save."
  },
  {
    "id": "api.user.invalidate_password_recovery_tokens_delete.error",
    "translation": "Unable to remove token when invalidating password recovery tokens"
  },
  {
    "id": "ent.elasticsearch.max_version.app_error",
    "translation": "{{.Backend}} version {{.Version}} is higher than max supported version of {{.MaxVersion}}"
  },
  {
    "id": "model.config.is_valid.local_mode_socket.app_error",
    "translation": "Unable to locate local socket file directory."
  },
  {
    "id": "api.post.post_priority.priority_post_not_allowed_for_user.request_error",
    "translation": "User is not allowed to create a priority post or persistent notification."
  },
  {
    "id": "api.post.post_priority.priority_post_only_allowed_for_root_post.request_error",
    "translation": "Only root posts are allowed to have priority."
  },
  {
    "id": "api.user.invalidate_password_recovery_tokens_parse.error",
    "translation": "Unable to parse token when invalidating password recovery tokens"
  },
  {
    "id": "app.post_priority.delete_persistent_notification_post.app_error",
    "translation": "Failed to delete persistent notification post"
  },
  {
    "id": "api.error_no_organization_name_provided_for_self_hosted_onboarding",
    "translation": "Error: no organisation name provided for self-hosted onboarding."
  },
  {
    "id": "app.file_info.get.gif.app_error",
    "translation": "Could not decode gif."
  },
  {
    "id": "app.plugin.skip_installation.app_error",
    "translation": "Skipping installation of plugin {{.Id}} because the existing version is equal or newer."
  },
  {
    "id": "api.post.post_priority.max_recipients_persistent_notification_post.request_error",
    "translation": "Persistent notification post allows maximum of {{.MaxRecipients}} recipients."
  },
  {
    "id": "api.post.post_priority.min_recipients_persistent_notification_post.request_error",
    "translation": "Persistent notification post must have at minimum 1 recipient."
  },
  {
    "id": "api.command_exportlink.desc",
    "translation": "Generate a link to download a export."
  },
  {
    "id": "api.command_exportlink.driver.app_error",
    "translation": "The file store driver does not support link generation."
  },
  {
    "id": "api.command_exportlink.empty.app_error",
    "translation": "No export file has been found."
  },
  {
    "id": "api.command_exportlink.hint",
    "translation": "[job-id|zip filename|{{.LatestMsg}}]"
  },
  {
    "id": "api.command_exportlink.invalid.app_error",
    "translation": "Unable to locate the file you requested."
  },
  {
    "id": "api.command_exportlink.link.text",
    "translation": "You can download your file here: {{.Link}}.\nThis link will expire in {{.Expiration}}."
  },
  {
    "id": "api.command_exportlink.list.app_error",
    "translation": "Unable to retrieve the export list."
  },
  {
    "id": "api.command_exportlink.name",
    "translation": "exportlink"
  },
  {
    "id": "api.command_exportlink.permission.app_error",
    "translation": "You lack sufficient permissions to run this command."
  },
  {
    "id": "api.command_exportlink.presign.app_error",
    "translation": "Unable to generate presign URL."
  },
  {
    "id": "app.channel.get_channels_member_count.existing.app_error",
    "translation": "Unable to find member count for given channels."
  },
  {
    "id": "app.channel.get_channels_member_count.find.app_error",
    "translation": "Unable to find member count."
  },
  {
    "id": "app.channel.update_member.app_error",
    "translation": "Unable to update the channel member."
  },
  {
    "id": "app.channel.update_member.notify_props_limit_exceeded.app_error",
    "translation": "Unable to update the channel member, notify props size limit exceeded."
  },
  {
    "id": "app.eport.generate_presigned_url.config.app_error",
    "translation": "This action requires the use of a dedicated export store."
  },
  {
    "id": "app.eport.generate_presigned_url.driver.app_error",
    "translation": "Your export store driver does not support presign URL generation."
  },
  {
    "id": "app.eport.generate_presigned_url.featureflag.app_error",
    "translation": "This feature is restricted by a feature flag."
  },
  {
    "id": "app.eport.generate_presigned_url.fileexist.app_error",
    "translation": "Unable to check if the file exists."
  },
  {
    "id": "app.eport.generate_presigned_url.link.app_error",
    "translation": "Unable to generate the presigned URL."
  },
  {
    "id": "app.eport.generate_presigned_url.notfound.app_error",
    "translation": "The export file was not found."
  },
  {
    "id": "model.channel_member.is_valid.notify_props.app_error",
    "translation": "Notify props size limit exceeded."
  },
  {
    "id": "model.config.is_valid.persistent_notifications_recipients.app_error",
    "translation": "Invalid maximum number of recipients for persistent notifications. Must be a positive number."
  },
  {
    "id": "api.post.post_priority.persistent_notification_validation_error.request_error",
    "translation": "Persistent notification validation failed."
  },
  {
    "id": "api.post.post_priority.urgent_persistent_notification_post.request_error",
    "translation": "Persistent notification posts must have the Urgent Priority."
  },
  {
    "id": "api.user.invalidate_password_recovery_tokens.error",
    "translation": "Unable to get tokens by type when invalidating password recovery tokens"
  },
  {
    "id": "app.post.delete_post.get_team.app_error",
    "translation": "An error occurred getting the team."
  },
  {
    "id": "app.post_persistent_notification.delete_by_channel.app_error",
    "translation": "Unable to delete the persistent notifications by channel."
  },
  {
    "id": "app.post_persistent_notification.delete_by_team.app_error",
    "translation": "Unable to delete the persistent notifications by team."
  },
  {
    "id": "model.channel_member.is_valid.channel_auto_follow_threads_value.app_error",
    "translation": "Invalid channel-auto-follow-threads value."
  },
  {
    "id": "model.config.is_valid.persistent_notifications_count.app_error",
    "translation": "Invalid total number of persistent notification per post. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.persistent_notifications_interval.app_error",
    "translation": "Invalid frequency of persistent notifications. Must be at least two minutes."
  },
  {
    "id": "api.channel.gm_to_channel_conversion.not_allowed_for_user.request_error",
    "translation": "User is not allowed to convert group message to private channel"
  },
  {
    "id": "api.channel.patch_update_channel.update_direct_or_group_messages_not_allowed.app_error",
    "translation": "You are not allowed to update the name, display_name and purpose of direct or group messages."
  },
  {
    "id": "api.channel.update_channel.update_direct_or_group_messages_not_allowed.app_error",
    "translation": "You are not allowed to update the name, display_name and purpose of direct or group messages."
  },
  {
    "id": "api.command_invite.channel_constrained_user_denied",
    "translation": "This channel is managed by groups.  This user is not part of a group that is synced to this channel."
  },
  {
    "id": "api.command_invite.user_not_in_team.messageOverflow",
    "translation": "You can add {{.FirstUser}} and {{.Others}} others to this channel once they are members of the **{{.Team}}** team."
  },
  {
    "id": "api.user.login.remote_users.login.error",
    "translation": "Login failed because remote users are not allow to log in."
  },
  {
    "id": "app.channel.get_common_teams.incorrect_channel_type",
    "translation": "Channel is not a group message."
  },
  {
    "id": "app.channel.gm_conversion_set_categories.delete_all.error",
    "translation": "Couldn't delete existing sidebar categories for converted GM."
  },
  {
    "id": "app.channel.group_message_conversion.original_channel_not_gm",
    "translation": "The channel being converted is not a group message. You can only convert group messages"
  },
  {
    "id": "app.desktop_token.generateServerToken.invalid_or_expired",
    "translation": "Token does not exist or is expired"
  },
  {
    "id": "app.desktop_token.validate.no_user",
    "translation": "Cannot find a user for this token"
  },
  {
    "id": "app.file_info.set_searchable_content.app_error",
    "translation": "Unable to set the searchable content of the file."
  },
  {
    "id": "app.reaction.permanent_delete_by_user.app_error",
    "translation": "Unable to delete reactions for user."
  },
  {
    "id": "app.thread.mark_all_as_read_by_channels.app_error",
    "translation": "Unable to mark all threads as read by channel"
  },
  {
    "id": "humanize.list_join",
    "translation": "{{.OtherItems}} and {{.LastItem}}"
  },
  {
    "id": "model.config.is_valid.link_metadata_timeout.app_error",
    "translation": "Invalid value for link metadata timeout. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.user_status_away_timeout.app_error",
    "translation": "Invalid value for user status away timeout. Must be a positive number."
  },
  {
    "id": "app.channel.get_channels_with_unreads_and_with_mentions.app_error",
    "translation": "Unable to check unreads and mentions"
  },
  {
    "id": "api.channel.group_message.converted.to_private_channel",
    "translation": "{{.ConvertedByUsername}} created this channel from a group message with {{.GMMembers}}."
  },
  {
    "id": "api.command_invite.successOverflow",
    "translation": "{{.FirstUser}} and {{.Others}} added to {{.Channel}} channel."
  },
  {
    "id": "api.command_invite.user_already_in_channel.overflow",
    "translation": "{{.FirstUser}} and {{.Others}} others are already in the channel."
  },
  {
    "id": "app.channel.get_common_teams.store_get_common_teams_error",
    "translation": "Couldn't fetch common teams."
  },
  {
    "id": "app.channel.group_message_conversion.channel_member_missing",
    "translation": "Cannot find user's channel membership"
  },
  {
    "id": "app.channel.group_message_conversion.incorrect_team",
    "translation": "The specified team ID in conversion request does not contain all the group message members"
  },
  {
    "id": "app.channel.group_message_conversion.post_message.error",
    "translation": "Failed to create group message to channel conversion post"
  },
  {
    "id": "app.desktop_token.validate.invalid",
    "translation": "Token is not valid or is expired"
  },
  {
    "id": "app.import.import_channel.deleting.app_error",
    "translation": "Unable to archive imported channel."
  },
  {
    "id": "model.config.is_valid.log.advanced_logging.json",
    "translation": "Failed to parse JSON: {{.Error}}"
  },
  {
    "id": "model.config.is_valid.log.advanced_logging.parse",
    "translation": "Invalid format: {{.Error}}"
  },
  {
    "id": "api.emoji.get_multiple_by_name_too_many.request_error",
    "translation": "Unable to get that many emojis by name. Only {{.MaxNames}} emojis can be requested at once."
  },
  {
    "id": "api.context.ip_filtering.apply_ip_filters.app_error",
    "translation": "An error occurred while applying IP Filters"
  },
  {
    "id": "api.context.ip_filtering.get_ip_filters.app_error",
    "translation": "An error occurred while fetching IP Filters"
  },
  {
    "id": "api.context.ip_filtering.get_my_ip.failed",
    "translation": "An error occurred while fetching the client's IP address"
  },
  {
    "id": "api.context.ip_filtering.not_available.app_error",
    "translation": "IP Filtering is unavailable on this server"
  },
  {
    "id": "api.templates.ip_filters_changed.button",
    "translation": "Review changes"
  },
  {
    "id": "api.templates.ip_filters_changed.subTitle",
    "translation": "@{{ .InitiatingUsername }} changed the IP filtering settings for your workspace at the URL: {{ .SiteURL }}"
  },
  {
    "id": "api.templates.ip_filters_changed.subject",
    "translation": "Changes to Your Workspace's IP Filters"
  },
  {
    "id": "api.templates.ip_filters_changed.title",
    "translation": "IP filtering changes for your workspace"
  },
  {
    "id": "api.templates.ip_filters_changed_footer.contact_support",
    "translation": "Contact support"
  },
  {
    "id": "api.templates.ip_filters_changed_footer.log_in_to_customer_portal",
    "translation": "Log in to the customer portal to reset IP filtering"
  },
  {
    "id": "api.templates.ip_filters_changed_footer.send_an_email_to",
    "translation": "Send an email to {{ .InitiatingUserEmail }}"
  },
  {
    "id": "api.templates.ip_filters_changed_footer.title",
    "translation": "Having trouble accessing your workspace?"
  },
  {
    "id": "app.login.doLogin.updateLastLogin.error",
    "translation": "Could not update last login timestamp"
  },
  {
    "id": "app.reaction.save.save.too_many_reactions",
    "translation": "Reaction limit has been reached for this post."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.audience.empty",
    "translation": "Audience must not be empty."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.name.error",
    "translation": "Invalid name."
  },
  {
    "id": "app.plugin.subpath_parse.app_error",
    "translation": "Failed to parse SiteURL subpath"
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.audience.error",
    "translation": "Some audience URL is incorrect."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.client_id.error",
    "translation": "Invalid client ID."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.client_secret.error",
    "translation": "Invalid client secret."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.create_at.error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.creator_id.error",
    "translation": "Invalid creator ID."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.grant_type.error",
    "translation": "Invalid grant type."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.id.error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.oauth_token_url.error",
    "translation": "Invalid OAuth token URL."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.password_credentials.error",
    "translation": "Invalid password credentials."
  },
  {
    "id": "model.outgoing_oauth_connection.is_valid.update_at.error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "api.getUsersForReporting.invalid_team_filter",
    "translation": "Invalid team ID provided."
  },
  {
    "id": "model.config.is_valid.message_export.global_relay.customer_type_custom.app_error",
    "translation": "If GlobalRelaySettings.CustomerType is 'CUSTOM', then GlobalRelaySettings.CustomSMTPServerName and GlobalRelaySettings.CustomSMTPPort must be set."
  },
  {
    "id": "api.getUsersForReporting.invalid_active_filter",
    "translation": "Cannot hide both active and inactive users."
  },
  {
    "id": "api.custom_status.set_custom_statuses.emoji_not_found",
    "translation": "Failed to update the custom status. An emoji with the given name does not exist."
  },
  {
    "id": "app.post.move_thread.from_another_channel",
    "translation": "This thread was moved from another channel"
  },
  {
    "id": "app.post.move_thread_command.direct_or_group.one_message",
    "translation": "A message has been moved to a Direct/Group Message\n"
  },
  {
    "id": "app.report.get_user_count_for_report.store_error",
    "translation": "Failed to fetch user count."
  },
  {
    "id": "app.report.get_user_report.store_error",
    "translation": "Failed to fetch user report."
  },
  {
    "id": "api.command_share.channel_not_shared.error",
    "translation": "Cannot invite remote because channel {{.ChannelID}} is not shared."
  },
  {
    "id": "api.payload.parse.error",
    "translation": "An error occurred while parsing the payload."
  },
  {
    "id": "api.post.move_thread.disabled.app_error",
    "translation": "Thread moving is disabled"
  },
  {
    "id": "api.post.move_thread.no_permission",
    "translation": "You do not have permission to move this thread."
  },
  {
    "id": "api.roles.get_multiple_by_name_too_many.request_error",
    "translation": "Unable to get that many roles by name. Only {{.MaxNames}} roles can be requested at once."
  },
  {
    "id": "ent.outgoing_oauth_connections.get_connection.app_error",
    "translation": "There was an error retrieving the outgoing OAuth connection."
  },
  {
    "id": "model.config.is_valid.data_retention.file_retention_both_zero.app_error",
    "translation": "File retention days and file retention hours cannot both be 0."
  },
  {
    "id": "model.config.is_valid.data_retention.message_retention_both_zero.app_error",
    "translation": "Message retention days and message retention hours cannot both be 0."
  },
  {
    "id": "model.config.is_valid.data_retention.message_retention_hours_too_low.app_error",
    "translation": "Message retention hours cannot be less than 0"
  },
  {
    "id": "model.config.is_valid.data_retention.message_retention_misconfiguration.app_error",
    "translation": "Message retention days and message retention hours cannot both be greater than 0."
  },
  {
    "id": "ent.outgoing_oauth_connections.delete_connection.app_error",
    "translation": "There was an error while deleting the outgoing OAuth connection."
  },
  {
    "id": "ent.outgoing_oauth_connections.get_connection.not_found.app_error",
    "translation": "The outgoing OAuth connection was not found."
  },
  {
    "id": "ent.outgoing_oauth_connections.get_connections.app_error",
    "translation": "There was an error retrieving the outgoing OAuth connections."
  },
  {
    "id": "ent.outgoing_oauth_connections.save_connection.app_error",
    "translation": "There was an error saving the outgoing OAuth connection."
  },
  {
    "id": "ent.outgoing_oauth_connections.update_connection.app_error",
    "translation": "There was an error updating the outgoing OAuth connection."
  },
  {
    "id": "model.config.is_valid.data_retention.file_retention_hours_too_low.app_error",
    "translation": "File retention hours cannot be less than 0"
  },
  {
    "id": "model.config.is_valid.data_retention.file_retention_misconfiguration.app_error",
    "translation": "File retention days and file retention hours cannot both be greater than 0."
  },
  {
    "id": "model.config.is_valid.max_payload_size.app_error",
    "translation": "Invalid max payload size for service settings. Must be a whole number greater than zero."
  },
  {
    "id": "model.config.is_valid.move_thread.domain_invalid.app_error",
    "translation": "Invalid domain for move thread settings"
  },
  {
    "id": "model.config.is_valid.outgoing_integrations_request_timeout.app_error",
    "translation": "Invalid Outgoing Integrations Request Timeout for service settings. Must be a positive number."
  },
  {
    "id": "model.user_report_options.is_valid.invalid_sort_column",
    "translation": "Provided sort column is not valid."
  },
  {
    "id": "app.post.move_thread_command.error",
    "translation": "Unable to remove thread"
  },
  {
    "id": "api.team.user.missing_account",
    "translation": "Unable to find the user."
  },
  {
    "id": "api.user.get_profile_image_path.app_error",
    "translation": "An error occurred while checking if a user has a custom profile image."
  },
  {
    "id": "app.channel.patch_channel_members_notify_props.app_error",
    "translation": "Unable to update channel members' notify props."
  },
  {
    "id": "app.channel.patch_channel_members_notify_props.too_many",
    "translation": "Unable to update that many channel members. Only {{.Max}} channel members can be updated at once."
  },
  {
    "id": "api.getUsersForReporting.invalid_page_size",
    "translation": "Page size is invalid or too large."
  },
  {
    "id": "api.command_remote.confirm_invitation.error",
    "translation": "Could not confirm invitation: {{.Error}}"
  },
  {
    "id": "api.context.outgoing_oauth_connection.list_connections.app_error",
    "translation": "There was an error while listing outgoing OAuth connections."
  },
  {
    "id": "api.context.outgoing_oauth_connection.list_connections.input_error",
    "translation": "Invalid input parameters."
  },
  {
    "id": "model.reporting_base_options.is_valid.bad_date_range",
    "translation": "Date range provided is invalid."
  },
  {
    "id": "api.acknowledgement.save.archived_channel.app_error",
    "translation": "You cannot save an acknowledgment in an archived channel."
  },
  {
    "id": "api.team.update_team_member_roles.guest.app_error",
    "translation": "Invalid team member update: a guest cannot be made team member or team admin, please promote as a user first."
  },
  {
    "id": "app.report.date_range.previous_month",
    "translation": "the previous month"
  },
  {
    "id": "app.report.date_range.last_6_months",
    "translation": "the last 6 months"
  },
  {
    "id": "app.report.send_report_to_user.missing_date_range",
    "translation": "Missing date range"
  },
  {
    "id": "app.report.send_report_to_user.failed_to_save",
    "translation": "Failed to save file info."
  },
  {
    "id": "app.report.start_users_batch_export.job_exists",
    "translation": "Job already exists for this user and date range."
  },
  {
    "id": "app.report.send_report_to_user.missing_user_id",
    "translation": "No user ID to send the report to"
  },
  {
    "id": "app.report.start_users_batch_export.started_export",
    "translation": "You've started an export of user data for {{.DateRange}}. When the export is complete, a CSV file will be delivered to you in this direct message."
  },
  {
    "id": "app.report.start_users_batch_export.license_error",
    "translation": "Batch reporting export only available to Pro and Enterprise."
  },
  {
    "id": "app.channel.add_member.deleted_user.app_error",
    "translation": "Unable to add the user as a member of the channel."
  },
  {
    "id": "app.post.move_thread_command.direct_or_group.multiple_messages",
    "translation": "A thread with {{.NumMessages}} messages has been moved to a Direct/Group Message\n"
  },
  {
    "id": "app.report.date_range.last_30_days",
    "translation": "the last 30 days"
  },
  {
    "id": "app.post.move_thread_command.channel.multiple_messages",
    "translation": "A thread with {{.NumMessages}} messages has been moved: {{.Link}}\n"
  },
  {
    "id": "app.post.move_thread_command.channel.one_message",
    "translation": "A message has been moved: {{.Link}}\n"
  },
  {
    "id": "app.report.date_range.all_time",
    "translation": "all time"
  },
  {
    "id": "app.compile_csv_chunks.header_error",
    "translation": "Failed to write CSV headers."
  },
  {
    "id": "app.compile_report_chunks.unsupported_format",
    "translation": "Unsupported report format."
  },
  {
    "id": "app.report.send_report_to_user.export_finished",
    "translation": "Your export is ready. The CSV file contains user data for {{.DateRange}}. Click on the link below to download the report."
  },
  {
    "id": "app.save_csv_chunk.write_error",
    "translation": "Failed to write CSV chunk."
  },
  {
    "id": "app.save_report_chunk.unsupported_format",
    "translation": "Unsupported report format."
  },
  {
    "id": "api.context.outgoing_oauth_connection.create_connection.input_error",
    "translation": "Invalid input parameters."
  },
  {
    "id": "api.context.outgoing_oauth_connection.not_available.configuration_disabled",
    "translation": "Outgoing OAuth connections are not available on this server."
  },
  {
    "id": "api.context.outgoing_oauth_connection.update_connection.app_error",
    "translation": "There was an error while updating the outgoing OAuth connection."
  },
  {
    "id": "api.context.outgoing_oauth_connection.update_connection.input_error",
    "translation": "Invalid input parameters."
  },
  {
    "id": "ent.outgoing_oauth_connections.connection_matching_audience_exists.not_found",
    "translation": "There is no outgoing OAuth connection for the provided audience."
  },
  {
    "id": "ent.outgoing_oauth_connections.feature_disabled",
    "translation": "Outgoing OAuth connections are not available on this server."
  },
  {
    "id": "ent.outgoing_oauth_connections.get_connection_for_audience.not_found.app_error",
    "translation": "The outgoing OAuth connection for the provided audience was not found."
  },
  {
    "id": "ent.outgoing_oauth_connections.license_disable.app_error",
    "translation": "Your licence does not support outgoing OAuth connections."
  },
  {
    "id": "ent.outgoing_oauth_connections.save_connection.audience_duplicated",
    "translation": "There is already an outgoing OAuth connection for the provided audience: {{ .Audience }}"
  },
  {
    "id": "ent.outgoing_oauth_connections.save_connection.audience_invalid",
    "translation": "The provided audience is invalid: {{ .Error }}"
  },
  {
    "id": "ent.outgoing_oauth_connections.update_connection.audience_invalid",
    "translation": "The provided audience is invalid: {{ .Error }}"
  },
  {
    "id": "api.context.outgoing_oauth_connection.create_connection.app_error",
    "translation": "An error occurred while creating the outgoing OAuth connection."
  },
  {
    "id": "api.context.outgoing_oauth_connection.delete_connection.app_error",
    "translation": "An error occurred while deleting the outgoing OAuth connection."
  },
  {
    "id": "api.context.outgoing_oauth_connection.validate_connection_credentials.app_error",
    "translation": "An error occurred while validating the outgoing OAuth connection credentials."
  },
  {
    "id": "api.emoji.upload.seek.app_error",
    "translation": "Unable to seek to file start."
  },
  {
    "id": "api.saml.invalid_email_token.app_error",
    "translation": "Invalid email_token"
  },
  {
    "id": "ent.outgoing_oauth_connections.get_connection_for_audience.app_error",
    "translation": "An error occurred while retrieving the outgoing OAuth connection for the audience."
  },
  {
    "id": "ent.outgoing_oauth_connections.update_connection.audience_duplicated",
    "translation": "There is already an outgoing OAuth connection for the provided audience: {{ .Audience }}"
  },
  {
    "id": "api.context.outgoing_oauth_connection.validate_connection_credentials.input_error",
    "translation": "Couldn't retrieve credentials with the specified connection configuration."
  },
  {
    "id": "ent.outgoing_oauth_connections.authenticate.app_error",
    "translation": "An error occurred while authenticating the outgoing oauth connection: {{ .Error }}"
  },
  {
    "id": "ent.outgoing_oauth_connections.connection_matching_audience_exists.app_error",
    "translation": "There is already an outgoing OAuth connection for the provided audience."
  },
  {
    "id": "app.channel.bookmark.update_sort.invalid_input.app_error",
    "translation": "Could not sort the bookmark. Invalid input."
  },
  {
    "id": "ent.elasticsearch.purge_indexes.unknown_index",
    "translation": "Failed to delete an unknown index specified"
  },
  {
    "id": "model.channel_bookmark.is_valid.link_file.app_error",
    "translation": "Cannot set a link and a file in the same bookmark."
  },
  {
    "id": "api.channel.bookmark.channel_bookmark.license.error",
    "translation": "Your licence does not support channel bookmarks."
  },
  {
    "id": "api.channel.bookmark.create_channel_bookmark.direct_or_group_channels.forbidden.app_error",
    "translation": "User is not allowed to create a channel bookmark."
  },
  {
    "id": "api.channel.bookmark.create_channel_bookmark.direct_or_group_channels_by_guests.forbidden.app_error",
    "translation": "Failed to create the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.create_channel_bookmark.forbidden.app_error",
    "translation": "Failed to create the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.delete_channel_bookmark.direct_or_group_channels.forbidden.app_error",
    "translation": "Failed to delete the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.delete_channel_bookmark.direct_or_group_channels_by_guests.forbidden.app_error",
    "translation": "Failed to delete the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.delete_channel_bookmark.forbidden.app_error",
    "translation": "Failed to delete the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark.direct_or_group_channels.forbidden.app_error",
    "translation": "Failed to update the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark.direct_or_group_channels_by_guests.forbidden.app_error",
    "translation": "Failed to update the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark.forbidden.app_error",
    "translation": "Failed to update the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark_sort_order.direct_or_group_channels.forbidden.app_error",
    "translation": "Failed to update the channel bookmark's sort order."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark_sort_order.direct_or_group_channels_by_guests.forbidden.app_error",
    "translation": "Failed to update the channel bookmark's sort order."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark_sort_order.forbidden.app_error",
    "translation": "Failed to update the channel bookmark's sort order."
  },
  {
    "id": "app.channel.bookmark.delete.app_error",
    "translation": "Could not delete bookmark."
  },
  {
    "id": "app.channel.bookmark.get.app_error",
    "translation": "Could not get bookmark."
  },
  {
    "id": "app.channel.bookmark.get_existing.app_err",
    "translation": "Could not get existing bookmark to update."
  },
  {
    "id": "basic_security_check.url.too_long_error",
    "translation": "URL is too long"
  },
  {
    "id": "model.channel_bookmark.is_valid.channel_id.app_error",
    "translation": "Invalid channel ID."
  },
  {
    "id": "model.channel_bookmark.is_valid.create_at.app_error",
    "translation": "Create at must be a valid time."
  },
  {
    "id": "model.channel_bookmark.is_valid.display_name.app_error",
    "translation": "Display name missing."
  },
  {
    "id": "model.channel_bookmark.is_valid.file_id.missing_or_invalid.app_error",
    "translation": "File ID is missing or invalid."
  },
  {
    "id": "model.channel_bookmark.is_valid.id.app_error",
    "translation": "Invalid ID."
  },
  {
    "id": "model.channel_bookmark.is_valid.update_at.app_error",
    "translation": "Update at must be a valid time."
  },
  {
    "id": "model.channel_bookmark.is_valid.type.app_error",
    "translation": "Invalid type."
  },
  {
    "id": "api.team.update_team_member_roles.user_and_guest.app_error",
    "translation": "Invalid team member update: A guest cannot be set for a single team, a System Admin must promote or demote users to/from guests."
  },
  {
    "id": "api.command_share.invite_remote_to_channel.error",
    "translation": "Cannot invite remote to channel: {{.Error}}"
  },
  {
    "id": "api.channel.update_channel_member_roles.user_and_guest.app_error",
    "translation": "Invalid channel member update: A guest cannot be set for a single channel, a System Admin must promote or demote users to/from guests."
  },
  {
    "id": "api.channel.update_channel_member_roles.guest.app_error",
    "translation": "Invalid channel member update: A guest cannot be made team member or team admin, please promote as a user first."
  },
  {
    "id": "api.server.cws.disabled",
    "translation": "Interactions with the Mattermost Customer Portal have been disabled by the system admin."
  },
  {
    "id": "model.user.is_valid.invalidProperty.app_error",
    "translation": "Invalid props (custom status)"
  },
  {
    "id": "api.config.update.elasticsearch.autocomplete_cannot_be_enabled_error",
    "translation": "Channel autocomplete cannot be enabled as channel index schema is out of date. It is recommended to regenerate your channel index. See the Mattermost changelog for more information"
  },
  {
    "id": "app.channel.bookmark.save.app_error",
    "translation": "Could not save bookmark."
  },
  {
    "id": "app.channel.bookmark.update.app_error",
    "translation": "Could not update bookmark."
  },
  {
    "id": "app.channel.bookmark.update_sort.app_error",
    "translation": "Could not sort the bookmark."
  },
  {
    "id": "app.channel.bookmark.update_sort.missing_bookmark.app_error",
    "translation": "Could not sort the bookmark. Not found."
  },
  {
    "id": "ent.elasticsearch.purge_index.delete_failed",
    "translation": "Failed to delete a search index"
  },
  {
    "id": "model.channel_bookmark.is_valid.image_url.app_error",
    "translation": "Invalid image URL."
  },
  {
    "id": "model.channel_bookmark.is_valid.link_url.missing_or_invalid.app_error",
    "translation": "Link URL is missing or invalid."
  },
  {
    "id": "model.channel_bookmark.is_valid.original_id.app_error",
    "translation": "Invalid original ID."
  },
  {
    "id": "model.channel_bookmark.is_valid.owner_id.app_error",
    "translation": "Invalid owner ID."
  },
  {
    "id": "model.channel_bookmark.is_valid.parent_id.app_error",
    "translation": "Invalid parent ID."
  },
  {
    "id": "api.user.create_user.user_limits.exceeded",
    "translation": "Can't create user. Server exceeds safe user limit. Contact your administrator with: ERROR_SAFETY_LIMITS_EXCEEDED."
  },
  {
    "id": "app.session.get_lru_sessions.app_error",
    "translation": "Unable to get least recently used sessions."
  },
  {
    "id": "app.import.import_line.null_role.error",
    "translation": "Import data line has type 'role' but the role object is null."
  },
  {
    "id": "api.user.auth_switch.not_available.email_signup_disabled.app_error",
    "translation": "Authentication Transfer is not available as email signup is disabled."
  },
  {
    "id": "api.user.auth_switch.not_available.login_disabled.app_error",
    "translation": "Authentication Transfer is not available as neither email login nor username login is enabled."
  },
  {
    "id": "api4.plugin.reattachPlugin.invalid_request",
    "translation": "Failed to parse request"
  },
  {
    "id": "app.plugin.reattach.app_error",
    "translation": "Failed to reattach plugin"
  },
  {
    "id": "app.scheme.get_all_page.app_error",
    "translation": "Unable to get page of schemes."
  },
  {
    "id": "model.scheme.is_valid.app_error",
    "translation": "Invalid scheme."
  },
  {
    "id": "plugin_reattach_request.is_valid.manifest.app_error",
    "translation": "Missing manifest"
  },
  {
    "id": "plugin_reattach_request.is_valid.plugin_reattach_config.app_error",
    "translation": "Missing plugin reattach config"
  },
  {
    "id": "model.user.is_valid.pwd_min_length.app_error",
    "translation": "Your password must contain at least {{.Min}} characters."
  },
  {
    "id": "model.user.is_valid.pwd_max_length.app_error",
    "translation": "Your password can't contain more than 72 characters."
  },
  {
    "id": "api.post.check_for_out_of_team_mentions.message.multiple",
    "translation": "@{{.Usernames}} and @{{.LastUsername}} weren't notified by this mention because they aren't members of this team."
  },
  {
    "id": "api.post.check_for_out_of_team_mentions.message.one",
    "translation": "@{{.Username}} wasn't notified by this mention because they aren't a member of this team."
  },
  {
    "id": "app.user.update_active.user_limit.exceeded",
    "translation": "Can't activate user. Server exceeds safe user limit. ERROR_SAFETY_LIMITS_EXCEEDED."
  },
  {
    "id": "api.channel.create_channel.missing_display_name.error",
    "translation": "Missing display_name in request body"
  },
  {
    "id": "api.channel.create_channel.missing_team_id.error",
    "translation": "Missing team_id in request body"
  },
  {
    "id": "app.limits.get_app_limits.user_count.store_error",
    "translation": "Failed to get user count"
  },
  {
    "id": "app.import.attachment.file_stat.error",
    "translation": "Error reading the file status: '{{.FilePath}}'"
  },
  {
    "id": "app.import.attachment.seek_file.error",
    "translation": "Error seeking the file: '{{.FilePath}}'"
  },
  {
    "id": "store.sql_team.save_team.existing.app_error",
    "translation": "A team with this URL already exists."
  },
  {
    "id": "api.job.status.invalid",
    "translation": "Invalid status set"
  },
  {
    "id": "app.job.update_status.app_error",
    "translation": "Unable to update job status. Invalid status set"
  },
  {
    "id": "app.user.update.countAdmins.app_error",
    "translation": "Error determining number of System Admin accounts."
  },
  {
    "id": "app.user.update.lastAdmin.app_error",
    "translation": "Cannot demote last System Admin."
  },
  {
    "id": "app.user.save.groupname.app_error",
    "translation": "Unable to determine if that username already exists"
  },
  {
    "id": "api.job.unable_to_manage_job.incorrect_job_type",
    "translation": "You do not have permission to manage this job type"
  },
  {
    "id": "api.system.logs.download_bytes_buffer.app_error",
    "translation": "Failed to write logs to buffer"
  },
  {
    "id": "api.user.update_password.password_hash.app_error",
    "translation": "An internal error occurred while saving the password."
  },
  {
    "id": "model.user.pre_save.password_too_long.app_error",
    "translation": "Your password must contain no more than 72 characters."
  },
  {
    "id": "api.get_site_url_error",
    "translation": "Could not retrieve the instance site URL"
  },
  {
    "id": "api.remote_cluster.accept_invitation_error",
    "translation": "Could not accept the remote cluster invitation"
  },
  {
    "id": "api.remote_cluster.base64_decode_error",
    "translation": "Could not decode the base64 string"
  },
  {
    "id": "api.remote_cluster.cluster_not_deleted",
    "translation": "Remote cluster has not been deleted"
  },
  {
    "id": "api.remote_cluster.encrypt_invite_error",
    "translation": "Could not encrypt the remote cluster invite using the provided password"
  },
  {
    "id": "api.remote_cluster.get.not_found",
    "translation": "Remote Cluster not found"
  },
  {
    "id": "api.remote_cluster.invite_decrypt_error",
    "translation": "Could not decrypt the remote cluster invite using the provided password"
  },
  {
    "id": "app.import.custom_status.error",
    "translation": "Unable to set custom status."
  },
  {
    "id": "model.user.pre_save.password_hash.app_error",
    "translation": "An internal error occurred while saving the password."
  },
  {
    "id": "model.config.is_valid.elastic_search.invalid_backend.app_error",
    "translation": "Invalid search backend. Must be either elasticsearch or opensearch."
  },
  {
    "id": "api.context.request_body_too_large.app_error",
    "translation": "Unable to process request. Request body too large."
  },
  {
    "id": "model.config.is_valid.max_url_length.app_error",
    "translation": "Invalid max URL length for service settings. Must be a whole number greater than zero."
  },
  {
    "id": "model.preference.is_valid.limit_visible_dms_gms.app_error",
    "translation": "Invalid value for limit_visible_dms_gms."
  },
  {
    "id": "model.config.is_valid.cache_type.app_error",
    "translation": "Cache type must be either lru or redis."
  },
  {
    "id": "model.config.is_valid.empty_redis_address.app_error",
    "translation": "RedisAddress must be specified for redis cache type."
  },
  {
    "id": "model.config.is_valid.invalid_redis_db.app_error",
    "translation": "Redis DB must have a value greater or equal to zero."
  },
  {
    "id": "app.webhooks.get_incoming_count.app_error",
    "translation": "Unable to get the webhook for teamID={{.TeamID}}, userID={{.UserID}}, err={{.Error}}."
  },
  {
    "id": "api.upload.create.upload_channel_not_shared_with_remote.app_error",
    "translation": "Failed to upload file. Upload channel is not shared with remote."
  },
  {
    "id": "app.import.import_direct_channel.no_members.error",
    "translation": "There are no members for the direct channel"
  },
  {
    "id": "app.post.save.thread_membership.app_error",
    "translation": "Unable to save thread membership for post."
  },
  {
    "id": "app.session.set_extra_session_prop.app_error",
    "translation": "Unable to update the extra session properties."
  },
  {
    "id": "app.thread.get_threadmembers_for_export.app_error",
    "translation": "Unable to get thread members for export."
  },
  {
    "id": "model.thread.is_valid.post_id.app_error",
    "translation": "Invalid post ID."
  },
  {
    "id": "model.thread.is_valid.user_id.app_error",
    "translation": "Invalid user ID."
  },
  {
    "id": "api.user.login_with_desktop_token.not_oauth_or_saml_user.app_error",
    "translation": "User is not an OAuth or SAML user."
  },
  {
    "id": "api.shared_channel.get_shared_channel_remotes_error",
    "translation": "Could not fetch shared channel remotes"
  },
  {
    "id": "api.shared_channel.has_remote_error",
    "translation": "Could not determine if channel is shared with the remote"
  },
  {
    "id": "api.shared_channel.invite_remote_to_channel_error",
    "translation": "Could not invite remote to channel"
  },
  {
    "id": "api.shared_channel.uninvite_remote_to_channel_error",
    "translation": "Could not uninvite remote to channel"
  },
  {
    "id": "app.import.import_direct_channel.get_channel_members.error",
    "translation": "Failed to get channel members for direct channel"
  },
  {
    "id": "api.plugin.upload.file_too_large.app_error",
    "translation": "Uploaded plugin size exceeds limit. This limit can be changed in the System Console via File Storage > Maximum File Size"
  },
  {
    "id": "api.oauth.get_access_token.bad_request.app_error",
    "translation": "invalid_request: Bad request."
  },
  {
    "id": "api.remote_cluster.create_invite_error",
    "translation": "Could not create remote cluster invite"
  },
  {
    "id": "api.scheduled_posts.feature_disabled",
    "translation": "Scheduled posts feature is disabled"
  },
  {
    "id": "api.scheduled_posts.license_error",
    "translation": "Scheduled posts feature requires a licence"
  },
  {
    "id": "app.bot.update.app_error",
    "translation": "Unable to update the bot."
  },
  {
    "id": "app.delete_scheduled_post.delete_error",
    "translation": "Failed to delete scheduled post from database."
  },
  {
    "id": "app.delete_scheduled_post.delete_permission.error",
    "translation": "You do not have permission to delete this resource."
  },
  {
    "id": "app.delete_scheduled_post.existing_scheduled_post.not_exist",
    "translation": "Scheduled post does not exist."
  },
  {
    "id": "app.delete_scheduled_post.get_scheduled_post.error",
    "translation": "Unable to fetch existing scheduled post from database."
  },
  {
    "id": "app.get_user_team_scheduled_posts.error",
    "translation": "An error occurred while fetching scheduled posts."
  },
  {
    "id": "app.import.import_bot.owner_could_not_found.error",
    "translation": "Unable to find owner of the bot"
  },
  {
    "id": "app.import.import_line.null_bot.error",
    "translation": "Import data line has type 'bot' but the bot object is null"
  },
  {
    "id": "app.import.validate_bot_import_data.owner_missing.error",
    "translation": "Bot owner is missing"
  },
  {
    "id": "app.save_scheduled_post.channel_deleted.app_error",
    "translation": "Cannot schedule post in an archived channel."
  },
  {
    "id": "app.save_scheduled_post.save.app_error",
    "translation": "Error occurred saving the scheduled post."
  },
  {
    "id": "app.update_scheduled_post.existing_scheduled_post.not_exist",
    "translation": "Scheduled post does not exist."
  },
  {
    "id": "app.update_scheduled_post.get_scheduled_post.error",
    "translation": "Unable to fetch existing scheduled post from database."
  },
  {
    "id": "app.update_scheduled_post.update.error",
    "translation": "Failed to save updated scheduled post in database."
  },
  {
    "id": "app.update_scheduled_post.update_permission.error",
    "translation": "You do not have permission to update this resource."
  },
  {
    "id": "model.scheduled_post.is_valid.empty_post.app_error",
    "translation": "Cannot schedule an empty post. Scheduled post must have at least a message or file attachments."
  },
  {
    "id": "model.scheduled_post.is_valid.id.app_error",
    "translation": "Scheduled post must have an ID."
  },
  {
    "id": "model.scheduled_post.is_valid.processed_at.app_error",
    "translation": "Invalid processed at time."
  },
  {
    "id": "model.scheduled_post.is_valid.scheduled_at.app_error",
    "translation": "Invalid scheduled at time."
  },
  {
    "id": "api.remote_cluster.generate_invite_cluster_is_confirmed",
    "translation": "Cannot generate invite code for a confirmed cluster"
  },
  {
    "id": "api.post.delete_post.not_enabled.app_error",
    "translation": "Cannot delete post, ServiceSettings.EnableAPIPostDeletion is not enabled."
  },
  {
    "id": "app.file_info.get_by_post_id.app_error",
    "translation": "Failed to find files for post."
  },
  {
    "id": "app.file_info.permanent_delete_for_post.app_error",
    "translation": "Failed to permanently delete file for post."
  },
  {
    "id": "app.post.permanent_delete_post.error",
    "translation": "Failed to permanently delete post."
  },
  {
    "id": "api.channel.create_channel.direct_channel.remote_restricted.app_error",
    "translation": "Cannot create a direct channel with a remote user"
  },
  {
    "id": "api.channel.create_group.remote_restricted.app_error",
    "translation": "Cannot create a group channel with remote users"
  },
  {
    "id": "api.license.add_license.copy.app_error",
    "translation": "Failed to copy licence file content to buffer"
  },
  {
    "id": "api.user.update_active.cannot_modify_status_when_user_is_managed_by_ldap.app_error",
    "translation": "You cannot modify user status. User is managed by LDAP"
  },
  {
    "id": "app.post.create_post.shared_dm_or_gm.app_error",
    "translation": "Cannot create the post in a DM or GM with remote users"
  },
  {
    "id": "model.remote_cluster_invite.is_valid.remote_id.app_error",
    "translation": "Invalid remote ID."
  },
  {
    "id": "model.remote_cluster_invite.is_valid.site_url.app_error",
    "translation": "Invalid site URL."
  },
  {
    "id": "model.remote_cluster_invite.is_valid.token.app_error",
    "translation": "Invalid token."
  },
  {
    "id": "app.notifications.send_test_message.errors.create_post",
    "translation": "The post cannot be created"
  },
  {
    "id": "app.notifications.send_test_message.errors.no_bot",
    "translation": "Cannot get the system bot"
  },
  {
    "id": "app.notifications.send_test_message.errors.no_channel",
    "translation": "Cannot get the system bot direct message"
  },
  {
    "id": "app.notifications.send_test_message.errors.no_user",
    "translation": "Cannot get the user"
  },
  {
    "id": "app.notifications.send_test_message.message_body",
    "translation": "If you received this test notification, it worked!"
  },
  {
    "id": "app.file_info.seek.gif.app_error",
    "translation": "Unable to seek to the beginning of the GIF data."
  },
  {
    "id": "app.scheduled_post.error_reason.channel_archived",
    "translation": "Channel is archived"
  },
  {
    "id": "app.scheduled_post.error_reason.channel_not_found",
    "translation": "Channel not found"
  },
  {
    "id": "app.scheduled_post.error_reason.invalid_post",
    "translation": "Invalid post content"
  },
  {
    "id": "app.scheduled_post.error_reason.no_channel_member",
    "translation": "Not a member of the channel"
  },
  {
    "id": "app.scheduled_post.error_reason.no_channel_permission",
    "translation": "No permission to post in channel"
  },
  {
    "id": "app.scheduled_post.error_reason.thread_deleted",
    "translation": "Thread has been deleted"
  },
  {
    "id": "app.scheduled_post.error_reason.unable_to_send",
    "translation": "Unable to send the message"
  },
  {
    "id": "app.scheduled_post.failed_messages",
    "translation": {
      "one": "Failed to send {{.Count}} scheduled post.",
      "other": "Failed to send {{.Count}} scheduled posts."
    }
  },
  {
    "id": "app.scheduled_post.error_reason.unknown",
    "translation": "Unknown Error"
  },
  {
    "id": "app.scheduled_post.error_reason.user_deleted",
    "translation": "User account is deleted"
  },
  {
    "id": "app.scheduled_post.error_reason.user_missing",
    "translation": "User does not exist"
  },
  {
    "id": "app.scheduled_post.failed_message_detail",
    "translation": {
      "one": "- {{.Count}} in channel {{.ChannelName}}. Reason: {{.ErrorReason}}",
      "other": "- {{.Count}} in channel {{.ChannelName}}. Reason: {{.ErrorReason}}"
    }
  },
  {
    "id": "app.scheduled_post.permanent_delete_by_user.app_error",
    "translation": "Unable to delete scheduled posts for user."
  },
  {
    "id": "app.scheduled_post.private_channel",
    "translation": "Private channel"
  },
  {
    "id": "app.scheduled_post.unknown_channel",
    "translation": "Unknown Channel"
  },
  {
    "id": "model.config.is_valid.storage_class.app_error",
    "translation": "Invalid storage class {{.Value}}."
  },
  {
    "id": "api.post.deduplicate_create_post.cache_error",
    "translation": "Failed to cache post after deduplicating a client repeating the same request."
  },
  {
    "id": "app.plugin.seek.app_error",
    "translation": "Unable to reset the read position to the start of the plugin bundle."
  },
  {
    "id": "web.command_webhook.general.app_error",
    "translation": "Failed to handle command webhook {{.hook_id}}."
  },
  {
    "id": "web.incoming_webhook.decode.app_error",
    "translation": "Failed to decode the payload of media type {{.media_type}} for incoming webhook {{.hook_id}}."
  },
  {
    "id": "web.incoming_webhook.general.app_error",
    "translation": "Failed to handle the payload of media type {{.media_type}} for incoming webhook {{.hook_id}}."
  },
  {
    "id": "web.incoming_webhook.media_type.app_error",
    "translation": "Failed to parse media incoming webhook {{.hook_id}}."
  },
  {
    "id": "model.draft.is_valid.message_length.app_error",
    "translation": "Draft Message property is longer than the maximum permitted length."
  },
  {
    "id": "model.post.is_valid.message_length.app_error",
    "translation": "Post Message property is longer than the maximum permitted length."
  },
  {
    "id": "api.command.execute_command.deleted.error",
    "translation": "Command can't be executed in a deleted channel."
  },
  {
    "id": "api.filter_config_error",
    "translation": "Unable to filter the configuration."
  },
  {
    "id": "app.export.export_custom_emoji.mkdir.error",
    "translation": "Unable to create a directory for custom emoji images"
  },
  {
    "id": "app.custom_profile_attributes.cpa_group_id.app_error",
    "translation": "Cannot register Custom Profile Attributes property group"
  },
  {
    "id": "app.custom_profile_attributes.get_property_field.app_error",
    "translation": "Unable to get Custom Profile Attribute field"
  },
  {
    "id": "app.custom_profile_attributes.limit_reached.app_error",
    "translation": "Custom Profile Attributes field limit reached"
  },
  {
    "id": "app.custom_profile_attributes.list_property_values.app_error",
    "translation": "Unable to get custom profile attribute values"
  },
  {
    "id": "app.custom_profile_attributes.property_field_delete.app_error",
    "translation": "Unable to delete Custom Profile Attribute field"
  },
  {
    "id": "app.custom_profile_attributes.property_field_not_found.app_error",
    "translation": "Custom Profile Attribute field not found"
  },
  {
    "id": "app.custom_profile_attributes.property_field_update.app_error",
    "translation": "Unable to update Custom Profile Attribute field"
  },
  {
    "id": "app.custom_profile_attributes.search_property_fields.app_error",
    "translation": "Unable to search Custom Profile Attribute fields"
  },
  {
    "id": "app.file_info.delete_for_post_ids.app_error",
    "translation": "Failed to remove the requested files from database"
  },
  {
    "id": "app.file_info.undelete_for_post_ids.app_error",
    "translation": "Failed to restore post file attachments."
  },
  {
    "id": "app.post.restore_post_version.not_allowed.app_error",
    "translation": "You do not have the appropriate permissions."
  },
  {
    "id": "app.post.restore_post_version.get_single.app_error",
    "translation": "Failed to get the old post version."
  },
  {
    "id": "app.post.restore_post_version.not_an_history_item.app_error",
    "translation": "The provided post history ID does not correspond to any history item for the specified post."
  },
  {
    "id": "app.post.restore_post_version.not_valid_post_history_item.app_error",
    "translation": "The provided post history ID does not correspond to a post history item."
  },
  {
    "id": "app.role.delete.app_error",
    "translation": "Unable to delete role."
  },
  {
    "id": "ent.message_export.actiance_export.calculate_channel_exports.channel_message",
    "translation": "Exporting channel information for {{.NumChannels}} channels."
  },
  {
    "id": "ent.message_export.calculate_channel_exports.app_error",
    "translation": "Failed to calculate channel export data."
  },
  {
    "id": "ent.message_export.job_data_conversion.app_error",
    "translation": "Failed to convert a value from the job's data field."
  },
  {
    "id": "ent.message_export.actiance_export.calculate_channel_exports.activity_message",
    "translation": "Calculating channel activity: {{.NumCompleted}}/{{.NumChannels}} channels completed."
  },
  {
    "id": "model.property_field.is_valid.app_error",
    "translation": "Invalid property field: {{.FieldName}} ({{.Reason}})."
  },
  {
    "id": "model.property_value.is_valid.app_error",
    "translation": "Invalid property value: {{.FieldName}} ({{.Reason}})."
  },
  {
    "id": "api.custom_profile_attributes.license_error",
    "translation": "Your licence does not support Custom Profile Attributes."
  },
  {
    "id": "api.file.zip_file_reader.app_error",
    "translation": "Unable to get a zip file reader."
  },
  {
    "id": "app.file_info.get_by_ids.app_error",
    "translation": "Unable to get the file infos by ids for post edit history."
  },
  {
    "id": "model.link_metadata.is_valid.url_length.app_error",
    "translation": "Length of link metadata URL is {{ .Length }} characters long, which exceeds the maximum limit of {{ .MaxLength }} characters."
  },
  {
    "id": "api.channel.bookmark.create_channel_bookmark.deleted_channel.forbidden.app_error",
    "translation": "Failed to create the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.delete_channel_bookmark.deleted_channel.forbidden.app_error",
    "translation": "Failed to delete the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark.deleted_channel.forbidden.app_error",
    "translation": "Failed to update the channel bookmark."
  },
  {
    "id": "api.channel.bookmark.update_channel_bookmark_sort_order.deleted_channel.forbidden.app_error",
    "translation": "Failed to update the channel bookmark's sort order."
  },
  {
    "id": "app.file_info.get_count.app_error",
    "translation": "Failed to get count of all files."
  },
  {
    "id": "app.file_info.get_storage_usage.app_error",
    "translation": "Failed to get storage usage of all files."
  },
  {
    "id": "api.context.get_session.app_error",
    "translation": "Session not found."
  },
  {
    "id": "app.custom_profile_attributes.count_property_fields.app_error",
    "translation": "Unable to count the number of fields for the custom profile attribute group"
  },
  {
    "id": "model.config.is_valid.metrics_client_side_user_id.app_error",
    "translation": "Invalid client side user ID: {{.Id}}"
  },
  {
    "id": "model.config.is_valid.metrics_client_side_user_ids.app_error",
    "translation": "Number of elements in ClientSideUserIds {{.CurrentLength}} is higher than maximum limit of {{.MaxLength}}."
  },
  {
    "id": "app.custom_profile_attributes.property_value_upsert.app_error",
    "translation": "Unable to upsert Custom Profile Attribute fields"
  },
  {
    "id": "api.channel.update_channel.banner_info.channel_type.not_allowed",
    "translation": "Channel banner can only be configured on Public and Private channels."
  },
  {
    "id": "api.user.reset_password_failed_attempts.ldap_and_email_only.app_error",
    "translation": "User auth service must be LDAP or Email."
  },
  {
    "id": "app.drafts.permanent_delete_by_user.app_error",
    "translation": "Unable to delete drafts for user."
  },
  {
    "id": "app.group.license_error",
    "translation": "LDAP licence required."
  },
  {
    "id": "ent.ldap.get_user_by_auth.app_error",
    "translation": "Failed to get user."
  },
  {
    "id": "license_error.feature_unavailable",
    "translation": "Feature is not available for the current licence"
  },
  {
    "id": "model.channel.is_valid.banner_info.channel_type.app_error",
    "translation": "Channel banner can only be configured on Public and Private channels"
  },
  {
    "id": "model.channel.is_valid.banner_info.text.empty.app_error",
    "translation": "Channel banner info text cannot be empty when channel banner is enabled"
  },
  {
    "id": "model.channel.is_valid.banner_info.text.invalid_length.app_error",
    "translation": "Channel banner info text is too long. Max allowed length is {{.maxLength}} characters."
  },
  {
    "id": "api.user.check_user_login_attempts.too_many_ldap.app_error",
    "translation": "Your account is locked because of too many failed password attempts. Please contact your System Administrator."
  },
  {
    "id": "app.user.reset_password_failed_attempts.app_error",
    "translation": "Failed to reset login attempts."
  },
  {
    "id": "api.user.reset_password_failed_attempts.permissions.app_error",
    "translation": "You do not have permission to update this resource."
  },
  {
    "id": "model.channel.is_valid.banner_info.background_color.empty.app_error",
    "translation": "Channel banner colour cannot be empty when channel banner is enabled"
  },
  {
    "id": "model.config.is_valid.ldap_max_login_attempts.app_error",
    "translation": "Invalid maximum login attempts for LDAP settings. Must be a positive number."
  },
  {
    "id": "app.custom_profile_attributes.delete_property_values_for_user.app_error",
    "translation": "Unable to delete Custom Profile Attribute Values for user"
  },
  {
    "id": "api.admin.add_certificate.app_error",
    "translation": "Failed to add certificate."
  },
  {
    "id": "api.admin.add_certificate.multiple_files.app_error",
    "translation": "Too many files under 'certificate' in request."
  },
  {
    "id": "api.admin.remove_certificate.app_error",
    "translation": "Failed to remove certificate."
  },
  {
    "id": "app.custom_profile_attributes.property_field_conversion.app_error",
    "translation": "Unable to convert the property field to a custom profile attribute field"
  },
  {
    "id": "ent.ldap.cpa_field_mapping.list_error",
    "translation": "Failed to retrieve CPA fields"
  },
  {
    "id": "ent.saml.cpa_field_mapping.list_error",
    "translation": "Failed to retrieve CPA field(s)"
  },
  {
    "id": "ent.saml.update_cpa.empty_attribute_statement",
    "translation": "SAML assertion attribute statement is invalid"
  },
  {
    "id": "model.access_policy.is_valid.type.app_error",
    "translation": "Invalid policy type."
  },
  {
    "id": "model.access_policy.is_valid.version.app_error",
    "translation": "Version is not valid for this access control policy."
  },
  {
    "id": "web.incoming_webhook.parse_form.app_error",
    "translation": "Failed to parse form for webhook {{.hook_id}}."
  },
  {
    "id": "web.incoming_webhook.parse_multipart.app_error",
    "translation": "Failed to parse multipart form for webhook {{.hook_id}}."
  },
  {
    "id": "app.custom_profile_attributes.validate_value.app_error",
    "translation": "Failed to validate property value"
  },
  {
    "id": "app.import.profile_image.open.app_error",
    "translation": "Failed to open the profile image file: {{.FileName}}"
  },
  {
    "id": "app.import.profile_image.read_data.app_error",
    "translation": "Failed to read profile image data."
  },
  {
    "id": "app.submit_interactive_dialog.decode_json_error",
    "translation": "Encountered an error decoding JSON response from interactive dialog submission."
  },
  {
    "id": "app.submit_interactive_dialog.read_body_error",
    "translation": "Encountered an error reading response body from interactive dialog submission."
  },
  {
    "id": "ent.ldap.do_login.invalid_id",
    "translation": "Invalid AD/LDAP ID"
  },
  {
    "id": "ent.ldap.update_cpa.empty_attribute",
    "translation": "Empty LDAP attribute value"
  },
  {
    "id": "ent.ldap_groups.invalid_ldap_id",
    "translation": "Invalid AD/LDAP ID"
  },
  {
    "id": "app.custom_profile_attributes.sanitize_and_validate.app_error",
    "translation": "Invalid property value attributes : {{.AttributeName}} ({{.Reason}})."
  },
  {
    "id": "model.access_policy.is_valid.name.app_error",
    "translation": "Invalid name for the policy."
  },
  {
    "id": "model.access_policy.is_valid.revision.app_error",
    "translation": "Invalid policy revision."
  },
  {
    "id": "model.access_policy.is_valid.rules.app_error",
    "translation": "Invalid rule(s)."
  },
  {
    "id": "model.access_policy.is_valid.rules_imports.app_error",
    "translation": "Policy must either import or define rules."
  },
  {
    "id": "model.access_policy.is_valid.id.app_error",
    "translation": "Invalid policy ID."
  },
  {
    "id": "model.access_policy.is_valid.imports.app_error",
    "translation": "Invalid imports for the policy."
  },
  {
    "id": "model.config.is_valid.elastic_search.empty_index_prefix.app_error",
    "translation": "IndexPrefix cannot be empty if GlobalSearchPrefix is set."
  },
  {
    "id": "model.config.is_valid.elastic_search.incorrect_search_prefix.app_error",
    "translation": "GlobalSearchPrefix {{.GlobalSearchPrefix}} should be a prefix of IndexPrefix {{.IndexPrefix}}."
  },
  {
    "id": "api.license.load_metric.app_error",
    "translation": "Failed to compute monthly active users."
  },
  {
    "id": "ent.saml.login.ldap_user_missing",
    "translation": "No user registered on AD/LDAP server that matches the SAML user."
  },
  {
    "id": "api.custom_profile_attributes.invalid_field_patch",
    "translation": "invalid custom profile attribute field patch"
  },
  {
    "id": "app.import.validate_attachment_import_data.invalid_path.error",
    "translation": "Failed to validate attachment import data. Invalid path: '\\{{.Path}}'\\"
  },
  {
    "id": "app.import.validate_post_import_data.attachment.error",
    "translation": "Failed to validate post attachment data."
  },
  {
    "id": "app.import.validate_direct_post_import_data.attachment.error",
    "translation": "Failed to validate direct post attachment data."
  },
  {
    "id": "app.import.validate_emoji_import_data.invalid_image_path.error",
    "translation": "Import emoji image field has an invalid path: '\\{{.Path}}'\\"
  },
  {
    "id": "app.import.validate_reply_import_data.attachment.error",
    "translation": "Failed to validate reply attachment data."
  },
  {
    "id": "app.import.validate_user_import_data.invalid_image_path.error",
    "translation": "User profile image path is invalid: '\\{{.Path}}'\\"
  },
  {
    "id": "ent.access_control.job_data_conversion.app_error",
    "translation": "Failed to extract data from previous job."
  },
  {
    "id": "app.pap.missing_attribute.app_error",
    "translation": "An attribute is missing from the expression."
  },
  {
    "id": "model.config.is_valid.directory_whitespace.app_error",
    "translation": "Leading or trailing whitespace detected for {{.Setting}}. Found '\\{{.Value}}'\\."
  },
  {
    "id": "license_error.feature_unavailable.specific",
    "translation": "{{.Feature}} feature is not available for the current licence"
  },
  {
    "id": "model.config.is_valid.report_a_problem_link.invalid.app_error",
    "translation": "Invalid report a problem link. Must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.config.is_valid.report_a_problem_link.missing.app_error",
    "translation": "Report a problem link is required."
  },
  {
    "id": "model.config.is_valid.report_a_problem_mail.invalid.app_error",
    "translation": "Invalid report a problem mail. Must be a valid email address."
  },
  {
    "id": "app.custom_profile_attributes.property_field_is_synced.app_error",
    "translation": "Cannot update value for a synced Custom Profile Attribute field"
  },
  {
    "id": "api.user.create_user.license_user_limits.exceeded",
    "translation": "Can't create user. Server exceeds maximum licensed users. Contact your administrator with: ERROR_LICENSED_USERS_LIMIT_EXCEEDED."
  },
  {
    "id": "app.acknowledgement.batch_save.app_error",
    "translation": "Failed to save the batch of acknowledgement objects"
  },
  {
    "id": "model.acknowledgement.is_valid.channel_id.app_error",
    "translation": "Invalid channel ID."
  },
  {
    "id": "api.access_control_policy.get_fields.limit.app_error",
    "translation": "Get fields limit is not valid."
  },
  {
    "id": "api.channel.add_user.to.channel.rejected",
    "translation": "User does not have required attributes to join the channel."
  },
  {
    "id": "api.access_control_policy.get_channels.limit.app_error",
    "translation": "Get channels limit is not valid."
  },
  {
    "id": "api.channel.update_channel.not_allowed.app_error",
    "translation": "Policy-enforced channels cannot be updated."
  },
  {
    "id": "api.user.authorize_oauth_user.saml_hook_error.app_error",
    "translation": "An error occurred in the OnSamlLogin hook. Please contact your System Administrator."
  },
  {
    "id": "app.channel.get.app_error",
    "translation": "Could not get channel."
  },
  {
    "id": "app.group.user_not_found",
    "translation": "Error updating group. User with username '\\{{.Username}}'\\ could not be found."
  },
  {
    "id": "app.pap.assign_access_control_policy_to_channels.app_error",
    "translation": "Unable to assign access control policy to channels."
  },
  {
    "id": "app.pap.check_expression.app_error",
    "translation": "Could not check expression."
  },
  {
    "id": "app.pap.create_access_control_policy.app_error",
    "translation": "Could not create access control policy."
  },
  {
    "id": "app.pap.search_access_control_policies.app_error",
    "translation": "Could not search access control policies."
  },
  {
    "id": "app.pap.unassign_access_control_policy_from_channels.app_error",
    "translation": "Could not unassign access control policy from channels."
  },
  {
    "id": "app.pdp.access_evaluation.app_error",
    "translation": "Failed evaluate access control policy."
  },
  {
    "id": "app.pap.normalize_policy.app_error",
    "translation": "Could not normalise policy expression."
  },
  {
    "id": "app.pap.query_expression.app_error",
    "translation": "Could not query for expression."
  },
  {
    "id": "app.pap.save_policy.app_error",
    "translation": "Unable to save access control policy."
  },
  {
    "id": "model.access_policy.inherit.version.app_error",
    "translation": "Could not inherit access control policy."
  },
  {
    "id": "model.config.is_valid.report_a_problem_mail.missing.app_error",
    "translation": "Report a problem mail is required."
  },
  {
    "id": "app.group.create_syncable_memberships.error",
    "translation": "Unable to create group syncable memberships."
  },
  {
    "id": "app.group.delete_invalid_syncable_memberships.error",
    "translation": "Unable to delete invalid group syncable memberships."
  },
  {
    "id": "app.pap.get_policy.app_error",
    "translation": "Unable to retrieve the access control policy."
  },
  {
    "id": "app.pap.get_policy_attributes.app_error",
    "translation": "Could not get attributes for policy."
  },
  {
    "id": "app.pap.init.app_error",
    "translation": "Unable to initialise access control service."
  },
  {
    "id": "app.pap.is_ready.app_error",
    "translation": "Access control service is not ready."
  },
  {
    "id": "api.ldap.invalid_test_type.app_error",
    "translation": "Invalid test type: {{.TestType}}"
  },
  {
    "id": "app.acknowledgement.delete.missing_post.app_error",
    "translation": "Cannot delete acknowledgement for missing post"
  },
  {
    "id": "app.acknowledgement.save.missing_post.app_error",
    "translation": "Cannot save acknowledgement for missing post"
  },
  {
    "id": "api.remote_cluster.import_not_allowed.app_error",
    "translation": "Remote cluster import is not allowed"
  },
  {
    "id": "api.user.get_users_not_in_abac_channel.access_control_unavailable.app_error",
    "translation": "Access control service unavailable. Cannot filter users for ABAC-enabled channel."
  },
  {
    "id": "app.pap.delete_access_control_policy.app_error",
    "translation": "Could not delete access control policy."
  },
  {
    "id": "app.pap.delete_policy.app_error",
    "translation": "Unable to delete access control policy."
  },
  {
    "id": "app.pap.expression_to_visual_ast.app_error",
    "translation": "Could not genereate visual AST from expression."
  },
  {
    "id": "app.pap.get_access_control_auto_complete.app_error",
    "translation": "Could not get access control auto complete."
  },
  {
    "id": "app.pap.get_all_access_control_policies.app_error",
    "translation": "Could not get access control policies."
  },
  {
    "id": "app.pap.get_channel_access_control_attributes.app_error",
    "translation": "Could not get attributes for channel."
  },
  {
    "id": "app.pap.get_channel_members_to_remove.app_error",
    "translation": "Could not get channel members to remove."
  },
  {
    "id": "model.config.is_valid.experimental_audit_settings.file_name_empty",
    "translation": "When audit file logging is enabled, a file name must be specified."
  },
  {
    "id": "model.config.is_valid.experimental_audit_settings.file_name_is_directory",
    "translation": "The file name must not be a directory."
  },
  {
    "id": "app.user.update_active.license_user_limit.exceeded",
    "translation": "Can't activate user. Server exceeds maximum licensed users. ERROR_LICENSED_USERS_LIMIT_EXCEEDED."
  },
  {
    "id": "ent.access_control.sync_job.app_error",
    "translation": "Failed to run access control sync job."
  },
  {
    "id": "model.channel.is_valid.banner_info.background_color.invalid.app_error",
    "translation": "Channel banner colour must be a valid hex colour (e.g. #FF0000 or #F00)"
  },
  {
    "id": "api.team.invite_guests.policy_enforced_channel.app_error",
    "translation": "Cannot invite guests users to this channel because it has access restrictions based on user attributes."
  },
  {
    "id": "ent.ldap.connection.test_failed",
    "translation": "LDAP connection test failed. Server: {{.Server}}:{{.Port}}, ConnectionSecurity: {{.ConnectionType}}, PrivateKeyFilename: {{.PrivateKeyFilename}}, PublicCertificateFilename: {{.PublicCertFilename}}, BindUsername: {{.BindUsername}}. Error: {{.Error}}"
  },
  {
    "id": "api.channel.update_channel_member_roles.unset_user_scheme.app_error",
    "translation": "Invalid channel member update: A channel member always has a user scheme."
  },
  {
    "id": "api.team.update_team_member_roles.unset_user_scheme.app_error",
    "translation": "Invalid team member update: a team member always has a user scheme."
  },
  {
    "id": "api.upload.invalid_type_for_shared_channel.app_error",
    "translation": "Failed to upload file. Upload channel is not shared with remote."
  },
  {
    "id": "app.import.validate_direct_post_import_data.thread_follower.error",
    "translation": "Failed to validate direct post thread follower data."
  },
  {
    "id": "app.import.validate_post_import_data.thread_follower.error",
    "translation": "Failed to validate post thread follower data."
  },
  {
    "id": "app.import.validate_thread_follower_data.empty.error",
    "translation": "Import follower data empty."
  },
  {
    "id": "app.import.validate_thread_follower_data.user_missing.error",
    "translation": "Missing required follower property: user."
  },
  {
    "id": "model.config.is_valid.content_flagging.reasons_not_set.app_error",
    "translation": "Reasons for flagging cannot be empty."
  },
  {
    "id": "model.config.is_valid.content_flagging.common_reviewers_not_set.app_error",
    "translation": "Common reviewers or additional reviewers must be set when 'Same reviewers for all teams' is enabled."
  },
  {
    "id": "model.config.is_valid.content_flagging.team_reviewers_not_set.app_error",
    "translation": "Team reviewers or additional reviewers must be set when setting 'Enabled' for a team."
  },
  {
    "id": "model.config.is_valid.notification_settings.invalid_target",
    "translation": "Invalid flagging event target specified."
  },
  {
    "id": "model.config.is_valid.notification_settings.reviewer_flagged_notification_disabled",
    "translation": "Notifications for newly flagged posts cannot be disabled for reviewers."
  },
  {
    "id": "app.cloud.preview_modal_bucket_url_not_configured",
    "translation": "Preview bucket URL is not configured"
  },
  {
    "id": "app.cloud.preview_modal_data_fetch_error",
    "translation": "Failed to fetch preview modal data"
  },
  {
    "id": "app.cloud.preview_modal_data_parse_error",
    "translation": "Failed to parse preview modal data"
  },
  {
    "id": "model.config.is_valid.notification_settings.invalid_event",
    "translation": "Invalid flagging event specified."
  },
  {
    "id": "api.command_share.service_inactive",
    "translation": "Shared Channels Service is enabled but not active."
  },
  {
    "id": "api.channel.get_channel.flagged_post_mismatch.app_error",
    "translation": "Channel ID does not match the channel ID of the flagged post."
  },
  {
    "id": "api.channel.patch_channel_moderations_for_channel.restricted_permission.app_error",
    "translation": "Cannot add a permission that is restricted by the team or system permission scheme."
  },
  {
    "id": "api.channel.patch_update_channel.restricted_dm.app_error",
    "translation": "Cannot update a restricted direct message channel."
  },
  {
    "id": "api.command.execute_command.restricted_dm.error",
    "translation": "Cannot post in a restricted DM"
  },
  {
    "id": "api.draft.create_draft.can_not_draft_to_restricted_dm.error",
    "translation": "Cannot save draft to restricted direct message channel"
  },
  {
    "id": "api.encoding_error",
    "translation": "Encountered an error encoding JSON for the API response"
  },
  {
    "id": "api.file.upload_file.get_channel.app_error",
    "translation": "Cannot upload file to restricted DM"
  },
  {
    "id": "api.file.upload_file.restricted_dm.error",
    "translation": "Cannot upload file to restricted DM"
  },
  {
    "id": "api.post.create_post.can_not_post_in_restricted_dm.error",
    "translation": "Cannot post to restricted direct message channel."
  },
  {
    "id": "api.post.delete_post.can_not_delete_from_restricted_dm.error",
    "translation": "Cannot delete a post in a restricted direct message channel."
  },
  {
    "id": "api.post.patch_post.can_not_update_post_in_restricted_dm.error",
    "translation": "Cannot update post in restricted direct message channel."
  },
  {
    "id": "api.post.update_post.can_not_update_post_in_restricted_dm.error",
    "translation": "Cannot update post in restricted direct message channel."
  },
  {
    "id": "api.reaction.delete.restricted_dm.error",
    "translation": "Cannot react in restricted DM"
  },
  {
    "id": "api.reaction.save.restricted_dm.error",
    "translation": "Cannot react in restricted DM"
  },
  {
    "id": "api.team.get_team.flagged_post_mismatch.app_error",
    "translation": "Team ID does not match the flagged post's team ID."
  },
  {
    "id": "api.user.check_user_password.invalid_hash.app_error",
    "translation": "The format of the hashed password is invalid and could not be parsed."
  },
  {
    "id": "app.access_control.insufficient_permissions",
    "translation": "You do not have permission to manage this access control policy."
  },
  {
    "id": "app.channel.get_common_teams.app_error",
    "translation": "Error get common teams for channel"
  },
  {
    "id": "app.custom_profile_attributes.property_field_is_managed.app_error",
    "translation": "Cannot update value for an admin-managed Custom Profile Attribute field"
  },
  {
    "id": "app.job.get_existing_jobs.error",
    "translation": "Unable to get existing jobs."
  },
  {
    "id": "app.lookup_interactive_dialog.decode_json_error",
    "translation": "Encountered an error decoding JSON response from interactive dialog lookup."
  },
  {
    "id": "app.lookup_interactive_dialog.json_error",
    "translation": "Encountered an error processing JSON response from interactive dialog lookup."
  },
  {
    "id": "app.lookup_interactive_dialog.read_body_error",
    "translation": "Encountered an error reading response body from interactive dialog lookup."
  },
  {
    "id": "app.pap.access_control.channel_group_constrained",
    "translation": "Channel is group constrained and cannot have access control policies applied."
  },
  {
    "id": "app.pap.access_control.channel_not_private",
    "translation": "Access control policies can only be applied to private channels."
  },
  {
    "id": "app.pap.access_control.channel_shared",
    "translation": "Shared channels cannot have access control policy applied."
  },
  {
    "id": "app.pap.access_control.insufficient_channel_permissions",
    "translation": "You do not have permission to manage access control for this channel."
  },
  {
    "id": "app.pap.access_control.insufficient_permissions",
    "translation": "You do not have permission to manage this access control policy."
  },
  {
    "id": "app.post_priority.delete_for_post.app_error",
    "translation": "Failed to permanently delete post priority data from database for post."
  },
  {
    "id": "app.save_scheduled_post.restricted_dm.error",
    "translation": "Cannot schedule post in a restricted DM"
  },
  {
    "id": "app.submit_interactive_dialog.invalid_response",
    "translation": "Encountered an invalid response from interactive dialog submission."
  },
  {
    "id": "app.upload.create.cannot_upload_to_restricted_dm.error",
    "translation": "Cannot upload file to a restricted direct message."
  },
  {
    "id": "app.user.check_user_password.failed_migration",
    "translation": "Failed to migrate the user's password to the newest hashing method."
  },
  {
    "id": "app.user.check_user_password.failed_update",
    "translation": "Failed to update the user's password."
  },
  {
    "id": "ent.elasticsearch.create_processor.bulk_processor_create_failed",
    "translation": "Failed to create Elasticsearch bulk processor"
  },
  {
    "id": "ent.elasticsearch.create_processor.sync_bulk_processor_create_failed",
    "translation": "Failed to create Elasticsearch sync bulk processor"
  },
  {
    "id": "model.access_policy.inherit.already_imported.app_error",
    "translation": "The parent is already imported."
  },
  {
    "id": "model.config.is_valid.autotranslation.libretranslate.url.app_error",
    "translation": "LibreTranslate URL must be a valid URL and start with http:// or https://."
  },
  {
    "id": "model.config.is_valid.autotranslation.provider.app_error",
    "translation": "Invalid autotranslation provider, must not be empty."
  },
  {
    "id": "model.config.is_valid.autotranslation.provider.unsupported.app_error",
    "translation": "Unsupported autotranslation provider."
  },
  {
    "id": "model.config.is_valid.client_side_cert_enable.app_error",
    "translation": "Certificate-based authentication has been removed. Please disable ClientSideCertEnable to continue."
  },
  {
    "id": "model.config.is_valid.experimental_view_archived_channels.app_error",
    "translation": "Hiding archived channels is no longer supported. Make these channels private and remove members instead."
  },
  {
    "id": "api.command.move_command.creator_no_permission.app_error",
    "translation": "No permission to move command"
  },
  {
    "id": "api.file.get_file.invalid_flagged_post.app_error",
    "translation": "Mismatched flagged post ID specified."
  },
  {
    "id": "api.file.get_file_info.app_error",
    "translation": "Failed to get file info."
  },
  {
    "id": "api.oauth.allow_oauth.pkce_required_public.app_error",
    "translation": "PKCE (Proof Key for Code Exchange) is required for public OAuth clients using authorisation code flow."
  },
  {
    "id": "api.oauth.authorization_server_metadata.disabled.app_error",
    "translation": "OAuth service provider is disabled."
  },
  {
    "id": "api.oauth.authorization_server_metadata.invalid_url.app_error",
    "translation": "Invalid URL configuration for authorisation server metadata."
  },
  {
    "id": "api.oauth.authorization_server_metadata.site_url_required.app_error",
    "translation": "Site URL must be configured to provide authorisation server metadata."
  },
  {
    "id": "api.oauth.get_access_token.resource_mismatch.app_error",
    "translation": "Resource parameter mismatch between authorisation and token requests."
  },
  {
    "id": "api.oauth.regenerate_secret.public_client.app_error",
    "translation": "invalid_request: Cannot regenerate secret for public OAuth clients."
  },
  {
    "id": "api.post.burn_post.user_not_in_channel.app_error",
    "translation": "You do not have permission to burn this post. You must be a member of the channel."
  },
  {
    "id": "api.post.create_post.burn_on_read.app_error",
    "translation": "An error occurred while creating a burn-on-read post."
  },
  {
    "id": "api.post.fill_in_post_props.burn_on_read.config.app_error",
    "translation": "Burn-on-read posts are not enabled. Please enable the feature flag and service setting."
  },
  {
    "id": "api.post.fill_in_post_props.burn_on_read.license.app_error",
    "translation": "Burn-on-read posts require an Enterprise Advanced licence."
  },
  {
    "id": "api.post.fill_in_post_props.invalid_ai_generated_user.app_error",
    "translation": "The AI-generated user must be either the post creator or a bot."
  },
  {
    "id": "api.post.get_link_metadata_for_permalink.burn_on_read.app_error",
    "translation": "Cannot retrieve link metadata for burn-on-read post permalink."
  },
  {
    "id": "api.post.get_posts_for_reporting.channel_not_found",
    "translation": "Channel not found"
  },
  {
    "id": "api.post.patch_post.can_not_update_burn_on_read_post.error",
    "translation": "Burn-on-read posts cannot be updated."
  },
  {
    "id": "api.post.reveal_post.cannot_reveal_own_post.app_error",
    "translation": "You cannot reveal your own burn-on-read post."
  },
  {
    "id": "api.post.reveal_post.disabled.app_error",
    "translation": "Burn-on-read feature is not enabled or requires an Enterprise Advanced licence."
  },
  {
    "id": "api.post.reveal_post.user_not_in_channel.app_error",
    "translation": "You do not have permission to reveal this post. You must be a member of the channel."
  },
  {
    "id": "api.post.update_post.burn_on_read.app_error",
    "translation": "Burn-on-read posts cannot be edited."
  },
  {
    "id": "api.reaction.save.burn_on_read.app_error",
    "translation": "You cannot react to a burn-on-read post."
  },
  {
    "id": "api.team.invite_guests_to_channels.guest_magic_link_disabled.error",
    "translation": "Guest magic link is not enabled"
  },
  {
    "id": "api.templates.guest_magic_link_body.footer.info",
    "translation": "This email was sent to you because someone requested a login link for Mattermost. If you did not request this, you can safely ignore this email."
  },
  {
    "id": "api.templates.guest_magic_link_body.footer.title",
    "translation": "Didn't request this email?"
  },
  {
    "id": "api.templates.guest_magic_link_body.subtitle",
    "translation": "Click the button below to sign in to your account. Don't share this link with anyone else."
  },
  {
    "id": "api.templates.guest_magic_link_body.title",
    "translation": "Sign in to Mattermost"
  },
  {
    "id": "api.templates.guest_magic_link_subject",
    "translation": "Sign in to {{ .SiteName }}"
  },
  {
    "id": "api.user.delete_channel.not_enabled.for_admin.app_error",
    "translation": "Permanent channel deletion feature is not enabled. ServiceSettings.EnableAPIChannelDeletion must be set to true to use this command. See https://mattermost.com/pl/environment-configuration-settings for more information"
  },
  {
    "id": "api.user.delete_team.not_enabled.for_admin.app_error",
    "translation": "Permanent team deletion feature is not enabled. ServiceSettings.EnableAPITeamDeletion must be set to true to use this command. See https://mattermost.com/pl/environment-configuration-settings for more information."
  },
  {
    "id": "api.user.delete_user.not_enabled.for_admin.app_error",
    "translation": "Permanent user deletion feature is not enabled. ServiceSettings.EnableAPIUserDeletion must be set to true to use this command. See https://mattermost.com/pl/environment-configuration-settings for more information."
  },
  {
    "id": "api.user.guest_magic_link.expired_token.app_error",
    "translation": "This invitation link has expired."
  },
  {
    "id": "api.user.guest_magic_link.invalid_token.app_error",
    "translation": "Invalid invitation link."
  },
  {
    "id": "api.user.guest_magic_link.missing_token.app_error",
    "translation": "Missing invitation token."
  },
  {
    "id": "api.user.guest_magic_link.username_generation_failed.app_error",
    "translation": "Could not generate a unique username. Please contact your system administrator."
  },
  {
    "id": "api.user.login.guest_magic_link.disabled.error",
    "translation": "Login with magic link is disabled."
  },
  {
    "id": "api.user.login_by_intune.account_locked.app_error",
    "translation": "Your account has been deactivated. Please contact your system administrator."
  },
  {
    "id": "api.user.login_by_intune.bot_login_forbidden.app_error",
    "translation": "Bot accounts cannot sign in using Microsoft authentication."
  },
  {
    "id": "api.user.login_by_intune.not_available.app_error",
    "translation": "Microsoft Intune authentication is not available."
  },
  {
    "id": "api.user.login_by_intune.not_configured.app_error",
    "translation": "Microsoft Intune authentication is not configured."
  },
  {
    "id": "api.user.oauth_to_email.magic_link.app_error",
    "translation": "Magic Link is the only sign-in method available for this account."
  },
  {
    "id": "api.user.promote_guest_to_user.magic_link_enabled.app_error",
    "translation": "Unable to convert the guest to regular user because the guest uses magic link authentication."
  },
  {
    "id": "api.user.send_password_reset.guest_magic_link.app_error",
    "translation": "Unable to reset password for guest magic link accounts."
  },
  {
    "id": "api.user.update_password.magic_link.app_error",
    "translation": "Cannot update password for Magic Link accounts."
  },
  {
    "id": "app.agents.get_agents.app_error",
    "translation": "Failed to get agents."
  },
  {
    "id": "app.agents.get_agents.bridge_call_failed",
    "translation": "Bridge call failed."
  },
  {
    "id": "app.agents.get_services.app_error",
    "translation": "Failed to get LLM services."
  },
  {
    "id": "app.agents.get_services.bridge_call_failed",
    "translation": "Bridge call failed."
  },
  {
    "id": "app.burn_post.not_burn_on_read.app_error",
    "translation": "This post is not a burn-on-read post and cannot be burnt."
  },
  {
    "id": "app.burn_post.not_revealed.app_error",
    "translation": "This burn-on-read post has not been revealed yet. You must reveal it before burning."
  },
  {
    "id": "app.burn_post.read_receipt.get.error",
    "translation": "An error occurred while retrieving the read receipt."
  },
  {
    "id": "app.burn_post.read_receipt.update.error",
    "translation": "An error occurred while updating the read receipt."
  },
  {
    "id": "app.custom_profile_attributes.patch_field.app_error",
    "translation": "Unable to patch Custom Profile Attribute field"
  },
  {
    "id": "app.pap.update_access_control_policies_active.app_error",
    "translation": "Could not update active status of access control policies."
  },
  {
    "id": "app.post.get_post.app_error",
    "translation": "An error occurred while retrieving the burn-on-read post content."
  },
  {
    "id": "app.post.get_posts_for_reporting.app_error",
    "translation": "Unable to retrieve posts for reporting."
  },
  {
    "id": "app.post.get_posts_for_reporting.invalid_input_error",
    "translation": "Unable to retrieve posts for reporting. Invalid input."
  },
  {
    "id": "app.post.get_posts_for_reporting.license_error",
    "translation": "Your licence does not support reporting on posts."
  },
  {
    "id": "app.post.rewrite.agent_call_failed",
    "translation": "Failed to call AI agent."
  },
  {
    "id": "app.post.rewrite.empty_response",
    "translation": "Empty response from AI."
  },
  {
    "id": "app.post.rewrite.invalid_action",
    "translation": "Invalid rewrite action."
  },
  {
    "id": "app.post.rewrite.parse_response_failed",
    "translation": "Failed to parse rewrite response from AI."
  },
  {
    "id": "app.reveal_post.cannot_reveal_own_post.app_error",
    "translation": "You cannot reveal your own burn-on-read post."
  },
  {
    "id": "app.reveal_post.missing_expire_at.app_error",
    "translation": "The burn-on-read post is missing the required expiration time."
  },
  {
    "id": "app.reveal_post.not_burn_on_read.app_error",
    "translation": "This post is not a burn-on-read post and cannot be revealed."
  },
  {
    "id": "app.reveal_post.post_expired.app_error",
    "translation": "This burn-on-read post has expired and can no longer be revealed."
  },
  {
    "id": "app.reveal_post.read_receipt.get.error",
    "translation": "An error occurred while retrieving the read receipt."
  },
  {
    "id": "app.reveal_post.read_receipt.get_unread_count.error",
    "translation": "Unable to get the unread count for the read receipt."
  },
  {
    "id": "app.reveal_post.read_receipt.save.error",
    "translation": "An error occurred while saving the read receipt."
  },
  {
    "id": "app.reveal_post.read_receipt_expired.error",
    "translation": "Your access to this burn-on-read post has expired."
  },
  {
    "id": "ent.intune.login.account_not_found.app_error",
    "translation": "Your account isn't fully set up yet. Please sign in to Mattermost via the web or desktop app first."
  },
  {
    "id": "ent.intune.login.extract_auth_data.app_error",
    "translation": "Authentication failed. Please try again or contact your system administrator."
  },
  {
    "id": "ent.intune.login.not_configured.app_error",
    "translation": "Microsoft Intune authentication is not configured."
  },
  {
    "id": "ent.intune.validate_token.invalid_tenant_id.app_error",
    "translation": "Authentication failed. Invalid configuration."
  },
  {
    "id": "ent.intune.validate_token.invalid_token.app_error",
    "translation": "Authentication failed. Please try again."
  },
  {
    "id": "ent.intune.validate_token.jwks_init.app_error",
    "translation": "Authentication service initialisation failed. Please contact your system administrator."
  },
  {
    "id": "ent.intune.validate_token.missing_claims.app_error",
    "translation": "Authentication failed. Required user information is missing."
  },
  {
    "id": "ent.intune.validate_token.token_expired.app_error",
    "translation": "Authentication session has expired. Please try signing in again."
  },
  {
    "id": "ent.push_proxy.delete.app_error",
    "translation": "Failed to delete push proxy auth token."
  },
  {
    "id": "ent.push_proxy.generate.bad_status.app_error",
    "translation": "Failed to get auth token from push proxy server."
  },
  {
    "id": "ent.push_proxy.generate.create_request.app_error",
    "translation": "Failed to create HTTP request for push proxy auth."
  },
  {
    "id": "ent.push_proxy.generate.empty_token.app_error",
    "translation": "Push proxy returned empty auth token."
  },
  {
    "id": "ent.push_proxy.generate.encrypt.app_error",
    "translation": "Failed to encrypt payload for push proxy auth."
  },
  {
    "id": "ent.push_proxy.generate.http_request.app_error",
    "translation": "Failed to send HTTP request to push proxy."
  },
  {
    "id": "ent.push_proxy.generate.marshal.app_error",
    "translation": "Failed to marshal payload for push proxy auth."
  },
  {
    "id": "ent.push_proxy.generate.marshal_request.app_error",
    "translation": "Failed to marshal request body for push proxy auth."
  },
  {
    "id": "ent.push_proxy.generate.no_key.app_error",
    "translation": "No encryption key available for push proxy auth."
  },
  {
    "id": "ent.push_proxy.generate.parse_response.app_error",
    "translation": "Failed to parse response from push proxy auth endpoint."
  },
  {
    "id": "ent.push_proxy.generate.save_system.app_error",
    "translation": "Failed to save auth token."
  },
  {
    "id": "ent.push_proxy.worker.interface_nil.app_error",
    "translation": "Push proxy interface is nil."
  },
  {
    "id": "model.authorize.is_valid.code_challenge.app_error",
    "translation": "Code challenge is required when using PKCE."
  },
  {
    "id": "model.authorize.is_valid.code_challenge.format.app_error",
    "translation": "Code challenge must be base64url-encoded (using characters A-Z, a-z, 0-9, -, _)."
  },
  {
    "id": "model.authorize.is_valid.code_challenge.length.app_error",
    "translation": "Code challenge must be between 43 and 128 characters long."
  },
  {
    "id": "model.authorize.is_valid.code_challenge_method.app_error",
    "translation": "Code challenge method is required when using PKCE."
  },
  {
    "id": "model.authorize.is_valid.code_challenge_method.unsupported.app_error",
    "translation": "Only 'S256' code challenge method is supported."
  },
  {
    "id": "model.authorize.is_valid.resource.has_fragment.app_error",
    "translation": "Resource parameter cannot contain a fragment component."
  },
  {
    "id": "model.authorize.is_valid.resource.invalid_uri.app_error",
    "translation": "Resource parameter must be a valid URI."
  },
  {
    "id": "model.authorize.is_valid.resource.length.app_error",
    "translation": "Resource parameter cannot exceed 512 characters."
  },
  {
    "id": "model.authorize.is_valid.resource.not_absolute.app_error",
    "translation": "Resource parameter must be an absolute URI."
  },
  {
    "id": "model.authorize.validate_pkce.not_used_in_auth.app_error",
    "translation": "PKCE code verifier provided but PKCE was not used during authorisation."
  },
  {
    "id": "model.authorize.validate_pkce.public_client_required.app_error",
    "translation": "PKCE (Proof Key for Code Exchange) is required for public clients."
  },
  {
    "id": "model.authorize.validate_pkce.verification_failed.app_error",
    "translation": "PKCE code verifier does not match the code challenge."
  },
  {
    "id": "model.authorize.validate_pkce.verifier_required.app_error",
    "translation": "PKCE code verifier is required when PKCE is used."
  },
  {
    "id": "model.config.is_valid.guest_accounts.cannot_enforce_multifactor_authentication_when_guest_magic_link_is_enabled.app_error",
    "translation": "You cannot enforce multifactor authentication for guest accounts when magic link authentication is enabled."
  },
  {
    "id": "model.config.is_valid.intune_auth_service.app_error",
    "translation": "Intune MAM Auth Service is required when Intune is enabled."
  },
  {
    "id": "model.config.is_valid.intune_auth_service_invalid.app_error",
    "translation": "Intune MAM Auth Service must be either 'office365' or 'saml'."
  },
  {
    "id": "model.config.is_valid.intune_client_id.app_error",
    "translation": "Intune MAM Client ID is required when Intune is enabled."
  },
  {
    "id": "model.config.is_valid.intune_client_id_format.app_error",
    "translation": "Intune MAM Client ID must be a valid UUID."
  },
  {
    "id": "model.config.is_valid.intune_requires_office365.app_error",
    "translation": "Intune MAM requires OpenID Connect (Office 365) to be enabled when Auth Service is set to 'office365'."
  },
  {
    "id": "model.config.is_valid.intune_requires_saml.app_error",
    "translation": "Intune MAM requires SAML to be enabled when Auth Service is set to 'saml'."
  },
  {
    "id": "model.config.is_valid.intune_tenant_id.app_error",
    "translation": "Intune MAM Tenant ID is required when Intune is enabled."
  },
  {
    "id": "model.config.is_valid.intune_tenant_id_format.app_error",
    "translation": "Intune MAM Tenant ID must be a valid UUID."
  },
  {
    "id": "model.dcr.is_valid.client_name.app_error",
    "translation": "Client name must be 64 characters or less."
  },
  {
    "id": "model.dcr.is_valid.client_uri_format.app_error",
    "translation": "Invalid client URI format."
  },
  {
    "id": "model.dcr.is_valid.client_uri_length.app_error",
    "translation": "Client URI must be less than 256 characters."
  },
  {
    "id": "model.dcr.is_valid.redirect_uri_format.app_error",
    "translation": "Invalid redirect URI format."
  },
  {
    "id": "model.dcr.is_valid.redirect_uris.app_error",
    "translation": "At least one redirect URI is required."
  },
  {
    "id": "model.dcr.is_valid.unsupported_auth_method.app_error",
    "translation": "Unsupported token_endpoint_auth_method supplied."
  },
  {
    "id": "model.oauth.validate_grant.credentials.app_error",
    "translation": "Invalid client credentials."
  },
  {
    "id": "model.oauth.validate_grant.pkce_required.app_error",
    "translation": "PKCE (Proof Key for Code Exchange) is required for public clients."
  },
  {
    "id": "model.oauth.validate_grant.public_client_refresh_token.app_error",
    "translation": "Public clients cannot use refresh token grant type."
  },
  {
    "id": "model.oauth.validate_grant.public_client_secret.app_error",
    "translation": "Public clients must not provide a client secret."
  },
  {
    "id": "model.post.decode_cursor.invalid_base64",
    "translation": "Invalid cursor format: unable to decode base64."
  },
  {
    "id": "model.post.decode_cursor.invalid_exclude_system_posts",
    "translation": "Invalid cursor format: exclude_system_posts must be a boolean."
  },
  {
    "id": "model.post.decode_cursor.invalid_format",
    "translation": "Invalid cursor format: expected 8 parts."
  },
  {
    "id": "model.post.decode_cursor.invalid_include_deleted",
    "translation": "Invalid cursor format: include_deleted must be a boolean."
  },
  {
    "id": "model.post.decode_cursor.invalid_timestamp",
    "translation": "Invalid cursor format: timestamp must be an integer."
  },
  {
    "id": "model.post.decode_cursor.invalid_version",
    "translation": "Invalid cursor format: version must be an integer."
  },
  {
    "id": "model.post.decode_cursor.unsupported_version",
    "translation": "Unsupported cursor version."
  },
  {
    "id": "model.post.query_params.invalid_channel_id",
    "translation": "Invalid channel ID."
  },
  {
    "id": "model.post.query_params.invalid_cursor_id",
    "translation": "Invalid cursor ID."
  },
  {
    "id": "model.post.query_params.invalid_sort_direction",
    "translation": "Invalid sort direction."
  },
  {
    "id": "model.post.query_params.invalid_time_field",
    "translation": "Invalid time field."
  },
  {
    "id": "api.channel.post_update_channel_autotranslation_message.create_post.error",
    "translation": "Failed to post Auto-translation update message."
  },
  {
    "id": "api.channel.post_update_channel_autotranslation_message.disabled",
    "translation": "@%s disabled Auto-translation for this channel. All new messages will appear in the original language."
  },
  {
    "id": "api.channel.post_update_channel_autotranslation_message.enabled",
    "translation": "@%s enabled Auto-translation for this channel. All new messages will appear in your preferred language."
  },
  {
    "id": "api.channel.patch_update_channel.auto_translation_restricted.app_error",
    "translation": "Auto-translation is not allowed for this channel."
  },
  {
    "id": "api.channel.patch_update_channel.feature_not_available.app_error",
    "translation": "Auto-translation feature is unavailable."
  },
  {
    "id": "api.channel.patch_update_channel.no_changes.app_error",
    "translation": "No changes in the patch."
  },
  {
    "id": "api.channel.post_update_channel_autotranslation_message.retrieve_user.error",
    "translation": "Failed to retrieve user while updating Auto-translation status"
  },
  {
    "id": "api.channel.update_channel_member_autotranslation.channel_not_enabled.app_error",
    "translation": "Auto-translation is not enabled for this channel."
  },
  {
    "id": "api.channel.update_channel_member_autotranslation.feature_not_available.app_error",
    "translation": "Auto-translation is unavailable."
  },
  {
    "id": "api.context.session_cookie_not_allowed.app_error",
    "translation": "Cookie-based authentication is not allowed for this endpoint. Please use header-based authentication."
  },
  {
    "id": "api.recap.disabled.app_error",
    "translation": "This feature is not enabled."
  },
  {
    "id": "api.recap.permission_denied",
    "translation": "You do not have permission to access this recap."
  },
  {
    "id": "api.user.oauth_to_email.not_oauth_user.app_error",
    "translation": "Unable to switch to email authentication because user is not using OAuth or SAML authentication."
  },
  {
    "id": "app.ai.summarize.agent_call_failed",
    "translation": "AI agent call failed."
  },
  {
    "id": "app.ai.summarize.parse_failed",
    "translation": "Failed to parse AI summarisation response."
  },
  {
    "id": "app.recap.delete.app_error",
    "translation": "Failed to delete recap."
  },
  {
    "id": "app.recap.delete_channels.app_error",
    "translation": "Failed to delete recap channels."
  },
  {
    "id": "app.recap.get.app_error",
    "translation": "Failed to get recap."
  },
  {
    "id": "app.recap.get_channel.app_error",
    "translation": "Failed to get channel."
  },
  {
    "id": "app.recap.get_channels.app_error",
    "translation": "Failed to get recap channels."
  },
  {
    "id": "app.recap.get_last_viewed.app_error",
    "translation": "Failed to get last-viewed timestamp."
  },
  {
    "id": "app.recap.get_team.app_error",
    "translation": "Failed to get team."
  },
  {
    "id": "app.recap.list.app_error",
    "translation": "Failed to get recaps."
  },
  {
    "id": "app.recap.mark_read.app_error",
    "translation": "Failed to mark recap as read."
  },
  {
    "id": "app.recap.permission_denied",
    "translation": "No permission for recap."
  },
  {
    "id": "app.recap.save.app_error",
    "translation": "Failed to save recap."
  },
  {
    "id": "app.recap.save_channel.app_error",
    "translation": "Failed to save recap channel."
  },
  {
    "id": "app.recap.update.app_error",
    "translation": "Failed to update recap."
  },
  {
    "id": "app.update_scheduled_post.convert_to_post.error",
    "translation": "Unable to convert scheduled post to post format."
  },
  {
    "id": "ent.autotranslation.add_task.missing_object_id",
    "translation": "Translation task must include an object ID."
  },
  {
    "id": "ent.autotranslation.detect_language.text_too_large",
    "translation": "Text exceeds maximum size for language detection."
  },
  {
    "id": "ent.autotranslation.add_task.missing_object_type",
    "translation": "Translation task must include an object type."
  },
  {
    "id": "ent.autotranslation.add_task.nil_task",
    "translation": "Translation task cannot be null."
  },
  {
    "id": "ent.autotranslation.create_translation_failed",
    "translation": "Failed to create translation."
  },
  {
    "id": "ent.autotranslation.detect_language.nil_context",
    "translation": "Context is required for language detection."
  },
  {
    "id": "ent.autotranslation.detect_remote.error",
    "translation": "Failed to detect language using translation provider."
  },
  {
    "id": "ent.autotranslation.extract_content.mask_error",
    "translation": "Failed to mask content for translation."
  },
  {
    "id": "ent.autotranslation.extract_post.nil_post",
    "translation": "Post object cannot be null."
  },
  {
    "id": "ent.autotranslation.feature_unavailable",
    "translation": "Auto-translation is not available. Please contact your system administrator about upgrading your enterprise licence."
  },
  {
    "id": "ent.autotranslation.invalid_input",
    "translation": "Invalid language code provided."
  },
  {
    "id": "ent.autotranslation.mask_verification_failed",
    "translation": "Failed to update translation with new mask values."
  },
  {
    "id": "ent.autotranslation.no_translatable_content",
    "translation": "Content contains no translatable text."
  },
  {
    "id": "ent.autotranslation.provider_not_available",
    "translation": "Translation provider is not available."
  },
  {
    "id": "ent.autotranslation.provider_not_initialized",
    "translation": "Translation provider is not initialised."
  },
  {
    "id": "ent.autotranslation.store_error",
    "translation": "Unable to process auto-translation request."
  },
  {
    "id": "ent.autotranslation.unmask.missing_mask",
    "translation": "Translation contains unrecognised tokens."
  },
  {
    "id": "ent.autotranslation.unmask.orphan_token",
    "translation": "Translation contains invalid tokens."
  },
  {
    "id": "ent.autotranslation.validate_content.invalid_json",
    "translation": "Unable to parse JSON content."
  },
  {
    "id": "ent.autotranslation.validate_content.invalid_type",
    "translation": "Unsupported content type for translation."
  },
  {
    "id": "ent.autotranslation.validate_content.nil_content",
    "translation": "Content cannot be null."
  },
  {
    "id": "ent.autotranslation.validate_content.text_too_large",
    "translation": "Content exceeds maximum size for translation."
  },
  {
    "id": "ent.autotranslation.validate_id.empty",
    "translation": "Required ID cannot be empty."
  },
  {
    "id": "ent.autotranslation.validate_id.invalid",
    "translation": "Invalid ID format."
  },
  {
    "id": "model.config.is_valid.autotranslation.agents.llm_service_id.app_error",
    "translation": "Invalid autotranslation agents configuration: AI service must not be empty."
  },
  {
    "id": "model.config.is_valid.autotranslation.timeout.app_error",
    "translation": "Invalid timeout for autotranslation settings. Must be a positive number."
  },
  {
    "id": "model.config.is_valid.autotranslation.workers.app_error",
    "translation": "Workers must be between 1 and 32."
  },
  {
    "id": "model.translation.is_valid.lang.app_error",
    "translation": "Invalid language code. Use a standard ISO code such as 'en', 'ja', or 'fr'."
  },
  {
    "id": "model.translation.is_valid.nil.app_error",
    "translation": "Translation object cannot be null."
  },
  {
    "id": "model.translation.is_valid.object_id.app_error",
    "translation": "Invalid object ID."
  },
  {
    "id": "model.translation.is_valid.object_json.app_error",
    "translation": "Invalid object JSON."
  },
  {
    "id": "model.translation.is_valid.object_type.app_error",
    "translation": "Invalid object type."
  },
  {
    "id": "model.translation.is_valid.provider.app_error",
    "translation": "Invalid translation provider."
  },
  {
    "id": "model.translation.is_valid.text.app_error",
    "translation": "Invalid translation text."
  },
  {
    "id": "model.translation.is_valid.type.app_error",
    "translation": "Invalid translation type."
  },
  {
    "id": "model.translation.is_valid.type_invalid.app_error",
    "translation": "Invalid translation type. Must be 'string' or 'object'."
  },
  {
    "id": "api.post.fill_in_post_props.burn_on_read.bot_dm.app_error",
    "translation": "Burn-on-read posts are not allowed in direct messages with bots or AI agents."
  },
  {
    "id": "api.post.fill_in_post_props.burn_on_read.channel.app_error",
    "translation": "An error occurred while validating the channel for burn-on-read post."
  },
  {
    "id": "api.post.fill_in_post_props.burn_on_read.self_dm.app_error",
    "translation": "Burn-on-read posts are not allowed when messaging yourself."
  },
  {
    "id": "api.post.fill_in_post_props.burn_on_read.user.app_error",
    "translation": "An error occurred while validating the user for burn-on-read post."
  },
  {
    "id": "api.user.login_sso_code_exchange.deprecated.app_error",
    "translation": "This endpoint is deprecated and disabled. Please update your mobile app."
  },
  {
    "id": "api.user.oauth.get_settings.app_error",
    "translation": "Failed to get {{.Service}} settings"
  },
  {
    "id": "app.import.validate_user_import_data.channel_guest_missing_system_guest_role.error",
    "translation": "User has channel guest roles but is not a system guest."
  },
  {
    "id": "app.import.validate_user_import_data.system_guest_missing_channel_guest_roles.error",
    "translation": "User is a system guest but does not have channel guest roles in all channels. Channel guest count: {{.ChannelGuestCount}}, Total channels: {{.TotalChannels}}."
  },
  {
    "id": "app.import.validate_user_import_data.system_guest_missing_team_guest_roles.error",
    "translation": "User is a system guest but does not have team guest roles in all teams. Team guest count: {{.TeamGuestCount}}, Total teams: {{.TotalTeams}}."
  },
  {
    "id": "app.import.validate_user_import_data.team_guest_missing_system_guest_role.error",
    "translation": "User has team guest roles but is not a system guest."
  },
  {
    "id": "model.config.is_valid.elastic_search.enable_cjk_analyzers.app_error",
    "translation": "{{.Searching}} setting must be set to true when {{.EnableCJKAnalyzers}} is set to true"
  }
]
