# System-level messages
system.success=Success
system.error=System error
system.s3.upload.error=S3 file upload failed
system.s3.presign.error=S3 presigned URL generation failed

# Authentication and authorization related messages
auth.password.incorrect=Incorrect password
user.username.notempty=Username cannot be empty
user.password.notempty=Password cannot be empty
user.nickname.max.length=Nickname length exceeds limit
user.avatar.max.length=Avatar URL length exceeds limit
refresh.token.notempty=Refresh token cannot be empty
user.not.found=User not found
user.password.incorrect=Password incorrect
error.data.already.exists=Data already exists
error.s3.upload=S3 file upload failed
error.s3.presign=S3 presigned URL generation failed
error.login.info=Login information error
error.user.no.approvel=This account has no permission
error.params=Parameter error
error.bot.chain.submit=Agent not built yet, please debug and preview first
error.chat.req.zj=Sorry, I haven't learned about this topic yet and cannot provide relevant information. You can choose other questions, and I will try my best to answer them.
error.long.content.chat.id=Conversation CHAT_ID error
error.long.content.wrong.business.type=Business type error
error.long.content.miss.file.info=Missing file related information
error.long.content.file.size.out.limit=File size exceeds limit
error.long.content.file.num.out.limit=Daily upload file count exceeds limit
error.too.many.bots=Current created agents have reached the limit
error.duplicate.bot.name=Agent name duplicate, please check
error.create.bot.failed=Create agent failed
error.update.bot.failed=Update agent failed
error.clone.bot.failed=Clone agent failed
error.bot.belong.error=Agent does not belong to this user
error.bot.status.invalid=Creator has taken this assistant offline
error.share.url.invalid=This sharing link has expired
error.file.not.process=File not processed
error.activity.not.found=Invalid parameter, data not found

error.bot.type.temporarily.not.support=This agent type does not currently support API publishing

# Spark API error messages 60040-60068
error.spark.api.not.auth=Spark Ultra API-authentication parameter error
error.spark.api.upgrade.ws=Spark Ultra API-Upgrade to WebSocket error
error.spark.api.read.message=Spark Ultra API-Error reading user message through WebSocket
error.spark.api.send.message=Spark Ultra API-Error sending message to user through WebSocket
error.spark.api.message.format=Spark Ultra API-User message format error
error.spark.api.schema.error=Spark Ultra API-User data schema error
error.spark.api.param.value.error=Spark Ultra API-User parameter value error
error.spark.api.concurrent.error=Spark Ultra API-User concurrency error: user already connected, same user cannot connect from multiple locations
error.spark.api.flow.limit.error=Spark Ultra API-User flow limited: service is processing current request, please wait for completion before sending new request
error.spark.api.capacity.insufficient=Spark Ultra API-Service capacity insufficient, please contact staff
error.spark.api.engine.connection.failed=Spark Ultra API-Failed to establish connection with engine
error.spark.api.engine.receive.error=Spark Ultra API-Error receiving data from engine
error.spark.api.engine.send.error=Spark Ultra API-Error sending data to engine
error.spark.api.engine.internal.error=Spark Ultra API-Engine internal error
error.spark.api.input.content.audit.failed=Spark Ultra API-Input content audit failed, suspected violation, please adjust input content
error.spark.api.output.content.audit.failed=Spark Ultra API-Output content contains sensitive information, audit failed, subsequent results cannot be displayed
error.spark.api.appid.in.blacklist=Spark Ultra API-AppID in blacklist
error.spark.api.authorization.error=Spark Ultra API-AppID authorization error: feature not enabled, version not enabled, token insufficient, or concurrency exceeded
error.spark.api.clear.history.failed=Spark Ultra API-Clear history failed
error.spark.api.input.violation.tendency=Spark Ultra API-Session content has violation tendency, please adjust input content
error.spark.api.input.audit.failed=Spark Ultra API-Input audit failed
error.spark.api.service.busy=Spark Ultra API-Service busy, please try again later
error.spark.api.engine.param.error=Spark Ultra API-Request engine parameter exception, engine schema validation failed
error.spark.api.engine.network.error=Spark Ultra API-Engine network exception
error.spark.api.token.limit.exceeded=Spark Ultra API-Token count exceeded limit, conversation history plus question is too long, please simplify input
error.spark.api.no.authorization=Spark Ultra API-Authorization error: AppID does not have authorization for this feature or business volume exceeded limit
error.spark.api.daily.limit.exceeded=Spark Ultra API-Authorization error: daily flow control limit exceeded, exceeded maximum daily access limit
error.spark.api.qps.limit.exceeded=Spark Ultra API-Authorization error: second-level flow control limit exceeded, second-level concurrency exceeded authorized limit
error.spark.api.concurrent.limit.exceeded=Spark Ultra API-Authorization error: concurrent flow control limit exceeded, concurrent sessions exceeded authorized limit
error.spark.api.image.audit.failed=tti API-Model-generated image contains sensitive information, audit failed
error.spark.api.image.not.auth=tti API-Image Generation API: Unauthorized
error.spark.api.image.param.error=tti API-Image Generation API: Authentication Parameter Error
error.spark.api.image.message.format=tti API-Image Generation API: Message format error
error.spark.api.image.schema.error=tti API-Image Generation API: User data schema error
error.spark.api.image.param.value.error=tti API-Image Generation API: User parameter value error
error.spark.api.image.capacity.insufficient=tti API-Image Generation API: service capacity insufficient, please contact the customer support
error.spark.api.image.input.audit.failed=tti API-Image Generation API: Input content audit failed
error.open.ai.api.error=Text model interface call failed. Please check the configuration parameters

# Token validation messages
token.expired=Token expired
token.access.revoked=Access token has been revoked
token.refresh.revoked=Refresh token has been revoked
token.refresh.revoked.database=Refresh token has been revoked in database
token.refresh.invalid=Refresh token invalid or revoked
token.user.not.exist=User does not exist
token.invalid.format=Token format invalid or signature verification failed

# HTTP status related messages
http.bad.request=Bad request parameters
http.unauthorized=Unauthorized access
http.forbidden=Access forbidden
http.not.found=Resource not found
http.method.not.allowed=Request method not allowed
http.request.timeout=Request timeout
http.conflict=Resource conflict
http.unsupported.media.type=Unsupported media type
http.parameter.error=Parameter error
http.validation.error=Parameter validation failed
http.too.many.requests=Too many requests
http.internal.server.error=Internal server error
http.service.unavailable=Service unavailable
http.gateway.timeout=Gateway timeout
http.url.not.found=Requested URL not found

# Business common messages
business.error=Business processing failed
business.data.not.found=Data not found
business.data.already.exists=Data already exists
business.operation.failed=Operation failed
business.insufficient.permissions=Insufficient permissions

# Chat service related messages
error.chat.req=Illegal request
error.bot.not.exists=Agent does not exist
error.chat.list=Current chat window abnormal, please create new window for conversation
error.chat.req.not.belong=Sorry, current chat window abnormal, please refresh and try again.
error.chat.tree=Chat list abnormal, please try creating new conversation
error.chat.normal.tree=Current chat window abnormal, please create new window for conversation

# Distributed lock related messages
lock.error.acquire_timeout=Distributed lock acquisition timeout
lock.error.release_failed=Distributed lock release failed
lock.error.key_parse_failed=Distributed lock key parsing failed
lock.error.redis_connection_error=Redis connection error
lock.error.config_error=Distributed lock configuration error
lock.error.unknown_error=Distributed lock unknown error

# Space application related messages
space.application.please.join.enterprise.first=Please join enterprise first
space.application.duplicate.not.allowed=Please do not apply repeatedly
space.application.user.already.in.space=User is already in this space
space.application.join.failed=Join failed
space.application.failed=Application failed
space.application.record.not.found=Application record not found
space.application.current.space.inconsistent=Current space inconsistent
space.application.status.incorrect=Application status incorrect
space.application.approval.failed=Approval failed

# Enterprise team related messages
enterprise.not.exists=Enterprise team does not exist
enterprise.user.not.in.enterprise=User not in enterprise team
enterprise.please.buy.plan.first=Please purchase enterprise team plan first
enterprise.name.exists=Enterprise team name already exists
enterprise.user.already.created=User has already created enterprise team
enterprise.create.failed=Create failed
enterprise.update.failed=Update failed

# Enterprise user related messages
enterprise.user.not.in.team=User not in team
enterprise.user.super.admin.cannot.be.removed=Super admin cannot be removed
enterprise.user.remove.failed=Remove user failed
enterprise.user.role.type.incorrect=Role type incorrect
enterprise.user.update.role.failed=Update role failed
enterprise.user.super.admin.cannot.leave.team=Super admin cannot leave team
enterprise.user.leave.failed=Leave team/enterprise failed

# Invitation management related messages
invite.space.user.full=Current space users full
invite.team.user.full=Current team users full
invite.enterprise.user.full=Current enterprise users full
invite.user.already.space.member=User is already space member
invite.user.already.invited=User already invited
invite.failed=Invitation failed
invite.user.already.team.member=User is already team member
invite.record.not.found=Invitation record not found
invite.current.user.not.invitee=Current user is not invitee
invite.already.refused=Invitation already refused
invite.already.accepted=Invitation already accepted
invite.already.withdrawn=Invitation already withdrawn
invite.already.expired=Invitation already expired
invite.enterprise.inconsistent=Current enterprise team inconsistent
invite.status.not.supported=Current invitation status not supported
invite.please.upload.phone.numbers=Please upload phone numbers
invite.exceed.batch.import.limit=Exceed batch import limit
invite.no.corresponding.users.found=No corresponding users found
invite.read.upload.file.failed=Read upload file failed
invite.add.team.user.failed=Add team user failed
invite.add.space.user.failed=Add space user failed
invite.unsupported.type=Invitation type not supported
invite.parameter.exception=Parameter exception
invite.space.already.deleted=Space already deleted

# Space management related messages
space.name.exists=Space name already exists
space.enterprise.team.max.exceeded=Enterprise team space count reached limit
space.personal.pro.max.exceeded=Personal pro space count reached limit
space.free.user.max.exceeded=Free user space count reached limit
space.not.exists=Space does not exist
space.delete.failed=Delete failed
space.name.duplicate=Space name duplicate
space.user.not.in.space=User not in space
space.user.not.owner=User is not space owner
space.user.not.enterprise.user=User is not enterprise user
space.user.not.enterprise.admin=User is not enterprise team admin

# Space user management related messages
space.user.unsupported.role.type=Unsupported role type
space.user.space.not.belong.to.enterprise=Space does not belong to any enterprise
space.user.not.in.enterprise.team=User not in enterprise team
space.user.already.exists=User is already in this space
space.user.add.failed=Add failed
space.user.not.exists=User is not in this space
space.user.cannot.remove.owner=Cannot remove space owner
space.user.remove.failed=Remove failed
space.user.owner.role.cannot.change=Space owner role cannot be changed
space.user.owner.cannot.leave=Space owner cannot leave space
space.user.personal.space.cannot.transfer=Personal space cannot be transferred
space.user.non.owner.cannot.transfer=Non-owner cannot transfer space
space.user.not.member=User is not space member
space.user.transfer.failed=Transfer space failed

# Permission validation related messages
permission.no.enterprise.id=Missing enterprise team ID
permission.not.belong.enterprise=User does not belong to current enterprise team
permission.not.support.enterprise.role=Unsupported enterprise role type
permission.no.enterprise.config=Enterprise permission configuration does not exist
permission.denied=Insufficient permissions
permission.package.expired=Package expired
permission.not.belong.space=User does not belong to current space
permission.not.support.space.role=Unsupported space role type
permission.no.space.config=Space permission configuration does not exist
permission.no.space.id=Missing space ID

# Basic 8000+
model.url.check.failed=URL validation failed
common.response.failed={0}
param.miss=Missing parameter
appid.cannot.empty=appId cannot be empty
delimiter.same=Duplicate delimiter exists
file.empty=File is empty
param.error=Parameter error
filter.conf.miss=Missing filter configuration
exceed.authority=Unauthorized operation
data.not.exist=Data does not exist
common.base.config.not.exist=Base configuration does not exist, application creation failed
common.remote.caller.failed=Remote call exception

# Workflow 8100+
workflow.version.add.failed=Workflow version addition exception
workflow.version.get.name.failed=Get workflow version name exception
workflow.version.reduction.failed=Workflow version restoration exception
workflow.version.publish.failed=Workflow version publish result exception
workflow.version.get.max.failed=Query workflow maximum version number failed, please try again later.
workflow.dsl.upload.failed=Your uploaded DSL file is incorrect, please retry
workflow.template.not.exist=Template workflow does not exist!
workflow.high.param.failed=Advanced configuration parameter replacement exception
workflow.protocol.node.info.cannot.empty=Protocol node information cannot be empty
workflow.protocol.length.limit=Protocol data length exceeds limit
workflow.not.exist=Workflow does not exist
workflow.feedback.failed=Workflow feedback failed
workflow.query.length.outrange=Query input too long, supports input no more than 30 characters
workflow.export.failed=Export failed
workflow.version.not.found=No corresponding workflow version found
workflow.name.existed=Workflow name duplicate!
workflow.not.public=Workflow is not public, cannot copy
workflow.not.publish=Workflow not published
workflow.import.failed=Import failed
workflow.no.workflow=Flow not found
parse.input.param.type.failed=Parse flow input parameter type failed
workflow.protocol.empty=Workflow protocol is empty
bot.not.exist=Bot does not exist
prompt.group.save.failed=Save control group protocol failed
prompt.group.prompt.cannot.empty=Control group protocol cannot be empty
work.flow.dls.upload.failed=Your uploaded DSL file is incorrect, please retry
work.flow.mcp.server.registry.failed=Mcp-server registration failed
workflow.skill.api.not.ready=Please publish this workflow as an API and bind an app before exporting it as a Skill
workflow.skill.name.desc.empty=Please complete the workflow name and description before exporting it as a Skill
failed.get.trace=Trace log retrieval failed

# Plugin 8300+
toolbox.not.exist.modify=Toolbox to be modified does not exist
toolbox.not.exist.delete=Toolbox to be deleted does not exist
toolbox.cannot.delete.related=Toolbox has bot association usage, cannot delete
toolbox.not.exist=Tool does not exist
toolbox.already.collect=Already collected
toolbox.no.collect=Tool not collected yet
toolbox.param.type.cannot.empty=Parameter type cannot be empty
toolbox.param.cannot.empty=Parameter cannot be empty
toolbox.param.and.desc.cannot.empty=Parameter value and parameter description cannot be empty
toolbox.param.get.source.illegal=Value source illegal
toolbox.param.type.not.match=Parameter type mismatch
toolbox.url.illegal=URL non-compliant
toolbox.ip.in.blacklist=IP address in blacklist
toolbox.url.short.not.supported=Short URL not supported
toolbox.url.http.https.only=Only http, https protocols supported
toolbox.add.version.failed=Plugin add version failed
toolbox.cannot.delete.related.workflow=Toolbox has workflow association usage, cannot delete
toolbox.not.number.type=Not Number type
toolbox.not.integer.type=Not Integer type
toolbox.not.boolean.type=Not Boolean type
toolbox.mcp.write.failed=Write MCP service data failed
toolbox.mcp.reg.failed=MCP registration failed
toolbox.name.empty=Tool name is empty
workflow.mcp.server.registry.failed=MCP-Server registration failed
toolbox.tool.call.failed=Tool debugging failed
toolbox.mcp.get.detail.failed=Get MCP tool details failed
toolbox.auth.failed=Authorization failed
toolbox.generate.server.url.failed=Generate Server URL failed
rpa.is.usage=RPA has been applied to workflow, deletion failed

# Database 8500+
database.name.not.empty=Database name cannot be empty
database.name.exist=Database name already exists
database.create.failed=Create failed
database.update.failed=Update database failed
database.delete.failed.cited=Database is referenced, cannot delete
database.query.failed=Query database list failed
database.not.exist=Database does not exist
database.table.name.exist=Table name already exists
database.table.field.cannot.empty=Table fields cannot be empty
database.table.create.failed=Create table failed
database.id.cannot.empty=Database ID cannot be empty
database.table.query.list.failed=Get table list failed
database.table.query.field.failed=Get table field list failed
database.table.update.failed=Update table failed
database.table.delete.failed.cited=Table is referenced, cannot delete
database.table.delete.failed=Delete table failed
database.table.operation.failed=Table operation failed
database.table.field.illegal=Illegal field
database.table.field.lack=Missing required field
database.template.generate.failed=Template generation failed
database.table.query.data.failed=Query table data failed
database.import.failed=Import data failed
database.table.copy.failed=Copy table failed
database.cannot.empty=Field name, data type, description and required field cannot be empty!
database.type.illegal=Data type illegal
database.copy.failed=Copy database failed
database.count.limited=Database table count reached limit, cannot create new table
database.field.cannot.beyond.20=Table field count cannot exceed 20
database.table.export.failed=Export table data failed
database.table.illegal.default=Default value does not match field type
database.table.field.import.default=Import file header non-compliant
database.too.many.export.ids=Export data volume exceeds limit

# Knowledge base 8700+
repo.name.duplicate=Duplicate knowledge base exists
repo.type.not.match=Knowledge base does not match type
repo.not.exist=Knowledge base does not exist
repo.subscription.failed=Knowledge base subscription failed
repo.status.illegal=Knowledge base status illegal
repo.file.upload.failed.pic.5mb=Upload failed, image size cannot exceed 5MB
repo.file.upload.failed.file.20mb=Upload failed, file size cannot exceed 20MB
repo.file.upload.failed.words.100w=Upload failed, file character count must be less than 1 million
repo.file.type.empty.xingchen=Xingchen file type is empty
repo.file.upload.failed.file.10mb.xingchen=Upload failed, Xingchen this type file size cannot exceed 10MB
repo.file.upload.failed.file.100mb.xingchen=Upload failed, Xingchen this type file size cannot exceed 100MB
repo.file.upload.failed=Upload failed
repo.file.slice.failed=Slice failed
repo.file.slice.range.16.1024=Slice length range [16, 1024]
repo.file.all.clean.failed=All files cleaning failed
repo.file.get.knowledge.failed=Get knowledge point failed
repo.file.embedding.failed=Embedding failed
repo.file.size.limited=File limit exceeded, please delete other files or activate membership to try again!
repo.file.name.cannot.empty=File name cannot be empty
repo.folder.name.illegal=Does not conform to folder naming rules
repo.file.not.exist=File does not exist
repo.file.delete.failed=Delete failed
repo.folder.not.exist=Folder does not exist
repo.file.download.failed=File download failed
repo.knowledge.not.exist=Knowledge block does not exist
repo.knowledge.get.failed=No knowledge points retrieved
repo.knowledge.all.embedding.failed=All knowledge points embedding failed
repo.knowledge.no.task=No corresponding task found
repo.knowledge.download.failed=Download & parse file error
repo.knowledge.add.failed=Add knowledge point failed
repo.knowledge.modify.failed=Modify knowledge point failed
repo.knowledge.delete.failed=Delete knowledge block failed
repo.knowledge.tag.too.long=Tag too long, please control within 30 characters
repo.knowledge.splitting=Generating slice preview, please wait
repo.some.ids.must.input=(repoId and parentId) or datasetId required
repo.not.found=Repo not found
repo.file.disabled=Document disabled
repo.knowledge.query.failed=Knowledge retrieval failed
repo.delete.failed.bot.used=Knowledge base has bot association usage, cannot delete
repo.file.upload.type.not.exist=Upload failed: File type not supported
repo.create.ragflow.failed=Failed to create RAGFlow dataset: {0}

# Model 8900+
model.not.compatible.openai=Interface return format not compatible with OpenAI protocol
model.apikey.error=Interface address or API KEY error, please check and retry
model.check.failed=Model validation failed, please check and retry
model.api.key.not.found=Private key configuration not found
model.apikey.load.error=API Key load failed
model.name.existed=Model name duplicate
model.not.exist=Model does not exist
model.get.fine.tuning.failed=Get fine-tuning model failed
model.get.shelf.failed=Shelf model retrieval failed
public.model.get.shelf.failed=Public model retrieval failed
model.delete.failed.apply.agent=Model used for agent, cannot delete
model.delete.failed.apply.workflow=Model referenced by workflow, cannot delete
model.url.illegal.failed=Illegal URL
not.custom.model=Not custom model

# Notification center related messages
notification.not.exists=Notification message does not exist
notification.send.failed=Send notification failed
notification.mark.read.failed=Mark as read failed
notification.delete.failed=Delete notification failed
notification.receiver.empty=Receiver cannot be empty
notification.type.invalid=Message type cannot be empty
notification.permission.denied=No permission to operate this notification
notification.expired=Notification expired
notification.already.read=Notification already marked as read
notification.title.not.empty=Message title cannot be empty
notification.ids.invalid=Notification ID list invalid
notification.query.page.invalid=Page parameters invalid

# Invitation message templates
invite.message.space.title=Space Invitation Reminder
invite.message.space.content=<h3>Space Invitation Reminder</h3>{0} invited you to join space "{1}", <a href="{2}" target="_blank" style="color: blue;">Click to view</a>
invite.message.enterprise.title=Team Invitation Reminder
invite.message.enterprise.content=<h3>Team Invitation Reminder</h3>{0} invited you to join team "{1}", <a href="{2}" target="_blank" style="color: blue;">Click to view</a>

# Prompt related
loose.prefix.prompt=Please use the following document fragments as known information:[]\n\
Please answer the question accurately based on the original text above and your knowledge\n\
When answering user questions, please answer in the language the user asked\n\
If the above content cannot answer the user information, combine your knowledge to answer the user's question\n\
Answer the user's questions concisely and professionally, and do not add fabricated content to the answer.
loose.suffix.prompt=\nMy next input is: {{}}

# Personality related
personality.ai.generated=You are an assistant persona information generation expert. Please understand the user's intention based on the input information, \
process the input information appropriately and precisely, combine the assistant name, assistant category, assistant introduction, and role task content \
to output reasonable and vivid real assistant persona information. The information should include three aspects: background identity (including name and gender), \
personality traits, and physical appearance, with each aspect about 50 words. The returned result must strictly follow the following example format:\n\
##Background Identity: xxxx\n\
##Personality Traits: xxx\n\
##Physical Appearance: xxxx\n\
\n\
Where the assistant name is: %s\n\
Assistant category: %s\n\
Assistant introduction: %s\n\
Role task: %s
personality.ai.polishing=You are an assistant persona information generation expert. Please understand the user's intention based on the input information, \
process the input information appropriately and precisely, combine the assistant name, assistant category, assistant introduction, role task, \
and the persona information already entered by the user to polish the assistant persona information reasonably and vividly realistically. \
The information should include three aspects: background identity (including name and gender), personality traits, and physical appearance, \
with each aspect about 50 words. The returned result must strictly follow the following example format:\n\
##Background Identity: xxx\n\
##Personality Traits: xxx\n\
##Physical Appearance: xxxx\n\
\n\
Where the assistant name is: %s\n\
Assistant category: %s\n\
Assistant introduction: %s\n\
Role task: %s\n\
User already entered persona information: %s
personality.prompt=Follow the role persona and role task to play the role and complete the conversation. \
When there are conflicts in the role persona and role task regarding the character's background identity, personality traits, physical appearance, \
language style, and scene information, strictly follow the role persona content and completely forget the conflicting information in the role task\n\
\n\
#Role Persona:\n\
%s\n\
\n\
%s\n\
#Role Task:\n\
%s
error.personality.ai.generate.param.empty=AI personality generation parameter is empty
error.personality.ai.generate.failed=AI personality generation failed

# Default Bot Model Names
default.bot.model.x1=Spark X1 Large Model
default.bot.model.spark_4_0=Spark V4.0 Ultra Large Model

# Audio validation related error messages
error.audio.file.format.unsupported=Unsupported audio format, only supports: wav, mp3, m4a, pcm
error.audio.file.size.exceeded=Audio file size cannot exceed 3MB
error.audio.channels.invalid=Audio must be mono channel
error.audio.sample.rate.too.low=Audio sample rate must be 24kHz or higher
error.audio.bit.depth.invalid=Audio bit depth must be 16bit
error.audio.duration.too.long=Audio duration cannot exceed 40 seconds
error.speaker.train.failed=Sound training failed, please check if the audio file meets the requirements and if the corresponding ability has been authorized
platform.account.not.configured={0} is not configured. Please configure it in Platform Account Management first.
